diff --git a/docs/src/step_response_kcu1.png b/docs/src/step_response_kcu1.png new file mode 100644 index 0000000..b1fdbb8 Binary files /dev/null and b/docs/src/step_response_kcu1.png differ diff --git a/docs/src/step_response_kcu2.png b/docs/src/step_response_kcu2.png new file mode 100644 index 0000000..3a6250a Binary files /dev/null and b/docs/src/step_response_kcu2.png differ diff --git a/examples/plot_step_response.jl b/examples/plot_step_response_kcu1.jl similarity index 64% rename from examples/plot_step_response.jl rename to examples/plot_step_response_kcu1.jl index 546bcf6..b38370e 100644 --- a/examples/plot_step_response.jl +++ b/examples/plot_step_response_kcu1.jl @@ -1,20 +1,20 @@ using Pkg -if ! haskey(Pkg.installed(), "ControlPlots") +if ! ("ControlPlots" ∈ keys(Pkg.project().dependencies)) using TestEnv; TestEnv.activate() end using KitePodModels, ControlPlots -const t_end = 10.0 # simulation time -const dt = 1.0 / se().sample_freq +t_end = 10.0 # simulation time +dt = 1.0 / se().sample_freq kcu = KCU(se()) -const times = Float64[] -const depower = Float64[] -const depower_set = Float64[] -const steering = Float64[] -const steering_set = Float64[] -const rel_depower_offset = se().depower_offset/100.0 +times = Float64[] +depower = Float64[] +depower_set = Float64[] +steering = Float64[] +steering_set = Float64[] +rel_depower_offset = se().depower_offset/100.0 for step in 1:Int(round(t_end/dt)) time = step * dt if step < 20 @@ -32,7 +32,7 @@ for step in 1:Int(round(t_end/dt)) push!(steering, get_steering(kcu)) end p = plotx(times, [depower, depower_set], [steering, steering_set]; ylabels=["depower","steering"], - labels=[["depower","depower_set"], ["steering", "steering_set"]], fig="step_response") + labels=[["depower","depower_set"], ["steering", "steering_set"]], fig="step_response KCU1") display(p) -savefig("docs/src/step_response.png") -println("Saved step response in docs/src/step_response.png !") \ No newline at end of file +savefig("docs/src/step_response_kcu1.png") +println("Saved step response in docs/src/step_response_kcu2.png !") \ No newline at end of file diff --git a/examples/plot_step_response_kcu2.jl b/examples/plot_step_response_kcu2.jl new file mode 100644 index 0000000..b541f40 --- /dev/null +++ b/examples/plot_step_response_kcu2.jl @@ -0,0 +1,39 @@ +using Pkg +if ! ("ControlPlots" ∈ keys(Pkg.project().dependencies)) + using TestEnv; TestEnv.activate() +end +using KitePodModels, ControlPlots + +set = se("system2.yaml") + +t_end = 10.0 # simulation time +dt = 1.0 / set.sample_freq # sampling time +kcu = KCU(set) + +times = Float64[] +depower = Float64[] +depower_set = Float64[] +steering = Float64[] +steering_set = Float64[] +rel_depower_offset = set.depower_offset/100.0 +for step in 1:Int(round(t_end/dt)) + time = step * dt + if step < 20 + set_depower_steering(kcu, rel_depower_offset, 0.0) + push!(depower_set, rel_depower_offset) + push!(steering_set, 0.0) + else + set_depower_steering(kcu, rel_depower_offset+0.24, 0.5) + push!(depower_set, rel_depower_offset+0.24) + push!(steering_set, 0.5) + end + push!(times, time) + KitePodModels.on_timer(kcu) + push!(depower, get_depower(kcu)) + push!(steering, get_steering(kcu)) +end +p = plotx(times, [depower, depower_set], [steering, steering_set]; ylabels=["depower","steering"], + labels=[["depower","depower_set"], ["steering", "steering_set"]], fig="step_response KCU2") +display(p) +savefig("docs/src/step_response_kcu2.png") +println("Saved step response in docs/src/step_response.png_kcu2 !") \ No newline at end of file