@@ -82,7 +82,8 @@ function linearize(winch, v_set, v_wind)
8282 B = finite_difference_jacobian (u -> system_dynamics (x0, u), u0)
8383 C = [1.0 ]
8484 D = [0.0 0.0 ]
85- siso_sys = ss (A, B[:, 1 ], C, D[:, 1 ])
85+ force = calc_force (v_wind, v_act)
86+ siso_sys = ss (A, B[:, 1 ], C, D[:, 1 ]) * force/ v_act
8687end
8788
8889function open_loop_system (winch, v_set, v_wind)
@@ -93,10 +94,14 @@ function open_loop_system(winch, v_set, v_wind)
9394 return C * sys
9495end
9596
96- for v_wind in range (1 , 9 , length= 9 )
97- local v_set, sys
97+ for v_wind in range (7.5 , 9 , length= 2 )
98+ global sys
99+ local v_set
98100 v_set = 0.57 * v_wind
99- @info " Linearizing for v_wind: $v_wind m/s, v_ro: $(round (v_set, digits= 2 )) m/s"
101+ # @info "Linearizing for v_wind: $v_wind m/s, v_ro: $(round(v_set, digits=2)) m/s"
100102 sys = open_loop_system (winch, v_set, v_wind)
101- bode_plot (sys; from= 0.76 , to= 2.85 , title= " Linearized System, v_wind=1..9 m/s" )
103+ gm, pm, wgm, wpm = margin (sys; adjust_phase_start= false )
104+ @info " Gain margin: $gm , Phase margin: $pm , Gain crossover frequency: $wgm , Phase crossover frequency: $wpm "
105+ bode_plot (sys; from= 0.76 , to= 2.85 , title= " Linearized System, v_wind=8..9 m/s" )
102106end
107+ sys
0 commit comments