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 3
1.1 Kako radi Simulink? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Simulink 6
2.1 Osnovne akcije unutar Simulinka . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1 Pokretanje Simulinka . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.2 Stvaranje novog Simulink modela . . . . . . . . . . . . . . . . . . . . 6
2.1.3 Otvaranje postojeeg Simulink modela . . . . . . . . . . . . . . . . . 6
2.1.4 Postavljanje osnovnih parametara simulacije . . . . . . . . . . . . . . 7
2.1.5 Simulink biblioteka blokova . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Primjeri koritenja Simulinka za simulaciju ponaanja sustava . . . . . . . . 10
3 Napredne tehnike koritenja Simulinka 15
3.1 Podsustavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.1 Maskiranje podsustava . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Algebarske petlje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 Detekcija prolaska kroz nulu . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4 Upravljanje simulacijom iz Matlabovog komandnog prozora . . . . . . . . . . 26
3.5 Simulacija krutih dinamikih sustava . . . . . . . . . . . . . . . . . . . . . . 30
3.6 Numeriki postupci unutar Matlab/Simulink programskog sustava . . . . . . 35
3.6.1 Numeriki postupci s promjenjivim vremenskim korakom . . . . . . . 36
3.6.2 Numeriki postupci s konstantnim korakom . . . . . . . . . . . . . . 37
3.6.3 Odabir numerikog postupka . . . . . . . . . . . . . . . . . . . . . . . 38
2
1
Simulacija dinamikih sustava
Ponaanje dinamikih sustava opisano je skupom diferencijalnih jednadbi koje su open-
ito 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 uzorko-
vanja nije eksplicitno navedeno.
3
1 Simulacija dinamikih sustava 4
Prevoenje
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 jed-
nadbi. 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 5
Rjeavai s promjenjivim korakom. Ovi rjeavai adaptiraju/mijenjaju korak diskretizacije
tijekom simulacije kako bi se zadovoljili zahtjevi koje korisnik postavlja na apsolutni i rela-
tivni 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:
x
n+1
= x
n
+hf(t
n
, x
n
), (1.1)
a za implicitni unazadna :
x
n+1
= x
n
+hf(t
n+1
, x
n+1
) (1.2)
Oito je da se proraun budueg stanja kod eksplicitnih postupaka moe provesti u jed-
nom koraku, dok je kod implicitnih postupaka proraun potrebno obavljati iterativno u vie
koraka.
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.
6
2 Simulink 7
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) vre-
mena simulacije. U dijelu "Solver options" odreuju se parametri numerikog postupka.
Pritom se moe odabrati konstantni odnosno promjenjivi vremenski korak kao i sami numer-
iki 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 8
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 deni-
ranim 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 9
Slika 2.4: Najee koriteni blokovi
Demux - Demultipleksor
Discrete-Time Integrator - Diskretni integrator koristei neku od metoda inte-
gracije (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
t
1
u(t)dt +IC(t
1
));
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 nji-
hala prikazano na slici 2.5 pri emu su dimenzije mase m zanemarive.

r
m
Slika 2.5: Matematiko njihalo
Matematiki opis sustava. Iz zike je poznato da je gibanje mase m odreeno sljedeom
diferencijalnom jednadbom:
J

+m g r sin() = 0 (2.1)
Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J =
m r
2
, te slijedi:

+
g
r
sin() = 0 (2.2)
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
r
sin() (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
Integrator1
1
s
Integrator
Slika 2.6: Prvi korak kod izgradnje simulacijske sheme

sin
Trigonometric
Function
Scope
1
s
Integrator1
1
s
Integrator
g/r
Gain1
Slika 2.7: Simulacija shema njihala
Postavljanje parametara i pokretanje simulacije U ovom primjeri zadrani su ini-
cijalni (defaultni) parametri simulacije (trajanje simulacije, tip rjeavaa, tonost simu-
lacije,...). 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 Vladanje ovog kruga je opisano je sljedeom diferencijalnom
jednadbom drugog reda:
u(t) = R i(t) + L
di
dt
+

i(t)dt (2.4)
odnosno, ukoliko preemo na koliinu naboja i(t) =
dq
dt
, slijedi:
u(t) = R
dq
dt
+L
d
2
q
dt
2
+
1
C
q(t) (2.5)
2 Simulink 12
Slika 2.8: Rezultati simulacije matematikog njihala uz r = 1
10V U =
20 R =
0.01H L =
10 F C =
+

0
5V
C
U =
1 2
0.02s t =
Slika 2.9: RLC krug
Izgradnja simulacijske sheme Najprije je potrebno diferencijalnu jednadbu (2.5) za-
pisati u obliku prikladnom za izgradnju simulacijske sheme:
d
2
q
dt
2
=
1
L

u(t) R
dq
dt

1
C
q(t)

(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
q(t) q(t)=i(t) q(t)
uc(t)
To Workspace2
uc
To Workspace1
i
Step
Integrator1
1
s
Integrator
1
s
Gain2
1/L
Gain1
1/C
Gain
R
Slika 2.10: Simulacijska shema RLC kruga
varijable Matlabovog radnog prostora R,L,C i u
C0
. 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 q
0
= C u
0
. 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
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
5
0
5
10
15
N
a
p
o
n


u
c
(
t
)
Serijski RLC krug
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
0.2
0.1
0
0.1
0.2
0.3
Vrijeme t[s]
S
t
r
u
j
a

i
(
t
)
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 al-
gebarskih 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 podsus-
tava. 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 od-
abir 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 sig-
nala (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
To Workspace2
uc
To Workspace1
i
Step
RLC
In1
Out1
Out2
Slika 3.2: Stvaranje podsustava - korak 2
Triggered
Subsystem
In1 Out1
Enabled and
Triggered Subsystem
In1 Out1
Enabled
Subsystem
In1 Out1
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 svo-
jstvo 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
To Workspace2
uc
To Workspace1
i
Step
RLC
RLC krug
Ic
Uc
Uul
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
3
u, odnosno analitiko rjeavanje algebarske petlje.
3 Napredne tehnike koritenja Simulinka 19
Slika 3.7: Primjer maske bloka
Scope
2
Gain
1
Constant
Slika 3.8: Primjer jednostavne algebarske petlje
Prethodni jednostavni primjer, osim ilustracije problema algebarskih petlji, sugerira i na-
jekasniji nain njegova rjeavanja, tj. eliminaciju algebarskih petlji njihovim analitikim
rjeavanjem. Meutim, esto je zbog strukture algebarske petlje (npr. prisutnosti nelin-
earnih funkcija u petlji) teko ili nemogue nai analitiko rjeenje tog problema. Zbog toga
Simulink u sluaju postojanja algebarskih petlji u svakom koraku pokree poseban postu-
pak 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
4
u y
2

(3.2)
Scope
u
2
Math
Function
1/4
Gain1
1/5
Gain
11
Constant
Slika 3.9: Primjer neto sloenije algebarske petlje
Vidljivo je da postoje dva rjeenje algebarske jednadbe i to:
y
1,2
=
5

25 + u
2
(3.3)
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).
Scope
u
2
Math
Function
[5]
IC
1/4
Gain1
1/5
Gain
11
Constant
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
0 1 2 3 4 5 6 7 8 9 10
6
5
4
3
2
1
0
1
2
3
Vrijeme t[s]
y
(
t
)
y(0)=2
y(0)= 5
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 (para-
metar 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 nji-
hove 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 glob-
alnih postavki simulacije vezanih za detekciju prolaska kroz nulu pomou opcije Simulation/
Configuration Parameters (slika 3.13). Pritom je mogue odabrati jednu od sljedeih op-
cija:
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 v
0
= 10m/s, kako je prikazano na slici 3.14.
Kod udara u podlogu loptica gubi 20% koliine gibanja koju je imala neposredno prije udara.
[ ]
0
15 / v m s =
[ ]
0
10 h m =
Slika 3.14: Elastini udar loptice o podlogu
Uz pretpostavku da loptica ima poetnu brzinu v
0
moemo zapisati:
m v(t) = mg (3.4)
odnosno
v(t) = g, uz IC = v
0
. (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 v
0
= 0.8 v, koja predstavlja poetnu vrijednost za simulaciju do
sljedeeg udara loptice o podlogu.
3 Napredne tehnike koritenja Simulinka 24
To Workspace
polozaj
Polozaj
1
s
x
o
Pocetni polozaj
[10]
Pocetna brzina
[15]
Ground
Gravitacija
9.81
Elasticnost
0.8
<= 0
Brzina
1
s
x
o
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 pode-
siti 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 izbje-
gava 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:
t
1
= 3.6211s t
2
= 6.9684 t
3
= 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:
t
n+1
= 0.8t
n
(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
0 2 4 6 8 10 12 14 16 18 20
0
5
10
15
20
25
Vrijeme t[s]
V
i
s
i
n
a

h
[
m
]















Uz detekciju prolaska kroz nulu
0 2 4 6 8 10 12 14 16 18 20
0
5
10
15
20
25
Vrijeme t[]s
V
i
s
i
n
a

h
[
m
]
Bez detekcije prolaska kroz nulu
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, pokre-
tanje 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 ob-
jekta 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:
i
d
= I
s

e
u
d
U
T
1

(3.8)
gdje je u
d
-napon na diodi, i
d
-struja kroz diodu, U
t
= 25.2mV -termalni napon diode i I
s
=
1.34pA-struja zasienja diode. Pritom otpor R iznosi R = 10k, dok je kapacitet kondenza-
tora C promjenjiv.
s
u
R C
i
u
Slika 3.19: Shema poluvalnog ispravljaa sa stabilizatorom napona
Potrebno je graki prikazati ovisnost faktora valovitosti (eng. ripple factor) izlaznog
napona u
i
o iznosi kapaciteta kondenzatora C u intervalu C (1e 7, 1e 5)F.
Faktor valovitosti deniran je kao:
=
RMS{u
AC
}
u
DC
(3.9)
gdje je:
RMS{u
AC
} =

N
i=1
u
AC
(i)
N
(3.10)
Ponaanje ispravljaa prikazanog na slici 3.19 opisano je sljedeim izrazima:
u
s
(s) = u
d
(t) +u
i
, (3.11)
i
d
(t) = f(u
d
(t)), (3.12)
i
d
(t) =
u
i
(t)
R
+C
du
i
dt
. (3.13)
3 Napredne tehnike koritenja Simulinka 28
Ove se jednadbe se zapisuju u obliku prikladnom za izgradnju simulacijske sheme:
u
d
(s) = u
s
(t) u
i
(3.14)
i
d
(t) = f(u
d
(t)) (3.15)
du
i
dt
=
1
C

i
d
(t)
u
i
(t)
R

(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
t
To Workspace1
ui
To Workspace Signal
Generator
1
s
Integrator
1/R
Gain1
1/C
Gain
f(u)
Fcn
Clock
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 vri-
jednosti 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
0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.2
100
50
0
50
100
Vrijeme t[s]
N
a
p
o
n
i

u
s

i

u
i
Slika 3.22: Usporedni prikaz ulaznog napona u
s
i napona na izlazu ispravljaa u
i
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 logaritam-
skom mjerilu (slika 3.23).
3 Napredne tehnike koritenja Simulinka 30
10
7
10
6
10
5
10
4
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
Kapacitet kondenzatora C [F]
F
a
k
t
o
r

v
a
l
o
v
i
t
o
s
t
i
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 sta-
bilnost 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 jed-
nadbom:
y(t) +y(t) = 0 y(0) = y
0
, (3.18)
pri emu je = 100 i y
0
= 5. Potrebno je usporediti rezultate dobivene ode1(Euler) numer-
ikim postupkom uz razliite iznose vremenskog koraka h sa stvarnim rjeenjem diferencijalne
jednadbe (3.18). Analitiko rjeenje ove diferencijalne jednadbe je y(t) = y
0
e
t
, 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)
To Workspace
y
Integrator
1
s
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 = 1e3, 5e3, 15e3, 20e3, 21e3) i usporedni
rezultati tih simulacija su prikazani na slici 3.25.
Prikazani rezultati ukazuju da se pogreka numerikog postupka poveava s iznosom vre-
menskog 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. (3.19)
Primjenom izraza za Eulerovu unaprijednu integraciju na ovaj izraz slijedi:
y
n+1
= y
n
+hf(t
n
, y
n
) = y
n
y
n
(3.20)
y
n+1
= (1 h)y
n
(3.21)
y
n
= (1 h)
n
y
0
(3.22)
Predstavlja li dobiveni izraz dobru aproksimaciju rjeenja polazne diferencijalne jednadbe?
3 Napredne tehnike koritenja Simulinka 32
0 0.05 0.1 0.15
-10
-8
-6
-4
-2
0
2
4
6
8
10
Stvarno rjeenje y=5*exp(-100t)
h=1e-3
h=5e-3
h=15e-3
h=20e-3
h=21e-3
[ ]
t s

(
)
,
(
)
y
t
y
t
Slika 3.25: Rezultati simulacije sustava opisanog dif. jednadbom y

(t) + 100y(t) = 0 ko-


ritenjem Eulerovog postupka uz razliite iznose vremenskog koraka h
Da bi se odgovorilo na to pitanje potrebno je zapisati dobiveni rezultat u neto drukijem
obliku:
y
n
= (1 h)
nh
h
y
0
(3.23)
Ako vrijedi h tj. h 0 tada :
lim
h0
(1 h)
1
h
= e (3.24)
pa prema tome vrijedi:
y
n
= y
0
(1 h)
n
y
0
e
nh
= y
0
e
t
n
(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:
h <
2

(3.27)
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 un-
aprijednu, primijenimo formulu za unazadnu Eulerovu integraciju:
y
n+1
= y
n
+hf(t
n+1
, y
n+1
) = y
n
y
n+1
(3.28)
y
n+1
=
y
n
1 + h
(3.29)
y
n
=
y
0
(1 + h)
n
(3.30)
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 pret-
postavimo da rjeenje diferencijalne jednadbe ima vie komponenata. Radi jednostavnosti
neka se radi o zbroju dvije eksponencijalne funkcije tj. y(t) = C
1
e

1
t
+ C
2
e

2
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 C
1
e

1
t
. S druge strane sporija kom-
ponenta C
2
e

2
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.
R
C
L
0 C
u
+

( ) i t
Slika 3.26: RLC strujni krug
Ponaanje RLC kruga opisano je sljedeim izrazom:
L
di(t)
dt
+Ri(t) +
1
C

t
0
i(t)dt = 0 (3.31)
3 Napredne tehnike koritenja Simulinka 34
Tablica 3.1: Usporedba trajanja simulacije i broj toaka u kojima se izraunava stanje kru-
tog 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:
L
d
2
q(t)
dt
2
+R
dq(t)
dt
+
q(t)
C
, q(0) = C u
c0
, (3.32)
gdje u
C0
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 u
c0
= 12V .
q(t) q(t)=i(t) q(t)
uc(t)
To Workspace1
t
To Workspace
i
Integrator1
1
s
Integrator
1
s
Gain2
1/L
Gain1
1/C
Gain
R
Clock
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 napravl-
jena 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 sus-
tava, 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 ko-
raka 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 oscila-
tora 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) y(t) y(t)
y
u
2
1
s
1
s
2*mu
1
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 diferenci-
jalnih jednadbi dostupnih unutar programskog sustava Matlab/Simulink, kao i odreeni
3 Napredne tehnike koritenja Simulinka 36
0 1000 2000 3000 4000 5000
2.5
2
1.5
1
0.5
0
0.5
1
1.5
2
2.5
Vrijeme t[s]
y
(
t
)
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 Runge-
Kutta 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 Runge-
Kutta 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 prediktor-
korektor 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) za-
snovan 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 ekas-
nijim 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 unapri-
jednu 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 [t
n
, t
n
+h] procjenjuje
kao srednja vrijednost nagiba u trenutku t
n
i procjene nagiba u trenutku t
n
+ h. Time se
postie bolja tonost nego kod ode1(Euler) postupka.
ode3(Bogacki-Shampine). Verzija ode23(Bogacki-Shampine) postupka koja koristi kon-
stantan 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 kon-
stantan vremenski korak. Zasnovana je na Runge-Kutta metodi petog reda.
ode14x(Extrapolation). Postupak predstavlja implicitnu Runge-Kutta metodu koja ko-
risti kombinaciju iterativnog Newton-Raphsonovog algoritma za rjeavanje implicitnih alge-
barskih 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 sus-
tava.
3 Napredne tehnike koritenja Simulinka 38
3.6.3 Odabir numerikog postupka
Kod simulacije sloenih dinamikih sustava vrlo je teko unaprijed denirati prikladan sim-
ulacijski 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 pri-
likom 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 zadovoljava-
jue. U tom smislu je potrebno nakon provoenja simulacije uz defaultne postavke za toleran-
cije 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 ko-
rak 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