Ćwiczenia z MATLAB`em - Wydział Elektrotechniki i Automatyki

advertisement
Politechnika Gdańska
Wydział Elektrotechniki i Automatyki
Katedra Inżynierii Systemów Sterowania
Teoria sterowania
Wprowadzenie do Simulinka w środowisku MATLAB
Materiały pomocnicze do ćwiczeń laboratoryjnych 1 – Część 9
Opracowanie:
Michał Grochowski, dr inż.
Robert Piotrowski, dr inż.
Łukasz Michalczyk, mgr inż.
Gdańsk
1
1. Wprowadzenie do budowy modeli w Simulinku
Simulink jest jedną z nakładek środowiska MATLAB. Służy głównie do przeprowadzania
badań symulacyjnych. Simulink pozwala budować schematy blokowe układów (modele
symulacyjne) przy pomocy interfejsu graficznego i tzw. bloków. Simulink umożliwia
przeprowadzanie zarówno symulacji z czasem dyskretnym jak i ciągłym.
Definiując obiekty w Simulinku mamy możliwość odwoływania się do istniejących
w pamięci zmiennych, dostępnych z wiersza poleceń środowiska MATLAB.
Ogólne zasady budowy schematów analogowych
Budowa modeli komputerowych w Simulinku opiera się na budowie schematów
analogowych. Poniżej przedstawiono ogólne zasady tworzenia schematów
analogowych pozwalających na numeryczne rozwiązywanie równań różniczkowych
zwyczajnych, przy pomocy metody Kelvina (metoda ogólna).
Metoda Kelvina rozwiązywania równań różniczkowych zwyczajnych
Dane jest równanie różniczkowe n-tego rzędu:
y ( n ) (t )  a 1  y ( n 1) (t )  a 2  y ( n 2) (t ) 
gdzie
y ( n ) (t )
oznacza
n-tą
pochodną
 a n  y (t )  g ( x, t )
funkcji
y (t ) ,
a 1 , a 2 ,..., a n
(1)
są
stałymi
współczynnikami występującymi przy tej funkcji, natomiast g ( x, t ) jest niezależną
funkcją.
Dysponując warunkami początkowymi:
y | o  y 00
y (1) | o  y10
y (2) | o  y 20
(2)
...
y ( n 1) | o  y ( n 1)0
możemy rozwiązać równanie (1) względem funkcji y (t ) przy pomocy odpowiednio
skonstruowanego schematu analogowego.
Aby doprowadzić do takiego schematu należy przekształcić równanie do postaci, w
której po lewej stronie równania będzie występowała najwyższa pochodna funkcji y (t )
czyli y ( n ) (t ) . Jeżeli w równaniu (1) przy najwyższej potędze występuje jakiś
współczynnik, należy go wyeliminować dzieląc przez niego równanie (obustronnie).
Po przekształceniach, równanie (1) będzie miało następującą postać:
y ( n ) (t )  g( x, t )  a 1  y ( n 1) (t )  a 2  y ( n 2) (t ) 
2
 a n  y (t )
(3)
Dla tak przedstawionego równania możemy skonstruować schemat analogowy
przedstawiony na Rys. 1.
y(n-1)0
y00
y(t)
y(n-2)(t)
y(n-1)(t)
y(n)(t)
g(x,t)
y(n-2)0
-a1
-a2
-an
Rys. 1. Realizacja analogowa rozwiązania równania różniczkowego (3)
Rys. 2 przedstawia funkcje poszczególnych elementów użytych na Rys. 1.
warunek
poczatkowy
integrator (element całkujący)
sumator
wzmacniacz
Rys. 2. Elementy schematów analogowych
Efektem działania schematu z Rys. 1 jest możliwość obserwacji wyjścia y (t ) czyli
rozwiązania równania (1).
Przykład 1
Obiekt opisany jest równaniem różniczkowym postaci:
2
d y t 
 8 y  t   6u  t 
dt
z warunkiem początkowym: y  0   2 .
Zbuduj schemat analogowy wiążący wyjście y (t ) z wejściem u(t ) .
3
(4)
Przykładowe rozwiązanie:
Przekształcamy równanie do następującej postaci:
d y t 
 3u  t   4 y  t 
dt
(5)
Mamy zatem:
y00=2
3
y(t)
dy(t)/dt
u(t)
-4
Rys. 3. Realizacja analogowa rozwiązania równania różniczkowego (5) z Przykładu 1
Przykład 2
Obiekt opisany jest równaniem różniczkowym postaci:
d 2 y t 
d y t 
4
 2 y  t   5u  t 
2
dt
dt
z warunkami początkowymi: y  0   3 i y  0  
d y t 
dt
(6)
0.
t 0
Zbuduj schemat analogowy wiążący wyjście y (t ) z wejściem u(t ) .
Przykładowe rozwiązanie:
Przekształcamy równanie do następującej postaci:
d 2 y t 
d y t 
 5u  t   4
 2 y t 
2
dt
dt
(7)
Mamy zatem:
y00=3
y10=0
5
u(t)
d2y(t)/dt2
dy(t)/dt
y(t)
-4
2
Rys. 4. Realizacja analogowa rozwiązania równania różniczkowego (7) z Przykładu 2
Przykład 3
4
Dla nieobciążonego prądowo czwórnika RLC (Rys. 5) z wyjściem pojemnościowym,
zbuduj schemat analogowy wiążący napięcie wyjściowe u wy (t ) z napięciem
wejściowym u we (t ) .
R
L
iRL(t)
iobc(t)
iC(t)
uL(t)
uR(t)
uwy(t)
uwe(t)
C
uC(t)
Rys. 5. Schemat nieobciążonego prądowo czwórnika RLC
Korzystając z II prawa Kirchhoff’a dla wejściowego oczka możemy napisać:
u R (t )  u L (t )  uC (t )  u we (t )
(8)
Ponadto, dla tego układu zachodzą następujące zależności:
napięciowe:
uwy  t   uC  t  ;
uR  t   i RL  t   R;
uL  t   L 
di RL  t 
dt
(9)
prądowe:
iC  t   C 
duC  t 
(10)
dt
Po podstawieniu zależności (9) i (10) do równania (8) otrzymamy:
L C 
d 2uwy
t 
dt 2
 R C 
duwy
dt
t 
 uwy
 t   uwe  t 
(11)
Aby zbudować schemat analogowy umożliwiający rozwiązanie równania (11) względem
napięcia wyjściowego u wy (t ) , należy zgodnie z przedstawionymi wcześniej regułami
doprowadzić do postaci, w której po lewej stronie równania będzie występowała jedynie
najwyższa potęga napięcia wyjściowego u wy (t ) . Zatem mamy:
d 2uwy
dt
2
t 

uwe  t 
L C

u
t 
R duwy  t 

 wy
L
dt
L C
(12)
Na podstawie równania (12) możemy zbudować odpowiedni schemat analogowy, co
pokazano na Rys. 6.
5
uwy10
uwe(t)
1/LC
d2uwy(t)/dt2
uwy00
duwy(t)/dt
-(R/L)
uwy(t)
-(1/LC)
Rys. 6. Realizacja analogowa rozwiązania równania różniczkowego (12) z Przykładu 3
Dzięki schematowi przedstawionemu na Rys. 6 jesteśmy w stanie obserwować
napięcie wyjściowe u wy (t ) pod wpływem zmian napięcia wejściowego u we (t ) , co
stanowi szukane rozwiązanie równania różniczkowego.
UWAGA:
Należy pamiętać, aby w odpowiednim miejscu wprowadzić do integratorów warunki
początkowe.
6
2. Pierwsze kroki w Simulinku
Schematy blokowe układów w nakładce Simulink buduje się między innymi w oparciu o
bloki statyczne i dynamiczne, liniowe i nieliniowe, funkcje matematyczne i operacje
logiczne, itp.
Użytkowanie Simulinka można podzielić na dwa etapy. W pierwszym z nich budowany
jest schemat blokowy układu odpowiadający matematycznemu opisowi tego układu.
Etap drugi polega na analizie zbudowanego wcześniej modelu symulacyjnego. Mogą
zachodzić interakcję pomiędzy etapami, np. można zatrzymać symulację w celu zmiany
struktury czy parametrów modelu.
W opracowaniu dalszej części materiału korzystano ze środowiska Matlab w wersji 7.4
(R2007a) oraz z nakładki Simulink w wersji 6.6, jednak praca w innych wersjach
Matlaba wygląda tak samo.
Praca w bibliotece Simulink odbywa się z poziomu środowiska Matlab i jej rozpoczęcie
możliwe jest na dwa sposoby (patrz Rys. 7):
 kliknięcie na ikonę Simulink,
 wpisanie komendy simulink w Command Window.
Rys. 7. Ogólny rysunek środowiska MATLAB z wyszczególnieniem nakładki Simulink
Wszystkie bloki Simulinka zostały podzielone na 18 grup (patrz Rys. 8).
7
Rys. 8. Grupy bloków w Simulinku
Opis elementów i bibliotek Simulinka jest przedstawiony w dalszej części opracowania.
Budowę schematów blokowych układów w Simulinku rozpoczyna się poprzez otwarcie
nowego projektu (nowego modelu) (patrz Rys. 9).
Rys. 9. Otwarcie nowego projektu w Simulinku
Przenoszenie poszczególnych bloków do nowego projektu polega na opcji „przeciągnij
i upuść” (ang. drag and drop) w odpowiednie miejsce tego projektu, a następnie ich
połączeniu. Połączenie bloków liniami odbywa się za pomocą lewego przycisku myszy
(bez jego zwalniania), poprzez przeciągniecie kursora od jednego do drugiego bloku
(patrz Rys. 10).
8
Rys. 10. Przenoszenie i łączenie bloków w bibliotece Simulink
Każdy blok można obracać poprzez jego zaznaczenie i użycie z menu „Format” opcji
„Rotate Block” lub klawiszami Ctrl-R.
W celu bezpośredniego przeprowadzenia symulacji możemy ją uruchomić klikając na
symbol grotu strzałki (patrz Rys. 10), lub najpierw ustawić parametry symulacji
korzystając z menu „Simulation” i opcji „Configuration Parameters”. Spośród wielu
ustawień istnieje możliwość określenia między innymi czasu początku i końca
symulacji, metody całkowania numerycznego, początkowego, minimalnego
i maksymalnego kroku całkowania, błędu całkowania (patrz Rys. 11).
9
Rys. 11. Ustawienia parametrów symulacji w Simulinku
Po przeprowadzeniu symulacji można obejrzeć wynik działania modelu układu. Na Rys.
12 pokazano wynik działania przykładowego modelu układu z Rys. 10 klikając na blok
„Scope”.
Rys. 12. Przykładowy wynik działania modelu zbudowanego w Simulinku
10
3. Opis bibliotek Simulinka
Poniżej przedstawiono wybrane elementy poszczególnych bloków Simulinka. Wszystkie
bloki są opisane w pomocy Simulinka środowiska MATLAB: The Mathworks. Simulink –
Dynamic System Simulation for MATLAB. Natick, 2000.
Grupa Continuous – funkcje i elementy ciągłe
Derivative – blok różniczkowania sygnału ciągłego w czasie.
Integrator – blok całkowania sygnału ciągłego w czasie, w bloku:
a. wybieramy źródło warunków początkowych (wewnętrzne, zewnętrzne),
b. podajemy warunki początkowe,
Możemy również:
c. podać dolną i górną granicę całkowania,
d. podać błąd całkowania.
State-Space – blok układu ciągłego opisanego w przestrzeni stanu, w bloku podajemy
macierze A, B, C i D i warunki początkowe. Macierze A, B, C, i D to odpowiednie
macierze równań stanu i wyjścia (wymiary tych macierzy zależą od liczby
współrzędnych stanu, sterowań i wyjść):
x ( t )  Ax ( t )  Bu( t )
y ( t )  Cx ( t )  Du( t )
gdzie: x  R , y  R , u  R .
n
m
c
Transfer Fcn – blok transmitancji operatorowej układu ciągłego (ciągła funkcja
przejścia), w bloku podajemy licznik i mianownik transmitancji operatorowej,
współczynniki zarówno licznika jak i mianownika transmitancji operatorowej podaje się
według malejących potęg operatora s.
Zero-Pole – blok układu ciągłego opisanego w postaci transmitancji (w formie zer Z,
biegunów P i wzmocnienia K):
G( s )  K 
s  z1   s  z2   ...  s  zm 
s  p1   s  p2   ...  s  pn 
Zerem Z (z ang. zero) transmitancji jest każdy z pierwiastków (zer) wielomianu
znajdującego się w liczniku transmitancji.
Biegunem P (z ang. pole) transmitancji jest każdy z pierwiastków wielomianu
znajdującego się w mianowniku transmitancji.
W bloku podajemy wzmocnienie, zera i bieguny opisujące układ ciągły.
11
Grupa Discontinuities – funkcje i elementy nieciągłe
Backlash – blok histerezy sygnału, w bloku podajemy szerokość histerezy.
Dead Zone – blok sygnału z martwą strefą, czyli strefą z zerową wartością sygnału
wyjściowego, w bloku podajemy początek i koniec martwej strefy.
Rate Limiter – blok sygnału ograniczenia prędkości zmian sygnału wejściowego,
w bloku podajemy szybkość narastania i opadania sygnału wejściowego.
Saturation – blok nasycenia sygnału wejściowego, w bloku podajemy dolną i górną
wartość nasycenia.
Grupa Discrete – funkcje i elementy dyskretne
Discrete State-Space – blok układu ciągłego opisanego w przestrzeni stanu, w bloku
podajemy macierze A, B, C i D, warunki początkowe i czas próbkowania. Macierze A,
B, C, i D to odpowiednie macierze równań stanu i wyjścia (wymiary tych macierzy
zależą od liczby współrzędnych stanu, sterowań i wyjść):
x[k  1]  Ax[k ]  Bu[k ]
y[k ]  Cx(k )  Du[k ]
gdzie: x  R , y  R , u  R .
n
m
c
Discrete Transfer Fcn – blok transmitancji operatorowej układu dyskretnego
(dyskretna funkcja przejścia), w bloku podajemy licznik transmitancji dyskretnej,
mianownik transmitancji dyskretnej i czas próbkowania, współczynniki licznika
i
mianownika transmitancji dyskretnej podaje się według malejących potęg operatora z.
Discrete Zero-Pole – blok układu ciągłego opisanego w postaci transmitancji (w formie
zer Z, biegunów P i wzmocnienia K):
G( z )  K 
z  z1   z  z2   ...  z  zm 
z  p1   z  p2   ...  z  pn 
W bloku podajemy wzmocnienie, zera i bieguny opisujące układ i czas próbkowania.
Discrete-Time Integrator – blok całkowania sygnału dyskretnego w czasie, w bloku:
a. wybieramy metodę całkowania (Forward Euler: metoda prostokątów
z wykorzystaniem różnic wprzód – transmitancja dyskretna elementu
Ts
całkującego:
; Backward Euler: metoda prostokątów z wykorzystaniem
z 1
Ts  z
różnic wstecz – transmitancja dyskretna elementu całkującego:
;
z 1
Ts z 1

Trapezoidal: metoda trapezów:
),
2 z 1
b. wybieramy źródło warunków początkowych (wewnętrzne, zewnętrzne),
c. podajemy warunki początkowe,
d. podajemy okres próbkowania.
12
Możemy również:
a. podać granice całkowania,
b. wygenerować sygnał (saturation), który pokazuje kiedy zmienna stanu jest
ograniczona (wartość 1 – osiągnięto górną granicę całkowania; wartość 0 – nie
ma ograniczeń całkowania; wartość –1 – osiągnięto dolną granicę całkowania),
c. zresetować blok sygnałem zewnętrznym (none – nie resetować; rising – jeżeli
sygnał wyzwalający (reset) ma zborze narastające; falling – jeżeli sygnał
wyzwalający ma zborze opadające; either – jeżeli sygnał wyzwalający ma zborze
narastające lub opadające; level – w zależności od ustawionego poziomu
sygnału wyzwalającego),
d. wyprowadzić zmienną stanu z bloku.
Grupa Math Operations – operacje matematyczne
Abs – blok wartości bezwzględnej z sygnału wejściowego.
Add – blok dodawania/odejmowania sygnałów wejściowych, w bloku podajemy liczbę
sygnałów, które będą dodane/odjęte.
Divide – blok dzielenia/mnożenia sygnałów wejściowych, w bloku podajemy liczbę
sygnałów, które będą dzielone/mnożone.
Gain – blok wzmocnienia sygnału wejściowego, w bloku podajemy wartość
wzmocnienia.
Math Function – blok operacji matematycznych na sygnale wejściowym, np.
potęgowanie, pierwiastkowanie, logarytmowanie itp., w bloku wybieramy właściwą
funkcję.
Product – blok mnożenia/dzielenia sygnałów wejściowych, w bloku podajemy liczbę
sygnałów, które będą mnożone/dzielone.
Rounding – blok zaokrąglenia wartości liczby do liczby całkowitej, w bloku wybieramy
sposób zaokrąglenia: floor – zaokrąglenie w dół, ceil – zaokrąglenie w górę, round –
zaokrąglenie do najbliższej liczby całkowitej, fix – zaokrąglenie w kierunki liczby zero.
Sign – blok funkcji signum (funkcja przyjmująca wartość -1 dla ujemnych wartości
wejściowych, wartość +1 dla dodatnich wartości wejściowych i wartość 0 dla zerowej
wartości wejściowej).
Sin Wave Function – blok funkcji sinus, w bloku podajemy między innymi amplitudę,
fazę i częstotliwość sygnału.
Subtract – blok odejmowania/dodawania sygnałów wejściowych, w bloku podajemy
liczbę sygnałów, które będą odjęte/dodane.
Sum – blok dodawania/odejmowania sygnałów wejściowych, w bloku podajemy liczbę
sygnałów, które będą dodane/odjęte.
13
Trigonometric Function – blok funkcji trygonometrycznych, cyklometrycznych,
hiperbolicznych i odwrotnych do nich, w bloku wybieramy właściwą funkcję.
Grupa Signal Routing – operacje na sygnałach
Demux – blok rozdzielania jednego sygnału wejściowego na wiele sygnałów
wyjściowych, w bloku podajemy liczbę sygnałów wyjściowych.
Manual Switch – blok przełączania pomiędzy dwoma sygnałami wejściowymi.
Multiport Switch – blok przełączania pomiędzy sygnałami wejściowymi, w bloku
podajemy liczbę sygnałów wejściowych, które będą podlegać przełączaniu.
Mux – blok łączenia wielu sygnałów wejściowych w jeden sygnał wyjściowy, w bloku
podajemy liczbę sygnałów wejściowych.
Selector – blok wyboru elementów sygnału wyjściowego z sygnału wejściowego w
postaci wektora lub macierzy.
Switch – blok przełączania pomiędzy dwoma sygnałami wejściowymi.
Grupa Sinks – funkcje i elementy do obrazowania wyników symulacji
Display – blok wyświetlacza cyfrowego.
Out1 – blok portu sygnału wyjściowego dla podsystemu modelu układu, w bloku
podajemy numer portu.
Scope – blok „oscyloskopu”, blok rysowania wyników symulacji w dziedzinie czasu.
Stop Simulation – blok zatrzymania symulacji, gdy wartość sygnału wejściowego jest
niezerowa.
Terminator – blok zakończenia sygnału wyjściowego.
To File – blok zapisania wyników symulacji w pliku, w bloku podajemy między innymi
nazwę pliku i nazwę zmiennej.
To Workspace – blok zapisania wyników symulacji w przestrzeni roboczej środowiska
MATLAB, w bloku podajemy nazwę zmiennej i ograniczenie liczby danych, które mają
być zapisane. Dodatkowo w bloku wybieramy format zapisu danych: Struktura z
czasem, Struktura lub Tablica.
XY Graph – blok rysowania wyników symulacji w postaci zależności między dwoma
sygnałami X i Y, w bloku podajemy wartość minimalną i maksymalną sygnałów: X i Y.
Grupa Sources – źródła sygnałów
Clock – blok generowania i wyprowadzania czasu symulacji.
14
Constant – blok generowania stałej wartości sygnału, w bloku podajemy wartość stałej.
From File – blok generowania danych wejściowych z pliku, w bloku podajemy nazwę
pliku.
From Workspace – blok generowania danych wejściowych z przestrzeni roboczej
środowiska MATLAB, w bloku podajemy nazwę zmiennej.
In1 – blok portu sygnału wejściowego dla podsystemu modelu układu, w bloku
podajemy numer portu.
Pulse Generator – blok generowania sygnału prostokątnego, w bloku podajemy
amplitudę i fazę sygnału oraz jego szerokość i opóźnienie fazowe.
Ramp – blok generowania sygnału liniowo narastającego w czasie, w bloku podajemy
współczynnik nachylenia, czas początku sygnału i wartość początkową sygnału.
Random Number – blok generowania sygnału losowego, w bloku podajemy między
innymi wartość średnią i wariancję sygnału.
Repeating Sequence – blok generowania sygnału trójkątnego, w bloku podajemy dwa
wektory związane z czasem trwania sygnału i wartością sygnału w danej chwili.
Signal Generator – blok generowania sygnału sinusoidalnego, prostokątnego,
piłokształtnego lub losowego, bloku wybieramy rodzaj sygnału i dodatkowo podajemy
amplitudę i częstotliwość sygnału.
Sine Wave – blok generowania sygnału sinusoidalnego, w bloku podajemy między
innymi amplitudę, fazę i częstotliwość sygnału.
Step – blok generowania sygnału skokowego, w bloku podajemy czas początku
sygnału oraz wartość początkową i końcową sygnału.
Grupa User-Defined Functions – funkcje do samodzielnego tworzenia
Fcn – blok definiowania własnej funkcji, w bloku budujemy własną funkcję.
MATLAB Fcn – blok realizujący dowolną funkcję zdefiniowaną w środowisku MATLAB,
w bloku wpisujemy właściwą funkcję.
S-Function – blok pozwalający na wykorzystanie modelu zapisanego w m-pliku jako sfunkcja, w bloku podajemy nazwę i parametry s-funkcji.
15
4. Przykłady
W ostatniej części opracowania przedstawiono przykłady wykorzystania nakładki
Simulink.
Przykład 4
Obiekt opisany jest równaniem różniczkowym postaci:
d 2 y t 
d y t 
3
 5 y  t   2u  t 
2
dt
dt
z warunkami początkowymi: y 0   1 i y  0  
d y t 
dt
(13)
0.
t 0
Zbuduj schemat blokowy umożliwiający rozwiązanie
odpowiedź tego obiektu wiedząc, że u  t   1  t  .
tego
równania.
Wykreśl
Przykładowe rozwiązanie:
Przekształcamy równanie (13) do następującej postaci:
d 2 y t 
d y t 
 2u  t   3
 5 y t 
2
dt
dt
(14)
Mamy zatem:
u(t)
2
Step
d2y/dt 2
dy/dt
1
s
Gain
Integrator
1
s
y(t)
Integrator 1
Scope
Add
y
-3
To Workspace
Gain 1
-5
Gain 2
Rys. 13. Schemat w Simulinku do Przykładu 4
UWAGA:
W bloku „Integrator 1” należy ustawić warunek początkowy równy 1 ( y 0   1 ).
16
Wynik działania:
Rys. 14a. Wynik do Przykładu 4
UWAGA:
Jak wspomniano wcześniej istnieje możliwość przesłania wyników symulacji z
Simulinka to środowiska MATLAB. Pomocnym blokiem jest „To Workspace”, dzięki
któremu wyniki symulacji są wysyłane do pamięci roboczej środowiska MATLAB.
Wybierając w bloku „To Workspace” opcję „Structure With Time” i podpisując naszą
zmienną np. jako „y” po wysłaniu wyników możliwe jest narysowanie wykresu
bezpośrednio z wiersza poleceń (Command Window) środowiska MATLAB
wykorzystując polecenie „plot” w postaci:
plot(y.time,y.signals.values(:,1))
Po wykonaniu tego poleceniu uzyskamy (dodatkowo umieszczono siatkę i podpisano
osie):
1
0.9
0.8
y(t)
0.7
0.6
0.5
0.4
0
1
2
3
Czas
4
Rys. 14b. Wynik do Przykładu 4
17
5
6
W dalszej części opracowania ze względu na przejrzystość wyników będzie
wykorzystywana opisana wcześniej procedura.
Przykład 5
Działanie nieobciążonego prądowo czwórnika RC (Rys. 15) opisane jest równaniem:
R C 
duwy (t )
dt
 uwy (t )  uwe (t )
(15)
uR(t)
iR(t)
R
iobc(t)
iC(t)
C
uwe(t)
uC(t)
uwy(t)
Rys. 15. Schemat do Przykładu 5
Zbuduj schemat blokowy wiążący napięcie wyjściowe u wy (t ) z napięciem wejściowym
u we (t ) (R = 100 Ω, C = 30 F). Wykreśl odpowiedź tego obiektu na następujące
wymuszenia:
a). impuls Diraca,
b). skok jednostkowy.
W obu przypadkach przedstaw wyniki dla zerowych i niezerowych warunków
początkowych. Przyjmij czas symulacji równy 0,02 j.cz.
Po zbudowaniu modelu przekształć układ tak aby możliwe było wpisywanie parametrów
R i C, zgrupuj wszystkie elementy w jeden obiekt (wykorzystaj opcję „Create
Subsystem”), a następnie dokonaj jego maskowania umożliwiając dostęp do zmiany
parametrów R i C (wykorzystaj opcję „Mask Subsystem”).
UWAGA:
Grupowanie obiektów służy łączeniu obiektów elementarnych w jeden obiekt złożony.
UWAGA:
Maskowanie obiektów służy uzyskaniu dostępu do wewnętrznych parametrów bloku
poprzez okno dialogowe.
Przykładowe rozwiązanie:
Przekształcamy równanie (15) do następującej postaci:
duwy (t )
dt

1
1
 uwe (t ) 
 uwy (t )
R C
R C
18
(16)
Mamy zatem (wejście: impuls Diraca):
uwe (t)
du /dt
Step
1/(100 *0.00003 )
Derivative
duwy (t)/dt
uwy (t)
1
s
1/RC
Integrator
Impuls Diraca
Scope
Add
napiecie
-1/(100 *0.00003 )
-1/RC
To Workspace
Rys. 16a. Schemat w Simulinku do Przykładu 5 – wejście: impuls Diraca
Dla wejścia w postaci skoku jednostkowego otrzymujemy:
uwe (t)
duwy (t)/dt
1/(100 *0.00003 )
Step
uwy (t)
1
s
1/RC
Integrator
Scope
Add
napiecie
-1/(100 *0.00003 )
-1/RC
To Workspace
Rys. 16b. Schemat w Simulinku do Przykładu 5 – wejście: skok jednostkowy
Wynik działania:
Wejście: impuls Diraca:
a).
b).
4.5
2.5
4
2
3.5
3
uwy(t)
uwy(t)
1.5
2.5
2
1
1.5
1
0.5
0.5
0
0
0.002 0.004 0.006 0.008
0.01
Czas
0.012 0.014 0.016 0.018
0
0.02
0
0.002 0.004 0.006 0.008
0.01
Czas
0.012 0.014 0.016 0.018
Rys. 17a. Wynik do Przykładu 5: a). zerowe warunki początkowe, b). niezerowe
warunki początkowe
19
0.02
Wejście: skok jednostkowy:
b).
1
2
0.9
1.9
0.8
1.8
0.7
1.7
0.6
1.6
uwy(t)
uwy(t)
a).
0.5
1.5
0.4
1.4
0.3
1.3
0.2
1.2
0.1
1.1
0
0
0.002 0.004 0.006 0.008
0.01
Czas
0.012 0.014 0.016 0.018
1
0.02
0
0.002 0.004 0.006 0.008
0.01
Czas
0.012 0.014 0.016 0.018
0.02
Rys. 17b. Wynik do Przykładu 5: a). zerowe warunki początkowe, b). niezerowe
warunki początkowe
W celu stworzenia możliwości wpisywania parametrów R i C układy należy
następująco przekształcić:
Rys. 18a. Przekształcony schemat w Simulinku do Przykładu 5 – wejście: impuls Diraca
Rys. 18b. Przekształcony schemat w Simulinku do Przykładu 5 – wejście: skok
jednostkowy
Następnie zaznaczamy wszystkie obiekty (oprócz: „Step”,”Derivative”, „Scope” i „To
Workspace”) i prawym przyciskiem myszy wybieramy opcję „Create Subsystem”. Tym
samym uzyskamy:
20
Rys. 19a. Zgrupowany schemat w Simulinku do Przykładu 5 – wejście: impuls Diraca
Rys. 19b. Zgrupowany schemat w Simulinku do Przykładu 5 – wejście: skok
jednostkowy
Porządkując schemat i podpisując zmienne i zgrupowany obiekt ostatecznie
otrzymamy:
Rys. 20a. Zgrupowany i podpisany schemat w Simulinku do Przykładu 5 – wejście:
impuls Diraca
Rys. 20a. Zgrupowany i podpisany schemat w Simulinku do Przykładu 5 – wejście: skok
jednostkowy
W celu maskowania czwórnika RC, zaznaczamy obiekt i prawym przyciskiem myszy
wybieramy opcję ”Mask Subsystem”, uzyskamy:
21
Rys. 21 Opcja maskowania obiektu w Simulinku do Przykładu 5
W pozycji „Parameters” wpisujemy nazwy zmiennych: R i C i je opisujemy, mamy:
Rys. 22. Maskowanie obiektu w Simulinku do Przykładu 5
Analogicznie postępujemy ze schematem z wejściem w postaci impulsu Diraca. W celu
uzyskania możliwości zmiany parametrów czwórnika RC, zaznaczamy obiekt i prawym
przyciskiem myszy wybieramy opcję ”Mask Parameters”, uzyskamy okno:
Rys. 23. Zmiana parametrów obiektu w Simulinku do Przykładu 5
22
UWAGA:
W celu wykreślenia na jednym wykresie dwóch sygnałów należy w bloku „To
Workspace” wybrać opcję „Structure With Time” i podpisując naszą zmienną np. jako
„xy” wysłać wyniki do pamięci środowiska MATLAB. Następnie możliwe jest
narysowanie wykresu bezpośrednio z wiersza poleceń środowiska MATLAB
wykorzystując polecenie „plot” w postaci:
plot(xy.time,xy.signals.values(:,[1,2]))
Bibliografia
Brzózka J. Ćwiczenia z automatyki w Matlabie i Simulinku. Wydawnictwo MIKOM,
1997.
Brzózka J., Dorobczyński L. Matlab – środowisko obliczeń naukowo – technicznych.
Wydawnictwo MIKOM, 2005.
Mrozek B., Mrozek Z. Matlab i Simulink. Poradnik użytkownika. Wydanie II.
Wydawnictwo HELION, 2004.
Osowski S. Modelowanie układów dynamicznych z zastosowaniem języka Simulink.
Oficyna Wydawnicza Politechniki Warszawskiej, 1999.
The Mathworks. Simulink – Dynamic System Simulation for MATLAB. Natick, 2000.
23
Download