No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BE.m 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. %%
  2. % BE de commande optimale
  3. clc
  4. %%
  5. %Question 3
  6. Ms = 1120/4; %kg
  7. mu = 45; %kg
  8. Ks = 20000; %N/m
  9. Kt = 150000; %N/m
  10. Cs = 1000; %N.s/m
  11. Ct = 0.0; %N.s/m
  12. % Représentation d'&état du système
  13. 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];
  14. B = [0 ; 1/Ms ; 0 ; -1/mu];
  15. E = [0 ; 0 ; -1 ; Ct/mu];
  16. C = [0 1 0 0 ; 0 0 0 1];
  17. C_st=[0 1 0 0]
  18. C_ut=[0 0 0 1]
  19. % Création du système Caisse
  20. sysZs = ss(A,E,C_st,0)
  21. %Modification en fonction transfertx
  22. tf_Zs = tf(sysZs)
  23. % Création système Roue
  24. sysZu = ss(A,E,C_ut,0)
  25. %Modification en tf
  26. tf_Zu = tf(sysZu)
  27. %tracé de bode de nos deux sous systèmes
  28. bode(tf_Zs,tf_Zu)
  29. %Tracé des steps de chacun des sous systèmesh
  30. figure
  31. step(tf_Zs)
  32. title("Réponse indicielle de la caisse")
  33. figure
  34. step(tf_Zu)
  35. title("Réponse indicielle de la roue")
  36. %%
  37. % Question 5
  38. % Mise en place de la commande optimale
  39. Q=[Ks^2 0 0 0; 0 Cs^2 0 0; 0 0 Kt^2 0; 0 0 0 0];
  40. R=1;
  41. [G, K, lambda]=lqr(A,B,Q,R);
  42. Abf=A-B*G;
  43. sysZsBF = ss(Abf, E, C_st, 0);
  44. Zs_BF = tf(sysZsBF)
  45. sysZuBF = ss(Abf, E, C_ut, 0);
  46. Zu_BF = tf(sysZuBF)
  47. figure
  48. bode(Zs_BF, Zu_BF);
  49. %Réponse indicielle
  50. figure
  51. step(0.08*sysZsBF)
  52. title("Réponse indicielle pous ZsBF")
  53. figure
  54. step(0.08*sysZuBF)
  55. title("Réponse indicielle pour ZuBF")
  56. % Variation de Q
  57. figure
  58. for i = [1:10]
  59. [G, K, lambda]=lqr(A,B,10*i*Q,R);
  60. Abf=A-B*G;
  61. sysZsBF = ss(Abf, E, C_st, 0);
  62. Zs_BF = tf(sysZsBF);
  63. step(0.08*sysZsBF);
  64. hold on;
  65. end
  66. title("Réponse indicielle Caisse en fonction de Q")
  67. figure
  68. for i= [1:10]
  69. [G, K, lambda]=lqr(A,B,10*i*Q,R);
  70. Abf=A-B*G;
  71. sysZuBF = ss(Abf, E, C_ut, 0);
  72. Zu_BF = tf(sysZuBF);
  73. step(0.08*sysZuBF);
  74. hold on;
  75. end
  76. title("Réponse indicielle Caisse en fonction de Q")
  77. %commande obtenue par u=-Gx, C=-G
  78. C=-G;
  79. commande=ss(Abf, E, C, 0)