Professional Documents
Culture Documents
Uvod u SIMULINK
Zagreb, 2006
Sadraj
1 Simulacija dinamikih sustava 1.1 Kako radi Simulink? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Simulink 2.1 Osnovne akcije unutar Simulinka . . . . . . . . . . . 2.1.1 Pokretanje Simulinka . . . . . . . . . . . . . . 2.1.2 Stvaranje novog Simulink modela . . . . . . . 2.1.3 Otvaranje postojeeg Simulink modela . . . . 2.1.4 Postavljanje osnovnih parametara simulacije . 2.1.5 Simulink biblioteka blokova . . . . . . . . . . 2.2 Primjeri koritenja Simulinka za simulaciju ponaanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 4 6 6 6 6 6 7 8 10 15 15 16 17 22 26 30 35 36 37 38
3 Napredne tehnike koritenja Simulinka 3.1 Podsustavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Maskiranje podsustava . . . . . . . . . . . . . . . . . . . . 3.2 Algebarske petlje . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Detekcija prolaska kroz nulu . . . . . . . . . . . . . . . . . . . . . 3.4 Upravljanje simulacijom iz Matlabovog komandnog prozora . . . . 3.5 Simulacija krutih dinamikih sustava . . . . . . . . . . . . . . . . 3.6 Numeriki postupci unutar Matlab/Simulink programskog sustava 3.6.1 Numeriki postupci s promjenjivim vremenskim korakom . 3.6.2 Numeriki postupci s konstantnim korakom . . . . . . . . 3.6.3 Odabir numerikog postupka . . . . . . . . . . . . . . . . .
Povezivanje modela
Slika 1.1: Faze provedbe simulacije u simulinku Povezivanje modela U ovoj se fazi alocira memorija potrebna za spremanje signala, stanja, izlaza i "run-time" parametara simulacije. Nadalje, na temelju liste blokova stvorene u prethodnoj fazi, odreuje se najekasniji poredak izvravanja blokova kako eventualno ne bi dolo do pojave algebarskih petlji. Pritom se uzima u obzir i eventualna razina prioriteta koju korisnik moe dodijeliti pojedinom bloku. Simulacijska petlja. O ovoj fazi Simulink sukcesivno izraunava stanja i izlaze iz sustava u vremenskim trenucima koji mogu, ali i ne moraju biti ekvidistantni to ovisi o odabranom rjeavau diferencijalnih jednadbi (eng. solver).
Rjeavai s promjenjivim korakom. Ovi rjeavai adaptiraju/mijenjaju korak diskretizacije tijekom simulacije kako bi se zadovoljili zahtjevi koje korisnik postavlja na apsolutni i relativni iznos pogreke simulacije. Osim ove podjele rjeavai se mogu svrstati i prema prirodi sustava koje rjeavaju i to na: kontinuirane rjeavae koji rjeavaju problem prorauna stanja kontinuiranih dinamikih sustava, koristei postupke numerike integracije. diskretne rjeavae, koji zbog prirode diskretnih sustava ne zahtijevaju provoenje numerike integracije, te su stoga znatno jednostavniji. Spomenuti postupci numerike integracije predstavljaju najvei problem koji kontinuirani rjeavai trebaju rijeiti. Obino se temelje na razvoju funkcije u Taylorov red, ime se unosi odreena u pogreka u proraun stanja (ostatak beskonanog Taylorovog reda). Kao rezultat ovog ovih postupaka diferencijalna se jednadba nadomjeta konanom jednadbom diferencija. Prema formi pripadne jednadbe diferencija postupci numerikog rjeavanja diferencijalnih jednadbi dijele se na eksplicitne i implicitne. Najjednostavniji primjer za eksplicitni postupak je unaprijedna Eulerova metoda: xn+1 = xn + hf (tn , xn ), a za implicitni unazadna : xn+1 = xn + hf (tn+1 , xn+1 ) (1.2) Oito je da se proraun budueg stanja kod eksplicitnih postupaka moe provesti u jednom koraku, dok je kod implicitnih postupaka proraun potrebno obavljati iterativno u vie koraka. (1.1)
2 Simulink
2.1 Osnovne akcije unutar Simulinka
2.1.1 Pokretanje Simulinka
Simulink se pokree izravno iz Matlaba izvravanjem naredbe: simulink; ili klikom mia na ikonicu simulinka u Matlab-ovom osnovnom prozoru (slika 2.1).
Slika 2.1: Ikonica za pokretanje Simulinka Kao rezultat bilo koje od ovih akcija pokree se Simulink biblioteka blokova koja sadri blokove potrebne za izgradnju simulacijskog modela.
2 Simulink
2 Simulink
Slika 2.3: Postavljanje parametara simulacije niku poveanje broja toaka u kojima se izraunava stanje sustava za faktor n, ime se dobije bolja rezluivost stanja koje se izraunava. S druge strane opcija Dodatni izlazi (Produce additional outputs) izraunava dodatno stanja sustava u vremenskim trenucima deniranim kao vektor [t1 t2 t3 ... tn]. Konano odabirom opcije Produce specified output only stanja sustava se izraunavaju samo u trenucima deniranim vremenskim vektorom, slino kao u prethodnom sluaju.
u(t)dt
Constant - Blok na svojem izlazu daje konstantnu vrijednost koja se denira kao parametar bloka.
2 Simulink
Slika 2.4: Najee koriteni blokovi Demux - Demultipleksor Discrete-Time Integrator - Diskretni integrator koristei neku od metoda integracije (unaprijedna Eulerova, unazadna Eulerova ili trapezna integracija). Gain - Blok pojaanja (y = K u) Sum - Sumator; In1 - Ulazni port (koristi se kod podsustava); Integrator - Blok obavlja operaciju integracije u kontinuiranom podruju (y(t) = t u(t)dt + IC(t1 )); t1 Logical Operator - Blok obavlja odabranu logiku operaciju izmeu ulaznih signala; Mux - Multipleksor; Product - Blok za mnoenje/dijeljenje ulaznih signala; Relational Operator - Blok provjerava odabranu relacija izmeu ulaznih signala te na izlazu daje logiku vrijednost; Saturation - Blok nelinearne operacije zasienja; Scope - Osciloskop (za praenje razultata simulacije); Unit Delay - Blok jedininog kanjenja (y(kT ) = u((k 1)T )); Switch - Blok proputa na izlaz signal doveden na prvi ulaz ukoliko je vrijednost na drugom ulazu zadovoljava odabrani kriterij, a u suprotnom proputa na izlaz signal doveden na trei ulaz; Subsystem - Podsustav.
2 Simulink
10
m
Slika 2.5: Matematiko njihalo
Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m r2 , te slijedi: g + sin() = 0 (2.2) r Izgradnja simulacijske sheme. Prvi korak u izgradnji simulacijskog modela jest zapis diferencijalne jednadbe (2.2) u obliku da na lijevoj strani jednadbe bude samo derivacija najveeg reda, a svi ostali lanovi na desnoj strani jednadbe, kako slijedi: g = sin() r (2.3)
Kod izgradnje simulacijske sheme najprije se pomou blokova realizira lijeva strana jednadbe za to su potrebna dva bloka integrator(slika 2.6). U korak se na temelju izraza s desne strane jednadbe (2.3) odreuju blokovi potrebni za tvorbu signala koji se spaja na ulaz (slika 2.7). Poetne vrijednosti stanja sustava openito se postavljaju tako da se u pojedine integratore u simulacijskoj shemi upiemo njihove poetne vrijednosti. Tako u ovom primjeru u lijevi integrator upiemo 0 kao poetnu vrijednost (poetna brzina gibanja njihala) dok u desni integrator upiemo poetnu vrijednost kuta 0 = /4.
2 Simulink
11
1 s Integrator
1 s Integrator1
1 s Integrator
1 s Integrator1
Scope
Slika 2.7: Simulacija shema njihala Postavljanje parametara i pokretanje simulacije U ovom primjeri zadrani su inicijalni (defaultni) parametri simulacije (trajanje simulacije, tip rjeavaa, tonost simulacije,...). Budui da su u simulacijskoj shemi koritene varijable g i r (gravitacija i duljina njihala) potrebno je prije pokretanja simulacije postaviti njihove vrijednosti u Matlabovom komandnom prostoru, kako slijedi: >>g=10; >>r=1; Po pokretanju simulacije rezultate moemo pratiti u bloku Scope (Osciloskop) to je prikazano na slici 2.8. Primjer 2.2. (RLC strujni krug) Potrebno je simulirati RLC strujni krug prikazan na slici 2.9. Matematiki opis modela jednadbom drugog reda: Vladanje ovog kruga je opisano je sljedeom diferencijalnom di + dt
t
u(t) = R i(t) + L
i(t)dt
(2.4)
dq , dt
slijedi: (2.5)
dq d2 q 1 + L 2 + q(t) dt dt C
2 Simulink
12
R = 20
U = 10 V
L = 0.01H
2 t = 0.02 s
UC0 = 5 V
C = 10 F
Slika 2.9: RLC krug Izgradnja simulacijske sheme Najprije je potrebno diferencijalnu jednadbu (2.5) zapisati u obliku prikladnom za izgradnju simulacijske sheme: 1 d2 q = 2 dt L u(t) R 1 dq q(t) dt C (2.6)
Na temelju jednadbe (2.6) izgrauje se simulacijska shema prikazana na slici 2.10. Postavljanje parametara i pokretanje simulacije Sa slike 2.10 je vidljivo da se i u ovom primjeru umjesto upisivanja konkretnih iznosa parametara u simulacijsku koriste
2 Simulink
13
i To Workspace1
q(t)
Step 1/L Gain2
1 s Integrator
q(t)=i(t)
1 s Integrator1
q(t)
R Gain
uc(t)
uc To Workspace2 1/C Gain1
Slika 2.10: Simulacijska shema RLC kruga varijable Matlabovog radnog prostora R,L,C i uC0 . Vrijednosti ovih parametara potrebno je prije provoenja simulacije unijeti u komandnom prozoru. >>L=0.01; >>C=10e-6; >>R=20; >>uc0=5; Poetnu vrijednost napona na kondenzatoru postavlja se tako da se u desni integrator (iji je izlaz q(t)) upie poetnu vrijednost q0 = C u0 . Kao ulazni signal postavljen je blok Step kojim je ostvarena skokovita promjena ulazne vrijednosti s iznosa 0 na iznos 10 u trenutku t = 0.02s. Parametri bloka Step prikazani su na slici 2.11. Za razliku od prethodnog primjera umjesto praenja signala pomou bloka Scope (osciloskop), u ovom primjeru se rezultati simulacije spremaju u radni prostor Matlaba (workspace) pomou bloka To workspace. Nakon provoenja simulacije u radnom prostoru Matlaba se nalaze spremljeni vektori uc, i, te tout, koji se automatski generira (vidi postavke simulacije). Sada se rezultati simulacije mogu iscrtati nekom od odgovarajuih Matlab naredbi to je u ovom sluaju napravljeno na sljedei nain: >>subplot(211),plot(tout,uc,k),grid; >>subplot(212),plot(tout,i,k),grid; ime su iscrtani odzivi prikazani aa slici 2.12.
2 Simulink
14
5 0 5
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
0.005
0.01
0.015
0.025
0.03
0.035
0.04
3.1 Podsustavi
Simulink omoguuje modeliranje sloenih sustava kao skupa meusobno povezanih podsustava. Openito unutar Simulinka postoje dva tipa podsustava: virtualni (eng. virtual) i nedjeljivi (eng. atomic) podsustav. Osnovna je karakteristika virtualnog podsustava da ne utjee na redoslijed prorauna signala, tj. njegovim koritenjem se samo simulacijska shema ini preglednijom. S druge strane nedjeljivi podsustav predstavlja elementarni blok koji se unutar Simulinka izvrava kao jedna cjelina. Najjednostavniji nain stvaranja podsustava je oznaavanje dijela simulacijske sheme i odabir opcije Edit/Create Subsystem. Drugi nain je da se u simulacijsku shemu, iz Simulink biblioteke blokova, doda blok Subsystem koji inicijalno sadri samo ulazni i izlazni port, te se u njega dodaju drugi blokovi kako bi se ostvarila eljena funkcionalnost podsustava. Dodatna pogodnost kod koritenja podsustava je mogunost njihovog uvjetnog izvravanja i to kao: a) podsustav ije je izvravanje uvjetovano razinom kontrolnog signala (Enabled Subsystem); b) podsustav ije je izvravanje uvjetovano bridom kontrolnog signala (Triggered Subsystem); c) podsustav ije je izvravanje uvjetovano istovremeno i razinom i bridom kontrolnog signala (Enabled and Triggered Subsystem);. Da bi se podsustav uinio jednim od tri nabrojana tipa potrebno je u njega dodati blok Enable i/ili blok Trigger. U tom sluaju podsustav ima dodatni ulaz (ili dva ulaza ako se radi o podsustavu pod c)) na koji se dovodi kontrolni signal ije stanje/promjena odreuje njegovo eventualno izvravanje (slika 3.3).
15
16
Out1 In1
i To Workspace1
Step
Out2
uc To Workspace2
RLC
In1
Out1
In1
Out1
In1
Out1
Enabled Subsystem
Triggered Subsystem
17
Slika 3.4: Prozor za deniranje maske bloka kako je to prikazano na slici 3.7. Izgled bloka denira se pod tabom Icon koristei skup naredbi koje omoguuju iscrtavanje geometrijskih likova na ikonu bloka kao i deniranje prikaza ulazno/izlaznih portova (slika 3.5). Pod tabom Initialization mogue je denirati slijed naredbi koje e se izvriti kod uitavanja bloka, dok se pod tabom Documentation daje opis bloka (Description) i denira pomo (Help) vezana za taj blok.
18
i To Workspace1
uc To Workspace2
RLC
Slika 3.6: Izgled bloka nakon denicije maske Primjer 3.1. Razmotrimo jednostavan sustav opisan sljedeim izrazom: y = 2(u y). (3.1)
Blokovska shema ovog sustava prikazana je na slici 3.8. Oito da je za izraunavanje izlaza iz bloka Sum(zbrajalo) prethodno potrebno izraunati signale u i y. No naravno da bi se izraunao signal y prethodno je potrebno izraunati izlaz iz zbrajala, pa je prema tome problem redoslijeda obavljanja prorauna signala oit. Kao najloginije rjeenje tog problema namee se transformacija izraza (3.1) u oblik y = 1 u, odnosno analitiko rjeavanje algebarske petlje. 3
19
1 Constant
2 Gain Scope
Slika 3.8: Primjer jednostavne algebarske petlje Prethodni jednostavni primjer, osim ilustracije problema algebarskih petlji, sugerira i najekasniji nain njegova rjeavanja, tj. eliminaciju algebarskih petlji njihovim analitikim rjeavanjem. Meutim, esto je zbog strukture algebarske petlje (npr. prisutnosti nelinearnih funkcija u petlji) teko ili nemogue nai analitiko rjeenje tog problema. Zbog toga Simulink u sluaju postojanja algebarskih petlji u svakom koraku pokree poseban postupak za njihovo numeriko rjeavanje, ako u postavkama simulacije nije drugaije navedeno. Numeriki postupak za rjeavanje algebarskih petlji zasniva se na Newton-Raphsonovom postupku rjeavanja implicitnih algebarskih jednadbi oblika x = f (x). Provoenjem ovog numerikog postupka u svakom koraku dolazi do odreenog usporenja simulacije. Ovdje takoer treba imati na umu da algebarska petlja moe openito imati vie rjeenja, dok se numerikim rjeavanjem algebarske jednadbe dobije samo jedno od rjeenja, ovisno o poetnim uvjetima iz kojih algoritam kree. Kako bi korisnik ipak mogao utjecati na izbor rjeenja algebarske petlje potrebno je u petlju dodati blok poetnih uvjeta IC. Primjer 3.2. Kao ilustraciju spomenutog problema razmotrimo neto sloeniji sustav koji
20
11 Constant
1/4 Gain1
u2 Math Function
Slika 3.9: Primjer neto sloenije algebarske petlje Vidljivo je da postoje dva rjeenje algebarske jednadbe i to: 5 25 + u y1,2 = (3.3) 2 Ovisno o iznosu poetnih vrijednosti algoritam e konvergirati jednom odnosno drugom rjeenju. Kako bi ipak korisnik mogao utjecati na izbor rjeenja u simulacijsku se shemu dodaje blok poetnih uvjeta IC (slika 3.10), ime se deniraju poetni uvjeti iz kojih kree algoritam. Ako taj blok nije dodan algoritam pretpostavlja da su poetni uvjeti jednaki nuli (slika 3.9).
11 Constant 1/4 Gain1 1/5 Gain Scope
u2 Math Function
[5]
IC
Slika 3.10: Primjer neto sloenije algebarske petlje uz dodan blok IC Simulacijom sustava uz ulazni signal oblika u(t) = 11 S(t), te uz poetne uvjete y(0) = 0 i y(0) = 5 dobiju se odzivi prikazani na slici 3.11 Kao to je ranije spomenuto Simulink na pojavu algebarske petlje reagira na nain da: 1. u svakom koraku pokrene numeriki postupak za rjeavanje algebarske petlje (opcije None i Warning u postavkama simulacija - slika 3.12) ili 2. zaustavi simulaciju (opcija Error u postavkama simulacije) Drugi nain rjeavanja algebarske petlje je dodavanje memorijskog lana (blok Memory), koji unosi kanjenje u sustav od jednog integracijskog koraka. Ovdje treba imati na umu da je taj nain rjeavanja problema algebarske petlje uvjetno primjenjiv samo u sluaju da je pojaanje otvorene petlje manje od 1. U suprotnom e sustav postati nestabilan. Zakljuno, ponovimo naine rjeavanja problema algebarske petlje:
21
y(0)=2
y(t)
2 3 4
y(0)= 5
5
10
Vrijeme t[s]
Slika 3.11: Rezultati simulacija sustava s algebarskom petljom u razliite poetne uvjete signala y(t)
Slika 3.12: Podeavanje reakcije simulinka an pojavu algebarske petlje 1. Transformacija simulacijske sheme na osnovi rjeenja analitikog algebarske jednadbe; 2. dodavanje blokova poetnih uvjeta (IC) u petlju kako bi se utjecalo na smjer traenja rjeenja algebarske jednadbe;
22
Slika 3.13: Podeavanje parametara simulacije vezano za detekciju prolaza kroz nulu Osim odgovarajuih postavki za pojedine blokove korisnik ima mogunost deniranja globalnih postavki simulacije vezanih za detekciju prolaska kroz nulu pomou opcije Simulation/ Configuration Parameters (slika 3.13). Pritom je mogue odabrati jednu od sljedeih opcija:
23
Use local settings - obavljanje detekcije prolaska kroz nulu odreeno je postavkama pojedinih blokova koji imaju tu mogunost. Enable All - radi se detekcija prolaza signala za svaki od blokova u simulacijskoj shemi koji imaju tu mogunost (ignorira se odabir parametra Zero Crossing Detection za pojedine blokove), Disable All - ne obavlja se detekcija prolaza kroz nulu bez obzira na odgovarajue postavke pojedinih blokova. Primjer 3.3. Kao primjer sustava gdje je neophodno raditi detekciju prolaza kroz nulu modelirat e se sljedei sustav. Neka se elastina loptica nalazi na visini h = 10m i neka ima poetnu brzinu u smjeru okomitom na podlogu v0 = 10m/s, kako je prikazano na slici 3.14. Kod udara u podlogu loptica gubi 20% koliine gibanja koju je imala neposredno prije udara.
v0 = 15 [ m / s ]
h0 = 10 [ m]
Slika 3.14: Elastini udar loptice o podlogu Uz pretpostavku da loptica ima poetnu brzinu v0 moemo zapisati: mv(t) = mg odnosno v(t) = g, uz IC = v0 . (3.5) Bitno je primijetiti da ovaj model vrijedi izmeu dva trenutka udara loptice o podlogu. U trenutka kada se dogodi udar loptice o podlogu vektor brzine loptice mijenja smjer za 180 , a iznos mu se smanji za 20%. Zbog toga je nuno osigurati mogunost vanjskog reseta za pojedine integratore kako bi se u trenutku kada loptica udari o podlogu u integrator upisala nova vrijednost brzine v0 = 0.8 v, koja predstavlja poetnu vrijednost za simulaciju do sljedeeg udara loptice o podlogu. (3.4)
24
Brzina 9.81 Gravitacija 1 s [15] Pocetna brzina Ground 0.8 Elasticnost <= 0 Pocetni polozaj xo [10] 1 s xo polozaj To Workspace Polozaj
Slika 3.16: Parametri bloka usporedbe s nulom - odabir detekcije prolaza kroz nulu Simulacijska je shema prikazana na slici 3.15. Kako je sam udar loptice o podlogu odreen visinom odnosno poloajem loptice potrebno je upravo za taj signal raditi detekciju prolaska kroz nulu. Zbog toga se u parametrima bloka Compare to Zero, iji je ulazni signal poloaj loptice, odabire opcija Zero Crossing Detection(Slika 3.16). Osim toga potrebno je podesiti i parametre bloka Integrator kako bi se omoguio vanjski reset na pozitivni brid signala iz bloka usporedbe s nulom Compare to Zero(Slika 3.17). Dodatno je na oba integratora odabrana i opcija Show state port jer se ti signali (umjesto signala izlaza iz integratora) koriste za detekciju prolaza kroz nulu i upis nove poetne vrijednosti. Na taj se nain izbjegava mogunost pojave algebarske petlje u trenutku kada se dogodi prolaz signala kroz nulu, zbog injenice da je signal sa State porta bloka Integrator dostupan ranije nego signal s izlaznog porta bloka. U sklopu ovog primjera napravljene su dvije simulacije i to sa i bez bez detekcije prolaska kroz nulu. Za prvu je simulaciju za parametar Zero Crossing Control u konguraciji sim-
25
Slika 3.17: Parametri bloka Integrator (brzina loptice) ulacije odabrana opcija Use Local Setting, dok je za drugu simulaciju odabrana opcija Disable All. Radi provjere tonosti provedenih simulacija analitiki su izraunati trenutci u kojima dolazi do udara loptice o podlogu: t1 = 3.6211s t2 = 6.9684 t3 = 9.6462s ... (3.6)
Usporedbom odziva prikazanih na slici 3.18 s vremenima proraunatim analitikim putem evidentno je da simulacija uz ukljuenu detekciju prolaska kroz nulu daje zadovoljavajue rezultate, dok simulacija bez detekcije prolaska kroz nulu ima znaajnu pogreku. Ovdje je bitno primijetiti i jedan problem koji se pojavljuje kod simulacije uz ukljuenu detekciju prolaska kroz nulu za ovaj konkretan primjer. Naime ako se paljivo analiziraju vremena izmeu dva udara loptice o podlogu moe se zakljuiti da ona ine geometrijski niz pri emu vrijedi: tn+1 = 0.8tn (3.7) Ovo praktino znai da e, kako simulacija odmie, biti potrebno sve ee raditi detekciju prolaska kroz nulu, to e rezultirati usporenjem, a na kraju i zaustavljanjem simulacije.
26
25 Visina h[m] 20 15 10 5 0 0 2 4 6
10 Vrijeme t[s]
12
14
16
18
20
25 20 Visina h[m] 15 10 5 0 0 2 4 6
10 Vrijeme t[]s
12
14
16
18
20
Slika 3.18: Rezultati simulacija a) uz ukljuenu detekciju prolaska kroz nulu, b) bez detekcije prolaska kroz nulu
27
add_line(SYS,OPORT,IPORT) Ovom se funkcijom povezuje izlazni port OPORT s ulaznim portom IPORT u simulacijskoj shemi SYS. Pritom se izlazni i ulazni portovi zadaju u obliku blok/port. Primjer 3.4. Na slici 3.19 je prikazan poluvalni ispravlja sa stabilizatorom koji se sastoji od kondenzatora u paraleli s izlaznim otporom. Pritom je pretpostavljeno da je strujno-naponska karakteristika diode idealna i opisana Schocklyevom jednadbom: id = Is e UT 1
ud
(3.8)
gdje je ud -napon na diodi, id -struja kroz diodu, Ut = 25.2mV -termalni napon diode i Is = 1.34pA-struja zasienja diode. Pritom otpor R iznosi R = 10k, dok je kapacitet kondenzatora C promjenjiv.
us
ui
Slika 3.19: Shema poluvalnog ispravljaa sa stabilizatorom napona Potrebno je graki prikazati ovisnost faktora valovitosti (eng. ripple factor) izlaznog napona ui o iznosi kapaciteta kondenzatora C u intervalu C (1e 7, 1e 5)F . Faktor valovitosti deniran je kao: = gdje je: RM S{uAC } =
N i=1
(3.9)
(3.10)
Ponaanje ispravljaa prikazanog na slici 3.19 opisano je sljedeim izrazima: us (s) = ud (t) + ui , id (t) = f (ud (t)), id (t) = ui (t) dui +C . R dt (3.11) (3.12) (3.13)
28
Ove se jednadbe se zapisuju u obliku prikladnom za izgradnju simulacijske sheme: ud (s) = us (t) ui id (t) = f (ud (t)) dui 1 = dt C id (t) ui (t) R (3.14) (3.15) (3.16)
Na temelju jednadbi (3.14)-(3.14) izrauje se simulacijska shema koja je prikazana na slici 3.20. Karakteristika diode opisana je funkcijskim blokom Fcn iji su parametri prikazani na slici 3.21
us To Workspace2 Clock t To Workspace1
1/C Gain
1 s Integrator
ui To Workspace
Gain1
1/R
Slika 3.20: Simulacijska shema poluvalnog ispravljaa rect.mdl Da bi se dobila graka ovisnost faktora valovitosti o kapacitetu kondenzatora C potrebno je najprije generirati niz vrijednosti kapaciteta kondenzatora C. Za svaku od generiranih vrijednosti potrebno je provesti simulaciju, te na temelju rezultata simulacije izraunati pripadni faktor valovitosti. Prijedlog rjeenja: clear phi; Cind=logspace(-7,-4,30); for i=1:length(Cind) C=Cind(i); sim(rect); N=length(ui); N1=floor((N-1)/2); U_sr=mean(ui(N1:N)); rms=sqrt(sum((ui(N1:N)-U_sr).^2)/(N-N1)); phi(i)=rms/U_sr; end; semilogx(Cind,phi);
29
Slika 3.21: Parametri bloka Fcn koji opisuje U-I karaktristiku diode
100
50 Naponi us i ui
50
100 0.1 0.11 0.12 0.13 0.14 0.15 Vrijeme t[s] 0.16 0.17 0.18 0.19 0.2
Slika 3.22: Usporedni prikaz ulaznog napona us i napona na izlazu ispravljaa ui dobiven uz C = 1e 6 F Bitno je primijetiti da se promjena vrijednosti kapaciteta kondenzatora obavljala preko radnog prostora Matlaba (eng. Matlab workspace) naredbom: C=Cind(i); ali se ona takoer mogla napraviti na nain da se izravno promjeni vrijednost upisana u simulacijskoj shemi pomou naredbe set_param: set_param(rect/Gain,Gain, mat2str(1/Cind(i))); Nakon izvravanja prikazane m-skripte dobije se traena ovisnost prikazana u logaritamskom mjerilu (slika 3.23).
30
Faktor valovitosti
10
tada se on naziva krutim ako vrijedi | {max }| >> | {min }|, pri emu su max i min maksimalna i minimalna karakteristina vrijednost matrice . Problem koji se pojavljuje kod simulacije takvih sustava posljedica je injenice da stabilnost numerikih postupaka za rjeavanje diferencijalnih jednadbi ovisi o vremenskom koraku h. Ta je ovisnost posebno izraena kod eksplicitnih numerikih postupaka, koju emo ilustrirati na sljedeem jednostavnom primjeru. Primjer 3.5. Neka je dan linearni sustav prvog reda opisan sljedeom diferencijalnom jednadbom: y(t) + y(t) = 0 y(0) = y0 , (3.18) pri emu je = 100 i y0 = 5. Potrebno je usporediti rezultate dobivene ode1(Euler) numerikim postupkom uz razliite iznose vremenskog koraka h sa stvarnim rjeenjem diferencijalne jednadbe (3.18). Analitiko rjeenje ove diferencijalne jednadbe je y(t) = y0 et , to je lako potvrditi koritenjem Matlab Symbolic Toolboxa. >> syms y y0 lambda t >> sol=dsolve(Dy+lambda*y=0,y(0)=y0) sol =
31
1 s Integrator
y To Workspace
Gain 100
Slika 3.24: Simulacija shema sustava opisanog dif. jednadbom y (t) + y(t) = 0. Na temelju diferencijalne jednadbe (3.18) izgraena je simulacijska shema, prikazana na slici 3.24, pri emu je u postavkama simulacije odabran numeriki postupak ode1(Euler) s konstantnim vremenskim korakom h. U sklopu ovog primjera provedeno je 5 simulacija uz razliite iznose vremenskog koraka (h = 1e 3, 5e 3, 15e 3, 20e 3, 21e 3) i usporedni rezultati tih simulacija su prikazani na slici 3.25. Prikazani rezultati ukazuju da se pogreka numerikog postupka poveava s iznosom vremenskog koraka h, da bi za odreeni njegov iznos postupak postao nestabilan. Da bi se objasnilo zato dolazi do efekta nestabilnosti u numerikom postupku primijenit e se izraz za Eulerovu unaprijednu integraciju na polaznu diferencijalnu jednadbu. Zapiimo najprije diferencijalnu jednadbu (3.18) u standardnom obliku: y = f (t, y) = y. Primjenom izraza za Eulerovu unaprijednu integraciju na ovaj izraz slijedi: yn+1 = yn + hf (tn , yn ) = yn yn yn+1 = (1 h)yn yn = (1 h)n y0 (3.20) (3.19)
(3.21) (3.22)
32
y (t ), y (t )
t [s]
Slika 3.25: Rezultati simulacije sustava opisanog dif. jednadbom y (t) + 100y(t) = 0 koritenjem Eulerovog postupka uz razliite iznose vremenskog koraka h Da bi se odgovorilo na to pitanje potrebno je zapisati dobiveni rezultat u neto drukijem obliku: nh yn = (1 h) h y0 (3.23) Ako vrijedi h tj. h 0 tada :
h0
1
lim (1 h) h = e
(3.24)
Oito, ako je vremenski korak h dovoljno malen tada se postie dobra aproksimacija stvarnog rjeenja diferencijalne jednadbe. Kljunu ulogu za stabilnost postupka u ovom sluaju ima lan (h) = 1 h, te ako on zadovoljava uvjet: |1 h| < 1, (3.26)
numeriki je postupak stabilan. U sluaju da R uvjet za stabilnost Eulerovog numerikog postupka glasi: 2 (3.27) h< Kako je u ovom konkretnom primjeru = 100 slijedi da je postupak stabilan ako je h 0.02, to potvruju i rezultati simulacija na slici 3.25.
33
Razmotrimo sada sluaj da, na polaznu diferencijalnu jednadbu umjesto formule za unaprijednu, primijenimo formulu za unazadnu Eulerovu integraciju: yn+1 = yn + hf (tn+1 , yn+1 ) = yn yn+1 yn+1 = (3.28)
yn (3.29) 1 + h y0 yn = (3.30) (1 + h)n Oito da lan koji odreuje stabilnost postupka sada glasi (h) = 1/(1 + h). Budui da se radi o stabilnom dinamikom sustavu tada vrijedi > 0, pa je u tom sluaju (h) < 1 za svaki iznos vremenskog koraka h. Meutim, kod ovog postupka pojavljuje se drugi problem, a to je njegova implicitnost, te je u opem sluaju kod takvih algoritama nuno koristiti iterativne postupke za njihovo rjeavanje. Prethodni je primjer je zorno pokazao da tonost, a kod odreenih tipova postupaka i stabilnost, numerikog postupka izravno ovise o iznosu vremenskog koraka h. Sada pretpostavimo da rjeenje diferencijalne jednadbe ima vie komponenata. Radi jednostavnosti neka se radi o zbroju dvije eksponencijalne funkcije tj. y(t) = C1 e1 t + C2 e2 t , pri emu vrijedi 1 >> 2 , 1 , 2 > 0. U tom sluaju maksimalni korak koji se moe koristiti u numerikim postupku odreen je brom komponentom C1 e1 t . S druge strane sporija komponenta C2 e2 t denira trajanje simulacije. Takva situacija moe u konanici rezultirati dugotrajnom simulacijom. Upravo takav sluaj ilustriran je sljedeim primjerom. Primjer 3.6. Razmotrimo primjer jednostavnog linearnog sustava II reda, prikazanog na slici 3.26, (serijski RLC krug) koji za odreene iznose parametara R,L i C postaje krut.
i (t )
uC 0
L
Slika 3.26: RLC strujni krug Ponaanje RLC kruga opisano je sljedeim izrazom: di(t) 1 L + Ri(t) + dt C
t
i(t)dt = 0
0
(3.31)
34
Tablica 3.1: Usporedba trajanja simulacije i broj toaka u kojima se izraunava stanje krutog sustava koritenjem ode45(Dormand-Prince) i ode15(sti/NDF) numerikih postupka Algoritam ODE45(Dormand-Prince) ODE15s (Sti./NDF) Trajanje simulacije 0.26 s 0.05 s Broj toaka 11315 136 Uvoenjem naboja q(t) :
dq(t) dt
gdje uC0 predstavlja napon na kondenzatoru u trenutku t = 0. Odgovarajua simulacijska shema, napravljena na temelju izraza (3.32), prikazana je na slici 3.27. Parametri uz koje su obavljene simulacije su sljedei: R = 25, C = 200mF , L = 20mH i uc0 = 12V .
t Clock To Workspace1 i To Workspace
q(t)
1/L Gain2
1 s Integrator
q(t)=i(t)
1 s Integrator1
q(t)
R Gain
uc(t)
1/C Gain1
Slika 3.27: Simulacija shema RLC sustava U sklopu ovog primjera obavljene su dvije simulacije uz razliite numerike postupke i to: ode45(Dormand-Prince) i ode15s(Sti./NDF). Na temelju rezultata simulacije napravljena je usporedba trajanja simulacije i broja toaka u kojima se izraunava stanje sustava za pojedine postupke, to je prikazano u tablici 3.1. Iako je ode15s(sti/NDF) impicitni postupak koji unutar svakog koraka zahtijeva vie iteracija kako bi se izraunalo stanje sustava, trajanje simulacije uz taj postupak je priblino pet puta krae nego u sluaju koritenje ode45(Dormand-Prince) postupka. Posebno drastina razlika je u broju toaka u kojima se izraunava stanje sustava, to je izravna posljedica ogranienja maksimalnog vremenskog koraka uvjetima stabilnosti pojedinih postupaka. Ovdje je bitno napomenuti da oba postupka spadaju u skupinu postupaka s promjenjivim vremenskim korakom. U prethodnom smo primjeru vidjeli da se implicitni numeriki postupci (ode15s) pokazuju kao bolje rjeenje za simulaciju krutih sustava. Budui da se u ovom sluaju ipak radilo o umjereno krutom sustavu, eksplicitni ode45 postupak je uspio obaviti simulaciju u relativno
35
Tablica 3.2: Usporedba trajanja simulacije krutog sustava koritenjem razliitih postupaka numerike integracije Algoritam ODE45(Dormand-Prince) ODE15s (Sti/NDF) Trajanje simulacije 2192 s 0.33 s kratkom vremenu, tako da nismo bili prisiljeni nuno mijenjati defaultni numeriki postupak. Sljedei primjer izrazito krutog nelinearnog sustava prikazat e situaciju kada je promjena numerikog postupka nuna. Primjer 3.7. (Van der Polov oscilator) Neka je dan nelinearni sustav, opisan sljedeom diferencijalnom jednadbom: y (t) 2(1 y 2 (t))y(t) + y(t) = 0 (3.33) koji je u zici poznat kao Van der Polov oscilator. Ponaanje tog sustava u znatnoj mjeri ovisi o iznosu parametra . Ono to je karakteristino za taj sustav je da postaje izrazito krut za vee iznose parametra . Odgovarajua simulacijska shema Van der Polovog oscilatora prikazana je na slici 3.28. Rezultat simulacije dobiven uz = 1000 koristei ode15s postupak prikazan je na slici 3.29. U tablici 3.2 dana su vremena trajanja simulacije uz pojedine numerike postupke, odakle zakljuujemo da je u sluaju simulacije ovakvih sustava nuno prijei na neki od postupaka prikladnih za njihovo rjeavanje (ode15s,ode23s). Bitno je naglasiti da, na alost, u opem sluaju ne postoji jednostavna procedura kojom bi se dolo do odgovora je li neki sustav krut.
y(t)
1 s
y(t)
1 s
y(t)
y
2*mu
u2
36
2.5 2 1.5 1 0.5 y(t) 0 0.5 1 1.5 2 2.5 0 1000 2000 3000 Vrijeme t[s] 4000 5000
Slika 3.29: Simulacija Van der Polova oscilatora uz koritenje ODE15s metode numerike integracije iskustveni naputci za njihov odabir.
37
ode15s(Sti/NDF). Implicitni numeriki postupak promjenjivog reda (od 1 do 5) zasnovan na numerikim diferencijalnim formulama. Postupak je namijenjen prije svega za rjeavanje problema simulacije krutih sustava. Preporuka je koristiti ovaj postupak ako simulacija s defultnim ode45(Dormand-Prince) postupkom predugo traje (to ukazuje na mogunost da se radi o krutom sustavu). ode23s(Sti/mod. Rosenbrok). Ovaj je numeriki postupak zasnovan na modiciranoj Rosenbrokovoj formuli reda 2 i namijenjen je za simulaciju krutih dinamikih sustava. Budui da je ode23s jednokorani postupak pokazuje se da je ekasniji od ode15s postupka pri grubljim tolerancijama. ode23tb. Implicitni Runge-Kutta postupak koji koristi kombinaciju trapeznog pravila i unazadne diferencijalne formule reda 2. Slino kao ode23s, ovaj postupak se pokazuje ekasnijim od ode15s postupka pri grubljim tolerancijama.
38