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