background image

Modelowanie i  Symulacja Komputerowa  

 

 

 

     

 

   M A T L A B   –   S i mu l i n k 

 

Simulink 

  

Wprowadzenie:   http://me-www.colorado.edu/matlab/simulink/simulink.htm 

–  interaktywny  pakiet  przeznaczony  do  modelowania,  symulacji,  analizy  dynamicznych  układów  ciągłych,  dyskretnych, 

dyskretno-ciągłych w czasie 

  zintegrowany z MATLAB-em (nie jest możliwe korzystanie z Simulink-a bez zainstalowania  MATLAB-a) 

–  stosowany do projektowania i testowania urządzeń oraz systemów sterujących. Badanie układów metodami symulacyjnymi 

znacznie zmniejsza koszty i czas, niezbędny do przygotowania lub modernizacji prototypów urządzeń i systemów sterowania 

CEL  ĆWICZEŃ  LABORATORYJNYCH:    zdefiniowanie  modelu  matematycznego  rozważanego  układu/procesu 

dynamicznego poprzez opis za pomocą równań różniczkowych zwyczajnych, zbudowanie graficznego modelu (schematu 

blokowego  z  wykorzystaniem  bloków  bibliotecznych  Simulink-a),  wykonanie  eksperymentu  symulacyjnego  przy 

zadanych  parametrach  symulacji,  tworzenie  graficznego  interfejsu  użytkownika  umożliwiającego  poprawne  i  wygodne 

wprowadzanie danych oraz prezentację rezultatów obliczeń w postaci wykresów 

 

Przykład modelowania  1 

1)

 

Wahadło matematyczne - ciało wykonujące drgania pod wpływem siły grawitacji. 

 

Zmienność  kąta  wychylenia  wahadła  przy  uwzględnieniu  oporów  ośrodka, 

siły  grawitacji  oraz  działającej  na  nie  siły  wymuszającej  opisuje  równanie  

postaci 

2

2

2

sin

cos

d θ

ml

γ

mgl

θ

A

ωt

dt

dt

+

+

=

 

gdzie 

θ  ‒ kąt odchylenia wahadła od położenia w stanie równowagi 

l   ‒ długość wahadła 
m  ‒  masa wahadła 
g  ‒  przyspieszenie ziemskie (

2

9,80665

/

g

m s

=

A  ‒ amplituda siły wymuszającej 
ϖ  ‒  częstotliwość siły wymuszającej, gdzie 
 

2

;

2

g

π

l

ω

T

π

T

l

g

=

=

=

 

(ϖ  jest częstością kołową drgań; T – okresem) 

γ  ‒ współczynnik oporu ośrodka 
 
Z powyższego równania różniczkowego opisującego ruch wahadła wyprowadzić można następującą zależność 
 

2

2

2

1

cos

sin

d θ

A

ωt

γ

mgl

θ

dt

dt

ml

=

 

Po podstawieniu  za  

g

ω

l

=

 otrzymujemy 

2

2

2

1

cos

sin

g

d θ

A

t

γ

mgl

θ

l

dt

dt

ml

=

 

θ

m

l

sinθ

y = l

cosθ

x = l

background image

Modelowanie i  Symulacja Komputerowa  

 

 

 

     

 

   M A T L A B   –   S i mu l i n k 

Schemat  blokowy  powyższego  układu  zbudowany  w  oparciu  o  równanie  różniczkowe  z  wykorzystaniem  bloków 

bibliotecznych Simulink-a ma następującą postać: 

To Workspace 3

d2theta

To Workspace2

t

To Workspace1

dtheta

To Workspace

theta

Sum

Integrator 1

1

s

Integrator

1

s

Gain 2

1/(m*(l^2))

Gain 1

gamma

Fcn1

A *cos(u*sqrt(g/l))

Fcn

m*g*l*sin(u)

Clock

 

Co można uczynić bardziej przejrzystym edytując teksty oraz wprowadzając odpowiednią kolorystykę 

k

ą

t wychylenia

wahadła

d2theta

t

dtheta

theta

1

s

1

s

1/(m*(l^2))

gamma

A *cos(u*sqrt(g/l))

m *g*l*sin(u)

 

początkowe wychylenie wahadła : 

 

 

 

początkowa prędkość wahadła : 

background image

Modelowanie i  Symulacja Komputerowa  

 

 

 

     

 

   M A T L A B   –   S i mu l i n k 

 

Przykład modelowania  2 

Rozważmy obiekt opisany za pomocą równania różniczkowego drugiego rzędu 

( )

( )

( )

( )

2

2

1,5

2

2,5

d y t

dy t

y t

z t

dt

dt

+

+

=

 

(1) 

 

gdzie  y(t) oznacza wyjście układu (odpowiedź) na sygnał wejściowy (zadany)  

z(t),  przy  warunkach  początkowych  określających  stan  układu  w  chwili 

początkowej (rozpoczęcia procesu sterowania, t = 0) 

( )

( )

' 0

2

0

1

y

y

= −

=

 

 

oraz zadanym sygnale wejściowym postaci 

( )

(

)

2.3

sin

t

z t

t e

=

 

Z równania (1)  należy wyznaczyć wzór na drugą pochodną  

( )

( )

( )

( )

2

2

2,5

1,5

2

d y t

dy t

z t

y t

dt

dt

=

 

Na schemacie blokowym blok całkowania odpowiada uzyskaniu sygnałów będących pochodnymi niższego rzędu, co wynika z 

odwrotności operacji całkowania względem różniczkowania, tj.   

( )

( )

( )

( )

2

2

dy t

d y t

dy t

dt

y t

dt

dt

dt

dt

=

=

 

 

 

 

 

 

Schemat modelu układu w Simulinku  

Sum

Scope 2

Scope 1

Scope

Integrator 1

1

s

Integrator

1

s

Gain 2

2.5

Gain 1

2

Gain

1.5

Fcn

sin(u*exp(-2.3*u))

Clock

 

  

 

 

( )

2

2

d y t

dt

( )

dy t

dt

( )

''

y t

( )

'

y t

 

( )

dy t

dt

( )

y t

( )

'

y t

( )

y t

Równoważnym  oznaczeniem    pochodnych  po 
czasie 

 

są     

( ) ( )

( ) ( )

2

2

dy t

d y t

y t

y t

dt

dt

=

=

ɺ

ɺɺ

 

 
W  fizyce  najczęstszą  interpretacją  sygnału  y(t
jest  położenie  obserwowanego  ciała,  jego 
pierwsza  pochodna  reprezentuje  prędkość,  zaś 
druga pochodna – przyspieszenie. 

background image

Modelowanie i  Symulacja Komputerowa  

 

 

 

     

 

   M A T L A B   –   S i mu l i n k 

Warunki początkowe   

( )

( )

' 0

2

0

1

y

y

= −

=

 

są ustawiane w integratorach  w polu „initial condition” 

 

Przebiegi widoczne na oscyloskopach (po dwukrotnym kliknięciu na dany oscyloskop i wyborze ikony ozn. lornetką) 

 

Schemat można uczynić bardziej przejrzystym edytując teksty oraz wprowadzając odpowiednią kolorystykę  

(Menu podręczne: Format, Foreground Color, Bacground Color 

2.5z(t)

y(t)

dy(t)/dt

d2y(t)/dt2

z(t)

sin(u*exp(-2.3*u))

Suma

Scope 2

Scope 1

Scope

1

s

1

s

Clock

2.5

2  y(t)

2

1.5  dy (t)/dt

1.5

 

background image

Modelowanie i  Symulacja Komputerowa  

 

 

 

     

 

   M A T L A B   –   S i mu l i n k 

Oscyloskopy mona zastąpić blokami To  workspace  (kategoria  Sinks  w bibliotece Simulinka)  (zapis wyników pomiarów do 

przestrzeni roboczej w formacie tablicowym -  Array)  

2.5z(t)

y(t)

dy(t)/dt

d2y(t)/dt2

z(t)

sin(u*exp(-2.3*u))

t

d2y

dy

y

Suma

1

s

1

s

Clock

2.5

2  y(t)

2

1.5  dy (t)/dt

1.5

 

I  wówczas  na  podstawie  zgromadzonych  danych  zilustrować  dynamikę  obiektu  sterowania  -  położenia,  prędkości  oraz 

przyspieszenia (y(t), dy(t)/dt, d2y(t)/dt2) 

Polecenia Matlaba  wprowadzane w  Command window 

>> plot(t,y,’red’,t,dy,’blue’,t,d2y,’green’) 
>>grid on 
>> title('zmiana polozenia w czasie') 
>> xlabel('czas t') 
>> ylabel('y(t)  dy(t)/dt  d2y(t)/dt2') 
 

 

 

>> plot(y,dy,'blue') 

 

// tak zwany portret fazowy 

>> grid 
>> xlabel('polozenie') 
>> ylabel('predkosc') 

background image

Modelowanie i  Symulacja Komputerowa  

 

 

 

     

 

   M A T L A B   –   S i mu l i n k 

 

 

 

Polecenia Matlaba  wprowadzane w  Command window 
 (prezentacja uzyskanych wyników obliczeń  w postaci wykresów umieszczonych w jednym oknie w układzie 3x1) 

 

>> subplot(3,1,1) 
>> plot(t,y) 
>> grid on 
>> title('zmiana polozenia w czasie') 
>> xlabel('czas t') 
>> ylabel('y(t)') 
 
>> subplot(3,1,2) 
>> plot(t,dy) 
>> grid on 
>> title('zmiana predkosci w czasie') 
>> xlabel('czas t') 
>> ylabel('dy'(t)/dt') 
 
>> subplot(3,1,3) 
>> plot(t,d2y) 
>> grid on 
>> title('zmiana przyspieszenia w czasie') 
>> xlabel('czas t') 
>> ylabel('d2y(t)/dt2') 
 

 

 

 

 

 

 

background image

Modelowanie i  Symulacja Komputerowa  

 

 

 

     

 

   M A T L A B   –   S i mu l i n k 

Ogólnie o tworzeniu podwykresów w jednym oknie wykresu

 

Polecenie w oknie poleceń Matlab-a 
 
>>subplot(liczba_wierszy, liczba_kolumn, numer pola_wykresu_liczone_od_lewej_do_prawej)       
 
stanowi  odwołanie  do  zadanego  pola  wykresu  w  oknie,  w  którym  utworzona  została  określona  liczba  okien  równa 
liczbie_wierszy x liczba_kolumn ,  np.  subplot(2,3,1). Dopiero wówczas poleceniem    >>plot(t,y)   można wykonać wykres w 
tym właśnie oknie