Top Banner
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA LABORATORIJ I VJEŠTINE - MATLAB Uvod u SIMULINK Zagreb, 2006
38

LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

Jul 17, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

SVEUČILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

LABORATORIJ I VJEŠTINE - MATLAB

Uvod u SIMULINK

Zagreb, 2006

Page 2: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

Sadržaj

1 Simulacija dinamičkih sustava 31.1 Kako radi Simulink? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Simulink 62.1 Osnovne akcije unutar Simulinka . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.1 Pokretanje Simulinka . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.2 Stvaranje novog Simulink modela . . . . . . . . . . . . . . . . . . . . 62.1.3 Otvaranje postojećeg Simulink modela . . . . . . . . . . . . . . . . . 62.1.4 Postavljanje osnovnih parametara simulacije . . . . . . . . . . . . . . 72.1.5 Simulink biblioteka blokova . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Primjeri korištenja Simulinka za simulaciju ponašanja sustava . . . . . . . . 10

3 Napredne tehnike korištenja Simulinka 153.1 Podsustavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1.1 Maskiranje podsustava . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2 Algebarske petlje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.3 Detekcija prolaska kroz nulu . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.4 Upravljanje simulacijom iz Matlabovog komandnog prozora . . . . . . . . . . 263.5 Simulacija krutih dinamičkih sustava . . . . . . . . . . . . . . . . . . . . . . 303.6 Numerički postupci unutar Matlab/Simulink programskog sustava . . . . . . 35

3.6.1 Numerički postupci s promjenjivim vremenskim korakom . . . . . . . 363.6.2 Numerički postupci s konstantnim korakom . . . . . . . . . . . . . . 373.6.3 Odabir numeričkog postupka . . . . . . . . . . . . . . . . . . . . . . . 38

2

Page 3: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

1

Simulacija dinamičkih sustava

Ponašanje dinamičkih sustava opisano je skupom diferencijalnih jednadžbi koje su općen-ito nelinearne. U tim su diferencijalnim jednadžbama sadržane zakonitosti koje vrijedeza sustav. Osnovni je problem koji se pojavljuje kod analize takvih sustava nepostojanjeopće metodologije za rješavanje nelinearnih diferencijalnih jednadžbi. Kao logično rješenjeproblema analize ponašanja ovakvih sustava nameće se provođenje simulacije sustava nadigitalnom računalu.

SIMULINK predstavlja grafički alat koji koristi matematičku ljusku Matlaba kako bi seprovela simulacija sustava. Izgradnja simulacijskog modela unutar Simulinka obavlja se najednostavan način korištenjem biblioteke gotovih grafičkih blokova. Osim postojećih blokovakorisnik može napisati i vlastite blokove koristeći bilo Matlabove m-funkcije ili funkcijenapisane u programskom jeziku C/C++ (S-funkcije).

Simulacijska shema u Simulinku sastoji se od blokova i linija tj. signala kojima se povezujupojedini blokovi i time realiziraju jednadžbe koje opisuju sustav.

Simulacija unutar Simulinka može se podijeliti tri faze (slika 1.1) i to: (1) prevođenjemodela, (2)povezivanje modela i (3) simulacija.

Prevođenje modela (eng. model compilation). U ovoj fazi model se prevodi u izvršnioblik, pri čemu se obavljaju sljedeće operacije:

• izračunavaju se parametri blokova,

• određuju 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 sadrže,

• formira se lista blokova koja se u fazi povezivanja modela koristi kao polazište zaodređivanje poretka izvršavanja blokova,

• određuju se vremena uzorkovanja (eng. sample time) blokova za koje vrijeme uzorko-vanja nije eksplicitno navedeno.

3

Page 4: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

1 Simulacija dinamičkih sustava 4

Prevođenje modela

Povezivanje

modela

Računanje 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 stvoreneu prethodnoj fazi, određuje se najefikasniji poredak izvršavanja blokova kako eventualno nebi došlo do pojave algebarskih petlji. Pritom se uzima u obzir i eventualna razina prioritetakoju korisnik može dodijeliti pojedinom bloku.

Simulacijska petlja. O ovoj fazi Simulink sukcesivno izračunava stanja i izlaze iz sustavau vremenskim trenucima koji mogu, ali i ne moraju biti ekvidistantni što ovisi o odabranomrješavaču diferencijalnih jednadžbi (eng. solver).

1.1 Kako radi Simulink?

Simulacija dinamičkog sustava se u Simulinku obavlja sukcesivnim računanjem stanja sustavašto obavljaju rješavači tj. posebni matematički programi za rješavanje diferencijalnih jed-nadžbi. Rješavači unutar Simulinka dijele se u dvije kategorije i to: rješavače s konstantnimkorakom i rješavače s promjenjivim korakom.

Rješavači s konstantnim korakom. Ovi rješavači računaju stanja sustava u pravilnimvremenskim intervalima. Trajanje simulacije i njezina točnost izravno ovise o izboru korakadiskretizacije. Što je taj korak manji simulacija je točnija, ali se produljuje njezino trajanje.

Page 5: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

1 Simulacija dinamičkih sustava 5

Rješavači s promjenjivim korakom. Ovi rješavači adaptiraju/mijenjaju korak diskretizacijetijekom simulacije kako bi se zadovoljili zahtjevi koje korisnik postavlja na apsolutni i rela-tivni iznos pogreške simulacije.

Osim ove podjele rješavači se mogu svrstati i prema prirodi sustava koje rješavaju i to na:

• kontinuirane rješavače koji rješavaju problem proračuna stanja kontinuiranih dinamičkihsustava, koristeći postupke numeričke integracije.

• diskretne rješavače, koji zbog prirode diskretnih sustava ne zahtijevaju provođenjenumeričke integracije, te su stoga znatno jednostavniji.

Spomenuti postupci numeričke integracije predstavljaju najveći problem koji kontinuiranirješavači trebaju riješiti. Obično se temelje na razvoju funkcije u Taylorov red, čime seunosi određena u pogreška u proračun stanja (ostatak beskonačnog Taylorovog reda). Kaorezultat ovog ovih postupaka diferencijalna se jednadžba nadomješta konačnom jednadžbomdiferencija.

Prema formi pripadne jednadžbe diferencija postupci numeričkog rješavanja diferencijalnihjednadžbi dijele se na eksplicitne i implicitne. Najjednostavniji primjer za eksplicitnipostupak je unaprijedna Eulerova metoda:

xn+1 = xn + hf(tn, xn), (1.1)

a za implicitni unazadna :xn+1 = xn + hf(tn+1, xn+1) (1.2)

Očito je da se proračun budućeg stanja kod eksplicitnih postupaka može provesti u jed-nom koraku, dok je kod implicitnih postupaka proračun potrebno obavljati iterativno u višekoraka.

Page 6: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

2

Simulink

2.1 Osnovne akcije unutar Simulinka

2.1.1 Pokretanje Simulinka

Simulink se pokreće izravno iz Matlaba izvršavanjem naredbe:»simulink;

ili klikom miša 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 pokreće se Simulink biblioteka blokova koja sadržiblokove 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 odgovarajuću ikonicu.

2.1.3 Otvaranje postojećeg Simulink modela

Otvaranje postojećeg Simulink modela može se obaviti na jedan od sljedećih načina:

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

Page 7: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

2 Simulink 7

Slika 2.2: Simulink biblioteka blokova

2.1.4 Postavljanje osnovnih parametara simulacije

Osnovne postavke simulacije postavljaju se odabirom opcije "Simulation/configuration".Trajanje simulacije zadaje se izborom početnog (start time) i završnog (stop time) vre-mena simulacije. U dijelu "Solver options" određuju se parametri numeričkog postupka.Pritom se može odabrati konstantni odnosno promjenjivi vremenski korak kao i sami numer-ički postupak koji će biti korišten za simulaciju sustava. U dijelu izbornika Output optionkorisnik može odabrati jednu od opcija:

• Refine output,

• Produce additional output,

• Produce specified output only.

Ovdje je bitno naglasiti da su navedene tri opcije dostupne samo ako je odabran neki odpostupaka s promjenjivim vremenskim korakom. Opcija Refine output omogućuje koris-

Page 8: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

2 Simulink 8

Slika 2.3: Postavljanje parametara simulacije

niku povećanje broja točaka u kojima se izračunava stanje sustava za faktor n, čime se dobijebolja rezlučivost stanja koje se izračunava. S druge strane opcija Dodatni izlazi (Produceadditional outputs) izračunava dodatno stanja sustava u vremenskim trenucima defini-ranim kao vektor [t1 t2 t3 ... tn]. Konačno odabirom opcije Produce specified outputonly stanja sustava se izračunavaju samo u trenucima definiranim vremenskim vektorom,slično kao u prethodnom slučaju.

2.1.5 Simulink biblioteka blokova

Po pokretanju Simulinka otvara se biblioteka blokova koji su korisniku na raspolaganju zaizgradnju simulacijske sheme. Ti su blokovi organizirani u skupine s obzirom na tip operacijekoje obavljaju. Osim osnovnih Simulink blokova, u biblioteci blokova također se nalaze idodatni blokovi, ovisno o tome koji su dodatni toolbox-i instalirani. Korisnik može dodatibilo koji od tih blokova u svoju simulacijsku shemu po načelu "Drag’n’Drop", te dodatnopostaviti parametre dodanog bloka dvostrukim klikom na njega.

Na slici 2.4 prikazani su najčešće korišteni blokovi, a njihov kratak opis dan je u nastavku.

• Bus Creator - Blok za grupiranje više signala u jednu sabirnicu;

• Bus Selector - Integracija ulaznog signala y(t) =∫ t

0u(t)dt

• Constant - Blok na svojem izlazu daje konstantnu vrijednost koja se definira kaoparametar bloka.

Page 9: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

2 Simulink 9

Slika 2.4: Najčešće korišteni blokovi

• Demux - Demultipleksor

• Discrete-Time Integrator - Diskretni integrator koristeći neku od metoda inte-gracije (unaprijedna Eulerova, unazadna Eulerova ili trapezna integracija).

• Gain - Blok pojačanja (y = K · u)• Sum - Sumator;

• In1 - Ulazni port (koristi se kod podsustava);

• Integrator - Blok obavlja operaciju integracije u kontinuiranom području (y(t) =∫ t

t1u(t)dt + IC(t1));

• Logical Operator - Blok obavlja odabranu logičku operaciju između ulaznih signala;

• Mux - Multipleksor;

• Product - Blok za množenje/dijeljenje ulaznih signala;

• Relational Operator - Blok provjerava odabranu relacija između ulaznih signala tena izlazu daje logičku vrijednost;

• Saturation - Blok nelinearne operacije zasićenja;

• Scope - Osciloskop (za praćenje razultata simulacije);

• Unit Delay - Blok jediničnog kašnjenja (y(kT ) = u((k − 1)T ));

• Switch - Blok propušta na izlaz signal doveden na prvi ulaz ukoliko je vrijednost nadrugom ulazu zadovoljava odabrani kriterij, a u suprotnom propušta na izlaz signaldoveden na treći ulaz;

• Subsystem - Podsustav.

Page 10: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

2 Simulink 10

2.2 Primjeri korištenja Simulinka za simulacijuponašanja sustava

Primjer 2.1. (Matematičko njihalo) Potrebno je simulirati ponašanje matematičkog nji-hala prikazano na slici 2.5 pri čemu su dimenzije mase m zanemarive.

θ r

m

Slika 2.5: Matematičko njihalo

Matematički opis sustava. Iz fizike je poznato da je gibanje mase m određeno sljedećomdiferencijalnom jednadžbom:

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

rsin(θ) = 0 (2.2)

Izgradnja simulacijske sheme. Prvi korak u izgradnji simulacijskog modela jest zapisdiferencijalne jednadžbe (2.2) u obliku da na lijevoj strani jednadžbe bude samo derivacijanajvećeg reda, a svi ostali članovi na desnoj strani jednadžbe, kako slijedi:

θ = −g

rsin(θ) (2.3)

Kod izgradnje simulacijske sheme najprije se pomoću blokova realizira lijeva strana jednadžbeza što su potrebna dva bloka integrator(slika 2.6). U korak se na temelju izraza s desnestrane jednadžbe (2.3) određuju blokovi potrebni za tvorbu signala koji se spaja na ulaz θ(slika 2.7). Početne vrijednosti stanja sustava općenito se postavljaju tako da se u pojedineintegratore u simulacijskoj shemi upišemo njihove početne vrijednosti. Tako u ovom primjeruu lijevi integrator upišemo 0 kao početnu vrijednost (početna brzina gibanja njihala) dok udesni integrator upišemo početnu vrijednost kuta θ0 = π/4.

Page 11: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

2 Simulink 11

θθ’θ’’1s

Integrator1

1s

Integrator

Slika 2.6: Prvi korak kod izgradnje simulacijske sheme

θθ’θ’’

sin

TrigonometricFunction

Scope

1s

Integrator1

1s

Integrator

−g/r

Gain1

Slika 2.7: Simulacija shema njihala

Postavljanje parametara i pokretanje simulacije U ovom primjeri zadržani su ini-cijalni (defaultni) parametri simulacije (trajanje simulacije, tip rješavača, točnost simu-lacije,...). Budući da su u simulacijskoj shemi korištene varijable g i r (gravitacija i duljinanjihala) potrebno je prije pokretanja simulacije postaviti njihove vrijednosti u Matlabovomkomandnom prostoru, kako slijedi:

>>g=10;>>r=1;

Po pokretanju simulacije rezultate možemo pratiti u bloku Scope (Osciloskop) što je prikazanona slici 2.8.

Primjer 2.2. (RLC strujni krug) Potrebno je simulirati RLC strujni krug prikazan naslici 2.9.

Matematički opis modela Vladanje ovog kruga je opisano je sljedećom diferencijalnomjednadžbom drugog reda:

u(t) = R · i(t) + L · di

dt+

∫ t

−∞i(t)dt (2.4)

odnosno, ukoliko pređemo na količinu naboja i(t) = dqdt, slijedi:

u(t) = R · dq

dt+ L · d2q

dt2+

1

Cq(t) (2.5)

Page 12: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

2 Simulink 12

Slika 2.8: Rezultati simulacije matematičkog njihala uz r = 1

10VU =

20R = Ω

0.01HL =

10 FC µ=+−0 5VCU =1 2

0.02st =

Slika 2.9: RLC krug

Izgradnja simulacijske sheme Najprije je potrebno diferencijalnu jednadžbu (2.5) za-pisati u obliku prikladnom za izgradnju simulacijske sheme:

d2q

dt2=

1

L

(u(t)−R · dq

dt− 1

Cq(t)

)(2.6)

Na temelju jednadžbe (2.6) izgrađuje se simulacijska shema prikazana na slici 2.10.

Postavljanje parametara i pokretanje simulacije Sa slike 2.10 je vidljivo da se iu ovom primjeru umjesto upisivanja konkretnih iznosa parametara u simulacijsku koriste

Page 13: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

2 Simulink 13

q(t)q’(t)=i(t)q’’(t)

uc(t)

To Workspace2

uc

To Workspace1

i

Step

Integrator1

1s

Integrator

1s

Gain2

1/L

Gain1

1/C

Gain

R

Slika 2.10: Simulacijska shema RLC kruga

varijable Matlabovog radnog prostora R,L,C i uC0. Vrijednosti ovih parametara potrebno jeprije provođenja simulacije unijeti u komandnom prozoru.

>>L=0.01;>>C=10e-6;>>R=20;>>uc0=5;

Početnu vrijednost napona na kondenzatoru postavlja se tako da se u desni integrator (čijije izlaz q(t)) upiše početnu vrijednost q0 = C · u0. Kao ulazni signal postavljen je blok Stepkojim je ostvarena skokovita promjena ulazne vrijednosti s iznosa 0 na iznos 10 u trenutkut = 0.02s. Parametri bloka Step prikazani su na slici 2.11. Za razliku od prethodnog primjeraumjesto praćenja signala pomoću bloka Scope (osciloskop), u ovom primjeru se rezultatisimulacije spremaju u radni prostor Matlaba (workspace) pomoću bloka To workspace.Nakon provođenja simulacije u radnom prostoru Matlaba se nalaze spremljeni vektori uc,

i, te tout, koji se automatski generira (vidi postavke simulacije). Sada se rezultati simulacijemogu iscrtati nekom od odgovarajućih Matlab naredbi što je u ovom slučaju napravljeno nasljedeći način:

>>subplot(211),plot(tout,uc,’k’),grid;>>subplot(212),plot(tout,i,’k’),grid;

čime su iscrtani odzivi prikazani aa slici 2.12.

Page 14: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

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

Nap

on 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]

Str

uja

i(t)

Slika 2.12: Struja i napon na kondenzatoru

Page 15: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3

Napredne tehnike korištenja Simulinka

U prethodnom je poglavlju opisano osnovno korištenje Simulinka i prikazani su simulacijskipostupci dvaju jednostavnih primjera. Međutim, ako se treba simulirati složene dinamičkesustave onda se trebaju koristiti napredne tehnike koje Simulink pruža. U nastavku senajprije opisuje razlaganje složenih sustava na podsustave, a zatim rješavanje problema al-gebarskih petlji, prolaska signala kroz nulu te simulacija tzv. krutih dinamičkih sustava. Nakraju se daju preporuke za odabir numeričkog postupka rješavanja diferencijalnih jednadžbite mogućnosti upravljanja simulacijom iz Matlabovog komandnog prozora.

3.1 PodsustaviSimulink omogućuje modeliranje složenih sustava kao skupa međusobno povezanih podsus-tava. Općenito unutar Simulinka postoje dva tipa podsustava: virtualni (eng. virtual) inedjeljivi (eng. atomic) podsustav. Osnovna je karakteristika virtualnog podsustava da neutječe na redoslijed proračuna signala, tj. njegovim korištenjem se samo simulacijska shemačini preglednijom. S druge strane nedjeljivi podsustav predstavlja elementarni blok koji seunutar Simulinka izvršava kao jedna cjelina.

Najjednostavniji način stvaranja podsustava je označavanje dijela simulacijske sheme i od-abir opcije Edit/Create Subsystem. Drugi način je da se u simulacijsku shemu, iz Simulinkbiblioteke blokova, doda blok Subsystem koji inicijalno sadrži samo ulazni i izlazni port, tese u njega dodaju drugi blokovi kako bi se ostvarila željena funkcionalnost podsustava.

Dodatna pogodnost kod korištenja podsustava je mogućnost njihovog uvjetnog izvršavanjai to kao:

a) podsustav čije je izvršavanje uvjetovano razinom kontrolnog signala (Enabled Subsystem);

b) podsustav čije je izvršavanje uvjetovano bridom kontrolnog signala (Triggered Subsystem);

c) podsustav čije je izvršavanje uvjetovano istovremeno i razinom i bridom kontrolnog sig-nala (Enabled and Triggered Subsystem);.

Da bi se podsustav učinio jednim od tri nabrojana tipa potrebno je u njega dodati blokEnable i/ili blok Trigger. U tom slučaju podsustav ima dodatni ulaz (ili dva ulaza ako seradi o podsustavu pod c)) na koji se dovodi kontrolni signal čije stanje/promjena određujenjegovo eventualno izvršavanje (slika 3.3).

15

Page 16: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja 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

TriggeredSubsystem

In1 Out1

Enabled andTriggered Subsystem

In1 Out1

EnabledSubsystem

In1 Out1

Slika 3.3: Podsustavi s uvjetnim izvršavanjem

3.1.1 Maskiranje podsustava

Nakon što korisnik stvori podsustav željene funkcionalnosti moguće je dodatno ograničitinjegove promjene samog podsustava na način da se stvori maska pomoću koje je mogućemijenjati samo točno određene parametre podsustava. Postojeći se podsustav maskira nanačin da se najprije označi, a zatim se odabere opcija Edit/Mask Subsystem, nakon čega seotvara prozor za definiciju maske.

Pod tabom Parameters definiraju se parametri koji unose preko maske (slika 3.4). Nakondefiniranja maske, dvostrukim klikom na podsustav otvara se maska za unos parametara

Page 17: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 17

Slika 3.4: Prozor za definiranje maske bloka

kako je to prikazano na slici 3.7.Izgled bloka definira se pod tabom Icon koristeći skup naredbi koje omogućuju iscrtavanje

geometrijskih likova na ikonu bloka kao i definiranje prikaza ulazno/izlaznih portova (slika3.5).

Pod tabom Initialization moguće je definirati slijed naredbi koje će se izvršiti kodučitavanja bloka, dok se pod tabom Documentation daje opis bloka (Description) i definirapomoć (Help) vezana za taj blok.

3.2 Algebarske petlje

Problem algebarskih petlji može se pojaviti u slučaju korištenja blokova koji imaju svo-jstvo izravnog prosljeđivanja signala bez kašnjenja. Primjerice takvi su blokovi Gain, SumTransfer Fcn uz jednak stupanj polinoma u brojniku i nazivniku. Ako postoje petlje(povratne veze) u simulink blokovskoj shemi koje sadrže samo elemente sa svojstvom izravnogprosljeđivanja signala, pojavljuje se problem redoslijeda proračuna signala u toj petlji.

Page 18: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 18

Slika 3.5: Maskiranje podsustava - definiranje ikone bloka

To Workspace2

uc

To Workspace1

i

Step

RLC

RLC krug

Ic

Uc

Uul

Slika 3.6: Izgled bloka nakon definicije maske

Primjer 3.1. Razmotrimo jednostavan sustav opisan sljedećim izrazom:

y = 2(u− y). (3.1)

Blokovska shema ovog sustava prikazana je na slici 3.8. Očito da je za izračunavanjeizlaza iz bloka Sum(zbrajalo) prethodno potrebno izračunati signale u i y. No naravno da bi seizračunao signal y prethodno je potrebno izračunati izlaz iz zbrajala, pa je prema tome problemredoslijeda obavljanja proračuna signala očit. Kao najlogičnije rješenje tog problema namećese transformacija izraza (3.1) u oblik y = 1

3u, odnosno analitičko rješavanje algebarske petlje.

Page 19: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja 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-jefikasniji način njegova rješavanja, tj. eliminaciju algebarskih petlji njihovim analitičkimrješavanjem. Međutim, često je zbog strukture algebarske petlje (npr. prisutnosti nelin-earnih funkcija u petlji) teško ili nemoguće naći analitičko rješenje tog problema. Zbog togaSimulink u slučaju postojanja algebarskih petlji u svakom koraku pokreće poseban postu-pak za njihovo numeričko rješavanje, ako u postavkama simulacije nije drugačije navedeno.Numerički postupak za rješavanje algebarskih petlji zasniva se na Newton-Raphsonovompostupku rješavanja implicitnih algebarskih jednadžbi oblika x = f(x). Provođenjem ovognumeričkog postupka u svakom koraku dolazi do određenog usporenja simulacije. Ovdjetakođer treba imati na umu da algebarska petlja može općenito imati više rješenja, dokse numeričkim rješavanjem algebarske jednadžbe dobije samo jedno od rješenja, ovisno opočetnim uvjetima iz kojih algoritam kreće. Kako bi korisnik ipak mogao utjecati na izborrješenja algebarske petlje potrebno je u petlju dodati blok početnih uvjeta IC.

Primjer 3.2. Kao ilustraciju spomenutog problema razmotrimo nešto složeniji sustav koji

Page 20: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 20

sadrži algebarsku petlju:

y = 5

(1

4u− y2

)(3.2)

Scope

u2

MathFunction

1/4

Gain1

1/5

Gain

11

Constant

Slika 3.9: Primjer nešto složenije algebarske petlje

Vidljivo je da postoje dva rješenje algebarske jednadžbe i to:

y1,2 =−5±√25 + u

2(3.3)

Ovisno o iznosu početnih vrijednosti algoritam će konvergirati jednom odnosno drugom rješenju.Kako bi ipak korisnik mogao utjecati na izbor rješenja u simulacijsku se shemu dodaje blokpočetnih uvjeta IC (slika 3.10), čime se definiraju početni uvjeti iz kojih kreće algoritam. Akotaj blok nije dodan algoritam pretpostavlja da su početni uvjeti jednaki nuli (slika 3.9).

Scope

u2

MathFunction

[−5]

IC

1/4

Gain1

1/5

Gain

11

Constant

Slika 3.10: Primjer nešto složenije algebarske petlje uz dodan blok IC

Simulacijom sustava uz ulazni signal oblika u(t) = 11 · S(t), te uz početne uvjete y(0) = 0i y(0) = −5 dobiju se odzivi prikazani na slici 3.11

Kao što je ranije spomenuto Simulink na pojavu algebarske petlje reagira na način da:

1. u svakom koraku pokrene numerički postupak za rješavanje algebarske petlje (opcijeNone i Warning u postavkama simulacija - slika 3.12) ili

2. zaustavi simulaciju (opcija Error u postavkama simulacije)

Drugi način rješavanja algebarske petlje je dodavanje memorijskog člana (blok Memory),koji unosi kašnjenje u sustav od jednog integracijskog koraka. Ovdje treba imati na umu daje taj način rješavanja problema algebarske petlje uvjetno primjenjiv samo u slučaju da jepojačanje otvorene petlje manje od 1. U suprotnom će sustav postati nestabilan.

Zaključno, ponovimo načine rješavanja problema algebarske petlje:

Page 21: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja 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 različite početne uvjetesignala y(t)

Slika 3.12: Podešavanje reakcije simulinka an pojavu algebarske petlje

1. Transformacija simulacijske sheme na osnovi rješenja analitičkog algebarske jednadžbe;

2. dodavanje blokova početnih uvjeta (IC) u petlju kako bi se utjecalo na smjer traženjarješenja algebarske jednadžbe;

Page 22: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja 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, teje u nekim slučajevima od iznimne važnosti upravo odrediti trenutak kada se taj prolazakdogađa. Tipičan primjer takve pojave je simulacija gibanja kugle na biljarskom stolu. Kodudara kugle o rub stola dolazi do pojave diskontinuiteta u brzini kugle, tj. kugla naglomijenja smjer gibanja. Očito je da u slučaju korištenja rješavača s konstantnim korakomnema jamstva da će biti pogođen upravo trenutak kada dolazi do pojave diskontinuiteta.Ako se koriste rješavači s promjenjivim korakom tada će zbog pojave diskontinuiteta doći dopovećanja lokalne pogreške pa će se vremenski korak smanjivati kako bi se zadovoljile zadanetolerancije na pogrešku što će rezultirati određenim produljenjem trajanja simulacije. Nočak i u ovom slučaju nema jamstva da će se pogoditi upravo trenutak pojave diskontinuiteta.Iz toga razloga Simulink koristi posebnu tehniku određivanja točnog trenutka prolaska stanjasustava kroz nulu (eng. Zero Crossing Detection). Tako pojedini blokovi unutar Simulinkbiblioteke blokova imaju dodatni parametar za odabir detekcije prolaza kroz nulu (para-metar Zero Crossing Detection). Blokovi koji imaju tu mogućnost su: Abs, Backlash,Dead Zone, From Workspace, Hit Crossing, If, Integrator, MinMax, Relay, RelationalOperator, Saturation, Sign, Signal Builder, Subsystem, Step, Switch, Switch Case.Ako se odabere opcija Zero Crossing Detection za neke od tih blokova Simulink će nakraju svakog simulacijskog koraka provjeravati je li došlo do pojave prolaza kroz nulu za nji-hove signale. Kada se detektira promjena predznaka nekog od signala koji se prati izračunatće se točni trenutak u kojem je došlo do prolaza kroz nulu, te će se nakon toga izračunativrijednosti svih stanja i signala u tom trenutku.

Slika 3.13: Podešavanje parametara simulacije vezano za detekciju prolaza kroz nulu

Osim odgovarajućih postavki za pojedine blokove korisnik ima mogućnost definiranja glob-alnih postavki simulacije vezanih za detekciju prolaska kroz nulu pomoću opcije Simulation/Configuration Parameters (slika 3.13). Pritom je moguće odabrati jednu od sljedećih op-cija:

Page 23: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 23

• Use local settings - obavljanje detekcije prolaska kroz nulu određeno je postavkamapojedinih blokova koji imaju tu mogućnost.

• Enable All - radi se detekcija prolaza signala za svaki od blokova u simulacijskojshemi koji imaju tu mogućnost (ignorira se odabir parametra Zero Crossing Detectionza pojedine blokove),

• Disable All - ne obavlja se detekcija prolaza kroz nulu bez obzira na odgovarajućepostavke pojedinih blokova.

Primjer 3.3. Kao primjer sustava gdje je neophodno raditi detekciju prolaza kroz nulumodelirat će se sljedeći sustav. Neka se elastična loptica nalazi na visini h = 10m i neka imapočetnu brzinu u smjeru okomitom na podlogu v0 = 10m/s, kako je prikazano na slici 3.14.Kod udara u podlogu loptica gubi 20% količine gibanja koju je imala neposredno prije udara.

[ ]0 15 /v m s=

[ ]0 10h m=

Slika 3.14: Elastični udar loptice o podlogu

Uz pretpostavku da loptica ima početnu brzinu v0 možemo zapisati:

mv(t) = −mg (3.4)

odnosnov(t) = −g, uz IC = v0. (3.5)

Bitno je primijetiti da ovaj model vrijedi između dva trenutka udara loptice o podlogu. Utrenutka kada se dogodi udar loptice o podlogu vektor brzine loptice mijenja smjer za 180,a iznos mu se smanji za 20%. Zbog toga je nužno osigurati mogućnost vanjskog reseta zapojedine integratore kako bi se u trenutku kada loptica udari o podlogu u integrator upisalanova vrijednost brzine v0 = −0.8 · v, koja predstavlja početnu vrijednost za simulaciju dosljedećeg udara loptice o podlogu.

Page 24: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 24

To Workspace

polozaj

Polozaj

1s

xo

Pocetni polozaj

[10]

Pocetna brzina

[15]

Ground

Gravitacija

−9.81

Elasticnost

−0.8

<= 0

Brzina

1s

xo

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 određenvisinom odnosno položajem loptice potrebno je upravo za taj signal raditi detekciju prolaskakroz nulu. Zbog toga se u parametrima bloka Compare to Zero, čiji je ulazni signal položajloptice, odabire opcija Zero Crossing Detection(Slika 3.16). Osim toga potrebno je pode-siti i parametre bloka Integrator kako bi se omogućio vanjski reset na pozitivni brid signalaiz bloka usporedbe s nulom Compare to Zero(Slika 3.17). Dodatno je na oba integratoraodabrana i opcija Show state port jer se ti signali (umjesto signala izlaza iz integratora)koriste za detekciju prolaza kroz nulu i upis nove početne vrijednosti. Na taj se način izbje-gava mogućnost 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 sizlaznog 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 konfiguraciji sim-

Page 25: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 25

Slika 3.17: Parametri bloka Integrator (brzina loptice)

ulacije odabrana opcija Use Local Setting, dok je za drugu simulaciju odabrana opcijaDisable All.Radi provjere točnosti provedenih simulacija analitički su izračunati 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 proračunatim analitičkim putemevidentno je da simulacija uz uključenu detekciju prolaska kroz nulu daje zadovoljavajućerezultate, dok simulacija bez detekcije prolaska kroz nulu ima značajnu pogrešku.Ovdje je bitno primijetiti i jedan problem koji se pojavljuje kod simulacije uz uključenu

detekciju prolaska kroz nulu za ovaj konkretan primjer. Naime ako se pažljivo analizirajuvremena između dva udara loptice o podlogu može se zaključiti da ona čine geometrijski nizpri čemu vrijedi:

tn+1 = 0.8tn (3.7)

Ovo praktično znači da će, kako simulacija odmiče, biti potrebno sve češće raditi detekcijuprolaska kroz nulu, što će rezultirati usporenjem, a na kraju i zaustavljanjem simulacije.

Page 26: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 26

0 2 4 6 8 10 12 14 16 18 200

5

10

15

20

25

Vrijeme t[s]

Vis

ina

h[m

]

Uz detekciju prolaska kroz nulu

0 2 4 6 8 10 12 14 16 18 200

5

10

15

20

25

Vrijeme t[]s

Vis

ina

h[m

]

Bez detekcije prolaska kroz nulu

Slika 3.18: Rezultati simulacija a) uz uključenu detekciju prolaska kroz nulu, b) bez detekcijeprolaska kroz nulu

3.4 Upravljanje simulacijom iz Matlabovog komandnogprozora

Unutar Matlaba implementiran je skup funkcija koje omogućuju upravljanje simulacijom izMatlabovog komandnog prozora, te jednako tako i modifikaciju, pa čak i izgradnju samogSimulink modela. Te funkcije omogućuju da se postavljanje parametara simulacije, pokre-tanje simulacije te obrada samih rezultata simulacije grupiraju u m-skriptu ili m-funkciju.U nastavku se navode najvažnije funkcije koje su korisniku na raspolaganju.

sim(’model’,TIMESPAN,OPTIONS,UT); Ova funkcija pokreće simulaciju modela spremljenogpod imenom ’model’. Parametri funkcije ’TIMESPAN’, ’OPTIONS’, ’UT’ su opcijskii pomoću njih možemo modificirati parametre simulacije. Ako se funkcija pozove bezovih opcijskih parametara tada se simulacija izvodi uz parametre uz koje je modelspremljen.

set_param(’OBJ’,’PARAMETER1’,VALUE1,’PARAMETER2’,VALUE2,...) Funkcija set_parampostavlja parametre ’PARAMETER1’,’PARAMETER2’,..., objekta ’OBJ’ na vrijednosti VALUE1,VALUE2, ...,. Objekt čiji se parametri mijenjaju definira se u obliku ’model/blok’.

get_param(’OBJ’,’PARAMETER’) Ova funkcija vraća vrijednost parametra ’PARAMETER’ ob-jekta ’OBJ’.

add_block(’SRC’,’DEST’) Ova funkcija kopira blok čija je staza ’SRC’ u novi blok sa stazom’DEST’.

Page 27: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 27

add_line(’SYS’,’OPORT’,’IPORT’) Ovom se funkcijom povezuje izlazni port ’OPORT’ sulaznim portom ’IPORT’ u simulacijskoj shemi ’SYS’. Pritom se izlazni i ulazni portovizadaju u obliku ’blok/port’.

Primjer 3.4. Na slici 3.19 je prikazan poluvalni ispravljač sa stabilizatorom koji se sastoji odkondenzatora u paraleli s izlaznim otporom. Pritom je pretpostavljeno da je strujno-naponskakarakteristika diode idealna i opisana Schocklyevom jednadžbom:

id = Is

(e

udUT − 1

)(3.8)

gdje je ud-napon na diodi, id-struja kroz diodu, Ut = 25.2mV -termalni napon diode i Is =1.34pA-struja zasićenja diode. Pritom otpor R iznosi R = 10kΩ, dok je kapacitet kondenza-tora C promjenjiv.

su R C iu

Slika 3.19: Shema poluvalnog ispravljača sa stabilizatorom napona

Potrebno je grafički prikazati ovisnost faktora valovitosti (eng. ripple factor) izlaznognapona ui o iznosi kapaciteta kondenzatora C u intervalu C ∈ (1e− 7, 1e− 5)F .Faktor valovitosti definiran je kao:

φ =RMSuAC

uDC

(3.9)

gdje je:

RMSuAC =

√∑Ni=1 uAC(i)

N(3.10)

Ponašanje ispravljača prikazanog na slici 3.19 opisano je sljedećim izrazima:

us(s) = ud(t) + ui, (3.11)

id(t) = f(ud(t)), (3.12)

id(t) =ui(t)

R+ C

dui

dt. (3.13)

Page 28: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 28

Ove se jednadžbe se zapisuju u obliku prikladnom za izgradnju simulacijske sheme:

ud(s) = us(t)− ui (3.14)

id(t) = f(ud(t)) (3.15)

dui

dt=

1

C

(id(t)− ui(t)

R

)(3.16)

Na temelju jednadžbi (3.14)-(3.14) izrađuje se simulacijska shema koja je prikazana na slici3.20. Karakteristika diode opisana je funkcijskim blokom Fcn čiji su parametri prikazani naslici 3.21

us

To Workspace2

t

To Workspace1

ui

To WorkspaceSignalGenerator

1s

Integrator

1/RGain1

1/C

Gain

f(u)

Fcn

Clock

Slika 3.20: Simulacijska shema poluvalnog ispravljača rect.mdl

Da bi se dobila grafička ovisnost faktora valovitosti o kapacitetu kondenzatora C potrebnoje najprije generirati niz vrijednosti kapaciteta kondenzatora C. Za svaku od generiranih vri-jednosti potrebno je provesti simulaciju, te na temelju rezultata simulacije izračunati pripadnifaktor valovitosti.Prijedlog rješenja:

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

Page 29: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja 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]

Nap

oni u

s i u i

Slika 3.22: Usporedni prikaz ulaznog napona us i napona na izlazu ispravljača ui dobiven uzC = 1e− 6 F

Bitno je primijetiti da se promjena vrijednosti kapaciteta kondenzatora obavljala prekoradnog prostora Matlaba (eng. Matlab workspace) naredbom:

C=Cind(i);

ali se ona također mogla napraviti na način da se izravno promjeni vrijednost upisana usimulacijskoj shemi pomoću naredbe set_param:

set_param(’rect/Gain’,’Gain’, mat2str(1/Cind(i)));

Nakon izvršavanja prikazane m-skripte dobije se tražena ovisnost prikazana u logaritam-skom mjerilu (slika 3.23).

Page 30: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja 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]

Fak

tor

valo

vito

sti

Slika 3.23: Ovisnost faktora valovitosti o iznosi kapaciteta kondenzatora

3.5 Simulacija krutih dinamičkih sustavaKrutim dinamičkim sustavima (eng. stiff systems) nazivaju se sustavi koji posjeduju više pobrzini jako različitih 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 karakteristična vrijednost matrice Λ.Problem koji se pojavljuje kod simulacije takvih sustava posljedica je činjenice da sta-

bilnost numeričkih postupaka za rješavanje diferencijalnih jednadžbi ovisi o vremenskomkoraku h. Ta je ovisnost posebno izražena kod eksplicitnih numeričkih postupaka, kojućemo ilustrirati na sljedećem jednostavnom primjeru.

Primjer 3.5. Neka je dan linearni sustav prvog reda opisan sljedećom diferencijalnom jed-nadžbom:

y(t) + λy(t) = 0 y(0) = y0, (3.18)

pri čemu je λ = 100 i y0 = 5. Potrebno je usporediti rezultate dobivene ode1(Euler) numer-ičkim postupkom uz različite iznose vremenskog koraka h sa stvarnim rješenjem diferencijalnejednadžbe (3.18). Analitičko rješenje ove diferencijalne jednadžbe je y(t) = y0 · e−λt, što jelako potvrditi korištenjem Matlab Symbolic Toolboxa.

>> syms y y0 lambda t>> sol=dsolve(’Dy+lambda*y=0’,’y(0)=y0’)

sol =

Page 31: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 31

y0*exp(-lambda*t)

>> soln=subs(sol,y0,lambda,[5,100])

soln =

5*exp(-100*t)

To Workspace

y

Integrator

1s

Gain

−100

Slika 3.24: Simulacija shema sustava opisanog dif. jednadžbom y′(t) + λy(t) = 0.

Na temelju diferencijalne jednadžbe (3.18) izgrađena je simulacijska shema, prikazana naslici 3.24, pri čemu je u postavkama simulacije odabran numerički postupak ode1(Euler) skonstantnim vremenskim korakom h. U sklopu ovog primjera provedeno je 5 simulacija uzrazličite iznose vremenskog koraka (h = 1e−3, 5e−3, 15e−3, 20e−3, 21e−3) i usporednirezultati tih simulacija su prikazani na slici 3.25.Prikazani rezultati ukazuju da se pogreška numeričkog postupka povećava s iznosom vre-

menskog koraka h, da bi za određeni njegov iznos postupak postao nestabilan. Da bi seobjasnilo zašto dolazi do efekta nestabilnosti u numeričkom postupku primijenit će se izrazza Eulerovu unaprijednu integraciju na polaznu diferencijalnu jednadžbu. Zapišimo najprijediferencijalnu jednadžbu (3.18) u standardnom obliku:

y = f(t, y) = −λ · y. (3.19)

Primjenom izraza za Eulerovu unaprijednu integraciju na ovaj izraz slijedi:

yn+1 = yn + hf(tn, yn) = yn − λyn (3.20)

yn+1 = (1− λh)yn (3.21)

yn = (1− λh)ny0 (3.22)

Predstavlja li dobiveni izraz dobru aproksimaciju rješenja polazne diferencijalne jednadžbe?

Page 32: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 32

0 0.05 0.1 0.15-10

-8

-6

-4

-2

0

2

4

6

8

10Stvarno rješenje y=5*exp(-100t)h=1e-3h=5e-3h=15e-3

h=20e-3h=21e-3

[ ]t s

ˆ(

),(

)y

ty

t

Slika 3.25: Rezultati simulacije sustava opisanog dif. jednadžbom y′(t) + 100y(t) = 0 ko-rištenjem Eulerovog postupka uz različite iznose vremenskog koraka h

Da bi se odgovorilo na to pitanje potrebno je zapisati dobiveni rezultat u nešto drukčijemobliku:

yn = (1− λh)−λnh−λh y0 (3.23)

Ako vrijedi h ¿ λ tj. hλ → 0 tada :

limλh→0

(1− λh)−1λh = e (3.24)

pa prema tome vrijedi:

yn = y0(1− λh)n ≈ y0e−λnh = y0e

−λtn (3.25)

Očito, ako je vremenski korak h dovoljno malen tada se postiže dobra aproksimacija stvarnogrješenja diferencijalne jednadžbe. Ključnu ulogu za stabilnost postupka u ovom slučaju imačlan φ(h) = 1− λh, te ako on zadovoljava uvjet:

|1− λh| < 1, (3.26)

numerički je postupak stabilan. U slučaju da λ ∈ R uvjet za stabilnost Eulerovog numeričkogpostupka glasi:

h <2

λ(3.27)

Kako je u ovom konkretnom primjeru λ = 100 slijedi da je postupak stabilan ako je h ≤ 0.02,što potvrđuju i rezultati simulacija na slici 3.25.

Page 33: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 33

Razmotrimo sada slučaj da, na polaznu diferencijalnu jednadžbu umjesto formule za un-aprijednu, primijenimo formulu za unazadnu Eulerovu integraciju:

yn+1 = yn + hf(tn+1, yn+1) = yn − λyn+1 (3.28)

yn+1 =yn

1 + λh(3.29)

yn =y0

(1 + λh)n(3.30)

Očito da član koji određuje stabilnost postupka sada glasi φ(h) = 1/(1 + λh). Budući da seradi o stabilnom dinamičkom sustavu tada vrijedi λ > 0, pa je u tom slučaju φ(h) < 1 za svakiiznos vremenskog koraka h. Međutim, kod ovog postupka pojavljuje se drugi problem, a to jenjegova implicitnost, te je u općem slučaju kod takvih algoritama nužno koristiti iterativnepostupke za njihovo rješavanje.

Prethodni je primjer je zorno pokazao da točnost, a kod određenih tipova postupaka istabilnost, numeričkog postupka izravno ovise o iznosu vremenskog koraka h. Sada pret-postavimo da rješenje diferencijalne jednadžbe ima više komponenata. Radi jednostavnostineka se radi o zbroju dvije eksponencijalne funkcije tj. y(t) = C1e

−λ1t + C2e−λ2t, pri čemu

vrijedi λ1 >> λ2, λ1, λ2 > 0. U tom slučaju maksimalni korak koji se može koristiti unumeričkim postupku određen je bržom komponentom C1e

−λ1t. S druge strane sporija kom-ponenta C2e

−λ2t definira trajanje simulacije. Takva situacija može u konačnici rezultiratidugotrajnom simulacijom. Upravo takav slučaj ilustriran je sljedećim primjerom.

Primjer 3.6. Razmotrimo primjer jednostavnog linearnog sustava II reda, prikazanog naslici 3.26, (serijski RLC krug) koji za određene iznose parametara R,L i C postaje krut.

R

C

L

0Cu+−

( )i t

Slika 3.26: RLC strujni krug

Ponašanje RLC kruga opisano je sljedećim izrazom:

Ldi(t)

dt+ Ri(t) +

1

C

∫ t

0

i(t)dt = 0 (3.31)

Page 34: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 34

Tablica 3.1: Usporedba trajanja simulacije i broj točaka u kojima se izračunava stanje kru-tog sustava korištenjem ode45(Dormand-Prince) i ode15(stiff/NDF) numeričkihpostupka

Algoritam ODE45(Dormand-Prince) ODE15s (Stiff./NDF)Trajanje simulacije 0.26 s 0.05 sBroj točaka 11315 136

Uvođenjem naboja q(t) : dq(t)dt

= i(t) slijedi:

Ld2q(t)

dt2+ R

dq(t)

dt+

q(t)

C, q(0) = C · uc0, (3.32)

gdje uC0 predstavlja napon na kondenzatoru u trenutku t = 0. Odgovarajuća simulacijskashema, napravljena na temelju izraza (3.32), prikazana je na slici 3.27. Parametri uz kojesu obavljene simulacije su sljedeći: R = 25Ω, C = 200mF , L = 20mH i uc0 = 12V .

q(t)q’(t)=i(t)q’’(t)

uc(t)

To Workspace1

t

To Workspace

i

Integrator1

1s

Integrator

1s

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 različite numeričke postupke ito: ode45(Dormand-Prince) i ode15s(Stiff./NDF). Na temelju rezultata simulacije napravl-jena je usporedba trajanja simulacije i broja točaka u kojima se izračunava stanje sustavaza pojedine postupke, što je prikazano u tablici 3.1. Iako je ode15s(stiff/NDF) impicitnipostupak koji unutar svakog koraka zahtijeva više iteracija kako bi se izračunalo stanje sus-tava, trajanje simulacije uz taj postupak je približno pet puta kraće nego u slučaju korištenjeode45(Dormand-Prince) postupka. Posebno drastična razlika je u broju točaka u kojima seizračunava stanje sustava, što je izravna posljedica ograničenja maksimalnog vremenskog ko-raka uvjetima stabilnosti pojedinih postupaka. Ovdje je bitno napomenuti da oba postupkaspadaju u skupinu postupaka s promjenjivim vremenskim korakom.

U prethodnom smo primjeru vidjeli da se implicitni numerički postupci (ode15s) pokazujukao bolje rješenje za simulaciju krutih sustava. Budući da se u ovom slučaju ipak radilo oumjereno krutom sustavu, eksplicitni ode45 postupak je uspio obaviti simulaciju u relativno

Page 35: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 35

Tablica 3.2: Usporedba trajanja simulacije krutog sustava korištenjem različitih postupakanumeričke integracije

Algoritam ODE45(Dormand-Prince) ODE15s (Stiff/NDF)Trajanje simulacije 2192 s 0.33 s

kratkom vremenu, tako da nismo bili prisiljeni nužno mijenjati defaultni numerički postupak.Sljedeći primjer izrazito krutog nelinearnog sustava prikazat će situaciju kada je promjenanumeričkog postupka nužna.

Primjer 3.7. (Van der Polov oscilator) Neka je dan nelinearni sustav, opisan sljedećomdiferencijalnom jednadžbom:

y(t)− 2µ(1− y2(t))y(t) + y(t) = 0 (3.33)

koji je u fizici poznat kao Van der Polov oscilator. Ponašanje tog sustava u znatnoj mjeriovisi o iznosu parametra µ. Ono što je karakteristično za taj sustav je da postaje izrazitokrut za veće iznose parametra µ. Odgovarajuća simulacijska shema Van der Polovog oscila-tora prikazana je na slici 3.28. Rezultat simulacije dobiven uz µ = 1000 koristeći ode15spostupak prikazan je na slici 3.29. U tablici 3.2 dana su vremena trajanja simulacije uzpojedine numeričke postupke, odakle zaključujemo da je u slučaju simulacije ovakvih sustavanužno prijeći na neki od postupaka prikladnih za njihovo rješavanje (ode15s,ode23s). Bitnoje naglasiti da, na žalost, u općem slučaju ne postoji jednostavna procedura kojom bi se došlodo odgovora je li neki sustav krut.

y(t)y’(t)y’’(t)y

u2

1s

1s

2*mu

1

Slika 3.28: Simulacija shema Van der Polova oscilatora

3.6 Numerički postupci unutar Matlab/Simulinkprogramskog sustava

U ovom potpoglavlju je dan kratak pregled numeričkih postupaka za rješavanje diferenci-jalnih jednadžbi dostupnih unutar programskog sustava Matlab/Simulink, kao i određeni

Page 36: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja 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 korištenje ODE15s metode numeričkeintegracije

iskustveni naputci za njihov odabir.

3.6.1 Numerički postupci s promjenjivim vremenskim korakom

ode45(Dormand-Prince). Ovaj je numerički postupak zasnovan na kombinaciji Runge-Kutta metoda četvrtog i petog reda pri čemu se za proračun novog stanja koristi RK5 metoda,dok se lokalna pogreška procjenjuje na temelju RK4 metode. Procijenjena lokalna pogreškakoristi se za adaptaciju vremenskog koraka h. Ovaj numerički postupak je defaultni postupaku novijim verzijama Simulinka.

ode23(Bogacki-Shampine). Slično kao ode45 i ovaj postupak koristi kombinaciju Runge-Kutta metoda drugog i trećeg reda. Pritom se za proračun novog stanja koristi RK3 metoda,dok se lokalna pogreška procjenjuje na temelju RK2 metode. Pokazuje se da je ovaj postupakefikasniji od ode45 metode kod grubljih tolerancija.

ode113(Adams). Ovaj postupak koristi kombinaciju dviju linearnih višekoračnih metoda(Adams-Bashforth eksplicitne metode i Adams-Moulton implicitne metode) u prediktor-korektor formi. Pritom se najprije pomoću eksplicitne AB metode radi predikcija novogstanja sustava da bi se nakon toga radila korekcija tog novog stanja koristeći implicitnu AMmetodu. Unutar Matlab/Simulinka implementirana je verzija ovog postupka uz promjenjivired samih metoda pri čemu se red metode može mijenjati od reda 1 do reda 13. Pri strogimtolerancijama ovaj postupak je često efikasniji od defaultnog ode45 postupka.

Page 37: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 37

ode15s(Stiff/NDF). Implicitni numerički postupak promjenjivog reda (od 1 do 5) za-snovan na numeričkim diferencijalnim formulama. Postupak je namijenjen prije svega zarješavanje problema simulacije krutih sustava. Preporuka je koristiti ovaj postupak akosimulacija s defultnim ode45(Dormand-Prince) postupkom predugo traje (što ukazuje namogućnost da se radi o krutom sustavu).

ode23s(Stiff/mod. Rosenbrok). Ovaj je numerički postupak zasnovan na modificiranojRosenbrokovoj formuli reda 2 i namijenjen je za simulaciju krutih dinamičkih sustava. Budućida je ode23s jednokoračni postupak pokazuje se da je efikasniji od ode15s postupka prigrubljim tolerancijama.

ode23tb. Implicitni Runge-Kutta postupak koji koristi kombinaciju trapeznog pravila iunazadne diferencijalne formule reda 2. Slično kao ode23s, ovaj postupak se pokazuje efikas-nijim od ode15s postupka pri grubljim tolerancijama.

3.6.2 Numerički postupci s konstantnim korakom

ode1(Euler). Eksplicitni jednokoračni postupak prvog reda temeljen na izrazu za unapri-jednu Eulerovu integraciju. Postupak se odlikuje značajnom značajnom pogreškom te dajedobre rezultate samo uz malen vremenski korak h.

ode2(Heun). Eksplicitni, jednokoračni postupak drugog reda koji predstavlja poboljšanjeosnovne Eulerove metode u smislu da se nagib stanja x(t) na intervalu [tn, tn+h] procjenjujekao srednja vrijednost nagiba u trenutku tn i procjene nagiba u trenutku tn + h. Time sepostiže bolja točnost 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 trećeg reda.

ode4(Runge-Kutta). Eksplicitni, jednokoračni postupak zasnovan na Runge-Kutta metodičetvrtog reda, koji predstavlja najpoznatiju i najčešće korištenu 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 rješavanje implicitnih alge-barskih jednadžbi i ekstrapolacije. Pritom korisnik može definirati maksimalni broj iteracijeNewton-Raphsonovog algoritma i red ekstrapolacije što izravno utječe na točnost i složenostnumeričkog postupka. Postupak se prije svega koristi za simulaciju krutih dinamičkih sus-tava.

Page 38: LABORATORIJIVJEŠTINE-MATLAB UvoduSIMULINK · Uz pretpostavku da je cjelokupna masa koncentrirana u kuglici m moment tromosti je J = m¢r2,teslijedi: µ˜+ g r sin(µ) = 0 (2.2) Izgradnja

3 Napredne tehnike korištenja Simulinka 38

3.6.3 Odabir numeričkog postupka

Kod simulacije složenih dinamičkih sustava vrlo je teško unaprijed definirati prikladan sim-ulacijski postupak kao i parametre samog postupka. Zbog toga je često nužno sam postupaki njegove parametre odrediti kroz više koraka metodom pokušaja-i-pogreške. Tako se pri-likom simulacije složenih dinamičkih sustava preporuča prvo pokušati s nekim od postupakas promjenjivim korakom uz uključenu detekciju prolaska kroz nulu. Pritom je defaultniode45(Dormand-Prince) postupak dobar izbor. Ako su rezultati simulacije očekivani moženakon toga pokušati s nekim od manje složenih postupaka kako bi simulacija kraće trajala.

Ako je s druge strane simulacija korištenjem ode45 postupka prespora ili se ne slaže sočekivanim rezultatima, tada je moguće da se radi o krutom dinamičkom sustavu pa je utom slučaju preporuka koristiti neki od postupaka namijenjen za rješavanje krutih sustavapoput ode15s postupka.

Kao sljedeći korak trebalo bi provjeriti jesu li odabrane tolerancije pogreške zadovoljava-juće. U tom smislu je potrebno nakon provođenja simulacije uz defaultne postavke za toleran-cije RTOL=1e-3, simulirati sustav uz strože tolerancije npr. RTOL=1e-6. Ukoliko su rezultatislični tada je prvobitna tolerancija zadovoljavajuća. Ako se pak odzivi znatno razlikuje tadaje potrebno ponoviti cijeli postupak uz strože tolerancije.

Ako se koriste postupci s konstantnim vremenskim korakom tada je potrebno iterativnokroz nekoliko simulacija odrediti prikladan vremenski korak h. To se radi na način da seprovodi više simulacija svaki puta s korak umanjenim za određeni faktor (npr 10) i zaustavljase postupak kada daljnje smanjenje koraka nema bitnijeg efekta na točnost simulacije.

U slučaju da se treba simulirati kruti dinamički sustav uz konstantan vremenski ko-rak h tada se preporuča koristiti ode14x implicitni postupak zbog mogućnosti korištenjavećih vremenskih koraka kod simulacije takvih sustava. Postupci s konstantnim korakom neomogućuje korištenje detekcije prolaska kroz nulu nego je u slučaju takvih sustava potrebnosmanjiti vremenski korak kako bi se smanjila pogreška.

Ako simulacijska shema sadrži elemente s prekapčanjem koji mogu prouzročiti pojavudiskontinuiteta i efekta poznatog pod imenom "chattering" potrebno je razmotriti mogućnostuvođenja histereznih elemenata kako bi se smanjio utjecaj prekapčanja.