Matlab Mod Sim

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 132

SVEUČILIŠTE U SPLITU

POMORSKI FAKULTET U SPLITU

Igor Vujović

MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI


MATLAB/SIMULINK

Split, 2014.
Autor:

Dr. sc. Igor Vujović, dipl. inž.

docent
PREDGOVOR

Ova skripta namjenjena je studentima prve godine diplomskog studija Pomorskih


elektrotehničkih tehnologija na Pomorskom fakultetu u Splitu. Obuhvaća dio predavanja i
vježbi iz kolegija „Simuliranje i modeliranje u elektrotehnici Matlab/Simulink“.

U skripti je preskočen dio o temeljnim pojmovima, funkcijama i rukovanju programskim


paketom Matlab, jer taj dio studenti susreću u drugim kolegijima tijekom preddiplomskog i
diplomskog studija. Više osnovnih informacija o tom području može se pronaći na više
internet adresa u Hrvatskoj.

Ovaj kolegij satnice je 1+3 te je težinski vrijedan 6 ECTS bodova.

Svrha je ovoga kolegija osposobljavanje studenata za rad s programskim sustavom


MATLAB, što uključuje upoznavanje s tehničkim okruženjem i s praktičnim vježbama
programiranja u MATLAB-u. Obrađuju se sljedeće teme: vektorska i matrična analiza
podataka, grafička vizualizacija, modeliranje podataka te programiranje u MATLAB-u u
kontekstu ilustrativnih, realističnih primjera. Kolegij razmatra modeliranje i simuliranje
različitih tehničkih sustava (mehaničkih, hidrauličkih, električne strojeve, energetska
elektronika, tehničkih sustavi s diskretnim događajima) te njihovo upravljanje u realnom
vremenu korištenjem MATLAB-a.

Programski paket Matlab kompatibilan je s programom Octave, koji se može naći besplatno
na internetu. Razlika je u tome što Octave nema ugrađene sve funkcije i alatke koje ima
Matlab, što je razumljivo zbog veličine programa te u Octave-u nema analoga Simulinku.

Autor
SADRŽAJ
1. UVOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2. UPOTREBA MATLAB/OCTAVE PROGRAMSKIH LINIJA . . . . . . . . . . . . . . . . . . . 6


2.1. Korištenje glavnog prozora MatLab-a u analizi automatskih sustava s pomoću prijenosne
funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2. Iscrtavanje realnih podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3. Analiza električnih krugova u Matlab/Octave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1. Određivanje potencijala čvorova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2. Proračun prijenosnih linija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3. Rješavanje izmjeničnih krugova u području kompleksne frekvencije . . . . . . . . . . . . . . 19
2.4. Strukture, statistika, animacije, mjere učinkovitosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4.1. Animacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5. Alatke i njihova upotreba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.5.1. Simbolička alatka (engl. Symbolic Toolbox) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.5.2. Alatka za obradu signala (engl. Signal Processing Toolbox) . . . . . . . . . . . . . . . .. 31
2.5.3. Alatka za upravljanje sustavima (Control System Toolbox) . . . . . . . . . . . . . . . . . 33
2.5.4. Statistička alatka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 33
2.6. Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

3. UPOTREBA SIMULINKA U SIMULIRANJU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36


3.1. Stabiliziranje sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.Vremenski odziv člana nultog reda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.Vremenski odziv P1 člana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4.Vremenski odziv P2 člana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5.Vremenski odziv složenih sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.6. Proporcionalni regulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.7. Servomotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.7.1. Vođenje istosmjernog stroja proporcionalnim regulatorom . . . . . . . . . . . . . . . . . 68
3.7.2. Vođenje istosmjernog stroja PI regulatorom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

4. SLOŽENI PRIMJERI MODELIRANJA I SIMULIRANJA U MATLAB/SIMULINK


PROGRAMSKOM PAKETU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.1. Realizacija Simulink modela na DSP kartici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2. Dohvat slike s kamere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.3. Upravljanje sustavom dva spremnika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.3.1. Nominalni model spremnika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 78
4.3.2. Model aktuatora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.3.3. Protupreklapajući (Anti-Aliasing) filtri . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 81
4.3.4. Nesigurnost u dinamici modela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.3.5. Projektiranje kontrolera . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . 84
4.3.6. Pojam H∞ norme i upravljanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.3.7. Projektiranje H∞ kontrolera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.3.8. Robustnost H∞ kontrolera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.4. Asinkroni vjetrogenerator u izoliranoj mreži . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.5. Industrijski robot s 3 stupnja slobode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.6. Primjer vojnih komunikacija „s kraja na kraj“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.7. Modeliranje prometa klasterizacijom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.8.Test DC asinkronog motora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.9.Simulink 3D Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.9.1. Pristajanje broda u luku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.9.2. Vožnja automobilom u virtuelnom svijetu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.10. Stvaranje grafičkog sučelja (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.11. Modeliranje automatskog uzbudnog regulatora sinkronog generatora broda s
električnom propulzijom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

5. LITERATURA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

1. UVOD
Danas su u svakodnevnom životu neizbježni sustavi automatskog upravljanja, odnosno
sustavi automatske regulacije. Da bi se utvrdilo da li zadovoljavaju zahtjeve u pogledu
stabilnosti, brzine odziva pri promjeni ulazne veličine, stupanj osjetljivosti na poremećaje i
dr., potrebno je poznavati dinamiku tih sustava. Dinamika sustava opisuje se diferencijalnim
jednadžbama. Problem nastaje kada su te diferencijalne jednadžbe previše složene za
analitičko rješavanje. Tada je korisno sustav nadomjestiti analognim modelom. Na modelu se
vrše mjerenja koja se prevode u uvjete ispitivanog sustava. Obično se na modelu vrlo lako
realiziraju promjene parametara sustava i brzo ocjenjuje utjecaj tih parametara na promjene
fizikalnih varijabli. Prednost modela je i u tome što se fizikalna zbivanja prikazuju u
vremenskom području koje odgovara fizikalnoj stvarnosti pa se na taj način zorno povezuje
stvarnost i matematička simbolika.

Elementi modela na određeni način simuliraju elemente ispitivanog realnog sustava pa se


uređaji na kojima se ostvaruju modeli nazivaju simulatorima, a sam postupak gradnje modela
simulacijom.

U samom početku simulatori su bili analogni, mehanički ili električni uređaji, s


unaprijed definiranim osnovnim elementima. Vremenski odziv dobiva se na pisaču ili
osciloskopu. No, razvoj elektroničkih računala omogućio je da se simulatori "simuliraju" na
elektroničkim računalima u posebnim programima kao što su TutSim, VisSim, itd. Danas se
za simulaciju električnih i elektroničkih sklopova najviše koristi Electronic Workbench
(EWB), odnosno Multisim u novoj inačici. Takav tip specijaliziranog programa je i Atlas, koji
se koristi za simulaciju arhitekture mikroračunala. Slično, u raznim područjima znanosti
postoje specijalizirani programi poput Powersim i sl. Općenito se za simulaciju raznih
složenih sustava koristi MatLab-ov dio - Simulink. Octave je pristupačan zbog toga što se
nalazi u javnoj domeni (GNU, General Public License). Vrlo dobri rezultati se mogu postići
upotrebom programa Mathematica.
U početnoj fazi izrade bilo kojeg novog proizvoda uključena je i simulacija na
računalu. Ako rezultati ne zadovoljavaju, moraju se mijenjati parametri prema podacima
računalne simulacije, a tek kad je na računalu sve u redu ide se na izradu modela i na kraju
prototipa.
Za upravljanje sustavima potrebno je poznavati i mjeriti kontrolne veličine. Kontrolne
veličine mogu biti npr. jedan ili više izlaza iz sustava. Te se kontrolne veličine analiziraju kao
signali. Postoji više vrsta signala i više podjela signala u srodne grupe.
No, prije samog rada, potrebno je razmotriti ispravno značenje određenih pojmova.

Sustav je prirodna, društvena, tehnička ili mješovita tvorevina koja u nekoj okolini djeluje
samostalno s određenom svrhom.

Tvorevina je skup elemenata koji stoje u takvom uzajamnom odnosu da ne postoje razdvojeni
podsustavi.

Djelovanje označava obavljanje radnji pretvorbe energije, obrade tvari ili obrade informacija.

Svrha označava konačan rezultat djelovanja/djelatnosti izražene u nekom cilju, a za


zadovoljavanje neke potrebe.

1
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

U Tablici 1.1. data su dva primjera koja pojašnjavaju pojmove djelatnosti, cilja i svrhe.
Navedeni su ciljevi kakvi bi logički trebali biti. Cilj farmacije bi trebao biti stvoriti lijek za
neku bolest kako bi ljudi bili zdravi. Cilj ulova ribe (ribolovna djelatnost) je prehrana
stanovništva.

Tablica 1.1: Usporedba djelatnosti, cilja i svrhe

DJELATNOST CILJ SVRHA


farmacija Lijek Zdravlje
ribolov Riba Ishrana

Automobil ne može djelovati samostalno, pa stoga nije sustav, iako je složena,


tehnička i svrhovita tvorevina. To je sprava (uređaj). Vozila, pisači, dizalice, letjelice i sl.
uglavnom nisu sustavi. Međutim, automobil s vozačem je mješoviti sustav. Mišolovka je
svrhovita tvorevina koja ne može djelovati bez vanjskog poticaja, pa nije sustav. Ovakve
svrhovite tehničke tvorevine (zamke, zvonca, alarmi, termometri) koje vanjskim poticajem
obave određenu radnju nazivaju se napravama.
Električni stroj za rublje je sustav, jer djeluje samostalno i svrhovito. Samostalno
djelovanje neke tvorevine, bilo prirodne, bilo tehničke, moguće je ako takva tvorevina
posjeduje vođenje. Vođenje (regulacija) je smisleno djelovanje na stanje energije i tvari u
nekom procesnom prostoru na način da se postigne ili očuva neki cilj, odnosno svrha procesa.
Vođenje se temelji na mjerenju i motrenju procesa pa je vođenje zapravo postupanje s
informacijama sa ciljem održavanja danog procesa. Motrenje je kad se određuje da li je nešto
npr. vruće ili hladno, a mjerenje kad se određuje kolika je temperatura, npr. 22ºC.

Automatika je znanstveno-tehnička disciplina čija su područja teorija vođenja, istraživanje i


analiza uvjeta djelovanja i zakonitosti vođenja različitih sustava te sinteza i gradnja sustava za
automatsko vođenje.

Automatizacija je tehnička disciplina koja obuhvaća sve mjere s kojima se smanjuje udio
ljudskog rada u proizvodnji i s kojima se postiže viši stupanj ekonomične i rentabilne
proizvodnje u pogledu utroška sirovine, energije i vremena.

Automacija ima širi smisao i označava razdoblje u razvoju proizvodnih snaga u kojem
strojevi zamjenjuju čovjeka u fizičkom radu i misaonim djelatnostima: opažanju, pamćenju i
odlučivanju.

Automacija je tehničko-ekonomska disciplina koju čine sve tehničke organizacije i


ekonomske discipline međusobno povezane za ostvarenje najbolje moguće proizvodnje.
Modeliranje je proces ljudskog uma i redovito je pojednostavljeni prikaz promatrane
stvarnosti [4]. Modeliranje je olašalo rješavanje sustava, problema oko izrade i njegov rad.
Cilj modeliranja je što više približiti promatrani sustav na što jednostavniji način, a pri tome
zadržati sve relevantne karakteristike istog. Modeliranje omogućuje lakšu izradu i uočavanje
potencijalnih problema, otkaza i kvarova te poboljšanja. Jedan od ciljeva modeliranja je
određivanje pouzdanosti i raspoloživosti sustava u cijelosti i pojedinih komponenti. Dakle,
može se reći da vrijedi definicija:

Modeliranje je proces u kojem se stvarni sustav predstavlja pojednostavljenim modelom.

2
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Model može biti matematički ili opisan grafički, kao npr. blok-dijagramom. Iz modela
se može napraviti računalni kod koji imitira rezultate koje daje sustav.
Postoji šest koraka u modeliranju bilo kojeg sustava:
1. definiranje sustava ili cilja simulacije,
2. identificiranje komponenti sustava,
3. modeliranje sustava s jednadžbama,
4. izrada blok dijagrama u simulacijskom programu (npr. Simulinku),
5. izvođenje simulacije i
6. potvrda rezultata simulacije.
Izvođenje prva 3 koraka ovog procesa je izvan Simulinka (ako se radi u programskom
paketu Matlab) prije nego se počne izrađivati blok dijagram.

Definiranje sustava: Prvi korak modeliranja dinamike sustava je njegova potpuna definicija.
Ako se modelira veliki sustav koji može biti podijeljen u više dijelova, svaki dio se modelira
odvojeno. Nakon stvaranja modela tih dijelova, vrši se integriranje u kompletni model
sustava.

Identificiranje komponenti sustava: Drugi korak u procesu modeliranja je identifikacija


komponenti.
3 tipa komponenti koji definiraju sustav su:
Parametri — vrijednosti sustava koje su konstantne ako ih ne promijenimo,
Stanja — varijable u sustavu koje se mijenjaju s vremenom i
Signali — ulazne i izlazne vrijednosti koje se mijenjaju dinamički tijekom simulacije.
U Simulinku, parametri i stanja su dani blokovima, dok su signali dani linijama koje
spajaju blokove. Za svaki podsustav koji je identificiran, bez obzira na programski paket,
potrebno je postaviti pitanja:
• Koliko ulaznih signala podsustav ima?
• Koliko je izlaznih signala podsustava?
• Koliko stanja (varijabli) ima podsustav?
• Koji su parametri (konstante) u podsustavu?
• Postoje li unutarnji signali podsustava?
Kada se odgovori na ta pitanja dobiva se popis komponenti sustava i može se početi
modeliranje.

Modeliranje sustava jednadžbama je treći korak: Potrebno je formulirati matematičke


jednadžbe koje opisuju sustav. Jednadžbe se pišu za svaki podsustav, a pri tome se koristi
popis komponenti. Model može uključivati: algebarske jednadžbe, logičke jednadžbe,
diferencijalne jednadžbe (za kontinuirane sustave) te jednadžbe diferencija (za diskretne
sustave). Te se jednadžbe koriste za stvaranje blok dijagrama u Simulinku.

Izrada (Simulink) blok dijagrama: Blok dijagram se izrađuje za svaki podsustav odvojeno.
Nakon modeliranja svakog podsustava, oni se integriraju u jedinstveni model sustava.

Izvođenje simulacije: Izvodi se simulacija i analiziraju rezultati.

Potvrda (validacija) simulacijskih rezultata: Cilj ovog koraka je ispitati da li model točno
opisuje fizikalne karakteristike sustava.

Slika 1.1. algoritamskim načinom prikazuje proces simuliranja.


Struktura simulacijskog procesa nije strogo sekvencijalna, što znači da je moguć

3
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

povratak na prethodne korake procesa, ovisno o dobivenim rezultatima u pojedinim fazama


procesa.

Slika 1.1: Dijagram toka simulacijskog procesa

Blok za planiranje simulacijskog eksperimenta i njegovo izvođenje sa slike 1.1


označava planiranje simulacijskih eksperimenata koji omogućuju ispunjenje cilja simulacije.
Analiza rezultata eksperimenta je statistička analiza rezultata simulacijskog eksperimenta.
U literaturi se susreće i drukčija podjela procesa simulacije. Prema drugom pristupu,
postupak simulacije unutar Simulinka se može podijeliti na tri faze, i to na:
1. Prevođenje modela,
2. Povezivanje modela i
3. Simulacija.

Prevođenje modela
U ovoj se fazi model prevodi u izvršni oblik, pri čemu se obavljaju sljedeće operacije:
• Izračunavaju se parametri blokova,
• Određuju se svojstva signala,

4
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

• Provodi se postupak optimizacije s ciljem reduciranja broja blokova u shemi,


• Virtualni blokovi se zamjenjuju blokovima koje oni sadrže,
• Formira se lista blokova koja se u fazi povezivanja modela koristi kao polazište za
određivanje poretka izvršavanja blokova,
• Određuju se vremena uzorkovanja blokova za koje vrijeme uzorkovanja nije
eksplicitno navedeno.

Povezivanje modela
U ovoj se fazi priprema memorija potrebna za spremanje signala, stanja, izlaza i
ostalih parametara simulacije. Nadalje, na temelju liste blokova stvorene u prethodnoj fazi,
određuje se najefikasniji poredak izvršavanja blokova kako eventualno ne bi došlo do pojave
algebarskih petlji. Pritom se uzima u obzir i eventualna razina prioriteta koju korisnik može
dodijeliti pojedinom bloku.

Simulacija
O ovoj fazi Simulink sukcesivno izračunava stanja i izlaze iz sustava u vremenskim
trenucima koji mogu, ali i ne moraju biti u jednolikim razmacima što ovisi o odabranom
rješavaču diferencijalnih jednadžbi (eng. solver).

Suvremeno modeliranje je praktički nezamislivo bez računala odnosno računalnih


programa, koja se u modeliranju koriste prvenstveno u dvije svrhe:
- razvoj modela i
- izvođenje proračuna.
Izraz "modeliranje i simulacija" označava složenu aktivnost koja uključuje tri
elementa: realni sustav, model i računalo.

Na kraju treba vidjeti i zašto je Matlab izabran za simuliranje i modeliranje. Neke


prednosti Matlaba u usporedbi s "klasičnim" programskim jezicima poput Fortran-a ili C-a su:
 interaktivno sučelje omogućava brzo eksperimentiranje (Matlab je intrepretirani jezik
za razliku od, npr. Fortrana, koji je prevođen - kompajliran),
 potrebna je minimalna briga oko podatkovnih struktura (praktički nema deklaracija
varijabli i polja osim ako se želi točno nešto definirati na neki poseban način),
 Matlab omogućava brzo i lako programiranje (zahvaljujući moćnom matričnom
konceptu),
 ugrađeni grafički podsustav omogućava jednostavnu, kvalitetnu i brzu vizualizaciju,
 programi pisani u Matlabovom jeziku (tzv. m-datoteke) su obične tekstualne datoteke
i stoga su potpuno prenosive između različitih operacijskih sustava/platformi,
 postoje mnogobrojni dodatni paketi (alatke, engl. toolbox), tj. skupine m-datoteka za
razna specijalna područja i postoje mnogobrojne m-datoteke i čitavi paketi koje autori,
ujedno i korisnici, stavljaju na slobodno raspolaganje putem Interneta.

5
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

2. UPOTREBA MATLAB/OCTAVE PROGRAMSKIH LINIJA

M-datoteke su obične tekstualne datoteke koje sadrže Matlab-ove naredbe (programe)


te imaju ekstenziju (oznaka iza točke u imenu datoteke) "m". Postoje dvije vrste m-datoteka:
skripte i funkcije (u užem smislu). Zajedničko im je sljedeće:
• % je znak za komentar. Matlab i Octave ignoriraju sve što se u nekoj liniji nalazi iza
znaka % do kraja linije. U novijim inačicama Matlaba postoji skupno komentiranje
više linija "%{… linije pod komentarom … %}".
• Prve linije u datoteci koje počinju s % sadrže opis programa. On je prekinut prvom
linijom koja ne počinje s %. Prve linije pod komentarom ispisuju se u glavnom
prozoru Matlaba naredbom help <ime_datoteke> (bez nastavka "m"!).
• Format linije je slobodan, pri čemu jedna linija može sadržavati više naredbi
odvojenih zarezom ili točka-zarezom. Treba znati da se rezultat svake naredbe koja ne
završava točka-zarezom odmah ispisuje na zaslon - što se najčešće ne želi.
• "..." je znak za nastavak linije.
Skripta je vanjska ili korisnička datoteka koja sadrži niz Matlabovih izraza. Tipkanjem
imena datoteke, izvršavaju se te naredbe (izrazi) po redu kako su napisani. Skripte imaju
ekstenziju “.m” i često se nazivaju m-file-ovima. Najjednostavniji su oblik programa u
Matlabu.
Skripte mogu koristiti podatke iz rade memorije ili kreirati nove podatke za rad.
Skripte ne mogu davati izlaze, ali svi podaci koje je skripte obradila ostaju u radnom prostoru
Matlaba pa se mogu koristiti u glavnom prozoru za daljnji rad.
Skripte sadrže niz Matlab izraza koji ne zahtjevaju posebno deklariranje na početku ili
negdje u programu. Mogu sadržavati komentare, koji mogu biti samostalne linije ili dio bilo
koje druge linije.
Upišite u programu za uređivanje ( ) koda sljedeći niz naredbi:

Nakon toga spremite u radni direktorij funkciju pod imenom "pozdrav.m". Upišite
novodefiniranu funkciju u glavni prozor Matlaba:

» pozdrav Poziv funkcije


Dobar dan! Ovo ispisuje Matlab kao izvršenje funkcije
» Promt je znak spremnosti za novu naredbu

Nakon upisivanja imena funkcije, računalo u glavnom prozoru ispisuje tekst "Dobar
dan!", te javlja da očekuje nove naredbe (znak "»"). Upisivanje naredbe edit pozdrav otvorit
će se u programu za editiranje tražena datoteka pozdrav.m.

2.1. Korištenje glavnog prozora MatLab-a u analizi automatskih sustava s pomoću


prijenosne funkcije

Matlab se može koristiti tako da se upisuju izravne naredbe u glavni prozor (engl.
Comand Window). To je prozor koji se otvara pri pokretanju Matlab-a. U glavnom prozoru na
početku retka stoji "»", što označava da je MatLab spreman za rad. Ako nema tog znaka,

6
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

znači da se izvršava neka naredba. Naredba se počinje izvršavati pritiskom tipke "↵"
(ENTER) na tipkovnici.
Naredbom whos uvijek se može provjeriti koje su varijable u memoriji, npr:
» whos
Name Size Bytes Class
brojnik 1x2 16 double array
nazivnik 1x3 24 double array
p1 1x2 16 double array
p2 1x2 16 double array
Grand total is 9 elements using 72 bytes
Matlab ima široko područje brojeva s kojima može računati pa se zato označavaju s
pomoću potencija. Tako je npr. 1.00e+000 isto što i 1⋅ 100 = 1. Slovo "e" označava eksponent
broja 10.

0,3s + 1
Primjer 2.1: U ovom primjeru razmotirit će se prijenosna funkcija W ( s ) = 2
.
s + 1,5s + 0,5
Potrebno je odrediti: a) raspored nula i polova, b) geometrijsko mjesto korijena, c) vremenski
odziv na jediničnu odskočnu funkciju, d) Bodeov dijagram, e) Nyquistov dijagram.
(Napomena: U Matlabu se decimalni brojevi označavaju s decimalnom točkom, a zarez znači
drugi broj ili element u matrici).

Primjetite da je:

s 2 + 1,5s + 0,5 = s 2 + s + 0,5s + 0,5 = s(s + 1) + 0,5(s + 1) = ( s + 1)(s + 0,5)

Prvo treba unijeti podatke u računalo W(s):

» brojnik = [.3 1];


» p1 = [1 1];
» p2 = [1 .5];
» nazivnik = conv(p1, p2); % umnožak dva izraza obavlja se konvolucijskom instrukcijom
» H = tf (brojnik, nazivnik);

Poslije svakog retka pritišće se tipka "↵" (ENTER) na tipkovnici. MatLab-ov


programski jezik napravljen je tako da pisanjem ";" ne ispisuje rezulat instrukcije ispred, a
ako se točka-zarez izostavi, ispisuje, npr. nakon:

» brojnik = [.3 1]

brojeve .3 i 1, jer nije stavljena točka-zarez na kraju retka.

a) Iz prijenosne funkcije je vidljivo da su polovi za s = - 0,5 i s = -1, jer je tada nazivnik


jednak nuli, a nula za s = -3,333, jer je tada brojnik jednak nuli.
Raspored nula i polova dobiva se s naredbom

» pzmap(H);

Stiskanjem tipke "↵" (ENTER) otvara se grafički prozor prikazan na slici 2.1.

7
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 2.1: Raspored nula i polova zadane prijenosne funkcije

Prirodne frekvencije i koeficijenti prigušenja se dobivaju naredbom:

» damp(H)

Računalo ispisuje rezultat naredbe:

Svojstvena vrijednost Prigušenje Frekvencija(rad/s)


Eigenvalue Damping Freq. (rad/s)

-5.00e-001 1.00e+000 5.00e-001


-2.00e-001 + 9.80e-001i 2.00e-001 1.00e+000
-2.00e-001 - 9.80e-001i 2.00e-001 1.00e+000

Svojstvene vrijednosti su značajne, jer predstavljaju rješenje karakteristične jednadžbe


za neki sustav.

b) Geometrijsko mjesto korijena (GMK) dobiva se naredbom:

» rlocus(H);

Stiskanjem tipke "↵" otvara se grafički prozor prikazan na slici 2.2.

8
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 2.2: GMK razmatranog sustava

c) Vremenski odziv na jediničnu odskočnu funkciju dobiva se naredbom:

» step(H)

Stiskanjem tipke "↵" otvara se grafički prozor prikazan na slici 2.3.

Slika 2.3: Odziv sustava opisanog prijenosnom funkcijom W


d) Matlab računa stvarni, a ne asimptotski Bodeov dijagram. Dobiva se naredbom:

9
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

» bode(H)

Slika 2.4: Bodeovi amplitudni i frekvencijski dijagram

e) Nyquistov dijagram dobiva se naredbom:

» nyquist(H)

Stiskanjem tipke "↵" otvara se grafički prozor prikazan na slici 2.5.

Slika 2.5: Nyquistov dijagram

10
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

2.2. Iscrtavanje realnih podataka

U ovom potpoglavlju dat je primjer korištenja Matlab/Octave programskih paketa za


iscrtavanje realnih industrijskih podataka. U ovom primjeru iscrtat će se podaci o variranju
napona, stuje, djelatne i jalove snage u realnom postrojenju.
Električna trošila pored djelatne snage uzimaju iz mreže i određeni iznos jalove snage.
Tipična trošila jalove snage u mreži su asinkroni motori, transformatori, prigušnice, a tipični
izvori viših harmonika (usto i trošila jalove snage) su regulirani elektromotorni pogoni,
ispravljači i lučne peči. Jalova snaga dodatno opterećuje prijenosne elemente u mreži, stvara
gubitke, a prekomjerno uzeta jalova energija (više od 33% djelatne) se naplaćuje.
Viši harmonici mogu izazvati rezonancije s elementima mreže, a s tim u vezi dodatna
izobličenja napona. Zato je povoljno kompenzirati jalovu snagu, odnosno popraviti faktor
snage trošila i potpisivati više harmonike na iznos koji omogućava nastajanje štetnih pojava u
mreži.
Za popravke faktora snage u elektroenergetskim postrojenjima primjenjuju se:
- rotacioni kompenzatori,
- kompenzacija kondenzatorima:
• statička (pojedinačna i grupna),
• dinamička (izravna i neizravna).
U novije je vrijeme tehnologija izrade kondenzatora za kompenzaciju tako napredovala da su
oni postali univerzalno rješenje za industrijska i distributivna postrojenja.
Jalova snaga prije kompenziranja prikazana je na slici 2.6. s ܳଵ = ܲଵ ‫߮݃ݐ‬ଵ , a nakon
kompenziranja s ܳଶ = ܲଵ ‫߮݃ݐ‬ଶ . Za ovu kompenzaciju potrebna je snaga kondenzatora.

ܳଵ = ܲଵ ሺ‫߮݃ݐ‬ଵ − ‫߮݃ݐ‬ଶ ሻሾܸ݇‫ݎܣ‬ሿ (2.1)

Slika 2.6: Trokut snage kod kompenzacije faktora snage

gdje su:
P1 – radna snaga,
S1 – ukupna snaga,
Q1 – jalova snaga prije kompenziranja,
Q2 – jalova snaga nakon kompenziranja,
Qc – snaga kondenzatora,
߮ଶ - kut koji određuje faktor snage nakon kompenzacija i
߮ଵ - kut koji određuje faktor snage prije kompenzacije.
Osim što jalova snaga, a s njom i viši harmonici, opterećuju trošila spojena na mrežu,
a u krajnju ruku zbog rezonancije dovode do štetnih utjecaja, bitni razlog kompenziranja je
cijena koja se plača za prekomjerno uzetu jalovu snagu iz distribucije. Faktor snage je veličina
izražena kosinusom kuta između ukupne preuzete snage i korištene djelatne snage. Ukoliko je

11
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

taj kut takav da je cos ߮ > 0,95 induktivno ili kapacitivno, ta količina jalove snage se ne
naplačuje.
U industrijskim i brodskim postrojenjima postoji veliki broj trošila koja crpe jalovu
snagu iz mreže. To mogu biti regulirani DC i AC motori te transformatori napona. U svrhu
kompenzacija obično je instalirano više grana kompenzacije.
U nastavku će se prikazati načelo kompenziranja jalove snage na dovodu 35 kV s
trafostanice „Kaštela“ u krug „Željezare“. Prikazana su variranja napona, struje, djelatne i
jalove snage u ovisnosti o vremenu, te faktor snage proračunat iz podataka djelatne i jalove
snage također u ovisnosti o vremenu.

Tablica 2.1: Realni vremenski podaci o variranju napona, struja i snaga iz industrijskog
pogona u razmacima od 18 sekundi

Vrijeme Napon [kV] Struja [A] P [MW] Q [MVAr]


11:47 34,84 27,29 1,6 -0.4
: 34,84 27,95 1,3 -0.3
: 34,68 26,78 2,8 0.7
: 34,59 35,04 3,0 1.2
34,58 50,29 3,1 1.25
34,55 54,38 3,2 1.4
34,50 57,48 3,2 1.4
34,85 62,64 1,4 -0.2
34,88 20,80 1,4 -0.45
34,93 22,29 1,3 -0.6
11:50 34,91 22,29 1,4 0.55
: 34,89 29,82 1,5 -0.3
: 34,84 29,02 1,5 -0.2
: 34,71 31,65 1,4 -0.2
34,79 31,38 1,6 -0.3
34,69 55,90 3,0 0.7
34,59 58,15 3,1 0.8
34,59 60,02 3,3 0.9
34,58 60,89 3,2 1.2
34,56 48,45 3,1 1.3
11:53 34,75 28,85 2,6 0.1
: 34,87 34,73 1,4 -0.5
: 34,67 57,79 2,8 0.9
: 34,56 67,66 3,0 1.2
34,53 65,54 3,2 1.1
34,50 63,34 3,0 1.3
34,46 59,65 3,0 1.4
34,74 25,28 1,6 -0.2
34,78 55,90 1,5 -0.1
34,59 50,29 7,6 0.7
34,58 67,69 3,0 1.2

Sljedeći niz naredbi omogućuje iscrtavanje ovisnost efektivne vrijednosti napona o vremenu:

» clear all;

12
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

» U=[34,84 34,84 34,68 ... 34,58]; % umjesto ... potrebno je unjeti sve vrijednosti iz stupca
% ili ih učitati iz neke datoteke
» t=0:18:550;
» plot(t,U); grid;

Rezultat je prikazan na slici 2.7.

Slika 2.7: U-t graf

Sljedeći niz naredbi omogućuje iscrtavanje ovisnosti promjene efektivne vrijednosti


struje o vremenu:

» clear all;
» I=[27,29 27,95 26,78 ... 55,90]; % umjesto ... potrebno je unjeti sve vrijednosti iz stupca
» t=0:18:550;
» plot(t,I); grid;

Matlab naredbe za iscrtavanje djelatne i jalove snage su:

» clear all;
» P=[1,6 1,3 2,8 ... 3,0]; % umjesto ... potrebno je unjeti sve vrijednosti iz stupca
» Q=[-0,4 -0,3 0,7 ... 1,2]; % umjesto ... potrebno je unjeti sve vrijednosti iz stupca
» t=0:18:550;
» plot(t,P);
» hold
» plot(t,Q);
» grid;

13
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 2.8: I-t graf

Slika 2.9: P-t graf (gornja krivulja) te Q-t graf (donja krivulja)

Iscrtani grafovi pomažu u proučavanju trendova i izračunu potrebne kompenzacije.

14
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

2.3. Analiza električnih krugova u Matlab/Octave

U Matlab/Octave glavnom prozoru mogu se izvršiti proračuni električnih krugova uz


prethodnu pripremu. U ovom potpoglavlju dano je par primjera.

2.3.1. Određivanje potencijala čvorova

Primjer 2.2: Odredite potencijal svakog čvora kruga sa slike.

Označimo potencijale čvorova 1, 2 i 3 s ϕA, ϕB i ϕC. Jednadžbe prvog Kirchhoffovog zakona


za te čvorove glase:
• Za potencijal ϕc (točka 2): I R 4 = I R1 + I R3
• Za potencijal ϕB (točka 3): I R 2 = I R3
Te treba dodati očitu jednadžbu, jer je naponski izvor izravno spojen na čvor 1 (potencijal
ϕA):
• ϕ A = U1

što znači da je već poznat jedan napon čvora.

Slika 2.10: Zadani krug za analizu potencijalom čvorova

Iz jednadžbi prvog Kirchhoffovog zakona slijedi:

ϕC U1 − ϕC ϕ B − ϕC
= +
R4 R1 R3
ϕA −ϕB ϕ B − ϕC
=
R2 R3
Grupiranjem se dobiva:

15
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

U1  1 1 1  ϕ
=  + +  ⋅ ϕ C − B
R1  R1 R3 R4  R3
ϕA ϕ  1 1 
= − C +  +  ⋅ ϕ B
R2 R3  R2 R3 

Ako se matricama želi riješiti sustav, tada je potrebno definirati matrice sustava tako da je:

A=BC

gdje su:

U 1   1 1 1  1 
  + +  − 
R  R1 R3 R4  R3  ϕ C 
A=  , B =
1   , C =  .
U 1   1  1 1  ϕ B 
 −  + 
 R2  R3
  R2 R3 

% Unošenje podataka:
»U1= 2;
»R1= 330;
»R2= 70;
»R3= 160;
»R4= 270;
% Definiranje matrice sustava i vektora struja
»B=[1/R1+1/R3+1/R4 -1/R3;
-1/R3 1/R3+1/R2];
»A=[U1/R1; U1/R2];
% Izračun potencijala čvorova C i B po redu:
»C=inv(B)*A

Računalo ispisuje rješenje:

C=

1.3316
1.7966

što znači da je potencijal čvora C 1,33 [V], a čvora B 1,7966 [V].

2.3.2. Proračun prijenosnih linija

Primjer 2.3: Za prijenosnu liniju sa slike odredite ulaznu impendanciju uz 0 < β i d < 0 za
Z
slučaj kada je T = 0,1 .
Z0

16
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 2.11: Prijenosna linija

Prijenosne linije su razmatrane u više kolegija tijekom studija. Iz teorije o njima poznato je da
vrijedi:
Z ul Z T + jZ 0 tg (βl )
= (2.2)
Z 0 Z 0 + jZ T tg (βl )

Da bi se taj rezultat izrazio preko zadanog omjera potrebno je desnu stranu (i brojnik i
nazivnik) podijeliti sa Z0:

ZT
+ jtg (β l )
Z ul Z0
= (2.3)
Z 0 1 + j Z T tg (β l )
Z0

U Matlab-u ili Octave-u se može isprogramirati više verzija rješenja: s fiksnim


omjerom, s unosom proizvoljnog omjera ili s analizom određenog opsega za omjere. To znači
da je bilo koji od iduća tri koda ispravan.

% Zadana točno određena vrijednost


clear;
clf;
beta_d=0:0.02:2*pi;
ZT_Z0=0.1;
Zul_norm=(ZT_Z0+i.*tan(beta_d))./(1+ZT_Z0.*i.*tan(beta_d));
subplot(211); plot(beta_d./(pi),abs(Zul_norm))
xlabel('{\beta}d (normaliziran na pi)'); ylabel('|Z_{ul}|/Z_0')
subplot(212); plot(beta_d./(pi),angle(Zul_norm)./(pi))
xlabel('{\beta}d (normaliziran na {\pi})')
ylabel('Faza(Z_{ul}) (normalizirana na {\pi})'); axis([0 2 -0.5 0.5])

% unos bilo kojeg omjera:


clear;
clf;
beta_d=0:0.02:2*pi;
ZT_Z0=input('Unesite omjer ZT/Z0 ');
Zul_norm=(ZT_Z0+i.*tan(beta_d))./(1+ZT_Z0.*i.*tan(beta_d));
subplot(211); plot(beta_d./(pi),abs(Zul_norm))
xlabel('{\beta}d (normaliziran na pi)'); ylabel('|Z_{ul}|/Z_0')
subplot(212); plot(beta_d./(pi),angle(Zul_norm)./(pi))
xlabel('{\beta}d (normaliziran na {\pi})')
ylabel('Faza(Z_{ul}) (normalizirana na {\pi})'); axis([0 2 -0.5 0.5])

17
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

% Iscrtavanje rezultata za različite omjere


clear;
clf;
beta_d=0:0.02:2*pi;
for ZT_Z0=0.1:0.1:2;
Zul_norm=(ZT_Z0+i.*tan(beta_d))./(1+ZT_Z0.*i.*tan(beta_d));
subplot(211); plot(beta_d./(pi),abs(Zul_norm)); hold on;
xlabel('{\beta}d (normaliziran na pi)'); ylabel('|Z_{ul}|/Z_0')
subplot(212); plot(beta_d./(pi),angle(Zul_norm)./(pi)); hold on
xlabel('{\beta}d (normaliziran na {\pi})')
ylabel('Faza(Z_{ul}) (normalizirana na {\pi})')
end

Slika 2.12 prikazuje više krivulja, kao rezultat različitog izbora omjera. Zadani omjer
dan je na gornjoj slici, a svi u opsegu od 0,1 do 2 na donjoj. Crvena crta je za omjer 0,1, a
plava 2.

10
|Zul|/Z0

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
βd (normaliziran na pi)
Faza(Zul) (normalizirana na π)

0.5

-0.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
βd (normaliziran na π)

18
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

10
|Zul|/Z0

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
βd (normaliziran na pi)
Faza(Zul) (normalizirana na π)

0.5

-0.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
βd (normaliziran na π)

Slika 2.12: Grafički prikaz rješenja Primjera 2.3

2.3.3. Rješavanje izmjeničnih krugova u području kompleksne frekvencije

Primjer 2.4: Zadan je Butterworthov NP filter trećeg reda kao na slici. Nađite odziv (izlaz)
 π
uizl(t) na zadani ulaz uul(t): u ul = 1,5 ⋅ sin  2 ⋅ π ⋅ f1 ⋅ t −  + 4 ⋅ sin (2 ⋅ π ⋅ f 2 ⋅ t ) . Zadano je: R =
 4
10 [Ω], L1 = 1 [H], L2 = 0,25 [H] i C = 0,66 [F].

Slika 2.13: Zadani NP Butterworthov filter 3. reda

»f1=0.1;
»w1=2*pi*f1;
»f2=1.6;
» w2=2*pi*f2;
»T_uk=2/f1;
»N=10001;
»t=linspace(0,T_uk,N);

19
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

»uul=1.5*sin(w1*t-pi/4)+4*sin(w2*t);
»plot(t,uul)
»grid on
»xlabel('t [s]');
»ylabel ('u_u_l');

2
uul

-2

-4

-6
0 2 4 6 8 10 12 14 16 18 20
t [s]

Slika 2.14: Ulazni napon

U frekvencijskom području drugi Kirchhoffov zakon za dvije nezavisne konture prema


slici može se napisati:

1
jωL1 I 1 + (I1 − I 2 ) = U ul
jω C
1
jωL2 I 2 + RI 2 − (I 1 − I 2 ) = 0
jω C

Da bi se izračunao izlazni napon, potrebno je izračunati fazor struje I2 ili u matričnom obliku
vektor struja. To će se postići sljedećim programskim kodom:

»R = 10;
»L1 = 1;
»L2 = 0.25;
»C = 0.66;
»f1 = 0.1;
»w1 = 2*pi*f1;
»f2 = 1.6;
»w2 = 2*pi*f2;
»w = [w1 w2];

20
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

»Uul = [1.5*exp(-j*pi/4) 4];


»Tuk = 2/f1;
»N = 1001;
»t = linspace (0, Tuk, N);
»u = zeros(1, N);
»for k=1:2
ZL1 = j*w(k)*L1;
ZL2 = j*w(k)*L2;
ZC = 1/(j*w(k)*C);
Z = [ZL1+ZC -ZC
-ZC ZC+ZL2+R];
U = [Uul(k) 0]';
Y = inv(Z);
I = Y*U;
U(k) = R*I(2);
u = u + abs(U(k))*sin(w(k)*t+angle(U(k)));
»end;
»plot(t, u);
»xlabel('t [s]');
»ylabel ('U_i_z_l')

Rezultat je prikazan na slici 2.15a. Ako se želi usporediti ulazni i izlazni signal
potrebno je nakon izvođenja programskog koda za icrtavanje ulaznog napona upisati naredbu
za zadržavanje iscrtanog grafa (hold on) te potom primjeniti kod za izraćun izlaznog napona.
Zadnja plot nareba će u istoj slici iscrtati i izlazni napon. Da bi se lakše razlikovali ulaz i
izlaz, izlazni napon iscrtan je crvenom bojom. Združeni graf je prikazan na slici 2.15b.
Može se primjetiti da je zadani filter skoro u potpunosti poništio utjecaj više
frekvencijske komponente. Bolji ili lošiji rezultat se može postići promjenom L1, L2, C i R
i/ili ulaznog napona.

2.5

1.5

0.5
Uizl

-0.5

-1

-1.5

-2

-2.5
0 2 4 6 8 10 12 14 16 18 20
t [s]

a)

21
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

4
Uizl (crveno), Uul (plavo)

-2

-4

-6
0 2 4 6 8 10 12 14 16 18 20
t [s]

b)

Slika 2.15: a) Izlazni napon iz filtra, b) usporedba ulaznog i izlaznog napona.

2.4. Strukture, statistika, animacije, mjere učinkovitosti

Kada se analiziraju podaci, potrebno je izračunati statistiku, tj. neku od statističkih


veličina. Matlab ima ugrađen niz funkcija koje računaju određene statistike. Neke poznate
veličine su npr. mean, median, mode, itd. Za njih postoje ugrađene funkcije („built-in
functions'').
Jedna od statistika je histogram. Ako se želi odrediti histogram nekog vektora, može
se postupiti na sljedeći način. Prvo će se definirati slučajni vektor za koji se želi izračunati
histogram:

» vektor = 100*rand(1,100);

Gornja linija znači da se rezervira prostor u memoriji za vektor veličine 100 članova
koji su slučajno generirani. Ako se želi samo rezervirati prostor bez definiranja koji su brojevi
na nekom mjestu, može se koristiti naredba zeros (1,100). Podaci se mogu grupirati u
histogram naredbom:

» hist(vektor,5:10:95);

koja iscrtava histogram s točkama centriranim u 5, 15, 25…95 ili s:

» N=histc(vektor,0:10:100);

Ovaj primjer daje broj pojavljivanja između određenih vrijednosti (u intervalima): 0


<10, 10 <20… , 90 <100. Može se koristiti i naredba hist(vektor), kod koje se automatski
određuju intervali ili hist(vektor, 100) kod kojeg su dane sve vrijednosti od 1 do 100.

22
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Mnogi procesi u vjerojatnosti oslanjaju se na slučajne brojeve. MATLAB sadrži


ugrađene naredbe s uobičajenim distribucijama. Tako npr. rand vuče brojeve uniformnom
distribucijom u intervalu od 0 do 1. Naredbom randn dobivaju se brojevi standardnom
normalnom distribucijom (Gauss). Naredba random daje slučajne brojeve iz više distribucija.
Detaljan opis može se naći utipkavanjem doc random. U dokumentaciji također postoji lista
specifičnih funkcija.
Dana distribucija se može izmijeniti. Tako npr. naredba:

» y=rand(1,100)*10+5;

daje 100 ravnomjerno distribuiranih brojeva između 5 i 15.

» y = floor(rand(1,100)*10+6);

daje 100 ravnomjerno distribuiranih cijelih brojeva između 10 i 15. U ovom slučaju je bolje
koristiti naredbu floor ili ceil (pod – donja vrijednost ili krov – gornja vrijednost) nego round
(zaokruži).

» y = randn (1,1000);
» y2 = y*10+16;

povećava standardnu devijaciju na 10 i srednju vrijednost na 16. Histograme se može iscrtati


naredbom hist te je rezultat prikazan na Slici 2.16. Vidi se da je valni oblik histograma ostao
isti, ali je promjenjeno mjerilo x-osi zbog skaliranja i pomaka.

y
300

250

200

150

100

50

0
-4 -3 -2 -1 0 1 2 3 4

a)

23
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

y2
300

250

200

150

100

50

0
-20 -10 0 10 20 30 40 50 60

b)

Slika 2.16: Histogram: a) početnog vektora (y), b) modificiranog vektora (y2)

Primjer 2.5: Kao ilustraciju primjene generiranja slučajne vrijednosti, izvšite simulaciju
Brownian-ove kretnje u 1 dimenziji.

Kod ove vrste kretnje određuje se u kojem smjeru se skreće u ovisnosti o vrijednosti
slučajnog broja. Prvo se definira vektor s članovima 0 proizvoljnog broja elemenata, npr.
10000. Napisat ćemo petlju da bi pratili položaj čestice u svakom trenutku. Start je u 0. Da bi
dobili novi položaj, odabrat ćemo slučajan broj i ako je < 0.5, kretnja je ulijevo, a za > 0.5
udesno. Pohranjuju se novi položaji na njihovim mjestima u vektoru. Potom se iscrtava
histogram s 50 intervala u kojima su položaji čestice. Sve će se izvršiti pozivanje sljedeće
skripte (može se nazvati proizvoljno, npr. brown.m prema imenu kretnje.

x=zeros(10000,1);
for n=2:10000
if rand<0.5
x(n)=x(n-1)-1;
else
x(n)=x(n-1)+1;
end
end
figure;
hist(x,50);

24
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

600

500

400

300

200

100

0
-60 -40 -20 0 20 40 60 80

Slika 2.17: Primjer razultata za Brownovo kretnje

Napomena: kako je riječ o generiranju slučajnih brojeva, vaš graf može ispasti drukčiji od
grafa na gornjoj slici.

Dok je samorazumljivo upotrebljavanje vektora, tj. jednostupčastih ili jednorednih


matrica, sam naziv Matlaba upućuje da je razumljivo i upotrebljavanje 2D matrica u
proračunima. One su korisne kod obrade i analize slika koje nisu u boji. Već kod slika s
bojom, potrebno je imati 3 sloja 2D matrica, tj. 3D matircu. Matlab omogućuje formiranje n-
dimenzionalnih matrica. Pri tome svaki element mora biti istog tipa (integers/cjelobrojni,
doubles/dvosturke preciznosti, characters/znakovi, itd). Matrice su prostorno-učinkovite i
povoljne za izračun.
Ponekad su druge složene strukture podataka pogodnije za određeni problem, kao npr.
polja ćelija (engl. cell array), koja su slična poljima podataka (tzv. tipu array), ali elementi ne
moraju biti istog tipa, ili strukture (engl. structs), koje mogu čuvati imena varijabli i njihove
vrijednosti unutar jedne strukture. Ovo je slično objektno orijentiranom programiranju u
Matlab-u.
Ćelija je kao matrica, samo što svaki član te matrice (polja) može sadržati bilo kakav
tip podataka (čak i druge matrice).

25
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 2.18: Primjer polja ćelija

Slika 2.18 prikazuje primjer polja ćelija. U lijevom stupcu su ćelije sa znakovima, tj.
imena ljudi. U srednjem stupcu su brojčane vrijednosti. Gornja desna ćelija sadrži
jednostupčasz matricu s dva elementa, a donja desna ćelija je prazna. To znači da se
određenim ćeijama mogu pridruživati određeni podaci, kao npr. plaća, broj djece ili sl.
Isto bi se moglo učiniti s matricama, ali je za to potrebno najmanje 3-dimenzionalna
matrica. Pri tome je prostor gdje ne treba treća dimenzija nepotrebno zauzimanje memorije.
Za razliku od matrica, structure I polja ćelija potrebno je inicijalizirati definirajući tip
I veličinu podataka u pojedinim ćelijama, tj. alocirajući potrebnu memoriju.
Da bi se inicijalizirala ćelija potrebno je odrediti njenu veličinu, npr:

»a=cell(3,10);

Ovo znači: a je ćelija s 3 reda i 10 stupaca.


Čelija se može ručno upisati u zagradama {}, npr:

»c={'pozdrav svijetu',[1 5 6 2],rand(3,2)};

U tom slučaju, c je ćelija s 1 redom i 3 stupca. Svaki element ćelije može biti bilošto. Da bi se
pročitao ili zapisao neki element koriste se zagrade {}. Primjeri zapisivanja podataka su:

»a{1,1}=[1 3 4 -10];
»a{2,1}='pozdrav';
»a{1,2}=c{3};

Čitanje se izvršava pozivom određene ćelije, npr. a{1,2} ili c{2}.


Strukture dopuštaju da se relevantne varijable nazovu svojim imenom iako su unutar
strukture. Poput su C-struktura, koje su objekti s poljima (fields). Da bi se inicijalizirale
prazne strukture koristi se naredba:

»s=struct([]);

Kada bi ispitali veličinu ove strukutre sa size(s), u ovom slučaju bio odgovor bio 1x1.
Incijalizacija je opcijska, ali je preporučljiva kada su u pitanju velike strukture
Dodavanje polja vrši se na način:

»s.ime= 'Perica Pisac';


»s.rezultati= [95 98 67];

26
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

»s.godina= 'G3';

Ne treba zaboraviti da polja mogu biti svašta, kao: matrice, ćelije, pa čak i druge
strukture. Korisne su za držanje varijabli zajedno. Za više infromacija možete pogledati doc
struct.
Napomena: Za verzije Matlaba poslije 7.12.0 (2011a i b), ne može se prazna struktura
inicijalizirati (kao kod s=struct([])) pa se onda mora koristiti dodavanje ćelija (kao npr. s.ime,
itd), jer to ne prihvaća R2012. Međutim, bez linije s=struct radi, jer Matlabi od R2012
automatski sami formiraju s stukturu.
Iz ćelija se pože pozvati točno određeni podatak. Uzmimo za primjer:

» S=struct(‘ime’,{‘Igor’,’Ivica’},’godine’,[3 6]);

Ako se želi dobiti prvo ime potrebno je upisati:

» S(1).ime

Da bi se inicijalizirala struktura, potrebno je zadati polje i vrijednosti parova:

» ppl=struct('ime',{'Ivan','Igor','Ana'},'starost', {33, 25, 18},'starost_djece',{[2;4],1,[]});

Veličina s2 =1x3. Svaka ćelija mora imati istu veličinu.

» osoba=ppl(2);

Osoba je struktura s poljima ime, starost, djeca. Vrijednosti polja su drugi indeks u
svakoj ćeliji.

» osoba.ime

Rezultat je: Igor

Verzije Matlaba od R2012 ne prihvaćaju 2 riječi za ime čelije, pa mora biti jedna riječ
starost djece, što se postiže donjom crticom bez razmaka.
Da bi se pristupilo polju u strukturi, potrebno je dati ime polju.

»stu=s.name;
»scor=s.scores;

Slika 2.19: Izgled razmatrane strukture

27
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Strukture 1x1 su korisne kada se koristi puno varijabli u funkciji. Sve se stave u
strukturu. Za pristup nx1 strukturnim poljima, koriste se njihova mjesta:

»person=ppl(2);

gdje je person struktura s imenom, starošću i/ili drugim podacima.

»personName=ppl(2).name;

Ispis: Ime osobe je ‘Igor'

» a=[ppl.starost];

Napomena: a je 1x3 vektor starosti (godina).

Primjer 2.6: Generator slučajnih rečenica. Napišite skriptu slucGen. Neka je ćelija veličine
3x2, a u njoj su imena ljudi u prvom stupcu, a napomene u drugom. Izaberite 2 slučajna cijela
broja (1-3). Ispišite rečenicu u obliku ‘[ime] je [napomena].’ Startajte skriptu nekoliko puta i
promatrajte što se događa.

Ukucajte sljedeće programske linije u tekstualni ili Matlabov editor.


Skripta sentGen izgleda ovako:

% skripta slucGen – slučajni generator rečenica


c=cell(3,2);
c{1,1}='Tanja';c{2,1}='Marija'; c{3,1}='Antonija';
c{1,2}='pametna'; c{2,2}='plavuša'; c{3,2}='vruca'
r1=ceil(rand*3);r2=ceil(rand*3);
disp([ c{r1,1}, ' je ', c{r2,2}, '.']);

Ovo je primjer kako se mogu generirati slučajne rečenice upotrebom ćelija i funkcije
za generiranje slučajnih brojeva. U engleskom jeziku je to jednostavnije te se mogu koristiti
imena oba spola. U hrvatskom bi rečenice čudno zvučale zbog razlika u deklinacijama s
obzirom na rodove.

2.4.1. Animacije

U Matlabu se može lako uloviti slike iz filma i ponovo ih prizivati. Podržani formati
filmova su avi i animirani gif, mj2, mpg, wmv, asf i asx. Svaki ima svoje područje primjene.
Tako je npr. avi format dobar za prirodne scene s mnogo boja i jasno definiranim rubovima,
dok je npr. animirani gif dobar za iscrtavanje filmova iz crteža ili teksta kada ima samo
nekoliko boja (max 256) i kada su dobro definirane linije.
Animacija se pravi tako da se iscrtava slika za slikom uz pauzom između prikazivanja
slika. Pauza između slika je potrebna, jer računalo može iscrtavati slike brže nego što ih
zamjeti ljudsko oko te bi u slučaju bez pauza vidjeli samo zadnju sliku.

Primjer 2.7: Generirajte slučajne brojeve koje će te vizuelizirati u obliku filma.

Rješenje se može napisati u editoru (onda se kopira u glavni prozor ili spremi i starta
prema spremljenom imenu) ili u glavnom prozoru. Slučajne brojeve može se generirati

28
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

naredbom rand, koja generira pseudoslučajne brojeve uniformnom razdiobom. Kako takvi
podaci ne moraju biti pogodni za ljudsko oko, koristi će se naredba imagesc, koja i skaliranje
podatake i iscrtava ih u grafičkom prozoru.

close all;
clear all;
for t=1:50 % prikazat će se 50 slika
imagesc(rand(200));
colormap(hot); % Isprobajte također: jet, bone, gray
pause(.3); % u sekundama je broj u zagradi
end

a) b)

Slika 2.20: a) Iscrtavanje slučajnih brojeva: a) s hot mapom boja, b) s gray mapom boja

Film je niz slika koje treba uhvatiti i snimiti. Snimanje u Matlabu znači spremanje
matrice slike u memoriju ili neku varijablu, najčešće strukturu. Strukturi se može pridružiti
matrica slike ili se može očitati slika s naredbom getframe koja prevodi vrijednosti piksela u
matricu slike. Naredba movie prikazuje film. Njezna sintaksa je movie (F, a, b), gdje je F
struktura u kojoj je film, a koliko se puta ponavlja i b brzina izmjene slika u sekundi (engl.
Frame Per Second, FPS). Osim spremanja u obliku matrice, film se može spremiti u nekom
grafičkom formatu. Ako se želi na tvrdi disk spremiti film iz neke strukture F u avi format,
tada se koristi naredba: movie2avi(F,'test_film.avi', ime parametra,vrijednost parametra). F je
1 x n struktura, gdje je n broj slika. Svaka slika je struktura s dva polja: cdata i colormap. Ova
naredba prihvaća jedn ili više parametara. Dopušteni parametri su: 'colormap', 'compression',
'fps', 'keyframes', 'quality' i 'videoname'. Vrijednost parametra 'colormap' je matrica m x 3,
gdje je m najviše 256 ili 236 za sažimanje. Parametar 'compression' je vrijednosti stringa koji
specificira kod sažimanja. 'None' se koristi ako se ne želi sažimanje. Ostale vrijednosti su
MSVC, RLE, Cinepak, Indeo3 ili Indeo5. Parametar 'fps' može poprimiti brojčanu vrijednost
koja znači koliko se slika prikazuje u sekundi. Uobičajeni standard je 30. Parametar 'quality'
je brojčana vrijednost od 0 do 100. Veća kvaliteta i veća veličina datoteke postižu se ako se
upiše veći broj. Parametar 'videoname' je opsino ime video niza, koje ima do 64 znakova.

Primjer 2.8: Za niz slika iz primjera 2.7 potrebno je snimiti film te ga prikazati 7 puta s
brzinom 24 slike u sekundi.

29
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Da bi se riješio zadatak, potrebno je prvo ukucati ili u editoru ili u glavnom prozoru
naredbe:

close all
for n=1:30
imagesc(rand(200));
colormap(gray);
F(n)=getframe; % spremanje trenutne slike u strukturu F na mjesto n
end

Da bi se prikazao film koristi se naredba:

» movie(F,7,24);

Ovo znači da se film prikazuje 7 puta s brzinom 24 slike u sekundi

Da bi se ovaj film spremio na tvrdi disk, koristi se npr.:

» movie2avi(F,'testMovie.avi','FPS',24);

2.5. Alatke i njihova upotreba

Alatke sadrže funkcije specifične za neko određeno područje, npr.: obrada signala, statistika,
optimizacija, upravljanje, statistika, itd.
Općenito je učinkovitije koristiti MATLAB-ove alatke nego redefinirati ili
programirati svoju funkciju. To štedi vrijeme kodiranja i otklanjanja pogreške (debugging). U
alatkama su neke funkcije kompajlirane pa se izvršavaju brže. Ipak se mogu pojaviti greške.
Stoga se u novim verzijama javljaju i izvješća o prepravkama postojećih funkcija. Grešku
svatko može prijaviti.
U nastavku su navedene neke iz širokog izbora alatki dostupnih za Matlab.

2.5.1. Simbolička alatka (engl. Symbolic Toolbox)

Kako je nekada poželjnije imati analitički izraz za rješenje, nego skup numeričkih
vrijednosti, uvedena je simbolička alatka.

Tablica 2.2: Usporedba rješavanja simboličkim i numeričkim načinom

Način rješavanja Prednosti Nedostatci


Simbolički - rješenje je analitičko - nekad nije moguće riješiti
- daje mogućnost inuitivnog - rješenje može biti
razmišljanja o rješenju prekomplicirano
Numerički - uvijek daje rezultat - teško je izvući dublje značenje
- rješenje je precizno - numerički postupci ponekad
- jednostavno kodiranje nisu uspješni
(programiranje) - proračun može dugo trajati

30
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Simboličke varijable su tip poput varijabli s dvostrukom preciznošću (double) ili


znakovnih (char).
Definiraju se naredbom sym:

»a=sym('1/3');
»b=sym('4/5');

Primjetite da razlomci ostaju razlomci. Prilikom definiranja simboličkih varijabli, mogu se


dodavati ograničenja.

»c=sym('c','positive');

Za više informacija može se pogledati pomoć (help sym). Za specifičnosti se može koristiti I
naredba syms kao npr.:

»syms x y real

je skraćeno za:

»x=sym('x','real');
»y=sym('y','real');

Kako su izrazi dobiveni simbolitčkom alatkom često vrlo nepregledni, novije inačice
Matlaba nastoje poboljšati taj ispis kako bi bio pregledniji za čovjeka. Zato su uvedene I
naredbe koje poboljšavaju prikaz u glavnom prozoru, kao: pretty, collect, simplify te subs.
Naredbe raspoznaju i trigonometrijske relacije kao npr.:

»simplify (cos(x)^2+sin(x)^2)
ans = 1 % ovaj rezultat se ispisuje
»collect(3*x+4*y-1/3*x^2-x+3/2*y)
ans= 2*x+11/2*y-1/3*x^2 % ovaj rezultat se ispisuje

Jednadžba kružnice radijusa r centrirane u (a, b) dana je s: (x-a)^2 + (y-b)^2 = r^2.


Proširite jednadžbu u oblik: Ax^2 + Bx + Cxy + Dy + Ey^2 = F i nađite izraze za koeficijente
izražene s a, b i r.

»syms a b r x y
»pretty(expand((x-a).^2 + (y-b).^2))

Matlab ispisuje:
ans=
2 2 2 2
a -2ax+b -2by+x +y

2.5.2. Alatka za obradu signala (engl. Signal Processing Toolbox)

MATLAB se često koristi za obradu signala (npr. za izračun brze Fourierove


transformacije, funkcija fft). U ovoj alatci se može: projektirati filtere, statistički obraditi
signal, Laplace-ova transformacija, i dr. Srodne alatke su: komunikacijska, valićna, RF,
alatka za obradu slike, itd.

31
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Funkcije u komandnoj liniji mogu se podijeliti u nekoliko kategorija:


- projektiranje, analiza i implementacija filtera u diskretnom vremenu,
- projektiranje, analiza i implementacija analognih filtera,
- transformacije linearnih sustava,
- prozorske funkcije,
- spektralna analiza,
- transformacije,
- statistička obrada signala,
- parametrijsko modeliranje,
- linearna predikcija,
- višetaktna obrada signala i
- generiranje valinih oblika.
Alatka ima i GUI sučelje. U GUI-u se može interaktivno projektirati filtere i/ili ih
analizirati, projektirati i analizirati prozore, iscrtavati signale i vršiti spektralnu analizu i
filtriranje.
Postupci projektiranja analognih filtera koji su uključeni su: Butterworth, Chebyshev i
Bessel-ov.
Alatka za obradu signala pruža rutine za projektiranje IIR, IIR analognog filtera i
predočavanje (vizuelizaciju) rezultata. Također se može projektirati IIR filtere u diskretnom
vremenu iz analognih pandana. Projektiranje, analiza i implementacijski postupci digitalnih
FIR i IIR filtera uključeni su u funkcije alatke.
Alatka za obradu signala pruža podršku projektiranju filtara prilagođenu korisniku.
Glavne funkcije projektiranja filtera u alatci uključuju parametre za projektiranje i FIR i IIR
filtera, njihovu analizu i implementaciju, procjenu (estimaciju) reda filtera, te izradu prototipa
analognog filtera te transformacije.
Najosnovniji entiteti s kojima radi alatka su signali i sustavi. Funkcije naglašavaju
digitalni (diskretni) signal kao suprotnost analognim (kontinuiranim). Temeljni tip filtera
kojeg podržava alatka je linearni, vremensko invarijantni digitalni filter s jednim ulazom i
jednim izlazom.
Linearni vremensko-invarijantni sustavi mogu se predstavljati jednim od nekoliko
modela (vidite Automatizaciju – prijenosna funkcija, prostor stanja, nula-pol-pojačanje,
sekcije drugog reda) te se mogu prebacivati iz jednog modela u drugi.
Alatka ima brojne funkcije za pretvorbu, uključujući i rešetkastu strukturu ili
ljestvičaste dijagrame, a ne samo prijenosnu funkciju, sustave drugog reda i prostor stanja.
Alatka uključuje različite transfromacije i inverzne transfromacije, uključujući Fourier,
chirp-Z, diskretnu kosinusnu, Goertzel, Hilbert, Walsh-Hadamard, te STFT (spektrogram).
Alatka također uključuje algoritme za procjenu spektralne gustoće snage, što uključuje
periodograme, Welch-a, i Yule-Walker-a. Funkcije alatke koje su dostupne su i za estimaciju
gustoće spektra snage i estimaciju srednje kvadratne vrijednosti spektra upotrebom pseduo-
spektralnih, neparametarskih ili parametarskih tehnika.
Neki od uključenih postupaka su i Burg, kovarijanca, svojstveni vektori, Thomsonov
periodogram, Welch, Yule-Walker, i dr. Druge funkcije su dostupne za računanje prosječne
snage spektra, računanje jednostranog spektra, pomicanje za DC komponentu od/prema
centru spektra, itd.
Alatka za obradu signala sadrži funkcije za računanje korelacija, međukorelacija,
kovarijanci i autokorelacija. Pruža mnogo uobičajeno korištenih prozorskih funkcija te ima
grafičko sučelje koje omogućuje gledanje i usporedbu prozora i kreiranje filtera uporabom tih
prozora.

32
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Alatka uključuje postupke za autoregresivno parametarsko modeliranje: Burg,


covariance, Yule-Walker i Steiglitz-McBride (za ARMA modeliranje). Također se mogu naći
i funkcije za prijanjanje frekvencijskog odziva na analogni ili filter u diskretnom vremenu.
Također sadrži i funkcije za linearno predviđanje koeficijenata i za konvertiranje
između autokorelacija i predviđenih polinoma, refleksijskih koeficijenata i frekvencija
linijskog spektra.
U alatku za obradu signala uključene su funkcije za generiranje mnogih periodičkih i
aperiodičkih valnih oblika (chirp, Dirichlet, Gaussian RF impuls, Gaussian monopuls,
impulsni vlak (tzv. češalj funkcija), pravokutnik, pila, sinc, kvadratni val, trokutni valni oblik,
te naponsko-upravljani oscilator.

2.5.3. Alatka za upravljanje sustavima (Control System Toolbox)

Ova alatka sadrži funkcije koje pomažu u analizi sustava s povratnom vezom: funkcije
za simulaciju LTI sustava, podržava i diskretne i kontinuirane sustave, mogu se lako
proučavati odziv na jediničnu uzbudu, modalnu analizu, itd.
Srodne alatke su: identifikacija sustava (System Identification), robustno upravljanje
(Robust Control), nodernu teorija upravljanja i modelsko prediktivno upravljanje.

2.5.4. Statistička alatka


Ova alatka služi za statističku i analizu podataka. Uključuje funkcije načelne
raščlambe sastavnica (engl. Principal Component Analysis, PCA), nezavisne analize
komponenti (engl. Independent Component Analysis, ICA) te testove značaja (poput chi
kvadrat, t-test i sl). Često se koristi u analizi pouzdanosti i dostupnosti sustava.

2.6. Monte Carlo

Monte Carlo simulacija je matematički proces modeliranja. Za neki model koji ima
nekoliko parametara s nekim statističkim svojstvima, odabire se skup slučajnih vrijednosti za
te parametere te se provodi simulacija. Potom se odabire drugi skup vrijednosti parametara i
ponovo provodi simulacija. Proces se ponavlja puno puta, često preko 10000. S tako velikim
uzorkom pravi se statistička raspodjela rezultata simulacije. Raspodjela rezultata simulacije
odgovara na bilo koje postavljeno pitanje. Ovakva simulacija ne zahtjeva veliko predzanje o
samom problemu. Jednostavan je način modeliranja kompleksnih stohastičkih sustava.

Primjer 2.9: Modelirati sustav molekula prema slici. Brojevi pored strelica pokazuju sklonost
sustava za prijelaz iz jednog u drugo stanje. Ako se počne s jednom molukulom (A), kako se
ponaša sustav s vremenom. Koristi slučajne brojeve za upravljanje promjenama stanja. Ovaj
sustav predstavlja kompleksnu reakciju.

Slika 2.21: Skloposti zadanog sustava

33
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Za rješenje problema ukucajte funkciju u editoru te je spremite kao datoteku u radnom


direktoriju.

function s=monte_carlo_molekule(timeSteps);
state=0; % počinje u A, B=1, C=2, D=3, E=4 radi jednostavnosti
s=zeros(timeSteps,1); % sprema se trenutno stanje
borders=[20 60 47 2]/sum([20 60 47 2]);
outcome=cumsum(borders);
direction=[0 1 -1];
for n=1:timeSteps
s(n)=state;
if state ~=4 % ako nije u E
C=min(find(rand<outcome));
if C==4 % unosi E
state=4;
else % idi desno ili lijevo
state=mod(state+direction(C),4);
end;end;end

Ova funkcija se može koristiti npr. 10000 puta kako bi se simuliralo ponašanje 10000
molekula. To se postiže nizom:

s=zeros(200,5);
for n=1:10000
st=monte_carlo_molekule(200);
for state=0:4
s(:,state+1)=s(:, state+1)+(st==state);
end;end;
plot(s(:,1));
figure, plot(s(:,2));
figure, plot(s(:,3));
figure, plot(s(:,4));
figure, plot(s(:,5));

10000 5000

9000 4500

8000 4000

7000 3500

6000 3000

5000 2500

4000 2000

3000 1500

2000 1000

1000 500

0 0
0 20 40 60 80 100 120 140 160 180 200 0 20 40 60 80 100 120 140 160 180 200

a) b)

34
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

4000 4000

3500 3500

3000 3000

2500 2500

2000 2000

1500 1500

1000 1000

500 500

0 0
0 20 40 60 80 100 120 140 160 180 200 0 20 40 60 80 100 120 140 160 180 200

c) d)

10000

9000

8000

7000

6000

5000

4000

3000

2000

1000

0
0 20 40 60 80 100 120 140 160 180 200

e)

Slika 2.22: Rezultat simulacije: a) stanje 0 (A), b) stanje 1 (B), c) stanje 2(C), d) stanje 3 (D), e) stanje
4 (E)

35
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

3. UPOTREBA SIMULINKA U SIMULIRANJU


Simulink je MatLabov program za simulaciju. U Simulink radnom okružju se mogu
simulirati sustavi koje korisnik treba. Sastoji se od radnog prozora, gdje se gradi model, i
biblioteke blokova (Simulink Library Browser - slika 3.1).
Osim gotovih blokova, moguće je definirati i korisničke. Pritiskom na znak "+" otvara
se željena podgrupa srodnih blokova. Nekada su odmah dostupni blokovi, a nekada postoje
dodatne podgrupe koje se na isti način otvaraju.
Osim standardnih blokova Simulinka, postoje i dodatni blokovi, koji ovise o alatkama
dostupnim u kupljenoj verziji MatLaba. Ako se, primjerice, posjeduje komunikacijska alatka
(eng. Communication Toolbox), tada postoje i dodatni blokovi iz područja komunikacija.
Standardni blokovi Simulinka dijele se u podgrupe blokova:
- kontinuirani blokovi,
- diskretni blokovi,
- funkcije i tablice,
- matematički blokovi,
- nelinearni blokovi,
- signali i sustavi,
- izlazi i
- izvori.

a)

36
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

b)

Slika 3.1: Biblioteka blokova Simulink-a: a) izgled starije inačice, b) izgled jedne od novijih
inačica

Ovdje se može pozvati


Simulink Library Browser

Odabrani element se ili “vuče” ili kopira u ovaj prozor

Slika 3.2: Unos komponenti modela u prozor za Simulinkov model

Otvaranjem određenog izbornika, pojavljuju se blokovi. Otvaranjem kontinuiranih


(eng. continuous), može se izabrati:
- derivator,
- integrator,

37
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

- memorija,
- prostor stanja,
- prijenosna funkcija,
- nula-pol,
- varijabilno i linearno kašnjenje.

Slika 3.3: Neki važniji blokovi

Željeni blok se mišem povlači u radni prozor (slika 3.2) ili se koriste naredbe copy-
paste (kopiraj-zalijepi). Otvaranjem nekog drugog izbornika dostupni postaju drugi blokovi.
Ovdje su najznačajniji blokovi prikazani na slici 3.3. To su:
- derivator, integrator i prijenosna funkcija iz prvog stupca;
- pojačanje i sumator iz drugog stupca;
- step i sinusni generatori iz šestog stupca;
- grafički izlaz (scope) i brojčani izlaz (display) iz petog stupca.
Na slici 3.3 prikazani su i neki značajniji blokovi za automatiku, kao nelinearni
elementi (releji, prekidači, zasićenje ili kvantizator) u trećem stupcu.
Upravljanje simulacijom nije samo uključivanje simulacije i njeno zaustavljanje, nego
i podešavanje raznih naprednijih parametara. Pritiskom miša na izbornik "Simulation",
dobivaju se opcije za pokretanje ("Start"), zaustavljanje ("Stop") te vrlo važne opcije za
podešavanje parametara simulacije ("Parameters").
Pritiskom na lijevo dugme na mišu otvara se prozor za podešavanje parametara
simulacije. Standardne opcije su već podešene. Ako je korisnik prije nešto mijenjao, onda su
zapamćene trenutne opcije. Iz ovog prozora je najznačajnije podešavanje vremena simulacije.
"Start time" označava početni trenutak, a najčešće se uzima 0 [s]. "Stop time" označava
završetak simulacije.
Treba napomenuti da je ovdje označeno vrijeme simulacijsko vrijeme, tj. 10 [s] ne
traje stvarnih 10 [s], nego kompjutor računa što će se događati sa simuliranim sustavom u
stvarnom vremenskom intervalu između "start time" i "stop time". Trajanje simulacije ovisi o

38
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

pojedinom računalu, njegovim komponentama i svojstvima i može biti puno brže od stvarnog
vremena. To je i bit simulacije. Za mnoge stvarne sustave potrebno je znati kako će se
ponašati za 10, 20 ili više godina. Da simulacija traje toliko, ne bi imala smisla.
Ostale opcije za primjenu u ovim vježbama nisu toliko važne, ali su značajne za
istraživačke primjene. "Solver options" je način rješavanja zadanog problema, tj. izbor načina
na koji će računalo riješiti problem.

a)

b)

Slika 3.4: Izbornik za upravljanje simulacijom: a) kod starijih inačica, b) kod novijih inačica
(pridodan akcelerator kako bi se moglo upravljati sustavom u realnom vremenu)

39
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 3.5: Podešavanje parametara simulacije

Pokretanje simulacije
Zaustavljanje simulacije

Odabir područja
za povećanje

Povećanje duž y-osi

Povećanje Automatsko
duž x-osi skaliranje prikaza

Podešavanje osi prikaza

Podešavanje maksimalne
i minimalne vrijednosti y osi

Slika 3.6: Podešavanje parametara slikovnog vremenskog prikaza

Na slici 3.6 prikazano je kako se podešavaju opcije vremenskog prikaza signala


("scope"), za što bolji prikaz signala. Tako npr. ako se na skali do 100 promatra signal manjeg
iznosa od 1, on se ne uočava dobro. Ako se isti signal gleda na skali do 1 mogu se vidjeti i
razni detalji.

40
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Desnim klikom miša dobivaju se opcije koje su trenutno moguće, kao npr. automatsko
podešavanje skale ("Autoscale") s čim se postiže najbolji prikaz dobivene krivulje s obzirom
na maksimalnu i minimalnu vrijednost na koordinatnim osima. To nije skaliranje signala.
Skaliranje signala je u biti normalizacija na odgovarajuću mjeru, dok je ovo povećavanje ili
smanjivanje mjernog opsega, kao na instrumentima u laboratoriju, poput digitalnih ili
analognih voltmetara.
Pored znaka za pisač, nalazi se znak "Properties", koji služi za pozivanje izbornika
opcija. Podešavanje minimuma (Y min) i maksimuma (Y max) na y-osi obavlja se lijevim
klikom miša na "Axes Properites".
Vremenski invarijantni linearni sustavi (eng. LTI - linear time-invariant) mogu se
modelirati kao:
- prijenosne funkcije (eng. transfer function - TF),
- nula/pol/pojačanje (eng. zero/pole/gain - ZPG)
- prostor stanja (eng. state-space - SS), ili
- podatak frekvencijskog odziva.
U MatLabu se ti modeli mogu generirati naredbom sys:
- model prijenosne funkcije
sys = tf(num,den)
- nula/pol/pojačanje model
sys = zpk(z,p,k)
- model prostora stanja
sys = ss(a,b,c,d)
- model podataka frekvencijskog odziva
sys = frd(response,frequencies)

Primjer 3.1: Zadan je električni RC krug. Simulacijom na elektroničkom računalu potrebno


je odrediti promjenu napona na kondenzatoru, uc(t), od trenutka zatvaranja sklopke S.

S R

E C

Slika 3.7: Istosmjerne RC krug

Postupak pri izradi modela je standardan za sve sustave i sastoji se iz slijedećih koraka:
1. izvođenje diferencijalne jednadžbe,
2. diferencijalna jednadžba piše se na način da je s lijeve strane samo najviša derivacija,
3. crtanje blok dijagrama simulacije,
4. formiranje modela,
5. unošenje modela u računalo i
6. simulacija na računalu.

1. korak:

Prema drugom Kirchoffovom zakonu vrijedi:

uR(t) + uC(t) = E (3.1)

41
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

i(t)⋅R + uC(t) = E

Uvođenjem suspstitucije q (t ) = ∫ i (t ) dt = Cu C (t ) slijedi:

dq (t ) du (t )
= i (t ) = C C
dt dt

pa se dobiva linearna diferencijalna jednadžba prvog reda s konstantnim koeficijentima:

du C (t )
RC + u C (t ) = E (3.2)
dt

2. korak:

Diferencijalna jednadžba piše se na način da je s lijeve strane samo najviša derivacija.

du C (t )
RC = E − u C (t )
dt
du C (t ) 1 1
= ⋅E − ⋅ u C (t )
dt RC RC

3. - 5. korak:

Treći korak je crtanje blok dijagrama simulacije, četvrti je formiranje modela, a peti unošenje
modela u računalo. Vježbom se može postići da se sva tri koraka ostvaruju zajedno. Ponekad,
kod složenijih problema, može se prvo crtati blok dijagram pa odmah formirati model na
računalu, čime je ostvaren i peti korak.

e1 .
. eizl (t ) = ∫ e1 (t ) + ... + en (t ) dt
en .

a)

e1 .
.
eizl (t) = e1 (t) +... + en (t)
en .

b)

eul(t) eizl(t)
c) d)

Slika 3.8: Simboli važnijih elemenata: a) integrator, b) sumator, c) množitelj, d) pojačanje

42
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

1/RC
uc(t)

1/RC

Slika 3.9: Model zadanog električnog kruga

Kako je signal (derivacija napona kondenzatora u vremenu) poznat, može se sam


napon na kondenzatoru dobiti integriranjem.
du C (t )
Iz zbroja na desnoj strani diferencijalne jednadžbe formira se izraz povratnom
dt
vezom. Konstantni faktori uz članove diferencijalne jednadžbe predstavljaju se blokovima
pojačanja.
Konačan izgled dijagrama dat je na slici:

Slika 3.10: Model zadanog električnog kruga unesen u Simulinku


(umjesto 1/RC unosi se brojčana vrijednost)

Na kraju se unose konačni parametri za R i C, tj. njihov umnožak.

6. korak:

Šesti korak je pokretanje simulacije. S njenim završetkom, iako je simulacija


električnog kruga, a s time i ovaj zadatak, gotova, u praksi posao vezan uz projektiranje
automatskih sustava tek počinje.
Sada predstoji težak proces analize podataka te traženja optimalnih parametara da bi se
udovoljilo zahtjevima naručitelja.

43
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

a)

b)

44
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

c)

Slika 3.11: Vremenski odziv sustava za različita pojačanja: a) 1, b) 2, c) 0.5

Iz vremenskog odziva sustava vidi se njegovo daljnje ponašanje. Za primjer 1


vremenski odziv prikazan je na slici 3.11 za različite iznose pojačanja. Može se izračunati i
analitički:

du C (t ) 1 1
= E− u C (t )
dt RC RC

Prelaskom u kompleksno područje s pomoću Laplace-ove transformacije, slijedi:

1 1
sU C ( s ) = E (s) − U C (s)
RC RC

 1  1
U C ( s) ⋅  s + = E (s)
 RC  RC

Prijenosna funkcija sustava W(s) dobiva se na način:

1
E ( s)
U C (s) = RC
1 + RCs
RC

45
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

E ( s)
U C (s) =
RCs + 1

U C ( s) 1
=
E ( s) RCs + 1

U C ( s)
W ( s) =
E (s)

Za pojačanje prema slici 3.11.a, τ = RC = 1, pa slijedi:

1 1
W ( s) = = (3.3)
τs + 1 s + 1

Za jediničnu odskočnu (eng. step) funkciju ulaznog napona, slijedi:

1 1 1
U C ( s) = W (s) ⋅ E (s) = ⋅ E (s) = ⋅
s +1 s +1 s

Iz teorije je poznato:

 1 
L  = 1 − e −at ,
 s (Ts + 1) 

a = 1/T, slijedi:

u C (t ) = 1 − e − t (3.4)

3.1. Stabiliziranje sustava

Stabiliziranje nekog nestabilnog sustava može se izvesti dodavanjem:


 proporcionalnog,
 proporcionalno-integracijskog,
 proporcionalno-derivacijskog i
 proporcionalno-integralno-derivacijskog regulatora.
Sljedeći primjer pokazuje kako pojačanje utječe na stabilnost sustava.

Primjer 3.2: Potrebno je stabilizirati sustav zadan prijenosnom funkcijom


1
W ( s) = 3 s negativnom povratnom vezom i pojačanjem (P). Odredite kada je
s + 0,3s 2 + s
sustav stabilan, a kada nestabilan.

46
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 3.12: Sustav s negativnom povratnom vezom

Slika 3.13: Odziv sustava sa slike 3.12 u vremenskom području

Za Bodeov prikaz potrebno je unijeti podatke u glavni prozor:

» br = 0.15;
» naz = [1 0.3 1 0];
» h = tf(br, naz);
» bode(h);

Slika 3.14 prikazuje uvećani dio slike 3.12. Iz slike 3.14 vidi se da sustav oscilira s
neznatnim prigušenjem.

47
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 3.14: Uvećani prikaz dijela odziva sustava sa slike 3.12 u vremenskom području

Slika 3.15: Bodeovi, amplitudni i frekvencijski, dijagrami sustava sa slike 3.12

48
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Isti sustav može postati nestabilan ako mu se promijeni pojačanje.

Slika 3.16: Primjer nestabilnog sustava

Slika 3.17: Vremenski odziv sustava sa slike 3.16

Bodeov prikaz ovog sustava se dobiva naredbama:

» br =0.5;
» naz = [1 0.3 1 0];
» h = tf(br, naz);
» bode(h);

Sljedeća slika dobija se za naredbe:

» br = 1;
» naz = [1 0.3 1 0];
» h = tf(br, naz);
» bode(h);

49
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 3.18: Bodeov prikaz nestabilnog sustava

U sljedećem slučaju sustav je stabilan (K = 0,1):

» br = 0.1; naz = [1 0.3 1 0]; h = tf(br, naz); bode(h);

Slika 3.19: Vremenski odziv zadanog sustava za K = 0,1

50
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 3.20: Bodeov dijagram zadanog sustava za K = 0,1

Slika 3.21: Združeni prikaz stvarnih Bodeovih dijagrama zadanog sustava

51
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 3.21 dobiva se sljedećim naredbama:

» br = 0.15;
» naz = [1 0.3 1 0];
» h = tf(br, naz);
» figure(1);
» hold on;
» bode(h);
» grid;
» clear all;
» br = 0.5;
» naz = [1 0.3 1 0];
» h = tf(br, naz);
» bode(h);
» clear all;
» br = 1;
» naz = [1 0.3 1 0];
» h = tf(br, naz);
» bode(h);
» clear all;
» br = 0.1;
» naz = [1 0.3 1 0];
» h = tf(br, naz);
» bode(h)

Pojačanje K, za koje je sustav na granici stabilnosti, može se odrediti Hurwitzovim


kriterijem stabilnosti. Karakteristična jednadžba sustava dobija se na sljedeći način:

1
G( s) =
s + 0,3s 2 + s
3

KG ( s )
W (s) = =
1 + KG ( s )
K K
3 2
s + 0,3s + s s + 0,3s 2 + s
3
= = 3
K s + 0,3s 2 + s + K
1+ 3
s + 0,3s 2 + s s 3 + 0,3s 2 + s
s 3 + 0,3s 2 + s + K = 0

Kako je a3 = 1, a2 = 0,3, a1 = 1 i a0 = K, slijedi da za stabilan sustav mora biti zadovoljeno:


1) a3 > 0; to je zadovoljeno
2) ∆1 > a2; to je zadovoljeno
a a0
3) ∆ 2 = 2 = a 2 a1 − a 3 a 0 > 0 ⇒ 0,3 − K > 0 ⇒ K < 0,3
a3 a1
4) ∆ 3 = a0 ∆ 2 > 0 ⇒ K (0,3 − K ) > 0
To je zadovoljeno u 2 slučaja:
- kad je K> 0 i K < 0,3, a to je u intervalu K ∈ 0, 0,3 ,

52
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

- kad je K < 0 i K > 0,3.


To znači da se odabirom pojačanja od 0,3 nalazi na granici stabilnosti.

Slika 3.22: Zadani sustav na granici stabilnosti

3.8. Vremenski odziv člana nultog reda

Regulacijski sustavi se raščlanjuju u niz jednostavnijih sustava kako bi se olakšalo njihovo


proučavanje. Jedna od podjela osnovnih članova je na:
- proporcionalni element nultog reda (P0),
- proporcionalni element prvog reda (P1),
- proporcionalni element drugog reda (P2),
- integralni element (I),
- derivacijski element (D),
- element s mrtvim vremenom (Tm).
Ti osnovni elementi mogu se kombinirati te se s pomoću njih mogu opisati svi složeni
sustavi.
Član nultog reda je pojačanje. U električnim krugovima predstavnih P0 člana je
potenciometar. Potenciometar je električni otpornik kojemu se može mijenjati električni
otpor.
Proporcionalni član nultog reda (P0) je sustav čija se dinamika može općenito prikazati
jednadžbom:

a0 y(t ) = b0 x(t ) (3.5)

gdje su:
- y(t) izlazna varijabla,
- x(t) ulazna varijabla,
- a0 i b0 konstantni parametri sustava.

53
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Dakle, opisuje se obično algebrom, a ne diferencijalnim jednadžbom. Vremenski


odziv na odskočnu (step) pobudu xu(t) = u(t) je:

b0 b 1 b0
y (t ) = u (t ) ⇒ Y ( s) = 0 ⇒ y (t ) = =K
a0 a0 s a0

a)

b)

54
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

c)

Slika 3.23: Vremenski odziv P0 člana: a) podešavanje parametara step generatora,


b) odziv za K =1, c) odziv za K = 2

Zadatak za vježbu:

1. Simulirati sustav s P0 članom za: a) K = 100, b) K = 0,1.


2. Podesiti generator na "start time" 1 (s). Simulirati sustav za K = 1; 2; 100; 0,01 i
usporediti razultate s prije dobivenim za "start time" = 0 (s).
3. Simulirati električni krug istosmjerne struje napona 10 (V) i potenciometra od 1 (kΩ).

3.3. Vremenski odziv P1 člana

P1 član predstavlja inercijalno kašnjenje. U električnim krugovima tispični predstavnik


P1 člana je RC krug, tj. jednostavni filter.
Proporcionalni član prvog reda (P1) je sustav čija se dinamika može općenito prikazati
jednadžbom:

dy (t )
a1 + a 0 y (t ) = b0 x (t ) (3.6)
dt

gdje su:
- y(t) izlazna varijabla,
- x(t) ulazna varijabla,
- a1, a0 i b0 konstantni parametri sustava.

55
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Vremenski odziv na odskočnu (step) pobudu x(t) = u(t) = 1 je:

1
a1 sY ( s ) + a 0Y ( s) = b0 X ( s) = b0
s

1 b0
Y ( s) =
s a1 s + a0

(
y (t ) = Kx(t ) 1 − e −t / τ )
a1 b
τ= , K = 0 , x(t ) = 1
a0 a0

Iz odziva sustava vidljiva je glavna karakteristika P1 člana: vremensko kašnjenje za


kojim izlazna veličina prati ulaznu. To kašnjenje je opisano vremenskom konstantom τ. U
električnim krugovima je to vrijeme prijelazne pojave (npr. punjenja ili pražnjenja
kondenzatora kako bi došao u "puno" ili "prazno" stacionarno naponsko stanje). Kako se
brzina promjene s vremenom smanjuje, izlazna funkcija će u vremenu t = τ doseći tek 63,2%
ulazne funkcije. Iako teorijski izlazna veličina nikad ne dostiže ulaznu, u praksi se smatra da
je prijelazna pojava završena nakon vremena t = 5τ.
P1 član susreće se često u regulacijskim krugovima. Takav član je, npr. termometar
koji mjeri temperaturu prostorije. Da bi se termometar zagrijao na temperaturu prostorije
potrebno je pričekati određeno vrijeme. Brzina prijenosa topline razmjerna je razlici
temperatura prostorije i termometra. U početku zagrijavanja ta će brzina biti veća i postupno
će se smanjivati kako se termometar zagrijava. I ovo je funkcija koja se asimptotski približava
stacionarnoj vrijednosti po eksponencijalnom zakonu izvedenom za općeniti slučaj na početku
vježbe.

Slika 3.24: Vremenski odziv P1 člana


(iz slike se može odrediti vremenska konstanta τ = 1 s - tu je odziv dostigao 63% konačne
vrijednosti)

Zadatak za vježbu:

1. Za serijski spoj otpornika i kondenzatora (RC krug) s R = 5 [MΩ], C = 2 [µF], U = 10 [V]


u kojem je izlazna varijabla pad napona na kondenzatoru (UC), napišite diferencijalnu
jednadžbu koja opisuje krug. Napomena: uzeti da je U = 0 [V] za t < 0, U = 10 [V] za t ≥ 0.

56
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

2. Na temelju te diferencijalne jednadžbe nacrtajte blok dijagram simulacije.


3. Simulirajte model na računalu, u EWB-u i Simulink-u. Usporedite rezultate.
4. Iz odziva na računalnom monitoru odredite vremensku konstantu.
5. Precrtajte na milimetarski papir odziv za sustav s R = 500 [kΩ].

3.4. Vremenski odziv P2 člana

Mehanički i električni P2 član prikazani su na slici 3.25. Električni član je, npr., serijski
RLC krug. Moguće su i drukčije izvedbe. Mehanički P2 član sastoji se iz tijela mase m,
opruge krutosti k i prigušivača s prigušenjem B.

k
F0
m
R L C
B
0,0 x u(t)

a) b)

Slika 3.25: Neke od izvedbi P2 člana: a) mehanički, b) električni

U trenutku t = 0 na sustav, preko tijela mase m, počinje djelovati sila stalnog iznosa
F0. Zbog toga se mijenja položaj mase i opruga se sabija. Sila kojom opruga djeluje na tijelo
suprotnog je smjera od sile F0 i veća je što je tijelo dalje od ishodišta koordinatnog sustava. U
određenom trenutku te dvije sile će biti jednake, ali će se tijelo, zbog inercije, i dalje kretati
tako da sabija oprugu. Sila opruge postat će veća od vanjske sile te će se tijelo postupno
zaustaviti i započet će gibanje u suprotnom smjeru, tj. prema ishodištu i u točki u kojoj su sile
jednake tijelo će zbog inercije nastaviti kretanje u započetom smjeru, rastezat će oprugu te će
sila F0 prevladati silu opruge i čitav će se proces ponoviti. Tijelo će, dakle, oscilirati oko
ravnotežnog položaja. Energija se u ovom sustavu pretvara iz kinetičke energije mase u
potencijalnu energiju opruge i obrnuto. Kako se dio energije u prigušivaču pretvara u toplinu i
gubi iz sustava, nakon određenog vremena tijelo će se smiriti u ravnotežnom položaju u
kojem su sila opruge i vanjska sila jednake. Opisani slučaj je slučaj prigušenih oscilacija te se
P2 član naziva i oscilacijskim članom. Matematički opis tih dinamičkih pojava dobiva se
primjenom D'Alambertova načela po kojem je zbroj svih vanjskih sila na tijelo jednak sile
tromosti tog tijela.

∑f
i =1
i = m&x& (3.7)

∑f
i =1
i − m&x& = 0

57
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

d 2 x(t )
m = F0 + f B + f k
dt 2

d 2 x(t ) dx(t )
m 2
= F0 − B − kx(t )
dt dt

d 2 x(t ) dx(t )
m 2
+B + kx(t ) = F0
dt dt

gdje su:
• F0 - vanjska sila,
• fk(t) - sila opruge,
• fB(t) - sila viskoznog trenja,
• m - masa tijela,
• B - koeficijent viskoznog trenja,
• k - krutost opruge,
• x - pomak tijela.
Gornja jednadžba je linearna diferencijalna jednadžba drugog reda. Analogni rezultat
se može dobiti za bilo koji sustav drugog reda, bilo da je riječ o mehaničnom, električnom ili
pneumatskom P2 članu.
Kod električnog kruga koji ima oba reaktivna elementa (kondenzator i zavojnicu),
električna energija akumulirana u kondenzatoru prelazi u magnetsku energiju zavojnice. Po
zakonu o očuvanju energije, ukupna energija sustava ne može se promijeniti. To znači da
smanjivanje električne energije vodi odgovarajućem porastu magnetske energije. Kada ne bi
bilo električnog otpora, izmjena energije iz električne u magnetsku i obrnuto bi se odvijala
beskonačno dugo. To bi bile neprigušene oscilacije sa stalnom amplitudom i periodom. Kako
u primjeru sa slike postoji i otpornik, dio će se energije u svakom periodu disipirati na njemu
pa će biti sve manje energije u krugu. Na kraju dolazi do potpunog prigušenja, jer se sva
energija disipirala u toplinu na otporniku.
Serijski RLC krug može se opisati drugim Kirchhoffovim zakonom:

uu (t ) = u R (t ) + u L (t ) + uC (t )

dq (t ) 1 d 2 q (t )
uu (t ) = R + q (t ) + L (3.8)
dt C dt 2

gdje su:
• L - induktivitet zavojnice,
• C - kapacitet kondenzatora,
• R - električni otpor,
• uu1 - narinut napon.
Općenito se za bilo koji P2 član može pisati:

d 2 y (t ) dy (t )
a2 2
+ a1 + a 0 y (t ) = b0 x(t ) (3.9)
dt dt
gdje su:
• y - izlazna veličina,
• x - ulazna veličina,

58
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

•a2, a1, a0, b0 - konstantni parametri sustava.


Kakav će biti oblik odziva ovisi o parametrima sustava i njihovim međusobnim
odnosima. Kako bi se olakšala analiza uvode se nove veličine:
• ωn - neprigušena vlastita frekvencija sustava,
• ζ - koeficijent prigušenja,
• kp - pojačanje ili prijenosni omjer, a koje se dobivaju dijeljenjem gornje jednadžbe s
a0:

a2 1 a1 2ζ b0
= 2 = = kp
a0 ω n a0 ω n a0

Opća jednadžba P2 člana tada glasi:

1 d 2 y (t ) 2ζ dy (t )
+ + y (t ) = k p x(t ) (3.10)
ω n2 dt 2 ω n dt

Neprigušena vlastita frekvencija sustava, ωn, je frekvencija kojom bi sustav titrao oko
ravnotežnog položaja kada u sustavu ne bi bilo gubitaka energije, odnosno prigušenja.
Gubitke energije opisuje koeficijent prigušenja ζ. Što je koeficijent prigušenja veći, sustav će
se prije smiriti u stacionarnom stanju i titrat će manjom frekvencijom. Frekvencija prigušenog
titranja sustava, ωp, dana je relacijom:

ω p = ωn 1−ζ 2 (3.11)

Slika 3.26: Vremenski odziv za različite koeficijente prigušenja ζ

59
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Kod P2 člana razlikuje se 5 slučajeva odziva u ovisnosti o koeficijentu prigušenja, ζ:


 ζ > 1 aperiodski,
 ζ = 1 granično aperiodski,
 0 < ζ < 1 prigušeno oscilacijski,
 ζ = 0 neprigušeno oscilacijski i
 ζ < 0 raspireno oscilacijski.

Zadatak za vježbu:

1. Za mehanički sustav sa slike 3.25a poznate su vrijednosti: m = 20 [kg], B = 30 [kg/s], k =


40 [kg/s2]. U početku promatranja sustav se nalazi u stanju mirovanja. U trenutku t = 0 [s] na
sustav počinje djelovati sila: F0 = 20 [N]. Odredite koeficijent prigušenja sustava i
neprigušenu vlastitu frekvenciju. Podatke uvrstite u opću jednadžbu P2 člana. Riješite
jednadžbu primjenom Laplaceove transformacije. Dobivenu vremensku funkciju x(t), koja
opisuje položaj mase, nacrtajte na milimetarskom papiru.
2. Prema dobivenoj diferencijalnoj jednadžbi nacrtajte blok dijagram simulacije.
3. Simulirajte model na računalu. Usporedite izračunati odziv iz 1. zadatka i odziv na
monitoru.
4. Simulirajte ponašanje sustava za vrijednost koeficijenta viskoznog trenja (B) prema

tablici. Za svaki slučaj izračunajte ζ, a ωp odredite približno iz odziva na ekranu ( ω p = ,a
Tp
TP je period oscilacija očitan s ekrana računala). Komentirajte ponašanje sustava.

B[kg/s] 0 10 16 23 38 56,57 75
ζ
ωp

3.5. Vremenski odziv složenih sustava

Složeni regulacijski krugovi prikazuju se blok dijagramom u kojem su pojedini


elementi opisani prijenosnim funkcijama. Da bi se nacrtao blok-dijagram simulacije u nekim
starijim programima bilo je potrebno eksplicitno napisati diferencijalnu jednadžbu koja
opisuje sustav. U Simulinku se može upisati prijenosna funkcija u gotov blok za prijenosnu
funkciju. Ako se želi simulirati sustav iz diferencijalne jednadžbe, a zadana je prijenosna
funkcija, do diferencijalne jednadžbe može se doći na dva načina:
a) izravno
K
Za npr. G ( s ) = , odziv sustava određen je izrazom: Y(s) = G(s)X(s) te se izravno
s (Ts + 1)
dobiva diferencijalna jednadžba sustava:

K
Y ( s) = X (s)
s(Ts + 1)
Y ( s) s(Ts + 1) = KX ( s)
Ts 2Y ( s) + sY ( s) = KX ( s)
K 1
s 2Y ( s ) = X ( s ) − sY ( s )
T T

60
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Pošto je s2Y(s) Laplaceova transformacija druge derivacije y(t), a sY(s) Laplaceova


transformacija prve derivacije y(t), gornja jednadžba u vremenskom području glasi:

d 2 y (t ) K 1 dy (t )
2
= x (t ) −
dt T T dt

Dijagram simulacije lako je nacrtati.

Slika 3.27: Blok dijagram prijenosne funkcije dobiven izravnim postupkom

b) rastavljanjem na osnovne blokove

K
Prijenosna funkcija G ( s ) = može se predstaviti umnoškom dviju prijenosnih
s (Ts + 1)
K 1
funkcija G1(s) i G2(s), gdje su G1 ( s ) = i G 2 ( s ) = , te je:
1 + Ts s

K 1
G ( s ) = G1 ( s )G 2 ( s ) = ⋅
1 + Ts s

Umnožak tih funkcija odgovara serijskom spoju blokova.

a) b)

Slika 3.28: a) Serijski spoj blokova, b) model zadanog sustava dobiven rastavljanjem na
osnovne blokove

Da blok G1(s) odgovara dijagramnu sa slike, može se pokazati na način:

 K 1 
∫  x(t ) T − T y (t ) dt = y (t ) /⋅
1 1

61
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

K X ( s ) 1 Y1 ( s )
− = Y1 ( s )
T s T s

1  K X (s)
Y1 ( s) + 1 =
 Ts  T s

K
Y1 ( s) K
= Ts =
X ( s) 1 + Ts Ts + 1
Ts

Složeni regulacijski krugovi predstavljaju se blok dijagramom u kojem je svaki blok


opisan prijenosnom funkcijom.
Primjer blok dijagrama nekog regulacijskog kruga prikazan je na slici 3.29. Zadano je
Km
G1(s) = K, G2 ( s) = (prijenosna funkcija elektromotora). Da bi se napravio model
s (Tm s + 1)
ovog regulacijskog kruga, potrebno je nacrtati blok dijagram simulacije za svaki blok
posebno, a zatim ih povezati prema blok dijagramu regulacijskog kruga.

1. blok: Y1(s) = K X(s)


K 1
2. blok: s 2Y ( s) = m X ( s) − sY ( s)
Tm Tm

+ Y1 (s) G (s)
X(s) G1(s) 2
Y(s)
-

Slika 3.29: Blok dijagram zadanog regulacijskog sustava s negativnom povratnom vezom

Slika 3.30: Blok dijagram simulacije

Zadatak za vježbu:
1. Zadan je regulacijski krug prema blok dijagramu sa slike 3.30. Zadane su vrijednosti: Km
= 10, Tm = 4, K = 2. Nacrtajte blok dijagram simulacije za ovaj regulacijski krug. Napišite
model prema tom blok dijagramu.

62
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

2. Simulirajte odziv sustava bez povratne veze na jediničnu odskočnu funkciju (step).
Skicirajte i opišite odziv sustava. Da li je sustav stabilan?
3. Simulirajte odziv sustava s jediničnom negativnom povratnom vezom uz istu ulaznu
funkciju. Skicirajte i opišite odziv sustava u ovom slučaju. Da li je sustav stabilan?
Komentirajte utjecaj negativne povratne veze na odziv sustava.
4. Simulirajte sustav povećavajući vrijednost pojačanja K. Kako pojačanje utječe na odziv
sustava?

3.6. Proporcionalni regulator

Zadan je regulacijski krug prema slici 3.31. Sastavni dijelovi kruga su regulacijski
objekt i regulacijski član, kojega su glavni dijelovi mjerni i izvršni član te regulator.
a) Regulacijski objekt u ovom krugu je peć za sušenje materijala. Regulirana veličina u
regulacijskom objektu je temperatura. Kako je zahtjev tehnološkog procesa da se materijal u
peći suši na istoj temperaturi tokom dužeg vremenskog razdoblja osnovni zadatak
regulacijskog kruga je održavanje stalne temperature unutar peći. Peć se zagrijava izgaranjem
tekućeg goriva. Temperatura unutar peći ovisi o količini izgorenog goriva u jedinici vremena.
Ulazna veličina u regulacijski objekt je, prema tome, dotok goriva u jedinici vremena (q(t)), a
izlazna veličina temperatura u peći (υp). Oblik prijelazne funkcije određen je eksperimentom.

Slika 3.31: Regulacijski krug

Prijenosna funkcija koja odgovara sustavu sa slike je:


G (s) =
(1 + τs )3
o
C ⋅h
gdje je Kα = 529 (prijenosni omjer) i τ = 42,86 s (vremenska konstanta).
l

63
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Na regulacijski objekt djeluju, kao poremećajne veličine, promjena vanjske


temperature i promjena tlaka u cjevovodu kojim se dovodi gorivo u peć, zbog čega se pri
istom podizanju ventila smanjuje dotok ogrijevne materije. Kako se izolacijskim materijalom
u znatnoj mjeri priječi izmjena energije između peći i okoline u ovom će se primjeru utjecaji
promjene vanjske temperature zanemariti.

Slika 3.32: Oblik prijelazne funkcije peći

b) Regulacijski uređaji

Mjerni član
Mjerni član se sastoji od mjernog osjetila (MO) i dva mjerna pretvornika (MP1 i MP2).
Mjerno osjetilo je lukovica živinog termometra. Mjerni pretvornik MP1 je otporna nit
uronjena u kapilaru sa živom. Promjena visine živinog stupca izaziva promjenu otpora
otporne niti. Mjerni pretvornik MP2 pretvara vrijednost otpora u standardni naponski signal (0
- 500 mV). Osim toga, ovaj mjerni pretvornik vrši kompenzaciju pogreške u mjerenju nastale
zagrijavanjem same otporne niti. M0 je P1 član, dok su MP1 i MP2 P0 članovi. Prijenosna
funkcija mjernog člana je:

K mč
Gmč =
1 + τ mč s

gdje su: Kmč = 2,5 mV/°C (prijenosni omjer) i τmč = 0,5 s (vremenska konstanta).

Davač nazivne vrijednosti


Ovaj uređaj služi operateru za zadavanje željene vrijednosti temperature u peći koju će
regulacijski uređaji u krugu održavati konstantnom. Davač nazivne vrijednosti na izlazu
postavlja naponski signal U0 koji odgovara željenoj temperaturi.

64
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Usporednik (komparator)
Usporednik uspoređuje naponske vrijednosti U0 i Ux te na izlazu daje regulacijsko odstupanje
E (V) kao razliku ta dva signala.

Regulator
Zadatak regulatora je da na temelju vrijednosti E (V) oblikuje signal Ui (V) kojim se vodi
postavni član i na taj način postigne optimalno regulacijsko djelovanje. Prema vremenskom
članu kojeg sadrži, regulatori mogu biti proporcionalani (P), integracijski (I), derivacijski (D),
proporcionalno-derivacijski (PD), proporcionalno-integracijski (PI) i proporcionalno-
integralno-derivacijski (PID). U procesnoj regulaciji najčešće se koriste P i PI regulatori. U
ovom primjeru koristi se P regulator. Regulacija procesa s izjednačenjem, kakav je i ovaj
proces, korištenjem P regulatora karakteristična je po trajnom regulacijskom odstupanju e(∞).

Izvršni član
Izvršni član se sastoji od električnog pojačala (P), električnog motora (PM) i postavnog člana
(PČ). Električno pojačalo pojačava naponski signal Ui u signal dovoljne snage za pokretanje
električnog motora. Električni motor pretvara električnu energiju u mehaničku kojom pokreće
postavni član. Postavni član je ventil kojim se propušta ogrijevna materija u peć. U odnosu na
vremenska kašnjenja u ostalim dijelovima regulacijskog kruga kašnjenja u blokovima
izvršnog člana su zanemarivo mala pa se ovaj član može predstaviti P0 članom:

Gič (s) = Kič

l
gdje je Kič = 8 ⋅ 10-4
h ⋅ mV

a)

65
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

b)

Slika 3.33: Strukturni (a) i blok dijagram (b) regulacijskog kruga

Stabilnost sustava u odnosu na poremećaj napajanja ispituje se u dinamičkim uvjetima rada.


Pri tome se promatraju promjene veličina u krugu, a ne njihove apsolutne vrijednosti.

Zadatak za vježbu

1. Na temelju blok dijagrama regulacijskog kruga i prijenosnih funkcija pojedinih blokova


napišite ukupnu prijenosnu funkciju regulacijskog kruga. Koristeći Routh-ov kriterij
stabilnosti odredite pojačanje regulatora Kr za koje će sustav biti stabilan.
2. Nacrtajte blok dijagram simulacije za zadani regulacijski krug. Napišite model ovog kruga
koristeći blok dijagram simulacije.
3. Simulacijom na računalu ispitajte ponašanje sustava pri poremećaju napajanja od qz =
0,01 l /h. Za Kr odaberite srednju vrijednost u dozvoljenom području. Skicirajte i opišite
odziv sustava. Koliko je regulacijsko odstupanje?
4. Za Kr postavite vrijednosti 0 (sustav je bez povratne veze). Simulirajte odziv sustava pri
poremećaju napajanja qz = 0,01 l /h. Skicirajte i opišite sustav. Koliko je trajno regulacijsko
odstupanje u ovom slučaju?
5. Odaberite nekoliko vrijednosti pojačanja Kr ravnomjerno raspoređenih unutar dozvoljenog
područja. Simulirajte sustav za svaki Kr i izmjerite trajno regulacijsko odstupanje.
Komentirajte utjecaj pojačanja regulatora Kr na trajno regulacijsko odstupanje i na dinamičko
vladanje kruga.
6. Povećajte pojačanje Kr iznad dozvoljene veličine. Opišite što se događa s temperaturom
unutar peći.

3.7. Servomotor

Upotreba servomotora je iznimno raširena. Skoro sve što zahtjeva precizne pokrete
pokreće se servomotorima. U biti je to istosmjerni motor upravljan strujom armature. Takav je
motor u otvorenoj petlji sustav prvog reda. Ulaz je napon (um) koji je narinut na pojačalo
snage. Izlaz je brzina motora ω u [rad/s]. Pretpostavlja se da je armaturna samoindukcija
zanemariva. Brzina motora i izlazni napon tahometra (ut) su povezani s jednadžbom:

ut (t) = Ktω (t) (3.12)

Blok dijagram je prikazan na slici 3.34. Tablica 3.1 prikazuje tvorničke parametre tipičnog
servomotora.

66
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 3.34: Blok dijagram istosmjernog motora

Tablica 3.1: Tvornički parametri tipičnog servomotora

osjetljivost tahometra, Kt 0.00955 [V/rad/s]

momentna konstanta, Km 0,027 [Nm/A]

elektromotorna konstanta povratne veze, Kb 0,027 [V/rad/s]

otpor armature motora, Rm 5,3[Ω]


trenje motora, B 6 ⋅ 10-6 [Nms]
inercija armature motora, J 1,57 ⋅ 10-6 [kgm2]

Slika 3.35: Simulacijski model servomotora s vrijednostima iz Tablice 3.1

Ako se u izraz za prijenosnu funkciju motora (prema slici 3.34) uvrste podaci iz
tablice 3.1, slijedi da je:

K m / Rm Km
Js + B Rm (Js + B ) Km
H (s) = = = =
K m / Rm Rm ( Js + B ) + K b K m Rm ( Js + B ) + K b K m
1 + Kb
Js + B Rm (Js + B )
Km K 1 Km 1
= ⋅ m = = ⋅
Rm ( Js + B ) + K b K m K m Rm  K K  Rm Js + B + K b K m
⋅  Js + B + b m 
Km  Rm  Rm
Kb K m
uz K x = B + slijedi:
Rm

67
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Km 1 Km 1
H ( s) = ⋅ = ⋅ (3.13)
Rm  J  Rm K x  J 
K x  s + 1  s + 1
 Kx   Kx 

Prijenosna funkcija motora H(s) je prvog reda, tj. oblika:

K
H (s) = (3.14)
τs + 1

gdje je K istosmjerno pojačanje, a τ vremenska konstanta. Za podatke iz tablice slijedi:

Km 1
K= = 35,515  
Rm K x Vs 
J
τ= = 10,933 [ms ]
B + K b K m / Rm
.
35,515
H (s) =
0,010933s + 1

Ovaj sustav se može voditi s pomoću:


a) proporcionalnog regulatora i
b) proporcionalno-integracijskog regulatora.

3.7.1. Vođenje istosmjernog stroja proporcionalnim regulatorom

Proporcionalni regulator stvara aktuatorski signal razmjeran signalu pogreške. Za ovaj


istosmjerni motor, zakon vođenja stoga glasi:

um(t) = Kp(ωd(t) - ω(t)) (3.15)

gdje su ωd željena brzina motora i Kp proporcionalno pojačanje. Kako je:

ut(t) = Ktω(t)

slijedi da se željeni izlazni napon tahometra može izraziti kao:

ud(t) = Ktωd(t)

i dobiva se zakon upravljanja:

Kp
u m (t ) = (ud (t ) − ut (t ) ) (3.16)
Kt

Uzimajući da je slijedi da je prijenosna funkcija zatvorene petlje:

K p' H ( s)
W (s) =
1 + K p' H ( s)

68
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

35,515 35,515
K 'p ⋅ K p' ⋅
0,011s + 1 0,011s + 1
W ( s) = = =
' 35,515 1 + 0.011 s + K '
⋅ 35,515
1+ K p ⋅ p
0,011s + 1 0,011s + 1
35,515 K p'
35,515K p' 1 + 35,515K p'
= =
0,011s + K p' ⋅ 35,515 + 1 0,011
s +1
1 + 35,515K p'

0,011
gdje je vremenska konstanta τ = .
35,515K 'p + 1

Ud (s) Ut (s)
K’ P H(s)
- W(s)
a)

b)

c)

Slika 3.36: a) Blok dijagram vođenja potora P regulatorom, b) simulacijski model u


Simulinku, c) primjer odziva sustava

69
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

3.7.2. Vođenje
enje istosmjernog stroja PI regulatorom

U PI regulatoru postoji dodatni član


lan u signalu aktuatora, koji je razmjeran integralu
signala pogreške. PI zakon vođenja
vođ za istosmjerni motor je:

 K 
U m ( s ) =  K p + I (ω d ( s ) − ω ( s ) ) (3.17)
 s 

Zbog dodatnog člana lana prijenosna funkcija je sada drugog reda i to ne jednostavna, jer
ima i nul točku.
ku. Na isti nanačin
čin kao i kod proporcionalnog regulatora dobiva se prijenosna
funkcija zatvorene petlje:
K ps + KI 35,515

K (s) H (s) s 0,011s + 1
W (s) = = =
1 + K ( s) H (s ) K p s + K I 35,515
1+ ⋅
s 0,011s + 1
(K p s + K I ) 35,515
s (0,011s + 1) 35,515 K p s + 35,515 K I
= =
s (0,011s + 1 + (K p s + K I )35,515 0,011s + (1 + 35,515 K p ) s + 35,515 K I
2

s (0,011s + 1

Ud(s) KI' Ut(s)


K +'
P
H (s )
- s
W(s)

a)

b)

70
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

c) d)

Slika 3.37: a) Blok dijagram PI regulacije servomorota, b) Simulink model, c) prozor za


podešavanje parametara prijenosne funkcije, d) primjer odziva sustava

Zadaci za vježbu:

1. Proračunajte proporcionalni regulator tako da vremenska konstanta prijenosne funkcije


zatvorene petlje bude τ = 0,005 (s).
2. Simulirajte vođenje istosmjernog motora proračunatim proporcionalnim regulatorom.
Precrtajte odziv na jediničnu odskočnu funkciju (može i copy-paste iz Matlaba).
3. Mijenjajte vrijednosti Kp’. Da li istosmjerno pojačanje ovisi o Kp’?
4. Koristeći se Simulink-om, mijenjati parametre PI regulatora tako da prebačaj bude što bliže
as + b
20% u trenutku 0,005 (s). Za PI regulator iz zadatka vrijedi: K ( s ) = .
cs
5. Uzmite nekoliko proizvoljnih kombinacija parametara a, b i c te skicirajte rezultate za Mp i
Tp. Skicirajte odziv za svaki slučaj.

71
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

4. SLOŽENI PRIMJERI MODELIRANJA I SIMULIRANJA U


MATLAB/SIMULINK PROGRAMSKOM PAKETU
U ovom poglavlju dani su primjeri naprednog korištenja Matlaba i Simulinka.
Jedan od glavnih prigovora raznim simulacijama i modeliranjima u obrazovanju i
znanosti jest da nema veze sa stvarnim svijetom. Prednost programskog paketa
Matlab/Simulink je u tome što postoji više alatki za povezivanje sa stvarnim svijetom. Tu
spadaju alatke za uzimanje podataka s PC kartica (tj. senzora), poput alatke za dohvat
podataka ili slika (data acquisition, image acquisition). Potom, tu je i Radionica u stvarnom
vremenu (Real-time Workshop), HDL koder za programiranje PLC-ova i dr. To znači da
Matlab služi i za upravljanje stvarnim sustavima, a ne samo za proračun, obradu podataka i
simuliranje. Stoga prvo i drugo potpoglavlje obrađuju dva takva primjera. Naravno, primjeri
se mogu izvoditi ako dostupna licenca ima odrežene skupove blokova (tzv. blockset).

4.1. Realizacija Simulink modela na DSP kartici

Kada se već izsimulira i projektira model sustava upravljanja kakav je potreban,


poželjno ga je testirati i u stvarnosti. Jedan od načina je iz Simulinka.
Prvo se napravi Simulink blok-dijagram. Tada se starta Studio za pisanje koda (Code
Composer Studio, CCStudio). U simulink-prozoru izabere se “Simulation” pa “Configuration
Parameters”. Na listi izaberite “TIC6000 code generation”. Isključite “Incorporate
DSP/BIOS” i potvrdite “Real-time Workshop”, a potom “Generate Code”. Matlab će
automatski genertirati program uspostaviti veze s CC-studiom, transformirati Simulink model
u C/C++ datoteke, kreirati novi projekt, dodati sve potrebne datoteke u projekt, i izgraditi
program na ciljni hardver.
Program se izvršava tako da se na “Debug” izborniku izabere “Go main” i onda
“Run”.

4.2. Dohvat slike s kamere

Jedan od čestih ulaznih signala je slikovni. Slikovni signal dolazi s kamere. Stoga je u
Matlabu razvijen način dohvata slike. Slika se treba prenijeti u neki od formata koje podržava
Matlab, poput strukture ili matrice. Da bi znali koji su video adaptori dostupni na nekom
računalo, koristi se naredba imaqhwinfo. Slijedi primjer ispisa:

» imaqhwinfo

ans =

InstalledAdaptors: {'matrox' 'winvideo'}


MATLABVersion: '7.12 (R2011a)'
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '4.1 (R2011a)'

Naredbom imaqfind pronalaze se instalirane naprave. Slijedi primjer ispisa:

» imaqfind

Summary of Video Input Object Using 'Integrated Webcam'.

72
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Acquisition Source(s): input1 is available.

Acquisition Parameters: 'input1' is the current selected source.


10 frames per trigger using the selected source.
'YUY2_1280x720' video data to be logged upon START.
Grabbing first of every 1 frame(s).
Log data to 'memory' on trigger.

Trigger Parameters: 1 'immediate' trigger(s) on START.

Status: Waiting for START.


0 frames acquired since starting.
0 frames available for GETDATA.

Da bi se dohvatila slika s kamere, potrebno je definirati video objekt (videoinput), a


onda ta očitanja učitati u neki Matlabov format (getsnapshot). Kada se definira video objekt,
moguće je prikazati sliku s kamere bez učitavanja u varijablu i bez memoriranja (preview).
Slika 4.1 prikazuje jedan primjer takvog pogleda dobiven sljedećim naredbama:

» vobj = videoinput('winvideo'); preview(vobj);

Slika 4.1: Primjer prikaza videa s kamere bez memoriranja

73
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Da bi se sa slikama moglo bilo što raditi (otkrivanje rubova, pokreta, prepoznavanje


objekata i sl.), potrebno je dohvatiti sliku i upisati je u neku varijablu. Za većinu algebarskih
operacija potrebna je varijabla dvostruke preciznosti (double). Dohvat s učitanjem u varijablu
može se postići naredbom:

»bb=double(getsnapshot(vobj));

Slika 4.2: Tok slikovnih signala u Matlabu

Osim u radnom prostoru i pisanjem programskog koda, slika se s kamere može


dohvatiti i u Simulinku izborom odgovarajućih blokova (uz uvjet da posjedujete licencu za
odgovarajući skup blokova).
Slika 4.3 pokazuje najjednostavniji Simulink model za dohvat i prikaz slike. Sastoji se
od bloka za dohvat slike (From Video Device) i bloka za prikaz slike (To Video Display). Ako
se ta slika želi obraditi, između dva bloka se postavlja odgovarajući niz različitih blokova.

Slika 4.3: Najjednostavniji Simulink model za dohvat i prikaz slike

74
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Ako se klikne na blok za dohvat slike, otvori se izbornik, koji pruža izbor video
formata, kamere i drugih mogućnosti.
Ako se u spomenutom izborniku klikne na Preview, pokazuje se slika kakva stiže s
kamere. To je prikazano na slici 4.4.

Slika 4.4: Prikaz slike dohvaćene s kamere

Kada se pokrene model, tada se otvara novi grafički prozor, koji prikazuje krajnji
rezultat djelovanja modela (Slika 4.5). Kod nekih kamera, otvara se i izbornik kamere, kojim
se mogu podešavati razne opcije, kao kontrast, pozadinsko svjetlo, boja, i sl.
Slika 4.6. prikazuje jednostavni primjer otkrivanja kretnji dostupan u pomoći (Help)
za alatku računalnog vida (Computer Vision System Toolbox), a ime datoteke je
vipmotion.mdl. Zbroj apsolutnih razlika (engl. sum of absolute differences, SAD) je popularni
postupak otkrivanja kretnji u obradi videa. U ovom demo-u SAD se primjenuje neovisno u 4
kvadranta. Ako je detektirana kretnja u kvadrantu, demo naglašava kvadrant crvenom bojom.
Bolje, ali i sporije bi bilo imati više djelova slike. Ulaz u model je snimljena datoteka, što
znači da se kretnja detektira off-line. Iza bloka za ulaz video podataka, signal dolazi do bloka
SAD, koji je sastavljen od više jednostavnih blokova. Usporedbom se označava kvadrant s
kretnjom, jer je on veće energije od zadanog praga (blok Motion Threshold).

75
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.5: Prikaz slike nakon djelovanja modela

Slika 4.6: Simulink model otkrivanja kretnji

Model sa slike 4.6 može se modificirati za primjenu u realnom vremenu (on-line).


Jedan takav primjer prikazan je na slici 4.7 i koristi integriranu kameru s laptop računala.
Umjesto unosa video niza, stavlja se blok za kameru (From Video Device). Kako predložak iz
Matlaba koristi sivu sliku, potrebno je RGB ulaz s kamere transformirati u sivu mapu (RGB to
intensity).

76
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

On-line otkrivanje kretnji - modificiran Matlab


Integrated W...
From Video Device YUY2_1280x720
input1 1
Quadrant Motion
Estimates
Sum of
Absolute >
Differences Detect

SAD
R'G'B' to Motion Energy 1.7e4/512
Intensity
intensity Prag kretnje
AD
AD po_potrebi mijenjati Detect
Color Space nazivnik
Image
Conversion
Preglednik-video prozor
Intensity

Slika 4.7: Otkrivanje kretnji u realnom vremenu – model u Simulinku

4.3. Upravljanje sustavom dva spremnika

Za ovaj primjer je potrebno imati alatku za robustno upravljanje (Robust Control


Toolbox) u kojoj se nalazi predložak u datoteci tank_demo.m.
Objekt upravljanja je jednostavan sustav s dva spremnika vode, koji su spojeni
kaskadno. Gornji spremnik se puni hladnom i toplom vodom preko ventila kojima upravlja
kompjuter. Donji spremnik se puni viškom iz gornjeg spremnika (spojen na dno donjeg
spremnika). Cilj upravljanja je podešavanje temperature vode u oba spremnika.

Slika 4.8: Sustav dva spremnika kojim se upravlja

77
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Varijable spremnika označene su na sljedeći način:


 fhc - naredba aktuatoru toplog toka,
 fh - tok tople vode u spremnik 1,
 fcc - naredba aktuatoru hladne vode,
 fc - tok hladne vode u spremnik 1,
 f1 - ukupni tok u spremnik 1,
 A1- presjek površine spremnika 1,
 h1 - razina vode spremnika 1,
 t1 - temperatura spremnika 1,
 t2 - temperatura spremnika 2,
 A2 - presjek površine spremnika 2,
 h2 - razina vode spremnika 2,
 fb - protok vode (Flow rate) za spremnik 2,
 tb - temperatura spremnika 2,
 th - temperatura tople vode i
 tc - temperatura hladne vode.

Kako Matlab radi s brojevima, a ne fizikalnim jedinicma, treba paziti na dosljednost u


unošenju vrijednosti. Obično se definiraju normalizirane jedinice. U ovom slučaju definirane
su prema tablici 4.1.

Tablica 4.1: Normalizirane jedinice u sustavu s dva spremnika

Varijabla Ime jedinice „0“ znači: „1“ znači:


Temperatura tunit temperatura hladne vode temperatra tople vode
Visina hunit prazan spremnik pun spremnik
Tok funit tok nultog ulaza maksimalni ulazni tok

Upotrebom normaliziranih jedinica, slijede postavke objekta upravljanja:

»A1 = 0.0256; % Površina spremnika 1 (hunits^2)


»A2 = 0.0477; % Površina spremnika 2 (hunits^2)
»h2 = 0.241; % Visina spremnika 2 (hunits)
»fb = 3.28e-5; % Dotok vode (hunits^3/sec)
»fs = 0.00028; % Skaliranje toka (hunits^3/sec/funit)
»th = 1.0; % Temperatura tople vode (tunits)
»tc = 0.0; % Temperatura hladne vode (tunits)
»tb = tc; % Temperatura dotoka hladne vode (tunits)
»alpha = 4876; % Parametar omjera tok/visina (hunits/funits)
»beta = 0.59; % Parametar omjer tok/visina (hunits)

Varijabla fs je faktor skaliranja toka koji konvertira njegovu vrijednost u opsegu


ulaznih vrijednosti (0 - 1 funits) u tok izražen s hunits^3/s. Konstante alpha i beta opisuju
odnos tok/visina za spremnik 1: % h1 = alpha*f1 – beta.

4.3.1. Nominalni model spremnika

Nominalni model postiže se linearizacijom oko radne točke:

»h1ss = 0.75; % Razina vode spremnika 1

78
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

»t1ss = 0.75; % Temperatura spremnika 1


»f1ss = (h1ss+beta)/alpha; % Tok spremnika 1 -> spremnika 2
»fss = [th,tc;1,1]\[t1ss*f1ss;f1ss];
»fhss = fss(1); % Vrući tok
»fcss = fss(2); % Hladni tok
»t2ss = (f1ss*t1ss + fb*tb)/(f1ss + fb); % Temperatura spremnika 2

Nominalni model za spremnik 1 ima ulaze [|fh|; fc] i izlaze [|h1|; t1]:

»A = [ -1/(A1*alpha), 0;
(beta*t1ss)/(A1*h1ss), -(h1ss+beta)/(alpha*A1*h1ss)];
»B = fs*[ 1/(A1*alpha), 1/(A1*alpha);
th/A1, tc/A1];
»C = [ alpha, 0;
-alpha*t1ss/h1ss, 1/h1ss];
»D = zeros(2,2);
»spremnik1nom = ss(A,B,C,D,'InputName',{'fh','fc'},'OutputName',{'h1','t1'});
»clf
»step(spremnik1nom)
»title('Odziv na step spremnika 1')

Slika 4.9: Odziv na jediničnu koračajnu pobudu spremnika 1

Nominalni model za spremnik 2 ima ulaze [|h1|;|t1|] i izlaz t2:

»A = -(h1ss + beta + alpha*fb)/(A2*h2*alpha);


»B = [ (t2ss+t1ss)/(alpha*A2*h2), (h1ss +beta) /(alpha*A2*h2) ];
»C = 1;

79
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

»D = zeros(1,2);
»spremnik2nom = ss(A,B,C,D,'InputName',{'h1','t1'},'OutputName','t2');
»step(spremnik2nom), title('Step odziv za spremnik 2')

Slika 4.10: Odziv na jediničnu koračajnu pobudu spremnika 2

4.3.2. Model aktuatora

U aktuatorima se javljaju dinamike i zasićenja. U korištenom frekvencijskom opsegu,


aktuatori se mogu aproksimirati sustavom prvog reda sa saturacijom brzine i amplitude.
Ograničenje brzine ograničava izvedbu aktuatora više nego položaj. Za linearni model, neki
učinci ograničenja brzine mogu biti uključeni kroz perturbacijski model.
Neka je model aktuatora s jednim ulaz (naredba) i dva izlaza (aktuirani signal i
njegova derivacija). Koristit će se derivirani izlaz kako bi se ograničilo brzinu aktuatora.

»act_BW = 20; % Širina pojasa aktuatora (rad/s)


»actuator = [ tf(act_BW,[1 act_BW]);
»tf([act_BW 0],[1 act_BW]) ];
»actuator.OutputName = {'Flow','Flow rate'};
»bodemag(actuator)
»title('Dinamika aktuatora ventila')
»hot_act = actuator;
»set(hot_act,'InputName','fhc','OutputName',{'fh','fh_rate'});
»cold_act =actuator;
»set(cold_act,'InputName','fcc','OutputName',{'fc','fc_rate'});

80
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.11: Bodeov dijagram za aktuator ventila

4.3.3. Protupreklapajući (Anti-Aliasing) filtri

U ovom primjeru svi mjereni signali se filtriraju s Butterworth-ovim filterima četvrtog


reda, svaki s graničnom frekvencijom 2,25 Hz. Naredbom filter vrši se filtriranje signala.
Kako bi se definirao filtar, koristi se naredba mkfilter (engl. make filter, konstruiraj filtar).

»fbw = 2.25; % Protupreklapajući filtar s frekvencijom kidanja u [Hz]


»filter = mkfilter(fbw,4,'Butterw');
»h1F = filter;
»t1F = filter;
»t2F = filter;

4.3.4. Nesigurnost u dinamici modela

Eksperimenti s otvorenom petljom otkrivaju izvjesne varijabilnosti u odzivu sustava.


To znači da je linearni model dobar na niskim frekvencijama. Ako se to zanemari prilikom
projektiranja, kontroler će loše raditi u stvarnom sustavu. Stoga je potrebno izraditi model
nesigurnosti koji pogađa našu procjenu nesigurnosti fizičkog sustava.
Kako veličina nesigurnosti modela i varijabilnost tipično ovise o frekvenciji, model
nesigurnosti mora uključivati težinske funkcije ovisne o frekvenciji kako bi se normalizirao
model preko svih frekvencija.
Eksperimenti s otvorenom petljom ukazuju na značajnu dinamičku nesigurnost u
odzivu t1. To je zbog miješanja hladnih i toplih voda i gubitka topline. Može se modelirati
kao multiplikativni model greške Delta2 na t1 izlazu, dok se multiplikativni model greške
Delta1 i Delta3 pridaju izlazima h1 i t2.

81
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.12: Uvođenje nesigurnosti u regulacijski krug

Slika 4.12 prikazuje mjesta unosa grešaka u model.


Kako bi se dovršio model nesigurnosti, mora se kvantificirati koliko su velike greške
modeliranja u funkciji frekvencije. Kako je to teško precizno odrediti, mogu se odrediti grube
granice s obzirom na opseg gdje je linearan model precizan, a gdje loš.
Nominalni model za h1 je vrlo precizan do 0,3 Hz. Za t1 nesigurnost bi trebala
dominirati iznad 0,02 Hz. Postoji fazni pomak od dodatnih 180 stupnjeva za t1 na 0,02 Hz.
Takođe je prisutan značajan pad pojačanja na toj frekvenciji. Ti učinci dolaze iz nemodelirane
dinamike miješanja. Kod t2 nesigurnost prevladava iznad 0,03 Hz. Ovi podaci sugeriraju
granice frekvencija za modeliranje granica pogreški ovisnih o frekvenciji.

»Wh1 = 0.01+tf([0.5,0],[0.25,1]);
»Wt1 = 0.1+tf([20*h1ss,0],[0.2,1]);
»Wt2 = 0.1+tf([100,0],[1,21]);
»clf;
»bodemag(Wh1,Wt1,Wt2),
»title('Granice greški modeliranja')
»legend('h1 dynamics','t1 dynamics','t2 dynamics','Location','NorthWest')

% Normalizirana dinamika greški


»delta1 = ultidyn('delta1',[1 1]);
»delta2 = ultidyn('delta2',[1 1]);
»delta3 = ultidyn('delta3',[1 1]);

% Frekvencijski ovisna varijabilnost u h1, t1, t2


»varh1 = 1+delta1*Wh1;
»vart1 = 1+delta2*Wt1;
»vart2 = 1+delta3*Wt2;

% Dodavanje varijabilnosti nominalnom modelu


»spremnik1u = append(varh1,vart1)*spremnik1nom;
»spremnik2u = vart2*spremnik2nom;
»spremnik1i2u = [eye(2); spremnik2u]*spremnik1u;

82
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.13: Granice greški modeliranja

Sada je potrebno slučajnim odabirom uzorkovati nesigurnost kako bi se shvatilo kako


greške modeliranja utječu na odziv.

»step(spremnik1u,1000)
»title('Varijabilnost odziva zbog pogreški modeliranja (spremnik 1) ')

Slika 4.14: Varijabilnost odziva zbog greški modeliranja spremnika 1

83
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

4.3.5. Projektiranje kontrolera

Cilj simuliranja je pratiti


ratiti naredbe za t1 i t2. Kako bi se iskoristile prednosti H∞
algoritma, mora se formulirati sustav koji minimizira pojačanje
poja anje u zatvorenoj petlji. Stoga se
izabiru težinske funkcije koje odgovaraju poremećajima
poreme ajima i potrebne su za normalizaciju
odgovarajućih frekvencijski-ovisnih
ovisnih komponenti.

Slika 4.15: Shema odgovarajuće


odgovaraju prijenosne funkcije za problem 2 spremnika s uračunatim
težinskom faktorima

Potrebno je odabrati težinske faktore senzorskih šumova, naredbi za postavljanje točki,


to
praćenje greški i aktuatora. Obično
Obi se pretpostavlja da je dinamika
inamika senzora zanemariva u
odnosu na relativnu dinamiku ostatka sustava.
sustava To nije točno no za šum senzora. Potencijalni
izvori šuma uključuju
uju elektronički
elektronič šum u termoparovima
parovima kod kompenzatora, pojačala
poja i filtera,
šum lošeg uzemljenja, zračenje,
enje, i dr. Da bi se estimiralo razinu šuma, koristi se FFT analiza te
čenje,
se tako dobivaju težinske vrijednosti. Sljedećim
Sljede im programskim linijama dobiva se odnos
penalizacije greški o frekvenciji:

»Wh1noise = 0.01;
»Wt1noise = 0.03;
»Wt2noise = 0.03;
»Wt1perf = tf(100,[400,1]);
»Wt2perf = tf(50,[800,1]);
»clf;
»bodemag(Wt1perf,Wt2perf);;
»title('Penalizacija
Penalizacija greške ovisna o frekvenciji');
frekvenciji
»legend('t1','t2')

84
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.16: Frekvencijska karakterisitka greške postavljene točke zbog šuma

Kako glavnina vode koja teče u spremnik 2 dolazi iz spremnika 1, izmjene u t2 su


dominantne. Također se za t2 obično zadaje vrijednost blizu t1. Stoga ima više smisla koristiti
podešavanje t1 i t2 – t1:

- za t1: t1cmd = Wt1cmd * w1


- za t2 – t1: t2cmd =Wt1cmd*w1+Wtdiffcmd*w2

gdje su w1, w2 ulazi za bijeli šum. Odgovarajuće vrijednosti težinskih faktora su:

»Wt1cmd = 0.1; % za t1
»Wtdiffcmd = 0.01; % za t2 - t1

Također je potrebno učitati penalizacije za hladnu i vruću vodu i brzine aktuatora:

»Whact = 0.01; % Penalizacija za aktuator vruće vode


»Wcact = 0.01; % Penalizacija za aktuator hladne vode
»Whrate = 50; % Penalizacija brzine toplog aktuatora
»Wcrate = 50; % Penalizacija brzine hladnog aktuatora

Izrada modela otvorene petlje s težinama uključuje računanje odziva naredbom


feedback ili sysic:

»systemnames = 'spremnik1i2u hot_act cold_act t1F t2F';


»systemnames = [systemnames,' Wt1cmd Wtdiffcmd Whact Wcact'];
»systemnames = [systemnames,' Whrate Wcrate'];
»systemnames = [systemnames,' Wt1perf Wt2perf Wt1noise Wt2noise'];
»inputvar = '[t1cmd; tdiffcmd; t1noise; t2noise; fhc; fcc]';

85
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

»outputvar = '[Wt1perf; Wt2perf; Whact; Wcact; Whrate; Wcrate]';


»outputvar = [outputvar,'; Wt1cmd; Wt1cmd+Wtdiffcmd;'];
»outputvar = [outputvar,' Wt1noise+t1F; Wt2noise+t2F]'];
»input_to_spremnik1i2u = '[hot_act(1);cold_act(1)]';
»input_to_hot_act = '[fhc]';
»input_to_cold_act = '[fcc]';
»input_to_t1F = '[spremnik1i2u(2)]';
»input_to_t2F = '[spremnik1i2u(3)]';
»input_to_Wt1cmd = '[t1cmd]';
»input_to_Wtdiffcmd = '[tdiffcmd]';
»input_to_Whact = '[hot_act(1)]';
»input_to_Wcact = '[cold_act(1)]';
»input_to_Whrate = '[hot_act(2)]';
»input_to_Wcrate = '[cold_act(2)]';
»input_to_Wt1perf = '[Wt1cmd - spremnik1i2u(2)]';
»input_to_Wt2perf = '[Wtdiffcmd + Wt1cmd - spremnik1i2u(3)]';
»input_to_Wt1noise = '[t1noise]';
»input_to_Wt2noise = '[t2noise]';
»sysoutname = 'P';
»cleanupsysic = 'yes';
»sysic;
»disp('Model otvorene petlje s težinskim vrijednostima')

Nastavak programskog slijeda je u potpoglavlju 4.3.7. Međutim, da bi se primjenio


regulator s H∞ upravljanjem, potrebno je objasniti kakvo je to upravljanje, što je učinjeno u
potpoglavlju 4.3.6.

4.3.6. Pojam H∞ norme i upravljanja

H∞ norma stabilne skalarne prijenosne funkcije F(s) je jednostavno vršna vrijednost:

F ( s) ∞
= max F ( jω ) (4.1)
ω

Strogo matematički gledano, u gornjoj jednadžbi bi trebalo pisati sup, a ne max, jer se
maksimum može dobiti i kada frekvencija teži beskonačnosti, a u biti se traži supremum.
Međutim, u inžinjerskoj praksi je dovoljno točno i maksimum. Kako se minimizira vršna
vrijednost, pri ekstremnoj frekvenciji, slijedi da minimiziranje H∞ norme odgovara
minimiziranju vrha najveće svojstvene vrijednosti.
Simbol H dolazi od izraza "Hardy space" (Hardyjev prostor). H∞ je, u kontekstu
automatike skup prijenosnih funkcija s ograničenom ∞-normom. Funkcija G(s) je strogo
pravilna ako teži nuli kad s → ∞. Funkcija G(s) je polu-pravilna ili dvo-pravilna ako G(s) →
D ≠ 0 kad s → ∞) prijenosnih funkcija. Iz tog skupa prijenosnih funkcija, odabire se s pomoću
nekog kriterija ona koja je najbolja (s obzirom na taj kriterij, npr. pogreška).
Simbol ∞ dolazi od činjenice da se maksimalna amplituda, u ovisnosti o frekvenciji,
može pisati:

1/ p
∞ p 
max F ( jω ) = lim  ∫ F ( jω ) dω  (4.2)
ω p →∞
 −∞ 

86
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

U biti, potencirajući na beskonačnu potenciju, bira se vršna vrijednost, jer se


frekvencijske komponente manje prisutnih harmonika brže guše potenciranjem i u potpunosti
iščezavaju teorijski na beskonačnoj potenciji, a praktično već kod kvadriranja ili kubiranja.
Kad iščeznu harmonici manjeg intenziteta ostaje samo dominantni, te se vađenjem
beskonačnog korijena beskonačno potenciranog dominatnog harmonika dobija sam harmonik.
Ako, npr., postoji signal koji ima harmonike amplitude 1 i 0,5, tada se kvadriranjem dobija 1 i
0,25. Ponovnim kvadriranjem dobija se 1 i 0,0625, itd. Vidi se da vrijednost nedominantnih
harmonika brzo pada. Funkcija se uvijek može normalizirati tako da je dominantni harmonik
amplitude 1. To se često radi na samom početku procedure skaliranjem. U biti se svi
harmonici dijele s amplitudom najvećeg.
Minimizacijom H∞ norme izolira se najveći harmonik, tj. maksimalna vrijednost
signala i za nju se računa najbolji regulator/kontroler. Ova norma je dobra za ekstremne uvjete
rada, gdje je jedan harmonik posebno izražen, te treba paziti na njegovu vršnu vrijednost kako
ne bi došlo do nestabilnosti sustava.
Slika 4.17 prikazuje temeljnu konfiguraciju općenitog upravljanja, gdje su: u –
upravljačke varijable, v – mjerene varijable, w – egzogeni signali (smetnje wd i zapovijedi r), z
– signal za minimiziranje.

Slika 4.17: Konfiguracija općenitog upravljanja

Prijenosna matrica sustava je sa slike 4.17:

Y (s)
= C ⋅ [sI − A] B + D
−1
G ( s) =
U (s)

Ako se gornji rezultat primijeni na oznake sa slike 4.17, onda je:

P(s) = C(sI – A)-1B + D.

Formulacija problema sa slike 4.17 glasi:

 z  w  P11 ( s) P12 ( s)  w


v  = P ( s )  u  =  P ( s) P ( s)  u  (4.3)
     21 22  

u = K ( s )v (4.4)

Kako je općeniti objekta u prostoru stanja:

87
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

A B1 B2 
P ( s ) =  C1 D11 D12 
 
C 2 D21 D22 
slijedi:

C  D D12 
C =  1 , B = [B1 B2 ], D =  11 ,
C 2   D21 D22 

te je:

C  D D12  C1 (sI − A)−1 


P ( s ) =  1  (sI − A) [B1 B2 ] +  11 [B1 B2 ] +
−1
=
C 2   D21 D22  C 2 (sI − A)−1 
D D12   C1 (sI − A)−1 B1 C1 (sI − A) B2   D11
−1
D12 
+  11 ==  + =
 D21 D22  −1
C 2 (sI − A) B1
−1
C 2 (sI − A) B2   D21 D22 
 C1 (sI − A)−1 B1 + D11 C1 (sI − A)−1 B2 + D12 
= −1 −1 
C 2 (sI − A) B1 + D21 C 2 (sI − A) B2 + D22 
−1
P11 = C1 (sI − A) B1 + D11
−1
P12 = C1 (sI − A ) B 2 + D12
−1
P21 = C 2 (sI − A) B1 + D21
−1
P22 = C 2 (sI − A) B2 + D22

Prijenosna funkcija zatvorene petlje iz w u z data je s:

z = Fl (P, K)⋅ w (4.5)

Uvrštavajući izraz za u u matričnu jednadžbu za formulaciju problema slijedi:

 z   P11 P12   w   P11 w + P12 Kv 


v  =  P =
P22   Kv   P21 w + P22 Kv 
   21

v = P21 w + P22 Kv ⇒ v = ( I − P22 K ) −1 P21 w

z = P11 w + P12 Kv = P11 w + P12 K ( I − P22 K ) −1 P21 w

z = ( P11 + P12 K ( I − P22 K ) −1 P21 ) w

F1 ( P, K ) = P11 + P12 K ( I − P22 K ) −1 P21 (4.6)

H∞ upravljanje uključuje minimizaciju H∞ norme od Fl (P, K).


Standardni H∞ optimalni kontrolni problem je naći sve stabilizirajuće kontrolere K koji
minimiziraju izraz:

88
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Fl ( P, K ) ∞
= max σ ( Fl ( P, K )( jω )) (4.7)
ω

Ako je z = Fl (P, K)w, onda je:

z (t ) 2
Fl ( P, K ) = max (4.8)
∞ w(t ) ≠ 0 w(t ) 2

∫∑
2
gdje je z (t ) 2
= i
z i (t ) dt druga norma vektorskog signala.
0

Neka je γmin najmanja vrijednost Fl ( P, K ) ∞


za sve stabilizirajuće kontrolere. Tada
je H∞ suboptimalni upravljački problem naći sve stabilizirajuće kontrolere K takve da je
Fl ( P, K ) ∞ < γ i γ > γmin. Stabilizirajući kontroler K(s) takav da je Fl ( P, K ) ∞ < γ
postoji ako i samo ako je:
a) X∞ rješenje algebarske Riccatijeve jednadžbe:

(
AT X ∞ + X ∞ A + C1T C1 + X ∞ γ −2 B1 B1T − B2 B2T X ∞ = 0 ) (4.9)

[
takvo da je: Re{λi A + (γ − 2 B1 B1T − B2 B2T )X ∞ } < 0 za svaki i. ]
b) Y∞ ≥ 0 rješenje algebarske Riccatijeve jednadžbe:

(
AY∞ + Y∞ AT + B1 B1T + Y∞ γ −2 C1T C1 − C2T C2 Y∞ = 0 ) (4.10)

[ ]
takvo da je Re {λi A + Y∞ (γ − 2 C1T C1 − C 2T C 2 ) } < 0 za svaki i.
c) ρ ( X ∞ , Y∞ ) < γ 2 .
Svaki takav kontroler je onda dat s K = Fl (KC, Q) gdje je:

 A∞ − Z ∞ L∞ Z ∞ B2 
K c ( s ) =  F∞ 0 I 
 
− C 2 I 0 
gdje su:
F∞ = −B2T X ∞ ,
L∞ = −Y∞ C2T ,
(
Z ∞ = I − γ −2Y∞ X ∞ )−1
,
−2 T
A∞ = A + γ B1 B X ∞ + B2 F∞ + Z ∞ L∞ C2
1

i Q(s) bilo koja stabilna pravilna prijenosna funkcija takva da je Q ∞


< γ . Za Q(s) = 0.
Slijedi:

−1
K ( s ) = K C11 ( s ) = − Z ∞ L∞ (sI − A∞ ) F∞ (4.11)

Gornji izraz se naziva centralnim kontrolerom i ima jednak broj stanja kao općeniti objekt P.

89
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Centralni kontroler može se razdvojiti u estimator stanja (eng. state estimator,


observer) i povratno stanje (eng. state feedback) kao:

xˆ& = Axˆ + B1 γ −2 B1T X ∞ xˆ + B2 u + Z ∞ L∞ (C 2 xˆ − y ) (4.12)


14243
wˆ worst

u = F∞ xˆ
(4.13)

Slika 4.18: H∞ robustna stabilizacija problema

Ako nastane neki poremećaj, za tako perturbiranu povratnu vezu sustava s gornje
slike, svojstvo stabilnosti je robustno ako i samo ako je nominalni sustav povratne veze
stabilan i:

K  1
γ =   (I − GK )−1 M −1 ≤ (4.14)
I  2
ε

u 
Primjećuje se da je γ H∞ norma od φ do   i (I-GK)-1 funkcija osjetljivosti za
 y
pozitivnu povratnu vezu. Najmanja moguća vrijednost γ koja se može postići i odgovarajuća
maksimalna granica stabilnosti (eng. stability margin) ε date su kao:

{
γ min = ε −1 = 1 − N M
2
H
}
−1 / 2 1/ 2
= (1 + ρ ( XZ ) ) (4.15)

gdje je ⋅ H označava Henkelovu normu, ρ spektralni radijus (tj. maksimalnu svojstvenu


vrijednost), a Z je pozitivno-definirano (eng. positive-definite) rješenje algebarske Riccatijeve
jednadžbe:

(A – BS-1DTC)Z + Z(A – BS-1DTC)T – ZCTR-1CZ + BS-1BT = 0 (4.16)

uz supstitucije R = I + DDT i S = I + DTD, a X je jedinstveno pozitivno-definirano rješenje


Riccatijeve algebarske jednadžbe:

90
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

(A – BS-1DTC)X + X(A – BS-1DTC) – XBS-1BTX + CTR-1C = 0 (4.17)

Za strogo pravilni objekt (D = 0) gornje jednadžbe se značajno pojednostavljuju.


Kontroler koji garantira:

K  −1
 I  (I − GK ) M
−1
≤γ (4.18)
  ∞

za specificirani γ > γmin, dat je s:

 A + BF + γ 2 ( LT ) −1 ZC T (C + DF ) γ 2 ( LT ) −1 ZC T 
K=  (4.19)
 BT X − DT 

( ) ( )
gdje je: F = − S −1 D T C + B T X i L = 1 − γ 2 I + XZ .

4.3.7. Projektiranje H∞ kontrolera

Uvođenjem težina riješen je problem otvorene petlje te je sada potrebno vratiti se na


početni model sa zatvorenom petljom i regulatorom. Pri tome se minimizira iznos (gain). Sada
će se izvesti zakon upravljanja za nominalni model tankova.

»nmeas = 4; % Broj mjerenja


»nctrls = 2; % Broj naredbi (kontriola)
» [k0,g0,gamma0] = hinfsyn(P.NominalValue,nmeas,nctrls);

Najmanje pojačanje koje se može postići je 0,9, što znači da se specifikacije u


frekvencijskom području mogu postići kontrolerom k0. Simulirajući ovaj pristup u
vremenskoj domeni provjerava se ispravnost odabranih težina.
Zatvorenu petlju kreirat će se mapiranjem ulaznog signala [t1ref; t2ref; t1noise;
t2noise] u izlazne signale [|h1|; t1; t2; fhc; fcc]:

»systemnames = 'spremnik1nom spremnik2nom hot_act cold_act t1F t2F';


»inputvar = '[t1ref; t2ref; t1noise; t2noise; fhc; fcc]';
»outputvar = '[ spremnik1nom; spremnik2nom; fhc; fcc; t1ref; t2ref; ';
»outputvar = [outputvar 't1F+t1noise; t2F+t2noise]'];
»input_to_spremnik1nom = '[hot_act(1); cold_act(1)]';
»input_to_spremnik2nom = '[spremnik1nom]';
»input_to_hot_act = '[fhc]'; input_to_cold_act = '[fcc]';
»input_to_t1F = '[spremnik1nom(2)]'; input_to_t2F = '[spremnik2nom]';
»sysoutname = 'simlft';
»cleanupsysic = 'yes';
»sysic;

% Petlja se zatvara s H-beskonačno kontrolerom |k0|


»sim_k0 = lft(simlft,k0);
»sim_k0.InputName = {'t1ref'; 't2ref'; 't1noise'; 't2noise'};

91
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

»sim_k0.OutputName = {'h1'; 't1'; 't2'; 'fhc'; 'fcc'};


Sada ćemo simulirati odziv sustava zatvorene petlje kada se pobuđuju točke t1 i t2
između 80-e i 100-te sekunde:

»time=0:800;
»t1ref = (time>=80 & time<100).*(time-80)*-0.18/20 + (time>=100)*-0.18;
»t2ref = (time>=80 & time<100).*(time-80)*-0.2/20 + (time>=100)*-0.2;
»t1noise = Wt1noise * randn(size(time));
»t2noise = Wt2noise * randn(size(time));
»y = lsim(sim_k0,[t1ref ; t2ref ; t1noise ; t2noise],time);
Sada će se simulirati izlazi i iscrtati odziv:

»h1 = h1ss+y(:,1);
»t1 = t1ss+y(:,2);
»t2 = t2ss+y(:,3);
»fhc = fhss/fs+y(:,4);
»fcc = fcss/fs+y(:,5); % (0<= fhc <= 1)

Sada će se iscrtati izlaze, t1 i t2, te visinu h1 za spremnik 1:

»plot(time,h1,'--',time,t1,'-',time,t2,'-.');
»xlabel('Vrijeme [s]');
»ylabel('Mjerenja')
»title('Odziv na step H-beskonačno kontrolera, k0')
»legend('h1','t1','t2');
»grid

Slika 4.19: Odziv projektiranog kontrolera na jediničnu koračajnu uzbudu

92
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Sljedećim naredbama iscrtat će se odzivi za tople i hladne aktuatore:

»plot(time,fhc,'-',time,fcc,'-.');
»xlabel('Time: seconds');
»ylabel('Actuators')
»title('Actuator Commands for H-infinity Controller k0')
»legend('fhc','fcc');
»grid

Slika 4.20: Signali fhc i fcc dobiveni H∞ kontrolerom

4.3.8. Robustnost H∞ kontrolera

Kod H∞ kontrolera k0 je oznaka za nominalni model spremnika. Sljedeća analiza će


pokazati koliko dobro ta vrijednost upada u pertubirani model unutar granica nesigurnosti.
Može se usporediti nominalni model zatvorene petlje gamma0 s najgorim mogućim
scenarijem unutar skupa modela nesigurnosti.

»frad = 2*pi*logspace(-5,1,30);
»clpk0 = lft(P,k0);
»clpk0_g = frd(clpk0,frad);

% Računanje najgoreg slučaja


»opt=wcgopt('FreqPtWise',1);
» [maxgain,wcu,info] = wcgain(clpk0_g,opt);

93
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

% Usporedba sa zatvorenom petljom


»clf;
»semilogx(fnorm(clpk0_g.NominalValue),'b-', maxgain.UpperBound,'r--')
»title('Analiza kvalitete kontrolera k0')
»xlabel('Frekvencija [rad/s]')
»legend('Nominalno','Najgori slučaj');
»axis([1e-4 100 0 2.5])

Slika 4.21: Frekvencijska karakteristika za nominalni i najgori mogući slučaj

Rad u najgorem slučaju sustava zatvorene petlje značajno je lošiji od nominale, što
govori da H∞ kontroler nije dovoljno robustan kod modeliranja greški.

Zadatak za vježbu: Ako posjedujete odgovarajuću licencu, proučite primjer


idnlgreydemo2.m. Radi se o modeliranju mex datoteka vremenski kontinuiranih SISO sustava.

4.4. Asinkroni vjetrogenerator u izoliranoj mreži

Za ovaj primjer je potrebno posjedovati SymPowerSistems te predložak


power_windgen.mdl (Wind-Turbine Asynchronous Generator in an Isolated Network).
Sustav koji se razmatra je samostojna (bez priključka na mrežu) kombinacija
vjetrogeneratora i dizel generatora bez pohrane energije (nema troška akumulatora). Pogodan
je za kuće na izoliranim mjestima, gdje je preskupo dovoditi električnu mrežu (planine, otoci,
i sl.).

94
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Optmalna penetracija vjetra (instalirani vjetrokapacitet/vršni električni zahtjevi) za


ovaj sustav ovise o zahtjevima položaja za dostavu goriva i o ruži vjetrova. Ovakvi primjeri
su već instalirani diljem svijeta. U ovom primjeru razmotreni je sustav 480 V, 300 kVA
sinkroni stroj, vjetroturbina s 480 V, 275 kVA s indukcijskim generatorom, 50 kW potrošačko
opterećenje i varijabilni ostali tereti (0 do 446,25 kW).
Pri niskim brzinama vjetra indukcijski generator i dizelski sinkroni generator trebaju
zajedno raditi. Kada snaga vjetra premašuje potrebe potrošnje moguće je isključiti dizel
generator.
Blok vjetroturbine koristi 2-D tablicu uvida (engl. lookup table) da bi izračunao snagu
okretaja (Tm) kao funkcija brzine vjetra (w_Wind) i brzine turbine (w_Turb). Ove
karakteristike - Pm (w_Wind, w_Turb) - se automatski učitavaju u radni prostor
(psbwindgen_char array). Da bi se prikazale karakteristike turbine, potrebno je dvaput kliknut
na blok ispod bloka vjetroturbine (engl. Wind Turbine Block).
Sekundarno opterećenje, koje treba upiti višak energije kada je vjetar jak, sastoji se od
3-faznih otpornika i tiristorskih prekidača (simulirani idealnim prekidačima). Frekvencija je
regulirana s blokom diskretnog regulatora frekvencije (engl. Discrete Frequency Regulator
Block). Fazna pogreška koristi se za PD kontroler sekundarnog opterećenja.

Slika 4.22: Model samostojećeg sustava vjetrogeneratora i dizel generatora u Simulinku

Kod ovog modela, brzina vjetra od 10 m/s je takva da daje dovoljno snage za
snadbdijevanje opterećenja. Dizelski generator se zaustavlja i sinhroni stroj radi kao asinkroni

95
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

kondenzer sa svojim mehaničkim ulazom (Pm) podešenim na 0. U primjeru se na sustav


uključuje trošilo snage 25 kW.

Slika 4.23: Odnos snage i brzine vjetroturbine

96
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.24: Rezultat simulacije

4.5. Industrijski robot s 3 stupnja slobode

Ovaj primjer se može izvesti u Matlabu s licencom za alatku za identifikaciju sustava


u kojoj je sadržan predložak idnlgreydemo8.m.

Slika 4.25: Industrijski robotski manipulator

Dinamika ovog robota dana je s:

d2  dq(t ) 
M (q (t )) 2
q(t ) = F (u (t )) + G (q(t )) + H  , q(t )  (4.20)
dt  dt 

gdje je q(t) stupčasti vektor relativnih kuteva 1, 2 i 3, koji opisuju relativni kut između
dijelova (vidi sliku 4.25). Momenti upravljanja su označeni s u (t) = [u1(t) u2(t) u3(t)] T, a
koeficijenti sile su označeni s F(u(t)) = [Fc(1)*u1(t) Fc(2)*u2(t) Fc(3)*u3(t)]'. Matrica masa
je veličine 3x3. Ostale sile koje utječu na robota su gravitacija, G, te coriolisova i
centrifugalna sila.
Uvođenjem stanja:

x_1(t) = q_1(t) relativni kut između podloge i zgloba 1


x_2(t) = q_2(t) relativni kut između zglobova 1 i 2
x_3(t) = q_3(t) relativni kut između zglobova 2 i 3
x_4(t) = d/dt q_1(t) relativna brzina između podloge i zgloba 1
x_5(t) = d/dt q_2(t) relativna brzina između zglobova 1 i 2
x_6(t) = d/dt q_3(t) relativna brzina između zglobova 2 i 3

dobiva se model prostora stanja pogodan za modeliranje i simuliranje. Ovaj model ima 3
ulaza, 6 stanja, 3 izlaza i 28 različitih parametara ili konstanti.

97
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Značajan dio modela je osvježavanje (update) stanja, koje se izvršava funkcijom,


compute_dx, koja ima listu argumenata:

void compute_dx(double *dx, double *x, double *u, double **p)

gdje je p sadrži 10 parametara objekta:

A. g = p[0], pl = p[5] i Ia1 = p[8] su skalari.


B. Fc = p[1], r = p[2], Im = p[3], m = p[4] i L = p[6] su stupčasti vektori s 2 ili 3 ulaza.
C. com = p[7] je 2x2 matrica te Ia = p[9] je 4x2 matrica.

Skalari su obično označeni s p[0] (p(1) u Matlabovoj datoteci). Matrice prosljeđene u


C-MEX model su različite u smislu da su stupci drukčije poredani. Stoga je com(1, 1) u biti
com[0], com(2, 1) je com[1], com(1, 2) com[2], com(2, 2) com[3].
Svrha ovih koraka je restrukturiranje jednadžbi tako da se stanja mogu lako izračunati.

void compute_dx(double *dx, double *x, double *u, double **p)


{
double *g, *Fc, *r, *Im, *m, *pl, *L, *com, *Ia1, *Ia;
double M[3][3];
M[0][0] = Ia1[0] + r[0]*r[0]*Im[0] + com[2]*com[2]*m[1] ...
...
M[2][2] = Ia[4] + r[2]*r[2]*Im[2] + com[3]*com[3]*m[1] + L[1]*L[1]*pl[0];
F[0] = Fc[0]*u[0]; ...
G[0] = 0; ...
Gamma[1] = (Ia[6] - Ia[5] - com[3]*com[3]*m[1] ...
Det = M[0][0]*M[1][1]*M[2][2] + 2*M[0][1]*M[1][2]*M[0][2] ...

/* Jednadžbe stanja. */
/* x[0]: Relativni kut između zgloba 1 i podloge. */
/* x[1]: Relativni kut između zgloba 1 i 2. */
/* x[2]: Relativni kut između zgloba 2 i 3. */
/* x[3]: Relativna brzina između podloge i zgloba 1.*/
/* x[4]: Relativna brzina između zglobova 1 i 2. */
/* x[5]: Relativna brzina između zglobova 2 i 3. */
dx[0] = x[3]; dx[1] = x[4]; dx[2] = x[5];
dx[3] = Minv[0][0]*(F[0]+G[0]+H[0]) + Minv[0][1]*(F[1]+G[1]+H[1]) +
inv[0][2]*(F[2]+G[2]+H[2]);
dx[4] = Minv[0][1]*(F[0]+G[0]+H[0]) + Minv[1][1]*(F[1]+G[1]+H[1]) +
inv[1][2]*(F[2]+G[2]+H[2]);
dx[5] = Minv[0][2]*(F[0]+G[0]+H[0]) + Minv[1][2]*(F[1]+G[1]+H[1]) +
inv[2][2]*(F[2]+G[2]+H[2]);
}

U predlošku se uspređuju mjerenja iz rada robota Manutec r3 i simulacije, što


prikazuje slika 4.26.

98
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Θ1. (sim)
0

Θ 1 (ra d )
z; measured
-1
nlgr; fit: 98.99%
-2
0 0.5 1 1.5 2

Θ2. (sim)
0.5
Θ 2 (ra d )

0.4 z; measured
0.3
0.2 nlgr; fit: 98.1%
0.1
0 0.5 1 1.5 2

Θ3. (sim)
Θ 3 (ra d )

1 z; measured
0.5 nlgr; fit: 91.04%
0
0 0.5 1 1.5 2
Time (s)

Θ1. (sim)

2
Θ1 (rad)

z; measured
1 nlgr; fit: 98.96%
0
0 0.5 1 1.5 2

Θ2. (sim)
0
Θ2 (rad)

z; measured
-0.2
nlgr; fit: 98.52%
-0.4
0 0.5 1 1.5 2

Θ3. (sim)
0
Θ3 (rad)

-0.5 z; measured
-1 nlgr; fit: 91.26%
-1.5
0 0.5 1 1.5 2
Time (s)

Slika 4.26: Rezultat izvođenja predloška

Zadatak za vježbu:

Proučite rad industrijske ruke in predloška idnlgreydemo13.m. Shematski prikaz mehaničkog


sustava robotske ruke dan je na slici 4.27.

99
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.27: Mehanički sustav robotske ruke

4.6. Primjer vojnih komunikacija „s kraja na kraj“

Za ovaj primjer potrebno je imati komunikacijsku alatku (engl. Communications


System Toolbox) u kojoj se poziva na vojni standard US MIL-STD-188-110B te se može
koristiti predložak commmilstd188110b.mdl.
Implementirat će se fazni prijenos podataka upotrebom valnog oblika (engl. single-
tone) fiksne frekvencije.
Model podržava: 150 bps, 300 bps, 600 bps i 1200 bps. Implementirane su umetnute
duljine od 0,6 s i 4,8 [s]. Ovaj sustav je standard za taktičke komunikacije na VF kanalima.
Kompatibilan je s NATO standardom STANAG 4539.
Razmatrat će se komunikacijski sustav koji izvodi sljedeće zadatke:
• generiranje slučajnih binarnih podataka,
• kodiranje koje ovisi o brzini podataka odabranih u dijalogu modelskih parametara.
“Encoder block” na vrhu blok dijagrama je konfigurabilan podsustav čiji sadržaj ovisi
o odabranoj brzini podataka. Sastoji se od konvolucijskog enkodera,
• umetanje upotrebom matrice određene standardom,
• mapiranje binarno-sivo,
• dodavanje sekvence za treniranje,
• skrembliranje podataka dodavanjem podataka modulu slučajnog niza (8,8-PSK
modulacija),
• Wattersonov model kanala (Multipath Rayleigh Fading Channel blok),
• ekvilizaciju prijemnika (RLS equalizer),
• demapiranje simbola iz kanala,
• izvlačenje (engl. deinterleaving) i
• Viterbi dekodiranje.

Slika 4.29.a prikazuje impulsni odziv komunikacijskog kanala. Slika 4.29.b prikazuje
koncentracija znakova signala prije uravnoteženja. Slika 4.29.c prikazuje fazni zakret signala
zbog puta kroz kanal. Slika 4.29.d prikazuje koncentracija znakova signala poslije
uravnoteženja.

100
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.28: Model komunikacijskog sustava

Zadaci za vježbu:

1. Proučite predložak RF Satellite Link iz iste alatke.


2. Proučite predložak commrfsatlink.mdl iz iste alatke.

a) b)

101
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

c) d)

Slika 4.29: a) Impulsni odziv komunikacijskog kanala, b) koncentracija znakova signala prije
uravnoteženja, c) fazni zakret signala zbog puta kroz kanal, d) koncentracija znakova signala
poslije uravnoteženja

4.7. Modeliranje prometa klasterizacijom

Studenti koji žele vidjeti na djelu simulaciju klasterizacije prometa moraju imati alatku
neizrazite logike (Fuzzy Logic Toolbox) te predložak trips.m iz „Modeling Traffic Patterns
using Subtractive Clustering”.
Klasterizacija je tehnika kojom se učinkovito prepoznaje prirodno grupiranje u velikim
skupovima podataka. Tako se omogućuje koncizno predstavljanje odnosa u danim podacima.
U ovom primjeru se grupiraju prometni podaci u široke kategorije kako bi ih se lakše
razumjelo. Da bi se stalo na kraj nepreciznostima, idealno je korištenje neizrazite logike u
ovom slučaju. Može se korisiti da se uzme nejasne ili neprecizne podatke ulaza i postigne
preciznu izlaznu vrijednost. U Matlab/Simulink programskom paketu postoji neizraziti sustav
zaključivanja (engl. Fuzza Inference System, FIS) s pomoću kojeg se lako mogu koristiti
složene analizičke jednadžbe. U ovom primjeru, neizrazita logika će se koristiti za grupiranje
podataka u široke kategorije. FIS model će odražavati odnos između demografije i vožnji
automobilom.
Cilj primjera je razumijeti vezu između broja automobilskih vožnji iz jednog područja
i demografije područja. Podaci su uzeti za područje New Castle County, Delaware.
Razmatrano je 5 demografskih parametara: populacija, broj stambenih jedinica, vlasništvo
vozila, prihod prosječnog domaćinstva i ukupna zaposlenost.
Demografski faktori bit će adresirani kao ulazi, a ostvarene vožnje kao izlaz. Problem
ima 5 ulaznih varijabli i jednu izlaznu.

»tripdata % učitava podatke


»subplot(2,1,1); plot(datin);
»legend('populacija', broj stambenih jedinica', 'vlasništvo vozila',...
'srednji prihod kućanstva', 'ukupna zaposlenost');
»title('Ulazne varijable'); subplot(2,1,2); plot(datout)
»legend('broj vožnji'); title('Izlazna varijabla')

102
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.30: Prometni podaci

Sljedeći korak u ovom primjeru je primjena tehnike klasterizacije zvane grupiranje


oduzimanjem. Za to se u Matlabu koristi funkcija subclust. Ona izvršava brz algoritam bez
iteracija za estimaciju broja klastera i centara klastera u skupu podataka.

» [C,S] = subclust([datin datout],0.5);

Prvi argument subclust funkcije je podatak koji se treba klasterizirati. Drugi argument
je funkcija koja označava klastere s utjecajem na prostor ulaznih podataka. Varijabla C sadrži
sve centre klastera koji su identificirani funkcijom subclust. Svaki red u C sadrži položaj
klastera.
U ovom slučaju, C ima 3 reda koji predstavljaju 3 klastera sa 6 stupaca koji
predstavljaju položaje klastera u svakoj dimenziji.
Sljedeći crtež prikazuje kako se klasteri identificiraju u 'ukupna zaposelnost' i 'vožnje'
dimenzije ulaznog prostora.

»clf;
»plot(datin(:,5), datout(:,1), '.', C(:,5),C(:,6),'r*')
»legend(‘Točke podataka', ‘Centri klastera', 'Lokacija', ‘Jugoistok');
» xlabel('ukupna zaposlenost')
»ylabel(‘broj vožnji');
» title(‘Podaci i klasteri u odabranim dimenzijama ulaznog prostora')

Slika 4.31 prikazuje rezultat izvršavanja gornjih naredbi.

103
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.31: Podaci i klasteri u odabranim dimenzijama ulaznog prostora

Generiranje FIS-a vrši se funkcijom genfis2 koja koristi spomenuti način


klasterizacije.

»myfis=genfis2(datin,datout,0.5);

Prvi argument je ulazna varijabla datin, a drugi izlazna varijabla datout, a treći
argument je parametar klasterizacije.

% Davanje imena ulazima i izlazima


myfis = setfis(myfis, 'input',1,'name','population');
myfis = setfis(myfis, 'input',2,'name','dwelling units');
myfis = setfis(myfis, 'input',3,'name','num vehicles');
myfis = setfis(myfis, 'input',4,'name','income');
myfis = setfis(myfis, 'input',5,'name','employment');
myfis = setfis(myfis, 'output',1,'name','num of trips');

FIS se sastoji od ulaza, izlaza i pravila. Svaki ulaz i izlaz može imati bilo koji broj
članskih funkcija (membership functions). Pravila diktiraju ponašanje neizrazitog sustava
temeljem ulaza, izlaza i funcije članstva. Naredba genfis2 daje FIS pri pokušaju dohvata
položaja i utjecaja svakog klastera u ulaznom prostoru. Naredba myfis je FIS koji je genfis2
generirao. Kako skup podataka ima 5 ulaznih varijabli i 1 izlaznu varijablu, genfis2 konstruira
FIS s 5 ulaza i 1 izlaz. Svaki ulaz i izlaz imaju više članskih funkcija kao posljedicu broja
klastera koje je identificirala subclust.

104
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Za trenutni skup podataka subclust je identificirala 3 klastera. Stoga se svaki ulaz i


izlaz karakteriziraju s 3 funkcije članstva (pripadnosti, membership). Broj pravila jednak je
broju klastera i stoga su krirana 3 pravila.
Sada možemo isprobati FIS da bi razumijeli kako se klasteri pretvaraju u funkcije
članstva i pravila.

»fuzzy(myfis)

Slika 4.32: Grafičko sučelje za uređivanje FIS-a

Neizrazita je funkcija koja starta grafički editor za izradu fuzzy sustava. fuzzy(myfis)
otvara prozor koji je podešen za uređivanje myfis, tj. FIS-a koji smo tek generirali.

»mfedit(myfis)

Naredbom mfedit(myfis) pokreće se grafički editor funkcije članstva. Može se dobiti i klikom
na ulaz ili izlaz u FIS editoru.
Prva članska funkcija, in1cluster1, odabire se u editoru. Tip funkcije pripadanja je
"gaussmf”, a parametri te funkcije su [1.162 1.877], gdje 1,162 predstavlja koeficijent širenja
gaussove krivulje, a 1,877 center gaussove krivulje. S in1cluster1 dohvaća se položaj i utjecaj
prvog klastera za ulaznu varijablu populacije (C(1,1)=1.877, S(1)=1.1621 ).

105
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.33: Uređivanje članskih funkcija

Slično tome, položaj i utjecaj druga dva klastera za ulaznu varijablu populacije
dobivaju se iz dvije druge funkcije članstva in1cluster2 i in1cluster3. Ostala 4 ulaza slijede
točnu shemu oponašajući položaj i utjecaj 3 klastera preko odgovarajućih dimenzija i skupa
podataka.
Naredbom ruleedit prikazuju se grafički neizrazita pravila:

»ruleedit(myfis)

Sve 3 funkcije pripadanja u ovom slučaju će biti oblika:

a*population + b*dwelling units + c*num vehicles + d*income + e*employment + f,

gdje su a, b, c, d, e i f koeficijenti linearne funkcije pripadanja.


Funkcija surfview prikazuje površinu koja pomaže vidjeti ulazno-izlazne neizrazite
veze. Tu se simulira odziv neizrazitog sustava za cijeli opseg ulaza za koje je sustav
konfiguriran. Izlaz ili odziv FIS-a na ulaz se iscrtava na vizuelno učinkovit način kako bi
moglo razumijevanju ponašanja sustava kroz cijeli opseg vrijednosti.

»surfview(myfis)

106
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Ono što je očito je da se broj vožnji povećava s porastom populacije i stambenih


jedinica.

»ruleview(myfis)

Funkcijom ruleview pojavljuje se grafički simulator koji daje odziv s obzirom na


promjenu ulazne varijable.

4.8. Test DC asinkronog motora

Za ovaj primjer potrebno je posjedovati skup blokova za energetske sustave (Power


Systems Blockset) u Simulinku. Također prilikom sastavljanja modela treba paziti da se ne
odabiru slični blokovi iz drugih alatki, jer oni nisu kompatibilni sa ovom alatkom.
Radne karakteristike u stacionarnom stanju trofaznog indukcijskog motora se često
proučavaju upotrebom jednofaznim ekvivalentnim krugom kako je prikazano na slici 4.34.a.
R1 i jX1 predstavljaju otpor i reaktanciju statorskog kruga, dok R2 i jX2 otpor i reaktanciju
rotorskog kruga. RC su gubici u jezgri stroja, a jXM reaktancija magnetiziranja.
Ekvivalentni krug se koristi da bi se proračunalo različite radne veličine, kao struja
statora, ulazna snaga, pobudni moment ili učinkovitost. Kada je potrebno naglasiti energgijske
aspekte rada, otpor shunta se obično zanemaruje. Gubici jezgre se uključuju u proračun
učinkovitosti kroz trenje ili sl. pojave. Parametri ekvivalentnog kruga mogu se dobiti iz testa s
istosmjernim radom neopterećenog struja kojemu je blokiran rotor. Rezultirajuća struja kroz
statorske zavojnice je istosmjerna te se ne iducira na rotoru struja. Stoga je reaktancija motora
jednaka nuli. Statorski otpor je jednini ograničavajući čimbenik za električnu struju.

a)

b)

Slika 4.34: a) Nadomjesna shema asinkronog stroja, b) test motora u neopterećenom stanju

107
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

U simulinku će se simulirati sljedeći eksperiment: na zavoje statora se narine


istosmjerni napon iznosa 120 V (tj. na faze A i B motora koji je spojen u zvijezdu), i zbog
toga proteče struja IDC koju ograničava otpor (series resistance na slici 4.35). Faza C je
uzemljena preko grane (RLC branch na slici 4.35). Nema induciranja napona na rotoru, jer
kroz statorski krug teče istosmjerna struja. Opterećenje je nula. Terminator sprječava
upozorenja o nespojenim priključcima na izlazu. Powergui je namješten u kontinuiranom
načinu rada.

Slika 4.35: DC test asinkronog motora u programu Simulink

Iz slike 4.36 vidljiva je struja IDC, tj. eksponencijalni porast do vrijednosti 113,5 A,
kada je postignuto ustaljeno stanje.
Napon pri pokretanju lagano pada do vrijednosti 6,532 V, što se vidi na slici 4.37.
Povećanjem ulaznog otpora (u ovom slučaju 10 puta), prijelazna pojava traje duže
(zbog radne komponente) napon i struja su manjeg iznosa.
Slika 4.38 prikazuje struju IDC pri povećanju otpora. Slika 4.39 prikazuje kako se u
tom slučaju mijenja napon UDC.
Računanje statorskog otpora na ovaj način daje procjenu vrijednosti, jer testiranjem na
izmjenični napon uzeo bi se u obzir utjecaj temperature. Formula po kojoj se računa otpor je:

ܷ஽஼
ܴଵ = 0,5
‫ܫ‬஽஼

108
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.36: Prikaz struje IDC

Slika 4.37: Prikaz napona UDC

109
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.38: IDC pri promjeni otpora

Slika 4.39: UDC pri promjeni otpora

4.9. Simulink 3D Animation

Programski paket Matlab/Simulink omogućuje stvaranje virtuelnih svjetova kao


primitivnog oblika virtuelne stvarnosti. Virtuelni svijet omogućuje lakše projektiranje i
vizuelizaciju različith problema. U ovom potpoglavlju će se baviti s dva primjera:
pristajanjem broda u luku i kretanjem automobila u virtuelnom svijetu.

110
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

4.9.1. Pristajanje broda u luku

Pošto se koriste dva broda, jedan Tanker, drugi Remorker, potrebno ih je napraviti
pomoću 3D softwera, kao npr. V- REALM BUILDER-a. Taj program sadrži biblioteku razno
raznih objekata, te će se iz već postojeće biblioteke izvući potrebne modele. Slika 4.40
prikazuje izgleda radne površine softwarske podrške. Naravno, za izvođenje ovog primjera
potrebno je pribaviti legalnu licencu tog programa.
Sljedeće se mora napraviti nova radna površina odnosno novi radni list na kojem će se
stavljati i namještati modeli (Slika 4.41).
Klikom na odabir biblioteke, otvori se prozor u kojem su prikazani svi modeli što ih
softverveć sam sadrži. Pronađe se Tanker i Remorker, te se ubace u radnu površinu kako je
prikazano na slici 4.42.
Sada treba napraviti pristanište, odnosno softver daje mogućnost ubacivanje osnovnih
modela (kugla, kocka, valjak, stožac i sl.). Odabere se kocku, namjeste joj se dimenzije i
postavimo je se na radnu površinu (slika 4.43).
Sljedeće treba postaviti sve modele na virtualni svijet. S ljeve strane radne površine
svakome se modelu može namjestit položaj u 3D koordinatama odnosno svijetu. Na slici 4.44
je prikazano namještanje koordinata za postavljanje pristaništa.
Kada se napravi i postavili modele potrebno ih je spremiti pod željenim nazivom s
odgovarajućom .wrl ekstenzijom (Virtual Reality).
Kada se napravi modele i snimili kao .wrl podatak, potrebno je isprogramirati svaku
putanju odnosno kako bi se Tanker trebao vezati za dok uz pomoć Remorkera. Otvori se
Matlab i otvorimo novu skriptu kako.

Slika 4.40: Radna površina V-REALM BUILDER

111
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.41: Stvaranje nove radne površine

Slika 4.42: Postavljanje Tankera i Remorkera

Sada treba napisati par osnovnih kodova koji su potrebni da bi se naš svijet očitao, te
da bi mogli upravljati sa modelima.

»world=vrworld('vezivanje_broda.wrl','new');

112
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

»open(world);
»fig=vrfigure(world);
»kretnja1=vrnode(world,'Tanker_z');
»kretnja2=vrnode(world,'Remorker');

Slika 4.43: Postavljanje doka

Prva linija koda stvara novi svijet koji se zove WORLD i taj će svijet će imati sva
svojstva svijeta koji je modeliran. Druga linija koda otvara svijet odnosno daje mogućnost
upravljanja svijetom. Treća linija koda postavlja svijet u prozor koji će biti prikazan na
ekranu. Sljedeće dvije linije koda su varijable kretnja1 i kretnja2 koje će biti jednake bilo
kojem svojstvu objekta Tanker_z i Remorker. To znači da će se moći upravljat s bilom kojom
vrijednosti tog objekta.

»for i=11000:-50:-5000
pause(0.01)
kretnja1.translation=[11000 0 i];
vrdrawnow;
»end
»for p=0.5:0.01:2;
pause(0.01)
kretnja1.rotation=[0 1 0 p];
vrdrawnow;
»end

113
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Slika 4.44: Postavljanje koordinata doka

»j=-5000;
»for k=11000:-50:1000;
j=j+25;
pause(0.01)
kretnja1.translation=[k 0 j];
vrdrawnow;
»end

» o=1000;
»for l=-5000:+20:-900
pause(0.01)
kretnja2.translation=[l 0 0-o];
vrdrawnow;
»end

»for h=2:-0.01:0.8
pause(0.01)
kretnja2.rotation=[0 1 0 h];
vrdrawnow;
»end
»f=-900;
»for g=-900:+10:-450
f=f+10;
pause(0.01)
kretnja2.translation=[f 0 g];
vrdrawnow;

114
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

»end
»d=-500;
»for p=2:0.001:2.2;
d=d+1;
pause(0.01)
kretnja2.translation=[d 0 d];
kretnja1.rotation=[0 1 0 p];
vrdrawnow;
»end

»for s=0:-0.001:-0.28;
pause(0.01)
kretnja3.rotation=[0 1 0 s];
vrdrawnow;
»end

»a=-300;
»for q=-300:-10:-900
a=a-10;
pause(0.01)
kretnja2.translation=[a 0 q];
vrdrawnow;
»end

Slika 4.45: Prikaz vezivanja broda

115
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Ovaj kod predstavlja svaku pojedinu kretnju Tankera i Remorkera. Kada se ovaj kod
unese i pokrene, na zaslonu se prikaže željena animacija koristeći 3D alat pomoću MATLAB-
a (slika 4.45).

4.9.2. Vožnja automobilom u virtuelnom svijetu

Ako studenti žele vidjeti na svom računalu ovaj primjer moraju imati Simulink 3D
Animation te predložak Car in Mountains. Predložak stvara sučelje za upravljanje vozilom u
virtuelnom svijetu.
Da bi se automobilom moglo voziti, potrebno je naći neki virtuelni svijet ili ga kreirati.
U ovom primjeru se učitava već postojeći Matlabov svijet. Sljedećim naredbama se može
otvoriti i vidjeti taj svijet:

»world=vrworld('vrmount.wrl');
»open(world);
»fig = view(world, '-internal');
» vrdrawnow;

Slika 4.46: Izgled predloška virtuelnog svijeta s interaktivnim upravljačem

Svojstva i značajke svijeta mogu se očitati naredbom:

116
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

»get(world)

Sva ponašanja unutar virtuelnog svijeta upravljana su promjenama u VRML


čvorovima, koji određuju sve elemente.

»nodes(world)

Jednom čvoru će se pridružiti automobil:

»car = vrnode(world, 'Automobile')


»fields(car)

Pomicanje čvora automobile vrši se promjenom koordinata čvora:

»z1 = 0:12;
»x1 = 3 + zeros(size(z1));
»y1 = 0.25 + zeros(size(z1));
»z2 = 12:26;
»x2 = 3:1.4285:23;
»y2 = 0.25 + zeros(size(z2));
»x3 = 23:43;
»z3 = 26 + zeros(size(x3));
»y3 = 0.25 + zeros(size(z3));

Putanja automobile može se odrediti npr. sljedećim kodom:

»for i=1:length(x1)
car.translation = [x1(i) y1(i) z1(i)];
vrdrawnow;
pause(0.1);
»end

Automobil se rotira s:

»car.rotation = [0, 1, 0, -0.7];


»vrdrawnow;

Postupak se može ponavljati za druge dionice ceste:

»for i=1:length(x2)
car.translation = [x2(i) y2(i) z2(i)];
vrdrawnow;
pause(0.1);
»end
»car.rotation = [0, 1, 0, 0];
»vrdrawnow;
»for i=1:length(x3)
car.translation = [x3(i) y3(i) z3(i)];
vrdrawnow;
pause(0.1);

117
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

»end

4.10. Stvaranje grafičkog sučelja (GUI)

Matlabova lepeza funkcija omogućuje i stvaranje grafičkog sučelja. To se postiže s


nekoliko naredbi, kao što su uicontrol ili movegui. GUI se može isprogramirati u tekstualnom
ili Matlabovom editoru, a može se koristiti alat za kreiranje GUI, koji se naziva GUIDE, koji
svakome omogućuje stvaranje svog grafičkog sučelja. Prozor za izradu GUI podijeljen je u
kvadrate u kojima se postavljaju određeni elementi. Elementi se biraju s trake lijevo. Klikom
na zelenu strelicu može se isprobati kako funkcionira GUI.

Slika 4.47: Izgled alata GUIDE za kreiranje GUI

Izlist funkcije jednog jednostavnog sučelja dat je ispod. Može se unjeti u tekstualni
editor i spremiti s .m ekstenzijom te pokrenuti kao i svaki drugi program.

118
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Primjer jednostavnog grafičkog sučelja:

function simple_gui2
f = figure('Visible','off','Position',[360,500,450,285]);
hsurf = uicontrol('Style','pushbutton','String','Surf',...
'Position',[315,220,70,25],...
'Callback',{@surfbutton_Callback});
hmesh = uicontrol('Style','pushbutton','String','Mesh',...
'Position',[315,180,70,25],...
'Callback',{@meshbutton_Callback});
hcontour = uicontrol('Style','pushbutton',...
'String','Countour',...
'Position',[315,135,70,25],...
'Callback',{@contourbutton_Callback});
htext = uicontrol('Style','text','String','Select Data',...
'Position',[325,90,60,15]);
hpopup = uicontrol('Style','popupmenu',...
'String',{'Peaks','Membrane','Sinc'},...
'Position',[300,50,100,25],...
'Callback',{@popup_menu_Callback});
ha = axes('Units','Pixels','Position',[50,60,200,185]);
align([hsurf,hmesh,hcontour,htext,hpopup],'Center','None');
peaks_data = peaks(35); membrane_data = membrane;
[x,y] = meshgrid(-8:.5:8); r = sqrt(x.^2+y.^2) + eps; sinc_data = sin(r)./r;
set([f,ha,hsurf,hmesh,hcontour,htext,hpopup],'Units','normalized');
current_data = peaks_data; surf(current_data);
set(f,'Name','Simple GUI'); % Zadavanje imena GUI-u
movegui(f,'center') ; % Pomicanje GUI u centar ekrana.
set(f,'Visible','on'); % čini GUI vidljivim
% Callbacks for simple_gui.
function popup_menu_Callback(source,eventdata)
% Određivanje skupa podataka koji su odabrani
str = get(source, 'String');
val = get(source,'Value');
switch str{val};
case 'Peaks' % User selects Peaks.
current_data = peaks_data;
case 'Membrane' % User selects Membrane.
current_data = membrane_data;
case 'Sinc' % User selects Sinc.
current_data = sinc_data;
end
end
function surfbutton_Callback(source,eventdata)
% Display surf plot of the currently selected data.
surf(current_data);
end
function meshbutton_Callback(source,eventdata)
% Display mesh plot of the currently selected data.
mesh(current_data);

119
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

end
function contourbutton_Callback(source,eventdata)
% Display contour plot of the currently selected data.
contour(current_data);
end
end

Slika 4.48: Izgled jednostavnog grafičkog sučelja iz gornjeg primjera

Zadaci za vježbu:

1. Promijenite funkciju koja se iscrtava u grafičkom sučelju i stavite neku po vašem izboru.
2. Promijenite funkcije iscrtavanja koje se pozivaju klikom miša s desne strane.
3. Promijenite neke ispise u sučelju.

4.11. Modeliranje automatskog uzbudnog regulatora sinkronog generatora broda s


električnom propulzijom

U ovom potpoglavlju, modelirat će se dio sustava dizel motora i električnog


generatora na brodu s električnom propulzijom [6].
Sinkroni generator je jezgra brodskog energetskog sustava. Stabilnost brodskog
energetskog sustava ovisi o sposobnosti paralelno spojenih sinkronih generatora da održavaju

120
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

rad sinkronizirano. Slika 4.49 prikazuje mjesto sinkronog generatora u sustavu električne
propulzije.

Slika 4.49: Blok shema strukture brodske dizel-generator propulzije

Slika 4.50 prikazuje sustav upravljanja uzbudom generatora s povratnom vezom.

Slika 4.50: Sustav upravljanja uzbudom generatora s povratnom vezom

Fazni uzbudni sustav se sastoji od uzbudne jedinice, izmjeničnog pobudnika i


automatskog naponskog regulatora (engl. automatic voltage regulator, AVR). Model fazno-
kompaundne uzbude izražen je s d i q komponentama:

Ur = (U d − KI q x ) + (U q + KI d x )
2 2
(4.21)

gdje je Ur izlazni napon i fazno-kompaundne uzbudne jedinice, Ud armaturni napon na d-osi


generatora, Uq armaturni napon generatora na q-osi, K konstanta iznosa K = 9 2 / π te x
reaktancija.
Model razlike napona opisan je jednadžbama:

121
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Uf0
∆U = U ref + − U tf + U stab − U ff (4.22)
Ka
i
1
U tf = U d2 + U q2 ⋅ (4.23)
1 + sTr

gdje je: Uref referentni napon AVR-a, Ustab napon zemlja-nula, Uf0 početna vrijednost
uzbudnog napona, Ka efektivno pojačanje pobudnika, Tr vremenska konstanta NP filtra, Uff
izlazni napon petlje s povratnom vezom i ∆U naponska razlika.
Model kompenzatora je:

1 + sTc
U c = ∆U (4.24)
1 + sTb

gdje je Uc izlazni napon kompenzatora, Tc i Tb vremenske konstanta kompenzatora.


Model pojačala opisuje se u literaturi izrazom:

Ka
Ua = Uc (4.25)
1 + sTa

gdje je Ua izlazni napon pojačala, Ka njegovo pojačanje, a Ta vremenska konstanta.


Model saturacijske petlje dan je jednadžbom:

Efd = Ua + Ur
(4.26)

0 ≤ Ef ≤ Efmax, Ef = Efd, uz:

 konst., K p = 0
E f max = 
 K pU tf , K p ≥ 0

gdje je Efd izlazni napon naponskog regulatora, tj. kombinirana funkcija naponske razlike i
fazno-komoundnog regulatora pobude, Ef izlazni napon razmjeran saturacijskoj petlji, Efmax
maksimalni izlazni napon razmjerne saturacijske petlje.
Matematički model izmjenične pobude dan je s:

1
Uf = E fd (4.27)
Te + K e

gdje je Ke vremenska konstanta izmjenične pobude.


Stabilizacijska povratna veza dana je s:

sK f
U ff = U f (4.28)
1 + sT ff

gdje je Kf pojačanje povratne grane, a Tff vremenska konstanta povratne veze. Slika 4.51

122
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

prikazuje simulacijski model izveden iz gornjeg matematičkog modela za AVR pobudnika


(izmejnične uzbude).

Slika 4.51: Simulacijski model automatskog naponskog regulatora (AVR) pobudnika

Klasični pristup upravljanju pobudom s pomoću PID regulatora se široko koristi, ali
on ne može riješiti problem niskofrekvencijskih oscilacija u energetskom sustavu. Stoga će se
ovdje primijeniti AVR u kombinaciji sa stabilizatorom pobude energetskog sustava (engl.
power system stabilizer, PSS). AVR jedinica kombinirane AVR+PSS pobude naziva se PID
regulacijski mod. PSS se uglavnom koristi za rješavanje problema oscilacija frekvencije.
Pobudni sustav ima fazni pomak, koji se može izraziti s:

ω
2ξ x ×
ωx
φ = −tg −1 2
(4.29)
ω 
1 −  
 ωx 

K 6 KA T A + K 3T ' d 0
gdje je ω niskofrekvencijska oscilacija. ω x = i ξx = , gdje je KA
T ' d 0 TA 2 K 3 T 'd 0 TA K 6 K A
konstanta pojačanja i TA inercijska vremenska konstanta pobudnog sustava opisanog

123
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

prijenosnom funkcijom:

KA
Ge ( s ) = (4.30)
1 + TA s

X 'd + X e Xe
gdje su K 3 = i K6 = , a Xe reaktancija prijenosne linije.
Xd + Xe X 'd + X e
PSS mora imati naprednu vezu, obično iz dva dijela, a prijenosna funkcija može se
izraziti s:

1 + T1 s 1 + T3 s
G( s) = ×
1 + T2 s 1 + T4 s

s tim što je često u praksi T1= T3 te T2 = T4. Model PSS-a prikazan je na gornjem dijelu slike
4.52 u crvenom ovalu. Slika 4.52 prikazuje ukupni AVR+PSS sustav uzbude.

Slika 4.52: Sustav AVR+PSS

124
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

Zadatak za vježbu:

Realizirajte model sa slike 4.52. Simulirajte rad gornjeg modela. Tipične vrijednosti potrebne
za slimulaciju su:
- izlazna snaga sinkronih generatora 3 [MW],
- napon 450 [V],
- frekvencija 50 [Hz],
- otpor generatora Rs = 0,0028 [Ω],
- pobudni referentni napon 1 pu,
- Xd = 1,305 [Ω],
- X'd = 0,296 [Ω],
- X''d = 0,252 [Ω],
- Xq = 0,474 [Ω],
- X'q = 0 [Ω],
- X''q = 0, 243 [Ω],
- T'd =1,01 [s],
T''d = 0,053 [s],
T''q = 0,13 [s] i
p = 4.

125
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

LITERATURA
[1] Roland Priemer, Matlab for Electrical and Computer Engineering Students and
Professionals with Simulink, Scitech Publishing, Edison, NJ, 2013.
[2] Karel Perutka (ur.), MATLAB for Engineers - Applications in Control, Electrical
Engineering, IT and Robotics, InTech, 2011.
[3] A. Ansari et. al., Mathematical Model of Asynchronous Machine in MATLAB Simulink,
International Journal of Engineering Science and Technology, Vol. 2(5), 2010, 1260-1267
[4] Krešimir Miklošević, Željko Špoljarić, Vedrana Jerković, Analysis of Electric DC Drive
Using Matlab Simulink and SimPower Systems, 27th International Conference SIP 2009,
Pecs, Hungary, 26 - 27.02. 2009.
[5] Abdulatif A. M. Shaban, Matlab / Simulink Based Tool for Power - Electronic Circuits,
Proceedings of World Academy of Science, Engineering and Technology, Vol. 37, 2009.
[6] Lan Gao, Hehe Fu, The Control and Modeling of Diesel Generator Set in Electric
Propulsion Ship, International Journal of Information Technology and Computer Science,
2011, 2, 31-37.
[7] Luis Moura, Izzat Darwazeh, Introduction to Linear Circuit Analysis and Modelling From
DC to RF MATLAB and SPICE Examples, Elsevier, dostupno na:
http://booksite.elsevier.com/9780750659321/exercises/SpiceAndMatlab.pdf
[8] Mathworks web stranica, http://www.mathworks.com
[9] Computer Vision Toolbox, dostupno na: http://www.mathworks.com/products/computer-
vision/
[10] Video and Image Blockset, dostupno na:
http://xanthippi.ceid.upatras.gr/people/psarakis/courses/computer_vision/demos/Video_and_I
mage_blockset_version_reference.pdf
[11] Matlab Video and Image Processing Blockset Relese Notes, dostupno na:
http://www.manualslib.com/manual/392962/Matlab-Video-And-Image-Processing-Blockset-
Release-Notes.html?page=56
[12] Tank Demo, dostupno na: http://www.mathworks.com/products/robust/code-
examples.html?file=/products/demos/shipping/robust/tank_demo.html
[13] Wind Turbine Asynchronous Generator in Isolated Network, dostupno na:
http://www.mathworks.com/help/physmod/sps/examples_v2/wind-turbine-asynchronous-
generator-in-isolated-network.html
[14] Robotic Arm, dostupno na: http://www.mathworks.com/products/demos/shipping/
ident/idnlgreydemo8.html
[15] Defense Communications US:MIL-STD-188-110b Baseband „End-to-End“ Link,
dostupno na: http://www.mathworks.com/help/comm/examples/defense-communications-us-
mil-std-188-110b-baseband-end-to-end-link.html
[16] Modelling Traffic Patterns Using Subtractive Clastering, dostupno na:
http://www.mathworks.com/help/fuzzy/examples/modeling-traffic-patterns-using-subtractive-
clustering.html
[17] Power Systems Blockset, dostupno na:
http://dali.feld.cvut.cz/ucebna/matlab/pdf_doc/powersys/powersys.pdf
[18] 3D Animation, Virtual Car Model, dostupno na:
https://www.mathworks.com/products/3d-animation/model-
examples.html?file=/products/demos/shipping/sl3d/vrcar.html
[19] Crating the Simple Programmatic GUI Code, dostupno na:
http://www.mathworks.com/help/matlab/creating_guis/creating-the-simple-programmatic-
gui-code-file.html

126
MODELIRANJE I SIMULIRANJE U ELEKTROTEHNICI MATLAB/SIMULINK

[20] Laying Out the Simple Programmatic GUI, dostupno na:


http://www.mathworks.com/help/matlab/creating_guis/laying-out-the-simple-programmatic-
gui.html
[21] Crating a GUI with GUIDE, dostupno na: http://www.mathworks.com/videos/creating-a-
gui-with-guide-68979.html
[22] Saffet Ayasun, Chika O. Nwankpa, Induction Motor Tests Using MATLAB/Simulink
and Their Integration Into Undergraduate Electric Machinery Courses, IEEE Transactions on
Education, Vol. 48, No. 1, February 2005, pp. 37-46.
[23] Burak Ozpineci, Leon M. Tolbert, Simulink Implementation of Induction Machine
Model – A Modular Approach, IEEE International Electric Machines and Drives Conference,
June 1-4, 2003, Madison, Wisconsin, pp. 728-734.

127

You might also like