background image

Laboratorium Podstaw Automatyki 

 

 

 

Laboratorium nr 1 

 

Rozwiązywanie równań różniczkowych 

z niezerowymi warunkami początkowymi 

 

1. Cele 

ć

wiczenia 

 

  zapoznanie  si

ę

  z  metodami  symbolicznego  i  numerycznego  rozwi

ą

zywania  równa

ń

  ró

ż

niczkowych  w 

Matlabie, 

  wykorzystanie Simulinka do tworzenia modelu równania ró

ż

niczkowego, 

  archiwizacja otrzymanych rozwi

ą

za

ń

 

 

2. Wprowadzenie teoretyczne 
 
2.1. 

Symboliczne rozwi

ą

zywanie równa

ń

 ró

ż

niczkowych – funkcja dsolve() 

 

Rozwi

ą

zywanie 

symboliczne 

polega 

na 

obliczeniach 

wykonywanych 

na 

wyra

ż

eniach 

matematycznych,  a  nie  na  liczbach  (rozwi

ą

zanie  numeryczne),  w  wyniku  czego  dostajemy  równie

ż

 

wyra

ż

enie matematyczne. Przy pomocy zmiennych symbolicznych oraz przy wykorzystaniu funkcji dsolve() 

mo

ż

liwe jest rozwi

ą

zanie równania ró

ż

niczkowego dowolnego rz

ę

du. 

 

W rozwi

ą

zywaniu symbolicznym równa

ń

 ró

ż

niczkowych najwa

ż

niejsza jest zmienna D (du

ż

e D), która 

okre

ś

la  ró

ż

niczk

ę

  pierwszego  stopnia  (

dt

d

D

=

),  podobnie  D2  oznacza  ró

ż

niczk

ę

  drugiego  stopnia 

(

2

2

2

dt

d

D

=

) itd. Funkcja dsolve() domy

ś

lnie ró

ż

niczkuje po czasie. 

 
Za  pomoc

ą

  funkcji  dsolve()  mo

ż

liwe  jest  równie

ż

  rozwi

ą

zywanie  układu  równa

ń

  ró

ż

niczkowych  jak  

i  okre

ś

lanie  warunków  pocz

ą

tkowych.  Kolejne  równania  podajemy  po  przecinkach,  a  po  nich  warunki 

pocz

ą

tkowe, równie

ż

 oddzielone przecinkami: 

 

dsolve(‘rownanie1’ , ‘rownanie2’ , … , ‘warunek 1’ , ‘warunek 2’); 

 
Przykład 1: 

Rozwi

ą

za

ć

 równanie ró

ż

niczkowe 

 

0

2

3

2

2

=

+

+

x

dt

dx

dt

x

d

  przy war. pocz.   

( )

0

0

=

x

2

)

0

(

=

dt

dx

 

wykorzystuj

ą

c funkcj

ę

 dsolve(). 

 
Rozwi

ą

zanie: 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 pocz

ą

tkowymi 

pretty(y); 

% wypisanie rozwi

ą

zania 

t=0:0.01:9.99;  

% definicja wektora czasu 

w=subs(y);      

% warto

ść

 liczbowa ‘y’ wyliczona poprzez podstawienie  

                

% zdefiniowanego wcze

ś

niej wektora ‘t’ 

plot(t,w,'r-'); 

% narysowanie wykresu 

xlabel('czas[s]'); 
ylabel('amplituda sygnalu'); 
title('Wykres rozwiazania rownania rozniczkowego'); 
grid; 

 

Rozwi

ą

zanie  równania  ró

ż

niczkowego  w  postaci  wyra

ż

enia  matematycznego  oraz  wykresu  otrzymujemy 

wywołuj

ą

c w oknie komend MATLABA funkcj

ę

 >> rozw1 

background image

Laboratorium Podstaw Automatyki 

 

 

 

 

2.2. 

Numeryczne rozwi

ą

zywanie równa

ń

 ró

ż

niczkowych – funkcja ode() 

 

MATLAB  zawiera  funkcje  rozwi

ą

zuj

ą

ce  zagadnienie  pocz

ą

tkowe  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 rozwi

ą

zuj

ą

 zagadnienie pocz

ą

tkowe dla układów równa

ń

 zwyczajnych postaci: 

 

( )

0

0

)

(

    

,

,

x

t

x

x

t

F

dt

dx

=

=

 

Składnia funkcji: 
 

 

[T, X] = ode23 (‘F(t, x)’, [t0 tk], x0, options) 

 

[T, X] = ode45 (‘F(t, x)’, [t0 tk], x0, options) 

 
Kolejne parametry wej

ś

ciowe oznaczaj

ą

  pierwszym parametrem musi by

ć

 ła

ń

cuch zawieraj

ą

cy nazw

ę

 zdefiniowanej przez u

ż

ytkownika funkcji 

zwracaj

ą

cej warto

ś

ci F(t, x), 

  t0, tk - granice przedziału czasu, w którym poszukiwane jest rozwi

ą

zanie, 

  x0  -  okre

ś

la  warunek  pocz

ą

tkowy  -  wektor  kolumnowy  zawieraj

ą

cy  warto

ść

  rozwi

ą

zania  układu  w 

chwili pocz

ą

tkowej, 

  options – dodatkowe parametry, które mo

ż

na ustawi

ć

 przy pomocy instrukcji odeset

options = odeset(‘nazwa_parametru1’,wartosc1,’nazwa_parametru2’,wartosc2,…) 

 

Warto

ś

ci

ą

  omawianych  funkcji  jest  macierz  X  zawieraj

ą

ca  umieszczone  wierszowo  wektory  reprezentuj

ą

ce 

warto

ś

ci rozwi

ą

zania w punktach okre

ś

lonych odpowiednimi elementami wektora kolumnowego t, który jest 

jedn

ą

 z warto

ś

ci funkcji ode23 i ode45. 

 
Przykład 2: 

Rozwi

ą

za

ć

 równanie ró

ż

niczkowe z przykładu 1 wykorzystuj

ą

c funkcj

ę

 ode45. 

 

Rozwi

ą

zanie:  Do  rozwi

ą

zania  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  wej

ś

ciowe,  wywołujemy  funkcj

ę

  ode45  i  rysujemy  wykres 

rozwi

ą

zania: 

 

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 = '); 

 

czas_sym=[t0 tk];   
war_pocz=[x01 x02]; 

 

  [t,x]=ode45('funkcja',czas_sym,war_pocz); 

 

   

background image

Laboratorium Podstaw Automatyki 

 

 

 

   
  plot(t,x(:,1),'g-'); 
  xlabel('czas [s]');ylabel('amplituda sygnalu'); 
  title('Wykres rozwiazania rownania rozniczkowego'); 
  grid; 

 
Rozwi

ą

zanie  równania  ró

ż

niczkowego,  w  postaci  wykresu,  otrzymujemy  wywołuj

ą

c  w  oknie  komend 

MATLABA funkcj

ę

 >> rozw2  

 

2.3. 

Rozwi

ą

zywanie równa

ń

 ró

ż

niczkowych przy pomocy pakietu Simulink 

 
Przykład 3: 

Rozwi

ą

za

ć

 równanie ró

ż

niczkowe z przykładu 1 wykorzystuj

ą

c model zbudowany w Simulinku. 

 
Rozwi

ą

zanie: Wprowadzaj

ą

c 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

x

x

x

x

x

&

&

&

&

&

 

 
na podstawie którego tworzymy poni

ż

szy model: 

 
Ustalaj

ą

c  warunki  pocz

ą

tkowe  na  obu  integratorach  (Int1  i  Int2)  oraz  dobieraj

ą

c  odpowiednie  parametry 

symulacji, w wyniku otrzymujemy wykres rozwi

ą

zania: 

 

 

10 

0.1 

0.2 

0.3 

0.4 

0.5 

czas [s] 

Wykres rozwiazania równania  rózniczkowego 

 

 
Takie same 

wykresy rozwi

ą

zania równania ró

ż

niczkowego mo

ż

na uzyska

ć

 w punktach 2.1 i 2.2

 

1/s 

    Int2 

1/s 

    Int1 

x(t) 


Sum 

-3 

a1 

-2 

a0 

x

2

 

&

x

2

 

X

1

 

 

background image

Laboratorium Podstaw Automatyki 

 

 

 

 

Przykład 4: 

Skonstruowa

ć

 w Simulinku model równania ró

ż

niczkowego 

 

0

)

0

(

)

0

(

    

pocz.

 

 war.

dla

   

,

3

2

6

5

2

2

=

=

+

=

+

+

y

y

u

dt

du

y

dt

dy

dt

y

d

&

 

 

w  postaci  transmitancji  operatorowej  oraz  w  postaci  równa

ń

  stanu  i  równania  wyj

ś

cia.  Znale

źć

  odpowied

ź

 

skokow

ą

 układu, gdy sygnałem wej

ś

ciowym u(t) jest sygnał o amplitudzie równej jedno

ś

ci. 

 
Rozwi

ą

zanie:  Równaniu  ró

ż

niczkowemu  (zapisanemu  jako  transmitancja)  odpowiada  schemat  blokowy 

przedstawiony poni

ż

ej: 

Przyjmuj

ą

c okre

ś

lone parametry symulacji otrzymujemy rozwi

ą

zanie 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 poni

ż

szy schemat blokowy: 

Ustalaj

ą

c  zerowe  warunki  pocz

ą

tkowe  na  integratorach  oraz  dobieraj

ą

c  odpowiednie  parametry  symulacji 

otrzymujemy rozwi

ą

zanie w postaci wykresu, jak poprzednio. 

 

2.4.

 Archiwizacja uzyskanych rozwi

ą

za

ń

 równa

ń

 ró

ż

niczkowych na dysku  

 
Dla równania z przykładu 4 tworzymy poni

ż

szy 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+6

2

G(s)

Clock

y1

u1

2s+3

s  +5s+6

2

G(s)

background image

Laboratorium Podstaw Automatyki 

 

 

 

 

W  przestrzeni  roboczej  Matlaba  utworzona  zostanie  macierz  o  nazwie  wynik,  zawieraj

ą

ca  trzy  wektory 

zmiennych: czas symulacji, wymuszenie oraz odpowied

ź

 skokowa układu. Aby zapisa

ć

 t

ą

 macierz na dysku 

nale

ż

y wykona

ć

 instrukcj

ę

 

>> save wynik –ascii 

 
Poleceniem  clear  czy

ś

cimy  przestrze

ń

  robocz

ą

  a  nast

ę

pnie  wprowadzamy  macierz  wynik  ponownie  do 

przestrzeni roboczej z dysku: 

 

>> load wynik –ascii 

 
Ponowne  wykre

ś

lenie  uzyskanego  rozwi

ą

zania  równania  z  przykładu  4  mo

ż

na  uzyska

ć

  po  wpisaniu 

nast

ę

puj

ą

cych 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 

 

Rozwi

ą

za

ć

 równania ró

ż

niczkowe: 

 

a) 

1

)

0

(

 ,

0

)

0

(

  

pocz.

 

 war.

dla

   

,

0

4

2

2

2

=

=

=

+

+

y

y

y

dt

dy

dt

y

d

&

 

b) 

2

)

0

(

y

  

i

  

1

)

0

(

y

    

 war.pocz.

dla

   

,

6

3

2

2

2

=

=

=

+

+

&

y

dt

dy

dt

y

d

 

c)  

0

)

0

(

 

,

1

)

0

(

  

pocz.

 

 war.

dla

   

,

0

3

2

2

=

=

=

+

+

y

y

y

dt

dy

dt

y

d

&

 

d)  

0

)

0

(

 

,

3

)

0

(

  

pocz.

 

 war.

dla

   

,

0

5

2

2

2

=

=

=

+

+

y

y

y

dt

dy

dt

y

d

&

 

e) 

0

)

0

(

y

  

i

  

1

)

0

(

y

    

 war.pocz.

dla

   

,

4

2

2

2

=

=

=

+

+

&

y

dt

dy

dt

y

d

 

f) 

0

)

0

(

 

,

1

)

0

(

  

pocz.

 

 war.

dla

   

,

0

13

4

2

2

=

=

=

+

+

y

y

y

dt

dy

dt

y

d

&

 

g) 

1

)

0

(

 

,

0

)

0

(

  

pocz.

 

 war.

dla

   

,

0

9

3

2

2

=

=

=

+

+

y

y

y

dt

dy

dt

y

d

&

 

 

wykorzystuj

ą

c  funkcj

ę

  dsolve,  funkcj

ę

  ode45  oraz  model  równania  przygotowany  w  Simulinku.  Wykre

ś

li

ć

 

przebieg  funkcji  y(t)  otrzymanej  w  ka

ż

dym  z  trzech  rozwi

ą

za

ń

  i  porówna

ć

  otrzymane  wyniki  na  jednym 

wykresie. 
 
 

4. Sprawozdanie z przebiegu 

ć

wiczenia 

 

Na podstawie przeprowadzonych oblicze

ń

 nale

ż

y przygotowa

ć

 sprawozdanie, które powinno zawiera

ć

 

rozwi

ą

zania  wybranego  równania  ró

ż

niczkowego  z  punktu  3,  wykorzystuj

ą

ce  metod

ę

  symboliczn

ą

numeryczn

ą

 oraz model równania w Simulinku. Poda

ć

 wnioski ko

ń

cowe. 

 
 

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