Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %Kyvadlo
- global B;
- global m;
- global l;
- global g;
- global u;
- global AA;
- g=9.8;
- u = input('Zvolte budiaci signal u: ');
- B = input('Zvolte koeficient tlmenia B: ');
- m = input('Zvolte hmotnost zavazia m: ');
- l = input('Zvolte dlzku tyce l: ');
- t0 = input('Zadajte pociatocny cas t0: ');
- t1 = input('Zadajte konecny cas t1: ');
- d = (-B/m);
- c = g/l+u;
- AA = [0 1; c d];
- result1 = @(t,x)[x(2); x(2).*(-B/m)+x(1).*g/l+u];
- result2 = @(t,x)[x(2); x(2).*(-B/m)-x(1).*g/l+u];
- result3 = @(t,x)[x(2); x(2).*(-B/m)-sin(x(1)).*(g/l)+u];
- f = figure;
- tab = uitabgroup(f);
- tab1 = uitab(tab, 'Title', 'Priebehy-Linearne');
- hax1 = axes('Parent', tab1);
- [t,x]=ode45(result1, [t0 t1], [1 0]);
- [t_rk,x_rk]=rk4(result1, [0 20], [1 0], 0.01);
- subplot(2,1,1);
- plot(t, x);
- title('Kyvadlo Lineárny - ode45');
- legend('x1(t)','x2(t)');
- xlabel('t(s)');
- ylabel('x1(t) x2(t))');
- subplot(2,1,2);
- plot(t_rk, x_rk);
- title('Kyvadlo Lineárny - Runge Kutta');
- legend('x1(t)','x2(t)');
- xlabel('t(s)');
- ylabel('x1(t) x2(t)');
- tab2 = uitab(tab, 'Title', 'Priebehy-Linearne');
- hax2 = axes('Parent', tab2);
- [t,x]=ode45(result2, [t0 t1], [1 0]);
- [t_rk,x_rk]=rk4(result2, [0 20], [1 0], 0.01);
- subplot(2,1,1);
- plot(t, x);
- title('Kyvadlo Lineárny - ode45');
- legend('x1(t)','x2(t)');
- xlabel('t(s)');
- ylabel('x1(t) x2(t))');
- subplot(2,1,2);
- plot(t_rk, x_rk);
- title('Kyvadlo Lineárny - Runge Kutta');
- legend('x1(t)','x2(t)');
- xlabel('t(s)');
- ylabel('x1(t) x2(t)');
- tab3 = uitab(tab, 'Title', 'Priebehy-nelinearne');
- hax3 = axes('Parent', tab3);
- [t,x]=ode45(result3, [t0 t1], [1 0]);
- [t_rk,x_rk]=rk4(result3, [0 20], [1 0], 0.01);
- subplot(2,1,1);
- plot(t, x);
- title('Kyvadlo Nelineárny - ode45');
- legend('x1(t)','x2(t)');
- xlabel('t(s)');
- ylabel('x1(t) x2(t))');
- subplot(2,1,2);
- plot(t_rk, x_rk);
- title('Kyvadlo Nelineárny - Runge Kutta');
- legend('x1(t)','x2(t)');
- xlabel('t(s)');
- ylabel('x1(t) x2(t)');
- tab4 = uitab(tab, 'Title', 'FP-Kyvadlo-nelinearne');
- hax4 = axes('Parent', tab4);
- fp(result3, [0 50], [-3 3], [-3 3], 10, 10);
- title('Kyvadlo - Nelinearny System');
- axis([-8 8 -5 5]);
- tab5 = uitab(tab, 'Title', 'FP-Kyvadlo-Linearne');
- hax5 = axes('Parent', tab5);
- fp(result1, [0 50], [-3 3], [-3 3], 10, 10);
- axis([-4 4 -4 4]);
- %zistenie typu fazoveho portretu
- rTemp = roots([1 B/m -g/l-u]);
- s1 = rTemp(1,1);
- s2 = rTemp(2,1);
- % korene su z mnoziny realnych cisel
- if (isreal(s1) == 1) && (isreal(s2) == 1)
- % nestabilny uzol
- if (s1 > 0) && (s2 > 0)
- title('Kyvadlo - Linearny System - Nestabilny uzol');
- end
- % stabilny uzol
- if (s1 < 0) && (s2 < 0)
- title('Kyvadlo - Linearny System - Stabilny uzol');
- end
- % sedlo
- if (s1 < 0) && (s2 > 0)
- title('Kyvadlo - Linearny System - Sedlo');
- end
- % sedlo
- if (s1 > 0) && (s2 < 0)
- title('Kyvadlo - Linearny System - Sedlo');
- end
- end
- % korene su z mnoziny komplexnych cisel
- if (isreal(s1) == 0) && (isreal(s2) == 0)
- % stabilne ohnisko
- if (real(s1) < 0) && (real(s2) < 0)
- title('Kyvadlo - Linearny System - Stabilne ohnisko');
- end
- % nestabilne ohnisko
- if (real(s1) > 0) && (real(s2) > 0)
- title('Kyvadlo - Linearny System - Nestabilne ohnisko');
- end
- % stred
- if (real(s1) == 0) && (real(s2) == 0)
- title('Kyvadlo - Linearny System - Stred');
- end
- end
- tab6 = uitab(tab, 'Title', 'FP-Kyvadlo-Linearne');
- hax6 = axes('Parent', tab6);
- fp(result2, [0 50], [-3 3], [-3 3], 10, 10);
- axis([-4 4 -4 4]);
- %zistenie typu fazoveho portretu
- rTemp = roots([1 B/m g/l-u]);
- s1 = rTemp(1,1);
- s2 = rTemp(2,1);
- % korene su z mnoziny realnych cisel
- if (isreal(s1) == 1) && (isreal(s2) == 1)
- % nestabilny uzol
- if (s1 > 0) && (s2 > 0)
- title('Kyvadlo - Lineárny Systém - Nestabilný uzol');
- end
- % stabilny uzol
- if (s1 < 0) && (s2 < 0)
- title('Kyvadlo - Lineárny Systém - Stabilný uzol');
- end
- % sedlo
- if (s1 < 0) && (s2 > 0)
- title('Kyvadlo - Lineárny Systém - Sedlo');
- end
- % sedlo
- if (s1 > 0) && (s2 < 0)
- title('Kyvadlo - Lineárny Systém - Sedlo');
- end
- end
- % korene su z mnoziny komplexnych cisel
- if (isreal(s1) == 0) && (isreal(s2) == 0)
- % stabilne ohnisko
- if (real(s1) < 0) && (real(s2) < 0)
- title('Kyvadlo - Lineárny Systém - Stabilné ohnisko');
- end
- % nestabilne ohnisko
- if (real(s1) > 0) && (real(s2) > 0)
- title('Kyvadlo - Lineárny Systém - Nestabilné ohnisko');
- end
- % stred
- if (real(s1) == 0) && (real(s2) == 0)
- title('Kyvadlo - Lineárny Systém - Stred');
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement