Wprowadzenie do modelowania w Simulinku

Transkrypt

Wprowadzenie do modelowania w Simulinku
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
ml 2 d θ2 + γ dθ + mgl sin θ = A cos ω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 ( g = 9,80665 m / s 2 )
A ‒ amplituda siły wymuszającej
ϖ ‒ częstotliwość siły wymuszającej, gdzie
ω = 2π =
T
g
; T = 2π l
l
g
l
x = l cosθ
m
y = l sinθ
(ϖ 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ść
d 2θ = 1  A cos ωt − γ dθ − mgl sin θ 
dt

dt 2 ml 2 
Po podstawieniu za ω =
g
otrzymujemy
l
d 2θ = 1  A cos  t g  − γ dθ − mgl sin θ 

 l 
dt
dt 2 ml 2 



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ć:
d2theta
To Workspace 3
dtheta
theta
To Workspace1
To Workspace
1
s
1
s
Integrator 1
Integrator
gamma
Gain 1
1/(m*(l^2))
m*g*l*sin(u)
Fcn
Gain 2
A*cos(u*sqrt(g/l))
Fcn1
Sum
t
Clock
To Workspace2
Co można uczynić bardziej przejrzystym edytując teksty oraz wprowadzając odpowiednią kolorystykę
d2theta
dtheta
1
s
1
s
theta
kąt wychylenia
wahadła
gamma
1/(m*(l^2))
m*g*l*sin(u)
A*cos(u*sqrt(g/l))
t
początkowe wychylenie wahadła :
początkowa prędkość wahadła :
Modelowanie i Symulacja Komputerowa
M A T L A B – S i mu l i n k
Przykład modelowania 2
Równoważnym oznaczeniem
czasie
Rozważmy obiekt opisany za pomocą równania różniczkowego drugiego rzędu
d 2 y (t )
dy (t )
+ 1,5
+ 2 y (t ) = 2,5z (t )
dt
dt 2
dy (t )
= yɺ (t )
dt
(1)
d 2 y (t )
dt 2
pochodnych po
są
y (t )
= ɺɺ
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.
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)
y ' ( 0 ) = −2
y ( 0) = 1
oraz zadanym sygnale wejściowym postaci
(
z (t ) = sin t ⋅ e −2.3t
)
Z równania (1) należy wyznaczyć wzór na drugą pochodną
d 2 y (t )
dy (t )
= 2,5z (t ) − 1,5
− 2 y (t )
2
dt
dt
Na schemacie blokowym blok całkowania odpowiada uzyskaniu sygnałów będących pochodnymi niższego rzędu, co wynika z
dy (t )
d 2 y (t )
dy (t )
odwrotności operacji całkowania względem różniczkowania, tj. ∫
dt = y (t )
∫ dt 2 dt = dt
dt
dy (t )
dt
y ' (t )
y (t )
∫
d 2 y (t )
dt 2
y (t )
∫
y '' (t )
dy (t )
dt
y ' (t )
Schemat modelu układu w Simulinku
Scope 2
sin(u*exp(-2.3*u))
Clock
Fcn
Scope 1
2.5
Gain 2
1
s
1
s
Integrator 1
Integrator
Sum
1.5
Gain
2
Gain 1
Scope
Modelowanie i Symulacja Komputerowa
Warunki początkowe
y ' ( 0 ) = −2
M A T L A B – S i mu l i n k
y ( 0) = 1
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 )
Scope 2
Scope 1
2.5z(t)
sin(u*exp(-2.3*u))
Clock
2.5
d2y(t)/dt2
z(t)
1
s
dy(t)/dt
1
s
y(t)
Scope
Suma
1.5
1.5 dy (t)/dt
2
2 y(t)
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)
d2y
dy
2.5z(t)
sin(u*exp(-2.3*u))
2.5
d2y(t)/dt2
Clock
z(t)
t
1
s
dy(t)/dt
1
s
y(t)
y
Suma
1.5
1.5 dy (t)/dt
2
2 y(t)
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')
>> grid
>> xlabel('polozenie')
>> ylabel('predkosc')
// tak zwany portret fazowy
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')
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
1
2
3
4
5
6