równanie różniczkowe
Transkrypt
równanie różniczkowe
Modelowanie i obliczenia techniczne Równania różniczkowe Numeryczne rozwiązywanie równań różniczkowych zwyczajnych Przykład układu dynamicznego Układ dynamiczny R t=0 C Zachodzi potrzeba wyznaczenia: uC(t) i(t) E u R = iR duC i = C ; uC (0 ) = 0 dt E = u R + uC Wymaga to rozwiązania równania różniczkowego: duC 1 1 =− uC + E ; uC (0) = 0 dt RC RC 2 Model matematyczny w postaci równań różniczkowych Równania opisujące proces mogą mieć postać równań różniczkowych n-tego rzędu. N-ta pochodna y jest zależna od niższych pochodnych i pozostałych wielkości: (n ) (n −1) (n − 2 ) (m ) (m −1) y = f y , y ,.., u , u ,..., p, v 3 Przykłady zastosowań równań różniczkowych do opisu modeli systemów technicznych Ruch bryły sztywnej Przepływ cieczy i gazów Ruch w obecności tarcia lub tłumienia Zachowanie elektrycznych obwodów RLC Przemiany energii i przepływ ciepła Dynamika silników spalinowych i elektrycznych Ruch elementów składowych systemów złożonych, np. robotów 4 Równania różniczkowe zwyczajne Równanie różniczkowe zwyczajne to równanie, w którym występują funkcje niewiadome, pochodne tych funkcji oraz stałe. W równaniach różniczkowych zwyczajnych funkcje niewiadome zależą od jednej zmiennej niezależnej. W modelowaniu technicznym zazwyczaj zmienną niezależną jest czas. Równanie różniczkowe zwyczajne n-tego rzędu można zapisać: (n ) (n −1) (n − 2 ) y (u ) = f y (u ), y (u ),.. y′(u ), u lub prościej: (n ) (n −1) (n − 2 ) ′ y = f y , y ,.. y , u 5 Model matematyczny w postaci równania różniczkowego Równanie różniczkowe n-tego rzędu można przekształcić w układ równań pierwszego rzędu, otrzymując tzw. równanie stanu: dx = f (x(t ),u(t ), t ) dt Pojedyncze równanie stanu często jest równaniem różniczkowym zwyczajnym 6 Równanie stanu systemu liniowego Przy założeniu, że zależności f są liniowe równanie stanu można zapisać w postaci macierzowej: x& = Ax + Bu A – macierz podstawowa (fundamentalna) B – macierz wymuszeń (pobudzeń) oraz równania wyjścia: y = Cx C – macierz obserwacji 7 Równania różniczkowe zwyczajne pierwszego rzędu Równanie różniczkowe zwyczajne pierwszego rzędu można zapisać: dx(t ) = f ( x(t ), t ) dt Jego rozwiązanie wymaga ustalenia stanu początkowego: x(t = 0 ) = x0 Rozwiązaniem (tzw. rozwiązaniem zagadnienia początkowego) jest poszukiwana zależność funkcyjna: x(t ); dla x(0 ) = x0 8 Przykład rozwiązania zagadnienia początkowego równania różniczkowego Inercyjne wytracanie energii (prosty model stosowany w wielu układach): Wyznaczona trajektoria jest zależna od prędkości początkowej. 9 Numeryczne rozwiązywanie równania różniczkowego pierwszego rzędu Numeryczne rozwiązanie równania wymaga przejścia z czasu ciągłego do czasu dyskretnego. Z definicji pochodnej: dx(t0 ) x(t ) − x(t0 ) x' (t0 ) = = lim t →t 0 dt t − t0 Dla k+1 kroku obliczeń (t=tk+1): dx(t ) xk +1 − xk ≈ = f ( xk , t k ) dt t k +1 − t k 10 Numeryczne rozwiązywanie równania różniczkowego – metoda Eulera Przekształcenie powyższego równania prowadzi do tzw. metody Eulera rozwiązania równania: xk +1 = xk + (t k +1 − t k ) f ( xk , t k ) = xk + ∆t ⋅ f ( xk , t k ) Jest to iteracyjny algorytm należący do grupy algorytmów ekstrapolacyjnych. Istnieje również odmiana interpolacyjna (korekcyjna) algorytmu w postaci równania uwikłanego: xk +1 = xk + ∆t ⋅ f ( xk +1 , t k +1 ) 11 Grupa metod Rungego-Kutty Rozwinięcie funkcji x(t) w szereg Tylora prowadzi do algorytmu Rungego-Kutty, wykorzystującego dodatkową informację w pośrednich punktach próbnych. Rząd metody RK wynika ze stopnia rozwinięcia w szereg Tylora. Przykład dla algorytmu rzędu 4.: Algorytmy tej grupy cechują się niewielkim błędem estymacji kolejnej wartości funkcji. 1 xk +1 = xk + (d1 + 2d 2 + 2d 3 + d 4 ) 6 d1 = ∆t ⋅ f (xk , t k ) d ∆t d 2 = ∆t ⋅ f xk + 1 , t k + 2 2 d ∆t d 3 = ∆t ⋅ f xk + 2 , t k + 2 2 d1 = ∆t ⋅ f (xk + d 3 , t k + ∆t ) 12 Uogólnienie metod rozwiązywania równań różniczkowych zwyczajnych Przy założeniu, że dostępna jest informacja o poprzednio wyznaczonych wartościach poszukiwanej funkcji i jej pochodnej ogólny wzór na kolejną wartość można zapisać: I J i =1 j =0 xk +1 = ∑ ai xk −i +1 + ∆t ∑ b j f (xk − j +1 , t k − j +1 ) Liczba i wartości współczynników a oraz b są różne dla różnych metod. W ogólnym przypadku wzór opisuje tzw. algorytmy niesamostartujące – wymagające początkowego wyznaczenia próbek przeszłych inną metodą. Należą do nich metody: Adamsa-Bashfortha, Adamsa-Moultona i Geara. 13 Implementacje rozwiązywania równań różniczkowych MATLAB: ode23, ode45, ode113…- szczegółowe techniki rozwiązań odeset – definiowanie opcji rozwiązań odeplot, odephas2…- funkcje wizualizacji rozwiązań Scilab: ode – grupa technik rozwiązań wywoływanych zależnie od użytych parametrów wejściowych 14 Przykład równania różniczkowego opisującego system dynamiczny Swobodny wypływu cieczy ze zbiornika Wypływ w uproszczeniu opisuje następujące równanie różniczkowe: 2 dh d 2 gh = ⋅ dt D 1+ ξ gdzie: D – średnica zbiornika d – średnica otworu h – wysokość słupa cieczy ξ – współczynnik strat hydraulicznych 15 Przykład rozwiązania numerycznego równania różniczkowego % MATLAB - wyznaczenie swobodnego wypływu cieczy ze zbiornika D =input('Średnica zbiornika ? '); dw=input('Średnica otworu ? '); H =input('Wysokość napełnienia ? '); z =input('Wsp. strat hydraul. ? '); dh=0.001; % gradient wysokości hi(1)=H; t(1)=0; i=1; while hi(i) > 0 i=i+1; hi(i)=H-i*dh; v(i)=sqrt((2*9.81*hi(i))/(1+z)); dt=((D/dw)^2)*(dh/v(i)); if i==1 t(i)=dt; else t(i)=t(i-1)+dt; end; end plot(t,hi,'b'); grid on; axis([0 2500 0 H]) xlabel('czas [s]') ylabel('Poziom cieczy w zbiorniku [m]') 16 Przykład rozwiązania numerycznego równania różniczkowego D=1 H=6 ξ=0.1 ξ=0.5 d = 0,02 d = 0,04 d = 0,06 17