AKADEMIA GÓRNICZO-HUTNICZA
im. Stanisława Staszica
w Krakowie
Agnieszka Mleczko
Grupa 13, AiR
Laboratorium z podstaw automatyki
SPRAWOZDANIE
Laboratorium nr 1
Temat: Rozwiązywanie równań różniczkowych
z niezerowymi warunkami początkowymi
1). Cel ćwiczenia:
a) zapoznanie się z różnymi metodami rozwiązywania równań różniczkowych w Matlabie,
b) wykorzystanie Simulinka do tworzenia modelu równania różniczkowego,
c) archiwizacja otrzymanych rozwiązań
2). Przebieg ćwiczenia:
Rozwiązanie równania różniczkowego
d2ydt2+ dydt+ 3y=0
dla y(0) = 1, y0= 0
a). Rozwiązanie wykorzystujące funkcję dsolve():
syms y x; % definicja zmiennych symbolicznych ‘x’ i ‘y’
x = dsolve('D2y + Dy + 3*y=0' , 'y(0)=1' , 'Dy(0)=0'); % równanie wraz z warunkami poczatkowymi
pretty(x); % wypisanie rozwiazania
t=0:0.01:9.99; % definicja wektora czasu
w=subs(x); % wartosc liczbowa ‘x’ wyliczona poprzez podstawienie zdefiniowanego wczeniej wektora ‘t’
plot(t,w,'r-'); % narysowanie wykresu
xlabel('czas[s]');
ylabel('amplituda sygnalu');
title('Wykres rozwiazania rownania rozniczkowego');
grid;
Wykres rozwiązania (dla t=10[s]):
b). Rozwiązanie wykorzystujące funkcję ode45:
Zapisanie równania różniczkowego jako równanie stanu:
function ydot=funkcja(t,y)
% Układ rownan rozniczkowych
ydot=zeros(0,1);
ydot(1)=y(2);
ydot(2)=(-3*y(1)-y(2));
Wprowadzenie parametrów wejściowych i wywołanie funkcji ode45:
function rozw2
t0=0;
clc
disp('Funkcja rozwiazuje rownanie rozniczkowe zwyczajne metoda ');
disp('Rungego - Kutty i podaje jego interpretacje graficzna:');
disp(' ');disp('Postac rownania:');disp(' ');
disp(' y'' + y +3y = 0');
y01=input ('Podaj wartosc y01 = ');
y02=input ('Podaj wartosc y02 = ');
tk=input ('Podaj czas symulacji tk = ');
y0=[y01 y02];
[t,y]=ode45('funkcja',t0,tk,y0,0.001,0);
plot(t,y(:,1),'g-');
xlabel('czas [s]');ylabel('amplituda sygnalu');
c). Rozwiązanie wykorzystujące Simulink’a:
Model:
Wykres rozwiązania:
3). Wnioski:
Na podstawie przeprowadzonych symulacji możemy stwierdzić, że dla danego równania każda z metod daje identyczne rozwiązanie graficzne. W praktyce jednak metoda analityczna jest najdokładniejsza bowiem daje rzeczywisty wynik, pozostałe metody są metodami numerycznymi i dają wyniki obarczone pewnym błędem, zależnym od kroku całkowania.
oxide90