AGH – KAP Rok akademicki: 2017/2018, sem. zimowy Laboratorium PODSTAW AUTOMATYKI
Numer ćwiczenia |
1 |
Tytuł ćwiczenia: Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi |
|
Data wykonania ćwiczenia: |
11.20.2017 |
Nazwiska i imiona autorów sprawozdania: |
|
Data oddania sprawozdania: |
11.26.2017 |
............................................. |
|
Numer grupy laboratoryjnej: |
7 |
............................................. |
Równanie różniczkowe (podpunkt d) rozwiązane metodą dsolve
funkcja1a.m
syms x y;
y = dsolve('D2x+2*Dx+5*x=0', 'x(0)=3', 'Dx(0)=0');
pretty(y);
t=0:0.01:9.99;
x1=subs(y);
plot(t,x1);
xlabel('czas[s]');
ylabel('amplituda sygnału');
title('wykres rozwiazania rown rozniczkowego');
grid;
Równanie różniczkowe (podpunkt d) rozwiązane metodą ode45
funkcja1b.m
function x2dot=funkcjab(t2,x2)
x2dot=zeros(2,1);
x2dot(1)=x2(2);
x2dot(2)=(-2*x2(2)-5*x2(1));
funkcja1c.m
t20=0;
x201=3;
x202=0;
tk2=10;
czas_sym=[0 tk2]
wartosc_poczatkowa=[x201 x202]
[t2,x2]=ode45('funkcja1b',czas_sym,wartosc_poczatkowa);
plot(t2,x2(:,1),'g-');
xlabel('czas (s)');
ylabel('wykres rozwiazania rown rozniczkowego');
grid;
Simulink:
Żeby wywołać wykres
3 metod naraz użyliśmy następującego
polecenia:
plot(t,x1,t2,x2(:,1),t3,x3);
xlabel('czas[s]');
ylabel('amplituda sygnału');
title('wykresy rozwiazan rown rozniczkowych');
grid;
Wnioski: Na zajęciach laboratoryjnych przeprowadzaliśmy obliczanie równania różniczkowego z niezerowymi warunkami początkowymi ( w naszym przypadku y(0)=3, y’(0)=0 ). Stosowaliśmy 3 metody – metoda dsolve, metoda ode45 i metoda wykorzystująca Simulink (kolory odpowiednio pomarańczowy, czerwony i niebieski). Z wykresu po prawej stronie możemy zobaczyć, że najdokładniejszą metodą była metoda wykorzystująca Simulink, nieco mniej dokładna była metoda ode45, a najmniej dokładna – metoda dsolve. Oznacza to dla nas, że gdy potrzebujemy być bardzo dokładni, najlepiej wykorzystać wbudowanego w MatLaba Simulinka, a jeżeli interesuje nas tylko całkiem dobre przybliżenie, to wystarczy nam zwykły dsolve,