Portrety fazowe
Transkrypt
Portrety fazowe
P ra k t y c z n e wp ro wa d ze n i e d o o p i su , a n a l i zy i sy m u l a c j i d y n a m i k i o b i e k t ó w
6.
Portrety fazowe
6.1. Wprowadzenie – warunki generowania portretów
I.4
I.4.1
I.4.2
Portret fazowy () w programie symulacyjnym powstaje przez wielokrotne uruchomienie
obliczeń reakcji obiektu dla stałego wymuszenia (zwykle równego zero) i różnych warunków
początkowych oraz przedstawienie wyników w układzie współrzędnych [x, x& ]. To oznacza,
że badany model może być co najwyżej drugiego rzędu i musi umożliwić zainicjowanie
różnych warunków początkowych1. Model może być nieliniowy i mogą to być nawet funkcje
typu nasycenie, strefa martwa, przekaźnik, itp.2 – portrety fazowe wspomagają szczególnie
badania stabilności takich właśnie przypadków. Własności modeli liniowych można badać w
prostszy sposób (nawet analitycznie) a na podstawie położenia biegunów łatwo przewidzieć
typ portretu ( węzeł/ognisto stabilne/niestabilne, centrum, siodło). Portrety modeli
nieliniowych () są bardziej złożone, na przykład mogą zawierać więcej niż jeden punkt
równowagi a stabilność trajektorii może zależeć od warunków początkowych. Nieznajomość
obszarów stabilności utrudnia generowanie nieznanego portretu, wiadomo jednak, że model
różniczkowalny ma w odpowiednio małym otoczeniu każdego punktu równowagi portret
podobny do układów liniowych.
6.2. Przykład – automatyzacja badań
Realizacja programu badań za pomocą skryptów zapewnia nie tylko dokumentację
przyjętych założeń (np. wartości parametrów). Zarówno Matlab jak i Scilab oferują także
możliwość uruchamiania symulacji w trybie wsadowym (Tab. II-5), co w połączeniu z
elementami programowania (pętle, instrukcje warunkowe) pozwala zautomatyzować
powtarzające się operacje, na przykład uruchamianie symulacji dla różnych zestawów
parametrów i zbiorczą prezentację wyników.
Tab. II-5. Funkcje do uruchamiania symulacji w trybie wsadowym
Matlab/Simulink
Scilab/Xcos
Uruchomienie symulacji
sim
xcos_simulate
Funkcje skojarzone
simget
loadXcosLibs
simset
importXcosDiagram
Programy symulacyjne wykazują duże różnice w sposobie realizacji tego zadania ze względu
na zestaw funkcji i ich działanie. Fragmenty skryptów w Tab. II-6 zawierają przykład pętli,
która uruchamia symulacje dla schematu równania różniczkowego zapisanego w pliku
„model”. Zakłada się, że zmienna a jest parametrem modelu, natomiast x1 i x2 są zmiennymi
w blokach zbierania danych umieszczonych na schemacie. Efektem działania są wykresy
przebiegów czasowych zmiennej x1 i x2 na oddzielnych rysunkach i w różnych kolorach.
Tab. II-6. Przykład skryptu z uruchamianiem symulacji
Matlab
Scilab
loadXcosLibs();
importXcosDiagram('model.xcos'); //tworzy scs_m
f1=figure; hold on; grid on;
n1=figure(); set(gca(), 'auto_clear', 'off'); set(gca(), 'grid', [1,1]);
n2=figure(); set(gca(), 'auto_clear', 'off'); set(gca(), 'grid', [1,1]);
f2=figure; hold on; grid on;
kolor=['r', 'g', 'b'];
kolor='rgb';
tab_a=[0, 1, 5];
tab_a=[0, 1, 5];
for i=1:3
for i=1:3
a=tab_a(i);
a=tab_a(i);
scicos_simulate(scs_m);
[t]=sim('model');
figure(n1); plot(x1.time, x1.values, kolor(i));
figure(f1); plot(t, x1,kolor(i));
figure(n2); plot(x2.time, x2.values, kolor(i));
figure(f2); plot(t, x2,kolor(i));
end
end
W skrypcie Matlaba wykorzystano fakt, że funkcja uruchamiająca symulację (sim) ma
możliwość zwracania wartości, między innymi wektora czasu, który został podstawiony pod
zmienną t i wykorzystany w funkcji plot. W tej sytuacji zmienne x1 i x2 rejestrowane przez
bloki zbierania danych (To workspace) mogą zamiast struktury mieć postać prostego wektora
1
2
tego warunku nie spełniają modele w postaci transmitancji
nieliniowe nieróżniczkowalne
- 62 -
P ra k t y c zn e wp ro wa d z e n i e d o o p i su , a n a l i zy i s y m u l a c j i d y n a m i k i o b i e k t ó w
(opcja Matrix). Scilab nie udostępnia takich opcji – dane w bloku zbierania danych (TOWS_c)
zawsze mają postać struktury.
Matlab i Scilab różnią się też znacznie w sposobie zmiany parametrów obliczeniowych,
takich jak czas symulacji, wybór i parametry algorytmu całkowania. Są one przechowywane
w pliku ze schematem i mogą być zadawane podczas edycji schematu. W trybie wsadowym
można jednak uruchomić symulację z innymi parametrami niż te zapamiętane ze schematem.
Często dotyczy to czasu symulacji – w Matlabie podaje się go jako parametr funkcji sim, a w
Scilabie zmienia się element w strukturze scs_m, tworzącej się automatycznie po wczytaniu
schematu za pomocą funkcji importXcosDiagram.
6.3. Zadania – portrety układów liniowych
Celem badań jest wygenerowanie charakterystycznych typów portretów fazowych układu
liniowego drugiego rzędu (Rys. I-11).
1º Wygeneruj wszystkie typy portretów fazowych równania oscylacyjnego oraz portret typu
siodło. Wykorzystaj model przygotowany w punkcie 5.3. Dobierz wartości parametrów
równania i warunki początkowe, dla których można uzyskać typowe portrety.
Uwagi do wykonania:
- wykorzystaj możliwość wsadowego uruchamiania symulacji i napisz skrypt
realizujący zadanie,
- ustal stałe wymuszenie i wybierz warunki początkowe w różnych punktach
płaszczyzny stanu (nie tylko na osiach),
- w przypadku układów niestabilnych zwróć uwagę na odpowiedni dobór warunków
początkowych i czasu symulacji (przy szybkim oddalaniu się od punktu równowagi
może nastąpić przekroczenie zakresu wartości zmiennych),
- zaznacz kierunki trajektorii i punkt (punkty?) równowagi, określ stabilność układu.
2º Określ związki pomiędzy wygenerowanymi portretami fazowymi a typami odpowiedzi
skokowych otrzymanymi w punkcie 5.3. Wskaż odpowiadające sobie punkty wartości
ekstremalnych na wykresach czasowych i portretach.
6.4. Portrety układów nieliniowych
Jako przykład analizy układów nieliniowych niech posłużą dwa równania, pozornie
niewiele różniące się od badanego wcześniej równania liniowego drugiego rzędu:
(II-14)
a&x& + bx& + cx 2 + dx = F
oraz
(II-15)
a&x& + bx& + cx 3 + dx = F
W przypadku odpowiednio dobranych wartości parametrów powyższe równania mogłyby
opisywać na przykład model dynamiki układu z nieliniową sprężyną ().
Celem badań jest wygenrowanie portretów fazowych równań (II-14) i (II-15) oraz
określenie stabilności tych układów. Równania są nieliniowe i trudno jest przewidzieć wygląd
portretów (), więc przed rozpoczęciem symulacji warto zwrócić uwagę przynajmniej na
rząd modelu, na postać równania statycznego i ilość punktów równowagi.
1º Wykonaj portret fazowy badanego równania dla następujących przypadków:
a) a=1, b= 1, c= 0.01, d= -10, F0 = 0,
b) a=1, b= 1, c= -0.01, d= 10, F0 = 0.
Zaznacz kierunki trajektorii. Wskaż punkt/punkty równowagi. Określ stbilność układu.
2º Określ wpływ wskazanych parametrów na kształt portretu badanego równania:
- jak się zmieni portret dla F0 > 0?
- jak zapewnić żeby układ miał punkt równowagi na przykład w punkcie x0=5?
3º Wykonaj linearyzację badanego równania i zbadaj stabilność układu analitycznie ().
- 63 -
I.9.2
I.10.3.2
I.4.2