Professional Documents
Culture Documents
MATLAB Aco Rankovic TFCacak Uputstvo Za Seminar
MATLAB Aco Rankovic TFCacak Uputstvo Za Seminar
SADRŽAJ
1. Uvod u MATLAB
MAT(rix) LAB(oratory) predstavlja snažan softverski paket koji je i programski jezik visokog
nivoa i računarski vizuelizacioni alat. Tokom godina evoluirao je u standardni alat za numerička
izračunavanja na univerzitetima širom sveta i u razvojnim odeljenjima u industriji. Trenutno je aktuelna
verzija 6, a postoje realizacije za više hardverskih platformi.
MATLAB sadrži i niz specijalizovanih alata u obliku tzv. skript datoteka (M-datoteke) koje
proširuju njegove mogućnosti u određenim klasama problema kao što su: digitalna obrada signala,
automatsko upravljanje, modeliranje i simulacija sistema, neuralne mreže, fazi logika, parcijalne
diferencijalne jednačine itd.
Na vrhu prozora programa MATLAB nalaze se trake padajućih menija: File, Edit, View, Web,
Window i Help.
U daljem tekstu dat je kratak opis komandi padajućih menija, karakterističnih za MATLAB.
2
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Meni File
Opcija New omogućava otvaranje nove M-datoteke, grafičkog prozora ili SIMULINK modela.
Opcija Import Data omogućava unos podataka iz drugih programskih paketa windows okruženja.
Opcija Set Path omogućava da upišete putanju kojom će MATLAB tražiti M-datoteke.
Opcija Preferences nudi vam mogućnost da navedete numerički format koji će MATLAB koristiti za
prikazivanje izlaznog rezultata, font i boje koji će se koristiti u komandnom i history prozoru, format
klipborda koji ćete koristiti prilikom kopiranja prozora sa slikom...
Meni Edit
3
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Meni View
4
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Meni Web
Omogućava ”Online Help” (pomoć) i nadgradnju MATLAB programskog paketa sa Math Work
web site.
Meni Help
Pored tzv. Online Help u MATLAB-u su na raspolaganju dva tipa Help-a (pomoći):
- izborom stavke Help iz padajućeg menija
- Help kome se pristupa iz komandne linije, upisivanjem u komandni prozor:
» help
HELP topics:
5
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Kao primer data je kvadratne matrice A dimenzija 3x3 (tri vrste i tri kolone):
1 2 3
A=4 5 6
7 8 9
» A=[1 2 3 ; 4 5 6 ; 7 , 8 , 9]
A =
1 2 3
4 5 6
7 8 9
» A=[...
1 2 3
4 5 6
7 8 9]
Simbol ... koristi se za upisivanju izraza u više linija, kao u slučaju prethodne matrice.
Jednom uneti sadržaj komandne linije, ne mora se ponovo upisivati pri sledećem pozivanju.
Umesto da se ponovo upisuje ista komanda dovoljno je pritisnuti taster sa strelicom nagore ↑ . Kako
MATLAB pamti sve prethodne linije, u jednoj sesiji, višestrukim pritiskom tastera ↑ se poziva neka od
6
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
prethodnih linija. Opis funkcija tastera ili kombinacija tastera kojima se uređuje komandni prozor dat je u
tabeli:
Pri generisanju vektora ili matrica sa konstantnim korakom koristi se simbol :(dvotačka).
Pojavljuje se u nekoliko različitih oblika. Izraz:
»1 : 10
kao rezultat daje vektor vrstu koji sadrži celobrojne vrednosti od 1 do 10.
ans =
1 2 3 4 5 6 7 8 9 10
Da bi se dobio korak različit od jedinice, mora se navesti vrednost koraka. U tom slučaju navode se tri
broja (celobrojna ili racionalna) koji su razdvojeni sa dve dvotačke. Prvi i treći broj smatraju se donjom i
gornjom granicom, a srednji broj je korak. Na primer:
»1 : 0.5 : 4
ans =
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000
»0 : pi/4 : pi
Dobija se:
ans =
0 0.7854 1.5708 2.3562 3.1416
7
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Svaki element element matrice A označava se kao A(i,j), gde je i vrsta, a j kolona matrice A. Na
primer A(3,2) je broj koji se nalazi u trećoj vrsti i drugoj koloni. U ovom primeru A(3,2) je 8.
Izdvajanje ove vrednosti iz matrice A se dobija upisivanjem komande:
»A(3,2)
ans =
8
» A(: , 1)
ans =
1
4
7
» A(2 , :)
A=
2 3
5 6
8 9
A=
1 2 3
7 8 9
Elementi matrice mogu se definisati algebarskim izrazima koji se nalaze na mestima pripadajućih
elemenata.
Izraz:
8
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
B=
-1 15 4 3
Funkcija Opis
eye Jedinična matrica
linspace Vektor sa linearnom podelom
logspace Vektor sa logaritamskom podelim
meshgrid Generisanje domena za 3D dijagrame
ones Svi elementi matricejedinice
Slučajni elementi sa uniformnom
rand
raspodelom
randn Slučajni elementi sa normalnom raspodelom
zeros Svi elementi nule
9
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
gde su:
x1,x2,x3,...- ulazni argumenti funkcije (unose se u radni prostor komandnog prozora)
y1,y2,y3,...- izlazni argumenti funkcije (dobijaju se pozivanjem funkcije)
Kao primer komandne M-datoteke kreiraćemo datoteku koja sadrži sledeće redove:
» matricaB
B=
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
10
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
y = 3* x3 − 5 * x2 + 2
M-datoteka u koju se upisuje kod za izračunavanje ovo stepene funkcije ima sledeći sadržaj:
» stepenafunkcija(2)
kao rezultat se dobija vrednost funkcije za x = 2:
y=
6
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
» load matrica.dat
MATLAB učitava datoteku i pravi promenljivu matrica koja sadrži ovu matricu:
Pozivanjem:
» load matrica
matrica =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
11
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
1.3.1. Promenljive
MATLAB ne zahteva deklarisanje promenljivih (navođenje tipa ili dimenzionisanje). MATLAB
automatski prepoznaje i pravi novu promenljivu dodeljujući joj odgovarajuću količinu memorijskog
prostora. Ako promenljiva već postoji, MATLAB menja njen sadržaj i, ako je potrebno, dodeljuje joj novi
memorijski prostor. Za svaku skalarnu promenljivu, na primer:
a = 10
pravi matricu dimenzija 1x1, imenuje je a i smešta vrednost 10 u njen jedini element.
Ime promenljive mora početi slovom, iza koga može biti bilo koji broj slova, cifara ili crtica za
podvlačenje. MATLAB koristi za identifikaciju samo prvih 13 znakova iz imena promenljive. MATLAB
pravi razliku između malih i velikih slova u imenima promenljivih. A i a nisu iste promenljive. U daljem
tekstu malim slovima ćemo označavati matrice vrste (vektore), a VELIKIM SLOVIMA pravougaone
matrice.
1.3.2. Brojevi
MATLAB koristi konvencionalni decimalni način zapisivanja sa opcionom decimalnom tačkom i
predznakom za brojeve.
Eksponencijalni način zapisivanja koristi slovo e da označi faktore skaliranja stepenom broja 10.
Imaginarni deo kompleksnih brojeva koristi i ili j kao sufiks.
MATLAB automatski memoriše brojeve u formatu zadatom opcijom padajućeg menija
File/Preferences/Command Window. Decimalni brojevi u formatu long (brojeve sa fiksnim zarezom),
imaju konačnu tačnost od oko 16 značajnih cifara i konačan raspon od oko 10-308 do 10+308. Postojeći
formati u kojima se brojevi prikazuju:
Funkcija Opis
format short; Brojeve sa fiksnim zarezom i 4 decimalne cifre
format short e; Brojeve sa pokretnim zarezom i 5 cifara
format short g; Brojevi sa fiksnim ili pokretnim zarezom i 5 značajnih cifara
format long; Brojeve sa fiksnim zarezom i 15 decimalnih cifara
format long e; Brojeve sa pokretnim zarezom i 15 cifara
format long g; Brojevi sa fiksnim ili pokretnim zarezom i 15 značajnih cifara
format bank; Brojeve sa dve decimalne cifara
format hex ; Heksadecimalni format
format rat ; Odnos (razlomak) dve celobrojna vrednost
+- Znak + i – broja
12
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Funkcija Rezultat
format short; 100*pi 314.1593
format short e; 100*pi 3.1416e+002
format short g; 100*pi 314.16
format long; 100*pi 3.141592653589793e+002
format long e; 100*pi 3.141592653589793e+002
format long g; 100*pi 314.159265358979
format bank; 100*pi 314.16
format hex ; 100*pi 4073a28c59d5433b
format rat ; 100*pi 13823/44
- pi - 314.1593
13
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Kada jedan red koda sadrži više od jednog od ovih operatora redosled izračunavanja se obavlja
prema sledećem prioritetu:
Prioritet Operacija
1 Zagrade
2 Stepenovanje, sleva nadesno
3 Množenje i deljenje, sleva nadesno
4 Sabiranje i oduzimanje, sleva nadesno
Na primeru dve kvadratne matrice A i B (dimenzija 3x3) uporedo su prikazani rezultati pri
primeni matričnih operatora i operatora nad poljem brojeva:
1 2 3 1 1 1
A=4 5 6 B =1 2 2
7 8 9 1 2 3
1.3.4. Funkcije
MATLAB ima veliki broj elementarnih i složenih matematičkih funkcija. Većina ovih funkcija
prihvata kompleksne argumente i mogu se izvoditi na elementima matrice.
14
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
»help elfun
15
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
∫e
−t 2
erf funkcija greške erf(x) = 2
π
dt erf(.5) 0.5205
0
phi = 0.6155
sph2cart
koordinata
[x,y,z] = sph2cart(theta,phi,r)
r = 1.7321
polarne u pravougle koordinate [theta,rho,z]=cart2pol(1,1,1)
pol2cart
[x,y,z] = pol2cart(theta,rho,z) theta = 0.7854
16
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Primeri nekih najčešće korišćenih funkcija numeričke linearne algebre dati su u tabeli:
Primena nekih najčešće korišćenih funkcija numeričke linearne algebre prikazani su na primeru
matrice A i B i rezultati su dati u tabeli:
1 2 3 1 1 1
A=4 5 6 B =1 2 2
7 8 9 1 2 3
-0.2148 0.8872
orth ortogonalna matrica C (C’*C=1) C=orth(A) -0.5206 0.2496
-0.8263 -0.3879
-2 -1 0
\ leva (B*X=A) X=B \ A 0 0 0
rešavanje matrične 3 3 3
rešavanje linearnih jednačina
17
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
A=L*U
»[L,U] = lu(A)
L=
0.1429 1.0000 0
0.5714 0.5000 1.0000
1.0000 0 0
U=
7.0000 8.0000 9.0000
0 0.8571 1.7143
0 0 0
L*U=P*A
»[L,U,P] = lu(A)
L=
1.0000 0 0
0.1429 1.0000 0
0.5714 0.5000 1.0000
U=
7.0000 8.0000 9.0000
0 0.8571 1.7143
0 0 0
P=
0 0 1
1 0 0
0 1 0
»help elmat
18
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
razlike
diff susednih
- višeg (n) reda diff(A,2) isto kao
elemenata 0 0 0
diff(diff(A))
kolone
- broj tačaka jednak broju
vrsta matrice A 6.0000
diskretna X=[1 2 3];
-1.5000 + 0.8660i
transformacije
-u n tačaka: fft(X)
Furijeova -1.5000 - 0.8660i
Furijeove
19
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
funkcija hist
»hist(A)
»hist(A,5)
»help datafun
20
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
a = [3 -5 0 2] b = [-10 0 1]
s − p1 s − p 2 s − pn 1.0000
-0.5486
- 10 * s 2 + 1 − 12,0881 9 − 0,2452
= + + +0
3 * s - 5 * s + 2 s − 1,2153 s − 1 s + 0,5486
3 2 k=
0
izračunava vrednost polinoma u zadatoj tački s a = [3 -5 0 2];
p=
p=3*s3 - 5*s2 + 2
6
za s=2 ⇒ p=6 p=polyval(a,2)
polyval
p=
za s=2, 4, 6 ⇒ p = 6, 114, 470 p=polyval(a,[2 4 6])
6 114 470
21
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
»help polyfun
22
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
23
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
»help funfun
24
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
1.8.1. 2D grafika
Za crtanje dvodimenzionalnoh grafika na raspolaganju je više tipova elementarnih i specijalnih
vrsta grafika:
Funkcija Opis
plot grafik sa linearnom podelom osa
loglog grafik sa logaritamskom podelom osa
Elementarni
Pri izradi grafika u MATLAB-u na raspolaganju su sledeći simboli i boje linija i znakova:
Simboli Boja
puna linija: - Slovna oznaka RGB vrednost
isprekidana linija: -- plava b [0 0 1]
linija
kvadrat: s
romb d
zvezde p, h
trouglovi ^, v, <, >
bez znaka none
25
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
U slučaju ne zadavanja boje i simbola, MATLAB automatski dodeljuje plavu boju i punu linija
bez oznaka tačaka. Za više linija na jednom grafiku automatski redosled boja je kao u tabeli.
NAPOMENA: U RGB sistemu zadavanja boja, svaka boja se dobija kao kombinacija nijansi crvene,
zelene i plave boje. Svakoj boji se dodeljuje broj između 0 i 1 čime se menja njena nijansa. Na primer:
Plot(A, ’znak linija boja’) – crta kolone matrice A u funkciji njenih indeksa (u slučaju kompleksnih
vrednosti elemenata matrice A crta realni deo u funkciji imaginarnog dela)
Plot(y, ’znak linija boja’) – crta vektor y u funkciji njegovih indeksa (u slučaju kompleksnih vrednosti
elemenata matrice y crta realni deo u funkciji imaginarnog dela)
x=[ 1 3 8]
y=[ 1 5 4]
A=[ 1 2 3; 4 5 6; 7 8 9]
prikazaćemo opcije funkcije Plot:
26
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 1 2 3 4 5 6 7 8
5 5
4.5 4.5
4 4
3.5 3.5
3 3
2.5 2.5
2 2
1.5 1.5
1 1
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 1 2 3 4 5 6 7 8
Takođe je moguće:
- crtanje više različitih krivih na jednom - dodavanje krivih na već postojeći dijagram
dijagramu
»plot(x,y,'gx-.',x,A,'*-') »line(x,y, 'color',[1 0 1], 'linewidth',2)
9 9
8 8
7 7
6 6
5
5
4
4
3
3
2
2
1
1 1.5 2 2.5 3 3.5 4 4.5 5
1
1 2 3 4 5 6 7 8
27
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Sve napred navedene opcije se mogu primeniti i na ostale elementarne i specijalne tipove 2D
grafika. To ćemo prikazati na par sledećih primera:
» semilogy(x,y, '*c-.') » pie (x)
8%
25%
67%
0
0
1 2 3 4 5 6 7 8
Sa prethodnih dijagrama se vidi da MATLAB vrši automatsku podelu osa prema vrednostima
unetih podataka. Funkcije prikazane u sledećoj tabeli omogućavaju kontrolu osnih linija (maksimum,
minimum..) i teksta koji se upisuje na grafiku(ispis oznaka osa, naslov, legenda... ):
Funkcija Opis
figure grafički prozor
axis [xmin xmax ymin ymax] zadavanje granica (minimum, maksimum) x i y ose
Kontrola osa
Svakom grafičkom prozoru, u kome je nacrtan grafik dodeljuje se ime (figure (n)), gde je n redni
broj grafika. Prikaz određenog grafičkog prozora dobija se pozivanjem:
» figure (n)
U slučaju ne zadavanja imena MATLAB automatski svakom grafičkom prozoru dodeljuje ime
figure (1), figure (2),..., figure (n).
Pri unošenju teksta u grafički prozor MATLAB pruža velike mogućnisti pozicioniranja teksta kao
i ispisa raznih simbola. U sledećem primeru prikazane su neke od mogućnosti:
28
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
29
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
wt=[0:pi/20:2*pi]; wt=[0:pi/10:10*pi];
u1=sin(wt); i1=exp(-10.*wt/314).*cos(wt);
u2=sin(wt-2*pi/3); i2=exp(-10.*wt/314);
u3=sin(wt+2*pi/3); i3=-exp(-10.*wt/314);
plot(wt,u1,'y',wt,u2,'g',wt,u3,'r') plot(wt,i1,'c-',wt,i2,'b-.',wt,i3,'b-.')
legend('u1','u2','u3',-1) axis square
xlabel('\omegat(rad)','fontsize', 16,'fontname', 'arial', xlabel('\omegat(rad)','fontsize', 16)
'fontangle','italic') ylabel('i(A)','fontsize', 16)
ylabel('u(V)','fontsize', 16,'fontname', 'arial', 'fontangle','italic') text(10,.8,'i1={e}^{-
title('TROFAZNI SISTEM SIMETRICNIH \omegat/314).*cos(\omegat)}','fontsize', 14)
NAPONA','fontsize', 18)
grid on
i1=e-ωt/314).*cos(ωt)
u2 0.8
0.8 u3
0.6
0.6
0.4 0.4
0.2 0.2
i(A)
u(V)
0 0
-0.2 -0.2
-0.4 -0.4
-0.6 -0.6
-0.8 -0.8
-1
0 1 2 3 4 5 6 7 -1
0 5 10 15 20 25 30 35
ω t(rad) ω t(rad)
1.8.2. 3D grafika
MATLAB pruža širok opseg mogućnosti za trodimenzionalno prikazivanje podataka. Podaci
mogu biti prikazani u obliku linija ili trodimenzionalnih površi. Trodimenzionalne površine se definišu
kao povezivanje susednih tačaka z-koordinate pravim linijama iznad mreže u x-y ravni. Osnovni tipovi
3D grafika su:
Funkcija Opis
plot3 linije i tačke u 3D prostoru
mesh 3D mrežasta površ(samo su prikazane u boji linije koje povezuju tačke)
Elementarni
3D grafici
30
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
x=[ 1 3 8]
y=[ 1 5 4]
A=[ 1 2 3; 4 5 6; 7 8 9]
» mesh(x,y,A) » surf(x,y,A)
10
10
8
8
6
6
4 4
2 2
0 0
5 5
4 8 4 8
7 7
3 6 3 6
5 5
4 4
2 3 2 3
2 2
1 1 1 1
10 10
8 8
6 6
4 4
2 2
0 0
5 5
4 8 4 8
7 7
3 6 3 6
5 5
4 4
2 3 2 3
2 2
1 1 1 1
Sa prethodnih grafika se vidi da MATLAB i 3D graficima automatski dodeljuje boje, ako one nisu
prethodno definisane. Boje se definišu u obliku matrice(u RGB sistemu zadavanja boja) i zadaju
funkcijom:
»colormap([R G B])
broj vrsta matrice može biti od 1(jednobojna površina), pa do broja vrsta matrice A koju treba nacrtati.
31
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Takođe, mogu se iskoristiti već postojeće matrice boja koje postoje u MATLAB-u:
U slučaju crtanja funkcije dve promenljive Z=f(X,Y) poterebno je generisati matrice X iY, tako da
su vrste matrice X kopije vektora x, a kolone matrice Y kopije vektora y:
» [X,Y]=meshgrid(-2:1:2)
X= Y=
-2 -1 0 1 2 -2 -2 -2 -2 -2
-2 -1 0 1 2 -1 -1 -1 -1 -1
-2 -1 0 1 2 0 0 0 0 0
-2 -1 0 1 2 1 1 1 1 1
-2 -1 0 1 2 2 2 2 2 2
32
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
»view(45,60) »view([-100,-100,0])
Rotiranje grafika se može postići i komandom rotate3d on. Tada se pomoću miša moše izvršiti
rotiranje grafika u željeni položaj.
33
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Funkcije koje se koriste za kontrolu osnih linija i teksta kod 2D-grafika mogu se primeniti i na
3D-grafike.
Na primerima funkcija MATLAB-a za dobijanje cilindra i sfere prikazaćemo neke od funkcija:
sphere(25) t = 0:.5:6;
colormap([winter]) [X,Y,Z] = cylinder(2+2*t);
xlabel('X-osa'),ylabel('Y-osa'),zlabel('Z-osa') surf(X,Y,Z)
title('SFERA','fontsize', 18) text(5,0,0,'Cilindar definisan funkcijom 2+2*t')
xlabel('X-osa'),ylabel('Y-osa'),zlabel('Z-osa')
rotate3d on
34
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Naredba Opis
if uslovno izvršavanje naredba
else pripada bloku IF
elseif pripada bloku IF
end Kraj izvršavanje naredba FOR, WHILE, SWITCH, TRY i IF
for ponavljanje izvršavanje naredbe zadani broj puta (FOR petlja)
while ponavljanje izvršavanje naredbe dok se neispuni zadani uslov(WHILE petlja)
break prekida izvršavanje WHILE ili FOR petlje
continue prelazak na sledeću iteraciju WHILE ili FOR petlje
return povratak na pozivanu funkciju
error prikazuje poruku o postojanju greške i prekida izvršenje programa
Petlja for
Pri prvom izvršavanju petlje promenljiva i uzima vrednost start. U svakom sledećem izvršavanju
petlje promenljiva i se uvećava za korak(mora biti pozitivna celobrojna vrednost):
i=i + korak
35
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
generisanje vektora a:
»for i = 1 : 5;
a(i)=i;
end
»a
a=
1 2 3 4 5
generisanje matrice A:
»for i = 1:2:10
for j = 1:2
A(i,j) = 1/(i + j - 1);
end
end
»A
A=
1.0000 0.5000
0.5000 0.3333
0.3333 0.2500
0.2500 0.2000
0.2000 0.1667
0 0
0.1429 0.1250
0 0
0.1111 0.1000
Petlja while
Ova petlja omogućava da ponavljate blok naredbi programa sve dok je zadati logički izraz
zadovoljen. Logički izraz se dobija kao rezultat poređenja dva izraza:
Kao primer while petlje u MATLAB-u navešćemo nalaženje realne nula polinoma 3*s3 - 5*s2 + 2 u
okolini tačke -1:
»s=-1;
while 3*s^3 - 5*s^2 + 2 < 0
s=s+.00001;
end
»s
s=
-0.5486
36
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Naredba if ima za cilj da ispita ispunjenost nekog uslova(zadatog logičkim izrazom) i u zavisnosti
od rezultata ovog testiranja izabere za izvršavanje jednu od ponuđenih grupa naredbi programa.
Najjednostavniji oblik naredbe if je:
if (logički izraz)
...
(naredbe programa)
...
end
Ako je uslov zadat logičkim izrazom ispunjen izvršava se niz naredbi između if i end, a ako nije taj
niz se preskače.
Ako je i za slučaj kada uslov zadat logički izrazom nije ispunjen ponuđena grupa naredbi
programa, tada je oblik naredbe if:
if (logički izraz)
...
(naredbe programa 1)
...
else
...
(naredbe programa 2)
...
end
Treća oblik naredbe if je sa više zadatih logičkih izraza. Pri tome se izvršava prva ponuđena grupa
naredbi programa za koju je logički izraz zadovoljen:
if (logički izraz 1)
...
(naredbe programa 1)
...
elseif (logički izraz 2)
...
(naredbe programa 2)
...
elseif (logički izraz 3)
...
(naredbe programa 3)
...
end
37
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Funkcija Opis
Run Izvršavanja tekuće datoteke
Debug
Pri pokretanju program u modu za nalaženje i otklanjanje greški, tačke prekidanja programa
dodajemo tako što izaberemo opciju Set/clear breakpoints iz padajućeg menija Breakpints i
pozicioniramo kursor na početak željene programske linije. Tačka prekida je označena simbolom •, kao
što je prikazano na slici. Pokretanje programa (opcija Debug/Run), program se izvršava do prve tačke
prekida. Linija u kojoj je prekinuto izvršavanje programa označena je simbolom ¨. Opcijom Continue
se nastavlja izvršavanje programa do sledeće tačke prekida.
38
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
2. Uvod u SIMULINK
SIMULINK je interaktivno okruženje za modelovanje, analizu i simulaciju različitih dinamičkih
sistema. Model dinamičkog sistema predstavlja se blok dijagramom. Svi blokovi su smešteni u bazi
standardnih elemenata i vrlo jednostavno se povezuju u postojeći model sistema.
Simulacioni algoritam i njegovi parametri se mogu menjati u toku izvršavanja simulacije. Ovo je
veoma pogodno za proučavanje nelinearnih efekata na ponašanje sistema, što omogućava veliku primenu
SIMULINK-a u naučnim istraživanjima. Glavne karakteristike SIMULINK-a su:
SIMULINK bazu elemenata (blokova), odnosno njen pretraživač možemo pokrenuti na dva načina:
- pomoću ikone SIMULINK u MATLAB paleti alata (toolbar-u)
- iz komandne linije MATLAB-a, upisivanjem u komandni prozor:
» simulink
39
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
- Simulink
- Fixid-Point Blockset
- S-function demos
- Simulink Extras
Svaka od ovih grupa ima sopstveni padajući meni sa elementima razvrstanim u više kategorija.
Baza elemenata se može i proširiti sa posebnim(namenskim) grupama. Primer je grupa Fixid-Point
Blockset za simulaciju digitalnih kontrolnih sistema i digitalnih filtera.
40
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Blok Blok
Elementi grupe S-function demos sadrže primere generisane MATLAB, Fortran ili C
programskim kodom.
41
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
f '(t) s⋅F(s)-f(0)
43
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
44
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
U toku izvršavanja simulacije nije moguće menjati strukturu modela dodavanjem blokova ili
signalnih linija. Da bi se promenila struktura modela mora se prekinuti izvršavanje sumilacije.
Primer 1.
U ovom primeru je prikazan model koji vrši prevođenje Celzijusove temperatuske skale u
Farenhajtovu u opsegu od 0 do 100oC:
9
TF = TC + 32
5
- Slope(nagib krive) = 1
- Start time(početno vreme) = 0
- Initial output(početna vrednost) = 0
Za multiplikator:
- Gain(množilac) = 9/5
Za konstantu:
- Constant value(vrednost konstante) = 32
Za sumator:
- List of signs(sabiranje dve vrednosti) = ++
45
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
46
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Primer 2.
U primeru je prikazano redno RLC kolo, gde je R=1,4 Ω, L=2 H i C=0,32 F . Početne vrednosti(u
trenutku zatvaranja prekidača), struje u kolu i napona na kondenzatora, su jednake nuli. Vrednost napona
izvora je konstantna i iznosi 1V. Potrebno je odrediti struju u kolu i napona na kondenzatoru u
vremenskom intervalu 0 < t < 15 sekundi od trenutka zatvaranja prekidača.
R L
+
i(t)
Vs + C
- uc(t)
di
Ri + L + u c = Vs
dt
du c
i=C
dt
Zamenom:
x1 = uc
x2 = i
• 1
x1 = x2
C
• 1
x2 = (Vs − x1 − R x 2 )
L
Kompleksni lik prethodnih jednačina, za slučaj u kome su početne vrednosti promenljivih nula je:
1
s x1 = x2
C
1
s x2 = (Vs − x1 − R x 2 )
L
47
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
48
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Primena izlaznog bloka To Workspace omogućava prenos izlaznih podataka SIMULINK modela
u radni prostor MATLAB-a. Izlazni signal SIMULINK aplikacije predstavljen je u obliku vektora kolone
u radnom prostoru MATLAB-a. Na primeru sistema definisanog funkcijom povratnog prenosa:
C (s) 25
= 2
R( s ) s + 2 s + 25
pokazana je ova mogućnost. Ulaznu signal r(t) je jedinična odskočna funkcija. SIMULINK blok dijagram
ovog sistema je prikazan na slici:
Modelu ćemo dodeliti ime primer3.mdl. Izlazna promenljiva c i promenljiva t, dobijana pomoću
vremenskog bloka, smeštene su u radni prostor MATLAB-a:
49
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
c= t=
0 0
0.7417 1.2105
0.9856 3.6903
0.9996 6.6903
1.0001 9.6903
1.0000 12.6903
. .
. .
. .
50
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
•
x(t ) = A x(t ) + B u (t )
y (t ) = C x(t ) + D u (t )
gde su:
x - vektor stanja
u - ulazni vektor
y - izlazni vektor
»[A, B, C , D]=linmod('primer4')
51
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
A= B=
0 0 20 0 0
1 -10 -56 1 1
0 1 0 0 0
1 0 0 -1 1
C= D=
1 0 0 0 0
• 0 0 20 0 x 1 0
x• 1
x 2 1 − 10 − 56 1 x 2 1
• = 0 1 + [u ]
x3 0 0 x 3 0
x• 1 0 0 − 1 1
4 x4
x1
[ y ] = [1 0 0 0] x 2 + [0][u ]
x3
x 4
brojilac =
0 0 0 20 40
imenilac =
1 11 66 36 -40
20 s + 40
Ws ( s ) =
s + 11s + 66 s 2 + 36 s − 40
4 3
52
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
x'=Ax+Bu
y=Cx+Du
•
x• 1 0 1 0 x 1 0
x2 = 0 0 1 x 2 + 0 [u ]
•
x 3 − 5 − 4 − 2 x 3 0
x1
[ y ] = [1 0 0] x 2 + [0][u ]
x3
i ulaznu signal oblika odskočna funkcija u(t)=5 ,SIMULINK dijagram ima i sledeći oblik:
53
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
»A=[0 1 0 ; 0 0 1 ; -5 -4 -2];
»B=[0 ; 0 ; 5];
»C=[1 0 0];
»D=[0];
54
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Svi selektovani blokovi zamenjuju se jednim blokom, pri čemu svi ulazni i izlazni signali ostaju
isti kao u izvornom sistemu.
Kreiranje podsistema prikazano je na SIMULINK modelu primer2.mdl.
Posle kreiranja podistema zamenom selektovanih blokova novim blokom SIMULINK model
dobija izgled:
55
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
Dvoklikom na blok podsistema dobija se blok dijagram blokova unutar podsistema. Sve promene
blok dijagrama podsistema se automatski prenose i u izvorni sistem.
Izborom opcije Edit/Mask subsystem...(ili Edit/ Edit mask... ) zadaje se izgled ikone
podsistema, opis prenosne funkcije podsistema, ime ulaznih i izlaznih parametara podsistema... Napred
navedene opcije prikazane su u SIMULINK modelu primer6.mdl.
56
Akreditovani program: Nova tehnička rešenja i trendovi u izvođenju nastave iz grupe predmeta elektotehničke struke
Tema 6: Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih primera u nastavi elektrotehničke grupe predmeta
3. Literatura
[1] L. L. Grigsby, “The Electric Power Engineering Handbook”, CRC Press, 2001.
[2] J. D. Glover and M. S. Sarma, “Power System Analysis and Design”, Third Edition,
Brooks/Cole, 2002.
[4] * * * “User’s Manual for Matlab”, MathWorks, Natick, MA, USA, 2003.
[5] * * * “User’s Manual for Simulink”, MathWorks, Natick, MA, USA, 2003.
57