ole lab1, Energetyka AGH, V semestr, Automatyka, laboratoria


Nazwiska

Surzyński Tomasz

Sycz Damian

GRUPA 9

ROK II

IMIR

Temat

Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi

1.Cel ćwiczenia

-Zapoznanie się z różnymi metodami rozwiązań równań różniczkowych w Matlabie

-Wykorzystanie Simulinka do tworzenia modelu równania różniczkowego w Matlabie

2.Obliczenia

Rozwiązanie analityczne równania- x``+ 2x` + 4x = 0

0x01 graphic

Wykres do metody analitycznej:

0x01 graphic

Rozwiązanie tego samego równania za pomocą programu Matlab

Tworzę plik „m”:

function xdot=funkcja(t,x)

% Układ rownan rozniczkowych

xdot=zeros(2,1);

xdot(1)=x(2);

xdot(2)=(-4*x(1)-2*x(2));

a następnie tworzę program ogólny rozwiązujący funkcję:

function rozw

t0=0;

clc

disp('Funkcja rozwiazuje rownanie rozniczkowe zwyczajne metoda ');

disp('Rungego - Kutty i podaje jego interpretacje graficzna');

disp(' ');disp('Postac rownania:');disp(' ');

disp(' x``+ 2*x`+ 4*x = 0');

x01=input ('Podaj wartosc x01 = ');

x02=input ('Podaj wartosc x02 = ');

tk=input ('Podaj czas symulacji tk = ');

x0=[x01 x02];

[t,x]=ode45('funkcja',t0,tk,x0,0.001,0);

plot(t,x(:,1),'r-');

xlabel('czas [s]');ylabel('amplituda sygnału');

title('Wykres rozwiazania rownania rozniczkowego');

grid;

Wykres:

0x01 graphic

Rozwiązanie równania x``+ 2x` + 4x = 0 w Simulinku

Buduję model:

0x01 graphic

Wykres:

0x01 graphic

Ogólne rozwiązanie umożliwiające rozwiązanie dowolnego równania różniczkowego:

t0=0;

clc

disp('funkcja rozwiazuje rownanie rozniczkowe metoda r-k');

a2=input('wspolczynnik przy x"= ');

a1=input('wspolczynnik przy x`= ');

a0=input('wpolczynnik przy x= ' );

ku=input('sila= ');

x01=input ('Podaj wartosc x01 = ');

x02=input ('Podaj wartosc x02 = ');

tk=input('tk = ');

x0=[x01 x02];

[t,x]=ode45('funkcja1',t0,tk,x0,0.001,0);

plot(t,x(:,1),'r-');

xlabel('czas[s]');

ylabel('amplituda sygnalu');

title('wykres rozw. rown. rozniczkowego');

grid;

function xdot=fukcja1(a0,a1,a2,t,x,ku)

xdot=zeros(2,1);

xdot(1)=x(2);

xdot(2)=(-(a0/a2)*x(1)-(a1/a2)*x(2)+(ku/a2));

Wnioski:

Na laboratorium uczyliśmy się rozwiązywać równania różniczkowe różnymi sposobami. Można stwierdzić, że wszystkie metody sprawdzają się dobrze. Liczą poprawnie i to jedynie czynnik ludzki wpływa na błędne wyniki. Matlab sprawdza się dobrze ale trzeba znać język programowania. Simulink jest niezłą “wtyczką” graficzną która znacznie ułatwia i przyśpiesza pracę.



Wyszukiwarka