You are on page 1of 38

SVEUILITE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAUNARSTVA

LABORATORIJ I VJETINE - MATLAB

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 . . . . . . . . . . . . . . . . .

1 Simulacija dinamikih sustava


Ponaanje dinamikih sustava opisano je skupom diferencijalnih jednadbi koje su openito nelinearne. U tim su diferencijalnim jednadbama sadrane zakonitosti koje vrijede za sustav. Osnovni je problem koji se pojavljuje kod analize takvih sustava nepostojanje ope metodologije za rjeavanje nelinearnih diferencijalnih jednadbi. Kao logino rjeenje problema analize ponaanja ovakvih sustava namee se provoenje simulacije sustava na digitalnom raunalu. SIMULINK predstavlja graki alat koji koristi matematiku ljusku Matlaba kako bi se provela simulacija sustava. Izgradnja simulacijskog modela unutar Simulinka obavlja se na jednostavan nain koritenjem biblioteke gotovih grakih blokova. Osim postojeih blokova korisnik moe napisati i vlastite blokove koristei bilo Matlabove m-funkcije ili funkcije napisane u programskom jeziku C/C++ (S-funkcije). Simulacijska shema u Simulinku sastoji se od blokova i linija tj. signala kojima se povezuju pojedini blokovi i time realiziraju jednadbe koje opisuju sustav. Simulacija unutar Simulinka moe se podijeliti tri faze (slika 1.1) i to: (1) prevoenje modela, (2)povezivanje modela i (3) simulacija. Prevoenje modela (eng. model compilation). U ovoj fazi model se prevodi u izvrni oblik, pri emu se obavljaju sljedee operacije: izraunavaju se parametri blokova, odreuju se svojstva signala (dimenzija signala, tip signala) provodi se postupak optimizacije s ciljem reduciranja broja blokova u shemi, virtualni se blokovi zamjenjuju blokovima koje oni sadre, formira se lista blokova koja se u fazi povezivanja modela koristi kao polazite za odreivanje poretka izvravanja blokova, odreuju se vremena uzorkovanja (eng. sample time) blokova za koje vrijeme uzorkovanja nije eksplicitno navedeno.

1 Simulacija dinamikih sustava

Prevo enje modela

Povezivanje modela

Raunanje stanja i izlaza sustava u trenutnom koraku simulacije

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).

1.1 Kako radi Simulink?


Simulacija dinamikog sustava se u Simulinku obavlja sukcesivnim raunanjem stanja sustava to obavljaju rjeavai tj. posebni matematiki programi za rjeavanje diferencijalnih jednadbi. Rjeavai unutar Simulinka dijele se u dvije kategorije i to: rjeavae s konstantnim korakom i rjeavae s promjenjivim korakom. Rjeavai s konstantnim korakom. Ovi rjeavai raunaju stanja sustava u pravilnim vremenskim intervalima. Trajanje simulacije i njezina tonost izravno ovise o izboru koraka diskretizacije. to je taj korak manji simulacija je tonija, ali se produljuje njezino trajanje.

1 Simulacija dinamikih sustava

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.1.2 Stvaranje novog Simulink modela


Stvaranje novog Simulink modela obavlja se 1. odabirom opcije New unutar File izbornika u Simulink biblioteci blokova, ili 2. klikom na odgovarajuu ikonicu.

2.1.3 Otvaranje postojeeg Simulink modela


Otvaranje postojeeg Simulink modela moe se obaviti na jedan od sljedeih naina: 1. odabirom opcije Open unutar File izbornika u Simulink biblioteci blokova ili 2. odabirom opcije Open unutar File izbornika u Matlabovom osnovnom prozoru ili 3. utipkavanjem naredbe ime_modela.mdl u Matlab komandnom prozoru.

2 Simulink

Slika 2.2: Simulink biblioteka blokova

2.1.4 Postavljanje osnovnih parametara simulacije


Osnovne postavke simulacije postavljaju se odabirom opcije "Simulation/conguration". Trajanje simulacije zadaje se izborom poetnog (start time) i zavrnog (stop time) vremena simulacije. U dijelu "Solver options" odreuju se parametri numerikog postupka. Pritom se moe odabrati konstantni odnosno promjenjivi vremenski korak kao i sami numeriki postupak koji e biti koriten za simulaciju sustava. U dijelu izbornika Output option korisnik moe odabrati jednu od opcija: Rene output, Produce additional output, Produce specied output only. Ovdje je bitno naglasiti da su navedene tri opcije dostupne samo ako je odabran neki od postupaka s promjenjivim vremenskim korakom. Opcija Refine output omoguuje koris-

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.

2.1.5 Simulink biblioteka blokova


Po pokretanju Simulinka otvara se biblioteka blokova koji su korisniku na raspolaganju za izgradnju simulacijske sheme. Ti su blokovi organizirani u skupine s obzirom na tip operacije koje obavljaju. Osim osnovnih Simulink blokova, u biblioteci blokova takoer se nalaze i dodatni blokovi, ovisno o tome koji su dodatni toolbox-i instalirani. Korisnik moe dodati bilo koji od tih blokova u svoju simulacijsku shemu po naelu "DragnDrop", te dodatno postaviti parametre dodanog bloka dvostrukim klikom na njega. Na slici 2.4 prikazani su najee koriteni blokovi, a njihov kratak opis dan je u nastavku. Bus Creator - Blok za grupiranje vie signala u jednu sabirnicu; Bus Selector - Integracija ulaznog signala y(t) =
t 0

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

2.2 Primjeri koritenja Simulinka za simulaciju ponaanja sustava


Primjer 2.1. (Matematiko njihalo) Potrebno je simulirati ponaanje matematikog njihala prikazano na slici 2.5 pri emu su dimenzije mase m zanemarive.

m
Slika 2.5: Matematiko njihalo

Matematiki opis sustava. diferencijalnom jednadbom:

Iz zike je poznato da je gibanje mase m odreeno sljedeom J + m g r sin() = 0 (2.1)

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

Slika 2.6: Prvi korak kod izgradnje simulacijske sheme

1 s Integrator

1 s Integrator1

Scope

Gain1 g/r sin Trigonometric Function

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)

odnosno, ukoliko preemo na koliinu naboja i(t) = u(t) = R

dq , dt

slijedi: (2.5)

dq d2 q 1 + L 2 + q(t) dt dt C

2 Simulink

12

Slika 2.8: Rezultati simulacije matematikog njihala uz r = 1

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

Slika 2.11: Parametri bloka Step


Serijski RLC krug 15 10 Napon u (t)
c

5 0 5

0.005

0.01

0.015

0.02

0.025

0.03

0.035

0.04

0.3 0.2 Struja i(t) 0.1 0 0.1 0.2

0.005

0.01

0.015

0.02 Vrijeme t[s]

0.025

0.03

0.035

0.04

Slika 2.12: Struja i napon na kondenzatoru

3 Napredne tehnike koritenja Simulinka


U prethodnom je poglavlju opisano osnovno koritenje Simulinka i prikazani su simulacijski postupci dvaju jednostavnih primjera. Meutim, ako se treba simulirati sloene dinamike sustave onda se trebaju koristiti napredne tehnike koje Simulink prua. U nastavku se najprije opisuje razlaganje sloenih sustava na podsustave, a zatim rjeavanje problema algebarskih petlji, prolaska signala kroz nulu te simulacija tzv. krutih dinamikih sustava. Na kraju se daju preporuke za odabir numerikog postupka rjeavanja diferencijalnih jednadbi te mogunosti upravljanja simulacijom iz Matlabovog komandnog prozora.

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

3 Napredne tehnike koritenja Simulinka

16

Slika 3.1: Stvaranje podsustava - korak 1

Out1 In1

i To Workspace1

Step

Out2

uc To Workspace2

RLC

Slika 3.2: Stvaranje podsustava - korak 2

In1

Out1

In1

Out1

In1

Out1

Enabled Subsystem

Triggered Subsystem

Enabled and Triggered Subsystem

Slika 3.3: Podsustavi s uvjetnim izvravanjem

3.1.1 Maskiranje podsustava


Nakon to korisnik stvori podsustav eljene funkcionalnosti mogue je dodatno ograniiti njegove promjene samog podsustava na nain da se stvori maska pomou koje je mogue mijenjati samo tono odreene parametre podsustava. Postojei se podsustav maskira na nain da se najprije oznai, a zatim se odabere opcija Edit/Mask Subsystem, nakon ega se otvara prozor za deniciju maske. Pod tabom Parameters deniraju se parametri koji unose preko maske (slika 3.4). Nakon deniranja maske, dvostrukim klikom na podsustav otvara se maska za unos parametara

3 Napredne tehnike koritenja Simulinka

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.

3.2 Algebarske petlje


Problem algebarskih petlji moe se pojaviti u sluaju koritenja blokova koji imaju svojstvo izravnog prosljeivanja signala bez kanjenja. Primjerice takvi su blokovi Gain, Sum Transfer Fcn uz jednak stupanj polinoma u brojniku i nazivniku. Ako postoje petlje (povratne veze) u simulink blokovskoj shemi koje sadre samo elemente sa svojstvom izravnog prosljeivanja signala, pojavljuje se problem redoslijeda prorauna signala u toj petlji.

3 Napredne tehnike koritenja Simulinka

18

Slika 3.5: Maskiranje podsustava - deniranje ikone bloka

Ic Uul Step RLC krug Uc

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

3 Napredne tehnike koritenja Simulinka

19

Slika 3.7: Primjer maske bloka

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

3 Napredne tehnike koritenja Simulinka

20

sadri algebarsku petlju: y=5 1 u y2 4 (3.2)

11 Constant

1/4 Gain1

1/5 Gain Scope

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:

3 Napredne tehnike koritenja Simulinka

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;

3 Napredne tehnike koritenja Simulinka

22

3. Dodavanje memorijskog lana(Memory) u petlju (uvjetno primjenjiv).

3.3 Detekcija prolaska kroz nulu


Prolazak stanja kroz nulu esto je vezan uz pojavu diskontinuiteta u stanjima sustava, te je u nekim sluajevima od iznimne vanosti upravo odrediti trenutak kada se taj prolazak dogaa. Tipian primjer takve pojave je simulacija gibanja kugle na biljarskom stolu. Kod udara kugle o rub stola dolazi do pojave diskontinuiteta u brzini kugle, tj. kugla naglo mijenja smjer gibanja. Oito je da u sluaju koritenja rjeavaa s konstantnim korakom nema jamstva da e biti pogoen upravo trenutak kada dolazi do pojave diskontinuiteta. Ako se koriste rjeavai s promjenjivim korakom tada e zbog pojave diskontinuiteta doi do poveanja lokalne pogreke pa e se vremenski korak smanjivati kako bi se zadovoljile zadane tolerancije na pogreku to e rezultirati odreenim produljenjem trajanja simulacije. No ak i u ovom sluaju nema jamstva da e se pogoditi upravo trenutak pojave diskontinuiteta. Iz toga razloga Simulink koristi posebnu tehniku odreivanja tonog trenutka prolaska stanja sustava kroz nulu (eng. Zero Crossing Detection). Tako pojedini blokovi unutar Simulink biblioteke blokova imaju dodatni parametar za odabir detekcije prolaza kroz nulu (parametar Zero Crossing Detection). Blokovi koji imaju tu mogunost su: Abs, Backlash, Dead Zone, From Workspace, Hit Crossing, If, Integrator, MinMax, Relay, Relational Operator, Saturation, Sign, Signal Builder, Subsystem, Step, Switch, Switch Case. Ako se odabere opcija Zero Crossing Detection za neke od tih blokova Simulink e na kraju svakog simulacijskog koraka provjeravati je li dolo do pojave prolaza kroz nulu za njihove signale. Kada se detektira promjena predznaka nekog od signala koji se prati izraunat e se toni trenutak u kojem je dolo do prolaza kroz nulu, te e se nakon toga izraunati vrijednosti svih stanja i signala u tom trenutku.

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:

3 Napredne tehnike koritenja Simulinka

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)

3 Napredne tehnike koritenja Simulinka

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.15: Shema simulacije udara loptice o podlogu

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-

3 Napredne tehnike koritenja Simulinka

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.

3 Napredne tehnike koritenja Simulinka

26

25 Visina h[m] 20 15 10 5 0 0 2 4 6

Uz detekciju prolaska kroz nulu

10 Vrijeme t[s]

12

14

16

18

20

25 20 Visina h[m] 15 10 5 0 0 2 4 6

Bez detekcije prolaska kroz nulu

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

3.4 Upravljanje simulacijom iz Matlabovog komandnog prozora


Unutar Matlaba implementiran je skup funkcija koje omoguuju upravljanje simulacijom iz Matlabovog komandnog prozora, te jednako tako i modikaciju, pa ak i izgradnju samog Simulink modela. Te funkcije omoguuju da se postavljanje parametara simulacije, pokretanje simulacije te obrada samih rezultata simulacije grupiraju u m-skriptu ili m-funkciju. U nastavku se navode najvanije funkcije koje su korisniku na raspolaganju. sim(model,TIMESPAN,OPTIONS,UT); Ova funkcija pokree simulaciju modela spremljenog pod imenom model. Parametri funkcije TIMESPAN, OPTIONS, UT su opcijski i pomou njih moemo modicirati parametre simulacije. Ako se funkcija pozove bez ovih opcijskih parametara tada se simulacija izvodi uz parametre uz koje je model spremljen. set_param(OBJ,PARAMETER1,VALUE1,PARAMETER2,VALUE2,...) Funkcija set_param postavlja parametre PARAMETER1,PARAMETER2,..., objekta OBJ na vrijednosti VALUE1, VALUE2, ...,. Objekt iji se parametri mijenjaju denira se u obliku model/blok. get_param(OBJ,PARAMETER) Ova funkcija vraa vrijednost parametra PARAMETER objekta OBJ. add_block(SRC,DEST) Ova funkcija kopira blok ija je staza SRC u novi blok sa stazom DEST.

3 Napredne tehnike koritenja Simulinka

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

RM S{uAC } uDC uAC (i) N

(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)

3 Napredne tehnike koritenja Simulinka

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

f(u) Signal Generator Fcn

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);

3 Napredne tehnike koritenja Simulinka

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).

3 Napredne tehnike koritenja Simulinka

30

0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 7 10

Faktor valovitosti

10 10 Kapacitet kondenzatora C [F]

10

Slika 3.23: Ovisnost faktora valovitosti o iznosi kapaciteta kondenzatora

3.5 Simulacija krutih dinamikih sustava


Krutim dinamikim sustavima (eng. sti systems) nazivaju se sustavi koji posjeduju vie po brzini jako razliitih dinamika. Ako se radi o linearnom sustavu: X =X (3.17)

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 =

3 Napredne tehnike koritenja Simulinka

31

y0*exp(-lambda*t) >> soln=subs(sol,{y0,lambda},[5,100]) soln = 5*exp(-100*t)

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)

Predstavlja li dobiveni izraz dobru aproksimaciju rjeenja polazne diferencijalne jednadbe?

3 Napredne tehnike koritenja Simulinka


10 8 6 4

32

Stvarno rjeenje y=5*exp(-100t) h=1e-3 h=21e-3 h=20e-3 h=5e-3 h=15e-3

y (t ), y (t )

2 0 -2 -4 -6 -8 -10 0 0.05 0.1 0.15

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)

pa prema tome vrijedi: yn = y0 (1 h)n y0 enh = y0 etn (3.25)

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.

3 Napredne tehnike koritenja Simulinka

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)

3 Napredne tehnike koritenja Simulinka

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

= i(t) slijedi: (3.32)

d2 q(t) dq(t) q(t) +R + , q(0) = C uc0 , 2 dt dt C

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

3 Napredne tehnike koritenja Simulinka

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

Slika 3.28: Simulacija shema Van der Polova oscilatora

3.6 Numeriki postupci unutar Matlab/Simulink programskog sustava


U ovom potpoglavlju je dan kratak pregled numerikih postupaka za rjeavanje diferencijalnih jednadbi dostupnih unutar programskog sustava Matlab/Simulink, kao i odreeni

3 Napredne tehnike koritenja Simulinka

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.

3.6.1 Numeriki postupci s promjenjivim vremenskim korakom


ode45(Dormand-Prince). Ovaj je numeriki postupak zasnovan na kombinaciji RungeKutta metoda etvrtog i petog reda pri emu se za proraun novog stanja koristi RK5 metoda, dok se lokalna pogreka procjenjuje na temelju RK4 metode. Procijenjena lokalna pogreka koristi se za adaptaciju vremenskog koraka h. Ovaj numeriki postupak je defaultni postupak u novijim verzijama Simulinka. ode23(Bogacki-Shampine). Slino kao ode45 i ovaj postupak koristi kombinaciju RungeKutta metoda drugog i treeg reda. Pritom se za proraun novog stanja koristi RK3 metoda, dok se lokalna pogreka procjenjuje na temelju RK2 metode. Pokazuje se da je ovaj postupak ekasniji od ode45 metode kod grubljih tolerancija. ode113(Adams). Ovaj postupak koristi kombinaciju dviju linearnih viekoranih metoda (Adams-Bashforth eksplicitne metode i Adams-Moulton implicitne metode) u prediktorkorektor formi. Pritom se najprije pomou eksplicitne AB metode radi predikcija novog stanja sustava da bi se nakon toga radila korekcija tog novog stanja koristei implicitnu AM metodu. Unutar Matlab/Simulinka implementirana je verzija ovog postupka uz promjenjivi red samih metoda pri emu se red metode moe mijenjati od reda 1 do reda 13. Pri strogim tolerancijama ovaj postupak je esto ekasniji od defaultnog ode45 postupka.

3 Napredne tehnike koritenja Simulinka

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.

3.6.2 Numeriki postupci s konstantnim korakom


ode1(Euler). Eksplicitni jednokorani postupak prvog reda temeljen na izrazu za unaprijednu Eulerovu integraciju. Postupak se odlikuje znaajnom znaajnom pogrekom te daje dobre rezultate samo uz malen vremenski korak h. ode2(Heun). Eksplicitni, jednokorani postupak drugog reda koji predstavlja poboljanje osnovne Eulerove metode u smislu da se nagib stanja x(t) na intervalu [tn , tn +h] procjenjuje kao srednja vrijednost nagiba u trenutku tn i procjene nagiba u trenutku tn + h. Time se postie bolja tonost nego kod ode1(Euler) postupka. ode3(Bogacki-Shampine). Verzija ode23(Bogacki-Shampine) postupka koja koristi konstantan vremenski korak. Zasnovana je na Runge-Kutta metodi treeg reda. ode4(Runge-Kutta). Eksplicitni, jednokorani postupak zasnovan na Runge-Kutta metodi etvrtog reda, koji predstavlja najpoznatiju i najee koritenu od Runge-Kutta metoda. ode5(Dormand-Prince). Verzija ode45(Dormand-Prince) postupka koja koristi konstantan vremenski korak. Zasnovana je na Runge-Kutta metodi petog reda. ode14x(Extrapolation). Postupak predstavlja implicitnu Runge-Kutta metodu koja koristi kombinaciju iterativnog Newton-Raphsonovog algoritma za rjeavanje implicitnih algebarskih jednadbi i ekstrapolacije. Pritom korisnik moe denirati maksimalni broj iteracije Newton-Raphsonovog algoritma i red ekstrapolacije to izravno utjee na tonost i sloenost numerikog postupka. Postupak se prije svega koristi za simulaciju krutih dinamikih sustava.

3 Napredne tehnike koritenja Simulinka

38

3.6.3 Odabir numerikog postupka


Kod simulacije sloenih dinamikih sustava vrlo je teko unaprijed denirati prikladan simulacijski postupak kao i parametre samog postupka. Zbog toga je esto nuno sam postupak i njegove parametre odrediti kroz vie koraka metodom pokuaja-i-pogreke. Tako se prilikom simulacije sloenih dinamikih sustava preporua prvo pokuati s nekim od postupaka s promjenjivim korakom uz ukljuenu detekciju prolaska kroz nulu. Pritom je defaultni ode45(Dormand-Prince) postupak dobar izbor. Ako su rezultati simulacije oekivani moe nakon toga pokuati s nekim od manje sloenih postupaka kako bi simulacija krae trajala. Ako je s druge strane simulacija koritenjem ode45 postupka prespora ili se ne slae s oekivanim rezultatima, tada je mogue da se radi o krutom dinamikom sustavu pa je u tom sluaju preporuka koristiti neki od postupaka namijenjen za rjeavanje krutih sustava poput ode15s postupka. Kao sljedei korak trebalo bi provjeriti jesu li odabrane tolerancije pogreke zadovoljavajue. U tom smislu je potrebno nakon provoenja simulacije uz defaultne postavke za tolerancije RTOL=1e-3, simulirati sustav uz stroe tolerancije npr. RTOL=1e-6. Ukoliko su rezultati slini tada je prvobitna tolerancija zadovoljavajua. Ako se pak odzivi znatno razlikuje tada je potrebno ponoviti cijeli postupak uz stroe tolerancije. Ako se koriste postupci s konstantnim vremenskim korakom tada je potrebno iterativno kroz nekoliko simulacija odrediti prikladan vremenski korak h. To se radi na nain da se provodi vie simulacija svaki puta s korak umanjenim za odreeni faktor (npr 10) i zaustavlja se postupak kada daljnje smanjenje koraka nema bitnijeg efekta na tonost simulacije. U sluaju da se treba simulirati kruti dinamiki sustav uz konstantan vremenski korak h tada se preporua koristiti ode14x implicitni postupak zbog mogunosti koritenja veih vremenskih koraka kod simulacije takvih sustava. Postupci s konstantnim korakom ne omoguuje koritenje detekcije prolaska kroz nulu nego je u sluaju takvih sustava potrebno smanjiti vremenski korak kako bi se smanjila pogreka. Ako simulacijska shema sadri elemente s prekapanjem koji mogu prouzroiti pojavu diskontinuiteta i efekta poznatog pod imenom "chattering" potrebno je razmotriti mogunost uvoenja histereznih elemenata kako bi se smanjio utjecaj prekapanja.

You might also like