Advertisement
Coriic

Automatyka

Apr 17th, 2017
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 4.68 KB | None | 0 0
  1. %LAB 1
  2. %Zad 1
  3. M = 1000;
  4. F = 1000;
  5. c = 400;
  6. ksi_oscylacje = 0.5; %oscylacje < 1, tlumienie >= 1
  7. ksi_tlumienie = 1.5;
  8. %wzmocnienie zależy od sprężyny!
  9. alfa = 500;
  10. alfa_oscylacje =  ksi_oscylacje*2*sqrt(c*M);
  11. alfa_tlumienie = ksi_tlumienie*2*sqrt(c*M);
  12. licz = [0 0 1];
  13. mian = [M alfa c];
  14. mian_oscylacje = [M alfa_oscylacje c];
  15. mian_tlumienie = [M alfa_tlumienie c];
  16. zawieszenie = tf(licz, mian);
  17. [zera, bieguny, wzmocnienie] = tf2zp(licz, mian);
  18. zawieszenie_oscylacje = tf(licz, mian_oscylacje); %odpowiedź skokowa
  19. zawieszenie_tlumienie = tf(licz, mian_tlumienie);
  20. step(zawieszenie, zawieszenie_oscylacje, zawieszenie_tlumienie);
  21. legend('alfa = 500', 'Oscylacje: współczynnik tłumienia= 0.5', 'Tłumienie: współczynnik tłumienia= 1.5');
  22. figure();
  23. impulse(zawieszenie, zawieszenie_oscylacje, zawieszenie_tlumienie); %odpowiedź impulsowa
  24. legend('alfa = 500', 'Oscylacje: współczynnik tłumienia= 0.5', 'Tłumienie: współczynnik tłumienia= 1.5');
  25. figure();
  26. pzmap(zawieszenie, zawieszenie_oscylacje, zawieszenie_tlumienie);
  27. legend('alfa = 500', 'Oscylacje: współczynnik tłumienia= 0.5', 'Tłumienie: współczynnik tłumienia= 1.5');
  28. %Zad 1
  29. %a) -bieguny są zespolone i sprzężone
  30. %-układ jest stabilny
  31. %-uklad nie jest nieminimalnofazowy
  32. %b) -zera, bieguny, wzmocnienie
  33. %c) -wyrysowane, dobierane ze wzoru 1.1 na ksi
  34.  
  35. %Zad 2
  36. wzmocnienie = 2;
  37. zero = -0.25;
  38. bieguny = [0 -5 -0.1];
  39. obiekt = zpk(zero, bieguny, wzmocnienie);
  40.  
  41. %Zad 3
  42. M = 1000;
  43. F = 1000;
  44. c = 400;
  45. alfa = 500;
  46. licz = [0 0 1];
  47. mian = [M alfa c];
  48. [A2, B2, C2, D2] = tf2ss(licz, mian);
  49. [zero bieguny transmitancja] = tf2zp(licz, mian);
  50. [A1, B1, C1, D1] = zp2ss(zero, bieguny, wzmocnienie);
  51. hold on;
  52. step(A1, B1, C1, D1);
  53. step(A2, B2, C2, D2);
  54. legend('Sfaktoryzowana transmitancja', 'Transmitancja');
  55. hold off;
  56. %Macierze się różnią, odpowiedzi skokowe mają podobny charakter, wymagają
  57. %przeskalowania
  58.  
  59. %Zad 6
  60. licz1 = [1 1];
  61. mian1 = [1 5 1];
  62. G1 = tf(licz1, mian1);
  63. licz2 = [0 1];
  64. mian2 = [1 1 -2 1];
  65. G2 = tf(licz2, mian2);
  66. szeregowo = series(G1, G2);
  67. rownolegle = parallel(G1, G2);
  68. sprzezenie_zwrotne = feedback(G1, G2);
  69.  
  70. %LAB2
  71. %Konspekt A
  72. k=15;
  73. T1=4;
  74. T2=2;
  75. T=120;
  76. ksi=0.1;
  77. Ti=1.2;
  78. Td=12;
  79. theta=1.66;
  80. n=5;
  81. licz1=[0,k];
  82. mian1=[T,1];
  83. licz2=[0,0,k];
  84. mian2=[T1*T2,T1+T2,1];
  85. licz3=[0,0,k];
  86. mian3=[T^2,2*ksi*T,1];
  87. licz4=[0,0,k];
  88. mian4=[T*Ti,Ti,0];
  89. licz5=[Td,0];
  90. mian5=[T,1];
  91. [licz_op, mian_op] = pade(theta,n);
  92. licz_iner=[0,k];
  93. mian_iner=[T,1];
  94. [licz6, mian6] = series(licz_op, mian_op, licz_iner, mian_iner);
  95.  
  96. figure();
  97. subplot(1,2,1);
  98. step(licz1, mian1);
  99. subplot(1,2,2);
  100. impulse(licz1, mian1);
  101.  
  102. figure();
  103. subplot(1,2,1);
  104. step(licz2, mian2);
  105. subplot(1,2,2);
  106. impulse(licz2, mian2);
  107.  
  108. figure();
  109. subplot(1,2,1);
  110. step(licz3, mian3);
  111. subplot(1,2,2);
  112. impulse(licz3, mian3);
  113.  
  114. figure();
  115. subplot(1,2,1);
  116. step(licz4, mian4);
  117. subplot(1,2,2);
  118. impulse(licz4, mian4);
  119.  
  120. figure();
  121. subplot(1,2,1);
  122. step(licz5, mian5);
  123. subplot(1,2,2);
  124. impulse(licz5, mian5);
  125.  
  126. figure();
  127. subplot(1,2,1);
  128. step(licz6, mian6);
  129. subplot(1,2,2);
  130. impulse(licz6, mian6);
  131.  
  132. %Konspekt B
  133. k=15;
  134. T1=4;
  135. T2=2;
  136. T=1.5;
  137. ksi=0.1;
  138. Ti=1.2;
  139. Td=12;
  140. theta=5;
  141. n=5;
  142. licz1=[0,k];
  143. mian1=[T,1];
  144. licz2=[0,0,k];
  145. mian2=[T1*T2,T1+T2,1];
  146. licz3=[0,0,k];
  147. mian3=[T^2,2*ksi*T,1];
  148. licz4=[0,0,k];
  149. mian4=[T*Ti,Ti,0];
  150. licz5=[Td,0];
  151. mian5=[T,1];
  152. [licz_op, mian_op] = pade(theta,n);
  153. licz_iner=[0,k];
  154. mian_iner=[T,1];
  155. [licz6, mian6] = series(licz_op, mian_op, licz_iner, mian_iner);
  156.  
  157. figure();
  158. subplot(1,2,2);
  159. bode(licz1, mian1);                  
  160. subplot(1,2,1);
  161. nyquist(licz1, mian1);
  162.  
  163. figure();
  164. subplot(1,2,2);
  165. bode(licz2, mian2);
  166. subplot(1,2,1);
  167. nyquist(licz2, mian2);
  168.  
  169. figure();
  170. subplot(1,2,2);            
  171. bode(licz3, mian3);
  172. subplot(1,2,1);
  173. nyquist(licz3, mian3);
  174.  
  175. figure();
  176. subplot(1,2,2);
  177. bode(licz4, mian4);
  178. subplot(1,2,1);
  179. nyquist(licz4, mian4);
  180.  
  181. figure();
  182. subplot(1,2,2);
  183. bode(licz5, mian5);
  184. subplot(1,2,1);
  185. nyquist(licz5, mian5);
  186.  
  187. figure();
  188. subplot(1,2,2);
  189. bode(licz6, mian6);
  190. subplot(1,2,1);
  191. nyquist(licz6, mian6);
  192.  
  193. %LAB 3
  194. %Zad 1
  195. [licz1, mian1] = zp2tf([], [-1, -0.2], 0.2);
  196. [licz2, mian2] = zp2tf(-2, [-1, -0.2], 2);
  197. [licz3, mian3] = zp2tf([], [-1, -0.2, -2], 0.4);
  198.  
  199. figure();
  200. rlocus(licz1, mian1);
  201.  
  202. figure();
  203. rlocus(licz2, mian2);
  204.  
  205. figure();
  206. rlocus(licz3, mian3);
  207. sgrid;
  208. [K, bieguny] = rlocfind(licz3, mian3);
  209.  
  210. %Zad 2
  211. s=tf('s');%%zmienna symboliczna
  212. conv([1,1],[0.2,1])%mnożenie wielomianów
  213. G=1/(s*(s+1)*(0.2*s+1));
  214. GC=(s+1)/(0.1*s+1);
  215. figure();
  216. rlocus(G);
  217. line([0 -50],[0 50]);
  218. [K, bieguny] = rlocfind(G);
  219. sys_zamk = feedback(K*tf(G), 1);
  220. step(sys_zamk);
  221.  
  222.  
  223. K=1.62;
  224. sys=series(GC,G);
  225. rlocus(G,sys);
  226. sys_zam = feedback(K*sys, 1);
  227. figure;
  228. step(sys_zamk,sys_zam);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement