Advertisement
Ostu

Untitled

Mar 26th, 2021
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.29 KB | None | 0 0
  1. %% wartosci ogolne
  2. n1=7;
  3. n2=9;
  4. k=n1/n2
  5. m1=n1
  6. m2=4*n2
  7. t=2*n2+4
  8. obiekt=tf([k],[1,m2,m1,1],'IODelay',t)
  9. %% charakterystyki czasowe
  10. figure(1)
  11. impulse(obiekt)
  12. figure(2)
  13. step(obiekt)
  14. %% kupfmuller
  15. s=tf('s')
  16. transkupf=tf([0.778],[10.8 1])
  17. modelkupf=transkupf*exp(-24.5*s)
  18. figure(3)
  19. step(obiekt)
  20. hold on
  21. step(modelkupf)
  22. hold off
  23. figure(4)
  24. impulse(obiekt)
  25. hold on
  26. impulse(modelkupf)
  27. hold off
  28. %% charakterystyki czestotliwosciowe
  29. figure(5)
  30. nyquist(obiekt)
  31. ylim([-0.9 0.9])
  32. xlim([-0.9 0.9])
  33. title 'Obiekt'
  34. figure(6)
  35. nyquist(modelkupf)
  36. ylim([-0.9 0.9])
  37. xlim([-0.9 0.9])
  38. title 'Model'
  39. figure(7)
  40. bode(obiekt)
  41. hold on
  42. bode(modelkupf)
  43. legend('Obiekt', 'Model')
  44. figure(8)
  45. margin(obiekt)
  46. figure(9)
  47. margin(modelkupf)
  48. [ZapasModuluModelu, ZapasFazyModelu] =  margin(modelkupf)
  49. [ZapasModuluObiektu, ZapasFazyObiektu] = margin(obiekt)
  50. PasmoObiektu=bandwidth(obiekt)
  51. PasmoModelu=bandwidth(modelkupf)
  52. %% bieguny i zera
  53. figure(10)
  54. pzplot(obiekt)
  55. title 'Obiekt'
  56. xlim([-40 5])
  57. figure(11)
  58. pzplot(modelkupf)
  59. title 'Model'
  60. %% probka
  61. figure(12)
  62. bode(obiekt)
  63. grid on
  64. Ts=1.6;
  65. TransmitancjaDyskretna=c2d(obiekt, Ts)
  66. %% dyskre
  67. figure(13)
  68. nyquist(TransmitancjaDyskretna)
  69. hold on
  70. nyquist(obiekt)
  71. legend('Transmitancja Dyskretna', 'Obiekt')
  72. ylim([-0.9 0.9])
  73. xlim([-0.9 0.9])
  74. figure(14)
  75. bode(TransmitancjaDyskretna)
  76. hold on
  77. bode(obiekt)
  78. legend('Transmitancja Dyskretna', 'Obiekt')
  79. figure(15)
  80. margin(TransmitancjaDyskretna)
  81. [ZapasModuluDyskr, ZapasFazyDyskr] =  margin(TransmitancjaDyskretna)
  82. PasmoDyskr=bandwidth(TransmitancjaDyskretna)
  83. figure(16)
  84. pzplot(TransmitancjaDyskretna)
  85. hold on
  86. pzplot(obiekt)
  87. legend('Transmitancja Dyskretna', 'Obiekt')
  88. figure(17)
  89. step(TransmitancjaDyskretna)
  90. hold on
  91. step(obiekt)
  92. figure(18)
  93. impulse(TransmitancjaDyskretna)
  94. hold on
  95. impulse(obiekt)
  96. %% Zmiana ksztaltu transmitancji
  97. a1=10;
  98. bw1 = bandwidth(obiekt);
  99. T = round(pi/(a1*bw1),2);
  100. gd = c2d(obiekt, T);
  101. gd2 = c2d(obiekt, T);
  102. gd2.Variable = 'z^-1';
  103. gd2.num{1}(4) = 0;
  104. gd2.den{1}(4) = 0;
  105. gd2.num{1}(1) = round(gd2.num{1}(1), 2);
  106. gd2.den{1}(3) = round(gd2.den{1}(3), 2);
  107. figure(13);
  108. step(gd);
  109. hold on;
  110. step(gd2);
  111. hold off;
  112. figure(14);
  113. impulse(gd);
  114. hold on;
  115. impulse(gd2);
  116. hold off;
  117. figure(15);
  118. subplot(2,1,1);
  119. pzmap(gd);
  120. title('Zera i bieguny pierwotne');
  121. subplot(2,1,2);
  122. pzmap(gd2);
  123. title('Zera i bieguny po usunięciu członu z^{-3}');
  124. [zmd2, zfd2] = margin(gd2);
  125. disp(['Dyskretny bez z-3: z_m = ', num2str(zmd2), ', z_f = ', num2str(zfd2)]);
  126. figure(16);
  127. nyquist(gd);
  128. hold on;
  129. nyquist(gd2);
  130. hold off;
  131. figure(17);
  132. bode(gd);
  133. hold on;
  134. bode(gd2);
  135. hold off;
  136. %% Zmiana okresu próbkowania
  137. T2 = round(pi/(a2*bw1),2);
  138. a2 = 15;
  139. T2 = round(pi/(a2*bw1),2)
  140. disp(['Okres probkowania: ', num2str(T2)]);
  141. gd2 = c2d(obiekt, T2);
  142. gd2.Variable = 'z^-1';            
  143. figure(18);
  144. step(gd);
  145. hold on;
  146. step(gd2);
  147. hold off;
  148. figure(19);
  149. impulse(gd);
  150. hold on;
  151. impulse(gd2);
  152. hold off;
  153. figure(20);
  154. subplot(2,1,1);
  155. pzmap(gd);
  156. title('Zera i bieguny pierwotne');
  157. subplot(2,1,2);
  158. pzmap(gd2);
  159. title('Zera i bieguny po zmianie czasu próbkowania');
  160. [zmd2, zfd2] = margin(gd2);
  161. disp(['Dyskretny bez z-3: z_m = ', num2str(zmd2), ', z_f = ', num2str(zfd2)]);
  162. figure(21);
  163. nyquist(gd);
  164. hold on;
  165. nyquist(gd2);
  166. hold off;
  167. figure(22);
  168. bode(gd);
  169. hold on;
  170. bode(gd2);
  171. hold off;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement