Professional Documents
Culture Documents
Seminarski Modelovanje
Seminarski Modelovanje
Seminarski Modelovanje
Na slici je prikazan termalni sistem koji se sastoji od grijaa koji prestavlja izvor toplotnog protoka q el , kontejnera napunjenog vodom temperature Tv . U kontejneru iji zidovi imaju temperaturu Tk se nalazi posuda napunjena fluidom temperature T f . Neka su toplotni kapaciteti kontejnera sa vodom C v , zidova kontejnera C k i posude sa fluidom C f . Dodatno, neka su termalni otpori prelaza: voda u kontejneru fluid u posudi Rvf , voda u kontejneru zidovi kontejnera Rvk i prelaza fluid u posudi okolni zrak R fz Pretpostaviti da su zidovi kontejnera idealni izolatori toplote prema okolini i da je temperatura okoline Tamb konstantna veliina. Podaci termalnog sistema su:
q el = 5kW , C v = 25 10 3
R fz = 5 10 3
J J J s C , C f = 5 10 3 , C k = 1 10 3 , Rvf = 1 10 3 J C C C
s C s C , Rvk = 5 10 3 , Tamb = 20 C J J
Pretpostaviti da su svi elementi termalnog sistema na poetku bili zagrijani na temperaturu okoline.
ZADATAK: 1. Potrebno je teoretski obrazloiti numerike metode rjeavanja sistema diferencijalnih jednaina: eksplicitni Eulerov metod, trapezni metod, RungeKutta metod. Za pomenuta tri metoda je potrebno izvesti odgovarajue rekurentne relacije metoda, obrazloiti tanost metoda i pronai odgovarajue regione stabilnosti metoda. 2. Za termalni sistema sa slike je potrebno odrediti: (a) (b) (c) odgovarajuu jednainu prostora stanja, svojstvene vrijednosti matrice sistema i vremenske konstante u sistemu vremenske oblike temperatura: vode u kontejneru, zidova kontejnera i fluida u posudi, koristei neko od gore pomenutih numerikih metoda.
IZRADA qout31
Rfz
Tv, Cv
qout11 qout21 qout22
Tamb
1.
Rjeavanje diferencijalnih jednaina je problem koji se esto javlja u raznim primjenama. Dok je nekim diferencijalnim jednainama rjeenje mogue eksplicitno izraziti, daleko su brojnije one diferencijalne jednaine za koje ne moemo dobiti rjeenje. Zbog toga takve diferencijale jednaine rjeavamo numeriki.
Eulerov metod
Eulerova metoda je najjednostavnija metoda za rjeavanje obinih diferencijalnih jednaina oblika
y ' = f ( x, y ),
y'
y (a) = y 0
y ( x + h) y ( x ) + O ( h) h
(*)
y (b) y (a ) + (b a )hf ( a, y (a )) = y 0 + hf (a, y 0 ) moe biti jako neprecizna. Stoga interval [a, b] podijelimo na n jednakih dijelova te
stavimo
h=
b a , n
xi = a + ih,
i = 0,...., n
y 2 = y1 + hf ( x1 , y1 )
te postupak ponavljamo sve dok ne doemo do kraja intervala b = x n . Opisani postupak nazivamo Eulerova metoda, i moemo ga krae zapisati rekurentnom formulom za dobijanje priblinog rjeenja:
y i +1 = y i + hf ( xi , y i ),
i =1,....n
gdje je poetni uvijet y 0 zadan kao inicijalni uvijet diferencijalne jednaine. Dobivene vrijednosti y i su aproksimacije rjeenja diferencijalne jednaine u takama xi , a h se naziva korak integracije.
Da bi izveli izraz za lokalnu greku Eulerove metode, pretpostavimo da je vrijednost y i tana. Tanu vrijednost za y i + 1 bi dobili integracijom diferencijalne jednaine u granicama xi do x i + 1:
yi +1
yi
dy =
xi +1
xi
f ( x, y ( x))dx y i +1 = y i +
xi +1
xi
f ( x, y ( x))dx
Eulerova metoda se bazira na aproksimaciji podintegralne funkcije Tajlorovim polinomom nultog reda-konstantom. Naime, funkcija f ( x, y ), tj. prvi izvod traene
f ( xi , y i ) u cijelom intervalu
xi +1 f ' ( ) ( y i +1 ) t = y i + f ( xi , y i ) + ( x xi ) dx 1 ! x i
greka aproksimacije
xi < < xi +1
odnosno,
( y i +1 ) t = yi + hf ( xi , y i ) +
Eulerov metod
xi +1
xi
U skladu sa dogovorom, kaemo da je Eulerova metoda prvog reda tanosti. Metode prvog reda tanosti su najmanje tane metode i radi postizanja eljene tanosti numerikog rjeenja potrebno je odabrati vrlo male integracione korake.
Jasno je da ako lokalna greka metode raste iz koraka u korak, to e prouzrokovati poveanje globalne greke sa poveanjem x odnosno i , tj. propagaciju greke u toku raunskog procesa. U skladu sa definicijom stabilnosti raunskog procesa, takva numerika metoda je nestabilna. Poveanje globalne greke tokom raunskog procesa moe biti prouzrokovano i akumulacijom greaka zaokruivanja. Tako, sa smanjenjem integracionog koraka, radi poveanja tanosti metode moe doi do propagacije greaka zaokruivanja (veliki broj raunskih operacija) i poveanje nestabilnosti procesa.
hf ( x , y ) =
i i
[ hf ( x, y )] xi i = h f ( xi , y i )i t y
pa je:
i = 0,1,..., N 1 i +1 = 1 + h ( xi , y i ) i + Ei +1 , t Ako kao primjer uzmemo jednostavnu diferencijalnu jednainu:
(*)
y' = y,
y (a) = y 0
f ( xi , y i ) = , t
E i +1 = E = const.
i +1 = [1 + h ] i + E = i + E , i = 0,1,..., N 1
Uzastopnom primjenom posljednje jednaine moemo, polazei od 0 = 0 , da izraunamo greku n funkcije u nekoj taki x n , koja je rezultat irenja greke na intervalu [ x0 , x n ] :
n = E
1 n E = (1 + h) n 1 , 1 h
n =1,2,..., N
Ako bi uveli neku srednju vrijednost lokalne greke E na posmatranom intervalu [ x0 , x n ] , kao i srednju vrijednost , funkcije,
( x) =
f ( x, y ) y
na istom intervalu, iz jednaine (*) bi dobili procjenu globalne greke na koraku n , za opti oblik obinih diferencijalnih jednaina:
n =
n -tom
E (1 + h) n 1 h
],
n =1,2,...., N
Iz posljednje jednaine se jasno vidi da e globalna greka priblinog rjeenja obine diferencijalne jednaine u toku Eulerovog postupka ( n raste), da raste, ako je izraz (1 +h ) , koji se stepenuje sa n , po apsolutnoj vrijednosti vei od jedinice. Iz posljednje jednaine slijedi dovoljan uslov stabilnosti Eulerove metode na nekom intervalu [ x0 , x n ] : 1 +h ( x) 1, x [ x0 , x n ] , (h > 0) U specijalnom sluaju ( x) = , dovoljan uslov stabilnosti je i potreban i glasi:
1 +h 1
(h > 0) (h > 0)
odnosno, Dakle, -
2 h 0
za pozitivne vrijednosti parametra , Eulerova metoda je nestabilna, sa bilo koliko malim korakom integracije h ,
za negativne vrijednosti , metoda e biti stabilna, ako i samo ako integracioni korak (h > 0) zadovoljava uslov: 2 h 0 , odnosno,
h 2
Runge-Kutta metod
Koristei slinu ideju kao u Eulerovoj metodi, diferencijalnu jednainu
y ' = f ( x, y ), y (a) = y 0 (3) na intervalu [a, b] , moemo rjeavati tako da podijelimo interval [a, b] na
yi
koritenjem
y ( x + h) y ( x) + h( x, y ( x ), h; f )
(4)
te dobivamo rekurziju (5) funkciju nazivamo funkcija prirasta, a razliit izbor te funkcije definira razliite metode. Uoimo da je funkcija f iz diferencijalne jednaine (3) parametar od (tj. ovisi o f ). Metode oblika (5) zovemo jednokorane metode (jer za aproksimaciju y i + 1 koristimo samo vrijednosti y i u prethodnoj taki xi , tj. u jednom koraku dobijemo y i + 1 iz y i f ). Da bismo pojednostavili zapis, ubudue emo izostaviti kao argument funkcije . O odabiru funkcije ovisi i tanost metode. Za oekivati je da ako izaberemo tako da aproksimacija tanog rjeenja y ( x + h) data sa (4) bude to tanija, da e tanija biti i aproksimacija y i za y ( xi ) data rekurzijom (5). Pogreka aproksimacije (4): ( x; h) = ( x; h) ( x, y ( x), h) (6) gdje je y ( x ) tano rjeenje diferencijalne jednaine (3) i y ( x + h) y ( x ) ( x; h) = h nazivamo lokalna pogreka diskretizacije. Red metode odgovara njezinoj tanosti. Openito, za jednokorane metode kaemo da su reda p ako je ( x; h) = O (h p ) to je vei p metoda je tanija, a to postiemo odabirom funkcije .
y i +1 = y i + h( xi , y i , h; f ) , i = 0,..., n 1
Pod tanou metode podrazumjevamo ponaanje pogreke y ( xi ) y i . Da bismo pojednostavili argumentaciju, posmatrat emo pogreku u fiksiranoj taki b . Ako je jednokorana metoda reda p , tada je
y (b) y n = O ( h p )
Uoimo da je h =
n ) aproksimacija za
y (b ) .
Najpoznatije jednokorane metode su svakako Runge-Kuttine metode. Kod njih je funkcija oblika
( x, y, h) = j k j ( x, y , h)
j =1 r
a k j su zadani s k j ( x, y, h) = f ( x + c j h, y + ha jl k l ( x, y, h, f )) ,
l =1 r
j =1,..., r.
(7)
Broj r zovemo broj stadija Runge-Kuttine metode, i on oznaava koliko puta moramo raunati funkciju f u svakom koraku. Razliit izbor koeficijenata j , c j i a jl definira razliite metode. Ovi koeficijenti se najee biraju tako da red metode bude to je mogue vei. Iz izraza (7) vidimo da se k j nalazi i na lijevoj i na desnoj strani jednaine, tj. zadan je implicitno te govorimo o implicitnoj Runge-Kuttinoj metodi. U praksi se najvie koriste metodi gdje je a jl = 0 za l j . Tada k j moemo raunati preko k1 ,..., k j 1 , tj. funkcije k j su zadane eksplicitno. Takve RK metode nazivamo eksplicitnim. Nadalje, obino se dodaje uvijet
a
l =1
jl
= cj
gdje su f x i f y a f xx , f xy i f yy odgovarajue druge parcijalne derivacije. Razvoj rjeenja diferencijalne jednaine y ( x ) ima oblik
y ( x + h) = y ( x) + hf + h2 h3 ( fx + fy f ) + f xx + 2 f xy f + f yy f 2 6
y ' ( x ) = f ( x, y ) = f
+ f y ( f x + f y f ) + O(h 4 )
+ f y ( f x + f y f ).
Da bi metoda bila reda 1 koeficijente treba odabrati tako da se poniti prvi lan u gornjem razvoju: 1 1 2 = 0 Ukoliko je zadovoljeno i metoda e biti reda 2. Uvoenjem slobodnog koeficijenta t rjeenje ove dvije jednaine moemo napisati u obliku:
2 = t 0 , 1 = 1 t ,
a= 1 2 a = 0 2
Uoimo da t ne moemo odabrati tako da ponitimo i lan uz h 2 tako da metoda bude reda 3. Ukoliko 2 = 0 , radi se o metodi s jednim stadijem, i to upravo o Eulerovoj metodi.
1 dobivamo Heunovu metodu: 2 1 = ( k1 + k 2 ), 2 k1 = f ( x, y ), k 2 = f ( x + h, y + hk1 ), dok se za t = 1 dobiva modificirana Eulerova metoda:
1 2t
Za t =
= f (x +
h h , y + f ( x, y )) 2 2
Najrairenije su metode sa etiri stadija. Odgovarajue jednaine koje moraju zadovoljiti koeficijenti RK-4 metode su:
1 + 2 + 3 + 4 = 1,
1 , 2 1 2 2 2 2 c 2 + 3 c3 + 4 c 4 = , 2
2 c 2 + 3 c3 + 4 c 4 =
3 c 2 a 32 + 4 (c 2 a 42 + c3 a 43 ) =
3 3 3 2 c 2 + 3 c3 + 4 c 4 =
(11) (12)
1 , 4 1 , 12 1 8
2 2 2 3 c 2 a32 + 4 (c 2 a 42 + c3 a 43 ) =
3 c 2 c3 a32 + 4 (c 2 a 42 + c3 a 43 )c 4 = , 4 c 2 a 32 a 43
1 = 24
gdje je
c1 = 0, c 2 = a 21 , c3 = a 31 + a 32 , c 4 = a 41 + a 42 + a 43
Uslov (8) treba biti zadovoljen da bi metoda bila reda 1, uslov (9) za red 2, uslovi (10) do (11) za red 3, dok za red 4 trebaju biti ispunjeni i uslovi (12) do (15). Ukupno imamo 10 koeficijenata i 8 jednaina ukoliko je metoda reda 4. Za metodu sa tri stadija uvrtavanjem
c 4 = a 41 = a 42 = a 43 = 4 = 0
dobivamo 9 koeficijenata i 7 jednaina. Metoda s etiri stadija moe postii najvie red etiri, tj. ne moemo dva stupnja slobode iz sistema jednaina koristiti da red podignemo na pet. Openito za metode s jednim, dva, tri ili etiri stadija najvei mogui red metode odgovara broju stadija. Za metode s 5, 6 i 7 stadija najvei mogui red je 4, 5 i 6 dok je za metode 8 i vie stadija najvei mogui red barem za dva manji od broja stadija. To je razlog zato su metode s etiri stadija najpopularnije. Red je 4, da bismo postigli red 5 trebamo poveati broj stadija barem za dva, to poveava sloenost metode. Najpopularnija je klasina Runge-Kutta metoda, koja se u literaturi najee naziva Runge-Kutta ili RK-4 metoda:
= 1 (k1 + 2k 2 + 2k 3 + k 4 ), 6 k1 = f ( x, y ), h h , y + k1 ), 2 2 h h k 3 = f ( x + , y + k 2 ), 2 2 k 4 = f ( x + h, y + hk 3 ) k2 = f (x +
Kako je f ( xi , y i ) = y i imamo
h [ f ( xi , yi ) + f ( xi + h, y i + hf ( xi , y i ))] 2 1 2 2 1 h ) y i = (1 + h + h 2 2 ) i y 0 2 2
1 2 2 h <1 2
y i +1 = (1 + h +
h+ 1 < 1,
1 2
1 2
kao i za Eulerovu metodu Iz definicije iteracija bilo koje Runge-Kutta metoda, jasno je da e njihova primjena y , y (0) = y 0 dati jednainu oblika na problem y ' = y i +1 = P (h) y i , P polinom i Budui da iz y i +1 = P (h) y i slijedi y i +1 = P (h) y 0 uslov za apsolutnu stabilnost je
P ( h ) < 1
Trapezni metod
Poet emo od Newton-Cotesovih formula:
(m) f ( x) dx I m ( f ) = k f ( x0 + khm ). k =0
pri emu je
h := h1 =
pa je x 0 = a i x1 = b . Da bismo olakali pisanje, kad znamo da je m = 1 , moemo (1) (1) izostaviti gornje indekse u k , tj. radi jednostavnosti piemo k := k . Dakle, moramo pronai teine 0 i 1 , tako da integracijska formula egzaktno integrira polinome to vieg stupnja na intervalu [a, b ] , tj. da za polinome f to vieg stupnja bude
b a = b a, 1
f ( x)dx = I
a
( f ) = 0 f ( a ) + 1 f (b).
Stavimo, redom uvjete na bazu vektorskog prostora polinoma. Ako je f neki od polinoma baze vektorskog prostora, morat emo izraunati njegov integral. Zbog toga je zgodno odmah izraunati integrale oblika
x
a k x dx = a b
dx, k 0, b k +1 a k +1 k +1
Za f ( x ) = 1 = x 0 dobivamo
b a = x 0 dx = 0 1 + 1 1
a b
Odmah je oito da iz jedne jednaine ne moemo odrediti dva nepoznata parametra, pa moramo zahtjevati da integracijska formula bude egzaktna i na polinomima stupnja 1. Za f ( x ) = x izlazi
b2 a2 = xdx = 0 a + 1 b 2 a
b
b2 a2 2
pa je 0 = 1 . Vidimo da je integracijska formula I 1 ( f ) dobivena iz egzaktnosti na svim polinomima stepena manjeg ili jednakog 1, i glasi
1 h (b a ) = 2 2
Ta formula se zove trapezna formula. Odakle joj ime? Napiemo li je na malo drugaiji nain, kao
f (a ) + f (b) (b a ) 2 a odmah emo vidjeti da je ( f (a ) + f (b)) / 2 srednjica, a b a visina trapeza.
f ( x)dx
Jednokorane metode moemo shvatiti kao primjenu integracijskih metoda na integraciju obinih diferencijalnih jednaina
y ' ( x ) = f ( x, y ( x )), y ( x0 ) = y0
y ( xi +1 ) y ( xi ) =
xi +1
xi
f ( x, y( x))dx = I
Dakle, vrijednost y ( xi +1 ) moemo izraunati iz prethodne vrijednosti y ( xi ) ako znamo izraunati integral I 1 . Koritenjem integracijskih metoda dobivamo: formula lijevog rubaEulerova metoda
I 1 hf ( xi , y ( xi ))
Dakle, primjenom trapezne formule na integraciju obinih diferencijalnih jednaina dobit emo metodu oblika
y i +1 = y i + h ( f ( xi , y i ) + f ( xi +1 , y i +1 )) 2
Obzirom da se y i + 1 javlja i na lijevoj i na desnoj stani jednaine, radi se o implicitnoj metodi. Trapezna integracijska formula nee egzaktno integrirati sve polinome stepena 2. To nije teko pokazati, jer ve za
f ( x) = x 2
vrijedi
b3 a3 a2 b2 = x 2 dx I 1 ( x 2 ) = (b a ) 3 2 a
b
Interpolacijski polinom stepena 1 koji prolazi kroz zadane take je Njegov integral na [a, b ] je
b a
p1 ( x) = f (a ) + f [ a, b]( x a )
x2 b (b a ) 2 f ( a ) + f (b ) ) | a = (b a ) f ( a ) + f [ a, b ] 2 2 2
p1 ( x)dx = ( f (a) x af [ a, b] x + f [ a, b]
Ovaj nam pristup omoguava i ocjenu greke interpolacijske formule, preko ocjene greke intepolacijskog polinoma, uz uvijet da moemo ocjeniti greku interpolacijskoig polinoma(tj. ako f ima dovoljan broj neprekidnih derivacija). Neka je funkcija f C 2 [ a, b] . Greka interpolacijskog polinoma stepena 1 koji funkciju f interpolira u takama (a, f (a )), (b, f (b)) na intervalu [a, b ] jednaka je f '' ( )
e1 ( x) = f ( x) p1 ( x ) = 2 ( x a )( x b)
E1 ( f ) =
a
f '' ( ) ( x a )( x b) dx 2
( x a )( x b) 0 na [a, b ] 2 ( x a)( x b) , 2
g ( x) = f ' ' ()
( x) =
Po generaliziranom teoremu srednje vrijednosti, ako je f C 2 [ a, b] , (to znai da je f ' 'C 0 [ a, b] ), vrijedi da je
E1( f ) = f ' ' ( )
a b b
( x a )( x b) dx 2
pa je
E1 ( f ) = f ' ' ( ) h3 12
odakle slijedi
(1
Budui da je h < 0 izraz uz y i + 1 u prethodnoj jednaini je razliit od nule, i njime moemo podijeliti cijelu jednainu. Pa dobivamo 2 + h 2 + h i +1 y i +1 = y i +1 = ( ) y0 2 h 2 h Dakle, aproksimacija se pribliava y = 0 ako je a to je ispunjeno za sve h < 0 . Znai interval stabilnosti za trapeznu metodu je
h ,0
2 + h <1 2 h
2.
1 (T1 (t ) T2 (t )) R qin = q el (t ) 1 q out11 = (Tv Tk ) Rvk q (t ) = T (t ) =
1 ( qin (t ) q out (t )) C
1 (Tv T f ) Rvf
q out12 =
q out 21 =
q out 31
q out 22 =
1 (T f Tv ) Rvf
-----------------------------------------------------------------------------------------------Tv =
T
Tk
Tk =
1 1 (Tk Tv ) 0 Ck Rvk
---------------------------------------------------------------------------------------------------
T v +(
T f +(
Tk+
1 1 Tk = Tv C k Rvk C k Rvk
T k + 0,2Tk = 0,2Tv
---------------------------------------------------------------------------------------------------------
1 1 1 1 1 + ) ( 0 C T C R C R C R C R v v vk v vf v vf v vk T v v q el 1 1 1 1 T ( + ) 0 Tf + 0 f = T C R C R C R C R f vf f vf f fz f fz amb Tk 1 1 0 0 Tk 0 CR C k Rvk k vk
-Sistem diferencijalnih jednaina je rjeen pomou Eulerovog metoda koristei Matlab. Matlab funckije za rjeavanje sistema su:
function[t,z]=MojEuler(fun,deltaT,period,z0) broj_varijabli=length(z0); pocetak=period(1); kraj=period(2); t=[pocetak:deltaT:kraj]'; z=zeros(length(t),broj_varijabli); zt=z0'; for k=1:length(t) z(k,:)=zt; zt=zt+feval(fun,t(k),zt)'*deltaT; end
period=[0 1000]; z0=[20 20 20]'; deltaT=0.01; [t,T]=MojEuler(@sistem,deltaT,period,z0); subplot(3,1,1),plot(t,T(:,1)),title('Temperatura vode Tv'); subplot(3,1,2),plot(t,T(:,2)),title('Temperatura fluida Tf'); subplot(3,1,3),plot(t,T(:,3)),title('Temperatura kontejnera Tk');