123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- %%
- % 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)
-
- %Tracé des steps de chacun des sous systèmesh
- figure
- step(tf_Zs)
- title("Réponse indicielle de la caisse")
-
- figure
- step(tf_Zu)
- title("Réponse indicielle de la roue")
-
- %%
- % 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);
-
- %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")
-
- % Variation de Q
- figure
- for i = [1:10]
- [G, K, lambda]=lqr(A,B,10*i*Q,R);
- Abf=A-B*G;
-
- sysZsBF = ss(Abf, E, C_st, 0);
- Zs_BF = tf(sysZsBF);
-
-
- step(0.08*sysZsBF);
-
- hold on;
- end
- title("Réponse indicielle Caisse en fonction de Q")
-
- figure
- for i= [1:10]
- [G, K, lambda]=lqr(A,B,10*i*Q,R);
- Abf=A-B*G;
- sysZuBF = ss(Abf, E, C_ut, 0);
- Zu_BF = tf(sysZuBF);
-
- step(0.08*sysZuBF);
-
- hold on;
- end
- title("Réponse indicielle Caisse en fonction de Q")
-
- %commande obtenue par u=-Gx, C=-G
- C=-G;
- commande=ss(Abf, E, C, 0)
|