You are on page 1of 57

TEMA 6:

Razvoj korisničkih aplikacija za rešavanje jednostavnih edukativnih


primera u nastavi elektrotehničke grupe predmeta

SADRŽAJ

1. Uvod u MATLAB ........................................................................................................................ 2


1.1. Komande za rukovanje MATLAB-om .................................................................................. 2
1.2. Unos podataka u MATLAB................................................................................................... 6
1.2.1. Direktno unošenje elemenata u komandni prozor........................................................... 6
1.2.2. Generisanje matrica korišćenjem ugrađenih funkcija u MATLAB-u............................. 9
1.2.3. Pravljenje matrica pomoću sopstvenih funkcija u M-datotekama ................................ 10
1.2.4. Učitavanje matrica iz spoljašnjih datoteka.................................................................... 11
1.3. Matematički izrazi ............................................................................................................... 12
1.3.1. Promenljive ................................................................................................................... 12
1.3.2. Brojevi ........................................................................................................................... 12
1.3.3. Operatori i specijalni znaci............................................................................................ 13
1.3.4. Funkcije......................................................................................................................... 14
1.4. Matrične funkcije – numerička linearna algebra ................................................................. 17
1.5. Analiza podataka i Furijeove transformacije ....................................................................... 19
1.6. Polinomi i interpolacione funkcije....................................................................................... 21
1.7. Funkcije funkcija ................................................................................................................. 23
1.8. Grafičko prikazivanje u MATLAB-u .................................................................................. 25
1.8.1. 2D grafika...................................................................................................................... 25
1.8.2. 3D grafika...................................................................................................................... 30
1.9. Programiranje u MATLAB-u .............................................................................................. 35
1.9.1.Ciklusi ili petlje .............................................................................................................. 35
1.9.2. Nalaženje i otklanjanje greški ....................................................................................... 38
2. Uvod u SIMULINK.................................................................................................................... 39
2.1. Pokretanje SIMULINK-a..................................................................................................... 39
2.2. SIMULINK baza elemenata ................................................................................................ 40
2.3. SIMULINK model - blok dijagram ..................................................................................... 42
2.3.1. Manipulacija blokovima................................................................................................ 42
2.3.2. Manipulacija signalnim linijama................................................................................... 43
2.3.3. Manipulacija tekstualnim oznakama............................................................................. 43
2.4. Kontrola izvršavanja simulacije........................................................................................... 44
2.4.1. Pokretanje simulacije .................................................................................................... 44
2.4.2. Interaktivni rad sa pokrenutom simulacijom................................................................. 45
2.5. Povezivanje SIMULINK modela i MATLAB radnog prostora .......................................... 49
2.6. Model u prostoru stanja SIMULINK dijagrama.................................................................. 51
2.7. SIMULINK dijagram modela u prostoru stanja .................................................................. 53
2.8. Kreiranje sopstvenih elemenata i podsistema...................................................................... 55
3. Literatura..................................................................................................................................... 57
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. 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.

1.1. Komande za rukovanje MATLAB-om


Pri pokretanju MATLAB-a, pojavljuje se Windows prozor kao na slici (komandni prozor). U
njemu je omogućena komunikacija sa MATLAB programskim prevodiocem.

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

Opcija Clear Command Window briše sadržaj komandnog prozora MATALAB-a.


Opcija Clear Command History briše sadržaj prozora Command History.
Opcija Clear Workspace briše sadržaj radnog prostora.

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

Opcija Command Window daje prikaz komandnog prozora MATALAB-a.


Opcija Command History prikazuje sve prethodno naredbe iz komandnog prozora, kao i vreme
pozivanja.
Opcija Current Directory prikazuje trenutno otvoreni folder.
Opcija Launch Pad omogućava brzi pristup demo programima, help fajlovima i alatima.
Opcija Workspace prikazuje ime, matričnu dimenziju, veličinu u bajtima i klasu korišćenih promenljivih.
Profiler je grafički interfejs koji pokazuje vreme izvršavanja svake proramske linije M-fajla, kao i
mogućnosti optimizacije tog vremena.

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:

matlab\general - General purpose commands.


matlab\ops - Operators and special characters.
matlab\lang - Programming language constructs.
matlab\elmat - Elementary matrices and matrix manipulation.
matlab\elfun - Elementary math functions.
matlab\specfun - Specialized math functions.
matlab\matfun - Matrix functions - numerical linear algebra.
matlab\datafun - Data analysis and Fourier transforms.
matlab\audio - Audio support.
matlab\polyfun - Interpolation and polynomials.
matlab\funfun - Function functions and ODE solvers.
matlab\sparfun - Sparse matrices.
matlab\graph2d - Two dimensional graphs.
matlab\graph3d - Three dimensional graphs.
matlab\specgraph - Specialized graphs.
matlab\graphics - Handle Graphics.
matlab\uitools - Graphical user interface tools.
matlab\strfun - Character strings.
matlab\iofun - File input/output.
matlab\timefun - Time and dates.
matlab\datatypes - Data types and structures.
matlab\verctrl - Version control.
matlab\winfun - Windows Operating System Interface Files (DDE/COM)
winfun\comcli - (No table of contents file)
matlab\demos - Examples and demonstrations.
toolbox\local - Preferences.
simulink\simulink - Simulink
simulink\blocks - Simulink block library.
simulink\components - Simulink components.
simulink\fixedandfloat - (No table of contents file)
fixedandfloat\fxpdemos - Fixed-Point Blockset Demos
fixedandfloat\obsolete - Obsolete Fixed-Point Blockset
simulink\simdemos - Simulink 4 demonstrations and samples.
simdemos\aerospace - Simulink: Aerospace model demonstrations and samples.
simdemos\automotive - Simulink: Automotive model demonstrations and samples.
simdemos\simfeatures - Simulink: Feature demonstrations and samples.
simdemos\simgeneral - Simulink: General model demonstrations and samples.
simdemos\simnew - Simulink: New features model demonstrations and samples.
simulink\dee - Differential Equation Editor

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

1.2. Unos podataka u MATLAB


Osnovni element za unošenje podataka u MATLAB je matrica. U MATLAB-u je matrica
pravougaoni niz brojeva. Specijalno slučajevi su matrice dimenzija 1x1, koje se nazivaju skalari, i
matrice sa samo jednom vrstom ili kolonom, koje se nazivaju vektori.
Matrice se mogu uneti u MATLAB na više različitih načina:

- Direktnim unošenje elemenata u komandni prozor


- Generisanje matrica korišćenjem ugrađenih funkcija u MATLAB-u
- Pravljenje matrica pomoću sopstvenih funkcija u M-datotekama
- Učitavanje matrica iz spoljašnjih datoteka

1.2.1. Direktno unošenje elemenata u komandni prozor


Pri unošenju matrice kao liste elemenata, elementi vrste razdvajaju se blanko znacima ili zarezima,
kraj vrste označava se znakom ; (tačka i zarez). Matrica se ograničava uglastim zagradama [ ].

Kao primer data je kvadratne matrice A dimenzija 3x3 (tri vrste i tri kolone):

1 2 3
A=4 5 6
7 8 9

Upisivanjem u komandni prozor:

» A=[1 2 3 ; 4 5 6 ; 7 , 8 , 9]

MATLAB će matricu koju ste uneli prikazati u sledećem obliku:

A =
1 2 3
4 5 6
7 8 9

Do istog se rezultata dolazi i upisivanjem u komandni prozor:

» 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:

Taster, Kombinacija tastera Funkcija


↑, Ctrl + P Pozivanje prethodne linije
↓, Ctrl + N Pozivanje naredne linije
→, Ctrl + B Pomeranje kursora u levo za jedan znak
←, Ctrl + F Pomeranje kursora u desno za jedan znak
Ctrl + ← Pomeranje kursora u levo za jednu reč
Ctrl + → Pomeranje kursora u desno za jednu reč
Home, Ctrl + A Pomeranje kursora na početak linije
End, Ctrl + E Pomeranje kursora na kraj linije
Esc Brisanje komandne linije
Del, Ctrl + D Brisanje znaka desno od kursora
Beckspace Brisanje znaka levo od kursora
Ctrl + K Brisanja sadržaja linije desno od kursora
Ctrl + Home Pomeranje kursora na početak komandnog prozora
Ctrl + End Pomeranje kursora na kraj komandnog prozora

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

kao rezultat daje vektor:

ans =
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000

Ako upišete sledeći izraz:

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

rezultat koji se dobija je:

ans =
8

Izdvajanje cele kolone, odnosno cele vrste, matrice A se vrši komandom:

» A(: , 1)

dobijaju se elementi prve kolone:

ans =
1
4
7
» A(2 , :)

dobijaju se elementi druge vrste:


ans =
4 5 6

Brisanje elemenata prve kolone:


» A (: , 1)=[]

A=
2 3
5 6
8 9

Brisanje elemenata druge vrste:


» A(2 , :)=[]

A=
1 2 3
7 8 9

Elementi matrice mogu se definisati algebarskim izrazima koji se nalaze na mestima pripadajućih
elemenata.
Izraz:

»B = [ cos(pi) 3*5 8/2 6-3]

kao rezultat daje matricu:

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

1.2.2. Generisanje matrica korišćenjem ugrađenih funkcija u MATLAB-u


MATLAB ima više funkcije koje generišu osnovne matrice:

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

Opcije funkcije eye:


eye(n) - Jedinična matrica dimenzija n x n
eye(m,n) - Jedinična matrica dimenzija m x n
eye(size(A)) - Jedinična matrica dimenzija matrice A

Opcije funkcije linspace:


linespace(x1,x2) - Vektor sa linearnom podelom od 100 elemenata u intervalu x1 do x2
linespace(x1,x2,n) - Vektor sa linearnom podelom od n elemenata u intervalu x1 do x2

Opcije funkcije logspace:


logspace(x1,x2) - Vektor sa logaritamskom podelom od 50 elemenata u intervalu 10x1 do 10x2
logspace(x1,x2,n) - Vektor sa logaritamskom podelom od n elemenata u intervalu 10x1 do 10x2

Opcije funkcije meshgrid:


[X,Y]=meshgrid(x1:x2) – Formira kvadratne matrice, tako da su vrste matrice X vektori (x1:x2), a kolone
matrice Y vektori (x1:x2), sa korakom 1
[X,Y]=meshgrid(x1:n:x2) – Formira kvadratne matrice, tako da su vrste matrice X vektori (x1:x2), a
kolone matrice Y vektori (x1:x2), sa korakom n

Opcije funkcije ones:


ones(n) - Svi elementi matrice dimenzija n x n jedinice
ones(m,n) - Svi elementi matrice dimenzija m x n jedinice
ones(size(A)) - Svi elementi matrice dimenzija matrice A jedinice

Opcije funkcije rand:


rand(n) - Matrica čiji su elementi slučajni brojevi dimenzija n x n
rand(m,n) - Matrica čiji su elementi slučajni brojevi dimenzija m x n
rand(size(A)) - Matrica čiji su elementi slučajni brojevi dimenzija matrice A

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

Opcije funkcije zeros:


zeros(n) - Svi elementi matrice dimenzija n x n nule
zeros(m,n) - Svi elementi matrice dimenzija m x n nule
zeros(size(A)) - Svi elementi matrice dimenzija matrice A nule

1.2.3. Pravljenje matrica pomoću sopstvenih funkcija u M-datotekama


Za kreiranje matrica mogu se koristiti M-datoteke (tekstualne datoteke sa ekstenzijom .m).
Formiranje M-datoteke se vrši u prozoru za editovanje(uređivanje) MATLAB-a. Prozor za editovanje se
dobija iz padajućeg menija komandnog prozora File/New/M-file.

Postoje dve vrste M-datoteka:


- komandne, koje predstavljaju niz komandi i izraza koje se izvršavaju kada se datoteka pozove
- funkcijske, koje omogućavaju stvaranje novih funkcija i moraju u prvoj liniji da sadrže izraz sledećeg
oblika:

function [y1,y2,y3,...] = imefunkcije [x1,x2,x3,...]

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:

B=[1 2 3 4,5 6 7 8,9 10 11 12, 13 14 15 16]

i dodeliti joj ime matricaB.m.

Pozivanjem iz komandnog prozora:

» matricaB

kao rezultat se dobija kvadratna matrica:

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

Kreiranje funkcijske M-datoteke pokazaćemo na primeru stepene funkcije:

y = 3* x3 − 5 * x2 + 2

M-datoteka u koju se upisuje kod za izračunavanje ovo stepene funkcije ima sledeći sadržaj:

function y=stepfun (x)


y=3*x.^3 - 5*x.^2 + 2

i dodeliti joj ime stepenafunkcija.m.

Pozivanjem iz komandnog prozora:

» stepenafunkcija(2)
kao rezultat se dobija vrednost funkcije za x = 2:

y=
6

1.2.4. Učitavanje matrica iz spoljašnjih datoteka


Komanda load učitava tekstualne datoteke koje sadrže numeričke podatke. Tekstualna datoteka
mora imati podatke složene tabelarno, sa po jednom vrstom u redu i sa istim brojem elemenata u svakoj
vrsti. Kao primer, upisaćemo tekstualnu datoteku u editoru teksta, koja sadrži sledeća četiri reda:

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

i sačuvajte datoteku pod imenom matrica.dat. Pozivanjem iz komandnog prozora:

» 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. Matematički izrazi


Kao i većina drugih programskih jezika, MATLAB obezbeđuje matematičke izraze. U MATLAB-u
ovi izrazi odnose se na kompletne matrice. Izrazi se sastoje od:
- promenljivih
- brojeva
- operatora
- funkcija

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

Na primeru proizvoda 100*π prikazaćemo različite formate koje podržava MATLAB:

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

1.3.3. Operatori i specijalni znaci


Podaci se unose u MATLAB kao matrice. Pri izračunavanjima ovi podaci se mogu tretirati kao
matrice ili kao polja brojeva. U zavisnosti od ulaznih podataka MATLAB koristi dve vrste operatora:
matrične i operatore nad poljem brojeva.
Za matrične operatore važe pravila linearne algebre, a za operatore nad poljem brojeva
primenjuje se princip ”element sa elementom”.

Operatori i znaci Opis


+ Sabiranje (isto i za matrice i za polje brojeva)
- Oduzimanje (isto i za matrice i za polje brojeva)
* Množenje matrica
.* Množenje polja brojeva
/ Deljenje matrica s leva (A/B=A*B-1)
./ Deljenje polja brojeva s leva
\ Deljenje matrica s desna (A/B= B-1*A)
.\ Deljenje polja brojeva s desna
^ Stepenovanje matrica
.^ Stepenovanje polja brojeva
‘ Transponovanje matrica i polja brojeva
kron Kronekerov proizvod
() Zadavanje redosleda izvršavanja
[] Zadavanje vektora i matrica
; Kraj vrste matrice ili iskaza čiji se rezultat ne prikazuje
... Upisivanju izraza u više linija
% Početak linije komentara
= Dodeljivanje vrednosti
>, <, > =, < =, = =,- = Logički operatori
& LogičkoI
| Logičko ILI
- Logičko NE
xor Logičko ekskluzivno ILI

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

Matrična Operacija nad


Rezultat Rezultat
Operacija poljem brojeva
6 11 14 1 2 3
A *B 15 26 32 A .*B 4 10 12
24 41 50 7 16 27
0 0 1 1.0000 2.0000 3.0000
A /B 3 0 1 A ./B 4.0000 2.5000 3.0000
6 0 1 7.0000 4.0000 3.0000
1.0e+015 *
1.0000 0.5000 0.3333
-0.0000 4.5036 -0.0000
A \B A .\B 0.2500 0.4000 0.3333
0.0000 -9.0072 0.0000
0.1429 0.2500 0.3333
-0.0000 4.5036 0
30 36 42 1 4 9
A ^2 66 81 96 A .^2 16 25 36
102 126 150 49 64 81
1 4 7 1 4 7
A’ 2 5 8 A .’ 2 5 8
3 6 9 3 6 9

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.

Elementarne matematičke funkcije razvrstane su u četiri grupe:


- trigonometrijske funkcije
- eksponencijalne funkcije
- kompleksne funkcije
- zaokruživanje i ostatak

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

Primeri nekih najčešće korišćenih elementarnih funkcija dati su u tabeli:

Funkcija Opis Primer Rezultat


sin sinus sin(pi/2) 1
sinh sinus hiperbolički sinh(0) 0
trigonometrijske

asin arkus sinus asin(1) 1.5708


asinh arkus sinus hiperbolički asinh(0) 0
cos kosinus cos(pi/2) 0
tan tangens tan(pi/4) 1
cot kotangens cot(1) 0.6421
exp stepen broja e (ex) exp(1) 2.7183
eksponencijalne

log prirodni logaritam log(0 + 1.0000i) 0 + 1.5708i


log10 logaritam sa osnovom 10 log(100) 10
sqrt kvadratni koren sqrt(-16) 0 + 4.0000i
realsqrt kvadratni koren pozitivnih brojeva sqrt(16) 4
reallog prirodni logaritam realnih brojeva log(2.7183) 0.6931
abs moduo kompleksnog broja abs(1+3i) 3.1623
kompleksne

angle fazni ugao kompleksnog broja angle(2+2i) 0.7854


conj konjugovano komleksna vrenost conj(5+3i) 5.0000 - 3.0000i
real realni deo kompleksnog broja real(5+3i) 5
imag imaginarni deo kompleksnog broja imag(5+3i 3
zaokruživanje na prvi celobrojni realni fix(5.2+3.8i) 5.0000 + 3.0000i
fix
i imaginarni deo broja bliži nuli fix(-5.2-3.8i) -5.0000 - 3.0000i
zaokruživanje i

zaokruživanje na prvi manji celobrojni floor (5.2+3.8i) 5.0000 + 3.0000i


floor
ostatak

realni i imaginarni deo broja floor (-5.2-3.8i) -6.0000 - 4.0000i


zaokruživanje na prvi veći celobrojni ceil (5.2+3.8i) 6.0000 + 4.0000i
ceil
realni i imaginarni deo broja ceil (-5.2-3.8i) -5.0000 - 3.0000i
zaokruživanje na prvi bliži celobrojni round(5.2+3.8i) 5.0000 + 4.0000i
round
realni i imaginarni deo broja round (-5.2-3.8i) -5.0000 - 4.0000i

Kompletna lista elementarnih matematičkih funkcija dobija se pozivanjem iz komandnog prozora:

»help elfun

Složene matematičke funkcije omogućavaju promenu MATLAB-a i za rešavanje složenijh


matematički problema. Razvrstane su u četiri grupe:
- specijalne matematičke funkcije
- funkcije teorije brojeva
- transformacija koordinata

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

Primeri nekih najčešće korišćenih složenih funkcija dati su u tabeli:


Funkcija Opis Primer Rezultat
x

∫e
−t 2
erf funkcija greške erf(x) = 2
π
dt erf(.5) 0.5205
0

integral eksponencijalne funkcije



specijalne funkcije

expint E ( x) = ∫ e - t /t dt expint(1) 0.2194


x

gamma gama funkcija Γ(x ) = ∫ e −t t x −1 dt gamma(2) 1


0

vektorski proizvod dva vektora


r r r r a = [1 2 3];
cros a =1i + 2 j + 3k b = [4 5 6]; -3 6 -3
r r r r
b = 4i + 5 j + 6 k cross(a,b)
dot skalarni proizvod dva vektora dot(a,b) 32
factor rastavljanje brojeva na proste faktore factor(30) 2 3 5
gcd najveći zajednički delilac gcd(50,30) 10
brojeva
teorija

lcm najmanji zajednički množilac lcm(50,30) 150


factorial faktorijel broja factorial(4) 24
primes lista prostih brojeva (do zadane vrednosti) primes(10) 2 3 5 7
pravougle u sferne koordinate [theta,phi,r]=cart2sph(1,1,1)
cart2sph
[theta,phi,r] = cart2sph(x,y,z) theta = 0.7854

sferne u pravougle koordinate


transformacija

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

pravougle u polarne koordinate rho = 1.4142


cart2pol
[theta,rho,z] = cart2pol(x,y,z)
z= 1

Kompletna lista složenih matematičkih funkcija dobija se pozivanjem:


»help specfun
MATLAB poseduje i specijalne funkcije koje daje vrednosti za određene konstante:
Funkcija Opis
pi 3.14159265
i, j Imaginarna jedinica, - 1
eps Decimalna relativna tačnost, 2-52 ≈ 2.22*10-16
realmin Najmanji decimalni broj, 2-1022 ≈ 12.2251*10-308
realmax Najveći decimalni broj, 21024 ≈ 1.7977*10308
Inf Beskonačno
NaN Nije-broj
Beskonačno Inf - dobija se deljenjem nenulte vrednosti sa nulom ili izračunavanjem matematičkog izraza
koji je vaći od realmax.
Nije-broj NaN - se dobija izračunavanja izraza koji nemaju definisane matematičke vrednosti ( 0/0 ili Inf-Inf).

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

1.4. Matrične funkcije – numerička linearna algebra


Za razliku od elementarnih i složenih matematičkih funkcija, koje se izvode nad svakim od
elemenata matrice, matrične funkcije linearne algebre se odnose na celu matricu (determinanta matrice,
rang matrice...). Matrične funkcije razvrstane su u pet grupa:
- analiza matrica
- rešavanje sistema linearnih jednačina
- sopstvene i singularne vrednosti
- matrične funkcije
- faktorizacija matrica

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

Funkcija Opis Primer Rezultat


rank rang matrice rank(A) 2
det determinanta det(A) 0
matrica
analiza

-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

jednačine deljenjem sa: 0 0 1


/ desna (X*B=A) X= A / B 3 0 1
6 0 1
2 -1 0
inv inverzna matrica inv(B) -1 2 -1
0 -1 1
LU faktorizacija –
-sa dva argumenta: [L,U] = lu(A)
određivanje faktora
Gausove
lu
eliminacije (L, U,
-sa tri argumenta: [L,U,P] = lu(A)
P):

poly koeficijenti karakterističnog polinoma poly(A) 1.0000 -15.0000 -18.0000 -0.0000


1.0e+006 *
1.1189 1.3748 1.6307
expm matrični eksponent expm(A)
matrične
funkcije

2.5339 3.1134 3.6929


3.9489 4.8520 5.7552
0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 - .3487i
sqrtm kvadratni koren matrice (A=X*X) X=sqrtm (A) 1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 - .0385i
1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + .2717i

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

Gausovom faktorizacijom sa dva argumenta rešava se matrična jednačina oblika:

A=L*U

po nepoznatim matricama L i U. Pri tom matrica U je gornja trougaona matrica:

»[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

Gausovom faktorizacijom sa tri argumenta rešava se matrična jednačina oblika:

L*U=P*A

gde je L donja trougaona matrica, a U gornja trougaona matrica:

»[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

Kompletna lista matričnih funkcija dobija se pozivanjem:

»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

1.5. Analiza podataka i Furijeove transformacije


MATLAB raspolaže nizom komandi za obavljanje jednostavnih statističkih izračunavanja. Pošto
se podaci unose u obliku matrica, svaka od promenljivih se unosi u zasebnoj koloni. Samim tim se i
statistička izračunavanja odnose na pojedine kolone.

Statističke funkcije razvrstane su u pet grupa:


- osnovne statističke operacije
- funkcije konačne razlike
- korelacione funkcije
- filtriranje i konvolucija
- Furijeove transformacije

Primeri nekih najčešće korišćenih statističkih funkcija dati su u tabeli:


Funkcija Opis Primer Rezultat
Daje maksimalnu vrednost svake
max max(A) 7 8 9
kolona posmatrane matrice
Daje minimalnu vrednost svake kolona
min min(A) 1 2 3
posmatrane matrice
Daje srednju kvadratnu vrednost
mean elemenata vrednost svake kolona mean(A) 4 5 6
posmatrane matrice
statističke operacije

Daje sumu elemenata vrednost svake


sum sum(A) 12 15 18
kolona posmatrane matrice
Daje proizvod elemenata vrednost
prod prod(A) 28 80 162
svake kolona posmatrane matrice
Daje standardnu devijaciju svake
std std(A) 3 3 3
kolona posmatrane matrice
1 2 3
Sortira vrednosti vrednost svake
sort sort(A) 4 5 6
kolona posmatrane matrice
7 8 9
Crta histogram elemenata svake kolona posmatrane matrice sa:
hist -deset podeoka između max i min hist(A)
-n podeoka između max i min hist(A,n)
aproksimacija 3 3 3
diff(A)
diferencijala -prvog reda 3 3 3
konačne
funkcije

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

ako je broj vrsta matrice A


transformacija
fft manji od n – dodaju se nulti
svake kolona
elementi
posmatrane
ako je broj vrsta matrice A X=[1 2 3]; 3 -1
matrice:
veći od n – odbacuju se fft(X,2)
prekobrojni elementi

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)

Kompletna lista statističkih funkcija dobija se pozivanjem:

»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

1.6. Polinomi i interpolacione funkcije


MATLAB pruža velike mogućnosti pri radu sa polinomima. Pri tome polinom se predstavlja kao
vektor(matrica kolona) čiji su elementi koeficijenti polinoma po opadajućem stepenu promenljive. Na
primeru polinoma:

3*s3 - 5*s2 + 2 i -10*s2 + 1

pokazaćemo prikaz polinoma u MATLAB-u:

a = [3 -5 0 2] b = [-10 0 1]

Najčešće korišćene funkcije za rad sa polinomima prikazane su u tabeli:


Funkcija Opis Primer Rezultat
1.2153
roots nule(koreni) polinoma roots(a) 1.0000
-0.5486
poly karakteristični polinom poly(a) 1 0 -19 30 0
razlaganje količnika polinoma u zbir parcijalnih r=
razlomaka: -12.0881
[r,p,k] = residue(b,a) 9.0000
b m s m + b m −1 s m −1 + ... + b0 -0.2452
=
a n s n + a n −1 s n −1 + ... + a 0
r1 r2 rn [r,p,k] = p=
residue + + ... + +k residue(b,a) 1.2153
polinomi

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

Za razliku od funkcija za rad sa polinoma, interpolacione funkcije omogućavaju da se za skup


vrednosti(pretstavljenih u obliku vektora) pronađe jednačina ili analitička funkcija koja ih aproksimira.
Najčešće korišćene funkcije za rad sa polinomima prikazane su u tabeli. Kao primer su dati podaci u
obliku vektora:

Zadate vredenosti Interpolirane vrednosti


x=[1 2 4 6 8 9] xi=[1,5 3 4.5 5 7,5 8]
y=[5 7 8 12 3 8] yi=?

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

Funkcija Opis Primer Rezultat


jednodimenzionalna interpolacija (linaerna):
yi=interp1(x,y,xi)
jednodimenzionalna interpolacija
yi=interp1(x,y,xi, ’metodinterpolacije’) x=[1 2 4 6 8 9]; yi=
’metodinterpolacije’- 'nearest' y=[5 7 8 12 3 8]; 5.0 10.0 7.5
interp1 xi=[1,5 3 4.5 5 7,5 8];
'linear' 9.0 10.0 7.5
interpolacione funkcije

'spline' yi=interp1(x,y,xi) 10.0


'pchip'
'cubic'
'v5cubic'
interp2 dvodimenzionalna interpolacija zi = interp2(x,y,z,xi,yi, ’metodinterpolacije’)
vi=interp3(x,y,z,v,xi,yi,zi,
interp3 trodimenzionalna interpolacija ’metodinterpolacije’)
određivanje koeficijenata polinoma (n-tog c=
stepena) kojim se aproksimiraju podaci: x=[1 2 4 6 8 9]; 0.0560
polyfit y=cn*xn + cn-1*xn-1 + ...+co y=[5 7 8 12 3 8];
-1.0774
c= polyfit(x,y,n) 6.5833
c= polyfit(x,y,4) -13.4707
y=0.0560*x4 -1.0774*x3 + 6.5833*x2 -13.4707*x
+13.6011 13.6011

Kompletna lista funkcija za izračunavanje polinoma i interpolaciju dobija se pozivanjem:

»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

1.7. Funkcije funkcija


U ovu grupu spadaju funkcije koje omogućavaju manipulaciju nad drugim već definisanim
funkcijama (maksimum-minimum funkcije, integraljenje-diferenciranje funkcije...). Ove funkcije su
podeljene na:

- optimizacija i nule funkcija


- optimizacija opcija za rukovanje programom
- numerička integracija
- jednostavno crtanje funkcija
- izrada funkcija ”u liniji” (INLINE)
- rešavanje diferencijalnih jednačina
- ulazne i izlazne funkcije

Primenu ovih funkcija pokazaćemo na već kreiranoj stepenoj funkciji:


y = 3* x3 − 5 * x2 + 2

koja je smeštena u fajlu stepenafunkcija.m.

Funkcija Opis Primer Rezultat


lokalni minimum funkcije jedne
promenljive u zadanom intervalu
fminbnd fminbnd ('stepenafunkcija',0,2) 1.1111
x1,x2
fminbnd ('imefunkcije',x1,x2)
realna nula funkcije jedne promenljive fzero ('stepenafunkcija',-1) -0.5486
fzero
u okolini tačke n fzero ('stepenafunkcija',1) 1
fmins minimum funkcije više promenljivih
b
numeričko rešenje integrala ∫ f ( x) dx
quad a

metodom: quad(' stepenafunkcija ',0,1) 1.0833


quadl nižeg reda quad('imefunkcije',a,b)
višeg reda quadl('imefunkcije',a,b)

fplot crtanje funkcije fplot ('stepenafunkcija',[0 2])


Inline function:
y=inline (’3*x.^3 - 5*x.^2 + 2') y(x) = 3*x.^3
zadavanje funkcije u jednoj - 5*x.^2 + 2
inline
programskoj liniji komandnog prozora y(2) ans =
6

Opcija fplot ('imefunkcije',[x1 x2]) crta funkciju u zadatim granicama x1 x2.

»fplot ('stepenafunkcija',[0 2])

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

Kompletna lista ovih funkcija dobija se pozivanjem:

»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. Grafičko prikazivanje u MATLAB-u


MATLAB pruža velike mogućnosti za prikazivanje vektora i matrica u grafičkom obliku visoke
rezolucije, kao i za označavanje i štampanje tih dijagrama.

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

semilogx grafik sa logaritamskom podelom x ose i linearnom podelom y ose


grafici

semilogy grafik sa logaritamskom podelom y ose i linearnom podelom x ose


grafik sa linearnom podelom i levom i desnom y osom(dve
plotyy
nezavisne funkcije y1 i y2)
polar grafik sa polarnim koordinatama
area oblast ispod krive ispunjena bojom
bar trakasti grafik
Specijalni
grafici

fill 2D poligon ispunjen bojom


hist histogram
pie ”pita” dijagram
scatter 2D tačkasti poligon

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

tačkasta linija: : zelena g [0 1 0]


crta-tačka linija: -. crvena r [1 0 0]
krug: o magenta m [1 0 1]
tačka: . cijan c [1 0 0]
x-znak: x žuta y [1 1 0]
plus: + crna k [0 0 0]
zvezdica: * bela w [1 1 1]
znak

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.

MATLAB takođe pruža mogućnosti podešavanja parametara linija, znakova i slova:


Funkcija Opis
'linewidth',n debljina linije (gde je n debljina linije je u pikselima)
'linestyle', 'simbol linije' stil linije
'markersize', m veličina znakova (gde je m veličina znaka(markera) u pikselima)
'color',[ R G B]
'color', 'slovna oznaka boja linije
boje'
'markeredgecolor',[ R G B] boja ivice(linije) markera
'markerfacecolor',[ R G B] boja ispune markera
'fontsize', p veličina teksta (gde je p veličina fonta u pikselima)
'fontname', 'ime fonta' promena fonta (Arial, Times New Roman...)
'fontangle','italic' italic slova

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:

- narandžasta boja [1 0.6 0]


- ljubičasta boja [1 0 1]
- siva boja [0.5 0.5 0.5]

Opcije funkcije Plot:

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)

Plot(x,A ’znak linija boja’) – crta kolone matrice A u funkciji vektora x

Plot(x,y ’znak linija boja’) – crta vektor y u funkciji vektora x

Na primeru dva vektora:

x=[ 1 3 8]

y=[ 1 5 4]

i već korišćene matrice A:

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

»plot(A, '* -') »plot(x, A, 'd -', 'markersize', 16,


'markerfacecolor',[1 0.6 0],'markeredgecolor','k')
9
9

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

»plot(y, 'k o:') »plot(x, y, 'g x -.', 'linewidth',6)

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

axis square x i y osa iste dužine (grafik je u obliku kvadrata)


axis equal podeoci na obe ose iste veličine
grid on(off) dodavanje(uklanjanje)”rešetke” grafika
axis on(off) dodavanje(uklanjanje) osa i podelu na osama
hold on dodavanje grafika u već postojeći grafički prozor
legend legenda
Tekst grafika

title naslov grafika


xlabel oznaka x ose
ylabel oznaka y ose
text smaštanje teksta na grafiku, zadavanjem koordinata x i y
gtext smaštanje teksta na grafiku pozicioniranjem miša

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

Spisak svih simbola koji su dostupni u MATLAB-u dat je u tabeli:

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

Na primerima M-datoteka pod imenom sinusninaponi.m. i expsin.m. prikazane su opcije iz


prethodne tabele:

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

TROFAZNI SISTEM SIMETRICNIH NAPONA 1


1
u1

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)

Kompletna lista funkcija za crtanje 2D grafika dobija se pozivanjem:


»help graph2d

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

surf 3D obojena površ(prikazane su boji i spojne linije i male elementarne površine)


surfc 3D obojena površ sa konturnim linijama
surfl 3D obojena površ sa svetlosnim efektima
fill3 ispunjen 3D poligon

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

Opcije funkcije Mesh:

Mesh (A) – crta 3D mrežastu površ matrice A u funkciji njenih indeksa


Mesh (x,y,A) – crta 3D mrežastu površ matrice A u funkciji vektora x i y (pri čemu mora biti ispunjen
uslov: dimenzije matrice A n x m, vektor x dužine n , vektor y dužine m)
Mesh (X,Y,A) – crta 3D mrežastu površ matrice A u funkciji matrica X i Y. Matrice Xi Y sadrže vrste
i kolone koji se ponavljaju, respektivno. Funkcija meshgrid transformiše domen (oblast definisanosti)
zadat vektorima x i y u matrice X i Y koje se koriste za izračunavanje funkcija dve promenljive. Vrste X
predstavljaju kopije vektora x, a kolone Y kopije vektora y.

Na primeru već korišćenih dva vektora x, y i matrice A:

x=[ 1 3 8]
y=[ 1 5 4]
A=[ 1 2 3; 4 5 6; 7 8 9]

prikazaćemo opcije funkcije Mesh, Plot3, Surf, Surf:

» 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

» plot3(x,y,A) » surfc(x,y,A) ,colormap([1 0 1;1 1 0])

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:

Matrica boja Opis


hot Crna-crvena-žuta-bela boja
gray Nijanse sive boje
bone Plavo-sive nijanse boja
copper Nijanse boje bakra
ink Pastelne senke ružičaste boje
hite Nijanse bele boje
vga 16 Windows osnovnih boja
cool Cijan i magenta senke
autumn Senke crvene i žute
spring Senke magenta i žute boje
winter Senke plave i zelene boje
summer Senke žute i zelene boje
prism
jet
colorcube
lines
flag
hsv

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

Kao primer dat je 3D prikaz eliptičkog paraboloida Z=X2+Y2:


»[X,Y]=meshgrid(-100:5:100);
Z=X.^2+Y.^2;
mesh(X,Y,Z)

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

Za dobijeni 3D dijagram se može zadati i tačka posmatranja pozivanjem funkcije view:


view(az,el) ili view([az,el]) – zadaje se azimut(az) i elevacija(el) (u stepenima) tačke posmatranja
azimut - ugao u x-y ravni sa orjentacijom suprotno od kazaljke na satu
elevacija – ugao iznad(pozitivan) ili ispod(negativan) x-y ravni

view([x,y,z]) – zadaju se koordinate x, y i z tačke posmatranja

Na sledećim graficima dat je prikaz elipsoida posmatran iz različitih tačaka:


zadavanjem azimuta i elevacije zadavanjem koordinata x, y i z tačke posmatranja
»view (90,15) »view([-100,-100,1000])

»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

Kompletna lista funkcija za crtanje 3D grafika dobija se pozivanjem:


»help graph3d

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

1.9. Programiranje u MATLAB-u


MATLAB omogućava formiranja datoteka kao posebnih programskih celina. Tim je omogućeno
korišćenje MATLAB-a za rešavanje problema programiranjem, kao i u nekom drugom višem
programskom jeziku.
Programi se pišu i snimaju kao M-datoteke. Program se izvršava u komandnom prozoru
MATALAB-a pozivanjem imena datoteke(bez sufiksa .m). Kao i u većini programskih jezika naredbe
MATLABA se izvršavaju redosledom kojim su napisane. Redosled izvršavanja naredbi može se
promeniti naredbama za kontrolu toka programa:

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

1.9.1. Ciklusi ili petlje


Naredbe petlje(ciklusa) omogućavaju da se izvršavanje određenog bloka programskog koda
ponavlja, sve dok se ne ispuni zadati uslov za prekid ponavljanja petlje.

MATLAB ima dve vrste petlji: for i while.

Petlja for

Petlja for ima sledeći oblik:

for i = start : korak : kraj



(naredbe programa)

end

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

Izvršavanje petlje se prekida kada promenljiva i dostigne vrednost kraj.


Naredbe programa između for i end su blok naredbi koji se ponavlja u petlje. U slučaju ne
zadavanja vrednosti korak MATLAB automatski dodeljuje korak=1.

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

Kao primere for petlje u MATLAB-u navešćemo sledeće:

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

Petlja while ima sledeći oblik:

while (logički izraz)


...
(naredbe programa)
...
end

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:

izraz logički operator(>, <, > =, < =, = =,- =) izraz

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

Uslovno izvršavanje - naredba if

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

1.9.2. Nalaženje i otklanjanje greški


MATLAB ima sopstvenu sintaksu za nalaženje i oklanjanje greški u datoteci. Jedan od načina je
primena funkcija padajućeg menija Debug i Breakpints iz prozora za editovanje.

Funkcija Opis
Run Izvršavanja tekuće datoteke
Debug

Step Prelazak na sledeću liniju programa


Continue Nastavak izvršavanja programa
Go until corser Prelazak na programsku liniju u kojoj je pozicioniran kursor
Set/clear breakpoints Postavljanje (uklanjanje) tački prekida programa
Clear all Uklanjanje svih tački prekida programa
Breakpints

Stop if error Prekid izvršavanja programa samo u slučaju greške


Stop if worning Prekid izvršavanja programa samo u slučaju upozorenja
Stop if nan or inf Prekid izvršavanja programa ako rezultat nije broj ili teži beskonačnosti
Stop all error Prekid izvršavanja programa

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.

U toku izvršavanja programa MATLAB omogućava i unos novih vrednosti promenljivih u


komandnom prozoru zadavanjem naredbe Input:
»promenljiva=Input(’tekst’)

Ova opcija je primenjena u programa za dobijanje lančanice nadzemnih vodova (mehpro.m).

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:

- interaktivna simulacija sa mogućnošću grafičkog prikazivanja rezultata simulacije


- velika baza standardnih elemenata za kreiranje linearnih, nelinearnih, diskretnih ili hibridnih ulazno-
izlaznih(I/O) sistema
- neograničena hijerarhijska struktura modela
- skalarno i vektorsko povezivanje elemenata
- jednostavno kreiranje sopstvenih elemenata i baza elemenata

SIMULINK omogućava i proširenje simulacionog okruženja:

- kreiranje sopstvenih elemenata i baza elemenata, sa sopstvenim ikonama, za povezivanje sa MATLAB,


Fortran ili C programskim kodom
- generisanje C programskog koda u SIMULINK model
- pristup matematičkim, grafičkim i programskim kapacitetima MATLAB-a i njihovim upravljanjem iz
SIMULINK-a
- grupisanje više standardnih blokova u jedan I/O podsistem
- proširenje SIMULINK baze elemenata posebnom grupom elemenata za određenu naučnu oblast

2.1. Pokretanje SIMULINK-a


Za modelovanje jednog dinamičkog sistema u SIMULINK-u potrebno je otvoriti:
- SIMULINK bazu elemenata(blokova)
- SIMULINK model(radni prostor)

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

Novi SIMULINK model se kreira izborom stavke File/New/Model komandnog prozora


MATLAB-a. Već postojeći model se otvara izborom stavke File/Open. SIMULINK datoteke imaju
ekstenziju .mdl.

Pravljenje modela u SIMULINK-u se vrši povezivanjem elemenata iz baze podataka u postojeći


model:
- selektovanjem i prevlačenjem željenog elementa levim klikom miša-”drag and drop”
- selektovanje željenog elementa i izborom stavke Edit/Add to the current model iz padajućeg menija

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

2.2. SIMULINK baza elemenata


SIMULINK bazi elemenata(blokova) se pristupa iz pretraživača baze (Simulink Library
Browser).

Baza elemenata podeljena je u nekoliko grupa obeleženih ikonama:

- 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

Neki od najčešće korišćenih elemenata(blokova) Simulink grupe prikazani su u tabeli:

Blok Blok

Sinks – Izlazni signal


Math Operations – Matematičke operacije

Sources – Ulazni signal


Kontinualne funkcije
Continuous –

Elementi grupe S-function demos sadrže primere generisane MATLAB, Fortran ili C
programskim kodom.

Elementi grupe Simulink Extras sadrže dodatne kategorije:


- za rad sa diskretnim funcijama
- za rad sa linearnim funcijama
- dodatne izlazne funkcije(spektralna analiza, histogram,...)
- flip-flopovi
- linearizaciju diskretnih promenljivih
- transformaciju koordinatnih sistema

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

2.3. SIMULINK model - blok dijagram


Svaki SIMULINK model sistema mora imati:
- ulazni signal(source)
- izlazni signal(sink)
Pri izradi modela prvo je potrebno dati matematičku postavku problema. Uzimajući u obzir da se
radi o dinamičkim(vremenski promenljivim) sistemima, potrebno je primenom Laplasovih transformacija
odrediti kompleksni lik posmatranog sistema:

F ( s ) = ∫ f (t ) ⋅ e − st dt
0

Primeri nekih osnovnih funkcija i njihovih kompleksnih likova dat je u tabeli:


f(t) F(s)
1
h(t)
s
1
eαt
s −α
f(αt) 1
α F (s + α )

f '(t) s⋅F(s)-f(0)

f ''(t) s2⋅F(s)-s⋅f(0)- f '(0)


t
F (s)
∫ f ( x) dx
0 s

Na osnovu napred definisanog problema pristupa se formiranju blok dijagrama SIMULINK


modela. Pored već opisanog načina formiranja modela (selektovanjem i prevlačenjem željenog elementa
levim klikom miša-”drag and drop”) na raspolaganji je i veliki broj kombinacija tastera (tastature i miša)
koji olakšavaju manpulaciju blokovima, linijama za povezivanje blokova i tekstom. Pregled tih funkcija
dat je u sledećim tabelama. Skraćenica LKM označava pritisak(klik) levog tastera miša, a DKM
pritisak(klik) desnog tastera miša.

2.3.1. Manipulacija blokovima


Taster, Kombinacija tastera Funkcija
LKM Selektovanje (markiranje) jednog bloka
Shift + LKM Selektovanje (markiranje) više blokova
povlačenje bloka LKM Pomeranje bloka
Ctrl + LKM i povlačenje bloka
Kopiranje bloka
ili DKM i povlačenje bloka
LKM i povlačenje linije od jednog do drugog bloka Povezivanje blokova
Shift + povlačenje bloka Razdvajanje blokova
Enter Podešavanje parametara selektovanog bloka ili
ili dvoklik mišem podsistema
Esc Povratak u osnovu selektovanog podsistema
Promena veličine bloka vrši se selektovanjem, a zatim povlačenjem ugla bloka.
42
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.3.2. Manipulacija signalnim linijama


Taster, Kombinacija tastera Funkcija
LKM Selektovanje (markiranje) jedne linije
Shift + LKM Selektovanje (markiranje) više linija
Ctrl + LKM i povlačenje linije
Grananje(deljenje) postojeće linije
ili DKM i povlačenje linije
Shift + povlačenje linije Kreiranje segmenta linije
Shift + povlačenje segmenta linije
Menjanje oblika linije
ili povlačenje krajnjih tačaka segmenta linije

2.3.3. Manipulacija tekstualnim oznakama


Taster, Kombinacija tastera Funkcija
dvoklik mišem na liniju Unošenje oznake linije
dvoklik mišem u modelu Unošenje teksta u postojeći model
Ctrl + LKM i povlačenje oznake(teksta)
Kopiranje oznake(teksta)
ili DKM i povlačenje oznake(teksta)
LKM Uređivanje oznake(teksta)
Shift + LKM, a zatim Delete Brisanje oznake(teksta)

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

2.4. Kontrola izvršavanja simulacije


Grafičko okruženje SIMULINK-a sadrži komande koje omogućavaja pokretanja, prekidanje i
pravljenje pauze u toku izvršavanja simulacije.

2.4.1. Pokretanje simulacije


Za pokretanje već kreiranog modela iz padajućeg menija Simulation izabere se opcija Start ili
pritiskom levog tastera miša na dugme Start u paleti alata(toolbar-u). Simulacija se može pokrenuti i
kombinacijom tastera Ctrl + T.

Vreme izvršavanja simulacije se podešava iz padajućeg menija Simulation/Simulation


parameters.... U slučaju ne zadavanja vremena izvršavanja, SIMULINK automatski dodeljuje vreme
trajanja simulacije.Vreme izvršavanja simulacije se može pratiti na Progress bar-u. Pauza u izvršavanju
simulacije se vrši pritiskom levog tastera miša na dugme Pause u paleti alata. Nastavak izvršavanja
simulacije omogućava dugme Continue. Dugme Stop prekida izvršavanje simulacije. Tok proracuna
ostaje zapamćen sve do momenta prekida.

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

2.4.2. Interaktivni rad sa pokrenutom simulacijom

SIMULINK omogućava interaktivno upravljanje tokom izvršavanja simulacije. Neke od


mogućnosti su:

- izmena simulacionih parametara, uključujući vreme trajanja i korak izvršavanja


- izmena simulacionog algoritma
- selektovanje željene signalne linije i praćenje signala na floating(nepovezanom) grafičkom displeju
- izmena parametara bloka

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.

Na sledećim primerima prikazana je izrada simulacije u SIMULINK programskom okruženju.

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

Blokovi, iz SIMULINK baze, koji su neophodni za formiranje modela su:

- Ulazni signal(Sources): Rastuća funkcija - Definiše temperaturu u Celzijusima


- Ulazni signal(Sources): Konstanta - Definiše konstantu 32
- Matematičke operacije (Operations): Multiplikator – Uvećava ulaznu rastuću funkciju 9/5 puta
- Matematičke operacije (Operations): Sumator – Daje algebarski zbir dve vrednost
- Sinks (Izlazni signal): Grafički prozor – Daje grafički prikaz Farenhajtove temperatuske skale

Otvaranjem novog SIMULINK modela(File/New/Model) prethodno navedeni blokovi se prevlače


iz SIMULINK baze i međusobno povezuju povlačenjem signalnih linija. Dvoklikom na blok vrši se
podešavanje parametara.
Za rastuću funkciju parametri su:

- 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) = ++

SIMULINK blok dijagram ovog modela prikazan je na slici:

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

Modelu ćemo dodeliti ime primer1.mdl. Izborom opcije padajućeg menija


Simulation/Simulation parameters..., podesićemo vreme trajanja simulacije:
- Start time(početak simulacije) = 0
- Stop time(kraj simulacije) = 100
Pokretanjem simulacije, iz palete alata, i dvoklikom na blok izlaznog signala(Scope) dobija se
grafički prikaz simulacije:

Zadati opsega osa dobija se klikom na ikonu Autoscale palete alata.

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)

Na osnovu II Kirhofovog zakona za prethodno kolo se može napisati:

di
Ri + L + u c = Vs
dt

du c
i=C
dt

Zamenom:

x1 = uc

x2 = i

Prethodne jednačine dobijaju oblik:

• 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

Otvaranjem novog SIMULINK modela i prevlačenjem i povezivanjem blokova iz SIMULINK


baze dobija se sledeći blok dijagram, kojim je opisan prethodni sistem:

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

Modelu ćemo dodeliti ime primer2.mdl. Iz padajućeg menija Simulation/Simulation


parameters..., podesićemo vreme trajanja simulacije:
- Start time(početak simulacije) = 0
- Stop time(kraj simulacije) = 15
Pokretanjem simulacije, iz palete alata, i dvoklikom na blok izlaznog signala dobija se grafički prikaz
struje u kolu i, odnosno napona kondenzatora:

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

2.5. Povezivanje SIMULINK modela i MATLAB radnog prostora

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

Pozivanje promenljivih se vrši iz komandnog prozora MATLAB-a:


»c

c= t=

0 0
0.7417 1.2105
0.9856 3.6903
0.9996 6.6903
1.0001 9.6903
1.0000 12.6903
. .
. .
. .

Sa ovako dobijenim vektorima se može dalje manipulisati u MATLAB-u:


»plot(c,t)

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

2.6. Model u prostoru stanja SIMULINK dijagrama

SIMULINK omogućava i dobijanje modela u prostoru stanja matrica A, B, C i D, na osnovu


postojećeg SIMULINK blok dijagrama. U tom slučaju veza ulaznih i izlaznih parametara data je u obliku
matričnih jednačina oblika:


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

Da bi se odredile nepoznate matrica A, B, C i D iz komandnog prozor MATLAB-a poziva se


funkcija linmod:

»[A, B, C , D]=linmod('ime SIMULINK modela')

Ulazni(Source) i izlazni(Sinks) signal SIMULINK dijagrama u ovom slučaju mora biti


Ulazni(Inport) i Izlazni(Outport) blok.
Na primeru SIMULINK modela, datog na slici, kome smo dodelili ime primer4.mdl, prikazano je
dobijanje modela u prostoru stanja:

Matrice A, B, C i D modela u prostoru stanja ovog sistema dobijamo iz komandnog prozor


MATLAB-a pozivanjem funkcije:

»[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

Model u prostoru stanja za ove matrice ima sledeći oblik:

 •  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 

Iz matrica A, B, C i D modela u prostoru stanja pozivanjem funkcije ss2tf mogu se odrediti


koeficijenti polinoma u brojiocu i imeniocu funkcije spregnutog sistema Ws(s):

»[ brojilac, imenilac]= ss2tf (A, B, C , D)

brojilac =
0 0 0 20 40

imenilac =
1 11 66 36 -40

Tako da funkcija povratnog prenosa ima oblik:

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

2.7. SIMULINK dijagram modela u prostoru stanja


SIMULINK omogućava i inverzan postupak u odnosu na prethodno prikazani, odnosno
mogućnost dobijanja SIMULINK dijagrama zadavanjem matrica A, B, C i D modela u prostoru stanja.
Pri tome matrice A, B, C i D unosimo kao podatke MATLAB-a(direktnim unošenjem elemenata u
komandnom prozoru ili kao komandnu M-datoteku). Ove matrice predstavljaju parametre SIMULINK
bloka:

x'=Ax+Bu
y=Cx+Du

Za sistema predstavljenog modelom u prostoru stanja:

•     
 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:

Dvoklikom na blok modela u prostoru stanja vršimo podešavanje parametara bloka:

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

Ma trice modela unosimo u komandni prozor MATLAB-a:

»A=[0 1 0 ; 0 0 1 ; -5 -4 -2];
»B=[0 ; 0 ; 5];
»C=[1 0 0];
»D=[0];

Pokretanjem simulacije primer5.mdl dobijamo grafički prikaz izlaznog signala y:

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

2.8. Kreiranje sopstvenih elemenata i podsistema

Uloga podsistema u SIMULINK-u može se uporediti sa potprogramima standardnih programskih


jezika. Upotrebom podsistemima uprošćava se izgled SIMULINK modela i povećava se njegova
preglednost. Ceo podsistem zamenjuje se jednim blokom.
Da bi se kreirao jedan podsistem SIMULINK modela potrebno je:

- Selektovati sve blokove i signalne linije koji će biti deo podsistema


- Iz padajućeg menija Edit izabrati opciju Create Subsystem

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.

[3] H. Saadat, “Power System Analysis”, McGraw Hill Company, 1999.

[4] * * * “User’s Manual for Matlab”, MathWorks, Natick, MA, USA, 2003.

[5] * * * “User’s Manual for Simulink”, MathWorks, Natick, MA, USA, 2003.

57

You might also like