niczkowe..
Transkrypt
niczkowe..
Numeryczne metody obliczeń technicznych Wykład X Rozwiązywanie zagadnień początkowych dla równań różniczkowych zwyczajnych • Postawienie zadania i podstawowe idee jego rozwiązania • Metody samostartujące (Eulera, Rungego-Kutty) • Metody niesamostartujące (Adamsa-Bashforta-Moultona, Geara) • Predykcja-korekcja, kontrola dokładności, adaptacja • Symulacja systemów dynamicznych w Matlabie i Simulinku Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Równania różniczkowe zwyczajne w technice Równania różniczkowe zwyczajne są jednym ze sposobów opisu zmienności systemów. W naturalny sposób powstają z zastosowania praw fizyki do modelowania zjawisk dynamicznych zachodzących w systemach. W takim ujęciu rozwiązanie polega na symulacji czasowej odpowiedzi systemu dynamicznego. Przykłady: • prawa Kirchoffa dla układu zmiennoprądowego RLC, • opis dynamiki termicznej czujnika temperatury z obudową, • Opis elektromechaniczny silnika prądu stałego, • dynamika systemów nietechnicznych – modele zachowań drapieżcy-ofiary, reakcja psychologiczna na pobudzenie – równanie różniczkowe z nieliniowościami • układ Sample&Hold, klucz analogowy – równanie różniczkowe z parametrami zmiennymi z czasem. Równania różniczkowe wyższego stopnia możemy sprowadzić do problemu wielowymiarowego pierwszego stopnia metodą podstawienia zmiennych uzyskując układ: dx ( t ) = f ( x (t ) , u (t )) x ( t0 ) = x 0 y (t ) = g ( x (t ) , u (t )) dt Przypadek liniowy wielu wejść i wielu wyjść (MIMO) prowadzi do powszechnie znanego opisu w postaci macierzowych równań stanu. Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Podstawowe idee rozwiązań problemu Informacja dostępna w każdym kroku: • bieżąca wartość stanu (bieżący punkt), • wartość pochodnej stanu w bieżącym punkcie, Ewentualnie do wykorzystania w metodach wielokrokowych: • poprzednie wartości stanu, • poprzednie wartości pochodnej stanu Na tej podstawie należy wyznaczyć wartość stanu w następnym punkcie. Przykład Inercyjne wytracanie energii początkowej (elektrycznej, cieplnej, mechanicznej) Równanie różniczkowe i warunek początkowy opisujące taki proces ma postać: dE 1 = − E E ( t0 ) = E0 dt T Tempo utraty energii jest więc proporcjonalne do poziomu tej energii, co determinuje trajektorie energii z dowolnego warunku początkowego. Na rysunku przykład pola czasenergia z tendencją zmian (strzałki) i trajektorią dla E0=0.4. 0.5 0.4 0.3 0.2 0.1 0 -0.1 T=0.3; t=0:0.05:1; E=-0.5:0.05:.5; plot(t,0.4*exp(-t/T),'r'), hold on; [tt,EE]=meshgrid(t,E); sc=30*sqrt(1+1/T^2*EE.^2); quiver(tt,EE,ones(size(tt))./sc,-1/T*EE./sc,0); -0.2 -0.3 -0.4 -0.5 Katedra Metrologii AGH 0 0.2 0.4 0.6 0.8 1 Kraków 2005 Numeryczne metody obliczeń technicznych Najprostszy algorytm Eulera (o znaczeniu bardziej dydaktycznym niż praktycznym) wykorzystuje tylko informację dostępną w bieżącym punkcie (np. w punkcie startowym danym przez warunek początkowy jak na rysunkach). x Wynika stąd algorytm Eulera (ekstrapolacyjny, predykcyjny): xk +1 = xk + ∆t ⋅ f ( xk , tk ) Jego odmianą jest algorytm Eulera w postaci uwikłanej (interpolacyjny, korekcyjny): xk +1 = xk + ∆t ⋅ f ( xk +1 , tk +1 ) Wzory te można też wyprowadzić z rozwinięcia x ( t ) wokół punktu t = tk w szereg Taylora (co można dalej uogólnić dla wyższego rzędu). f(x0,t0) ??? x0 x x0 t0 f(x0,t0) t0 t0+∆t t ??? t0+∆t t Wadą algorytmu Eulera jest kumulacja błędów w kolejnych krokach i konieczność stosowania małych kroków symulacji ∆t z powodu zgrubnego oszacowania kierunku z pierwszej pochodnej. Dla naszego prostego przykładu z inercyjną utratą energii możemy zapisać wzór iteracyjny: T − ∆t T interpolacja: Ek +1 = Ek ekstrapolacja: Ek +1 = Ek T + ∆t T Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Grupa algorytmów Rungego-Kutty wykorzystuje dodatkową informację w pośrednich punktach próbnych. Przybliżenie rozwiązania jest uśrednieniem wartości wynikających ze wszystkich punktów próbnych. Zależności zostały opracowane na zasadzie najlepszego przybliżenia schematu wynikającego z rozwinięcia Taylora odpowiedniego rzędu (ale bez użycia pochodnych) – patrz np. Mathews „Numerical Methods …”, Buchanan “Numerical Methods and Analysis”. Ilość punktów próbnych decyduje o rzędzie metody. Przykładowo metoda RK rzędu czwartego ma 1 postać: xk +1 = xk + ( d1 + 2d 2 + 2d3 + d 4 ) x 6 gdzie: d1 = ∆t ⋅ f ( xk , tk ) x d 2 = ∆t ⋅ f ( xk + d1 2, tk + ∆t 2 ) d3 = ∆t ⋅ f ( xk + d 2 2, tk + ∆t 2 ) d 4 = ∆t ⋅ f ( xk + d3 , tk + ∆t ) k tk tk+∆t t Algorytmy z tej grupy są najczęściej wykorzystywane w symulacjach. Tak jak metoda Eulera są to metody samostartujące ponieważ nie wykorzystują informacji z historii trajektorii stanu, w przeciwieństwie do dalej opisanych. Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Dopuszczając wykorzystanie informacji dostępnej w poprzednio wyznaczonych punktach trajektorii, tzn. informacji o stanie i informacji o pochodnej, możemy zdefiniować całą rodzinę algorytmów o ogólnej postaci: x I J i =1 j =0 xk +1 = ∑ ai xk +1−i + ∆t ∑ b j f ( xk +1− j , tk +1− j ) xk-3 ??? tk-3 tk-2 tk-1 tk t Dobór współczynników wynika z aproksymacji wielomianowej trajektorii stanu. Tak więc metoda będzie dawała dokładne wyniki gdy trajektorię dokładnie opisuje wielomian zmiennej czasowej. Będą to algorytmy niesamostartujące, ponieważ potrzebują do działania historii trajektorii dłuższej niż ostatnio wyznaczony punkt. Wybierając rodzaj wykorzystywanej informacji (stan czy pochodne) i używane punkty (z bieżącym lub bez) uzyskujemy algorytmy predykcyjne (ekstrapolacyjne) Adamsa-Bashfortha, korekcyjne (interpolacyjne) Adamsa-Moultona, predykcyjny Geara. Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Pierwsza grupa, tj. metody Adamsa-Bashfortha mają charakter ekstrapolacyjny, tzn. współczynnik b0=0 (nie dają równania uwikłanego). Przykładowo, metoda Adamsa-Bashfortha rzędu trzeciego ma wzór: ∆t xk +1 = xk + ( 23 f k − 16 f k −1 + 5 f k − 2 ) 12 Metody Adamsa-Moultona to metody interpolacyjne, wykorzystujące informację o pochodnej w szacowanym punkcie stanu, wymagają więc rozwiązania równania uwikłanego. Przykładowo, metoda Adamsa-Moultona rzędu trzeciego ma wzór: ∆t xk +1 = xk + ( 5 f k +1 + 8 f k − f k −1 ) 12 Do wystartowania tych metod kilka pierwszych wartości stanu wyznacza się metodą samostartującą (np. Euler albo RK). Szczególnie efektywna i stabilna dla rozwiązywania układów sztywnych (źle uwarunkowane równania stanu) okazała się metoda Geara. Jest to algorytm uwikłany, który korzysta tylko z poprzednich wartości stanu i z wartości pochodnej stanu w szacowanym punkcie. Przykładowo metoda Geara rzędu czwartego ma wzór: 1 xk +1 = ( 48 xk + 36 xk −1 + 16 xk − 2 + 3 xk −3 + 12∆t ⋅ f k +1 ) 25 Oczywiście jest to również metoda niesamostartująca. Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Algorytmy predykcyjno-korekcyjne Algorytmy korekcyjne (interpolacyjne, z zależnością uwikłaną) dają się czasami dla konkretnych symulowanych systemów przekształcić do postaci jawnej, jak w przykładzie z rozpraszaniem energii. Nie jest to jednak metoda ogólna. Numeryczne rozwiązanie problemu uwikłanego można uzyskać metodami poszukiwania zera funkcji nieliniowej np. iteracją Newtona. Inne rozwiązanie to iteracja prosta wg zależności xk( i++11) = F ( xk( i+)1 , tk +1 ) . Iteracja jednak kosztuje dużo czasu. Efektywne czasowo jest stosowanie par algorytmów predykcyjno-korekcyjnych. Algorytm predykcyjny oszacowuje następny punkt trajektorii, a algorytm korekcyjny dokonuje poprawki z wykorzystaniem cennej (bo najnowszej) informacji o pochodnej w oszacowanym punkcie. Często stosowana para to Adams-Bashforth + Adams-Moulton czwartego rzędu. Kontrola dokładności i algorytmy adaptacyjne Wszystkie wymienione algorytmy mają określone własności redukcji błędu ze zmianą kroku symulacji (co nie było podawane a jest w każdej książce nt. obliczeń numerycznych). Korzystając z tej informacji można poprzez porównanie wyników metody dla kroku bieżącego i dwukrotnie mniejszego oszacować bieżącą dokładność (dokładnie tak samo jak w algorytmach całkowania). Porównanie może równie dobrze dotyczyć wyników metod przy zmienianym rzędzie (jak w algorytmie adaptacyjnym Runge-Kutta-Fehlberg RK45). Celem kontroli dokładności jest adaptacyjny, w zależności od lokalnej dynamiki trajektorii, dobór długość kroku symulacji. Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Symulacja systemów dynamicznych w Matlabie i Simulinku W Matlabie symulacje można prowadzić przy opisie transmitancyjnym lub w postaci liniowych równań stanu funkcjami wyznaczającymi odpowiedź na standardowe wymuszenie skokowe (step) i impulsowe (impulse). Obydwie opierają swoje działanie na transformacji modelu do postaci dyskretnej i iteracyjne wyznaczanie odpowiedzi układu dyskretnego. Dobór kroku czasowego i zakresu czasu symulacji jest dokonywany przez analizę części rzeczywistych wartości własnych macierzy dynamiki A. Podobnie działa funkcja wyznaczania odpowiedzi na zadane wejście lsim. W przypadku opisu systemu nieliniowego można wykorzystać funkcje Matlaba odeset, ode23, ode45 z generowaniem wejścia wewnątrz funkcji. W przypadku układów złożonych, które trudno opisać jedną transmitancją/równaniem stanu trzeba skorzystać ze środowiska dedykowanego – Simulinka. Simulink oferuje do symulacji metody stało i zmiennokrokowe: • Eulera • Rungego-Kutty • Adamsa-Bashfortha-Moultona • NDF (podobna do metody Geara, dla układów sztywnych) Symulację można uruchamiać w środowisku Simulinka lub „offline” z Matlaba z użyciem funkcji simset (określenie metody, dokładności, itp.) i funkcji sim (symulacja). Modele symulacyjne można budować z modeli bibliotecznych (bloczków) lub programowo w postaci s-funkcji. Katedra Metrologii AGH Kraków 2005 Numeryczne metody obliczeń technicznych Przykład budowy s-funkcji – model układu Sample&Hold Wejściowy sygnał Sample/Hold steruje procesem próbkowania i podtrzymania przez zmianę rezystancji klucza Rk : Rkz – rezystancja klucza zamkniętego Rko – rezystancja klucza otwartego Równanie różniczkowe opisujące sygnał wyjściowy ma postać: 1 ′ = ( −αU wy + RmU we ) U wy β Współczynniki równania różniczkowego są zależne od sygnału sterującego, więc jest to model o parametrach zmiennych z czasem. Jeśli Sample/Hold = 0 (próbkowanie) to α = Rs + Rkz + Rm β = ( Rs + Rkz ) RmCm w przeciwnym razie (podtrzymanie) Katedra Metrologii AGH α = Rs + Rko + Rm β = ( Rs + Rko ) RmCm Kraków 2005 Numeryczne metody obliczeń technicznych Implementacja modelu w postaci s-funkcji (stary format) function [sys, x0] = sandhold(t,x,u,flag,Rko,Rkz,Cm,Rm,Rs) if abs(flag) == 1 % Zwraca wartosc pochodnych ciaglych zmiennych stanu SH = u(2); U = u(1); if SH == 0 a=Rs+Rkz+Rm; b=(Rs+Rkz)*Rm*Cm; else a=Rs+Rko+Rm; b=(Rs+Rko)*Rm*Cm; end sys = (Rm*U-a*x)/b; end elseif flag == 3 % Zwraca wartosc sygnalu wyjsciowego sys = x; elseif flag == 0 % Zwraca status obiektu: sys = [1 1 1 0 0 0]; x0 = 0; else % Obiekt ciagly nie odpowiada na inne flagi sys = []; end Tak utworzony model zapisujemy do pliku, podpinamy do bloczka s-function z biblioteki Simulinka, ewentualnie maskujemy, żeby nadać mu łatwą do użytkowania formę i już możemy go używać jak każdy model-bloczek Simulinka, np. wstawiając go do modelu toru pomiarowego. Katedra Metrologii AGH Kraków 2005