Skip to content

Commit c7f7223

Browse files
authored
Merge pull request #97 from OpenSourceAWE/tether-moment
Add tether_moment and tether_force fields to syssstate
2 parents 57f2407 + ce80bec commit c7f7223

18 files changed

+92
-51
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
### KiteUtils v0.11.0 26-08-2025
4+
#### Changed
5+
- BREAKING: renamed c_spring to axial_stiffness and damping to axial_damping
6+
#### Added
7+
- the fields tether_induced_force and tether_induced_moment
8+
39
### KiteUtils v0.10.16 14-08-2025
410
#### Fixed
511
- support subdirectories in data dir

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "KiteUtils"
22
uuid = "90980105-b163-44e5-ba9f-8b1c83bb0533"
33
authors = ["Uwe Fechner <[email protected]> and contributors"]
4-
version = "0.10.16"
4+
version = "0.11.0"
55

66
[deps]
77
Arrow = "69666777-d1a9-59fb-9406-91d4454c9d45"

data/Test_flight.arrow

2.32 KB
Binary file not shown.

data/settings.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ kps4:
6969
cmq: 0.0 # pitch rate dependant moment coefficient [-]
7070
cord_length: 2.0 # average aerodynamic cord length of the kite [m]
7171
kps5:
72-
c_spring_kite: 614600.0 # unit spring constant coefficient of the kite springs [N]
73-
damping_kite_springs: 473.0 # unit damping coefficient [Ns]
72+
axial_stiffness_kite: 614600.0 # unit spring constant coefficient of the kite springs [N]
73+
axial_damping_kite: 473.0 # unit damping coefficient [Ns]
7474
rel_mass_p2: 0.25 # rel mass of p2
7575
rel_mass_p3: 0.25 # rel mass of p3
7676
rel_mass_p4: 0.25 # rel mass of p4 and p5
@@ -98,8 +98,8 @@ kcu:
9898
tether:
9999
d_tether: 4 # tether diameter [mm]
100100
cd_tether: 0.958 # drag coefficient of the tether
101-
damping: 473.0 # unit damping coefficient [Ns]
102-
c_spring: 614600.0 # unit spring constant coefficient [N]
101+
axial_damping: 473.0 # unit damping coefficient [Ns]
102+
axial_stiffness: 614600.0 # unit spring constant coefficient [N]
103103
rho_tether: 724.0 # density of Dyneema [kg/m³]
104104
e_tether: 5.5e10 # axial tensile modulus of Dyneema (M.B. Ruppert) [Pa]
105105
# SK75: 109 to 132 GPa according to datasheet

data/settings2.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ kcu:
8888
tether:
8989
d_tether: 4 # tether diameter [mm]
9090
cd_tether: 0.958 # drag coefficient of the tether
91-
damping: 473.0 # unit damping coefficient [Ns]
92-
c_spring: 614600.0 # unit spring constant coefficient [N]
91+
axial_damping: 473.0 # unit damping coefficient [Ns]
92+
axial_stiffness: 614600.0 # unit spring constant coefficient [N]
9393
rho_tether: 724.0 # density of Dyneema [kg/m³]
9494
e_tether: 55000000000.0 # axial tensile modulus of Dyneema (M.B. Ruppert) [Pa]
9595
# SK75: 109 to 132 GPa according to datasheet

data/settings_ram.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ tether:
5252
steering_tether_diameter: 1 # [mm]
5353
cd_tether: 0.958 # drag coefficient of the tether
5454
damping: 473.0 # unit damping coefficient [Ns]
55-
c_spring: 614600.0 # unit spring constant coefficient [N]
55+
axial_stiffness: 614600.0 # unit spring constant coefficient [N]
5656
rho_tether: 724.0 # density of Dyneema [kg/m³]
5757
e_tether: 55000000000.0 # axial tensile modulus of Dyneema (M.B. Ruppert) [Pa]
5858
# SK75: 109 to 132 GPa according to datasheet

src/_demo_syslog.jl

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ function demo_syslog(P, name="Test flight"; duration=10)
2626
azimuth_vec = Vector{MyFloat}(undef, steps)
2727
l_tether_vec = Vector{MVector{4, MyFloat}}(undef, steps)
2828
v_reelout_vec = Vector{MVector{4, MyFloat}}(undef, steps)
29-
force_vec = Vector{MVector{4, MyFloat}}(undef, steps)
29+
winch_force_vec = Vector{MVector{4, MyFloat}}(undef, steps)
3030
depower_vec = Vector{MyFloat}(undef, steps)
3131
steering_vec = Vector{MyFloat}(undef, steps)
3232
kcu_steering_vec = Vector{MyFloat}(undef, steps)
@@ -48,6 +48,8 @@ function demo_syslog(P, name="Test flight"; duration=10)
4848
CD2_vec = Vector{MyFloat}(undef, steps)
4949
aero_force_b_vec = Vector{MVector{3, MyFloat}}(undef, steps)
5050
aero_moment_b_vec = Vector{MVector{3, MyFloat}}(undef, steps)
51+
tether_induced_force_vec = Vector{MVector{3, MyFloat}}(undef, steps)
52+
tether_induced_moment_vec = Vector{MVector{3, MyFloat}}(undef, steps)
5153
twist_angles_vec = Vector{MVector{4, MyFloat}}(undef, steps)
5254
vel_kite_vec = Vector{MVector{3, MyFloat}}(undef, steps)
5355
acc_vec = Vector{MyFloat}(undef, steps)
@@ -91,7 +93,7 @@ function demo_syslog(P, name="Test flight"; duration=10)
9193
azimuth_vec[i+1] = state.azimuth
9294
l_tether_vec[i+1] = state.l_tether
9395
v_reelout_vec[i+1] = state.v_reelout
94-
force_vec[i+1] = state.force
96+
winch_force_vec[i+1] = state.winch_force
9597
depower_vec[i+1] = state.depower
9698
steering_vec[i+1] = state.steering
9799
kcu_steering_vec[i+1] = state.kcu_steering
@@ -113,6 +115,8 @@ function demo_syslog(P, name="Test flight"; duration=10)
113115
CD2_vec[i+1] = state.CD2
114116
aero_force_b_vec[i+1] = state.aero_force_b
115117
aero_moment_b_vec[i+1] = state.aero_moment_b
118+
tether_induced_force_vec[i+1] = state.tether_induced_force
119+
tether_induced_moment_vec[i+1] = state.tether_induced_moment
116120
twist_angles_vec[i+1] = state.twist_angles
117121
vel_kite_vec[i+1] = state.vel_kite
118122
acc_vec[i+1] = state.acc
@@ -144,13 +148,13 @@ function demo_syslog(P, name="Test flight"; duration=10)
144148
end
145149
StructArray{SysState{P}}((time_vec, t_sim_vec, sys_state_vec, cycle_vec, fig_8_vec, e_mech_vec,
146150
orient_vec, turn_rates_vec, elevation_vec, azimuth_vec, l_tether_vec, v_reelout_vec,
147-
force_vec, depower_vec, steering_vec, kcu_steering_vec, set_steering_vec, heading_vec,
151+
winch_force_vec, depower_vec, steering_vec, kcu_steering_vec, set_steering_vec, heading_vec,
148152
heading_rate_vec, course_vec, bearing_vec, attractor_vec, v_app_vec, v_wind_gnd_vec,
149153
v_wind_200m_vec, v_wind_kite_vec, AoA_vec, side_slip_vec, alpha3_vec, alpha4_vec,
150-
CL2_vec, CD2_vec, aero_force_b_vec, aero_moment_b_vec, twist_angles_vec, vel_kite_vec,
151-
acc_vec, X_vec, Y_vec, Z_vec, set_torque_vec, set_speed_vec,
152-
set_force_vec, roll_vec, pitch_vec, yaw_vec, var_01_vec, var_02_vec,
153-
var_03_vec, var_04_vec, var_05_vec, var_06_vec, var_07_vec, var_08_vec,
154-
var_09_vec, var_10_vec, var_11_vec, var_12_vec, var_13_vec, var_14_vec,
155-
var_15_vec, var_16_vec))
154+
CL2_vec, CD2_vec, aero_force_b_vec, aero_moment_b_vec, tether_induced_force_vec, tether_induced_moment_vec,
155+
twist_angles_vec, vel_kite_vec, acc_vec, X_vec, Y_vec, Z_vec,
156+
set_torque_vec, set_speed_vec, set_force_vec, roll_vec, pitch_vec, yaw_vec,
157+
var_01_vec, var_02_vec, var_03_vec, var_04_vec, var_05_vec, var_06_vec,
158+
var_07_vec, var_08_vec, var_09_vec, var_10_vec, var_11_vec, var_12_vec,
159+
var_13_vec, var_14_vec, var_15_vec, var_16_vec))
156160
end

src/_load_log.jl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,16 @@ function load_log(filename::String; path="")
4545
# example_metadata = KiteUtils.Arrow.getmetadata(table.var_01)
4646
syslog = StructArray{SysState{P}}((table.time, table.t_sim, table.sys_state, table.cycle, table.fig_8,
4747
table.e_mech, table.orient, table.turn_rates, table.elevation, table.azimuth,
48-
table.l_tether, table.v_reelout, table.force, table.depower, table.steering,
48+
table.l_tether, table.v_reelout, table.winch_force, table.depower, table.steering,
4949
table.kcu_steering, table.set_steering, table.heading, table.heading_rate, table.course,
5050
table.bearing, table.attractor, table.v_app, table.v_wind_gnd, table.v_wind_200m,
5151
table.v_wind_kite, table.AoA, table.side_slip, table.alpha3, table.alpha4,
52-
table.CL2, table.CD2, table.aero_force_b, table.aero_moment_b, table.twist_angles,
53-
table.vel_kite, table.acc, table.X, table.Y, table.Z,
54-
table.set_torque, table.set_speed, table.set_force, table.roll, table.pitch,
55-
table.yaw, table.var_01, table.var_02, table.var_03, table.var_04,
56-
table.var_05, table.var_06, table.var_07, table.var_08, table.var_09,
57-
table.var_10, table.var_11, table.var_12, table.var_13, table.var_14,
58-
table.var_15, table.var_16))
52+
table.CL2, table.CD2, table.aero_force_b, table.aero_moment_b, table.tether_induced_force,
53+
table.tether_induced_moment, table.twist_angles, table.vel_kite, table.acc, table.X,
54+
table.Y, table.Z, table.set_torque, table.set_speed, table.set_force,
55+
table.roll, table.pitch, table.yaw, table.var_01, table.var_02,
56+
table.var_03, table.var_04, table.var_05, table.var_06, table.var_07,
57+
table.var_08, table.var_09, table.var_10, table.var_11, table.var_12,
58+
table.var_13, table.var_14, table.var_15, table.var_16))
5959
return SysLog{P}(basename(fullname[1:end-6]), colmeta, syslog)
6060
end

src/_log.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ function log!(logger::Logger, state::SysState)
2828
logger.azimuth_vec[i] = state.azimuth
2929
logger.l_tether_vec[i] .= state.l_tether
3030
logger.v_reelout_vec[i] .= state.v_reelout
31-
logger.force_vec[i] .= state.force
31+
logger.winch_force_vec[i] .= state.winch_force
3232
logger.depower_vec[i] = state.depower
3333
logger.steering_vec[i] = state.steering
3434
logger.kcu_steering_vec[i] = state.kcu_steering
@@ -50,6 +50,8 @@ function log!(logger::Logger, state::SysState)
5050
logger.CD2_vec[i] = state.CD2
5151
logger.aero_force_b_vec[i] .= state.aero_force_b
5252
logger.aero_moment_b_vec[i] .= state.aero_moment_b
53+
logger.tether_induced_force_vec[i] .= state.tether_induced_force
54+
logger.tether_induced_moment_vec[i] .= state.tether_induced_moment
5355
logger.twist_angles_vec[i] .= state.twist_angles
5456
logger.vel_kite_vec[i] .= state.vel_kite
5557
logger.acc_vec[i] = state.acc

src/_logger.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ $(TYPEDFIELDS)
3333
azimuth_vec::Vector{MyFloat} = zeros(MyFloat, Q)
3434
l_tether_vec::Vector{MVector{4, MyFloat}} = [zero(MVector{4, MyFloat}) for _ in 1:Q]
3535
v_reelout_vec::Vector{MVector{4, MyFloat}} = [zero(MVector{4, MyFloat}) for _ in 1:Q]
36-
force_vec::Vector{MVector{4, MyFloat}} = [zero(MVector{4, MyFloat}) for _ in 1:Q]
36+
winch_force_vec::Vector{MVector{4, MyFloat}} = [zero(MVector{4, MyFloat}) for _ in 1:Q]
3737
depower_vec::Vector{MyFloat} = zeros(MyFloat, Q)
3838
steering_vec::Vector{MyFloat} = zeros(MyFloat, Q)
3939
kcu_steering_vec::Vector{MyFloat} = zeros(MyFloat, Q)
@@ -55,6 +55,8 @@ $(TYPEDFIELDS)
5555
CD2_vec::Vector{MyFloat} = zeros(MyFloat, Q)
5656
aero_force_b_vec::Vector{MVector{3, MyFloat}} = [zero(MVector{3, MyFloat}) for _ in 1:Q]
5757
aero_moment_b_vec::Vector{MVector{3, MyFloat}} = [zero(MVector{3, MyFloat}) for _ in 1:Q]
58+
tether_induced_force_vec::Vector{MVector{3, MyFloat}} = [zero(MVector{3, MyFloat}) for _ in 1:Q]
59+
tether_induced_moment_vec::Vector{MVector{3, MyFloat}} = [zero(MVector{3, MyFloat}) for _ in 1:Q]
5860
twist_angles_vec::Vector{MVector{4, MyFloat}} = [zero(MVector{4, MyFloat}) for _ in 1:Q]
5961
vel_kite_vec::Vector{MVector{3, MyFloat}} = [zero(MVector{3, MyFloat}) for _ in 1:Q]
6062
acc_vec::Vector{MyFloat} = zeros(MyFloat, Q)

0 commit comments

Comments
 (0)