background image

Nikodem Janik

Dawid Janus

SPRAWOZDANIE Z PODSAW AUTOMATYKI LABORATORIA

Laboratorium nr 1 : 

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

początkowymi

Równanie które będziemy liczyć metodą symboliczną, numeryczną oraz modelem w Simulinku

dy

dt

+

5

dy

dt

+

6y=0 dla war. Początkowych y(0)=0 , y'(0)=1

1. Metoda symboliczna

 

 

Kod programu:

syms 

y

 

z

%definiuje zmienne symboliczne

z=dsolve(

'D2y + 5*Dy + 6*y = 0'

 , 

'y(0)=0'

 , 

'Dy(0)=1'

);

pretty(z); 

%wyœwietla rozwi¹zanie

t=0:0.01:9.99;
w=subs(z); 

%wartoœci z dla wektrora czasu t

 

plot(t,w,

'r-'

); 

xlabel(

'czas[s]'

);

zlabel(

'amplituda sygnalu'

);

title(

'Wykres rozwiazania rownania rozniczkowego'

);

grid;

Działanie programu

Program zwraca rozwiązanie równania  exp(-2 t) - exp(-3 t)

oraz wykres 

background image

2. Metoda numeryczna Rungego-Kutty(funkcja ode45)

 

 

Kod programu (równanie stanu) funkcja.m

function

 ydot=funkcja(t,y)

 

ydot=zeros(2,1);
ydot(1)=y(2);
ydot(2)=(-5*y(2)-6*y(1));

Kod programu rozw2.m

function

 rozw2

 

t0=0;

  

clc
disp(

'Funkcja rozwiazuje rownanie rozniczkowe zwyczajne 

metoda'

)

disp(

'Rungeg-Kutty i podaje jego interpretacje graficzna:'

);

disp(

' '

);disp(

'Postac rownania:'

);disp(

' '

);

disp(

' y" + 5*y` + 6*y = 0'

);

 

y01=input (

'Podaj wartosc y01= '

);

y02=input (

'Podaj wartosc y02= '

);

tk=input (

'Podaj czas symulacji tk= '

);

 

czas_sym=[t0 tk];
war_pocz=[y01 y02];

 

[t,y]=ode45(

'funkcja'

,czas_sym,war_pocz);

plot(t,y(:,1),

'g-'

);

xlabel(

'czas[s]'

);

ylabel(

'amplituda sygnalu'

);

title(

'Wykres rozwiazania rownania rozniczkowego'

);

grid;

Działanie programu 

Program zwraca:
Funkcja rozwiazuje rownanie rozniczkowe zwyczajne metoda
Rungeg-Kutty i podaje jego interpretacje graficzna:

 

Postac rownania:

 

 y" + 5*y` + 6*y = 0
Podaj wartosc y01= 0
Podaj wartosc y02= 1
Podaj czas symulacji tk= 10

background image

3.  Model w simulinku 

Model równania różniczkowego:

Wynik programu

0

1

2

3

4

5

6

7

8

9

1 0

0

0 . 0 2

0 . 0 4

0 . 0 6

0 . 0 8

0 . 1

0 . 1 2

0 . 1 4

0 . 1 6

c z a s [ s ]

a

m

p

li

tu

d

a

 s

y

g

n

a

lu

W y k r e s   r o z w i a z a n i a   r o w n a n i a   r o z n i c z k o w e g o

Scope

1

s

Integrator1

1

s

Integrator

-6

Gain1

-5

Gain

background image

4. Zestawienie metod

5.Porównanie metod

0

1

2

3

4

5

6

7

8

9

1 0

0

0 . 1

0 . 2

M e t o d a   s y m b o l i c z n a

a

m

p

li

tu

d

a

 s

y

g

n

a

lu

c z a s [ s ]

0

1

2

3

4

5

6

7

8

9

1 0

0

0 . 1

0 . 2

M e t o d a   n u m e r y c z n a

a

m

p

li

tu

d

a

 s

y

g

n

a

lu

c z a s [ s ]

0

1

2

3

4

5

6

7

8

9

1 0

0

0 . 1

0 . 2

M e t o d a   z   u y c i e m   w   m o d e l u   S i m u l i n k

ż

a

m

p

li

tu

d

a

 s

y

g

n

a

lu

c z a s [ s ]

background image

WNIOSKI

Po przeprowadzeniu symulacji można stwierdzić, że wszystkie z wyżej wymienionych metod dają prawie 

identyczne rozwiązanie graficzne – niewielką różnicę można zauważyć tylko między wykresami 
wykorzystującymi metodę dsolve a metody ode45 Simulink’a(wykresy metody numerycznej i modelu 

Simulink pokrywają się, ponieważ obie wykorzystują do obliczeń metodę ode45). Metoda analityczna jest 
najdokładniejsza, gdyż daje rzeczywisty wynik.

Pozostałe metody jako metody numeryczne dają wyniki, które są obarczone błędem wynikającym z przyjętej
dokładności.