diff --git a/CHANGELOG.md b/CHANGELOG.md index f316621..c2eeddf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### KiteUtils v0.11.0 26-08-2025 +#### Changed +- BREAKING: renamed c_spring to axial_stiffness and damping to axial_damping +#### Added +- the fields tether_induced_force and tether_induced_moment + ### KiteUtils v0.10.16 14-08-2025 #### Fixed - support subdirectories in data dir diff --git a/Project.toml b/Project.toml index affddc8..8701dd6 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "KiteUtils" uuid = "90980105-b163-44e5-ba9f-8b1c83bb0533" authors = ["Uwe Fechner and contributors"] -version = "0.10.16" +version = "0.11.0" [deps] Arrow = "69666777-d1a9-59fb-9406-91d4454c9d45" diff --git a/data/Test_flight.arrow b/data/Test_flight.arrow index b9042d9..5a4b278 100644 Binary files a/data/Test_flight.arrow and b/data/Test_flight.arrow differ diff --git a/data/settings.yaml b/data/settings.yaml index dcd74f7..5451a7e 100644 --- a/data/settings.yaml +++ b/data/settings.yaml @@ -69,8 +69,8 @@ kps4: cmq: 0.0 # pitch rate dependant moment coefficient [-] cord_length: 2.0 # average aerodynamic cord length of the kite [m] kps5: - c_spring_kite: 614600.0 # unit spring constant coefficient of the kite springs [N] - damping_kite_springs: 473.0 # unit damping coefficient [Ns] + axial_stiffness_kite: 614600.0 # unit spring constant coefficient of the kite springs [N] + axial_damping_kite: 473.0 # unit damping coefficient [Ns] rel_mass_p2: 0.25 # rel mass of p2 rel_mass_p3: 0.25 # rel mass of p3 rel_mass_p4: 0.25 # rel mass of p4 and p5 @@ -98,8 +98,8 @@ kcu: tether: d_tether: 4 # tether diameter [mm] cd_tether: 0.958 # drag coefficient of the tether - damping: 473.0 # unit damping coefficient [Ns] - c_spring: 614600.0 # unit spring constant coefficient [N] + axial_damping: 473.0 # unit damping coefficient [Ns] + axial_stiffness: 614600.0 # unit spring constant coefficient [N] rho_tether: 724.0 # density of Dyneema [kg/m³] e_tether: 5.5e10 # axial tensile modulus of Dyneema (M.B. Ruppert) [Pa] # SK75: 109 to 132 GPa according to datasheet diff --git a/data/settings2.yaml b/data/settings2.yaml index 18a0e52..ad197a3 100644 --- a/data/settings2.yaml +++ b/data/settings2.yaml @@ -88,8 +88,8 @@ kcu: tether: d_tether: 4 # tether diameter [mm] cd_tether: 0.958 # drag coefficient of the tether - damping: 473.0 # unit damping coefficient [Ns] - c_spring: 614600.0 # unit spring constant coefficient [N] + axial_damping: 473.0 # unit damping coefficient [Ns] + axial_stiffness: 614600.0 # unit spring constant coefficient [N] rho_tether: 724.0 # density of Dyneema [kg/m³] e_tether: 55000000000.0 # axial tensile modulus of Dyneema (M.B. Ruppert) [Pa] # SK75: 109 to 132 GPa according to datasheet diff --git a/data/settings_ram.yaml b/data/settings_ram.yaml index 882a3c7..f260cbb 100644 --- a/data/settings_ram.yaml +++ b/data/settings_ram.yaml @@ -52,7 +52,7 @@ tether: steering_tether_diameter: 1 # [mm] cd_tether: 0.958 # drag coefficient of the tether damping: 473.0 # unit damping coefficient [Ns] - c_spring: 614600.0 # unit spring constant coefficient [N] + axial_stiffness: 614600.0 # unit spring constant coefficient [N] rho_tether: 724.0 # density of Dyneema [kg/m³] e_tether: 55000000000.0 # axial tensile modulus of Dyneema (M.B. Ruppert) [Pa] # SK75: 109 to 132 GPa according to datasheet diff --git a/src/_demo_syslog.jl b/src/_demo_syslog.jl index ec4cb8a..2b2a535 100644 --- a/src/_demo_syslog.jl +++ b/src/_demo_syslog.jl @@ -26,7 +26,7 @@ function demo_syslog(P, name="Test flight"; duration=10) azimuth_vec = Vector{MyFloat}(undef, steps) l_tether_vec = Vector{MVector{4, MyFloat}}(undef, steps) v_reelout_vec = Vector{MVector{4, MyFloat}}(undef, steps) - force_vec = Vector{MVector{4, MyFloat}}(undef, steps) + winch_force_vec = Vector{MVector{4, MyFloat}}(undef, steps) depower_vec = Vector{MyFloat}(undef, steps) steering_vec = Vector{MyFloat}(undef, steps) kcu_steering_vec = Vector{MyFloat}(undef, steps) @@ -48,6 +48,8 @@ function demo_syslog(P, name="Test flight"; duration=10) CD2_vec = Vector{MyFloat}(undef, steps) aero_force_b_vec = Vector{MVector{3, MyFloat}}(undef, steps) aero_moment_b_vec = Vector{MVector{3, MyFloat}}(undef, steps) + tether_induced_force_vec = Vector{MVector{3, MyFloat}}(undef, steps) + tether_induced_moment_vec = Vector{MVector{3, MyFloat}}(undef, steps) twist_angles_vec = Vector{MVector{4, MyFloat}}(undef, steps) vel_kite_vec = Vector{MVector{3, MyFloat}}(undef, steps) acc_vec = Vector{MyFloat}(undef, steps) @@ -91,7 +93,7 @@ function demo_syslog(P, name="Test flight"; duration=10) azimuth_vec[i+1] = state.azimuth l_tether_vec[i+1] = state.l_tether v_reelout_vec[i+1] = state.v_reelout - force_vec[i+1] = state.force + winch_force_vec[i+1] = state.winch_force depower_vec[i+1] = state.depower steering_vec[i+1] = state.steering kcu_steering_vec[i+1] = state.kcu_steering @@ -113,6 +115,8 @@ function demo_syslog(P, name="Test flight"; duration=10) CD2_vec[i+1] = state.CD2 aero_force_b_vec[i+1] = state.aero_force_b aero_moment_b_vec[i+1] = state.aero_moment_b + tether_induced_force_vec[i+1] = state.tether_induced_force + tether_induced_moment_vec[i+1] = state.tether_induced_moment twist_angles_vec[i+1] = state.twist_angles vel_kite_vec[i+1] = state.vel_kite acc_vec[i+1] = state.acc @@ -144,13 +148,13 @@ function demo_syslog(P, name="Test flight"; duration=10) end StructArray{SysState{P}}((time_vec, t_sim_vec, sys_state_vec, cycle_vec, fig_8_vec, e_mech_vec, orient_vec, turn_rates_vec, elevation_vec, azimuth_vec, l_tether_vec, v_reelout_vec, - force_vec, depower_vec, steering_vec, kcu_steering_vec, set_steering_vec, heading_vec, + winch_force_vec, depower_vec, steering_vec, kcu_steering_vec, set_steering_vec, heading_vec, heading_rate_vec, course_vec, bearing_vec, attractor_vec, v_app_vec, v_wind_gnd_vec, v_wind_200m_vec, v_wind_kite_vec, AoA_vec, side_slip_vec, alpha3_vec, alpha4_vec, - CL2_vec, CD2_vec, aero_force_b_vec, aero_moment_b_vec, twist_angles_vec, vel_kite_vec, - acc_vec, X_vec, Y_vec, Z_vec, set_torque_vec, set_speed_vec, - set_force_vec, roll_vec, pitch_vec, yaw_vec, var_01_vec, var_02_vec, - var_03_vec, var_04_vec, var_05_vec, var_06_vec, var_07_vec, var_08_vec, - var_09_vec, var_10_vec, var_11_vec, var_12_vec, var_13_vec, var_14_vec, - var_15_vec, var_16_vec)) + CL2_vec, CD2_vec, aero_force_b_vec, aero_moment_b_vec, tether_induced_force_vec, tether_induced_moment_vec, + twist_angles_vec, vel_kite_vec, acc_vec, X_vec, Y_vec, Z_vec, + set_torque_vec, set_speed_vec, set_force_vec, roll_vec, pitch_vec, yaw_vec, + var_01_vec, var_02_vec, var_03_vec, var_04_vec, var_05_vec, var_06_vec, + var_07_vec, var_08_vec, var_09_vec, var_10_vec, var_11_vec, var_12_vec, + var_13_vec, var_14_vec, var_15_vec, var_16_vec)) end diff --git a/src/_load_log.jl b/src/_load_log.jl index 937b934..62e51da 100644 --- a/src/_load_log.jl +++ b/src/_load_log.jl @@ -45,16 +45,16 @@ function load_log(filename::String; path="") # example_metadata = KiteUtils.Arrow.getmetadata(table.var_01) syslog = StructArray{SysState{P}}((table.time, table.t_sim, table.sys_state, table.cycle, table.fig_8, table.e_mech, table.orient, table.turn_rates, table.elevation, table.azimuth, - table.l_tether, table.v_reelout, table.force, table.depower, table.steering, + table.l_tether, table.v_reelout, table.winch_force, table.depower, table.steering, table.kcu_steering, table.set_steering, table.heading, table.heading_rate, table.course, table.bearing, table.attractor, table.v_app, table.v_wind_gnd, table.v_wind_200m, table.v_wind_kite, table.AoA, table.side_slip, table.alpha3, table.alpha4, - table.CL2, table.CD2, table.aero_force_b, table.aero_moment_b, table.twist_angles, - table.vel_kite, table.acc, table.X, table.Y, table.Z, - table.set_torque, table.set_speed, table.set_force, table.roll, table.pitch, - table.yaw, table.var_01, table.var_02, table.var_03, table.var_04, - table.var_05, table.var_06, table.var_07, table.var_08, table.var_09, - table.var_10, table.var_11, table.var_12, table.var_13, table.var_14, - table.var_15, table.var_16)) + table.CL2, table.CD2, table.aero_force_b, table.aero_moment_b, table.tether_induced_force, + table.tether_induced_moment, table.twist_angles, table.vel_kite, table.acc, table.X, + table.Y, table.Z, table.set_torque, table.set_speed, table.set_force, + table.roll, table.pitch, table.yaw, table.var_01, table.var_02, + table.var_03, table.var_04, table.var_05, table.var_06, table.var_07, + table.var_08, table.var_09, table.var_10, table.var_11, table.var_12, + table.var_13, table.var_14, table.var_15, table.var_16)) return SysLog{P}(basename(fullname[1:end-6]), colmeta, syslog) end diff --git a/src/_log.jl b/src/_log.jl index ff7ac85..5c6c9fa 100644 --- a/src/_log.jl +++ b/src/_log.jl @@ -28,7 +28,7 @@ function log!(logger::Logger, state::SysState) logger.azimuth_vec[i] = state.azimuth logger.l_tether_vec[i] .= state.l_tether logger.v_reelout_vec[i] .= state.v_reelout - logger.force_vec[i] .= state.force + logger.winch_force_vec[i] .= state.winch_force logger.depower_vec[i] = state.depower logger.steering_vec[i] = state.steering logger.kcu_steering_vec[i] = state.kcu_steering @@ -50,6 +50,8 @@ function log!(logger::Logger, state::SysState) logger.CD2_vec[i] = state.CD2 logger.aero_force_b_vec[i] .= state.aero_force_b logger.aero_moment_b_vec[i] .= state.aero_moment_b + logger.tether_induced_force_vec[i] .= state.tether_induced_force + logger.tether_induced_moment_vec[i] .= state.tether_induced_moment logger.twist_angles_vec[i] .= state.twist_angles logger.vel_kite_vec[i] .= state.vel_kite logger.acc_vec[i] = state.acc diff --git a/src/_logger.jl b/src/_logger.jl index e4dbb8f..53683e8 100644 --- a/src/_logger.jl +++ b/src/_logger.jl @@ -33,7 +33,7 @@ $(TYPEDFIELDS) azimuth_vec::Vector{MyFloat} = zeros(MyFloat, Q) l_tether_vec::Vector{MVector{4, MyFloat}} = [zero(MVector{4, MyFloat}) for _ in 1:Q] v_reelout_vec::Vector{MVector{4, MyFloat}} = [zero(MVector{4, MyFloat}) for _ in 1:Q] - force_vec::Vector{MVector{4, MyFloat}} = [zero(MVector{4, MyFloat}) for _ in 1:Q] + winch_force_vec::Vector{MVector{4, MyFloat}} = [zero(MVector{4, MyFloat}) for _ in 1:Q] depower_vec::Vector{MyFloat} = zeros(MyFloat, Q) steering_vec::Vector{MyFloat} = zeros(MyFloat, Q) kcu_steering_vec::Vector{MyFloat} = zeros(MyFloat, Q) @@ -55,6 +55,8 @@ $(TYPEDFIELDS) CD2_vec::Vector{MyFloat} = zeros(MyFloat, Q) aero_force_b_vec::Vector{MVector{3, MyFloat}} = [zero(MVector{3, MyFloat}) for _ in 1:Q] aero_moment_b_vec::Vector{MVector{3, MyFloat}} = [zero(MVector{3, MyFloat}) for _ in 1:Q] + tether_induced_force_vec::Vector{MVector{3, MyFloat}} = [zero(MVector{3, MyFloat}) for _ in 1:Q] + tether_induced_moment_vec::Vector{MVector{3, MyFloat}} = [zero(MVector{3, MyFloat}) for _ in 1:Q] twist_angles_vec::Vector{MVector{4, MyFloat}} = [zero(MVector{4, MyFloat}) for _ in 1:Q] vel_kite_vec::Vector{MVector{3, MyFloat}} = [zero(MVector{3, MyFloat}) for _ in 1:Q] acc_vec::Vector{MyFloat} = zeros(MyFloat, Q) diff --git a/src/_save_log.jl b/src/_save_log.jl index 32ffec3..0c5d397 100644 --- a/src/_save_log.jl +++ b/src/_save_log.jl @@ -61,7 +61,7 @@ function save_log(logger::Logger, name="sim_log", compress=true; resize!(logger.azimuth_vec, nl) resize!(logger.l_tether_vec, nl) resize!(logger.v_reelout_vec, nl) - resize!(logger.force_vec, nl) + resize!(logger.winch_force_vec, nl) resize!(logger.depower_vec, nl) resize!(logger.steering_vec, nl) resize!(logger.kcu_steering_vec, nl) @@ -83,6 +83,8 @@ function save_log(logger::Logger, name="sim_log", compress=true; resize!(logger.CD2_vec, nl) resize!(logger.aero_force_b_vec, nl) resize!(logger.aero_moment_b_vec, nl) + resize!(logger.tether_induced_force_vec, nl) + resize!(logger.tether_induced_moment_vec, nl) resize!(logger.twist_angles_vec, nl) resize!(logger.vel_kite_vec, nl) resize!(logger.acc_vec, nl) diff --git a/src/_show.jl b/src/_show.jl index e5c6769..8ad62e7 100644 --- a/src/_show.jl +++ b/src/_show.jl @@ -18,7 +18,7 @@ function Base.show(io::IO, st::SysState) println(io, "azimuth [rad]: ", st.azimuth) println(io, "l_tether [m]: ", st.l_tether) println(io, "v_reelout [m/s]: ", st.v_reelout) - println(io, "force [N]: ", st.force) + println(io, "winch_force [N]: ", st.winch_force) println(io, "depower [0..1]: ", st.depower) println(io, "steering [-1..1]: ", st.steering) println(io, "kcu_steering [-1..1]:", st.kcu_steering) @@ -40,6 +40,8 @@ function Base.show(io::IO, st::SysState) println(io, "CD2 [-]: ", st.CD2) println(io, "aero_force_b [N]: ", st.aero_force_b) println(io, "aero_moment_b [Nm]:", st.aero_moment_b) + println(io, "tether_induced_force [N]:", st.tether_induced_force) + println(io, "tether_induced_moment [Nm]:", st.tether_induced_moment) println(io, "twist_angles [rad]:", st.twist_angles) println(io, "vel_kite [m/s]: ", st.vel_kite) println(io, "acc [m/s²]: ", st.acc) diff --git a/src/_syslog.jl b/src/_syslog.jl index 069422f..321480b 100644 --- a/src/_syslog.jl +++ b/src/_syslog.jl @@ -9,15 +9,15 @@ function syslog(logger::Logger) l = logger StructArray{SysState{l.points}}((l.time_vec, l.t_sim_vec, l.sys_state_vec, l.cycle_vec, l.fig_8_vec, l.e_mech_vec, l.orient_vec, l.turn_rates_vec, l.elevation_vec, l.azimuth_vec, - l.l_tether_vec, l.v_reelout_vec, l.force_vec, l.depower_vec, l.steering_vec, + l.l_tether_vec, l.v_reelout_vec, l.winch_force_vec, l.depower_vec, l.steering_vec, l.kcu_steering_vec, l.set_steering_vec, l.heading_vec, l.heading_rate_vec, l.course_vec, l.bearing_vec, l.attractor_vec, l.v_app_vec, l.v_wind_gnd_vec, l.v_wind_200m_vec, l.v_wind_kite_vec, l.AoA_vec, l.side_slip_vec, l.alpha3_vec, l.alpha4_vec, - l.CL2_vec, l.CD2_vec, l.aero_force_b_vec, l.aero_moment_b_vec, l.twist_angles_vec, - l.vel_kite_vec, l.acc_vec, l.X_vec, l.Y_vec, l.Z_vec, - l.set_torque_vec, l.set_speed_vec, l.set_force_vec, l.roll_vec, l.pitch_vec, - l.yaw_vec, l.var_01_vec, l.var_02_vec, l.var_03_vec, l.var_04_vec, - l.var_05_vec, l.var_06_vec, l.var_07_vec, l.var_08_vec, l.var_09_vec, - l.var_10_vec, l.var_11_vec, l.var_12_vec, l.var_13_vec, l.var_14_vec, - l.var_15_vec, l.var_16_vec)) + l.CL2_vec, l.CD2_vec, l.aero_force_b_vec, l.aero_moment_b_vec, l.tether_induced_force_vec, + l.tether_induced_moment_vec, l.twist_angles_vec, l.vel_kite_vec, l.acc_vec, l.X_vec, + l.Y_vec, l.Z_vec, l.set_torque_vec, l.set_speed_vec, l.set_force_vec, + l.roll_vec, l.pitch_vec, l.yaw_vec, l.var_01_vec, l.var_02_vec, + l.var_03_vec, l.var_04_vec, l.var_05_vec, l.var_06_vec, l.var_07_vec, + l.var_08_vec, l.var_09_vec, l.var_10_vec, l.var_11_vec, l.var_12_vec, + l.var_13_vec, l.var_14_vec, l.var_15_vec, l.var_16_vec)) end diff --git a/src/_sysstate.jl b/src/_sysstate.jl index 3f72b28..1220a13 100644 --- a/src/_sysstate.jl +++ b/src/_sysstate.jl @@ -38,8 +38,8 @@ Base.@kwdef mutable struct SysState{P} l_tether::MVector{4, MyFloat} = [0.0, 0.0, 0.0, 0.0] "reelout speed, tether 1 to 4 [m/s]" v_reelout::MVector{4, MyFloat} = [0.0, 0.0, 0.0, 0.0] - "tether force, tether 1 to 4 [N]" - force::MVector{4, MyFloat} = [0.0, 0.0, 0.0, 0.0] + "tether force at the winch, tether 1 to 4 [N]" + winch_force::MVector{4, MyFloat} = [0.0, 0.0, 0.0, 0.0] "depower settings [0..1]" depower::MyFloat = 0 "actual steering [-1..1]" @@ -82,6 +82,10 @@ Base.@kwdef mutable struct SysState{P} aero_force_b::MVector{3, MyFloat} = [0.0, 0.0, 0.0] "aerodynamic moment in KB reference frame [Nm]" aero_moment_b::MVector{3, MyFloat} = [0.0, 0.0, 0.0] + "net tether force vector acting on kite [N]" + tether_induced_force::MVector{3, MyFloat} = [0.0, 0.0, 0.0] + "net tether moment acting on kite [Nm]" + tether_induced_moment::MVector{3, MyFloat} = [0.0, 0.0, 0.0] "twist angles for the 4 segment groups [rad]" twist_angles::MVector{4, MyFloat} = [0.0, 0.0, 0.0, 0.0] "velocity vector of the kite [m/s]" diff --git a/src/load_log.jl b/src/load_log.jl index dc1735f..f8d862f 100644 --- a/src/load_log.jl +++ b/src/load_log.jl @@ -62,6 +62,8 @@ function load_log(filename::String; path="", debug=false) CD2 = Vector{Float32}(undef, n) aero_force_b = Vector{MVector{3, Float32}}(undef, n) aero_moment_b = Vector{MVector{3, Float32}}(undef, n) + tether_induced_force = Vector{MVector{3, Float32}}(undef, n) + tether_induced_moment = Vector{MVector{3, Float32}}(undef, n) twist_angles = Vector{MVector{4, Float32}}(undef, n) acc = Vector{Float32}(undef, n) set_torque = Vector{MVector{4, Float32}}(undef, n) @@ -70,12 +72,14 @@ function load_log(filename::String; path="", debug=false) roll = Vector{Float32}(undef, n) pitch = Vector{Float32}(undef, n) yaw = Vector{Float32}(undef, n) + winch_force = Vector{MVector{4, Float32}}(undef, n) for name in [:cycle, :fig_8, :turn_rates, :kcu_steering, :set_steering, :heading_rate, :bearing, :attractor, :v_wind_gnd, :v_wind_200m, :v_wind_kite, :AoA, :side_slip, :alpha3, :alpha4, :CL2, :CD2, - :aero_force_b, :aero_moment_b, :twist_angles, :acc, :set_torque, :set_speed, - :set_force, :roll, :pitch, :yaw] + :aero_force_b, :aero_moment_b, :tether_induced_force, :tether_induced_moment, + :twist_angles, :acc, :set_torque, :set_speed, + :set_force, :roll, :pitch, :yaw, :force, :winch_force] if haskey(table, name) if name == :cycle cycle = table.cycle @@ -115,6 +119,10 @@ function load_log(filename::String; path="", debug=false) aero_force_b = table.aero_force_b elseif name == :aero_moment_b aero_moment_b = table.aero_moment_b + elseif name == :tether_induced_force + tether_induced_force = table.tether_induced_force + elseif name == :tether_induced_moment + tether_induced_moment = table.tether_induced_moment elseif name == :twist_angles twist_angles = table.twist_angles elseif name == :acc @@ -131,6 +139,10 @@ function load_log(filename::String; path="", debug=false) pitch = table.pitch elseif name == :yaw yaw = table.yaw + elseif name == :force + winch_force = table.force + elseif name == :winch_force + winch_force = table.winch_force else error("Unknown field: $name") end @@ -140,11 +152,12 @@ function load_log(filename::String; path="", debug=false) end syslog = StructArray{SysState{P}}((table.time, table.t_sim, table.sys_state, cycle, fig_8, table.e_mech, table.orient, turn_rates, table.elevation, table.azimuth, - table.l_tether, table.v_reelout, table.force, table.depower, table.steering, + table.l_tether, table.v_reelout, winch_force, table.depower, table.steering, kcu_steering, set_steering, table.heading, heading_rate, table.course, bearing, attractor, table.v_app, v_wind_gnd, v_wind_200m, v_wind_kite, AoA, side_slip, alpha3, alpha4, - CL2, CD2, aero_force_b, aero_moment_b, twist_angles, + CL2, CD2, aero_force_b, aero_moment_b, tether_induced_force, + tether_induced_moment, twist_angles, table.vel_kite, acc, table.X, table.Y, table.Z, set_torque, set_speed, set_force, roll, pitch, yaw, table.var_01, table.var_02, table.var_03, table.var_04, diff --git a/src/logger.jl b/src/logger.jl index c5972ca..743b3a1 100644 --- a/src/logger.jl +++ b/src/logger.jl @@ -107,7 +107,11 @@ function import_log(filename) ss.azimuth = row.azimuth ss.l_tether[1] = row.l_tether ss.v_reelout[1] = row.v_reelout - ss.force[1] = row.force + if haskey(row, :winch_force) + ss.winch_force[1] = row.winch_force + else + ss.winch_force[1] = row.force + end ss.depower = row.depower ss.steering = row.steering ss.heading = row.heading @@ -142,4 +146,4 @@ function import_log(filename) :var_16 => ["name" => "var_16"] ) SysLog{P}(filename, colmeta, syslog(logger)) -end \ No newline at end of file +end diff --git a/src/settings.jl b/src/settings.jl index 3ac8df5..6b7a300 100644 --- a/src/settings.jl +++ b/src/settings.jl @@ -142,9 +142,9 @@ $(TYPEDFIELDS) # KPS5 specific parameters "unit spring constant coefficient of the kite springs [N]" - c_spring_kite = 0 + axial_stiffness_kite = 0 "unit damping coefficient of the kite springs [Ns]" - damping_kite_springs = 0 + axial_damping_kite = 0 "relative mass of p2" rel_mass_p2 = 0 "relative mass of p3" @@ -215,9 +215,9 @@ $(TYPEDFIELDS) "drag coefficient of the tether" cd_tether = 0 "unit damping coefficient [Ns]" - damping = 0 + axial_damping = 0 "unit spring constant coefficient [N]" - c_spring = 0 + axial_stiffness = 0 "density of Dyneema [kg/m³]" rho_tether = 0 "axial tensile modulus of the tether [Pa]" diff --git a/src/sysstate.yaml b/src/sysstate.yaml index a2c190f..083c20b 100644 --- a/src/sysstate.yaml +++ b/src/sysstate.yaml @@ -11,7 +11,7 @@ sysstate: azimuth: "MyFloat" # azimuth angle in wind reference frame [rad] l_tether: "MVector{4, MyFloat}" # tether length, tether 1 to 4 [m] v_reelout: "MVector{4, MyFloat}" # reelout speed, tether 1 to 4 [m/s] - force: "MVector{4, MyFloat}" # tether force, tether 1 to 4 [N] + winch_force: "MVector{4, MyFloat}" # tether force at the winch, tether 1 to 4 [N] depower: "MyFloat" # depower settings [0..1] steering: "MyFloat" # actual steering [-1..1] kcu_steering: "MyFloat" # steering after the kcu, before applying offset and depower scaling [-1..1] @@ -33,6 +33,8 @@ sysstate: CD2: "MyFloat" # drag coefficient aero_force_b: "MVector{3, MyFloat}" # aerodynamic force in KB reference frame [N] aero_moment_b: "MVector{3, MyFloat}" # aerodynamic moment in KB reference frame [Nm] + tether_induced_force: "MVector{3, MyFloat}" # net tether force vector acting on kite [N] + tether_induced_moment: "MVector{3, MyFloat}" # net tether moment acting on kite [Nm] twist_angles: "MVector{4, MyFloat}" # twist angles for the 4 segment groups [rad] vel_kite: "MVector{3, MyFloat}" # velocity vector of the kite [m/s] acc: "MyFloat" # acceleration [m/s²] @@ -60,4 +62,4 @@ sysstate: var_13: "MyFloat" # generic variable 13 var_14: "MyFloat" # generic variable 14 var_15: "MyFloat" # generic variable 15 - var_16: "MyFloat" # generic variable 16 \ No newline at end of file + var_16: "MyFloat" # generic variable 16