BE_Commande/BE.m
2021-05-25 09:20:24 +02:00

67 lines
1.2 KiB
Matlab

%%
% BE de commande optimale
clc
%%
%Question 3
Ms = 1120/4; %kg
mu = 45; %kg
Ks = 20000; %N/m
Kt = 150000; %N/m
Cs = 1000; %N.s/m
Ct = 0.0; %N.s/m
% Représentation d'&état du système
A = [0 1 0 -1 ; -Ks/Ms -Cs/Ms 0 Cs/Ms; 0 0 0 1 ; Ks/mu Cs/mu -Kt/mu -(Cs+Ct)/mu];
B = [0 ; 1/Ms ; 0 ; -1/mu];
E = [0 ; 0 ; -1 ; Ct/mu];
C = [0 1 0 0 ; 0 0 0 1];
C_st=[0 1 0 0]
C_ut=[0 0 0 1]
% Création du système Caisse
sysZs = ss(A,E,C_st,0)
%Modification en fonction transfertx
tf_Zs = tf(sysZs)
% Création système Roue
sysZu = ss(A,E,C_ut,0)
%Modification en tf
tf_Zu = tf(sysZu)
%tracé de bode de nos deux sous systèmes
bode(tf_Zs,tf_Zu)
%%
% Question 5
% Mise en place de la commande optimale
Q=[Ks^2 0 0 0; 0 Cs^2 0 0; 0 0 Kt^2 0; 0 0 0 0];
R=1;
[G, K, lambda]=lqr(A,B,Q,R);
Abf=A-B*G;
sysZsBF = ss(Abf, E, C_st, 0);
Zs_BF = tf(sysZsBF)
sysZuBF = ss(Abf, E, C_ut, 0);
Zu_BF = tf(sysZuBF)
figure
bode(Zs_BF, Zu_BF);
%commande obtenue par u=-Gx, C=-G
C=-G;
commande=ss(Abf, E, C, 0)
%Réponse indicielle
figure
step(0.08*sysZsBF)
title("Réponse indicielle pous Zsbf")
figure
step(0.08*sysZuBF)
title("Réponse indicielle pour Zubf")