From 93f4f17a7d0f6fbbe18ca709c090d3ba79645eef Mon Sep 17 00:00:00 2001 From: Nolan Reynier-Nomer Date: Thu, 7 May 2026 16:58:58 +0200 Subject: [PATCH] q20 --- BE_Beam.m | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/BE_Beam.m b/BE_Beam.m index 59bfa90..f4866c5 100644 --- a/BE_Beam.m +++ b/BE_Beam.m @@ -354,10 +354,35 @@ if SAVE end %% +sys_aug = ss(A_aug, B_aug, [C, 0], 0); +for Ts = 0.01000:0.00001:0.01100 + if all(abs(eig(c2d(sys_aug,Ts,'zoh').A-c2d(sys_aug,Ts,'zoh').B*K_aug)) < 1) + ; + else + break + end +end +format long +Ts = (Ts-0.00001) -for Ts= -sys_integral_d = c2d(sys_integral, 0.5, 'zoh'); -t_d = 0:0.5:10; +Ts/5 + +%% +sys_aug_2 = ss(A_aug, [B_aug B_ref B_p_aug], [C 0], zeros(1,3)); + +sys_aug_d = c2d(sys_aug_2, Ts, 'zoh'); + +Ad2 = sys_aug_d.A; + +Bd_u = sys_aug_d.B(:,1); +Bd_ref = sys_aug_d.B(:,2); +Bd_p = sys_aug_d.B(:,3); + +sys_integral_d = ss(Ad2 - Bd_u*K_aug, [Bd_ref Bd_p], [C 0], [0 0], Ts); + +% sys_integral_d = ss(sys_aug_d.A - sys_aug_d.B*K_aug, [B_ref B_p_aug], [C, 0], [0 0], Ts); + +t_d = 0:Ts:10; cmd_d = double (t_d >= 1) ; q0_d = -5 * double(t_d >= 4); [y_d, t_d, x_d] = lsim(sys_integral_d, [cmd_d ; q0_d], t_d);