Advertisement
Guest User

Untitled

a guest
Jan 29th, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.70 KB | None | 0 0
  1. %Kyvadlo
  2. global B;
  3. global m;
  4. global l;
  5. global g;
  6. global u;
  7.  
  8. global AA;
  9.  
  10. g=9.8;
  11.  
  12. u = input('Zvolte budiaci signal u: ');
  13. B = input('Zvolte koeficient tlmenia B: ');
  14. m = input('Zvolte hmotnost zavazia m: ');
  15. l = input('Zvolte dlzku tyce l: ');
  16. t0 = input('Zadajte pociatocny cas t0: ');
  17. t1 = input('Zadajte konecny cas t1: ');
  18.  
  19. d = (-B/m);
  20. c = g/l+u;
  21.  
  22. AA = [0 1; c d];
  23.  
  24. result1 = @(t,x)[x(2); x(2).*(-B/m)+x(1).*g/l+u];
  25. result2 = @(t,x)[x(2); x(2).*(-B/m)-x(1).*g/l+u];
  26. result3 = @(t,x)[x(2); x(2).*(-B/m)-sin(x(1)).*(g/l)+u];
  27.  
  28. f = figure;
  29. tab = uitabgroup(f);
  30.  
  31. tab1 = uitab(tab, 'Title', 'Priebehy-Linearne');
  32. hax1 = axes('Parent', tab1);
  33.  
  34. [t,x]=ode45(result1, [t0 t1], [1 0]);
  35. [t_rk,x_rk]=rk4(result1, [0 20], [1 0], 0.01);
  36. subplot(2,1,1);
  37. plot(t, x);
  38. title('Kyvadlo Lineárny - ode45');
  39. legend('x1(t)','x2(t)');
  40. xlabel('t(s)');
  41. ylabel('x1(t) x2(t))');
  42. subplot(2,1,2);
  43. plot(t_rk, x_rk);
  44. title('Kyvadlo Lineárny - Runge Kutta');
  45. legend('x1(t)','x2(t)');
  46. xlabel('t(s)');
  47. ylabel('x1(t) x2(t)');
  48.  
  49. tab2 = uitab(tab, 'Title', 'Priebehy-Linearne');
  50. hax2 = axes('Parent', tab2);
  51.  
  52. [t,x]=ode45(result2, [t0 t1], [1 0]);
  53. [t_rk,x_rk]=rk4(result2, [0 20], [1 0], 0.01);
  54. subplot(2,1,1);
  55. plot(t, x);
  56. title('Kyvadlo Lineárny - ode45');
  57. legend('x1(t)','x2(t)');
  58. xlabel('t(s)');
  59. ylabel('x1(t) x2(t))');
  60. subplot(2,1,2);
  61. plot(t_rk, x_rk);
  62. title('Kyvadlo Lineárny - Runge Kutta');
  63. legend('x1(t)','x2(t)');
  64. xlabel('t(s)');
  65. ylabel('x1(t) x2(t)');
  66.  
  67. tab3 = uitab(tab, 'Title', 'Priebehy-nelinearne');
  68. hax3 = axes('Parent', tab3);
  69.  
  70. [t,x]=ode45(result3, [t0 t1], [1 0]);
  71. [t_rk,x_rk]=rk4(result3, [0 20], [1 0], 0.01);
  72. subplot(2,1,1);
  73. plot(t, x);
  74. title('Kyvadlo Nelineárny - ode45');
  75. legend('x1(t)','x2(t)');
  76. xlabel('t(s)');
  77. ylabel('x1(t) x2(t))');
  78. subplot(2,1,2);
  79. plot(t_rk, x_rk);
  80. title('Kyvadlo Nelineárny - Runge Kutta');
  81. legend('x1(t)','x2(t)');
  82. xlabel('t(s)');
  83. ylabel('x1(t) x2(t)');
  84.  
  85. tab4 = uitab(tab, 'Title', 'FP-Kyvadlo-nelinearne');
  86. hax4 = axes('Parent', tab4);
  87.  
  88. fp(result3, [0 50], [-3 3], [-3 3], 10, 10);
  89. title('Kyvadlo - Nelinearny System');
  90. axis([-8 8 -5 5]);
  91.  
  92. tab5 = uitab(tab, 'Title', 'FP-Kyvadlo-Linearne');
  93. hax5 = axes('Parent', tab5);
  94.  
  95. fp(result1, [0 50], [-3 3], [-3 3], 10, 10);
  96. axis([-4 4 -4 4]);
  97.  
  98. %zistenie typu fazoveho portretu
  99. rTemp = roots([1 B/m -g/l-u]);
  100. s1 = rTemp(1,1);
  101. s2 = rTemp(2,1);
  102. % korene su z mnoziny realnych cisel
  103. if (isreal(s1) == 1) && (isreal(s2) == 1)
  104. % nestabilny uzol
  105. if (s1 > 0) && (s2 > 0)
  106. title('Kyvadlo - Linearny System - Nestabilny uzol');
  107. end
  108.  
  109. % stabilny uzol
  110. if (s1 < 0) && (s2 < 0)
  111. title('Kyvadlo - Linearny System - Stabilny uzol');
  112. end
  113.  
  114. % sedlo
  115. if (s1 < 0) && (s2 > 0)
  116. title('Kyvadlo - Linearny System - Sedlo');
  117. end
  118.  
  119. % sedlo
  120. if (s1 > 0) && (s2 < 0)
  121. title('Kyvadlo - Linearny System - Sedlo');
  122. end
  123. end
  124.  
  125. % korene su z mnoziny komplexnych cisel
  126. if (isreal(s1) == 0) && (isreal(s2) == 0)
  127. % stabilne ohnisko
  128. if (real(s1) < 0) && (real(s2) < 0)
  129. title('Kyvadlo - Linearny System - Stabilne ohnisko');
  130. end
  131.  
  132. % nestabilne ohnisko
  133. if (real(s1) > 0) && (real(s2) > 0)
  134. title('Kyvadlo - Linearny System - Nestabilne ohnisko');
  135. end
  136.  
  137. % stred
  138. if (real(s1) == 0) && (real(s2) == 0)
  139. title('Kyvadlo - Linearny System - Stred');
  140. end
  141. end
  142.  
  143. tab6 = uitab(tab, 'Title', 'FP-Kyvadlo-Linearne');
  144. hax6 = axes('Parent', tab6);
  145.  
  146. fp(result2, [0 50], [-3 3], [-3 3], 10, 10);
  147. axis([-4 4 -4 4]);
  148.  
  149. %zistenie typu fazoveho portretu
  150. rTemp = roots([1 B/m g/l-u]);
  151. s1 = rTemp(1,1);
  152. s2 = rTemp(2,1);
  153. % korene su z mnoziny realnych cisel
  154. if (isreal(s1) == 1) && (isreal(s2) == 1)
  155. % nestabilny uzol
  156. if (s1 > 0) && (s2 > 0)
  157. title('Kyvadlo - Lineárny Systém - Nestabilný uzol');
  158. end
  159.  
  160. % stabilny uzol
  161. if (s1 < 0) && (s2 < 0)
  162. title('Kyvadlo - Lineárny Systém - Stabilný uzol');
  163. end
  164.  
  165. % sedlo
  166. if (s1 < 0) && (s2 > 0)
  167. title('Kyvadlo - Lineárny Systém - Sedlo');
  168. end
  169.  
  170. % sedlo
  171. if (s1 > 0) && (s2 < 0)
  172. title('Kyvadlo - Lineárny Systém - Sedlo');
  173. end
  174. end
  175.  
  176. % korene su z mnoziny komplexnych cisel
  177. if (isreal(s1) == 0) && (isreal(s2) == 0)
  178. % stabilne ohnisko
  179. if (real(s1) < 0) && (real(s2) < 0)
  180. title('Kyvadlo - Lineárny Systém - Stabilné ohnisko');
  181. end
  182.  
  183. % nestabilne ohnisko
  184. if (real(s1) > 0) && (real(s2) > 0)
  185. title('Kyvadlo - Lineárny Systém - Nestabilné ohnisko');
  186. end
  187.  
  188. % stred
  189. if (real(s1) == 0) && (real(s2) == 0)
  190. title('Kyvadlo - Lineárny Systém - Stred');
  191. end
  192. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement