From 0698310d9abfea333615419ec2449255b82f1263 Mon Sep 17 00:00:00 2001 From: Uwe Fechner Date: Wed, 22 Jan 2025 17:03:54 +0100 Subject: [PATCH] Add field kcu_steering (#74) * add field kcu_steering * bump version --------- Co-authored-by: Uwe Fechner --- CHANGELOG.md | 3 +++ Project.toml | 2 +- src/_demo_syslog.jl | 18 ++++++++++-------- src/_load_log.jl | 20 ++++++++++---------- src/_log.jl | 1 + src/_logger.jl | 1 + src/_save_log.jl | 1 + src/_show.jl | 1 + src/_syslog.jl | 20 ++++++++++---------- src/_sysstate.jl | 2 ++ src/sysstate.yaml | 1 + 11 files changed, 41 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 04b47f2..881c5b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ # Changelog +### KiteUtils v0.9.7 - 2025-01-22 +- add field `kcu_steering` + ### KiteUtils v0.9.6 - 2024-12-19 #### Added - function `KiteUtils.install_examples()` diff --git a/Project.toml b/Project.toml index 86449d8..bc657b0 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.9.6" +version = "0.9.7" [deps] Arrow = "69666777-d1a9-59fb-9406-91d4454c9d45" diff --git a/src/_demo_syslog.jl b/src/_demo_syslog.jl index bef099d..253df3a 100644 --- a/src/_demo_syslog.jl +++ b/src/_demo_syslog.jl @@ -25,6 +25,7 @@ function demo_syslog(P, name="Test flight"; duration=10) force_vec = Vector{MyFloat}(undef, steps) depower_vec = Vector{MyFloat}(undef, steps) steering_vec = Vector{MyFloat}(undef, steps) + kcu_steering_vec = Vector{MyFloat}(undef, steps) set_steering_vec = Vector{MyFloat}(undef, steps) heading_vec = Vector{MyFloat}(undef, steps) heading_rate_vec = Vector{MyFloat}(undef, steps) @@ -84,6 +85,7 @@ function demo_syslog(P, name="Test flight"; duration=10) force_vec[i+1] = state.force depower_vec[i+1] = state.depower steering_vec[i+1] = state.steering + kcu_steering_vec[i+1] = state.kcu_steering set_steering_vec[i+1] = state.set_steering heading_vec[i+1] = state.heading heading_rate_vec[i+1] = state.heading_rate @@ -129,12 +131,12 @@ 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, elevation_vec, azimuth_vec, l_tether_vec, v_reelout_vec, force_vec, - depower_vec, 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, alpha3_vec, alpha4_vec, CL2_vec, CD2_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)) + 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, alpha3_vec, alpha4_vec, CL2_vec, CD2_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 b219160..a8729bb 100644 --- a/src/_load_log.jl +++ b/src/_load_log.jl @@ -42,15 +42,15 @@ 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.elevation, table.azimuth, table.l_tether, - table.v_reelout, table.force, table.depower, table.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.alpha3, table.alpha4, table.CL2, table.CD2, 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.v_reelout, table.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.alpha3, table.alpha4, table.CL2, table.CD2, + 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 8ec49b1..f618109 100644 --- a/src/_log.jl +++ b/src/_log.jl @@ -27,6 +27,7 @@ function log!(logger::Logger, state::SysState) logger.force_vec[i] = state.force logger.depower_vec[i] = state.depower logger.steering_vec[i] = state.steering + logger.kcu_steering_vec[i] = state.kcu_steering logger.set_steering_vec[i] = state.set_steering logger.heading_vec[i] = state.heading logger.heading_rate_vec[i] = state.heading_rate diff --git a/src/_logger.jl b/src/_logger.jl index db19a15..df4d9bf 100644 --- a/src/_logger.jl +++ b/src/_logger.jl @@ -32,6 +32,7 @@ $(TYPEDFIELDS) force_vec::Vector{MyFloat} = zeros(MyFloat, Q) depower_vec::Vector{MyFloat} = zeros(MyFloat, Q) steering_vec::Vector{MyFloat} = zeros(MyFloat, Q) + kcu_steering_vec::Vector{MyFloat} = zeros(MyFloat, Q) set_steering_vec::Vector{MyFloat} = zeros(MyFloat, Q) heading_vec::Vector{MyFloat} = zeros(MyFloat, Q) heading_rate_vec::Vector{MyFloat} = zeros(MyFloat, Q) diff --git a/src/_save_log.jl b/src/_save_log.jl index 07d7205..7d34959 100644 --- a/src/_save_log.jl +++ b/src/_save_log.jl @@ -60,6 +60,7 @@ function save_log(logger::Logger, name="sim_log", compress=true; resize!(logger.force_vec, nl) resize!(logger.depower_vec, nl) resize!(logger.steering_vec, nl) + resize!(logger.kcu_steering_vec, nl) resize!(logger.set_steering_vec, nl) resize!(logger.heading_vec, nl) resize!(logger.heading_rate_vec, nl) diff --git a/src/_show.jl b/src/_show.jl index 3b7a768..4281177 100644 --- a/src/_show.jl +++ b/src/_show.jl @@ -17,6 +17,7 @@ function Base.show(io::IO, st::SysState) println(io, "force [N]: ", st.force) println(io, "depower [0..1]: ", st.depower) println(io, "steering [-1..1]: ", st.steering) + println(io, "kcu_steering [-1..1]:", st.kcu_steering) println(io, "set_steering [-1..1]:", st.set_steering) println(io, "heading [rad]: ", st.heading) println(io, "heading_rate [rad/s]:", st.heading_rate) diff --git a/src/_syslog.jl b/src/_syslog.jl index da95332..336d952 100644 --- a/src/_syslog.jl +++ b/src/_syslog.jl @@ -6,14 +6,14 @@ 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.elevation_vec, l.azimuth_vec, l.l_tether_vec, - l.v_reelout_vec, l.force_vec, l.depower_vec, l.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.alpha3_vec, l.alpha4_vec, l.CL2_vec, l.CD2_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.v_reelout_vec, l.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.alpha3_vec, l.alpha4_vec, l.CL2_vec, l.CD2_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 532b87e..d9e8883 100644 --- a/src/_sysstate.jl +++ b/src/_sysstate.jl @@ -39,6 +39,8 @@ Base.@kwdef mutable struct SysState{P} depower::MyFloat = 0 "actual steering [-1..1]" steering::MyFloat = 0 + "steering after the kcu, before applying offset and depower scaling [-1..1]" + kcu_steering::MyFloat = 0 "set value of the steering [-1..1]" set_steering::MyFloat = 0 "heading angle [rad]" diff --git a/src/sysstate.yaml b/src/sysstate.yaml index a050e54..fe3dd86 100644 --- a/src/sysstate.yaml +++ b/src/sysstate.yaml @@ -13,6 +13,7 @@ sysstate: force: "MyFloat" # tether force [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] set_steering: "MyFloat" # set value of the steering [-1..1] heading: "MyFloat" # heading angle [rad] heading_rate: "MyFloat" # heading rate [rad/s]