You are on page 1of 31

MiSP 1

TEHNIKO VELEUILITE U ZAGREBU


ELEKTROTEHNIKI ODJEL

Laboratorijske vjebe iz predmeta:

Modeliranje i simuliranje procesa


I dio

Zagreb, listopad 2009. Mato Fruk,dipl.ing.

1
MiSP 2
1. MATLAB
1.1. MATLAB
MATLAB je interaktivni programski paket visokih performansi za znanstveno i inenjersko
numeriko raunjanje . MATLAB integrira numeriku analizu , raunjanje s matricama , signalno
procesiraje i grafiku u jednu cjelinu napravljenu tako da se vrlo lako koristi . U MATLAB-u se
problemi i rjeenja izraavaju kao da su pisani matematiki , bez tradicionalnog programiranja .
Ime MATLAB nastalo je od matrix laboratory . MATLAB je originalno napisan da omogui
laki pristup razvijanju programa za matrice kao to su projekti LINPACK i EISPACK .
MATLAB je interaktivni sustav iji je osnovni element podataka matrica kojoj nije potrebno
dimenzioniranje . Ovaj sustav dozvoljava rjeavanje mnogih numerikih problema u onom dijeliu
vremenu koliko je potrebno da se napie program u nekom kao to je Fortan, Basic ili C . Osim toga
, rjeenje problema MATLAB izraava skoro isto kao da je pisan matematiki .
Mnogi korisnici nastavili su tokom godina razvijati MATLAB . Na fakultetima on je postao
standardni nastavni alat za uvodne kurseve iz primjenjene linarne algebre , kao i za napredne
kurseve iz ostalih podruja . U industriji MATLAB se koristi za razvoj i rjeavanje praktikih
inenjerskih i matematikih problema . Tipino koritenje ukljuuje uobiajeno numeriko
raunjanje , algoritme ,prototipe i rjeavanje specijalnih problema sa matrinim formuliranjem koji
potjeu iz disciplima kao to su teorija automatske kontrole , statistika i digitalno signalno
procesiranje .

1.2. OSNOVE
MATLAB uglavnom radi samo sa jednom vrstom objekta , a to je pravokutna numerika
matrica sa moguim kompleksnim elementima . U nekim situacijama od velikog su znaaja matrica
1 sa 1 , koja je skalar , i matrica sa samo jednim redom ili stupcem ,koja predstavlja vektor .
Operacije i naredbe nad matricama u MATLAB-u nastoje biti prirodne kao to bi bile prikazane na
papiru .
1.2.1. STVARANJE JEDNOSTAVNE MATRICE
Matrice mogu nastati unutar MATLAB-a na nekoliko razliitih naina :
- stvaranjem eksplicitne liste elemenata ,
- stvaranjem funkcija i izraza ,
- kreiranjem M-datoteka ,
- uitavanjem iz drugih datoteka podataka .
MATLAB-ov jezik sadri bezdimenzionalne izraze i tipove deklaracije . Spremanje matrice
u memoriju je automatsko .
Najlaka metoda stvaranja malih matrica je koritenje eksplicitne liste . Elementi eksplicitne
liste razdvojeni su razmacima ili dvotokama i okrueni pravokutnim zagradama , [ i ] . Da bi
oznaili kraj reda koristimo toku-zarez ( ; ) . Na primjer , zadan je izraz
A=[ 1 2 3 ; 4 5 6 ; 7 8 9 ]
rezultat je matrica A

A=
1 2 3
4 5 6
7 8 9

2
MiSP 3
Matrica e biti snimljena za kasnije koritenje .
Velike matrice mogu biti rairene preko nekoliko linija . Tako matricu A moemo prikazati
pomou tri linije
A=[ 1 2 3
4 5 6
7 8 9 ]
Matricu moemo uitavati ili spremiti u datoteku s nastavkom .m . Na primjer neka se
datoteka zove gena.m i sadri prijanju matricu A . Pozivanjem imena gena datoteka e biti
proitana i stvoriti e se matrica A .

1.2.2. ELEMENTI MATRICE


Elementi matrice mogu biti brojevi ili bilo koji MATLAB-ov izraz ; na primjer izjava,
X = [ -1.3 sqrt(3) (1+2+3)*4/5 ]
daje matricu
X=
-1.3000 1.7321 4.8000
Do pojedinanog elementa matrice moemo doi tako da u napiemo njegovo mjesto unutar
zagrada . Tako na primjer , X(3) predstavlja trei element matrice X , a A(2,3) trei element drugog
retka . Taj izraz moe se koristiti i za dodavanje novih elemenata u matricu . Na primjer ,
X(5)=abs(-2)
dodaje peti element u matricu X :
X=
-1.3000 1.7321 4.8000 0.0000 2.0000
Kao to vidimo veliina matrice X automatski poveava prilagoavajui se novom
elementu , a nedefinirani etvrti element postavlja na nulu .
Velike matrice mogu se konstruirati koritei male matrice kao elemente . Na primjer ,
moemo dodati novi red u matricu A koristei izraze
r = [ 10 11 12 ] ;
A= [A; r ]
Nova matrica je :
A=
1 2 3
4 5 6
7 8 9
10 11 12
Isto tako moemo izvui male matrice iz velikih koristei dvotoku ( : ) . Na primjer ,

A=A(1:3, :)
uzima sve stupce u prva tri reda iz trenutne matrice A i daje nam natrag originalnu matricu A .

1.2.3. IZRAZI I VARIJABLE


MATLAB je jezik formula . MATLAB-ovi izrazi i formule najeeg su oblika
varijabla = formula

3
MiSP 4
ili jednostavnije
formula
Formula se sastoji od oparatora i drugih specijalnih znakova , od funkcija i imena varijabli .
Ako je izostavljeno ime varijable i znak jednakosti MATLAB e automatski dodijeliti varijabli ime
ans ( skraeno od answer = odgovor ) . Na primjer , tipkajui izraz
1900/81
prikazati e
ans =
23.4568
Izraz se normalno zavrava pritiskom na tipku enter . Meutim , ako je zadnji znak u izrazu
toka-zarez , ; , printanje e biti zadrano , ali e rezultat biti spremljen u memoriju i kasnije moe
biti pozvan . To je vrlo korisno u M-datotekama i u situacijama kada je rezultat prevelik pa pojedini
brojevi postaju neinteresantni .
Ako je formula tako komplikovana da ne moe cjela stati u jedan red moe se nastaviti u
sljedei red tako da se otipkaju tri toke , ... , koje oznauju da se izraz nastavlja u sljedei red . Na
primjer ,
s = 1 - 1/2 + 1/3 -1/4 + 1/5 - 1/6 + 1/7 ...
- 1/8 + 1/9 - 1/10 + 1/11 - 1/12 ;
Imena varijabli i funkcija sastoje od bilo kojih slova ibrojeva . Samo prvih 19 znakova
imena se pamti .
MATLAB je osjetljiv na malo i veliko slovo , tako da a i A nisu iste varijable . Sve
funkcije moraju biti napisane malim slovima ; inv(A) e invertirati matricu A ,ali INV(A) e samo
prijaviti nedefiniranu funkciju . Meutim , naredba casesen ini MATLAB neosjetljivim na malo i
veliko slovo .

1.2.4. RADNI PROSTOR


Svi rezultati i varijable spremaju se u memoriju raunala kako bi se mogli kasnije
koristiti . Dio memorije koji MATLAB koristi za spremanje podataka zove se radni prostor
( engleski workspace ) . Varijablu spremljenu u radnom prostoru moemo pozvati natrag
jednostavnim tipkanjem njenog imena .
Da bi saznali koje se varijable nalaze spremljene u radnom prostoru koristimo se naredbom
who . Tipkanjem naredbe na ekranu e se pojaviti lista varijabli spremljenih u radnom prostoru
ukljuujui i varijadlu ans , te preostali prazni prostor za spremanje varijabli .

Your variables are:


A ans r s X
leaving 291636 bajtova of memory free.
Vie detaljnih informacija o veliini svake pojedine varijable spremljene u radnom prostoru
daje nam naredba whos :
Name Size Total Complex
A 1 by 1 9 No
ans 1 by 1 1 No

4
MiSP 5
r 1 by 3 3 No
s 1 by 1 1 No
X 1 by 5 5 No
Grand total is (19 *8) = 152 bytes,
leaving 291636 bytes of memory free.
Svaki element matrice koristi za svoje spremanje 8 bajtova memorije , tako da matrica 3 sa 3
treba 72 bajta , a sve varijable zajedno 152 bajta . Koliko e slobodne memorije ostati o sveukupnoj
memoriji raunala i koliko je varijabli spremljeno .

1.2.5. BROJEVI I ARITMETIKI IZRAZI


MATLAB doputa koritenje bilo kojih realni brojeva bilo pozitivnih bilo negativnih .
Najmanji broj sa kojim MATLAB radi 10 308 a najvei 10 308 . Kod potencija koristi se baza 10 .
Neki primjeri brojeva su :
3 -99 0.0001
9.6397238 1.6021E-20 6.02252e23
MATLAB za formule koristi standardne aritmetike operatore kao to su :
+ zbrajanje
- oduzimaje
mnoenje
/ desno dijeljenje
\ lijevo dijeljenje
^ potencija

Kao to vidimo MATLAB ima dva simbola za dijeljenje , lijevo i desno . Kod djeljenja
skalarnih vrijednosti dobiti emo isti rezultat , odnosno 1/4 i 1\4 dati e uvijek 0.25 . Kod dijeljenja
matrica dobiti emo razliit rezultat to je opisano u odjeljku 3.3.4. .

1.2.6. KOMLEKSNI BROJEVI I MATRICE


MATLAB dozvoljava koritenje kompleksnih brojeva u svim operacijama i funkcijama
.Kompleksni brojevi nastaju koritenjem specijalnih funkcija i i j . Tako kompleksni broj moemo
prikazati na dva naina :
z = 3 + 4i
ili
z = 3 + 4j
Isto tako postoje dva naina za stvaranje kompleksne matrice :
A = [1 2; 3 4] + j[5 6; 7 8]
ili
A = [1+5j 2+6j; 3+7j 4+8j]
Oba naina daju isti rezultat . Kod drugog naina moramo paziti na prazna mjesta jer izraz
1 + 5*j , sa praznim mjestima oko znaka + , prestavlja dva razliita broja .

5
MiSP 6
1.2.7. IZLAZNI FORMATI
Rezultati koje MATLAB prorauna pojavljuju se na ekranu . Prikaz brojeva moemo
kontrolirati koritenjem naredbe format . Naredba ima uinak samo na to kako e se matrice
prikazati na ekranu , a ne i to kako su izraunane i spremljene (MATLAB koristi za raunanje
dvostruku preciznost) .
Ako su svi elementi matrice cijeli brojevi , matrica e se prikazati u formatu bez decimalnih
toaka . Na primjer ,
x = [-1 0 1]
e biti prikazan
x=
-1 0 1
Ako bar jedan od elemenata nije cijeli broj postoji nekoliko moguih izlaznih formata.
Pokretanjem MATLAB odmah postavlja izlazni format koji se zove short . Short format prikazuje
priblino prvih 5 decimalnih znamenki . Drugi formati prikazuju vie znamenki ili koriste znastvene
oznake . Na primjer, neka je :
x = [4/3 1.2345e-6]
Izlazni formati i njihovi prikazi su :
format short
1.3333 0.0000
format short e
1.3333E+000 1.2345E-006
format long
1.333333333333338 0.000001234500000
format long e
1.333333333333338E+000 1.234500000000003E-006
format hex
3FF5555555555555 3EB4B6231ABFD271
format +
++
Kod long formata zadnja znamenka moe biti neispravna , ali izlaz je u stvarnosti ispravno
prikazan binarni broj spremljen u raunalu . Kod short i long formata , ako je element matrice vei
od 1000 ili manji od 0.001 koristi se potencija s bazom 10 .Tako se 2156 prikazuje kao
2.156E+001 , 0.000123 kao 1.23E-001 .
Format + slui za pokazivanje nula , pozitivnih i negativnih elemenata u matrici .

1.2.8. POMO
MATLAB sadri informacije o veini MATLAB-ovih predmeta u koje se ubrajaju naredbe ,
funkcije ,oznake i slino . Da bi dobili listu predmeta koristimo se naredbom help . Ako elimo
informaciju o tono odreenom predmetu otikamo help predmet . Tako na primjer ako elimo
informaciju o naredbi format otipkamo :
help format
Isto tako moemo pozvati informaciju i o tome kako koristiti tu pomo naredbom :

6
MiSP 7
help help

1.2.9. IZLAZ IZ MATLABA I SNIMANJE


Za izlaz iz MATLAB-a dovoljno je otipkati quit ili exit . Izlaz iz MATLAB-a prouzrokovat
e gubljenje svih varijabli spremljenih u radnom prostoru . Prije izlaza radni prostor moemo
snimiti za kasnije koristei naredbu
save
Time emo snimiti sve varijable iz radnog prostora na disk u datoteku sa imenom
matlab.mat . Sljedei put kada pokrenemo MATLAB varijable vraamo iz datoteke matlab.mat
pomou naredbe
load
Pomou save i load moemo snimati i uitavati i iz datoteka s drugim imenom , ili snimati
samo odreene varijable . Naredba
save temp
snima trenutne varijable u datoteku s imenom temp.mat . Naredbom
save temp x
snimamo samo varijablu x , a naredba
save temp x y z
snima varijable x y i z .

1.3 OPERACIJE S MATRICAMA


1.3.1. PREMETANJE
Specijalni znak ( apostrof ) oznaava premetanje matrice . Na primjer,
A=[123;456;780];
B = A
daje kao rezultat :
A=
1 2 3
4 5 6
7 8 0
B=
1 4 7
2 5 8
3 6 0
Isto tako
x = [ -1 0 2 ]
daje :
x=
-1
0
2
Ako je Z kompleksna matrica , Z e biti kompleksno konjugirana matrica .

7
MiSP 8
1.3.2. ZBRAJANJE I ODUZIMANJE
Zbrajanje i oduzimanje matrica oznaava se sa + i - .
Zbrajanje i oduzimanje mogue je samo ako su matrice iste
veliine . Na primjer , A + x je neispravno jer je A matrica A
3 sa 3 , a x 3 sa 1 . Meutim ,
C = A+ B

je ispravno i daje kao rezultat matricu :


C=
2 6 10
6 10 14
10 14 0
Zbrajanje i oduzimanje je mogue i ako je jedan od operatora skalar ( matrica 1 sa 1) . U
tom sluaju , skalar se dodaje ili oduzima od svakog elementa drugog operatora . Na primjer ,
y=x-1
daje :
y=
-2
-1
1

1.3.3. MNOENJE MATRICA


Mnoenje matrica oznaava se sa . Mnoenje je mogue sve dok su unutranje dimenzije
operatora iste . To znai da je X Y dozvoljeno ako je druga dimenzija matrice X ista kao i prva
dimenzija matrice Y . Na primjer,
xy
nije mogue jer su i x i y matrice 3 sa 1 . S druge strane
xy
mogue jer je x matrica 3 sa 1, a y 1 sa 3 i kao rezultat daju
ans =
4
Mnoenje je mogue i kad je jedan od operatora skalar . Tada se skalar mnoi sa svakim
elementom drugog operatora . Na primjer ,
b = x2
daje :
b=
-2
0
2

8
MiSP 9
1.3.4. DIJELJENJE MATRICE
Za dijeljenje postoje dvije oznake / i \ . A\B i B/A predstavljaju lijevo i desno mnoenje
matrice B sa inverznom matricom A ( inv(A)B odnosno Binv(A) ) , ali rezultat se dobiva bez
raunanja inverzne matrice .
Lijevo djeljenje , A\B , mogue je sve dok B ima vie redova od A . Ako je A kvadratna
matrica za raunanje se koristi Gausova eliminacija . Rezultat je nova matrica istih dimenzija kao i
B . Ako A nije kvadratna matrica tada se koristi householderova ortogonalizacija po stupcima
.Rezultat je nova matrica m sa n gdje je m broj stupaca matrice A , a n broj stupaca matrice B .

3.3.5. POTENCIRANJE MATRICE


Izraz A^n poveava matricu A na n-tu potenciju . Potenciranje je mogue ako je matrica A
kvadratna , a n skalar . Ako je n cijeli broj vei od 1 , tada se potenciranje rauna viestrukim
mnoenjem . Za druge vrijednosti n raun ukljuuje jedinine vrijednosti i jedinine vektore .

1.4. OPERACIJE S POLJIMA


Pojam operacija s poljima ( eng. array operations ) koristimo kad se aritmetikim
operacijama elementi dodaju element po element , za razliku od uobiajenih operacija sa matricama
koji se oznauju simbolima + - / \ ^ . Da bi ih razlikovali simbolima se kod operacija s
poljima dodaje toka ( . ) .

1.4.1. ZBRAJANJE I ODUZIMANJE


Kod zbrajanja i oduzimanja operacije sa poljima i operacije sa matricama su iste , tako da se
simboli + i - mogu odnositi na obje vrste operacija .

1.4.2. MNOENJE I DIJELJENJE


Mnoenje element po element oznaava sa . . Ako A i B imaju iste dimenzije , tada A . B
oznaava polje iji elementi su produkti pojedinanih elemenata A i B . Na
primjer , ako je
x=[123]; y=[456];
tada
z = x . y
daje rezultat
z=
4 10 18
Izraz A ./ B i A .\ B daje kvocijent pojedinanih elemenata . Tako ,
z = x .\ y
kao rezultat daje
z=
4.0000 2.5000 2.0000

1.4.3. POTENCIRANJE
Potenciranje element po element oznaavamo sa .^ . Na primjer ,

9
MiSP 10
z = x .^ y
daje rezultat
z=
1 32 729
Eksponent moe biti i skalar .
z = x .^ 2
z=
1 4 9
Ili baza moe biti skalar .
z = 2 .^ [x y]
z=
2 4 8 16 32 64
Vrlo je vano da izmeu znamenke 2 i .^ bude prazan prostor inae e se toka shvatiti kao
decimalna toka iza znamenke 2 .

1.4.4. OPERACIJE S RELACIJAMA


Postoji 6 relacija za usporeivanje dvije matrice jednakih dimenzija .

< manji od
< = manji od ili jednako
> vei od
> = vei od ili jednako
= = jednako
~ = razliito

Usporeivanje se vri element po element . Rezultat usporeivanja je matrica jedinica i


nula , gdje jedinice predstavljaju istinite tvrdnje , a nule neistine tvrdnje . Na primjer,
2+2 ~= 4
daje kao rezultat 0 .

1.4.5. OSNOVNE MATEMATIKE FUNKCIJE


Meu osnovne matematike funkcije spadaju trigonometrijske funkcije :

sin sinus
cos kosinus
tan tanges
asin arkus sinus
acos arkus kosinus
atan akus tanges
sinh sinus hiperbolni
cosh kosinus hiperbolni
tanh tanges hiperbolni
asinh arkus sinus hiperbolni
acosh arkus kosinus hiperbolni
atanh arkus tanges hiperbolni

10
MiSP 11
i uobiajene osnovne funkcije :

abs apsolutna vrijednost


angle kut
sqrt drugi korijen
real realni dio
imag imaginarni dio
conj komleksna konjugacija
round zaokruiti ka najbliem cjelom broju
fix zaokruiti prema nuli
floor zaokruiti prema - beskonano
ceil zaokruiti prema + beskonano
rem ostatak dijeljenja
exp eksponencijal base e
log prirodni logaritam
log10 logaritam base 10

1.5. GRAFIKA
Znastvene i inenjerske podatke moemo u MATLAB-u prikazati i grafiki koristei
naredbe za crtanje na ekranu . Postoji vie naina prikazivanja na ekranu od kojih mi odabiremo
nama najpogodniji :

plot linarni graf


loglog logaritamski graf
semilogx polulogaritamski graf (x-os logaritamska)
semilogy polulogaritamski graf (y-os logaritamska)
polar polarni graf
mesh 3-dimenzionalni graf
contour crtanje obrisa
bar crtanje stupaca
stairs crtanje stepenica

Jednom kada je graf na ekranu , graf moemo oznaiti , ubaciti tekst ili nacrtati reetke u
grafu . Sve to moemo napraviti pomou naredbi :

title imenovanje grafa


xlabel oznaavanje x-osi
ylabel oznaavanje y-osi
text proizvoljno pozicioniran tekst
gtext miom pozicioniran tekst
grid reetka

Postoje i naredbe za runo stupnjevanje osi i kontrolu grafa :

axis runo stupnjevanje osi


hold zadri graf na ekranu
shg pokai ekran sa grafom
clg obrii ekran sa grafom
subplot razdvajanje ekrana na vie podekrana

11
MiSP 12
kao i naredbe za printanje :

print slanje grafa na pisa


meta grafika meta datoteka
prtsc kopiranje ekrana

1.5.1. OSNOVNI OBLIK


Ako je Y vektor , onda plot(Y) crta linarni graf koji na osi y ima vrijednosti elemenata
vektora Y , a na osi x redno mjesto elemenata vektora . Na primjer ,
Y = [0. .48 .84 1. .91 .6 .14] ;
plot(Y)
prikazuje slijedei graf na ekranu :
1
1
0.9 0.9
0.8 0.8
0.7 0.7
0.6 0.6
0.5 0.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 01 2 3 4 5 6 7
1 2 3 4 5 6 7

MATLAB ima dva ekrana , grafiki ekran i ekran za naredbe . Neke konfiguracije
raunala omoguuju prikazivanje oba ekrana istovremeno , dok druge mogu prikazati samo jedan
ekran istodobno . Ako se ekran za naredbe ne vidi od grafikog dovoljno je pritisnuti bilo koju tipku
za povratak na njega .
Prijanjem grafu moemo dati ime , oznaiti mu osi ili mu ucrtati reetku . Na primjer ,
title( Moj prvi graf )
xlabel( redno mjesto elementa )
ylabel( vrijednost elementa )
grid
daje kao rezultat :

12
MiSP 13
1
Moj prvi graf
1
0.9 0.9
0.8 0.8
0.7 0.7
0.6 0.6
0.5 0.5
vrijednost elementa

0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 01 2 3 4 5 6 7
1 2 3 4 5 6 7
redno mjesto elementa

Ako su X i Y vektori iste duine tada naredba plot(X ,Y) crta graf koji na osi y ima
elemente vektora Y , a na osi x ima elemente vektora X . Na primjer ,
t = 0:0.05:4pi ;
y = sin(t) ;
plot(t,y)
daje kao rezultat :
1
1
0.8
0.6
0.4
0.2
0 0

-0.2
-0.4-0.4
-0.6-0.6
-0.8-0.8
-1-1 0 2 4 6 8 10 12 14
0 2 4 6 8 10 12 14

1.5.2. STILOVI CRTA I OZNAKA


Na jednom ekranu se moe prikazati vie grafova . Da bi ih razlikovali moemo ih prikazati
razliitim vrstama crta , oznaka ili drugim bojama . Na primjer ,
plot(X,Y,'x')
crta graf tako da vrijednosti prikazuje znakom x , dok
plot(X1,Y1,':', X2,Y2,'+')
koristi za prvi graf ctu tipa toka-toka , a drugi znak + . Drugi tipovi crta i oznaka su :

13
MiSP 14
- puna crta
-- isprekidana crta
: toka-toka crta
-. crta-toka crta
. znak toka
+ znak plus
znak zvjezdica
x znak x

Grafove moemo prikazati i razliitim bojama . Na primjer ,


plot(X,Y,'r')
plot(X,Y,'+g')
koristi crvenu crtu za prvi graf , a zeleni znak za drugi . Druge boje su :

r crvena
g zelena
b plava
w bijela
i nevidljiva

1.5.3. CRTANJE KOMPLEKSNIH PODATAKA


Kod crtanja kompleksnih podataka crta se samo realni dio dok se imaginarni dio ignorira ,
osim ako se za argument uzima samo jedan komleksni vektor .U tom sluaju rezultat je graf koji
na jednoj osi ima realni dio ,a na drugoj osi imaginarni dio .

1.5.4. KONTROLA EKRANA


MATLAB ima dva ekrana , grafiki ekran i ekran za naredbe . Neke konfiguracije raunala
doputaja prikaz oba ekrana istovremeno , dok kod drugih je mogue imati samo jedan . Neke
naredbe omoguuju prebacivanje izmeu ekrana kao i samo brisanje . Za to koristimo naredbe :
shg pokai grafiki ekran
any key vrati ekran za naredbe
clc obrii ekran za naredbe
clg obrii grafiki ekran
home vrati se na kursor
Na primjer , ako MATLAB pokazuje samo ekran za naredbe tipkanjem naredbe shg pozvati
e se grafiki ekran sa zadnjim nacrtanim grafom .
Mogue je ekran podijeliti na vie dijelova kako bi prikazali vie grafova odjednom .
Naredba subplot(mnp) dijeli grafiki ekran na m puta n dijelova , te p-ti dio koristi za odreeni
graf . Na primjer ,
subplot(211), plot(abs(y))
subplot(212), plot(angle(y))
dijeli ekran na dva dijela od kojih gornji koristi za crtanje vrijednosti vektora y , a donji za crtanje
kuta . Naredbom subplot(111) ili jednostavno subplot vraamo normalni ekran.
MATLAB automatski stupnjuje osi grafa . U nekim sluajevima elimo sami odrediti
vrijednosti granica grafa . To radimo pomou naredbe axis[x_min, x_max, y_min, y_max] .

14
MiSP 15

1.6. KONTROLA TOKA


MATLAB ima za kontrolu toka izaze koje nalazimo u veini raunarskih jezika . To su
FOR i WHILE petlja , te IF izjava .

1.6.1. FOR PETLJA


MATLAB ima svoju verziju FOR petlje . Njen temeljni oblik je :
for v = izraz
naredbe
end
FOR petlja doputa da se naredba ili skup naredbi ponavljaju tono odreen broj puta . Na
primjer ,
for i = 1:n, x(i) = 0, end
dodjeljuje 0 prvim n elementima vektora x . Ako je n manji od jedan izraz je jo uvijek ispravan ,
ali se unutranji izrazi nee izvriti . Ako x jo ne postoji ili ima manji broj elemenata od n ,
dodatni prostor e se automatski dodjeliti .

1.6.2. WHILE PETLJA


Temeljni oblik WHILE petlje je :
while uvjet
naredbe
end
WHILE petlja doputa da se naredna ili grupa naredba ponavljaju neodreen broj puta sve
dok se ne ispuni logiki uvjet . Na primjer ,
while i = n, x(i) = 0, end
dodjeljuje 0 svim elementima vektora x sve do elementa n .

1.6.3. IF IZJAVA
Temeljni oblik IF izjave je :
if uvjet
naredbe 1
else
naredbe 2
end
IF izjava doputa da se naredba ili naredbe 1 izvri ako je zadovoljen logiki uvjet , inae e
se izvravati skup naredbi 2 .

1.7. M-DATOTEKE
MATLAB se obino koristi u modu za naredbe , a naredbe se piu u naredbenom retku .
Naredbe se piu jedna po jedna , a izvravaju se odmah . MATLAB ima i mogunost izvravanja
niza naredbi spremljenih u datoteke .

15
MiSP 16
Datoteke koje sadre MATLAB-ove izraze zovu se M-dototeke jer imaju na kraju datoteke
ekstenziju .m . Na primjer , datoteka sa imenom bessel.m moda sadri izraze za rjeavanje
Bessel-ove funkcije .
M-datoteke sadre nizove normalnih MATLAB-ovih naredbi i izraza , te izraze iz drugih
M-datoteka . M-datoteka moe pozivati ak i sama sebe .
Jedan nain koritenja M-datoteke je automatiziranje dugog niza naredbi . Takve datoteke
zovemo tekst datoteke (eng. string files ) . Drugi nain omoguuje proirenje MATLAB-ovih
funkcija stvaranjem novih . Takve datoteke zovemo funkcijske datoteke (eng. function files ) . Oba
tipa M-datoteke su obine ASCII tekst datoteke koje stvaramo pomou nekog editora ili tekst
procesora .

1.7.1. TEKST DATOTEKE


Kada je tekst datoteka pozvana MATLAB jednostavno izvrava naredbe pronaene u
datoteci , umjesto da eka unos naredbi preko tipkovnice . Izrazi u tekst datoteci operiraju globalno
sa datotekama u radnom prostoru . Tekst datoteke su korisne za izvravanje analiza i rjeavanje
problema koji zahtjevaju tako dugaak niz naredbi da bi bilo nezgrapno sve to pisati u
naredbenom retku .
Na primjer , neka se u datoteci sa imenom fibno.m nalaze sljedee naredbe :
% Raunanje Fibinnaci-jevih brojeva
f = 1 1; i = 1;
while f(i) + f(i+1) 1000
f(i+2) = f(i) + f(i+1);
i = i +1;
end
plot(f)
Tipkajui ime datoteke , fibno , MATLAB e izvriti naredbu , te izraunati prvih 16
Fibinnaci-jevih brojeva i nacrtati graf . Na kraju e se varijable f i i spremiti u radni prostor .

1.7.2. FUNKCIJSKE DATOTEKE


Ako se u prvom redu M-datoteke nalazi rije function radi se funkcijskoj
datoteci . Funkcijska datoteka razlikuje se od tekst datoteke u tome da se argumenti mogu ispustiti ,
a varijablesu lokalne jer su definirane i sa njima se radi unutar datoteke . Izrazi u datoteci ne
operiraju globalno sa podacima spremljenim u radnom prostoru . Funkcijske datoteke koriste se
za stvaranje novih funkcija koristei MATLABOV jezik .
Na primjer , neka datoteka mean.m sadri slijedee izraze :
function y = mean(x)
% Raunanje aritmetike srednje vrijednosti
% MEAN(x) vraa srednju aritmetiku
% sredinu . Za matricu , MEAN(x) je
% vektor koji sadri aritmetike sredine
% svakog stupca .
[m,n] = size(x);
if m == 1
m = n;
end
y = sum(x)/m;
Postojanjem na disku ova datoteka definire novu funkciju zvanu mean . Nova funkcija
koristi se kao i svaka druga MATLAB-ova funkcija . Na primjer , ako je

16
MiSP 17
Z = 1:99;
srednja vrijednost se dobiva tipkanjem :
mean(z)
Rezultat je
ans =
50
Prvi red funkcijske datoteke deklarira ime funkcije , ulazni i izlazni argument . Bez tog
redtka datoteka bi bila tekst umjesto funkcijska . Znak % oznaava da je ostatk reda komentar i da
ga treba ignorirati . Oni se pojavljuju tek kada se pozave help mean . Varijable m , n i y su
lokalne i ne spremaju se u radni prostor .

1.7.3. NAREDBE U DATOTECI


U datotekama moemo koristi sve uobiajene naredbe MATLAB-a , ali postoje i naredbe
koje se uglavnom koriste samo u datotekama .
Normalno , kada se m-datoteka izvrava , naredbe iz datoteke se nevide na ekranu . Naredba
echo prouzrokuje da se na ekranu vide naredbe koje se izvravaju to je vrlo korisno za debagiranje
ili za demostraciju .
Naredba input omoguuje unos podataka od strane korisnika . Naredba n=input(' How many
apples') daje promt u obliku teksta i eka da se broj ili izraz unesu pomou tipkovnice . To je
korisno za izradu menija .
Slina naredba je keyboard koja poziva tipkovnicu kao tekst datoteku . Ono je korisna za
debagiranje ili za promjenu varijable tokom izvravanja .
Naredba pause zaustavlja proceduru i eka da korisnik pritisne bilo koju tipku za nastavak .
Naredba pause(n) zaustavlja na n sekundi prije nego to nastavi .
Tekstove prikazujemo tako da ih stavimo unutar jednostrukih navodnika .

SIMULINK
2.1. UVOD
SIMULINK je program za simulaciju dinamikih sustava . Kao proirenje MATLAB-a ,
SIMULINK dodaje mnogo novih specijalnih svojstava o dinamikim sustavima .
SIMULINK ima dva naina koritenja ; definiranje modela i analiza modela . Tipian nain
koritenja poinje ili definiranjem modela ili pozivanjem prije definiranog modela , te analiziranjem
tog modela . U praksi ova dva koraka se koriste za definiranje i modificiranje modela tono
odreenog ponaanja .

17
MiSP 18
Model definiramo tako da stvorimo blok dijagram koristei SIMULINK-ovu biblioteku
blokova . Nakon to definiramo model moemo ga analizirati ili biranjem opcija iz SIMULINK-
ovog menija ili pisanjem naredbe u MATLAB-ovu ekranu za naredbe . Alati za analizu ukljuuju
razliite simulacijske algoritme , alate za izdvajanje linarnih modela iz sustava , te alate za traenje
toke ravnotee .
Napredak simulacije moemo gledati tokom izvrenja simulacije , a zavrni rezultat moe se
spremiti u MATLAB-ov radni prostor .

2.2. KORITENJE SIMULINKA


Koritenje SIMULINK-a moemo podijeliti u nekoliko koraka :
1. U MATLAB-ovom naredbenom retku upisati naredbu simulink kako bi otvorili glavnu
biblioteku blokova .
2. Iz File menija u traci s menijima odabrati New kako bi otvorili novi prazni prozor u
kojem emo konstruirati model . Taj novi prozor bit e nazvan Untitled sve dok ga mi
preimenujemo po elji .
3. Otvoriti jednu ili vie biblioteka blokova i odvui nekoliko blokova u aktivni prozor .
4. Nakon to su blokovi postavljeni povui linije kako bi povezali blokove .
5. Otvoriti jedan ili vie blokova (dvostrukim klikom mia) i promjeniti neke od njihovih
unutranjih parametara . Parametri blokova mogu biti bilo koji legalni MATLAB-ovi
izrazi .
6. Snimiti sustav odabiranjem naredbe Save iz File menija .
7. Pokrenuti simulaciju odabiranjem naredbe Start iz Simulation menija . Kada je
simulacija pokrenuta naredba Start postaje naredba Stop . Njenim odabirom
zaustavljamo simulaciju .
8. Prilagoditi jedan ili vie parametara simulacije dabiranjem Parametars iz Simulation
menija .
9. Ponaanje modela prilikom simulacije moemo motriti pomou Scope bloka ili
moemo poslati podatke u MATLAB-ov radni prostor pomou To Worspace bloka .
Ako otkrijemo greku moemo je popraviti mjenjajui jednu ili vie veza , dodavanjem
ili brisanjem blokova ili mjenjanjem blok parametara .

2.3. KONSTRUKCIJA MODELA


SIMULINK koristi blok dijagram kako bi predstavio dinamiki sustav .Definiranje sustava
jako je slino crtanju blok dijagrama . Umjesto da crtamo pojedinane blokove blokovi se kopiraju
iz biblioteke blokova . Ta biblioteka moe biti ili standardna biblioteka koja dolazi sa SIMULINK-
om ili biblioteka koju smo sami napravili .
Standarna biblioteka organizirana je u nekoliko podsustava , tj. grupa blokova u skladu sa
njihovim osobinama . Blokovi se mogu kopirati u iz tih ili bilo kojih drugi biblioteka u na model .
Stavljanjem blokova koje najvie koristimo u jedan podsustav moemo stvoriti svoju biblioteku
blokova . To kasnije tedi vrijeme u gradnji modela .
Pokazati emo nain gradnje modela sustava na jednostavnom primjeru .
Prvo treba pokrenuti MATLAB dvostrukim klikom mia na ikonu MATLAB-a . Tada tipkanjem
naredbe simulink otvaramo SIMULINK-ov prozor sa glavnom bibliotekom blokova ( slika 5.) .

18
MiSP 19
SIMULINK
F ile E dit O ptions S imulation S t yle

Sources Sinks Discrete Linear Nonlinear Connection Extra

slika 5. SIMULINK-ov prozor


Ovaj novi prozor sadri ikone za podsustave blokova koji ine standardnu biblioteku. Ovi
podsustavi mogu se otvoriti dvostrukim klikom mia , te se blokovi koje oni sadre mogu kopirati u
na model . Tako na primjer , Sources biblioteka sari blokove sa mogunostima stvaranja
signala .
Novi prozor u kojem emo graditi na sustav otvaramo pomou naredbe New iz File menija
(slika 6.) .
Untitled
F ile E dit O ptions S imulation S t yle

slika 6.
Blokove moemo kopirati iz jednog prozora u drugi jednostavnim odvlaenjem blokova sa
njihovog originalnog mjesta u novi prozor . Na primjer , otvorimo Sources biblioteku i odatle
odvucimo blok Signal Gen u novi prozor (slika 7.) .
Untitled
F ile E dit O ptions S imulation S t yle

Signal Gen

Ovaj kopirani blok sadri neke unutranje parametre originalnog bloka . Mnogi blokovi
mogu otvoriti odvojen prozor kako bi pokazali svoje parametre . Ti prozori omoguuju kontrolu
ponaanja blokova mjenjanjem njihovih parametara .
Otvorimo blok signalnog generatora dvostrukim klikom mia na ikonu bloka . Otvoriti e se
prozor u kojem e biti prikazani dijaloki prozori za kontrolu oblika signala , amplitude i
frekvencije signala . Na primjer , odaberimo sinusni signal frekvencije 6 Hz i amplitude 1 V . Na
kraju kliknimo na dugme OK kako bi zatvorili ovaj prozor .
Da bi promatrali signal tijekom simulacije koristimo osciloskop koji je predstavljen blokom
Scope . Otvorimo Sinks biblioteku i odatle odvucimo Scope blok u na prozor (slika 8.).

19
MiSP 20
Untitled
F ile E dit O ptions S imulation S t yle

Signal Gen Scope

slika 8.
Otvorimo blok osciloskopa kako bi mogli pratiti signal i promijenili parametre . Na primjer ,
postavimo horizontalan domet na 10 ,a vertikalni na 3 .
Znak > usmjeren prema van na ikoni Signal Gen bloka predstavlja izlaz , a znak > usmjeren
prema unutra na ikoni Scope bloka predstavlja ulaz . Da bi povezali blokove kliknemo na izlaz i
drei lijevu tipku mia povuemo sve do ulaza drugog bloka (slika 9.) .
Untitled
F ile E dit O ptions S imulation S t yle

Signal Gen Scope

slika 9.
Kada je gradnja modela gotova moemo pokrenuti simulaciju . Da bi izabrali algoritam
integracije i parametre koje emo koristiti tijekom simulacije koristimo naredbu Parametars iz
Simulation menija . Pojaviti e se novi prozor sa svim parametrima simulacije koje moemo
promijeniti . Odaberimo na primjer linearnu integraciju i maksimalnu veliinu koraka od 0.01 , te
kliknimo na dugme OK kako bi zatvorili prozor . Da bi pokrenuli simulaciju odabiremo naredbu
Start iz Simulation menija .
Ako prozor osciloskopa nije otvoren , moemo ga otvoriti dvostrukim klikom mia na ikonu
Scope bloka ak i kad je simulacija pokrenuta . U prozoru osciloskopa moemo vidjeti sinusni
signal koji proizvodi generator impulsa . Kontrole u Scope i Signal Gen blokovima su aktivne
tijekom simulacije . Moemo mjenjati valni oblik signala , kao njegovu amplitudu i frekvenciju i to
pratiti na osciloskopu bez da izlazimo iz simulacije .
Simulacija e se zaustaviti kada istekne vrijeme koje smo namjestili u parametrima
simulacije ( Stop time:) . Isto tako moemo zaustaviti simulacija kada elimo odabirom naredbe
Stop iz Simulation menija .
Ovaj na model moemo snimiti na disk za kasniju upotrebu pomou naredbi Save ili Save
As iz File menija. Pri tome moramo paziti da ime pod koje snimamo model bude jedinstveno , jer e
se u sluaju istog imena stari model biti prebrisan novim .

2.4. ANALIZA MODELA


2.4.1. NAINI KORITENJA
Postoje tri naina koritenja SIMULINK-a . Prvi je kontrola simulacije preko trake sa
menijima uz gledanje ponaanja sustava na osciloskopu . Ova metoda je jednostavna za koritenje ,

20
MiSP 21
lagano se ui i brzo pokazuje rezultate . Raditi na ovaj nain vrlo je korisno kod poetnog kreiranja
i debagiranja sustava .
Drugi nain koritenja je preko MATLAB-ovog naredbenog retka . Ova metoda je malo
komliciranija od prve ali daje veliku fleksibilnost . Rezultati simulacije spremaju se u MATLAB-ov
radni prostor za daljnu analizu , a podatke moemo pogledati pomou MATLAB-ovih grafikih
alata .
Trei nain koritenja je preko S-funkcija . To je najkompliciraniji i naj fleksibilniji nain
koritenja . Svaki SIMULINK-ov model mogue je prikazati u MATLAB-u kao S-funkciju koja
utjelovljuje dinamiko ponaanje sustava . Svaka S-funkcija ima isto ime kao i odgovarajui
model . S-funkciju moemo pozvati na razne naine kako bi dobili informacije o modelu koji ona
predstavlja . Svi alati za analizu koji dolaze sa SIMULINK-om rade preko S-funkcija .
Nijedan od ova tri naina koritenja nije ekskluzivan i nema tono odreene granice
koritenja . Za razliite faze gradnje modela mogu se koristiti razliiti naini koritenja
SIMULINK-a .

2.4.2. SIMULACIJA
Simulacija SIMULINK-ovih modela ukljuuje numerike integracije uobiajenih
diferencijalnih jednadbi . SIMULINK sadri odreen broj integracijskih algoritama za simulaciju
takvih jednadbi . Na alost , zbog raznolikosti ponaanja dinamikih sustava jedna metoda ne
garantira da e simulirati svaki tip modela tono i efikasno . Zato su odabir metode i paljiva
selekcija simulacijskih parametara vrlo vani za dobivanje tonih podataka .
Simulaciju moemo pokrenuti ili iz naredbenog retka ili iz Simulation menija . Obe metode
koriste iste argumente i parametre .
Simulaciju iz menija pokreemo pomou naredbe Start iz Simulation menija . Pomou
naredbe Parameters iz Simulation menija pozivamo SIMULINK-ov kontrolni panel sa parametrima
simulacije (slika 10.) .
Kontrolni panel sadri polja u koje unosimo brojeve ili bilo koje legalne MATLAB-ove
izraze . Povratne varijable [t , x , y] koriste se za spremanje vremena , ulaznih i izlaznih krivulja u
MATLAB-ov radni prostor . Vrijeme poetka i kraja simulacije odreujemo pomou varijabli tstart
i tfinal . Integracijski parametri final , minstep i maxstep kontroliraju toleranciju , minimalnu i
maksimalnu veliinu koraka . U kontrolnom panelu moemo i izabrati jednu od sedam
integracijskih algoritama .
Svaku simulaciju moemo pokrenuti i iz naredbenog retka . Na primjer , da bi konfigurirali
simulaciju sa identinim parametrima kao oni opisani u kontrolnom panelu , koristimo naredbu :
[t, x, y] = sim('model', [tstart, tfinal], x0,[final, minstep, maxstep] );
gdje je model ime sustava kojeg simuliramo .
Poetno uvjeti koje ne moemo podesiti iz menija simulacije je definirano u vektoru x0 . Ovi
uvjeti se mogu prebrisati uvjetima koje sadri vektor x0 osim u sluaju kada je vektor x0 prazna
matrica .

21
MiSP 22
SIMULINK Control Panel

Euler Runge-kutta3 Runge-kutta5 Adams

Gear Adams/Gear Linsim

Start Time: tstart OK

Stop Time: tfinal Cancel

Min Step Size: minstep

Max Step Size: maxstep

Tolerance: final

Return Variables: txy

slika 10. SIMULINK-ov kontrolni panel


Izlazne krivulje moemo vidjeti na tri razliita naina . Prvi nain je pomou Scope bloka .
1
s1 Scope
Step Fcn

Krivulje gledamo na ekranu osciloskopu kojeg dobijemo dvostrukim klikom mia na ikonu Scope
bloka .
Drugi nain je pomou povratnih varijabli . Krivulje se nakon zavretka simulacije spremaju
u MATLAB-ov radni prostor , a prikazuju se pomou MATLAB-ovih grafikih alata .
1
1

Step Fcn
s1 y
Simulaciju pokreemo iz naredbenog retka . Na primjer , neka se model zove izlaz
[t,x,y] = linsim('izlaz',2);
plot(t,y)
Trei nain prikazivanja krivulja pomou To Workspace bloka .
1
y
s1 To Workspace
Step Fcn

y
Clock To Workspace1
Krivulja se sprema u MATLAB-ov radni prostor , a prikaz je uz pomo MATLAB-ovih grafikih
alata .
[t, x, y] = linsim('izlaz',2);
plot(t,y)
2.4.3. ALGORITMI SIMULACIJE
Simulacija SIMULINK-ovih modela openito ukljuuje integraciju grupe uobiajenih
diferencijalnih jednadbi . SIMULINK ima odreen broj metoda za simulaciju tih jednadbi:

22
MiSP 23
linsim metoda linearne dinamike
rk23 Runge-Kuttova metoda treeg reda
rk45 Runge-Kuttova metoda petog reda
gear Gearova metoda predvianja za krute sustave
adams Adamsova metoda predvianja

Performanse simulacije u smislu brzine i tonosti se razlikuju za razliite sustave i uvjete .


Zato moramo paziti koju metodu koristimo .
Za linearne modele koristimo linsim metodu . Linearni modeli sastoje se Transfer Function ,
State-Space , Zero-Pole-Gain , Sum i Gain blokovi . Ako je sustav primarno linearan , ali sadri
nekoliko nelinearnih blokova linsim e ipak dobro raditi . linsim je naroit dobar u usporedbi sa
ostalima kada linearni blokovi imaju brzu i sporu dinamiku istovremeno .
Runge-Kuttove metode su bolje od ostalih kada se radi o sustavima koji su jako nelinearni
i/ili diskontinuirani . Ove metode ne rade dobro kada sustav ima i brzu i sporu dinamiku . Za te
sustave treba uzeti linsim ili gear metodu . Runge-Kuttove metode su dobre i za mijeane
kontinuirane i diskretne sustave .
Za nelinearne krute sustave koristimo gear metodu . Ova metoda je manje efikasna od
ostalih za nekrute sustave . Isto tako moda nee dobro raditi ako postoje singulariteti u sustavu ili
sustav ima smetnje zbog brzog mjenjanja ulaznih podataka .
Za sustave koji su nelinearni , ali im se vremenska konstanta nemjenja u irokom rasponu
koristimo adams metodu .
Eulerova metoda se koristi samo za provjeru rezultata .

2.5. KAKO RADI SIMULINK


Struktura podataka koja se koristi za crtanje i stvaranje SIMULINK-ovih modela dizajnirana
je za grafiku reprezentaciju dinamikih sustava . Ovi grafiki modeli nisu odmah dobro
prilagoeni za simulaciju sustava . Zato prva faza simulacije generira novu grupu podataka
optimiziranih za simulaciju . Pri tome se provodi nekoliko akcija .
Prvo , svi parametri blokova se prebacuju u MATLAB . Od ovog trenutka , varijable i
funkcije koje se koriste kao parametri bloka zamjenuju se brojevima . Ako se vrijednost varijable u
radnom prostoru promijeni nakon ovog vremena to nee imati uinka na simulaciju sve dok se ona
ne pokrene ponovno .
Drugo , blokovi se sortiraju u red po kojem su bili napravljeni . Algebarske petlje se
detektiraju . Hijerarhija koju koristimo u podsustavima tijekom simulacije vie nije korisna . Svi
podsustavi se zamjenjuju blokovima od kojih su sastavljeni . Ako blok ovisi o ulaznom podatku u
svakom zadanom vremenskom koraku kako bi proizveo izlazni podatak , mora se blok uvrstiti tek
kad je njegov ulazni podatak uvrten . Algebarska petlja je petlja takvih blokova , gdje blok ovisi o
svojem izlaznom podatku kako bi proizveo izlazni podatak . U tom sluaju iteracija se mora
provesti za svaki korak kako bi dobili algebarsku grupu jednadbi .
Na kraju , veze izmeu blokova se ispituju kako bi osigurali da je duina izlaznog vektora za
svaki blok ista kao i kod oekivanog ulaznog vektora .
Kasnije kada je izgraena struktura podataka simulacije , simulacija je spremna za
pokretanje . model se simulira koritenjem numerikih integracija . Svaka od integracija
(simulacijskih algoritama) ovisi o sposobnostima SIMULINK-ovog modela . Proraun se sastoji od
dva koraka . U prvom koraku rauna se svaki izlazni podatak bloka po redu ustanovljenom tijekom
inicijalizacije . U drugom koraku rauna se za svaki blok njegova derivacija na bazi trenutnog

23
MiSP 24
vremena i njegovog ulaza . Rezultat derivacije je vektor koji se vraa u integrator koji ga koristi za
raunanje novog vektora .

2.6. S-FUNKCIJA
Kada je kreiran SIMULINK-ov model crtanjem blok dijagrama SIMULINK koristi
informacije iz blok dijagrama za kreiranje nove funkcije zvane S-funkcija . Ta funkcija definira
dinamiku modela . Svaki blok dijagram koji nacrtamo ima odgovarajuu S-funkciju ije ime je isto
kao i ime modela . S-funkcija koristi se kod integracije , linerizacije i rutina za raunanje
determinanti dinamike sustava . U osnovi ona je jednostavno MATLAB-ova funkcija sa
specijalnom pozivnom sintaksom koja doputa pristup jednadbama dinamike modela . Njezina
pozivna sintaksa je :
sys = model (t, x, u, flag)
gdje je model ime modela ,a flag odreuje to e se vratiti iz S-funkcije .
S-funkcija kao takva ima sljedee prijednosti :
- Moemo kreirati model , linearan ili nelinearan , u razliitim jezicima .
- Moemo napraviti novi tip blokova koji se mogu koristiti u bilo kojem blok dijagramu .
- Moemo napisati svoju vlastitu rutinu za simulaciju i analizu .
Iako SIMULINK automatski kreira S-funkciju za bilo koji blok dijagram moemo i sami
definirati S-funkciju u drugoj vrsti datoteke kao to je M-datoteka ili MEX-datoteka napisana u C-u
ili Fortranu . Takva datoteka mora mora imati vrlo standardiziran format . Osnovna ideja je da
moramo tono definirati varijable koje simuliramo , ustanoviti kako se te varijable mijenjaju u
ovisnosti o trenutnim vrijednostima vremena i ulaza , te koji su izlazi . Za neke sustave , kao to su
saete grupe diferencijalnih jednadbi mnogo je jednostavnije unijeti ih kao tekst u M-datoteci ili
MEX-datoteci nego crtati odgavarajui dijagram . Bilo kako da je kreiramo to je jo uvijek S-
funkcija .Jednom kada kreiramo novu S-funkciju moemo je staviti u blok dijagram ili je pozvati iz
naredbenog retka kao i druge funkcije .
S-funkciju moemo koristiti unutar blok dijagrama koristei specijalan blok zvan S-function
blok . Drugi nain kreiranja novih blokova je pomou postupka zvanog maskiranje (eng. masking) .
Pomou njega moemo promijeniti blok u smislu njgovog dijalokog prozora , njegove ikone i
njegovih naredbi . Maskiranjem bloka S-funkcije moemo stvoriti novu klasu blokova .

2.7. BIBLIOTEKA BLOKOVA


Tipkanjem naredbe simulink u MATLAB-ovom naredbenom retku otvara se SIMULINK-
ova biblioteka blokova . Biblioteka je jednostavno model koji sadri grupe blokova koji su svrstani
u podsustave prema svojim osobinama . Pomou tih blokova moemo izgraditi na model .
Biblioteku moemo modificirati dovlaenjem novih blokova i snimanjem sustava . Novu
biblioteku moemo kreirati stavljanjem kolekcije blokova u sustav i snimanjem sustava.
Standardna biblioteka koja dolazi sa SIMULINK-om sadri u svojim podsustavima slijedee
blokove :

24
MiSP 25
Sources
Clock vrijeme sustava
Constant daje konstantnu vrijednost
From File ita podatke iz datoteke
From Workspace ita podatke iz radnog prostora
Signal Generator generira razliite oblike signala
Sine Wave generira sinusni signal
White Noise generira proizvoljni um

Sinks
Scope prikaz signala tijekom simulacije
To File spremi podatke u datateku
To Workspace spremi podatke u radni prostor

Discrete
Discrete State-Space diskretni sustav
Diskrete Transfer Fcn diskretna transfer funkcija
Diskrete Zero-Pole nul-toke i polovi dis. sustava
Filter IIR i FIR filteri
Unit Delay kanjenje izlaza u ovisnosti o periodu

Linear
Derivative derivacija ulaza
Gain mnoenje ulaza s konstantom
State-Space linerni sustav
Sum suma ulaza
Transfer Fcn linerna transfer funkcije
Zero-Pole nul-toke i polovi lin. sustava

Connections
Demux razdvaja vektor u skalarni signal
Inport veza sa vanjskim ulazom
Mux grupira skalare u vektor
Outport veza sa vanjskim izlazom

25
MiSP 26
Nolinear
Abs apsolutna vrijednost ulaza
Backlash model histereze
Dead Zone podruje kad je izlaz nula
Fcn funkcija ulaza
Look Up Table izvrava linearno mapiranje
MATLAB Fcn MATLABOVA funkcija
Product mnoenje ulaza
Rate Limiter limitiranje promjene signala
Relay prebacuje izlaz izmeu dvije vrijednosti
Saturation limitiranje vrijednosti signala
S-funktion S-funkcija kao blok
Switch prebacuje izmeu dva ulaza
Transport Delay kanjenje izlaza u ovisnosti o vremenu

Uvod u programski paket MATLAB / SIMULINK

Matlab/Simulink je programski paket kojim se sluimo u analizi i sintezi sustava upravljanja.


Simulink je sastavni dio Matlaba i slui nam za crtanje simulacijskih shema sustava ije
prouavanje vrimo. Simulink pokreemo preko ikone (New Simulink Model) ili upisivanjem
simulink u Matlab. Nakon navedenog otvara se panel (Library Simulink). Odabirom opcije
FileNewModel otvaramo radni prostor (obino naziva Untiled) u kojemu crtamo simulacijsku
shemu. Simulacijsku shemu spremamo odabirom opcije FileSave As i upisivanjem ime.mdl.
Dvostrukim klikom na ikone u panelu Library Simulink otvaramo nove panele. Odabrane elemente
s lijevom tipkom mia metodom povuci-pusti prenosimo na radni prostor. Nakon to prenesemo sve
potrebne elemente dvostrukim klikom (lijeve tipke mia) na njih odabiremo parametre. Elemente u
radnom prostoru je mogue duplicirati pomou desne tipke mia metodom povuci-pusti. Elemente
spajamo tako da lijevom tipkom mia kliknemo na izlaz elementa (mi poprimi oblik kriia) te
povuemo mia do ulaza u drugi element i tu otpustimo tipku mia. Poloaj elementa moemo
odrediti u panelu Format. . Parametre simulacije odreujemo u SimulationParameters .
Simulaciju pokreemo u SimulationStart .

LIBRARY SIMULINK

SOURCES SINKS

26
MiSP 27

DISCRETE LINEAR

27
MiSP 28

U panelu SOURCES prikazani su izvori signala. U panelu SINKS nalaze se elementi u koje
spremamo rezultate simulacije. U panelu DISCRETE nalaze se diskretni elementi. U panelu
LINEAR nalaze se kontinuirani elementi.

28
Uvod u analizu linearnih kontinuiranih sustava

U Matlabu prijenosnu funkciju piemo u matrinom obliku i to:


za kontinuirane sustave
s 1
F ( s) 2
s 3 s 5

piemo: num=[0 1 1];


den=[1 3 5];

za diskretne sustave
2.3 z 1
F (s)
2 z 0 .5

piemo: numd=[2.3 -1];


dend=[2 -0.5];

Napomena : Pri crtanju i proraunu funkcija ugraenih u Matlab ulazni parametri trebaju biti sukladnih
dimenzija (dimenzije se provjeravaju sa naredbom whos). Matlab je programski paket koji radi sa DOS
naredbama (npr. cd .., dir) te je prije poetka rada potrebno provjeriti u kojem direktoriju se nalazimo.
Popis najee koritenih naredbi u Matlabu :

help - opisuje naredbu (npr. help plot)


whos - prikazuje trenutno koritene varijable i njihovu veliinu
roots(p) -nultoke polinoma
clear - brisanje svih varijabli iz memorije
clearx - brisanje varijable x iz memorije
save temp t y - sprema varijable t i y u datoteku temp.mat
load temp - uitava datoteku temp.mat u memoriju
plot(y) - crta y (moe biti odziv kontinuiranog sustava)
t=0:0.1:1; - rauna varijablu t od 0 do 1 sa korakom 0.1
plot(t,y) - nacrtaj y u ovisnosti o t
plot(t,y,t,z) - nacrtaj y i z u ovisnosti o t
plot(t,y,:,r) gdje je:(:) - tokasta crta
(--)-isprekidana crta
(r)- crvena boja
(g)-zelena boja
stairs(yd) - crta yd to je odziv diskretnog sustava
t=0:T:(n-1)*T; - rauna varijablu t od 0 do(n-1)*T sa korakom T gdje je
- T- vrijeme uzorkovanja
- n- broj koraka uzorkovanja
stairs(t,yd) - nacrtaj yd u ovisnosti o t
zoom on - zumirate graf
grid - postavi mreu
xlabel(x os) - oznaava x os
ylabel(y os) - oznaava y os
title(naziv grafa) - ispisuje naziv grafa
hold on - zadrava nacrtano na grafu
semilogx(x,y) - x os je logaritamska
subplot(m,n,p) - m-redovi
n-stupci
p-dio koji se crta
axis - prikazuje osi
axis(xmin xmax ymin ymax) - odreuje koordinate osa
y=step(num,den) - odziv na step kontinuiranog sustava
y,x,t=step(num,den) - duljina vektora y jednaka je duljini vektora t
y,x,t=step(num,den,tpo:korak:tkra) - duljina vektora t je od tpo do tkra
y=dstep(numd,dend,n) - odziv na step diskretnog sustava
- n - broj koraka uzorkovanja
mag,phase,w=bode(num,den) - crta Bodeove dijagrame kontinuiranog sustava gdje je:
- mag - amplituda (pojaanje)
- phase - faza ()
- w-kruna frekvencija (rad/s)
mag,phase,w=bode(num,den,wpo:korak:wkra);
- wpo - poetna frekvencija od koje elimo proraun
- korak - korak frekvencije
- wkra - krajnja frekvencija do koje elimo proraun
gm,pm,wgm,wpm=margin(mag,phase,w); -rauna amplitudno i fazno osiguranje te pripadajue
frekvencije
mag,phase,w=dbode(numd,dend,T) - crta Bodeove dijagrame diskretnog sustava gdje je:
- T - vrijeme uzorkovanja

1
2

You might also like