Laboratorium nr 1
1. Cele ćwiczenia
• zapoznanie si z metodami symbolicznego i numerycznego rozwizywania równa róniczkowych w Matlabie,
• wykorzystanie Simulinka do tworzenia modelu równania róniczkowego,
• archiwizacja otrzymanych rozwiza 2. Wprowadzenie teoretyczne
2.1. Symboliczne rozwizywanie równa róniczkowych – funkcja dsolve()
Rozwizywanie symboliczne polega na obliczeniach wykonywanych na wyraeniach matematycznych, a nie na liczbach (rozwizanie numeryczne), w wyniku czego dostajemy równie wyraenie matematyczne. Przy pomocy zmiennych symbolicznych oraz przy wykorzystaniu funkcji dsolve() moliwe jest rozwizanie równania róniczkowego dowolnego rz du.
W rozwizywaniu symbolicznym równa róniczkowych najwaniejsza jest zmienna D (due D), która okrela róniczk pierwszego stopnia (
ddt
D= ), podobnie D2 oznacza róniczk drugiego stopnia
(
2
2 2dt
D =d ) itd. Funkcja dsolve() domylnie róniczkuje po czasie.
Za pomoc funkcji dsolve() moliwe jest równie rozwizywanie układu równa róniczkowych jak i okrelanie warunków pocztkowych. Kolejne równania podajemy po przecinkach, a po nich warunki pocztkowe, równie oddzielone przecinkami:
dsolve(‘rownanie1’ , ‘rownanie2’ , … , ‘warunek 1’ , ‘warunek 2’);
Przykład 1:
Rozwiza równanie róniczkowe
0 2
2
3
2
= +
+ x
dt dx dt
x
d
przy war. pocz.x ( ) 0 = 0
,( 0 )
=2
dtdx
wykorzystujc funkcj dsolve().
Rozwizanie: Tworzymy m-plik o nazwie rozw1.m
syms x y; % definicja zmiennych symbolicznych ‘x’ i ‘y’
y = dsolve('D2x + 3*Dx + 2*x=0' , 'x(0)=0' , 'Dx(0)=2'); % równanie wraz z % warunkami pocztkowymi pretty(y); % wypisanie rozwizania
t=0:0.01:9.99; % definicja wektora czasu w=subs(y); % warto
liczbowa ‘y’ 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;
Rozwizanie równania róniczkowego w postaci wyraenia matematycznego oraz wykresu otrzymujemy wywołujc w oknie komend MATLABA funkcj >> rozw1
2.2. Numeryczne rozwizywanie równa róniczkowych – funkcja ode()
MATLAB zawiera funkcje rozwizujce zagadnienie pocztkowe dla równa róniczkowych zwyczajnych za pomoc np. par metod Rungego-Kutty rz du 2 i 3 (funkcja ode23) oraz rz du 4 i 5 (funkcja ode45).
Funkcje te rozwizuj zagadnienie pocztkowe dla układów równa zwyczajnych postaci:
( )
t,
x,
x(
t0)
x0dt F
dx = =
Składnia funkcji:
[T, X] = ode23 (‘F(t, x)’, [t0 tk], x0, tol, tr) [T, X] = ode45 (‘F(t, x)’, [t0 tk], x0, tol, tr) Kolejne parametry wejciowe oznaczaj:
• pierwszym parametrem musi by łacuch zawierajcy nazw zdefiniowanej przez uytkownika funkcji zwracajcej wartoci F(t, x),
• t0, tk - granice przedziału czasu, w którym poszukiwane jest rozwizanie,
• x0 - okrela warunek pocztkowy - wektor kolumnowy zawierajcy warto rozwizania układu w chwili pocztkowej,
• tol - opcjonalny parametr okrelajcy wymagan dokładno; domylnie: 0.001,
• tr - opcjonalny parametr, który jeli ma warto rón od zera, to powoduje wypisanie kolejnych kroków działania metody na ekranie.
Wartoci omawianych funkcji jest macierz X zawierajca umieszczone wierszowo wektory reprezentujce wartoci rozwizania w punktach okrelonych odpowiednimi elementami wektora kolumnowego t, który jest jedn z wartoci funkcji ode23 i ode45.
Przykład 2:
Rozwiza równanie róniczkowe z przykładu 1 wykorzystujc funkcj ode45.
Rozwizanie: Do rozwizania zadania przy pomocy funkcji ode45 wykorzystano dwa pliki. W pierwszym z nich (funkcja.m) zapisujemy posta równania – jako równania stanu:
function xdot=funkcja(t,x)
% Układ rownan rozniczkowych
xdot=zeros(2,1);
xdot(1)=x(2);
xdot(2)=(-2*x(1)-3*x(2));
a w drugim (rozw2.m) wprowadzamy parametry wejciowe, wywołujemy funkcj ode45 i rysujemy wykres rozwizania:
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(' x``+ 3•x`+ 2•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),'g-');
xlabel('czas [s]');ylabel('amplituda sygnalu');
title('Wykres rozwiazania rownania rozniczkowego');
grid;
Rozwizanie równania róniczkowego, w postaci wykresu, otrzymujemy wywołujc w oknie komend MATLABA funkcj >> rozw2
2.3. Rozwizywanie równa róniczkowych przy pomocy pakietu Simulink Przykład 3:
Rozwiza równanie róniczkowe z przykładu 1 wykorzystujc model zbudowany w Simulinku.
Rozwizanie: Wprowadzajc zmienne:
=
=
=
1 2
1
x x x
x x
&
&
otrzymujemy układ równa:
−
−
=
−
−
=
=
=
1 2 2
2 1
2 3 2
3
x x x xx x
x x
&
&
&
&
&
na podstawie którego tworzymy poniszy model:
Ustalajc warunki pocztkowe na obu integratorach (Int1 i Int2) oraz dobierajc odpowiednie parametry symulacji, w wyniku otrzymujemy wykres rozwizania:
0 2 4 6 8 10
0 0.1 0.2 0.3 0.4 0.5
czas [s]
W ykres rozwiazania równania rózniczkowego
Takie same wykresy rozwi zania równania róniczkowego mona uzyska w punktach 2.1 i 2.2 1/s
Int2
1/s Int1
x(t) +
+ Sum
-3 a1
-2 a0 x2
&
x2 X1
Przykład 4:
Skonstruowa w Simulinku model równania róniczkowego
0 ) 0 ( ) 0 ( pocz.
war.
dla , 3 2 6
2
5
2
+ + = + u y = y =
dt y du dt dy dt
y
d &
w postaci transmitancji operatorowej oraz w postaci równa stanu i równania wyjcia. Znale odpowied skokow układu, gdy sygnałem wejciowym u(t) jest sygnał o amplitudzie równej jednoci.
Rozwizanie: Równaniu róniczkowemu (zapisanemu jako transmitancja) odpowiada schemat blokowy przedstawiony poniej:
Przyjmujc okrelone parametry symulacji otrzymujemy rozwizanie w postaci wykresu.
Równaniu róniczkowemu zapisanemu jako
+
=
+
−
−
=
=
2 1
2 1 2
2 1
2 3
5 6
x x y
u x x x
x x
&
&
odpowiada poniszy schemat blokowy:
Ustalajc zerowe warunki pocztkowe na integratorach oraz dobierajc odpowiednie parametry symulacji otrzymujemy rozwizanie w postaci wykresu, jak poprzednio.
2.4. Archiwizacja uzyskanych rozwiza równa róniczkowych na dysku Dla równania z przykładu 4 tworzymy poniszy schemat blokowy:
y u
2 b1
3 b0
-5 a1 -6
a0
Sum1
Sum
1/s Integrator1 1/s
Integrator
y1 u1
wynik To Workspace Mux
Mux1
Mux
Mux 2s+3
s +5s+62 G(s)
Clock
y1 u1
2s+3 s +5s+62
G(s)
W przestrzeni roboczej Matlaba utworzona zostanie macierz o nazwie wynik, zawierajca trzy wektory zmiennych: czas symulacji, wymuszenie oraz odpowied skokowa układu. Aby zapisa t macierz na dysku naley wykona instrukcj :
>> save wynik –ascii
Poleceniem clear czycimy przestrze robocz a nast pnie wprowadzamy macierz wynik ponownie do przestrzeni roboczej z dysku:
>> load wynik –ascii
Ponowne wykrelenie uzyskanego rozwizania równania z przykładu 4 mona uzyska po wpisaniu nast pujcych instrukcji:
>> t = wyniki(:,1) % Wektor czasu
>> u = wyniki(:,2) % Wektor wymuszenia
>> y = wyniki(:,3) % Wektor odpowiedzi
>> plot( t, u, 'r', t, y, 'g')
>> grid
3. Przebieg ćwiczenia
Rozwiza równania róniczkowe:
a) 2
2 4 0 , dla war. pocz. ( 0 ) 0 , ( 0 ) 1
2 + + y= y = y =−
dt dy dt
y
d &
b)
2
23 6 , dla war.pocz. y ( 0 ) 1 i y ( 0 ) 2
2
+ + y = = & = −
dt dy dt
y d
c) 2
3 0 , dla war. pocz. ( 0 ) 1 , ( 0 ) 0
2
+ + y = y = y =
dt dy dt
y
d &
d) 2
2 5 0 , dla war. pocz. ( 0 ) 3 , ( 0 ) 0
2
=
=
= +
+ y y y
dt dy dt
y
d &
e) 2
2 4 , dla war.pocz. y ( 0 ) 1 i y ( 0 ) 0
2
+ + y = = & =
dt dy dt
y d
f) 2
4 13 0 , dla war. pocz. ( 0 ) 1 , ( 0 ) 0
2 + + y= y = y =
dt dy dt
y
d &
g) 2
3 9 0 , dla war. pocz. ( 0 ) 0 , ( 0 ) 1
2 + + y= y = y =
dt dy dt
y
d &
wykorzystujc funkcj dsolve, funkcj ode45 oraz model równania przygotowany w Simulinku. Wykreli przebieg funkcji y(t) otrzymanej w kadym z trzech rozwiza i porówna otrzymane wyniki na jednym wykresie.
4. Sprawozdanie z przebiegu ćwiczenia
Na podstawie przeprowadzonych oblicze naley przygotowa sprawozdanie, które powinno zawiera rozwizania wybranego równania róniczkowego z punktu 3, wykorzystujce metod symboliczn, numeryczn oraz model równania w Simulinku. Poda wnioski kocowe.
Literatura
[1] Brzózka J., wiczenia z Automatyki w MATLABIE i SIMULINKU, Wydawnictwo Mikon, Warszawa 1997 [2] Tomera M., Wprowadzenie do MATLABA, http://www.am.gdynia.pl/~tomera/teoria_ster.htm, 2004
[3] Zalewski A., Cegieła R., MATLAB: obliczenia numeryczne i ich zastosowania, Wydawnictwo Nakom, Pozna 1996