171
POM TEHNI SVEUČI MORSKI F IČKI PR PR Ig ILIŠTE U FAKULT ROGRAM REDAVAN gor Vujov Split, 2016 U SPLITU TET U SP MSKI P NJA vić 6. U LITU PAKETI

SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

POM

TEHNI

SVEUČIMORSKI F

IČKI PR

PR

Ig

ILIŠTE UFAKULT

ROGRAM

REDAVAN

gor Vujov

Split, 2016

U SPLITUTET U SP

MSKI P

NJA

vić

6.

U LITU

PAKETI

Page 2: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

PREDGOVOR Danas se smatra da tehnički obrazovana osoba mora imati određena znanja iz programiranja računala u svrhu upravljanja ili simulacije procesa, sustava, zakonitosti i dr. Jedan od najraširenijih programskih paketa koji su lagani za korištenje lepezi inženjera različitih struka je Matlab. Preko milijun inženjera „govori“ Matlab. Danas je on definitivno prvi programski jezik za razvoj i istraživanja. U kasnijem razvoju proizvoda prelazi se na druge programske jezike, koji su teži od Mataba. Prema časopisu IEEE Spectrum (07/2014), ispred Matlaba su Java, C, Python, PHP, Ruby i SQL. Jezik uglavnom kompatibilan s Matlabom, ali besplatan (open source) je Octave. Nema toliko mogućnosti kao Matlab, ali su kodovi međusobno u visokoj mjeri kompatibilni. Stoga se u znanstvenoj zajednici često koristi i Octave. Cilj kolegija: Svrha je ovoga predmeta osposobljavanje studenata za rad sa suvremenim tehničkim programskim paketima kao npr. Matlab/Simulink, Octave i sl. To uključuje upoznavanje s tehničkim okruženjem i s praktičnim vježbama programiranja u odgovarajućem programskom paketu. Upotreba ugrađene pomoći. Potrebno je savladati programiranje funkcija i m-skripti, korištenje toolbox funkcija, čitanje programskih kodova, rješavanje polinoma, crtanje funkcija u 1D, 2D i višedimenzionalnom prostoru, prikupljanje i snimanje podataka te učitavanje postojećih podataka. Također studenti se trebaju osposobiti za modeliranje i simuliranje pomorskih sustava i procesa u naprednim programskim okruženjima, što je priprema za doktorat i znanstvena istraživanja. Očekivani ishodi učenja: 1. Primjenjivati računalne programe Matlab/Simulink i Octave u rješavanju problema te modeliranju i simuliranju suvremenih tehničkih problema u području tehnologije prometa. 2. Odgovorno razvijati simulacijske modele koji su bliski realnim slučajevima i razmatrati sve posljedice pojedinih zanemarenja. 3. Vrednovati, uspoređivati i poznavati simulacije u programskom paketu Matlab/Simulink. 4. Predvidjeti nepoželjne pojave u nadzornim, prometnim i pomorskim sustavima. 5. Primjeniti računalne programe u proračunima, simulacijama i upravljanju on-line sustavima. 6. Samokritički procjeniti pogreške u razvoju modela prometnog sustava. Zbog kontrole kvalitete nastave postoji procedure. Studenti se evidentiraju prilikom dolaska na vježbe i predavanja s evidencijskim listićem. Za vježbe postoji dnevnik rada u Matlabu koji vodi izvođač nastave (sat rada, tko radi na kojem računalu i što radi). Studenti su dužni ispis vježbe predati izvođaču vježbi u obliku izvještaja. Studentima koji namjeravaju upisati doktorski studij, kao i onima koji će raditi u R&D sektoru, Matlab je vrlo važna alatka.

Page 3: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

SADRŽAJ Provjeri i prepravi 1. O MATLABU I OCTAVEU ...................................................................................... 32. VARIJABLE ................................................................................................................ 103. OPERATORI I MATEMATIČKE FUNKCIJE ........................................................... 203.1. Aritmetički operatori ............................................................................................... 203.2. Relacijski operatori ................................................................................................. 243.3. Logički operatori ................................................................................................. 253.4. Operacije na skupovima ........................................................................................ 273.5. Operacije nad matricama ........................................................................................ 283.6. Ugrađene matematičke funkcije i njihova podjela .................................................. 303.7. Funkcije i operacije nad polinomima ....................................................................... 313.7. M-funkcije i skripte ................................................................................................. 324. POBOLJŠANJE IZVEDBE MATLABOVIH KORISNIČKIH PROGRAMA .......... 334.1. Uobičajene mjere učinkovitosti ............................................................................... 334.2. Primjena Matlabovog profilera ............................................................................... 355. ANALITIČKE OPERACIJE U MATLABU .............................................................. 376. SPREMANJE I UČITAVANJE RAZLIČITIH FORMATA PODATAKA ............... 457. GRAFIČKO ISCRTAVANJE REZULTATA ............................................................ 488. UPOTREBA ALATKI I FUNKCIJA .......................................................................... 639. INTEGRALNE TRANSFORMACIJE: LAPLACE I PRIMJENA U ELEKTROTEHNICI/AUTOMATICI .................................................. 659.1. Laplaceova transformacija i primjene .............................................................. 659.2. Fourierova tranformacija ...................................................................................... 7410. UPRAVLJANJE TOKOM PROGRAMA .............................................................. 7811. PROGRAMIRANJE U MATALBU ........................................................................ 8212. SIMULINK ................................................................................................................ 96LITERATURA ............................................................................................................. 108

Page 4: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

1. O MATLABU I OCTAVE-U Programski paket MatLab služi za rješavanje i simuliranje različitih matematičkih problema iz niza područja vezanih uz: - obradu signala, - upravljanje, - on-line upravljanje, - komunikacije, - statistiku, - neuronske mreže, - neizrazitu logiku, - regulaciju, - identifikaciju sustava, itd. Prva verzija MATLAB-a nastala je krajem 1970. godine na sveučilištima University of New Mexico i Stanford University s namjerom primjene u matričnoj teoriji, linearnoj algebri i numeričkoj analizi. Cilj je bio olakšati izračun različitih matričnih operacija. Danas njegova svojstva daleko prelaze originalne zamisli te je gotovo nezaobilazan u istraživačkim projektima. Nekada se koristio samo glavni prozor u kojem su se pisale naredbe. Razvojem grafičkog korisničkog sučelja, došlo se na ideju primjene prozora i u MatLab-u. Stoga se danas radi o interaktivnom sustavu i programskom jeziku za izračunavanja. Uz osnovni paket postoje i brojni dodatni programski paketi - alatke (toolbox). Simulink je dodatak MatLab-u koji omogućuje simulaciju kontinuiranih i diskretnih sustava s pomoću funkcijskih blok dijagrama i dijagrama stanja. Posjetom na web stranicu (http://www.mathworks.com) može se otkriti koliko je njegova primjena široka i koliko se ljudi se koristi njime i želi pridonijeti njegovom razvoju. To je moguće, jer je ovaj programski paket otvoren sustav u kojem korisnik može graditi svoje vlastite alate i biblioteke te modificirati postojeće, koji su dostupni u obliku izvornog koda u jeziku koji je pristupačan i razumljiv većini korisnika. Octave je izvorno zamišljen kao popratni softver za preddiplomsku razinu u udžbenicima kemije. Osmislili su ga James B. Rawlings sa Sveučilišta u Wisconsin-Madisonu i John G. Ekerdt sa Sveučilišta u Teksasu. Za ovladavanje Octaveom studentima je potrebno svega nekoliko sati. Nakon što se pokazao dobrim u raznim kolegijima iz kemije, njegova upotreba je proširena na kolegije iz linearne algebre. Danas je on primarna alatka za nastavu iz raznih kolegija na sve većem broju sveučilišta. Glavna prednost, u odnosu na Matlab, je to što je besplatan te je pristupačan svim obrazovnim i znanstvenim institucijama. S druge strane, Matlab je komercijalni skupi programski paketi s puno dodataka koji povisuju cijenu i s različitim tipovima licenci. Octave je otvorenog programskog koda, te ga svatko može dograđivati po svojim potrebama. Zaštićen je, ali s ciljem da se omogući slobodna redistribucija, a ne da se ograničava (posjetite stranicu: http://www.octave.org/download.html). Octave je jezik visoke razine, a prvenstveno služi za numeričke proračune. Pruža mogućnost interaktivnih linija za rješavanje linearnih i nelinearnih problema. Ako prilikom izvršavanja naredbe dođe do problema, Octave se može prekinuti sa CTRL+C. Za izlazak iz programa se koriste naredbe quit ili exit. Nije preporučljivo prekinuti program na klasičan način s mišem koji pritisne X u kutu prozora. Važno je naglasiti da su Matlab i Octave vrlo kompatibilni. To znači da su vrlo slične sintakse i sa sličnim ključnim riječima. Razlika je u tome što Octave nema toliko puno alatki kao Matlab te stoga ima manje gotovih funkcija za upotrebu. Program razvijen u Matlabu, ako nije iz neke alatke koju nema Octave, može se bez problema izvršavati u Octave-u i obrnuto. S toga se poznavajući jedan, poznaje i drugi programski paket.

Page 5: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Slika 1 p

Slika 1.

prikazuje n

. Pokretanj

ačin pokret

a)

c)

e Matlaba iu

anja Matlab

i Octavea s pupisivanja k

ba i Octavea

pomoću staključne riječ

a.

artne trake (či matlab (d)

b)

d)

(a i b), ikond).

nice na zaslo

onu (c) i

Page 6: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Najboljakorisničproblemkorištenimao sli

Svi podkao posse varijaskalarnezapisanikomplekPo svojona koji stotine rSlika 3 glavne kniz poms pregleprozor sčiji polo

a literatura čka zajednime i gotovi pnje središnjiična i proble

Slik

daci u Matlasebne varijaable, uglavne veličine i u obliku ksnim brojeoj formi MAse i inače zredaka napiprikazuje izkarakteristik

moćnih prozedom mems pregledomožaj i mogu

može se nica (engl. uprogrami koice Matlabaem kao i mi

ka 2. Potrag

abu i Octaveable. To je pnom, treba dpredstavljajpomičnog

evima. ATLAB je zapisuju masanih u nekzgled jedneke prisutne ora, kao što

morije radnom foldera i dćnosti ovise

naći na Intuser commoje razvijaju

a (engl. Mati. Slika 2 pr

ga za rješenj

eu se promaprednost u odefinirati, tjju se kao zareza dvo

interaktivniatematičke fkom programe inačice Mau svim verz

o je prozor uog prostora datoteka u te o inačici.

ternet stranmunity) pa

u korisnici tlab Centralrikazuje tu w

njem problem

atraju kao modnosu na oj. treba odrematrice s

ostruke prec

i jezik – intformule pa mskom jezikatlaba. Taj zijama. Svau kojem se (u kojem

trenutnom f

nicama tih pse mogu vprogramski) za pretragweb stranicu

ma na Matl

matrice čije ostale ne-objediti dimenzdimenzijomciznosti. U

terpreter. Pojedan redak

ku opće namizgled varir

aka verzija ipamte prijase prikazuj

folderu i sl.

programa, već naći i ih paketa. D

gu kako bi su.

abovoj stra

dimenzije njektne progziju i tip sv

m 1x1. Svi MatLab-u

o svojoj fork u MatLabmjene. ra od inačicima izbornik

ašnje naredbju imena i Uz to, pos

gdje postojrješenja za

Druga moguse vidjelo je

anici.

nije potrebngramske jezivake varijab

su podacise može r

rmi blizak jb-u može za

ce do inačicike, glavni pbe (povijest)

veličine vstoje i razne

ji i jaka a mnoge ućnost je e li netko

no čuvati ike, gdje le. Čak i i interno raditi i s

e načinu amijeniti

ce, ali su prozor te ), prozor arijabli),

e trakice,

Page 7: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

MatLabPomoć potrebnznakovi

>> help DIR Li DIR d wildc in the D = D struct nam dat byt isd dat See a Overl ftp/ vds ecli ghs ccs Refer doc>>

b ima razvijčesto obuhv

no, npr. helpi), što ispisu

p dir ist directorydirectory_ncards may be current dirDIR('directture with thme -- Filete -- Modites -- Num

dir -- 1 if ntenum -- M This va

also what, cloaded meth/dir spdebug/dir ipseide/dir smulti/dir debug/dir rence page ic dir

enu pomoćvaća i primjp dir (izlistuje pomoć z

S

y. name lists thbe used. Forrectory. tory_name')he fields: ename ification dat

mber of bytename is a dirodification alue is localcd, type, delhods:

in Help brow

ć, koja se mmjere. Ona s

avanje trenza te naredb

Slika 3. Izgl

he files in a r example, D

returns the

te es allocated rectory and date as a M

le-dependenlete, ls, rmd

wser

može pozvate poziva ut

nutnog direkbe.

led Matlabo

directory. PDIR *.m lis

e results in a

to the file 0 if not

MATLAB sent. dir, mkdir, d

ti za svaku tipkavanjemktorija) ili h

ovog sučelja

Pathnames asts all progr

an M-by-1

erial date nu

datenum.

naredbu, fum naredbe "hhelp ops (op

a.

and am files

umber.

unkciju ili ohelp" i onogperatori i sp

operator. ga što je pecijalni

Page 8: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Znak „>i pojam tekst ispnaredbugornjem >> help QUIT Q QUIT if it e unles execu QUIT will n QUIT It has Exam Put disp bu sw c c en Note: to use visibl See a Refer doc>>

>>“ (prompm koji se traž

pisuje Matlau. Naredbe m kutu Matl

p quit Quit MATLT terminatesexists. The wss FINISH.Muting FINIST FORCE cnot let you qT CANCELs no effect a

mple t the followiplay a dialoutton = que 'E

witch buttoncase 'Yes', disp('Exiti %Save var save

case 'No', quit cance

nd : When usine UIWAIT, le.

also exit. rence page ic quit

pt) znači da ži (dir), pritab te kada jza izlazak abovog pro

LAB sessions MATLABworkspace iM calls SAVSH.M, quittian be used quit.

L can be useanywhere el

ing lines of og that allowestdlg('ReadExit Dialog'n

ing MATLAriables to m

el;

ng Handle GWAITFOR

in Help brow

program iščišće se tipkje završio piz Matlabazora.

n. B after runniinformation VE. If an erring is canceto bypass an

d in FINISHlse.

code in youws you to cady to quit?', ,'Yes','No','N

AB'); matlab.mat

Graphics in R, or DRAW

wser

čekuje nareka „enter“ teponovo u noa su quit ili

ing the scripn will not beror occurs w

elled. n errant FIN

H.M to canc

ur FINISH.Mancel quittin... No');

FINISH.M WNOW so t

a)

edbu. Nakone Matlab izvovoj liniji isi exit, a mo

pt FINISH.Me saved while

NISH.M tha

cel quitting

M file to ng.

make sure that figures

n što je upisvršava naredspisuje promože se izaći

M,

at

.

are

sana naredbdbu. Žuto ompt očekujui i pritiskom

ba „help“ osjenčani ući novu m „X“ u

Page 9: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Slika 4.grafičk

Lookfornaredba Lookfor Search fAlternat

. Pristup pokog sučelja,

r je naredbaa ima bogato

r

for keywordtives

omoći preko, b) pretraži

a za pretrago objašnjenj

d in all help

o grafičkog sivanje pomo

izgled pre

gu prema kje koje se m

p entries

b)

c)

d)

sučelja Matoći s pomoćetraživanja

ključnim rijmože iščitati

tlaba: a) izbću ključnih r

sadržaja.

ečima unuti s naredbom

bornik pomoriječi, c) rez

tar komandm help lookf

oći na glavnzultati pretr

dnog prozorkfor.

noj traci rage, d)

ra. Sama

Page 10: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

As an alternative to the lookfor function, use the Function Browser. Syntax lookfor topic lookfor topic –all Primjer izvođenja naredbe: >> lookfor plot3 plot3 - Plot lines and points in 3-D space. ezplot3 - Easy to use 3-d parametric curve plotter plot3m - Project 3-D lines and points on map axes >> Kako su programski paketi Matlab i Octave vrlo opsežni, vrlo je važno znati koristiti ugrađene opcije pomoći. Naime, tek u praksi se može znati koja je naredba potrebna, a kako ih ima previše, nije moguće sve naredbe obraditi. Matlab razlikuje velika i mala slova. U slučaju imena varijabli ili konstanti, mora se ime napisati točno kako je u radnom prostoru, jer se u protivnom javlja greška – nepostojeća varijabla. >> a=7; >> b=9; >> a+B ??? Undefined function or variable 'B'. Kod pozivanja funkcija i programa stvar je drukčija. Matlab prepoznaje ime željenje datoteke te ako nema točno one kako je pozvana, nalazi datoteku koja nije osjetljiva na velika i mala slova. Neka je datoteka vrijeme_kamere.mat je u trenutnom folderu1. Tada se neće javiti pogreška niti za jednu od opcija: >> load vrijeme_KAMERE.mat % učitavanje datoteke pod navedenim imenom >> load VrIJeme_Kamere.mat Pozivanje naredbi podložno je velikim i malim slovima. Ako nema točnog podudaranja s onim što je napisano, događa se da Matlab nalazi najbliže podudaranje i samo ispisuje upozorenje da je primijenio funkciju najsličnijeg imena. >> HelP Warning: Could not find an exact (case-sensitive) match for 'HelP'. C:\Program Files\MATLAB\R2011a\toolbox\matlab\helptools\help.m is a case-insensitive match and will be used instead. You can improve the performance of your code by using exact name matches and we therefore recommend that you update your usage accordingly. Alternatively, you can disable this warning using warning('off','MATLAB:dispatcher:InexactCaseMatch').

                                                            1 Matlab prvo pretražuje svoje foldere u Program Files sektoru HDD-a. Nakon toga ostale foldere koji su definirani od proizvođača i korisnika te trenutni folder. Ako je neka funkcija ili datoteka izvan definiranih foldera i izvan trenutnog foldera, tada je Matlab i Octave ne mogu pronaći, nego treba otvoriti folder u kojem se potrebna datoteka nalazi.

Page 11: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

This warning will become an error in future releases. HELP topics: I dalje nastavlja ispisivati sve kao da je napisana naredba help. Kod Octavea to nije slučaj. Octave se ponaša kao starije inačice Matlaba, tj. mora se točno napisati velika i mala slova, inače se javlja greška i prekida izvršavanje. Matlab i Octave imaju i slučajnu funkcionalnu strukturu (Slika 5). U centru je glavni prozor kojim se upravlja glavnom ljuskom, čija je jezgra u naravi matematička. Matlab ima razvijeno grafičko sučelje, dok je kod Octavea ono rudimentarno. U oba programska paketa postoji radni prostor u kojem se zapisuju trenutne varijable koje se koriste u glavnoj ljusci. Ako se naredi ili ako je prepun radni memorijski prostor, koristi se tvrdi disk za spremanje podataka koji se manje koriste.

Slika 5. Funkcionalna struktura Matlaba. Poželjno je da se sve odvija u radnom prostoru, jer je Matlab poznat po slaboj organizaciji memorijskih operacija. Kako Matlab u pravilu ne blokira, za razliku od drugih programa u Windowsima, rad s ogromnom količinom podataka, pri kojem se koristi i tvrdi disk, može biti dugotrajan.

Matlab može služiti za sekvencialno i objektno programiranje, a razlika je u načinu razmišlajnja i izvršavanja programa (Slika 6).

Od ostalih programskih paketa koji se koriste u tehnici značajan je NI LabView koji obuhvaća i Multisim (koji se koristi umjesto EWB-a) te VisSim, koji je zanemaren zbog Simulinka (iz programskog paketa Matlab). Ni LabView se koristi u industriji te može emaluirati SCADA sustave i pokretati zapravo industrijske pogone. Matlab je namjenjen za istraživanja, a Labview za aplikacije i industriju. Kompletna instalacija Matlaba ima oko 9 GB sa svim alatkama, a Labview oko 40 GB.

Page 12: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

SuvremNpr. nek

TablicAlatkaMoSyn

Whoop

Appcel(www.a

Slika 6.

meni trendovka mobitels

a 1. Pregled

nc (www.mo

p (www.who

lerator appcelerato

Simbolička

vi vode do ska aplikacij

d nekih alat

osync.com)

oop.com)

or.com)

usporedba

potrebe za ja mora rad

tki za međupTemelj Native Python, R

WYSYWI

Web tehnmeđuplatkompatibJavi. Loizvode i

objektnog

multiplatfoditi na iPhon

platformsko

(also C+Ruby, Java)

IG interface

nologija kotformsku bilnost, a teokalne apliz tehnolog

i sekvencija

ormskim ponu, Andoroi

o programir

++, PHP,

e

oja dopušta

melji se nalikacije segija poput

alnog progra

vezivanjemdu, Window

ranje i komePodruče p

Međuplaplatoformaplikacijemobile, aWindowsBlackberiPhone, mobilni O

a

a e t

Izvođenepregledn

ramiranja

m i programws Phone-u

entari primjene

atformske m) je (windowsandroid, iOSs Mobile, Srry, A

i ostali zOS’s

e preko nika.

miranjem. u, i sl.

(Cross-mobilne s, lynux S, iPad)

Symbian Android, značajni

interent

Page 13: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

HTML5, CSS3, JavaScript, PHP, Python i Ruby.

Widgetpad (widgetpad.ndl.cc)

Platfroma temeljena na web-u Ima nekih problema u Andriod. Nove verzije su nadvladale te to.

RhoMobile (www.rhomobile.com)

Ruby Windows Mobile, Symbian, Android, iOS i RIM. Noe omogućuje RFID i bar kod skeniranjem API-ja. Open source

PhoneGap (phonegap.com) Tehnologije distribuiranih sustava i web prečica, npr. JavaScript, HTML, CSS3

Android, Symbian, Palm, Blackberry, iPhone, i iPads

Xmarin (www.xamarin.com) C++ iOS, Android, Windows, open source

Haxe (http://haxe.org/) Haxe programski jezik (slične komponente kao C++, Java, PHP)

Sve platforme i sustavi, open source

JDeveloper Studio (www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html)

Java Sve platforme i sustavi

Gtk+ (www.gtk.org) C++ Sve platforme i sustavi Qt (https://www.qt.io/download)

C++ Sve platforme i sustavi

Tablica 1 predstavlja one alatke, temlje tih alatki i komentare.

Konačno, sve to vodi na IoT (Internet of Things), a onda treba nabrojiti razloge za uvođenje IoT-a (www.microsoft.com):

- Počnite sa svojim stvarima, - Izvucite više iz svoje postojeće imovine, - Napravite male promjene, a vidite veliki utjecaj, - Poboljšajte učinkovitost, - Povežite bilo kakvu imovinu, - Omogućite inovacije, - Povećajte agilnosti, - Izradite sposobnost povećavanja, - Transformirajte svoj posao, - Izaberite partnera koji se dokazao vašoj tvrtki.

Page 14: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

2. VARIJABLE Varijable se, programskim okruženjima Matlab ili Octave, mogu podijeliti na više načina, a najčešće se dijele prema sadržaju, vidljivosti ili izvoru nastanka. Prema sadržaju elemenata matrice, varijable mogu biti: realne, cjelobrojne (integer), kompleksne, simboličke, znakovne (char), polja ćelija (cell) i strukture (engl. structures).

Realne varijable su one čija je vrijednost iz skupa realnih brojeva, a kompleksne iz skupa kompleksnih brojeva. Cjelobrojne vrijednosti su vrijednosti iz skupa cijelih brojeva. Simboličke varijable koristi Simbolička alatka, o čemu će kasnije biti riječi. Riječ je o obično o analitičkim izrazima na koje smo naviknuti iz matematičkih kolegija. Znakovne varijable su one u kojima su pohranjeni dopušteni znakovi, najčešće slova. Polja ćelija i strukture su složene varijable koje u podelementima prihvaćaju različite prethodno spomenute varijable. Matlab koristi konvencionalnu decimalnu notaciju s opcijskom decimalnom točkom (jer računala rade s decimalnim točkama, a ne decimalnim zarezima) te predznakom. Znanstvena notacija koristi slovo „e“ za zapis potencija baze deset. Matlab koristi i „i“ i „j“ kao imaginarnu jedinicu, jer se koristi i u tehnici (j) i u matematici (i). Ova dva slova nisu takve naravi da se ne može definirati istoimena varijabla koja ima neku drugu vrijednosti. No, čim se ona izbriše, ova predodređena (default) vrijednost se vraća. Primjeri ispravno napisanih brojeva su: 44 -103 0.0056 -1.6e-19 3.02e10 1i 3+j7 -pi+j 2e50i Matlabu je sve isto, ako nije drukčije korisnik definirao, koristili se ili miješa „i“ i „j“: >> 2+2i+3+3j ans = 5.0000 + 5.0000i Matlab pohranjuje sve brojeve interno koristeći dugačak (long) oblik (format) propisan s IEEE® standardom za pomičnu točku (IEEE® floating-point standard). Brojevi s pomičnim zarezom (točkom) ima preciznost od 16 decimala, a najmanji broj je 10-308, a najveći 10308. Brojevi u obliku dvostruke preciznosti mogu biti s najvećom preciznošću od 52 bita, a ako je potrebno više, može se izgubiti na preciznosti. Stoga se može dogoditi da Matlab javi kako su neki brojevi jednaki, iako nisu, npr.:

Page 15: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

>> x = 96028797018963969; >> y = 96028797018963971; >> x == y % ispituje logičku istinitost tvrdnje, 0 je laž, a 1 istina ans = 1 Cjelobrojne vrijednosti mogu biti preciznosti 8, 16, 32 ili 64 bitova. Ako se pohranjuju u 64-bitnoj preciznosti, održava se preciznost. >> x = uint64(95528797018963968); >> y = uint64(95528797018963972); >> x == y % ispituje logičku istinitost tvrdnje, 0 je laž, a 1 istina ans = 0 Matlab pohranjuje realne i imaginarne dijelove kompleksnog broja. Rukovanje s kompleksnim brojevima ovisi o kontekstu. Tako npr. funkcija za sortiranje poreda brojeve prvo po modulu, a ako su oni jednaki onda od manjeg prema većem kutu. >> sort([2+4i, 4+2i]) ans = 4.0000 + 2.0000i 2.0000 + 4.0000i >> angle(2+4i) ans = 1.1071 >> angle(4+2i) ans = 0.4636 Relacijski operator jednakosti (==) je istinit ako su i realni i imaginarni dio jednaki. Međutim, ostali relacijski operatori, kao > (veće), < (manje), >= (veće ili jednako) i <= (manje ili jednako) ignoriraju imaginarni dio i daju rezultat samo prema realnom dijelu. Prema vidljivosti, varijable se dijele na: lokalne i globalne.

Globalne su u dohvatu bilo koje funkcije i programa koji se izvršava. Lokalne su dostupne samo u virtualnoj ljusci određenog programa ili funkcije. Naime, unutar neke funkcije ili programa, mogu se pozivati druge funkcije ili programi. Kada se pozvana funkcija ili program završe, nastavlja se inicijalni program od sljedeće linije. Ako je neka varijabla dostupna samo unutar neke funkcije, to znači da za glavni program ne postoji te može postojati u glavnom programu istoimena varijabla s drugom vrijednošću ili ne mora uopće niti postojati ili biti definirana varijabla pod tim imenom. Postoji naredba za definiranje globalnih varijabli, koja se ponekad upotrebljava: global. S njom se lokalna varijabla neke funkcije, koja ne ostaje u radnom prostoru, definira kao globalna te se javlja i u radnom prostoru i u ostalim funkcijama. Postoji i naredba persistent, kojom se može definirati u kojim je funkcijama neka varijabla vidljiva. Prema izvoru nastanka: interne (unutrašnje) i

Page 16: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

eksterne (vanjske). Primjeri internih varijabli su: točnost realnih brojeva (razlika između 1.0 i prvog većeg) je interna varijabla

eps=2.2204e-16, vrijednost najmanjeg realnog broja je realmin=2.2250733858507202e-308, vrijednost najvećeg realnog broja realmax=1.797697134862316e+308, vrijednost broja π, pi=3. 14159265358979, Inf (beskonačno, engl. Infinity, npr. 1/0), NaN (nije broj, engl. Not a Number, npr. 0/0), imaginarna jedinica kompleksnih brojeva i, j.

Primjeri eksternih varijabli su: ime varijable, 19 alfanumeričkih znakova slova engleske abecede, brojke i _ (donja crta, engl. underscore)

Ime ovih varijabli uvijek počinje slovom. Definiranje varijabli moguće je obaviti na više načina. Glavno je navesti ime varijable, a onda se na jedan od mogućih načina pridaje vrijednost varijablama (ili se učitava nekom naredbom ili se unose konkretne vrijednosti ili se one definiraju na neki eksplicitni/implicitni način). Primjeri vektora i matrica: >> b=[1;2;3+4j] b = 1.0000 2.0000 3.0000 + 4.0000i >> c=[1 2 3;2 2 1;3 2 5] c = 1 2 3 2 2 1 3 2 5 Definiranje niza brojeva moguće je na nekoliko načina. Jednostavan način je definirati granice i korak izmjene vrijednosti, npr.: d1=[var_min:prirast:var_max] d2=[var_min:var_max] d3=linspace(min,max,br_toc) d4=logspace(n1,n2,br_toc) >> d1 =[0:0.5:3] d1 = 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 >> d2=linspace(1,-1,5) d2 = 1.0000 0.5000 0 -0.5000 -1.0000 Spremanje varijabli prisutnih u radnom prostoru u starim inačicama je bilo moguće samo preko naredbi u glavnom prozoru. Danas je moguće i interaktivno. I klasičnim i interaktivnim putem varijable se spremaju u datoteke. Uobičajeno spremanje podataka je u datoteke

Page 17: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Matlabomatrice Interakt

o k

b p

tKlasičnnačina s save (imsave (imsave (imsave (imsave (imsave(im Najjednse sve vsave (i(ime_daOstale oascii'). nabrajanza spremPrimjeriAko se se naredsave('bcOva nar save traf Ova narprosj_prNapomeovdje jeimana ngodina, save im Ovom nPostoji vtipku „odgovar– naredb

ove ekstenzi dr.). Alter

tivni načini odabere se iklikne se nbrowser); povuku mištrenutnog fo

ni način sprespremanja p

me_datotekeme_datotekeme_datotekeme_datotekeme_datoteke

me_datoteke

nostavniji obvarijable iz

(ime_datotekatoteke, ..., opcije su odKod nared

nju se možemanje svih vi želi spremi

dba: c.mat', 'B', 'redba znači

af_L4_lev3s

redba znači rec i prosjreena: Zbog e traffic sekvnemaju smijer se tada

e.mat var1

naredbom seviše načina delete“ ili rajuće opcijba clear.

zije „.mat“.rnativno se spremanja vizbornik „Fna ikonicu

šem varijabloldera (englemanja varijpodataka:

e) e, varijable)e, '-struct', se, ..., '-appene, ..., format, ..., verzija)

blik naredbtrenutnog

ke, varijab'-append')

d manjeg zndbe save ke skratiti povarijabli iz r

ti varijable

'C'). da se u dato

se2.mat pros

da se u datoec. buduće upo

kvenca, L=4isla, probleviše ne mor

var2 var3 –

e u ime.matbrisanja vas klikom

je na ponuđ

. Taj formavarijabla mvarijabli su

File“ te izabe„save“ (

le koje se žel. Current Fjabli je poz

) tructName,nd') t) )

e je save (iradnog pro

ble) spremomogućuj

načaja. Takokoriste se ropis ako su radnog pros

B i C iz rad

oteku bc.ma

sjPCC prosj

oteku traf_L

otrebe potr4, razina 3, sem je naći ramo baš im

–ascii

t spremaju varijabli. Varna ikonicuđenom izbor

at omogućumože spremi

: ere „Save W

) u proz

eli spremitiFolder browzivanjem fun

fieldName

ime_datotekstora u Ma

ma odabrane dodavanj

o npr. formarazmaci konpr. sve va

stora na slov

dnog prosto

at spremaju

sj_prec pros

L4_lev3se2

rebno je dastrukturni eodređeni p

mena sjećat

varijable varrijable se mou za brisanjrniku. Uz to

uje očuvanjti u ASCII f

Workspace Azoru radno

iz radnog pser). nkcije save.

s)

ke). Izvršavatlab formatne varijableje novih vat može bitid nabrajanj

arijable na ivo t.

ora u kojem

u varijable B

sjrec

.mat sprema

a su imena element 2, tpodatak kadti.

r1, var2 i vaogu označitje ( ) ili

o, postoji i k

e formata vformat.

As“; g prostora

prostora (W

. Sintaksa o

anjem ove tiranu datote u datotarijabli u pi matlabov (nja varijabliisti znak s '*

su varijable

B i C.

aju varijabl

datoteka šte se sve zakda zatreba

ar3 u ASCIIti u radnom

s desnim klasični nač

varijabli (s

(engl. Wo

Workspace) u

omogućuje n

naredbe poteku. Oblik teku. Opcipostojeće d('-mat') ili Ai, a ne zar*', npr. t* s

e od A do Z

le prosjPCC

što smisleniključi iz ime

za par mj

I formatu. prostoru i pklikom i

čin brisanja

trukture,

orkspace

u prostor

nekoliko

ohranjuju naredbe

ija save datoteke. ASCII ('-rezi. Pri se koristi

Z, koristi

C,

ija: npr. ena. Ako jeseci ili

pritisnuti izborom varijabli

Page 18: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Primjeri: clear – briše sve varijable iz radnog prostora, clear a b c – briše varijable a, b i c iz radnog prostora, clear global – briše globalne varijable iz radnog prostora, clear t* – briše sve varijable na slovo t iz radnog prostora. Često je korisno izvući samo jedan podatak iz varijable. Izvlačenje ili ekstrakcija dijela podataka iz varijabli ovisi o tipu varijable. Kako Matlab i Octave podrazumijevaju da je svaki broj matrica, te za sve operacije koriste matričnu matematiku, prvo će se upoznati s izvlačenjem podataka iz matrica. Uzmimo za primjer da je u radnom prostoru matrica:

0730

31063

2952

1841

A

Matricu se u Matlab ili Octave može unijeti na više načina. U glavnom prozoru se članovi u retku razdvajaju s razmakom, a redovi s točka-zarezom. Drugi način je razdvojiti retke s tipkom enter: A=[1 4 8 1; 2 5 9 2; 3 6 10 3; 0 3 7 0] A=[1,4,8,1;2,5,9,2;3,6,10,3;0,3,7,0] A=[1 4 8 1 2 5 9 2 3 6 10 3 0 3 7 0] Napomena: Na ovaj posljednji način, ako se matrica unosi u glavnom prozoru, onda između redaka treba koristiti „shift“ + „enter“ kombinaciju, koja označava nastavak naredbe. Inače, nove inačice Matlaba smatraju da je s „enter“ gotova matrica i zatvaraju je. Alternativno, može se u Matlabovom editoru ukucati matrica koja vizualno izgleda kao normalna matrica pisana rukom, te kopirati glavni prozor. Izvlačenje specifičnog člana matrice postiže se pozivom retka i stupca, npr. A(2,2) poziva član iz drugog retka i drugog stupca, a A(3,1) iz trećeg retka i prvog stupca. >> A(2,2) ans = 5 >> A(3,1) ans = 3 Primijetite da Matlab ili Octave automatski pridaju odgovoru na vaš upit varijablu ans (engl. answer, odgovor). To se ne događa ako se odredi ime varijable u koje se želi upisati vrijednost. >> b=A(2,4) b =

Page 19: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

2 Izvlačenvarijablstupac). >> A(2,ans = 2 5>> A(:,2ans = 4 5 6 3 Ako se znači sj >> A(2:ans = 5 9 6 1 Može sesve do z >> A(3:ans = 3 6 0 3>> A(:, ans = 4 5 9 6 1 3 7>> A(enans = 0 3

nje retka ve koji se, u. Tako se np

,:)

5 9 2 2)

želi izvućiecište drugo

:3,2:3)

9 10

e koristiti i zadnjeg retk

:end, :)

6 10 3 3 7 0 2:end)

8 1 9 2

10 3 7 0 nd, 1:end)

3 7 0

vrši se nareu ovom slupr. mogu izv

i određeni og i trećeg s

rezerviranaka/stupca. N

a)

edbom A(reučaju, nalazvući drugi s

dio matricestupca s dru

a riječ end, Npr.:

edak, :), gdze u retku. stupac ili red

e, tada se uugim i trećim

ako se želi

b)

dje „:“ znaIzvlačenje

dak kao u p

upotrebljavam retkom.

izvući dio

ači da se ustupca se vrimjeru:

a naredba n

matrice od

c)

uzimaju svi vrši naredb

npr. A(2:3,2

d nekog retk

članovi bom A(:,

2:3), što

ka/stupca

Page 20: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Slika dijelreda

Primijetriječ endse ona uA(:, 2:edrugi stuOdređiv >> size(ans = 4 4 Ako se >> [m nm = 4 n = 4 Sada se >> A(3:ans = 3 6 0 3>> A(:, ans = 4 5 9 6 1 3 7>> A(mans = 0 3

6. Izvlačenjla drugog i aka i stupac

tite da se md je povoljnunosi s nek

end) napisatupac s npr.

vanje dimen

(A)

4

te podatke ž

n]=size(A)

za izlučiva

:m, :)

6 10 3 3 7 0 2:n)

8 1 9 2

10 3 7 0

m, 1:n)

3 7 0

je dijela potrećeg retka

ca osim prvo

moglo napisno koristiti kkim ulazom i A(:, 2:4). A(:, 1:2:en

nzija matrice

želi iskorist

anje dijela m

d)

dataka iz ma i stupca Aog stupca A

A

sati A(end, kada prilikoili ispitivan

Može se ispd) za neparne izvršava s

titi, potrebno

matrice mož

matrica:a) dA(2:3,2:3), c(:, 2:end), e

A(end, 1:end

1:end) i kaom programnjem dimenpisati i svakne stupce il

se naredbom

o ih je stavi

e umjesto e

e)

drugog retkac) zadnja dve) zadnjeg rd).

ao A(4,1:4)miranja nije nzija matricki drugi redali parne retkm size, kao n

iti u neku va

end koristiti

a ili stupca Ava retka A(3retka i svih s

s istim učipoznata vel

ce. Isto takoak s npr. A(

ke s npr. A(2npr.:

arijablu:

m odnosno

A(2,:) i A(:,3:end, :), d)stupaca u nj

inkom. Rezličina matrio se moglo (1:2:end, :) 2:2:end, :).

o n.

2), b) svih

njemu

zervirana ice, nego umjesto ili svaki

Page 21: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Strukture i polja ćelija omogućuju grupiranje podataka različitih tipova i dimenzija u jednu cjelinu. >> v={'Temperatura',[25 27 32 26]} v = 'Temperatura' [1x4 double] >> v{2} ans = 25 27 32 26 >> v{2}(2) ans = 27 Stvaranje strukture moguće je i naredbom struct. >> Meteo=struct('ime', 'Temperatura','podaci',[25 27 32 26]) Meteo = ime: 'Temperatura' podaci: [25 27 32 26] >> Meteo.podaci ans = 25 27 32 26 >> Meteo.podaci(3) ans = 32 Napomena: Ove strukture može se koristiti i npr. za praćenje meteoroloških podataka tijekom dana. Ako se mjeri u 8, 12, 14 i 20 sati temperatura i vlaga, tada bi mogli imati za 1 dan: v={'Temperatura',[25 27 32 26], 'Vlaga', [45 42 41 45]}. Tako se može izdvojiti vlaga i temperatura u određeni sat. Naredbom whos ispisuju se varijable iz radnog prostora, npr.: >> whos Name Size Bytes Class Attributes Meteo 1x1 406 struct Za opće snalaženje u Matlabu ili Octaveu potrebno je još znati baratati direktorijima i učitavati datoteke te koristiti neke općenite naredbe operacijskog sustava. Uobičajeno učitavanje datoteka je s naredbom load. Nakon naredbe se piše ime datoteke koja se želi učitati. Ukoliko nema odgovarajuće datoteke u trenutnom folderu, a niti u definiranim folderima, tada se ispisuje poruka o grešci: >> load a.mat ??? Error using ==> load Unable to read file a.mat: No such file or directory. Međutim, ako datoteka postoji u bilo kojem folderu koji je postavljen u Matlabu, tada će se ona i učitati. Matlabu dostupni folderi su definirani prilikom instalacije Matlaba i obuhvaćaju

Page 22: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Matlabokorisničti foldekorisniknazivompomoću

Naredbo >> pwdans = C:\User Naredbojednu ra >> cd ..>> pwdans = C:\User>> cd M>> pwdans = C:\User Naredbowhat ispeventua >> whatM-files ATR_na

ove folderečke datotekeeri koristiti.ku ovlasti pim matlab, wu izbornika

om pwd isp

d

rs\Igor\Docu

om cd mijenazinu viši.

d

rs\Igor\DocuMATLAB d

rs\Igor\Docu

om what isppisuje se ko

alne opcije o

t in the curreanofotonika

e u Programe zbog ogra. Prilikom isanja i briswork ili MA„File“ i „Se

Slika 7. D

isuje se tren

uments\MA

nja se trenu

uments

uments\MA

pisuje se saoji su tipovomogućuju

ent directorya

m Files dianičenja u oinstalacije,

sanja, a običATLAB. Oet Path“ kao

Dodavanje f

nutni folder

ATLAB

utni direktor

ATLAB

adržaj trenuvi datoteka ispisivanje

y C:\Users\I

irektoriju. Uovlastima, a

definira sčno se nalaz

Ostali foldero na slici 7.

foldera koji

r:

rij. Ako se u

utnog folderprisutni. Kdodatnih po

Igor\Docum

U njima obali su se prije i jedan rzi u folderu ri se mogu

su dostupn

upotrijebe „

ra, što je slKod naredbeodatka.

ments\MATL

bično nije je ti verzijaradni foldeDocumentsdodati s n

i Matlabu.

„..“ kreće se

ično naredbe dir se dat

LAB

moguće za Windowsaer u kojems ili Dokum

naredbom p

e u direktor

bi dir. Kod toteke izlist

apisivati a mogli i

postoje menti pod path ili s

ij koji je

naredbe tavaju, a

Page 23: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

CalculaFFTfrac Sadržaj kada se >> dir . .. Productdeploytoinsttypelcdata.xlcdata.xlicense.tm3iregimatlab.b Slika 8 p

Naredboupiše imNaredbopostiže prosljeđ

ateGradientsctsplinefilte

foldera C:otvori taj d

matlab mbuild

tRoots mool.bat m

e.ini mexml mexsd metxt meistry mbat reg

prikazuje m

om delete bme onoga štoom type i nse ispis e

đuje operativ

s ers

:\Program Fdirektorij.

b.exe sd.bat tmcc.bat mex.bat ex.pl exext.bat exsetup.pm xutils.pm

mw_mpiexecgistry

mjesta za int

Slika

briše se datoo se želi bri

navođenjem kran po ekvnom susta

Files\MATL

slprj texture util vrheat_ vrmount_ vrmoun vrmou win64 c.bat wor

teraktivno u

a 8. Interakt

oteka ili objisati. Može imena dato

kran. Ako vu.

LAB\R2011

_anim.avi _anim_1.tif nt_anim_2.tunt_anim_3 rker.bat

upravljanje f

tivno uprav

jekt iz foldese brisati i v

oteke izlistase ispred

1a\bin može

tif .tif

folderima.

vljanje folde

era odnosnoviše datotekava se cijelanaredbe na

e se dobiti

erima.

o memorijeka i koristitia datoteka. Napiše „!“, t

npr. nared

e. Nakon nai „*“. Naredbom tada se ta

dbom dir

aredbe se

more on naredba

Page 24: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Slik

a)

ka 9. Brisan

nje: a) datot

teke iz trenu

utnog folder

b)

ra, b) varijaable.

Page 25: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

3. OPERATORI I MATEMATIČKE FUNKCIJE I Matlab i Octave imaju široki raspon matematičkih funkcija koje su već definirane tako da se samo trebaju pozvati. Uz to, brojevi, matrice, vektori i funkcije kombiniraju se različitim operatorima. Operatori mogu biti aritmetički, relacijski i logički. U ovom poglavlju se bavi s operatorima i funkcijama. Općenito govoreći, sve funkcije u Matlabu mogu se podijeliti na: interne, unutar alatki te definirane od strane korisnika (najčešće m-funkcije). 3.1. Aritmetički operatori Aritmetički operatori su: plus (+), minus (-), puta (*), dijeljeno (/), dijeljenje ulijevo (\), potencija (^) i transponirano ('). Primjeri aritmetičkih operacija (Matlab/Octave čak i skalare vidi kao matrice, pa su ovo matrične operacije): A+B A-B A*B A.*B A/B A./B A\B A.\B A^B A.^B A' A.' Može se primijetiti da su operacije dane s točkicom i bez nje, jer Matlab/Octave podržava dva različita tipa aritmetičkih operacija:

- matrične i - aritmetiku polja (engl. array arithmetic).

Matrične operacije se izvršavaju prema pravilima linearne algebre, tj. matematike matrica. Operacije aritmetikom polja izvršavaju se element po element. Točkica označava razliku između ta dva načina računanja, jer označava proračun element po element. Točkica se ne koristi kod zbrajanja i oduzimanja, jer je ono jednako i za aritmetiku polja i za matrični proračun.

Tablica 1. Aritmetički operatori i objašnjenja.

Operator Objašnjenje

+

Zbrajanje dvije matrice ili skalara. Pribrojnici moraju biti istih dimenzija. Jedino se skalar može pridodati bilo kojoj matrici tako da se svakom članu matrice dodaje iznos skalara. Primjeri: >> A=[1 2; 3 4]; B=[0 1; 2 3]; c=-1; >> A+B ans = 1 3 5 7 >> A+c

Page 26: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

ans = 0 1 2 3

-

Oduzimanje dvije matrice ili skalara. Oduzima se svaki član prve i odgovarajućim članom druge matrice. Ako se oduzima skalara, onda se od svakog člana matrice oduzima vrijednost skalara. Matrice moraju biti istih dimenzija. Primjeri: >> A-B ans = 1 1 1 1 Napomena: 1-0=1, 2-1=1, 3-2=1, 4+3=1 >> A-c ans = 2 3 4 5 Napomena: 1-(-1)=2, 2-(-1)=3, 3-(-1)=4, 4-(-1)=5 >> c-A ans = -2 -3 -4 -5 Napomena: -1-1=-2, -1-2=-3, -1-3=-4,-1-4=-5

*

Matrično množenje. C = A*B je linearni algebarski umnožak matrica A i B. Pri tome broj stupaca A mora biti jednak broju redaka B. Skalar se može množiti s bilo kojom matricom. Primjeri: >> A*B ans = 4 7 8 15 Napomena: 1*0+2*2=4, 1*1+2*3=7, 3*0+4*2=8, 3*1+4*3=15 >> A*c ans = -1 -2 -3 -4 Napomena: 1*(-1)=-1, 2*(-1)=-2, 3*(-1)=-3, 4*(-1)=-4

.*

Množenje poljima ili član po član, A.*B, je umnožak elemenata prve i druge matrice, a ne matrični umnožak. A i B moraju biti iste veličine ili skalar(i). >> A.*B ans = 0 2 6 12 Napomena: 1*0=0, 2*1=2, 3*2=6, 4*3=12

/

Matrično desno dijeljenje (engl. slash ili matrix right division) označava se s B/A i obično je jednako množenju B s inverzom od A, B*inv(A). Striktno gledajući može se pisati: B/A = (A'\B')'. >> A/B ans = 0.5000 0.5000 -0.5000 1.5000 Napomena: provjeriti dobiva li se isti rezultat i kada se zada B/A = (A'\B')'.

Page 27: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

./

Desno dijeljenje član po član (engl. array right division) se označava s A./B te je jednako dijeljenju elementa prve s odgovarajućim elementom druge matrice, A(i,j)/B(i,j). A i B moraju biti iste veličine ili skalari. >> A./B ans = Inf 2.0000 1.5000 1.3333 Napomena: Oznaka Inf znači beskonačno, tj. došlo je do dijeljenja s nulom, jer u ovom primjeru imamo 1/0 za prvi član, 2/1=2 za drugi, itd.

\

Lijevo dijeljenje matrica (engl. backslash ili matrix left division). Ako je A kvadratna matrica, tada je A\B jednako inv(A)*B. Ako je A kvadratna matrica, a B stupčasti vektor s n elemenata ili matrica s nekoliko takvih stupaca, onda je rezultat lijevog dijeljenja jednak rješenju sustava jednadžbi AX = B. Ako je A veličine mxn uz m ~= n te B stupčasti vektor s m elemenata ili matrica s nekoliko takvih stupaca onda je X = A\B rješenje u smislu postupka najmanjih kvadrata sustava jednadžbi AX = B. Stvari rank, k, matrice A određuje se iz QR rastava s pivotiranjem. >> A\B ans = 2.0000 1.0000 -1.0000 0

.\

Lijevo dijeljenje član po član (engl. array left division). Rezultat ovog dijeljenja A.\B je matrica s elementima B(i,j)/A(i,j). Da bi se moglo izvršiti proračun potrebno je da su obje matrice istih dimenzija ili skalar(i). >> A.\B ans = 0 0.5000 0.6667 0.7500

^

Potenciranje matrica. A^c je matrica A na c-tu potenciju, ako je c skalar. Ako je c cijeli broj, potencija se računa ponovljenim množenjem. Za negativne vrijednosti se prije ponovljenog množenja računa inverz. Za ne-cjelobrojne vrijednosti vrijedi složenija formula za računanje. c^A je c na A-tu potenciju. A^B je greška ako su oboje matrice. Primjeri: >> A^B ??? Error using ==> mpower Inputs must be a scalar and a square matrix. To compute elementwise POWER, use POWER (.^) instead. >> c^A ans = 0.2040 - 0.9206i -0.2720 -0.4079 - 0.0000i -0.2040 - 0.9206i >> A^c ans = -2.0000 1.0000 1.5000 -0.5000

.^

Potenciranje član po član (potenciranje polja, engl. array power). A.^B je matrica s elementima A(i,j) na B(i,j) potenciju. A i B su ili skalari ili matrice istih dimenzija. >> A.^B ans =

Page 28: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

1 2 9 64

'

Transponiranje matrica označeno je apostrofom (npr. A'), a kod kompleksnih vrijednosti je riječ o konjugirano kompleksnoj transponiranoj vrijednosti. Kod transponiranja član po član (.9) A.' je transponirana vrijednost matrice A, osim što kod kompleksnih vrijednosti ne uključuje transponiranje. >> A' ans = 1 3 2 4 >> A.' ans = 1 3 2 4

Za Tablicu 1 je pretpostavljeno da se radi u formatu dvostruke preciznosti (double). Aritmetički operatori mogu se primijeniti i na vrijednosti u formatu jednostruke preciznosti (single). Ako se kombiniraju vrijednosti s jednostrukim i dvostrukim formatom, tada je odgovor u jednostrukom formatu. Na cjelobrojne tipove podataka može se primijeniti većina aritmetičkih operatora koristeći, po potrebi, konverzacijsku naredbu uint od 8, 16, 32 i 64 bita. Kod cjelobrojnih vrijednosti, ne mogu se koristiti kompleksni brojevi. Ako su A i B polja cjelobrojnih vrijednosti (matrice) istog broja bita (ili 8 ili 16 ili 32 ili 64, ali ne npr. 8 i 16), a c skalar dvostruke preciznosti ili istog tipa kao A i B, onda se mogu izvoditi sljedeće operacije: +A, -A, A+B, A+c, c+B, A-B, A-c, c-B, A.*B, A*c, c*B, A/c, c/B, A.\B, A./B, A.^B ako se B sastoji od pozitivnih cjelobrojnih vrijednosti, c^k, za skalar c i pozitivni skalar cjelobrojne vrijednosti k, koji su istog tipa ili je jedan

dvostruke preciznosti (double) i A.', A'.

Ne mogu se izvoditi operacije: A*B, A\B i A/B. Neke aritmetičke operacije imaju i funkcije kojima se mogu pozivati, a ne samo operatore. To prikazuje Tablica 2.

Tablica 2. Funkcije jednake operatorima. Operacija Izraz s operatorima Izraz s funkcijama Binarno zbrajanje A+B plus(A, B) Unarni (engl. Unary)2 plus, tj. predznak +A uplus(A) Binarno oduzimanje A-B minus(A,B) Unarni minus -A uminus(A) Množenje matrica A*B mtimes(A,B)

                                                            2 Pojam u matematici, programiranju i računarstvu kada se operacija, funkcija, procedura ili logička vrata, uzimaju točno tako da se koristi jedan operand, argument parametar ili ulaz koji ima dimenziju 1. U najjednostavnijem slučaju, to je operacija predznaka.

Page 29: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Množenje član po član (engl. arraywise multiplication)

A.*B times(A,B)

Matrično desno dijeljenje A/B mrdivide(A,B) Desno dijeljenje član po član A./B rdivide(A,B) Matrično lijevo dijeljenje A\B mldivide(A,B) Lijevo dijeljenje član po član A.\B ldivide(A,B) Matrično potenciranje A^B mpower(A,B) Potenciranje član po član A.^B power(A,B) Kompleksno transponiranje (engl. complex transponse)

A' ctranspose(A)

Transponiranje matrice A.' transpose(A) 3.2. Relacijski operatori Relacijski operatori su: manje (<), veće (>), manje ili jednako (<=), veće ili jednako (>=), jednako (==) i nije jednako (~=). Odgovor može biti logička "0" ili "1". Primjeri upotrebe: >> A =1; B=2; A < B ans = 1 To znači da je istinita tvrdnja kako je A manje od B. >> A > B ans = 0 >> A <= B ans = 1 >> A >= B ans = 0 >> A == B ans = 0 >> A ~= B ans = 1 >> C=[1 2; 3 4]; B>C % Članovi matrice C koji su manji od B su logička 1 ans = 1 0 0 0 Kao što se vidi iz primjera, relacijski operatori izvode se element po element usporedbom između odgovarajućih članova. Vraćaju logičko polje iste veličine s logičkim 1 i 0. Operatori <, >, <= i >= koriste samo realni dio kompleksnih brojeva za usporedbu. Operatori == i ~= ispituju i realni i imaginarni dio.

Page 30: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Matlab omogućuje ispitivanje jednakosti znakova, a za to se koristi funkcija strcmp, koja omogućuje usporedbu vektora različitih duljina. Uz to, u nekim alatkama (engl. toolboxes) funkcioniranje operatora drukčije je definirano te se oni ponašaju u skladu s pravilima te alatke. Umjesto znakova, mogu se koristiti funkcije koje obavljaju iste operacije: eq (==), ne (~=), lt (<), gt (>), le (<=) i ge (>=). 3.3. Logički operatori Logički operatori su: I (AND) &, ILI (OR) |, Ekskluzivno (isključivo) ILI (exclusive OR) xor, NE (NOT) ~, preskakujući I (short-circuit AND)&& te preskakujući ILI (short-circuit OR) ||.

Preskakujući logički operatori uzimaju u obzir drugi operand (izraz) samo ako se rezultat ne može potpuno odrediti iz prvih operanda (izraza). Preskakujuća I (&) operacija koristi sintaksu prvi izraz && drugi izraz i u biti je logička I operacija, kod koje se uzima u obzir drugi izraz samo ako nije odredivo rješenje iz prvog. Ako je prvi izraz 0, onda prvi izraz && drugi izraz daje rezultat 0 (laž, false), bez obzira na vrijednost drugog izraza. Tehnički gledajući, Matlab ne računa s drugim izrazom; on je preskočen. Preskakujuća ILI (|) operacija3 koristi sintaksu prvi izraz || drugi izraz i u biti je logička I operacija, kod koje se uzima u obzir drugi izraz samo ako nije odredivo rješenje iz prvog.

Tablica 3. Primjer rezultata funkcija s preskakanjem

A B A&&B B&&A A||B B||A 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1

Bez obzira na to što rezultat u ovom jednostavnom slučaju izgleda jednako i za jedan i za drugi redoslijed izraza, bitno je znati koji se izraz u Tablici 3 uzima u obzir, a koji ne, jer se u praksi sreću izrazi koji imaju logički rezultat, a ne obični skalari. Dakle, kod A && B se uzima u obzir A, dok se kod B && A uzima u obzir B. Logičke operacije &, |, ~ i xor su sintakse izraz1 & izraz2, izraz1 | izraz2 i ~izraz. Ovi izrazi se često koriste u uvjetnim izrazima popit if i while. Logički operatori daju rješenje u logičkom polju od nula i jedinica. Tablica 4 daje jednostavni primjer ovih operacija.

Tablica 4. Primjer rezultata logičkih funkcija

A B A & B A | B xor(A, B) ~A ~B 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 0

                                                            3 Za brojeve je isto i redosliijed i && ili &. Za izraze nije, jer && znači da drugi izraz preskačemo pa B&&A nije isto kao A&&B dok je A&B isto kaoB&A. 

Page 31: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Logičke operacije na poljima, skupovima, vektorima, matricama i sličnim strukturama obavljaju se član po član. Izlazni rezultat je polje, skup, vektor ili matrica iste dimenzije, ali logičkih vrijednosti 0 ili 1. Naravno, operandi moraju u tom slučaju biti istih dimenzija. Ako je jedan operand skalar, a drugi npr. matrica, tada se skalar uspoređuje sa svakim članom matrice te je rezultat jednak dimenziji matrica, ali s logičkim 0 i 1. Matlab podržava i složene logičke izraze. Pri tome se mogu koristiti i zagrade. Tako su npr. sljedeći izrazi različiti: (izraz1 & izraz2) | (izraz3 & izraz4) izraz1 & (izraz2 | izraz3) & izraz4 Matlab uvijek daje prioritet kod razmatranja složenih izraza operatoru & naspram |. U načelu, obično se razmatraju izrazi s lijeva na desno. Međutim, kod a|b&c računat će kao da je riječ o a|(b&c). Stoga je preporučljivo koristiti zagrade. Lista prioriteta je: ~ NE (najviši) & I | ILI xor isključivo ILI && preskakujući I || preskakujući ILI (najniži)

Osim korištenja logičkih operatora, Matlab i Octave imaju imaju i funkcije koje izvršavaju iste operacije:

and(A,B) je isto što i A & B, or(A,B) je isto što i A | B, not(A) je isto što i ~A.

Primjer: Potrebno je naći elemente slučajne matrice koji su između 4 i 6. >> R=rand(5,7)*10 R = Columns 1 through 6 8.2346 4.3874 4.8976 2.7603 4.9836 7.5127 6.9483 3.8156 4.4559 6.7970 9.5974 2.5510 3.1710 7.6552 6.4631 6.5510 3.4039 5.0596 9.5022 7.9520 7.0936 1.6261 5.8527 6.9908 0.3445 1.8687 7.5469 1.1900 2.2381 8.9090 Column 7 9.5929 5.4722 1.3862 1.4929 2.5751 >> (R > 4) & (R < 6) ans = 0 1 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

Page 32: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Funkcije koje odgovaraju logičkim operatorima su relop za preskakujuće te and (&), or (|), not (~), xor. Uz to, postoji još nekoliko ponekad korisnih funkcija, kao npr. any, koja je istinita za svaki element koji nije jednak nuli i all, koja je istinita ako su svi elementi različiti od nule. 3.4. Operacije na skupovima U Matlabu i Octaveu su moguće i operacije nad skupovima. To su: union (unija skupova), unique (jedinstveni/unikatni skup), intersect (presjek skupova), setdiff (ispisuje članove iz prvog ulaza koji su različiti od drugog ulaza), setxor (engl. set exclusive-or, daje vrijednosti dva skupa koje nisu zajedničke jednom i drugom skupu, tj. unije bez presjeka) te ismember (vraća logičku jedinicu ako je član skupa argument funkcije). Primjer izvršavanja naredbe union: >> D=[1 2 4]; E=[0 3]; union(D, E) ans = 0 1 2 3 4 Naredba UNIQUE daje kao rezultat skup koji je sastoji od elemenata koji se ne ponavljaju. Npr. ako neki skup ili niz ima na više mjesta broj 2, onda će se u rezultatu funkcije samo jednom pokazati taj broj. Kod polja se može birati i izvršavanje po recima ili stupcima. Primjer ove naredbe: >> x=[1 2 5 1 2 4]; >> unique(x) ans = 1 2 4 5 Primjer naredbe setdiff: >> setdiff(D,x) ans = Empty matrix: 1-by-0 >> setdiff(D,E) ans = 1 2 4 >> setdiff(E,D) ans = 0 3 3.5. Operacije nad matricama Iako Matalb i Octave programski paketi računaju s matricama kao osnovnim tipom te čak i obične brojeve promatraju kao 1x1 matrice, postoje dodatne funkcije koje se specifično odnose na matrice, a to su: - elementarne funkcije na matricama i poljima te - funkcije matrične analize.

Page 33: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Tablica 5. Elementarne funkcije nad matricama i poljima FUNKCIJA OBJAŠNJENJE blkdiag konstruira blok dijagonalnu matricu iz ulaznih argumenata colon (:) stvara vektore i polja s indeksima ili for-petljom diag dijagonalna matrica i dijagonalne matrica, ispisuje/izlučuje glavnu

dijagonalu matrice eye matrica identiteta (dijagonale su 1, a ostalo 0) freqspace razmak frekvencija za frekvencijski odziv ind2sub Prijelaz iz linearnog označavanja indeksa u indekse u obliku

podznakova linspace generiranje vektora s linearnim razmakom među članovima logspace generiranje vektora s logaritamskim razmakom među članovima meshgrid generiranje X i Y polja za 3-D grafove ndgrid generiranje polja za N-D funkcije i interpolaciju ones kreiranje polja kojemu je svaki član 1 rand jednoliko raspodijeljeni4 pseudoslučajni brojevi randi jednoliko raspodijeljeni pseudoslučajni cijeli brojevi randn normalno raspodijeljeni pseudoslučajni brojevi randstream struja (tok) slučajnih brojeva rng upravljanje generiranjem slučajnih brojeva sub2ind konvertiranje indeksa (subscript) u linearne oznake (engl. linear indices) zeros tvorba polja kojemu su svi članovi nule

Primjeri nekih funkcija: >> a=[1 2 3; 0 1 2; 2 2 0]; >> diag(a) ans = 1 1 0 >> eye(3) ans = 1 0 0 0 1 0 0 0 1 >> eye(3,3) ans = 1 0 0 0 1 0 0 0 1 >> ones(2) ans = 1 1 1 1 >> ones(2,2)

                                                            4 Jednoliko raspoređeni je prijevod s engleskog za uniformly distributed.

Page 34: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

ans = 1 1 1 1 >> zeros(2) ans = 0 0 0 0 >> zeros(3,2) ans = 0 0 0 0 0 0

Tablica 6. Funkcije za analizu matrica

FUNKCIJA OBJAŠNJENJE cond Uvjetni broj5 s obzirom na inverziju condeig Uvjetni broj s obzirom na svojstvene vrijednosti det Determinanta matrice norm Vektorska i matrična norma normest Procjena druge norme null Prostor nula rank Rank matrice rcond Procjena recipročnog uvjetnog broja matrice rref Reducirani oblik (svrstavanje u red) subspace Kut između dva potprostora trace Zboj dijagonalnih elemenata matrice

3.6. Ugrađene matematičke funkcije i njihova podjela Programski paketi Octave i Matlab imaju jako puno već gotovih (tj. ugrađenih) funkcija. Najvažnije grupe ugrađenih funkcija su: elementarne matematičke (gdje pripadaju trigonometrijske, eksponencijalne,

kompleksne, za zaokruživanje i ostaci te diskretne), polinomske, interpolacijske i geometrijske, nelinearne numeričke (gdje spadaju i funkcije za rješavanje raznih diferencijalnih

jednadžbi, rješavanje graničnih uvjeta, parcijalnih diferencijalnih jednadžbi, optimizaciju i numeričku integraciju te niz specijalnih funkcija),

funkcije za operacije rijetkim matricama. Neke trigonometrijske funkcije su: acos (arkus kosinus, rezultat u radijanima), acosd (isto, ali u stupnjevima), acosh, te ostali inverzi i arkusi, cos (kosinus u radijanima), cosd (kosinus argumenta u stupnjevima), cosh (hiperbolni kosinus), cot (kontanges), cotd, te ostale trigonometrijske i hiperbolne funkcije, hypot (drugi korijen zbroja kvadrata)...

                                                            5 Uvjetni broj (engl. condition number), mjeri osjetljivost rješenja lineranog sustava jednadži (prisjetite se rješavanja sustava jednadžbi) na greške u podacima.

Page 35: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Neke eksponencijalne funkcije su: exp, log (što se kod nas u matematici označva s ln), log10, log2, power (potenciranje polja), reallog (prirodni logaritam nenegativnih realnih polja), sqrt (drugi korijen), itd. Funkcije s kompleksnim brojevima su: abs, angle, complex (konstruira se kompleksni podatak iz realnih i imaginarnih komponenti), conj (konjugirano kompleksno), i ili j (imaginarna jedinica), imag, isreal, real, i dr. Napomena o pisanju kompleksnih brojeva, primjer: >> a=5+j6 Undefined function or variable 'j6'. >> a=5+6j a = 5.0000 + 6.0000i >> a=5+j*6 a = 5.0000 + 6.0000i Funkcije zaokruživanja i ostataka su: ceil (zaokruživanje prema pozitivnoj beskonačnosti), fix (zaokruživanje prema 0), floor (zaokruživanje prema negativnoj beskonačnosti), idivide (cjelobrojno dijeljenje i zaokruživanje), mod (modul nakon dijeljenja), rem (ostatak nakon dijeljenja) te round (zaokruživanje prema najbližoj cijelobrojnoj vrijednosti). Funkcije diskretne matematike su: factor (prim faktori), factorial (faktorijel), gcd (najveći zajednički djelitelj), isprime (elementi polja koji su prim brojevi), lcm (najmanji zajednički), nchoosek (binomni koeficijent ili kombinacije), perms (sve moguće permutacije), primes (lista prim brojeva), te rat i rats (aproksimacija racionalnog razlomka). Neke funkcije interoplacije su: dsearch, griddata, interp1, interp2, interp3, interpft, meshgrid, mkpp, ndgrid, ppval, spline, itd. Matlab ima i funkcije za pretvodbu koordinata između Kartezijevih, polarnih, cilindričnih i sfernih (cart2pol, cart2sph, pol2cart, sph2cart). Obične diferencijalne jednadžbe mogu se rješavati raznim postupcima te postoji široki izbor funkcija iz ovog područja, kao npr. decic, ode15i, ode23, ode45, ode113, ode15s, ode23s, ode23t, ode23tb, odefile, itd. Za parcijalne diferencijalne jednadžbe postoje funkcije kao npr. pdepe ili pdeval. Specijalne funkcije su: airy, besselh (Besselova ili Hankelova funkcija), besseli, besselj, besselk, bessely, beta, betainc, betaincinv, betaln, llipj (Jacobijeva eliptička funkcija), sellipke, erf (funkcija greške), erfc, erfcinv, erfcx, erfinv, expint (eksponencijalni integral), gamma, gammainc, gammaincinv, gammaln i legendre. Funkcije za proračun rijetkih matrica6 (engl. Sparse Matrices) su elementarne operacije sa slučajnim i neslučajnim rijetkim matricama, funkcije pretvorbe iz rijetke u punu matricu i obrnuto, funkcije testiranja matrica, dobivanja informacija o rijetkim matricama, vizualizacije rijetkih matrica, algoritmi pregrupiranja matrica i dr. Primjeri ovih funkcija su: nnz (broj elemenata matrice različit od 0), nonzeros (elementi matrice koji nisu 0), nzmax (količina memorije koju treba alocirati za elemente koji nisu 0), spalloc (alociranje prostora za rijetke matrice), spones (zamijena rijetke matrice s matricom punom jedinica), spy (vizualizacija sheme rasprostranjenosti) i dr.

                                                            6 U numeričko analizi rijetka matrica je matrica u kojoj je većina elemenata jednaka nuli. Gusta matrica je ona kod koje je većina elemenata različita od nule. Udio elemenata jednakih nuli se naziva gustoćom (engl. sparsity ili density). Sustavi koji su opisani rijetkim matricama su slabo spregnuti, tj. slabo međusobno povezani. Npr. električna mreža s više zavojnica bez međuinduktiviteta bi bilo opisan rijetkom matricom.

Page 36: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Funkcije iz linearne algebre spadaju u izvorište oba programska paketa – i Matlaba i Octavea. Kod njih se računaju norme, svojstvene vrijednosti, faktorizacije, rankovi, rješenja linearnih jednadžbi i sustava linearnih jednadžbi, itd. Konačno, zanimljivo je još spomenuti nekoliko matematičkih konstanti (što se u programerskoj terminologiji naziva i internim varijablama): eps (relativna točnost u aritmetici pomičnog zareza), i i j (imagniarne jedinice), Inf (beskonačno), intmax (najveća vrijednost specificiranog cjelobrojnog tipa), intmin (najmanja vrijednost specificiranog cjelobrojnog tipa), NaN (nije broj, engl. Not-a-Number), pi (omjer opsega i dijametra kruga), realmax (najveća pozitivna vrijednost broja s pomičnim zarezom) i realmin (najmanji pozitivni realni broj u aritmetici pomičnog zareza). Trenutne vrijednosti navedenih konstanti su:

eps=2,2204e-16 (točnost realnih brojeva, tj. razlika između 1.0 i prvog većeg broja), realmin=2,2250733858507202e-308 (to je u biti vrijednost najmanjeg realnog broja), realmax=1,797697134862316e+308 (to je u biti vrijednost najvećeg realnog broja), pi=3, 14159265358979, Inf (1/0), NaN (0/0).

3.7. Funkcije i operacije nad polinomima Polinomi se u Matlabu i Octaveu opisuju vektorima koji sadržavaju koeficijente uz pojedine potencije nezavisne varijable, npr. x ili t. Tako se npr. polinom 14)( 25 xxxP piše kao P=[1 0 0 4 0 1]. Kada se želi izračunati korijene polinoma, tada se koristi funkcija roots. Naredbom poly se dobiva polinom iz korijena. >> P=[1 0 0 4 0 1] P = 1 0 0 4 0 1 >> roots(P) ans = -1.6354 0.8255 + 1.3301i 0.8255 - 1.3301i -0.0078 + 0.4995i -0.0078 - 0.4995i >> poly(ans) ans = 1.0000 -0.0000 0.0000 4.0000 -0.0000 1.0000 Množenje polinoma izvršava se naredbom conv isto kao i konvolucija, a dijeljenje s deconv, isto kao i dekonvolucija. Ako se traže dva izlaza, tada je prvi rezultat dijeljenja, a drugi ostatak ([R,S]=deconv(P,Q)). Naredbom polyder se izvršava derivacija polinoma, a naredbom polyfit računaju se koeficijenti polinoma postupkom najmanjih kvadrata. Primjeri: >> p=[1 2 1]; q=[2 0 2 1]; >> conv(p,q) ans = 2 4 4 5 4 1 >> deconv(q,p)

Page 37: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

ans = 2 -4 >> polyder(p) % Napomena: 22)'12( 2 xxx ans = 2 2 >> [R,S]=deconv(q,p) R = 2 -4 S = 0 0 8 5 Nekada se upotrebljavaju i funkcije: polyeig (rješavanje problema svojstvenih vrijednosti kod polinoma), polyfit (popunjavanje krivulja), polyint (analitičko integriranje polinoma), polyval (evaluacija polinoma u nekoj točki/točkama), polyvalm (evaluacija matričnog polinoma) te residue (konverzija između rastava u razlomke i polinomskih koeficijenata).

>> polyint(p) % Napomena: 02

23

1223

2 xxx

dxxx

ans = 0.3333 1.0000 1.0000 0 >> polyval(p,5) % Napomena: 52 +25+1

ans = 36

3.7. M-funkcije i skripte M-funkcije i skripte su dobile ime prema ekstenziji ".m", kojom se imenuju datoteke napisane u Matlabovom programskom jeziku. U Octaveu je ta ekstenzija ".oct". Ponekad se može naići i na ekstenziju ".p", koja znači da je neka datoteka zaštićena (engl. protected)7, tj. da se ne može vidjeti izvorni programski kod, iako je i to m-funkcija ili skripta. M-funkcije ili skripte piše korisnik ili je već unesena u Matlab. Funkcije i skripte se razlikuju prema sintaksi, jer se funkcije pozivaju imenom i argumentima u zagradi, dok se skripte pozivaju samo imenom, jer je to obični niz programskih linija koji se izvršava. M-funkcije i skripte su, u biti, obične tekstualne datoteke u kojima su zapisani nizovi naredbi. Sve varijable koje se koriste unutar funkcije su lokalne osim onih koje su izravno definirane kao globalne te izlaznih argumenata. Funkcije i skripte pišu se u bilo kojem tekstualnom editoru, a Matlab ima i već ugrađen svoj editor, koji se može pozvati s trake klikom na ikonicu ili naredbom edit. Primjer m-funkcije. Napišite u editor programski kod i onda sačuvajte funkciju po imenu koje ste definirali u function retku (ovdje nadji_najveci). % Funkcija za pronalaženje najvećeg elementa vektora A function najveci=nadji_najveci(A) % Ovaj komentar se ispisuje ako utipkamo help nadji_najveci. % Najveci je izlazni argument koji ostaje kada se završi funkcija.

                                                            7 P-kod je prijelazna verzija programa između onoga što korisnik napiše i što je potpuno čitljivo (izvorni kod, tekst, niz naredbi) i strojnog koda (binarnog niza brojeva koji je praktično nečitljiv). Strojni kod i p-kod razumije računalo i može ga izvršavati, ali ga ne može pročitati drugi programer te su tako zaštićena autorska prava. P-kod se dobiva naredbom pcode ime_izvorne_datoteke.m.

Page 38: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

% A je ulazni argument funkcije. Kod pozivanja funkcije ne mora se koristiti ime A. n=length(A); % duljina vektora A. Ako je A manji od 2 javit će se greška najveci=A(1); for i=2:n % ili 1:n-1 if A(i)>najveci % ili A(i+1) u slučaju iz gornjeg komentara najveci=A(i); % ili A(i+1) u slučaju iz komentara end; % zatvara se if end; % zatvara se for

Page 39: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

4. ANALITIČKE OPERACIJE U MATLABU Simbolička alatka (Symbolic Math Toolbox) omogućuje simboličke proračune, manipuliranje i rješavanje matematičkih izraza bez numeričkih postupaka te aritmetiku varijabilne preciznosti. Alatka sadrži stotine simboličkih funkcija koje omogućuju rješavanje različitih matematičkih zadataka, kao što su:

- deriviranje (uključujući i parcijalno), - integriranje (određeno i neodređeno) i integralne transformacije, - računanje granične vrijednosti (uključujući jednostrani limes), - redovi i nizovi, - operacije linearne algebre, matrični račun, - pojednostavljenja, - transformacije, - aritmetika varijabline preciznosti i - rješavanje različitih jednadžbi (algebarskih, diferencijalnih, matričnih, sustava).

Simbolički objekti su posebni tip podataka u Matlabu, koje koristi ova alatka. Omogućuju proračun na analitički način bez računanja numeričkih vrijednosti. To su: simboličke varijable, simbolički brojevi, simbolički izrazi i simboličke matrice. Simboličke varijable se moraju deklarirati naredbom syms. Deklariranje varijabli x, y i z se obavlja na način da se upiše: >> syms x y z Ovim varijablama se manipulira prema pravilima matematike, npr.: >> x + y + z + x - y ans = 2*x + z Naredbom sym mogu se kreirati simbolički izrazi i varijable: >> y = sym('y'); >> d = sym('delta'); U Simboličkoj alatki pi je rezervirana riječ. U Simboličkoj alatki mogu se konvertirati brojevi u simboličke objekte, npr.: >> br = sym('5') Mogu se kreirati i racionalni razlomci sa simboličkim brojevima: >> sym(4)/sym(7) ans = 4/7 >> sym(3/5) ans = 3/5

Page 40: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Kod normalnog rada, Matlab zbraja razlomke kao decimalne brojeve i takav se rezultat dobiva. S druge strane, kod Simboličke alatke, Matalb nalazi zajednički nazivnik i kombinira konačno rješenje8, npr. >> sym(1/4) + sym(1/2) ans = 3/4 Ako se želi proučavati neka funkcija, potrebno je definirati sve konstante i varijable u izrazu. Tako se npr. kvadratna jednadžba kreira s: >> syms a b c x >> f = a*x^2 + b*x + c; Primjer kreiranja matrice 3x4: >> B = sym('B', [3 4]) B = [ B1_1, B1_2, B1_3, B1_4] [ B2_1, B2_2, B2_3, B2_4] [ B3_1, B3_2, B3_3, B3_4] Pojednostavljenja, proširenja i uljepšavanja izraza nisu jednoznačna. Rezultati se razlikuju od inačice do inačice Matlaba. Neke naredbe su: expand, pretty, simplify, factor. Naredbom factor ističu se korijeni polinoma. Npr. >> syms x; >> g = x^3 + 6*x^2 + 11*x + 6; >> factor(g) ans = (x + 3)*(x + 2)*(x + 1) Moguće je uvrstiti neku vrijednost za varijablu: >> syms x; >> f = 3*x^2 - 5*x + 1; >> subs(f, 2) ans = 3 >> f f =

                                                            8 Usporedba bez i sa simboličkim varijablama:  >> sym(1/4) + sym(1/2)  ans = 3/4  >> 1/4+1/2 ans =0.7500  

Page 41: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

3*x^2 - 5*x + 1 >> syms x y; >> funkc = x^2*y - 2*x*sqrt(y); >> subs(funkc, x, 1) ans = y - 2*y^(1/2) U Simboličkoj alatki moguće je zamijeniti jednu simboličku varijablu s drugom. Npr. zamijeniti varijablu x sa y: >> subs(funkc, y, x) ans = x^3 - 2*x^(3/2) Simbolička alatka omogućuje deriviranje funkcije jedne varijable, parcijalno deriviranje, derivacije drugog i višeg reda i miješane derivacije. Za deriviranje se koristi naredba diff. Sljedeći primjeri prikazuju moguće načine korištenja ove naredbe9: >> syms x; >> f = sin(x)^2; >> diff(f) ans = 2*cos(x)*sin(x) >> syms x y; >> f = sin(x)^2 + cos(y)^2; >> diff(f) ans = 2*cos(x)*sin(x) >> syms x y; >> f = sin(x)^2 + cos(y)^2; >> diff(f, y) ans = -2*cos(y)*sin(y) >> syms x y; >> f = sin(x)^2 + cos(y)^2; >> diff(f, y, 2) ans = 2*sin(y)^2 - 2*cos(y)^2 Isti rezultat kao s diff(f,y,2) dobije se ako se dvaput zaredom koristi naredba diff, npr. diff(diff(f, y)). Ako se želi izračunati miješana derivacija, tada se koriste dvije diff naredbe, kao u primjeru:

                                                            9 >> diff(f)  ans =2*cos(x)*sin(x)  >> simplify(ans)  ans = sin(2*x) 

Page 42: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

>> syms x y; >> f = x^2 + y^2; >> diff(diff(f, y), x) ans = 0 Slično se računaju i parcijalne derivacije. Integriranje se u ovoj alatki izvršava naredbom int. >> syms x; >> f = sin(x)^2; >> int(f) ans = x/2 - sin(2*x)/4 Matlab kada nije naglašeno integrira po varijabli x ili najbližoj varijabli tom slovu ukoliko nema varijable x. Integriranje prema željenoj, a ne predodređenoj varijabli obavlja dopisivanjem te varijable u argument, npr. int(f,y) – integriranje f po y. Ako se dodaju još dva argumenta, dobiva se određeni integral, npr. int(f, 1, 10). Granica integriranja može biti i beskonačno (piše se Inf, od engl. Infinity), a ponekad beskonačno može biti rezultat integriranja. Slijedi primjer određenog integrala: >> syms x >> f=x^2; >> int(f,0,1) ans = 1/3 U ovoj alatci mogu se riješiti algebarske jednadžbe s jednom ili više varijabli, sustavi algebarskih jednadžbi i diferencijalne jednadžbe. Koristi se naredba solve. >> solve(x^2+3*x+2) ans = -2 -1 >> solve(x^2+1) ans = i -i Ako desna strana nije jednaka nuli, onda se koriste apostrofi (jedna strana polunavodnika): >> syms x; >> solve('x^3 - 6*x^2 + 11*x - 5 = 1') ans = 1 2 3 Primjer rješavanja sustava dvije jednadžbe s dvije nepoznanice:

Page 43: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

>> syms x y >> [x,y]=solve('x+y=1','x-y=0') x = 1/2 y = 1/2 Najjednostavniji način crtanja grafa funkcije je narebom ezplot. >> syms x; >> ezplot(x^3 - 6*x^2 + 11*x - 6);

Slika 12. Primjer krivulje iscrtane naredbom ezplot Osim eksplicitnih izraza, naredba ezplot prihvaća i implicitno definirane funkcije. Sljedeći primjer iscrtava implicitno definiranu funkciju u domeni –1 < x < 1. >> syms x y; >> f = (x^2 + y^2)^4 - (x^2 - y^2)^2; >> ezplot(f, [-1 1]); % može se dodati i druga koordinata npr. ezplot(f, [0 1], [-1,0]); >> hold on; >> xlabel('x axis'); ylabel('y axis'); >> title('Implicit function: f = (x^2 + y^2)^4 - (x^2 - y^2)^2'); >> grid on;

-6 -4 -2 0 2 4 6

-500

-400

-300

-200

-100

0

100

x

x3 - 6 x2 + 11 x - 6

Page 44: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Slika 13. Primjer iscrtavanja implicitne funkcije ezplot naredbom

Simbolička alatka može se koristiti i za 3-D grafiku. U tu svrhu se koristi ezplot3. Uz to, postoje i naredbe ezpolar, koja iscrtava funkciju u polarnim koordinatama, ezsurf, koja iscrtava površinu simboličke funkcije, ezcontour, koja iscrtava konture simboličke funkcije, a ezmesh iscrtava mrežasti graf funkcije. Sljedeće zanimljivo područje je računanje granične vrijednosti (limes, engl. limit), što omogućuje naredba limit. Rezervirana riječ inf označava beskonačnost. Primjer: >> syms h n x

>> limit((cos(x+h) - cos(x))/h, h, 0) % To je: h

xhxh

)cos()cos(lim

0

ans = -sin(x)

>> limit((1 + x/n)^n, n, inf) % što znači: nn

nx /1lim

ans = exp(x) Ova naredba podržava i jednostrane limese i neodređene oblike limesa. >> syms x; >> limit(x/abs(x), x, 0, 'left') % right je s desna, a left limes s lijeva ans = -1

x axis

y ax

is

Implicit function: f = (x2 + y2)4 - (x2 - y2)2

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Page 45: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Ako se računa limes s desna dobiva se +1, što znači da ne postoji dvostrani limes. U slučaju dvostranog limesa, to znači da bi Matlab vratio odgovor NaN (engl. not a number). Uz pretpostavku da postoji rješenje, može se izračunati suma reda ili niza naredbom symsum. Primjer: >> syms x k

>> s1 = symsum(1/k^2, 1, inf) %

12

1

k k, vidi napomenu 10

>> s2 = symsum(x^k, k, 0, inf) %

0k

kx

s1 = pi^2/6 s2 = piecewise([1 <= x, Inf], [abs(x) < 1, -1/(x - 1)]) Taylorov niz računa se narebom taylor. >> syms x >> f = 1/(5 + 4*cos(x)); >> T = taylor(f, 8) T = (49*x^6)/131220 + (5*x^4)/1458 + (2*x^2)/81 + 1/9 >> pretty(T) % naredba za uljepšavanje prikaza, koji onda sliči matematičkom zapisu 6 4 2 49 x 5 x 2 x ------ + ---- + ---- + 1/9 131220 1458 81 Funkcija dsolve računa simbolički rješenja diferencijalnih jednadžbi. Jednadžbe se pišu tako da slovo D označava derivaciju, a D2 drugu derivaciju, D3 treću, itd. Tako je npr. D2y isto što

i 2

2

dt

yd. Predodređena nezavisna varijabla je t. Ako se u zadnjem argumentu uključi neka

druga varijabla, onda se po njoj računa umjesto po t. Ako jednadžbe ne sadrže i početne uvjete, koji se unose kao dodatne jednadžbe, onda rješenje sadrži konstante integracije. Primjer diferencijalne jednadžbe s početnim uvjetom: >> y = dsolve('Dy = t*y', 'y(0) = 2') y = 2*exp(t^2/2) Zanimljivo je napomenuti da je y u Matlabovom radnom prostoru, dok nezavisna varijabla t nije. Stoga bi naredba diff(y,t) javila pogrešku ili bi trebalo prethodno definirati varijablu t naredbom syms t.

                                                            10 Preglednije rješenje dobiva se s naredbom: >> pretty(s1) 2 pi --- 6

Page 46: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Naredbom dsolve može se riješiti sustav više diferencijalnih jednadžbi s više varijabli s ili bez početnih uvjeta. Primjer dvije linearne jednadžbe: >> S = dsolve('Df = 3*f + 4*g', 'Dg = -4*f + 3*g') % rješenje se sprema u strukturu S. Da bi se vidjelo treba ga izvući iz strukture: >> f = S.f f = C2*cos(4*t)*exp(3*t) + C1*sin(4*t)*exp(3*t) >> g = S.g g = C1*cos(4*t)*exp(3*t) - C2*sin(4*t)*exp(3*t) Ako se ne želi struktura, onda se umjesto S koristi [f, g]. Kao i svaka alatka Matlaba i Simbolička alatka ima mnogo naredbi i opcija. Slijedi tablica sa popisom najznačajnijih naredbi iz linearne algebre, pojednostavljenja izraza i integralnih transformacija (Tablica 7).

Tablica 7. Naredbe simboličke alatke iz linearne algebre, pojednostavljenja izraza i integralnih transformacija

NAREDBA OBJAŠNJENJE Linearna algebra colspace Baza stupčastog prostora matrice det Determinatna simboličke matrice diag Generiranje ili izlučivanje dijagonala simboličke matrice seig Računanje simboličkih svojstvenih vrijednosti i svojstvenih vektora expm Eksponenciranje simboličke matrice inv Računanje simboličke inverzne matrice jordan Proračun Jordanovog kanonskog oblika matrice null Baza 0-prostora matrice poly Računanje karakterističnog polinoma matrice rank Računanje ranka simboličke matrice rref Računanje reduciranog rednog oblika matrice svd Računanje SVD11 simboličke matrice tril Donja trokutasta matrica triu Gornja trokutasta matrica Pojednostavljenja izraza coeffs Izlist koeficijenata polinoma collect Sakupljanje koeficijenata kako bi se dobio drukčiji oblik expand Simboličko proširenje polinoma/funkcija da bi se dobio pregledniji

oblik factor Faktorizacija horner Hornerova oblik polinoma numden Brojnik i nazivnik simple Traganje za najjednostavnijim simboličkim oblikom simplify Simboličko pojednostavljenje

                                                            11 SVD, engl. Singular Value Decomposition, računanje rastava na pojedinalne vrijednosti. Pojedinačne vrijednosti su rješenja jednadžbi koje su predstavljene maričnim sustavom.

Page 47: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

subexpr Prepisivanje simboličkog izraza u obliku zajedničkih podizraza subs Simbolička supstitucija u simboličkom izrazu ili matrici Integralne transformacije fourier Fourierova integralna transformacija ifourier Inverzna Fourierova integralna transformacija ilaplace Inverzna Laplaceova transformacija iztrans Inverzna z-transformacija laplace Laplaceova transformacija ztrans z-transformacija

Page 48: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

5. SPREMANJE I UČITAVANJE RAZLIČITIH FORMATA PODATAKA Matlab može čitati i pisati podatke iz raznih formata. To omogućuje interaktivnost, jer program može primiti korisničke ulazne podatke ili informacije gdje se nalaze podaci, a također ih može i poslati korisniku ili nekoj korisničkoj aplikaciji. Pri tome se koriste i razne naredbe. Ranije se spominjala naredba save i matlabov mat format. Za taj format je karkteristično da podaci ostaju nepromjenjeni kada se datoteka prebacuje s jednog na drugo računalo do granica preciznosti drugog računala (misli se na pomične zareze). Ako su iste granice preciznosti, onda su podaci potupno jednaki. Ako se sprema u ASCII formatu, naredba save ima ograničenje da svaka varijabla mora biti dvodimenzionalna dvostruke preciznosti ili znakovno polje (engl. character array). Izlaz uključuje samo realnu komponentu kompleksnog broja. Matlab upisuje podatke iz svake varijable u nizu. Ako ih se kasnije želi učitati s naredbom load, sve varijable moraju imati isti broj stupaca. Da bi se postiglo više fleksibilnosti kod ASCII datoteka, preporučljivo je koristiti naredbe dlmwrite ili fprintf, koje imaju više opcija. Jedan od formata za čuvanje podataka je i diary koji zapisuje sve što je ukucano u glavni prozor i svi odgovori programskog paketa. ASCII datoteke mogu se upisivati funkcije niske razine poput fprintf. Ova naredba je vrlo fleksibilna i za druge formate, ali zahtjeva detalje o formatu podataka. Ova naredba pretvara brojeve i znakove u polja prema opcijama koje zada korisnik. C/C++ ili Fortran rutine12 unose se preko MEX datoteka. Dateteka se može otvoriti, tj. pročitati, naredbom fopen, a zatvoriti nakon čitanja s fclose. Primjer: kreirajmo datoteku pod imenom eksptablica.txt koja sadrži tablicu eksponencijalne funkcije s 2 retka i tekstualno zaglavlje. >> % kriraje matrice A s 2 retka >> x = 0:0.1:1; >> A = [x; exp(x)]; >> % otvaranje datoteke za pisanje >> fid = fopen('eksptablica.txt', 'w'); >> % print naslova i prazna linija >> fprintf(fid, 'Eksponencijalna funkcija\n\n'); >> % print vrijednosti u stupčastom poretku >> % dvije vrijednosti se pojavljuju u svakom retku datoteke >> fprintf(fid, '%f %f\n', A); >> fclose(fid); >> % Da bi se vidio sadržaj dateteke koristi se: >> type eksptablica.txt >> % Ispis je: Eksponencijalna funkcija 0.000000 1.000000 0.100000 1.105171 0.200000 1.221403 0.300000 1.349859 0.400000 1.491825 0.500000 1.648721

                                                            12 U Matlabovom editoru se mogu pisati i C i Fortran programi, jer je to, u biti, napredniji tekstualni editor. Ako se u licenci posjeduje kompajler, može se izravno iz Matlaba kompajlirati i izvoditi C++ datoteke.

Page 49: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

0.600000 1.822119 0.700000 2.013753 0.800000 2.225541 0.900000 2.459603 1.000000 2.718282 Naredba fopen otvara datoteku samo za čitanje ukoliko se drukčije ne naglasi (r za čitanje, w za pisanje, a za nastavak na kraju postojeće datoteke). Ako se datoteka otvori i za čitanje i pisanje, onda se između operacija čitanja i pisanja mora pozvati naredbu fseek ili frewind. Tablica 8 prikazuje koje sve formate datoteka podržava Matlab.

Tablica 8. Podržani formati datoteka Sadržaj datoteke ekstenzija Opis Funkcija za unos Funkcija za

iznošenje Podaci formatirani prema Matlabu

mat Sprema se Matlabov radni prostor

load save

Tekst bilo koja neograničeni brojevi s bijelim prostorom

load save – ascii

neograničeni brojevi dlmread dlmwrite neograničeni brojevi ili mješavina sa slovima

textscan

Excelova bilježnica (Spreadsheet)

xls MS Excel radni list xslread xslwrite xlsx,xlsb, xlsm

Formati koje podržava Excel 2007 i kasniji

Extended Markup Language

xml XML-fromatiran tekst

xmlread xmlwrite

Format DAQ alatke

Daq Alatka za dohvat (akviziciju) podataka

daqread Nema

Znanstveni podaci

cdf Uobičajeni (common) format podataka

cdflib cdflib

fits Fleksibilni systav za transport slika

fitsread Nema

hdf Hijerarhijski podatkovni format (ver. 4)

hdf hdf

h5 Hijerarhijski podatkovni format (ver. 5)

hdf5 hdf5

nc Mrežni CDF netcdf netcdf Slike bmp bitmapa imread imwrite

gif GIF hdf Hijerarhijski

podatkovni format jpeg, jpg JPEG

Page 50: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

jp2, jpf, jpx, j2c, j2k

JPEG2000

pbm Portable BMP pcx Paintbrush format pgm Prenosiva siva mapa png Prenosiva mrežna

grafika pnm Prenosiva bilo kakva

mapa ppm Prenosivi pixmap ras Rasterski format tiff, tif TIFF xwd X windows dump cur Widnows kursor fits, fts Fleksibilni transportni

sustav za slike ico Windows ikonica

Audio datoteke au, snd NeXt/Sun sound auread auwrite wav MS WAVE sound wavread wavwrite

Video (sve platforme)

avi AVI VideoReader VideoWriter mj2 Pokretni JPEG 2000

Video (Windows)

mpg Motion Pictures Experts Group

VideoReader Nema

asf, asx, wmv

Windows Media

Bilo koji Formati koje podržava MS DirectShow

Video (Mac) mpg, mp4, m4v

MPEG-1 i MPEG-4 VideoReader Nema

Uz formate iz gornje tablice, Matlab je kompatibilan s Adobe Illustratorom (ILL), koji je vektorskog formata. Enhanced Metafiles (EMF) su vektorske datoteke slične Encapsulated PostScript (EPS), ali predodređene za grafiku podobnu za publiciranje (može eksportirati u EPS iz grafičkog prozora i može s birati i razlučivost). Da bi se kreirala Audio/Video Interleaved (AVI) datoteka iz Matlabovih grafičkih animacija ili slika, slijede se koraci: >> myVideo = VideoWriter('myfile.avi'); % Može se podesiti broj slika po sekundi ili kvaliteta slike, npr. >> myVideo.FrameRate = 15; % Default 30 >> myVideo.Quality = 50; % Default 75 % Otvaranje datoteke: >> open(myVideo); %Spremanje filma: >> writeVideo(myVideo, myMovie); %Zatvaranje dateteke: >> close(myVideo);

Page 51: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Slike se mogu štampati (print) na printer i u datoteku standardnim prozorčićem za dijalog. Osim mišem i dijaloškim prozorčićem, isto se može obaviti i naredbom print, koja ima puno opcija. Npr. ako se želi štampati sliku 3 s rezolucijom 1200 dpi sa štampačem Canon BubbleJet BJ200 tada se koristi naredba: print –f3 –r1200 -dbj200. Printanje u datoteku se obavlja naredbom: print ime_datoteke. Ako se želi printati slika broj 2 u postscrip datoteku, a onda dodati u istu datoteku s sliku 4, onda se koriste opcije: >> print -f2 mojadatoteka >> print –f4 -append mojadatoteka Slike se mogu čuvati o obliku crno-bijelih, svih, te u boji (RGB ili CMYK) ili se može definirati proizvoljni prostor boja. Ako se slike uzimaju u petlji, onda se često koristi naredba getframe s imwrite. Ova naredba dohvaća slike samo u razlučivosti zaslona, dok naredba imwrite daje fleksibilnost u spremanju slika. Sljedećim primjerom dohvaća se trenutna slika i sprema u PNG datoteku: >> I = getframe(gcf); >> imwrite(I.cdata, 'myplot.png'); Naredbe za Microsoft Excel: xlsfinfo – određivanje da li je u datoteci excel sadržaj xlsread – čitanje Microsoft Excel datoteke xlswrite – pisanje Microsoft Excel datoteke Matlab ima nekoliko ugrađenih funkcija koji mogu učitavati ili upisivati datoteke sa zvukom. To su: beep on, beep off – uključuje/isključuje beep zvuk, sound (audio_data, fs) – šalje audio_data u zvučnik s brzinom uzorkovanja fs, soundsc – isto kao sound, ali se automatski skalira podatke u opseg [-1, +1], wavplay – izvodi WAV datiteku, [Y, fs, nbits] = wavread ('file_name') – čita zvuk iz file_name i sprema lijevi kanal u prvi stupac, a desni kanal u drugi stupak Y, wavwrite – sprema u datoteku zvuk, audiorecorder – postavljanje, snimanje i pohrana audio ulaza, audioplayer – naredba koja će zamijeniti wavplay i slične naredbe, jer je univerzalna za sve vrste zvučnih (audio) datoteka, wavrecord – snima N uzoraka audio signala.

Page 52: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

6. GRAFIČKO ISCRTAVANJE REZULTATA Jedna od velikih prednosti Matlaba je jednostavno iscrtavanje podataka. Mogućnosti u iscrtavanju grafova su:

- upotreba linearnih, polulogaritamskih i logaritamskih mjerila, - upotreba interaktivnog GUI, - razne naredbe za iscrtavanje različitih grafova, - naredbe za podešavanje svojstava, naslova, osi, legendi, - specijalizirani grafovi poput histograma, karata, kontura, i dr., - upotreba slika, slikovnih objekata, I/O grafičkih datoteka, konvertiranje slika i

filmova, iznošenje i unošenje te printanje slika, itd. Osnovne naredbe za iscrtavanje grafova su:

box – određuje granice osi, errorbar – iscrtava vrpce s pogreškom uzduž krivulje, hold – zadržava trenutni graf u grafičkom prozoru, line – iscrtava linijski objekt, LineSpec – specifikacija karakteristika linije, loglog - log-log mjerilo na grafu, plot – 2-D linijski graf, plot3 – 3-D linijski graf, plotyy – 2-D linijski graf s osi y na lijevoj i desnoj strani, polar – graf s polarnim koordinatnim sustavom, semilogx – polulogaritamsko mjerilo (logaritamsko na x osi), semilogy – polulogaritamsko mjerilo (logaritamsko na y osi), subplot – kreiranje podprozora u grafičkom prozoru.

Npr. subplot (2,1,2) stvara 2x1 podprozora i iscrtava u drugom, dok subplot (2,2,3) kreira 2x2=4 podprozora i iscrtava se u trećem. Podprozori se broje kako se i čita, s lijeva na desno pa onda sljedeći red, itd. Alati za iscrtavanje su:

figurepalette – prikazuje ili skriva paletu, pan – interaktivni pogled na graf, plotbrowser – prikazuje ili skriva izbornik grafičkog prozora, plotedit – interaktivno uređivanje grafova, plottools – prikazuje ili skriva izbornik alatki grafičkog prozora, propertyeditor – prikazuje ili skriva izbornik za uređivanje svojstava grafa, rotate3d – rotacija mišem u 3D, showplottool – prikaz/skrivanje alatke za crtanje, zoom – uključuje se ili isključuje povećanje/umanjenje za neki faktor.

Funkcije za obilježavanje grafova: annotation – kreiranje objekta za bilješke, clabel – natpis za evaluaciju kontura, datacursormode – omogućavanje, onemogućavanje, upravljanje interaktivnim

podacima u kursorskom načinu rada, datetick – podaci formatirani tankim bilješkama, gtext – postavljanje teksta mišem u 2D prikazu, legend – legenda grafa, rectangle – kreiranje pravokutnog objekta u 2D,

Page 53: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

t t x

SpecijalnastavkGrafovi

a >> Y = 3, 2, 7; 1, 5, 3; 2, 6, 1]>> area>> grid >> colo>> set(g>> title

b

>> y = [ 150.6

texlabel – stitle – dodavxlabel, ylablizirani graf

ku teksta. i površine, rarea – popu

[1, 5, 3;

; (Y) on

ormap summgca,'Layer',''Stacked Ar

bar – iscrta

[75.995 91.697 179.32

tvaranje Tevanje naslo

bel, zlabel –fovi mogu

rebrasti ili ounjavanje po

mer % nije p'top') rea Plot'

Slika 14

avanje rebra

972 105.713 203.212 2

eX formata iva grafu,

– označavanjbiti vezani

oblika torte ovršine u 2D

potrebno, op

4. Primjer u

stog grafa,

1 123.203 1226.505 249

iz znakova,

nje osi x, y i uz različit

(engl. area, D,

pcijski

upotrebe gra

131.669 ...9.633 281.4

z. ta svojstva,

bar, pie):

afičke funkc

422];

a temeljne

cije area

e podjele suu dane u

Page 54: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

>> bar(y

b

>> load>> y = c>> figur>> bar3>> subp>> bar3>> title(

y);

bar3 – iscrt

d count.dat; count(1:10,re; subplot(

3(y,'detachedplot(1,2,2); 3(y,0.5,'deta('Width = 0

Sli

tavanje rebr

:); % Loadi(1,2,1); d'); title('De

ached'); .5');

Slik

ika 15. Prim

rastog grafa

ing the data

etached');

ka 16. Primj

mjer upotreb

a u 3D,

set creates a

mjer upotreb

be funkcije

a variable 'c

be funkcije b

bar

count'

bar3

Page 55: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

b b p

>> code>> code{'Fred','>> pare

p

>> x = [>> pie(x

p

bar3h – iscrbarh – iscrtpareto – od

elines = [20ers = ... 'Ginger','No

eto(codeline

pie – mapa

[1 3 0.5 2.5 x,explode);

pie3 – 3D m

rtavanje vodtavanje rebrdrezana map

0 120 555 6

orman','Maxes, coders); t

Slika

u obliku pit

2]; explodecolormap j

mapa u oblik

doravnog 3rastog vodorpa,

608 1024 10

x','Julia','Watitle('Lines

a 17. Primj

te,

e = [0 1 0 0 et

Slika 18.ku pite.

D rebrastogravnog graf

01 57 687];

ally','Heidi',of Code by

jer upotrebe

0];

Primjer fu

g grafa, fa,

,'Pat'}; Programme

e funkcije pa

nkcije pie

er')

areto

Page 56: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Konturn c

>> [X,Y>> Z = >> [C,h>> set(h>> colo

c

>> [X,Y>> Z = >> cont>> surfa>> grid >> view>> colo

ni grafovi: contour – k

Y] = meshgrX.*exp(-X.

h] = contourh,'ShowTexormap cool %

contour3 3-

Y] = meshgrX.*exp(-X.tour3(X,Y,Zace(X,Y,Z,'off

w(-15,25) ormap cool

konturni gra

rid(-2:.2:2,-.^2-Y.^2); r(X,Y,Z); xt','on','TextS% opcijski,

Slika

-D konturni

rid([-2:.25:2.^2-Y.^2); Z,30) 'EdgeColor'

f matrice,

-2:.2:3);

Step',get(h,'ne mora se

a 19. Primje

i graf,

2]);

',[.8 .8 .8],'F

'LevelStep')

er upotrebe

FaceColor','

)*2)

funkcije co

none')

ntour

Page 57: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

c c e e

Grafovi c

>> t = 0>> x = c>> y = s>> com

contourc – contourf – pezcontour –ezcontourf –i smjera i brcomet – 2D

0:.01:2*pi; cos(2*t).*(csin(2*t).*(s

met(x,y);

Slika

računanje kpopunjavanj– crtač kontu– popunjavarzine:

D kometni gr

cos(t).^2); in(t).^2);

20. Primjer

konturnog gnje 2-D kontura koji se lanje kontura

raf (iscrtava

r upotrebe f

grafa na niskturnog grafalako koristi,a lako za ko

a točku koja

funkcije con

koj razini, a, , orištenje,

a se giba pre

ntour3

ema zadanojoj krivulji u

2D),

Page 58: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

c

% Primj>> t = ->> com

c >> Z = >> com

comet3 – is

jer, probajte10*pi:pi/25

met3((cos(2*

compass – i

eig(randn(2mpass(Z)

Slik

crtava točku

e: 50:10*pi; *t).^2).*sin(

iscrtava stre

20,20));

ka 21. Primj

u koja se gi

(t),(sin(2*t).

elice koje po

jer upotrebe

iba prema z

.^2).*cos(t)

otječu iz ish

e funkcije co

adanoj kriv

,t);

hodišta,

omet

ulji u 3D,

Page 59: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

f q q

>> [X,Y>> Z = >> [U,V>> quiv>> hold>> surf(>> colo>> view>> axis >> hold

feather – isquiver – trequiver3 – tr

Y] = meshgrX.* exp(-X

V,W] = surfver3(X,Y,Z,d on; (X,Y,Z);

ormap hsv w(-35,45);

([-2 2 -1 1 d off

Slika

crtava vektoeptajući ili greptajući ili

rid(-2:0.25:X.^2 - Y.^2);fnorm(X,Y,ZU,V,W,0.5)

-.6 .6]);

a 22. Primje

ore brzine, graf brzine,

graf brzine

2,-1:0.2:1);; Z); );

er upotrebe f

e u 3D.

funkcije commpass

Page 60: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Slika

Diskretn

s

a 23. Primje

ni grafovi pstairs – step

2-1

-0.5

0

0.5

1

er upotrebe

podataka dobpeničasti gr

1

21

5

0

5

1

naredbe quko

bivaju se fuaf,

-1

0

a)

b)

uiver3: a) reoda iz primje

unkcijama:

-4-2

ezultat sameera

-20

e naredbe, b

2

b) rezultat c

4

cijelog

Page 61: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

>> x = l>> stair

s >> t = li>> h = s>> set(g>> set(h

linspace(-2*rs(x,sin(x))

stem – iscrt

inspace(-2*stem(t,cos(tget(h,'BaseLh,'MarkerFa

*pi,2*pi,40)

Slik

tavanje disk

*pi,2*pi,10)t),'fill','--'); Line'),'LineSaceColor','re

Slik

);

ka 24. Primj

kretnog niza

;

Style',':') ed')

ka 25. Primj

jer upotrebe

a podataka,

mjer upotreb

e naredbe s

be naredbe s

tairs

stem

Page 62: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

stem3 – iscrtavanje diskretnog niza podataka u 3D. Grafovi funkcija:

ezcontour – iscrtavanje kontura lako za korištenje, ezcontourf – popunjavanje kontura lako za korištenje, ezmesh – 3D crtač mreža koji se lako koristi, ezmeshc – kombinacija mreža/kontura koja se lako koristi, ezplot – iscrtavanje funkcija koje se lako koristi, ezplot3 – iscrtavanje funkcija/krivulja u 3D koje se lako koristi, ezpolar – crtanje u polarnim koordinatama, ezsurf – iscrtavanje 3D obojene površine, ezsurfc – kombinirano iscrtavanje površine/konture, fplot – crtanje funkcije između određenih granica.

Funkcije za crtanje histograma su: hist – crtanje i računanje histograma, histc – pobrojeni histogram, rose – kutni histogram.

Poligoni i površine: cylinder – općeniti cilindar, delaunay – Delaunay-eva triangulacija, delaunay3 – 3D Delaunay-eva 3D triangulacija, delaunayn – N-D Delaunay-eva triangulacija, dsearch – pretraga za Delaunay-evom triangulacijom za najbližu točku, ellipsoid – generiranje elipsoida, fill – popunjavanje 2D poligona, fill3 – popunjavanje 3D poligona, inpolygon – ukazivanje na unutrašnja područja poligona, pcolor – pseudokoloriranje (poput šahovske ploče), polyarea – područje polinoma, rectint – područja križanja pravokutnika, ribbon – trakasti graf, slice – volumna „kriška“, sphere – kreiranje sfere, waterfall – vodopadni graf.

Rašireni/mjehurasti grafovi: plotmatrix – rašireni graf matrice, scatter – rašireni graf, scatter3 – 3D rašireni graf.

Animacije: frame2im – vađenje jedne slike iz filma, getframe – dohvat slike iz filma ili s kamere, im2frame – spremanje slike u film, movie – izvođenje snimljenog slika, noanimate – promjena načina rada svih objekata iz animacijskog u normalni.

Bitmape: frame2im – vađenje jedne slike iz filma, im2frame – spremanje slike u film, im2java – pretvorba bitmape u sliku u Java-i, image – iscrtavanje slikovnog objekta ili slike,

Page 63: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

imagesc – skaliranje podataka i prikaz slikvnog objekta, imapprox – aproksimativna indeksirana slika nastala reduciranjem broja boja, imfinfo – informacije o grafičkoj datoteci, imformats – upravljanjem registrom slikovnog formata, imread – čitanje slike iz grafičke datoteke, imwrite – pisanje slike u grafičku datoteku, ind2rgb – konvertiranje indeksirane slike u RGB sliku, rgb2ind – konvertiranje RGB slike u indeksiranu sliku.

Naredbe za upravljanje štampanjem su: hgexport (izvoz slike), orient (orijentacija papira), print (štampanje), printopt (print grafičkog prozora ili njegovo spremanje u datoteku), printdlg (Print dialog box), printpreview (brzi pogled na sliku), save as (spremanje grafičkog prozora ili Simulink blok dijagrama upotrebom specificiranog formata). Rukovanje grafikom vrši se brojnim naredbama. Naredbe za identifikaciju su: allchild (koja nalazi svu „djecu“ specificiranog objekta), ancestor (pretci, prethodnici grafičkog objekta), copyobj (kopiranje grafičkog objekta i njegovih nasljednika), delete (brisanje datoteke ili grafičkog objekta), findall (nalaženje svih grafičkih objekata), findfigs (nalaženje vidljivih grafika), findobj (lociranje grafičkih objekata s određenim svojstvima), gca (rukovatelji trenutne osi), gcbf (rukovanje prozorom koji sadrži pozive koji se trenutno koriste), gcbo (upravljanje trenutno izvršavanim objektom), gco (rukovanje trenutnim objektom), get (upit o svojstvima grafičkog objekta), ishandle (test za validnost grafičkog objekta), handlepropedit (otvaranje izbornika za uređivanje svojstava), set (postavljanje svojstava označenog objekta). Funkcije za stvaranje objekata su: axes (objekt grafičkih osi), figure (kreiranje grafičkog objekta), hggroup (kreiranje hggroup objekta), hgtransform (kreiranje hgtransformiranog grafičkog objekta), image (oslikavanje slike), objectlight (stvaranje objekta osvjetljenog ruba), line (kreiranje linije), objectpatch (stvaranje jednog ili više popunjenih poligona), rectangle (kreiranje 2D pravokutnog objekta), root object (korijenski objekt), surface (kreiranje površinskog objekta), text (kreiranje tekstualnog objekta u trenutnim osima), uicontextmenu (kreiranje kontekstnog menu-a). Za upravljanje grafičkim prozorom postoje funkcije: clf (briše se trenutni grafički prozor), close (zatvara prozor), closereq (predodređena funkcija zahtjeva za zatvaranje prozora), drawnow (osvježavanje grafičkog prozora), gcf (rukovanje trenutnim prozorom), hgload (hijerarhijsko učitavanje grafičkih upravljača iz datoteke), hgsave (spremanje grafičkih upravljača hijerarhijski u datoteku), newplot (određivanje gdje treba pisati grafičke objekte), opengl (OpenGL), refresh (osvježavanje trenutnog grafičko prozora), saveas (spremanje grafa ili Simulink blok dijagrama u zadani format), shg (prikaz najzadnje korištenog grafičkog prozora). Operacije s osima: axis (skaliranje osi i njihov izgled), box (granice osi), cla (brisanje trenutnih osi), gca (rukovanje s trenutnim osima), grid (mreža linija za 2D i 3D grafove), ishold (trenutno stanje zadržavanja grafova, je li hold on ili off), makehgtform (4x4 transformacijska matrica). Matlab posjeduje izvrsni raspon funkcija za 3D oslikavanje (vizualizaciju). U prvu skupinu ovif funkcija spadaju funkcije površina i mreža, a to su: hidden (uklanja skrivene linije iz mrežastog grafa), mesh, meshc, meshz (ove 3 funkcije iscrtavaju mrežaste grafove), peaks (vrhovi funkcije dvije varijable), surf, surfc (3D osjenčane plohe), surface (kreiranje plohe), surfl (phoha s osvjetljenjem prema mapi boja), tetramesh (tetrahedronska mreža), trimesh (triangulirani mrežni graf), triplot (2D triangulirani graf), trisurf (triangulirani graf phole). >> [X,Y] = meshgrid(-8:.5:8); >> R = sqrt(X.^2 + Y.^2) + eps; >> Z = sin(R)./R;

Page 64: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

>> mesh

>> k = 5>> n = 2>> [x,y,>> c = h>> surf(>> colo>> axis

h(X,Y,Z)

5; 2^k-1; ,z] = spherehadamard(2(x,y,z,c);

ormap([1 1 equal

Slik

e(n); 2^k);

0; 0 1 1])

ka 26. Primj

Slika 27.

jer upotreb

Primjer na

e naredbe m

redbe surf

mesh

Page 65: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Generirizvršava(skaliranvrijednocolorma(poboljšhsv2rgbboja), rgpalete bpozadinUpravljcamlookcamzooNaredbekoordinobjekta)lightingOslikavinterpstshrinkfastream3stream volumeb >> [x,y,>> v = x>> xslic>> slice>> colo

Slika 28

ranje domenaju se funknje osi bojaosti za razlapeditor (šanje kontrab (pretvorbargbplot (iscrboja), surfn

nske boje pranje pogledkat, camorm, makehgtfe za upravlj

natama kam), lightangle

g, material (vanje volumtreamspeed,aces, slice 3, streamlin

tube plot)bounds.

,z] = meshgx.*exp(-x.^ce = [-1.2,.8e(x,y,z,v,xslormap hsv

8. Primjer p

ne u 3D grakcijama: ba), colorbaličite paleteuređivanje asta u sivoj a HSV u RGrtavanje pa

fnorm (račurozora). dom obavljrbit, campatform, view ljanje osvjet

mere), diffuse (stvaranje(upravljanje

mena izvršav, isocaps, i(dijagram

ne, streamp, subvolum

grid(-2:.2:2,2-y.^2-z.^2

8,2]; yslice =lice,yslice,z

podjele volu

afovima morighten (por (prikaz tre boja), co

palete bpaleti boja)

GB sustav/plete boja), s

unanje i is

ja se čitavian, campoi viewmtx.tljenjem u s

se (proračune ili pozicione svojstvimava se funkciisocolors, ikriške vol

particles, sme (izvlačen

-2:.25:2,-2:); = 2; zslice =zslice)

umena funkc

ože se vršitiosvjetljavanrake boja), olormap (pboja), Colo), graymonpaletu boja)shading (po

scrtavanje n

im nizom nos, camproj

slici su: can difuzne rniranje svjea reflektiranijama: coneisonormals, luena), smotreamribbonje podsku

.16:2);

= [-2,0];

cijom slice

i naredbomnje ili zata

colordef (podešavanje/orSpec (sp(postavljan

), rgb2hsv (ostavljanje normala 3D

naredbi popj, camroll,

mlight (pomreflektancijeetlosnog objnja ploha), speplot, conto

isosurfaceooth3 (glađn, streamsl

upa podatak

meshgrid. amnjivanje postavljanje/odabir trenpecificiranjenje svojstava(pretvorba Rboje sjena)

D plohe), w

put: camdol camtarge

mjeranje sve), light (stvjekta u sfernpecular. urslice, cur

e, reducepađenje 3D plice, streamka iz volum

Operacije smape boja

e unaprijed nutne palete boja), a za sive mRGB u HSV), spinmap whitebg (p

lly, cameraet, camup,

vejtlosnog ovaranje svjnim koordin

rl, divergenatch, reducepodataka), smtube (Creumena), surf

s bojama a), caxis

zadanih te boja), contrast onitore), V sustav (rotacija

promjena

atoolbar, camva,

objekta u etlosnog natama),

ce, flow, evolume, stream2,

eate 3-D rf2patch,

Page 66: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

7. UPOTREBA ALATKI I FUNKCIJA Alatke sadrže funkcije specifične za neko određeno područje, npr.: obrada signala, statistika, optimizacija, upravljanje, akvizicija podataka, itd. Općenito je učinkovitije koristiti MATLAB-ove alatke nego redefinirati ili programirati svoju funkciju. To štedi vrijeme kod programiranja i otklanjanja pogreške. U alatkama su neke funkcije kompajlirane pa se izvršavaju brže. Ipak se mogu pojaviti greške. Stoga se u novim verzijama javljaju i izvješća o prepravkama postojećih funkcija. Grešku svatko može prijaviti. U nastavku su navedene neke iz širokog izbora alatki dostupnih za Matlab. Matlab se često koristi za obradu signala (npr. za izračun brze Fourierove transformacije, funkcija fft). U ovoj alatci se može: projektirati filtere, statistički obraditi signal, Laplace-ova transformacija, i dr. Srodne alatke su: komunikacijska, valićna, RF, alatka za obradu slike, itd. Funkcije u komandnoj liniji mogu se podijeliti u nekoliko kategorija: - projektiranje, analiza i implementacija filtera u diskretnom vremenu, - projektiranje, analiza i implementacija analognih filtera, - transformacije linearnih sustava, - prozorske funkcije, - spektralna analiza, - transformacije, - statistička obrada signala, - parametrijsko modeliranje, - linearna predikcija, - višetaktna obrada signala i - generiranje valinih oblika. Alatka ima i GUI sučelje. U GUI-u se može interaktivno projektirati filtere i/ili ih analizirati, projektirati i analizirati prozore, iscrtavati signale i vršiti spektralnu analizu i filtriranje. Postupci projektiranja analognih filtera koji su uključeni su: Butterworth, Chebyshev i Bessel-ov. Alatka za obradu signala pruža rutine za projektiranje IIR, IIR analognog filtera i predočavanje (vizuelizaciju) rezultata. Također se može projektirati IIR filtere u diskretnom vremenu iz analognih pandana. Projektiranje, analiza i implementacijski postupci digitalnih FIR i IIR filtera uključeni su u funkcije alatke. Alatka za obradu signala pruža podršku projektiranju filtara prilagođenu korisniku. Glavne funkcije projektiranja filtera u alatci uključuju parametre za projektiranje i FIR i IIR filtera, njihovu analizu i implementaciju, procjenu (estimaciju) reda filtera, te izradu prototipa analognog filtera te transformacije. Najosnovniji entiteti s kojima radi alatka su signali i sustavi. Funkcije naglašavaju digitalni (diskretni) signal kao suprotnost analognim (kontinuiranim). Temeljni tip filtera kojeg podržava alatka je linearni, vremensko invarijantni digitalni filter s jednim ulazom i jednim izlazom. Linearni vremensko-invarijantni sustavi mogu se predstavljati jednim od nekoliko modela (vidite Automatizaciju – prijenosna funkcija, prostor stanja, nula-pol-pojačanje, sekcije drugog reda) te se mogu prebacivati iz jednog modela u drugi. Alatka ima brojne funkcije za pretvorbu, uključujući i rešetkastu strukturu ili ljestvičaste dijagrame, a ne samo prijenosnu funkciju, sustave drugog reda i prostor stanja. Alatka uključuje različite transfromacije i inverzne transfromacije, uključujući Fourier, chirp-Z, diskretnu kosinusnu, Goertzel, Hilbert, Walsh-Hadamard, te STFT (spektrogram). Alatka također uključuje algoritme za procjenu spektralne gustoće snage, što uključuje periodograme, Welch-a, i Yule-Walker-a. Funkcije alatke koje su dostupne su i za estimaciju

Page 67: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

gustoće spektra snage i estimaciju srednje kvadratne vrijednosti spektra upotrebom pseduo-spektralnih, neparametarskih ili parametarskih tehnika. Neki od uključenih postupaka su i Burg, kovarijanca, svojstveni vektori, Thomsonov periodogram, Welch, Yule-Walker, i dr. Druge funkcije su dostupne za računanje prosječne snage spektra, računanje jednostranog spektra, pomicanje za DC komponentu od/prema centru spektra, itd. Alatka za obradu signala sadrži funkcije za računanje korelacija, međukorelacija, kovarijanci i autokorelacija. Pruža mnogo uobičajeno korištenih prozorskih funkcija te ima grafičko sučelje koje omogućuje gledanje i usporedbu prozora i kreiranje filtera uporabom tih prozora. Alatka uključuje postupke za autoregresivno parametarsko modeliranje: Burg, covariance, Yule-Walker i Steiglitz-McBride (za ARMA modeliranje). Također se mogu naći i funkcije za prijanjanje frekvencijskog odziva na analogni ili filter u diskretnom vremenu. Također sadrži i funkcije za linearno predviđanje koeficijenata i za konvertiranje između autokorelacija i predviđenih polinoma, refleksijskih koeficijenata i frekvencija linijskog spektra. U alatku za obradu signala uključene su funkcije za generiranje mnogih periodičkih i aperiodičkih valnih oblika (chirp, Dirichlet, Gaussian RF impuls, Gaussian monopuls, impulsni vlak (tzv. češalj funkcija), pravokutnik, pila, sinc, kvadratni val, trokutni valni oblik, te naponsko-upravljani oscilator. Ova alatka ima i neke korisne funkcije za manipulaciju signalima, kao npr.: conv – izvodi konvoluciju ili množenje polinoma, conv2 – izvodi 2D konvoluciju, corrcoef – računa koeficijente korelacije, cov – matrica kovarijance, cplxpair – sortiranje kompleksnih brojeva u konjugirano-kompleksne parove, decimate – decimacija, tj. smanjenje brzine uzorkovanja, deconv – dekonvolucija ili dijeljenje polinoma, downsample – smanjenje brzine uzorkovanja za cjelobrojnu vrijednost, interp – interpolacija, tj. povećanje frekvencije uzorkovanja za cjelobrojnu vrijednost, resample – promjena brzine uzorkovanja za neki racionalni faktor (tj. razlomak), spectrogram - spektrogram uporabom STFT, spectrum – spektralna estimacija, upsample – povećanje frekvencije uzorkovanja za cjelobrojnu vrijednost, xcorr – međukorelacija signala, xcorr2 – 2D međukorelacija, xcov – međukovarijanca. Ova alatka ima i mogućnosti transformiranja filtera, ako što su (samo neke): freqs – računanje frekvencijskog odziva analognog filtra, lp2bp – transformacija NP analognog filtra u PP filtar, lp2bs – transformacija NP analognog filtra u PB, lp2hp – transformacija NP filtra u VP, lp2lp – promjena granične frekvencije (engl. cutoff frequency) za NP analogni filtar, Uz to, postoje i funkcije za generiranje signala, kao što su: diric – Dirichletova ili periodična sinc funkcija, gauspuls – sinusoidalan impuls moduliran Gaussom,

Page 68: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

pulstran – impulsni vlak, tj. niz impulsa ili tzv. češalj funkcija, rectpuls – uzorkovani aperiodički pravokutni signal, sawtooth – pilasti ili trokutasti val,

sinc – sinc-funkcija

x

xsin,

square – kvadratni val, tripuls – uzorkovani aperiodički trokut, vco – oscilator upravljan naponom. Korisne funkcije mogu biti i: db2mag – pretvaranje decibela (dB) u magnitudu eqtflength – ujednačavanje duljina nazivnika i brojnika prijenosne funkcije, mag2db – preračunavanje magnitude u dB. Alatka za upravljanje sustavima (Control SystemToolbox) sadrži funkcije koje pomažu u analizi sustava s povratnom vezom: funkcije za simulaciju LTI sustava, podržava i diskretne i kontinuirane sustave, mogu se lako proučavati odziv na jediničnu uzbudu, modalnu analizu, itd. Srodne alatke su: identifikacija sustava (System Identification), robustno upravljanje (Robust Control), modernu teorija upravljanja i modelsko prediktivno upravljanje. Statistička alatka služi za statističku i analizu podataka. Uključuje funkcije načelne raščlambe sastavnica (engl. Principal Component Analysis, PCA), nezavisne analize komponenti (engl. Independent Component Analysis, ICA) te testove značaja (poput chi kvadrat, t-test i sl). Često se koristi u analizi pouzdanosti i dostupnosti sustava.

Page 69: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

8. UPRAVLJANJE TOKOM PROGRAMA Postupak rješavanja problema može biti uključivanje više koraka, ponavljanje istih koraka ili uvjetovanje koji će se korak izvršiti stanjem prethodnog koraka. Pri tome je korisno poznavati relacijske i logičke operatore. Upravljanje s obzirom na uvjete obavlja se naredbom if ili switch. Upravljanje petljom obavlja se naredbama for, while, continue, break. Upravljanje greškama izvršava se s try i catch. Prekid se obavlja naredbom return. Uvjetno obavljanje pojedinih blokova naredbi obavlja se if naredbom, koja u svojoj strukturi može imati i elseif i else te mora na kraju imati rezerviranu riječ end. Struktura if naredbe je: if izraz1 blok 1 (izrazi, funkcije, ili sl.) elseif izraz2 blok 2 (izrazi, funkcije, ili sl.) ... ITD koliko je potrebno elseif izraza.... else blok N (izrazi, funkcije, i sl.) end Naredba if mora imati if uvjet (izraz 1) i end. To je najjednostavniji oblik. Znači da će se izvršiti blok1 ako je zadovoljen uvjet. U protivnom Matlab preskače cijeli blok naredbi. Ako postoji više mogućnosti, koristi se elseif. U tom slučaju, ako je naredba if ispituje koji je uvjet zadovoljen. Ako je zadovoljen izraz 2, onda se izvršava blok 2, itd. Uvjeta elseif može biti proizvoljno mnogo. Ukoliko postoje if i jedan ili više elseif, a nijedan izraz nije udovoljen, tada Matlab preskače cijeli blok naredbi od if do end. Ukoliko se treba nešto izvršiti ukoliko nije udovoljeno nijedom izrazu, dodaje se else, a blok N se tada izvršava ukoliko nijednom izrazu nije udovoljeno. Jedina obvezna konstrukcija je if-end. Opcije su: if-elseif-end, if-elseif-else-end. Primjer: Ograničite x na 5. Ako je broj veći od +5, potrebno ga je ograničiti na +5, a ako je ispod -5, ograničava se na -5. Broj će se unjeti naredbom input, x=input('unesite broj, x= '). Zatim će se upisati if izraz: if (x<-5)|(x>5), x=5*sign(x); end. Preglednije je napisati program koji se izvršava s ovim crticama pa to može biti zadatak na vježbi. >> x=input('unesite broj, x= ') unesite broj, x= 4 % mi unosimo tipkovnicom broj 4 x = 4 >> if (x<-5)|(x>5), x=5*sign(x); end; >> x x = 4 >> x=input('unesite broj, x= ') unesite broj, x= -7 % mi unosimo broj tipkovnicom x = -7 >> if (x<-5)|(x>5), x=5*sign(x); end; >> x

Page 70: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

x = -5 Sljedeća naredba je for. Oblik naredbe je: for indeks_petlje= prvi_indeks:korak:posljedni_indeks blok naredbi, izraza ili sl. end Petlja se izvršava dok indeks petlje ne dođe do posljednje vrijednosti, a počinje od prve, uz neki korak (inkrement). Korak može biti bilo koji realni broj, bilo da je pozitivan ili negativan, malen ili velik. Primjer: Izračunajte umnožak prvih deset prirodnih brojeva. >> umnozak=1; % neutralan element za množenje >> for k = 1:10 % nije naveden korak pa je on automatski +1 umnozak=umnozak*k; end >> umnozak umnozak = 3628800 >> 1*2*3*4*5*6*7*8*9*10 % treba biti isti rezultat ans = 3628800 Često se u praksi kombiniraju for i if naredbe. Primjer: Odredite izlazni vektor ograničen na 5. Ako je broj veći od +5, potrebno ga je ograničiti na +5, a ako je ispod -5, ograničava se na -5. Zadani vektor x=-10:10. >> x=-10:10; >> for i=1:21 if (x(i)<-5)|(x(i)>5), x(i)=5*sign(x(i)); end; end; >> x x = Columns 1 through 10 -5 -5 -5 -5 -5 -5 -4 -3 -2 -1 Columns 11 through 20 0 1 2 3 4 5 5 5 5 5 Column 21 5 U ovu skupinu naredbi spada je switch. Njen oblik je: switch switch_izraz case case_izraz1 blok naredbi, izraza i sl. case case_izraz2 blok naredbi, izraza i sl. .... otherwise

Page 71: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

blok naredbi, izraza i sl. end S obzirom na izraz pod switch, izvršava se jedan od bloka pod case. Otherwise znači inače i opcijska je riječ. Izvršava se ako nije udovoljeno nijednom od case izraza. Primjer: Opišite koje radnje treba poduzeti prilikom dolaska/prolaska na semafor s obzirom na to koje svjetlo svijetli. ponasanje = input ('Unesite svjetlo na semaforu: '); switch ponasanje case 'crveno' disp('Potpuno se zaustavite i čekajte zeleno svjetlo za pokret.') case 'zuto' disp('Usporiti i pripremit se za zaustavljanje.') case 'zeleno' disp('Nastavi voziti.') otherwise disp('Semafor ne radi. Pridržavati se znakova.') end Naredbom while ponavlja se petlja, tj. grupa izraza, neodređeni broj puta (za razliku od for gdje je to točno određen broj puta) dok se ne udovolji logičkom uvjetu. Na kraju (kod end) se smanjuje broj kod brojača u petlji. Primjer: Ispisuje se broj b dok je veći od -5. U svakom koraku pada mu vrijednost za 1. >> b=1; while b>-5 disp(b) b=b-1; end 1 0 -1 -2 -3 -4 Sljedeći primjer ilustrira kombiniranje naredbi while i if. Računa se rješenje polinoma. >> a = 0; fa = -Inf; >> b = 3; fb = Inf; >> while b-a > eps*b x = (a+b)/2; fx = x^3-2*x-5; if sign(fx) == sign(fa) a = x; fa = fx; else b = x; fb = fx; end >> end

Page 72: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

>> x x = 2.0946 >> x^3-2*x-5 % Provjera rezultata ans = -8.8818e-016 % Nije točno nula, ali je približno točno, jer ima 15 nula poslije decimanlnog zareza. Naredba continue prenosi upravljanje na novu iteraciju for ili while petlje u kojoj se pojavljuje te se pri tome preskače sve preostale naredbe u tijelu petlje. Tj. izvođenje programa se nastavlja na početku petlje, umjesto da se ide prema kraju. Primjer: Brojanje linija koda u datoteci magic.m, uz preskakanje svih praznih linija i linija komentara. Naredbom continue ide se u novi red bez povećanja stanja brojila. >> fid = fopen('magic.m','r'); brojilo = 0; while ~feof(fid) line = fgetl(fid); if isempty(line) || strncmp(line,'%',1) || ~ischar(line) continue end brojilo = brojilo + 1; end fprintf('%d lines\n',brojilo); fclose(fid); break 25 lines Naredba break omogućuje prijevremen/nagli izlaz iz petlje (for ili while). Ako je više petlji, izlazi se iz samo jedne – one koja je najviše unutra, tj. koja se najbrže odvija. Upravljanje greškama obavlja se naredbama try i catch. Naredba try ima oblik: try blok naredbi ... blok naredbi catch iznimkaObj blok naredbi ... blok naredbi end Blok naredbi između try i catch se normalno odvija osim ukoliko se pojavi greška. Ako se javi greška, s obzirom na iznimku iznimkaObj, izvršava se blok naredbi između catch i end. Ako se i tu javi greška, a nema još neke naredbe catch, izlazi se iz programa. Naredbom return prekida se izvršavanje trenutnog niza naredbi te se vraća upravljanje funkciji/programu iz kojeg je pozvan trenutni niz naredbi. Npr. ako se unutar nekog programa pozove funkcija, a u njoj se pojavi return, nastavlja se izvršavanje naredbi u početnom programu iza linije u kojoj je pozvana funkcija. Upravljanje se može vratiti i komandnom prozoru ako je return u glavnom programu koji se izvršava.

Page 73: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

9. PRO Da bi seneki proimenomMatlab prozoradatoteke

razvijan

datoteku–Script

Da bi se

OGRAMIRA

e u Matlabuogram za u

m u direktorima i već

a. Ako se sae, onda se

n, došlo se

u ili za pili Function

e učinkovitotemelje sinpoznavati polja i objekomponentspecialne vodvojene zfunkcije i sfunkcija, p tipove funupotrebu o

ANJE U M

u ili Octaveuređivanje triju dostupnugrađen jed

amo napiše u editoru t

do moguć

postojeću) in za novu).

Slika 4

o programirntakse (izgraklase poda

ektno-orijente programvrijednosti, zarezima, ogskripte (opiozivanje fun

nkcija (primbjekata,

MATALBU

eu napisao pteksta (tekstnom Matlabdan takav eta naredba, teksta otvar

ćnosti otvar

ili po izborn

42. Otvaran

ralo, potrebnađivati Matltaka (nume

ntirana klasama (osnovne

operatore, groman skupsivanje okvnkcija, rukoarne, podfu

program, tjtualni editobu (Octaveueditor, koji otvara se p

ra navedena

ranja editor

niku (File -O

a)

b) nje Matlabo

no je znati:labove izrazeričke, logiča), e građevnesimbole, nap funkcija k

virnog proceovanje s argunkcije, anon

. skripta, ilior) te napisu). Može sese poziva

prazan prozoa datoteka.

ra klikom m

Open za po

ovog editora

ze), čke, znakov

e blokove aredbe za ukoje se već esa programgumentima)nimne, slož

i funkcija, pane linije se korisititi bnaredbom

or editora, aKako je s

miša na iko

stojeću dato

a teksta

vne, datum

za programupravljanje, nalaze u Ma

ma u razvoju,

žene, privatn

potrebno je spremiti pobilo koji ededit iz koma ako se navremenom

onicu (

oteku ili Fil

me, strukture

miranje u Mobične izra

atlabu), u, kreiranje

ne),

koristiti d nekim ditor, ali mandnog piše ime

m Matlab

za novu

le – New

e, ćelije,

Matlabu: aze, liste

skripti i

Page 74: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

rukovanje s greškama (kako provjeriti ima li greški u programima, prepoznati ih i oporaviti se od njih ako je moguće, poruke o greškama i njihovo ignoriranje),

vremenski raspored izvršavanja naredbi (upotreba sata za određivanje akcija programa),

učinovitost (tehnike za najveću učinkovitost programa), upotreba memorije (tehnike za učinkovito korištenje memorije i izbjegavanje "Out of

Memory" greške). Pod temeljima sintakse podrazumijeva se kreiranje varijabli, numeričkih polja, pohrana teksta u znakovni tip podataka, unošenje višestrukih naredbi u jednoj liniji, produženje dugih izraza u više linija, pozivanje funkcija, koja su ispravna imena varijabli, programska nasuprot funkcijskoj sintaksi, i dr. Primjer: pohrana rečenice u varijablu znakovnog tipa. >> myString = 'Kako smo danas?'; Ako se u tom teksu želi imati apostrof ili jednostruki (polu) navodnik, tada se on navodi kao normalni navodnici: >> otherString = 'You''re right' otherString = You're right U ovom programskom okružju, sve su varijable polja, pa prema tome postoje i znakovna polja, kao što se vidi iz ispisa: >> whos myString Name Size Bytes Class Attributes myString 1x12 24 char Dugi izrazi se, zbog preglednosti i ograničenja editora, mogu pisati u više linija, kao npr.: s = 1 - 1/2 + 1/3 - 1/4 + 1/5 ... - 1/6 + 1/7 - 1/8 + 1/9; mystring = ['Accelerating the pace of ' ... 'engineering and science']; Međutim, ograničenje je da start i kraj izraza u polunavodnicima mora biti u istoj liniji. Tako je ovo npr. pogrešno napisano: mystring = 'Accelerating the pace of ... engineering and science' Sljedeća dva zapisa su jednaka: x = [1.23... 4.56]; x = [1.23 4.56];

Page 75: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Sva imena varijabli moraju počinjati sa slovom, a nakon toga može slijediti bilo koje slovo ili broj ili _. Matlab softver je osjetljiv na velika i mala slova. Ograničenje u nazivlju je da varijabla ne smije imati isto ime kao i ključne riječi u Matlabu, poput if ili end. Poželjno je izbjegavati imena funkcija kao imena varijabli. Da li je neko ime već iskorišteno, može se provjeriti naredbom exist. Što se tiče biti izvršavanja naredbe, sljedeća dva izraza su ekvivalentna: >> load durer.mat % Komandna sintaksa >> load('durer.mat') % Funkcijska sintaksa Ponekad se o tome govori kao o dualnosti komanda-funkcija. Standardna sintaksa za sve funkcije je: [izlaz1, ..., izlazM] = functionName(ulaz1, ..., ulazN) S komandnom sintaksom, ulazi se razdvajaju s praznim mjestima (engl. spaces, razmaknica na tipkovnici), a ne koriste se zagrade. Sljedeći primjer je takav, a njegov ekvivalent je naveden odmah ispod: >> disp 'hello world' hello world >> disp ('hello world') hello world Kada je ulaz funkcije varijabla, mora se koristiti sintaksa za pozivanje funkcija kako bi se proslijedila vrijednost varijable u funkciju. Komandna sintaksa uvijek prosljeđuje ulaze kao doslovni tekst. Primjer: >> A = 123; >> disp(A) 123 >> disp A A >> disp('A') A Tablica 9 prikazuje neke greške u sintaksi, tj. kako se dobiva neželjeni učinak krivim pisanjem funkcija i naredbi.

Page 76: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Kod nekclear i w >> who Name X Ovom nizrazom >> who Name X Uzmimo >> ls ./d Ovo modijeljenjprozorufunkcijaradnom Matlab >> ls =d Otvoren >> ls('./ Prazno mfunkcije >> ls ./d

kih funkcijawhos. Primj

os -file durer Size 648x509

naredbom sem:

os('-file','dur Size 648x509

o npr.

d

ože biti pozijem po elem

u, Matlab ća. Međutim

m prostoru, šodređuje da

d

na zagrada n

/d')

mjesto nakoe u komandn

d

Ta

a je ime vaer:

r.mat X Byte 2638

e traži infor

rer.mat','X') Byte 2638

iv funkcije mentima poće pristupiti

m, neke košto može doa li je nešto

nakon ident

on identikatnoj sintaksi

ablica 9. Uo

arijable dosl

es Class 656 double

rmacije o va

es Class 656 double

ls, dok je ./dolja ls s varii radnom pmponente

ovesti do nefunkcija. T

ifikatora zn

tora, ali ne ii:

običajene g

lovno znak

Attributese

arijabli X u

Attributese

d argumentijablom d. Aprostoru i poput edito

eželjenih poTako npr. zn

nači poziv fu

i nakon pote

greške sintak

kovni podata

demo datot

t funkcije. MAko se ovaodrediti jesora ili anasljedica. Po

nak = znači p

unkcije:

encijalnog o

kse

ak, kao što

teci durer.m

Međutim, mnaredba uk

su li to polizatora ko

ostoji niz prpridruživanj

operatora, p

su npr. sav

mat. Isto bi d

može biti i zakuca u komolja ili varioda nemajuravila premanje kod:

podrazumjev

ve, load,

dobili i s

ahtjev za mandnom ijable ili

u pristup a kojima

va poziv

Page 77: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Prazno mimplicir >> ls ./ >> ls./d S ovimargumenPonekadpodatakorijentirželjamanovog tmogu dna noviizvršavaodređenMatlabonadređeProgrampetlje, v

Kod obinforma

mjesto na ora operaciju

d d

m pravilima ntom u komd je zbunjuj

ka (numerirana klasa, ka korisnika ptipa podatakefinirati kaki tip podataaju umjestonoj klasi objove funkcijene i programmski elemenvrijeme i dat

bjektnog pracijama kak

uvod u objsavjeti kaksintaksa de

obje strane pu varijablam

bi potencijmandnoj sintjuć izbor klčke, logičkkontejner ppa prema toka te funkcko se razni aka. Pri to

o postojećihjekata. je mogu bmske.

nti mogu imtum, regula

ogramiranjao projektiraekte u Matl

ko kreirati klefiniranja kl

potencijalnoma. Ovi zapi

ijalno zbunjtaksi. Najbolase podatakke, znakov

podataka), mome i noveciju ili postMatlabovi ome se mog

h postupaka

iti tipa: an

mati specijalnarni izrazi, iz

Slika 43. P

a, u ugrađeati i implemlabovom oklase i njihovlasa, načini

og operatorasi su prema

njujući izrazolja praksa jka. Na slicivne, datummoguće je de tipove podtupak za pooperatori (agu kreiratia. Može se

nonimne, p

ne vrijednozrazi odvoje

Pregled klas

enoj pomoćmentirati klaskružju, ve atribute kupotrebe ra

a, ili ne posta učinku jed

z ls ./d bioje izbjegavai 43 je preg

me, strukturdefinirati i ndataka. Pri onašanje toaritmetički, r

postupci kograničiti o

rimarne, sl

sti, a mogu eni zarezom

sa podataka

ći Matlaba se. Dan je:

kod objektnazličitih klas

tojanje razmnaki:

o poziv funanje zbunjujled klasa. Ure, ćelije,

nove klase ptome treba g tipa podareferenciran

koji imaju voperacije k

ložene, pod

biti i uvjetnm, stringovi,

a

ima niz k

nog programsa,

maka na obj

nkcije s navujućih situacUz standard

polja i oprema potre

definirati sataka. Ovi nje, itd) primveći priorit

koje su dopu

dfunkcije, p

ne naredbe,, ljuske, sim

korisnih pog

miranja,

e strane,

vedenim cija. dne klase objektno-ebama ili strukturu postupci mjenjuju tet te se uštene u

privatne,

naredbe mboli.

glavlja s

Page 78: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

način odabira uporebe klase, sintaksa i definicija svojstava koja sadrže određenu klasu podataka, postupci definiranja operacija klasa te njihovog ponašanja, slanje i odgovaranje na poruke, rad s poljima, koncept i praksa kreiranja klasnih hijerarhija, spremanje i učitavanje objekata, upotreba brojača (engl. enumerator) i konstanti te njihovih svojstava, korištenje klasnih meta-podataka, upravljanje ponašanjem objekta, ponašanje specijalnih objekata, implementacija Matlabovih klasa za pretstavljanje polinoma te klase povezane s projektiranjem.

Page 79: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

10. MODELIRANJE I SIMUIRANJE

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

U samom početku simulatori su bili analogni, mehanički ili električni uređaji, s unaprijed definiranim osnovnim elementima. Vremenski odziv dobiva se na pisaču ili osciloskopu. No, razvoj elektroničkih računala omogućio je da se simulatori "simuliraju" na elektroničkim računalima u posebnim programima kao što su TutSim, VisSim, itd. Danas se za simulaciju električnih i elektroničkih sklopova najviše koristi Electronic Workbench (EWB), odnosno Multisim u novoj inačici, te danas i LabView, PowerSim. Takav tip specijaliziranog programa je i Atlas, koji se koristi za simulaciju arhitekture mikroračunala. Slično, u raznim područjima znanosti postoje specijalizirani programi poput Powersim i sl. Općenito se za simulaciju raznih složenih sustava koristi MatLab-ov dio - Simulink. Octave je pristupačan zbog toga što se nalazi u javnoj domeni (GNU, General Public License). Vrlo dobri rezultati se mogu postići upotrebom programa Mathematica. U početnoj fazi izrade bilo kojeg novog proizvoda uključena je i simulacija na računalu. Ako rezultati ne zadovoljavaju, moraju se mijenjati parametri prema podacima računalne simulacije, a tek kada je na računalu sve u redu ide se na izradu modela i na kraju prototipa. Za upravljanje sustavima potrebno je poznavati i mjeriti kontrolne veličine. Kontrolne veličine mogu biti npr. jedan ili više izlaza iz sustava. Te se kontrolne veličine analiziraju kao signali. Postoji više vrsta signala i više podjela signala u srodne grupe. No, prije samog rada, potrebno je razmotriti ispravno značenje određenih pojmova. Sustav je prirodna, društvena, tehnička ili mješovita tvorevina koja u nekoj okolini djeluje samostalno s određenom svrhom. Tvorevina je skup elemenata koji stoje u takvom uzajamnom odnosu da ne postoje razdvojeni podsustavi. Djelovanje označava obavljanje radnji pretvorbe energije, obrade tvari ili obrade informacija. Svrha označava konačan rezultat djelovanja/djelatnosti izražene u nekom cilju, a za zadovoljavanje neke potrebe. U Tablici 1.1. data su dva primjera koja pojašnjavaju pojmove djelatnosti, cilja i svrhe.

Page 80: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Navedeni su ciljevi kakvi bi logički trebali biti. Cilj farmacije bi trebao biti stvoriti lijek za neku bolest kako bi ljudi bili zdravi. Cilj ulova ribe (ribolovna djelatnost) je prehrana stanovništva.

Tablica 1.1: Usporedba djelatnosti, cilja i svrhe

DJELATNOST CILJ SVRHA farmacija Lijek Zdravlje ribolov Riba Ishrana

Automobil ne može djelovati samostalno, pa stoga nije sustav, iako je složena, tehnička i svrhovita tvorevina. To je sprava (uređaj). Vozila, pisači, dizalice, letjelice i sl. uglavnom nisu sustavi. Međutim, automobil s vozačem je mješoviti sustav. Mišolovka je svrhovita tvorevina koja ne može djelovati bez vanjskog poticaja, pa nije sustav. Ovakve svrhovite tehničke tvorevine (zamke, zvonca, alarmi, termometri) koje vanjskim poticajem obave određenu radnju nazivaju se napravama. Električni stroj za rublje je sustav, jer djeluje samostalno i svrhovito. Samostalno djelovanje neke tvorevine, bilo prirodne, bilo tehničke, moguće je ako takva tvorevina posjeduje vođenje. Vođenje (regulacija) je smisleno djelovanje na stanje energije i tvari u nekom procesnom prostoru na način da se postigne ili očuva neki cilj, odnosno svrha procesa. Vođenje se temelji na mjerenju i motrenju procesa pa je vođenje zapravo postupanje s informacijama s ciljem održavanja danog procesa. Motrenje je kad se određuje da li je nešto npr. vruće ili hladno, a mjerenje kad se određuje kolika je temperatura, npr. 22ºC. Automatika je znanstveno-tehnička disciplina čija su područja teorija vođenja, istraživanje i analiza uvjeta djelovanja i zakonitosti vođenja različitih sustava te sinteza i gradnja sustava za automatsko vođenje. Automatizacija je tehnička disciplina koja obuhvaća sve mjere s kojima se smanjuje udio ljudskog rada u proizvodnji i s kojima se postiže viši stupanj ekonomične i rentabilne proizvodnje u pogledu utroška sirovine, energije i vremena. Automacija ima širi smisao i označava razdoblje u razvoju proizvodnih snaga u kojem strojevi zamjenjuju čovjeka u fizičkom radu i misaonim djelatnostima: opažanju, pamćenju i odlučivanju.

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

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

Page 81: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Model može biti matematički ili opisan grafički, kao npr. blok-dijagramom. Iz modela se može napraviti računalni kod koji imitira rezultate koje daje sustav. Postoji šest koraka u modeliranju bilo kojeg sustava: 1. definiranje sustava ili cilja simulacije, 2. identificiranje komponenti sustava, 3. modeliranje sustava s jednadžbama, 4. izrada blok dijagrama u simulacijskom programu (npr. Simulinku), 5. izvođenje simulacije i 6. potvrda rezultata simulacije. Izvođenje prva 3 koraka ovog procesa je izvan Simulinka (ako se radi u programskom paketu Matlab) prije nego se počne izrađivati blok dijagram. Definiranje sustava: Prvi korak modeliranja dinamike sustava je njegova potpuna definicija. Ako se modelira veliki sustav koji može biti podijeljen u više dijelova, svaki dio se modelira odvojeno. Nakon stvaranja modela tih dijelova, vrši se integriranje u kompletni model sustava. Identificiranje komponenti sustava: Drugi korak u procesu modeliranja je identifikacija komponenti. 3 tipa komponenti koji definiraju sustav su:

Parametri — vrijednosti sustava koje su konstantne ako ih ne promijenimo, Stanja — varijable u sustavu koje se mijenjaju s vremenom i Signali — ulazne i izlazne vrijednosti koje se mijenjaju dinamički tijekom simulacije.

U Simulinku, parametri i stanja su dani blokovima, dok su signali dani linijama koje spajaju blokove. Za svaki podsustav koji je identificiran, bez obzira na programski paket, potrebno je postaviti pitanja: • Koliko ulaznih signala podsustav ima? • Koliko je izlaznih signala podsustava? • Koliko stanja (varijabli) ima podsustav? • Koji su parametri (konstante) u podsustavu? • Postoje li unutarnji signali podsustava? Kada se odgovori na ta pitanja dobiva se popis komponenti sustava i može se početi modeliranje. Modeliranje sustava jednadžbama je treći korak: Potrebno je formulirati matematičke jednadžbe koje opisuju sustav. Jednadžbe se pišu za svaki podsustav, a pri tome se koristi popis komponenti. Model može uključivati: algebarske jednadžbe, logičke jednadžbe, diferencijalne jednadžbe (za kontinuirane sustave) te jednadžbe diferencija (za diskretne sustave). Te se jednadžbe koriste za stvaranje blok dijagrama u Simulinku. Izrada (Simulink) blok dijagrama: Blok dijagram se izrađuje za svaki podsustav odvojeno. Nakon modeliranja svakog podsustava, oni se integriraju u jedinstveni model sustava. Izvođenje simulacije: Izvodi se simulacija i analiziraju rezultati. Potvrda (validacija) simulacijskih rezultata: Cilj ovog koraka je ispitati da li model točno opisuje fizikalne karakteristike sustava. Slika 1.1. algoritamskim načinom prikazuje proces simuliranja. Struktura simulacijskog procesa nije strogo sekvencijalna, što znači da je moguć povratak na prethodne korake procesa, ovisno o dobivenim rezultatima u pojedinim fazama procesa.

Page 82: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Blok zaplaniranrezultataU literatsimulac1. Prevo2. Povez3. Simu PrevođU ovoj s

I O P V

a planiranjenje simulaca eksperimeturi se susre

cije unutar Sođenje modzivanje mod

ulacija.

enje modelse fazi modIzračunavajOdređuju seProvodi se pVirtualni bl

Slika 1

e simulacijsijskih ekspenta je statiseće i drukčijSimulinka seela, dela i

la del prevodi uju se parame svojstva spostupak oplokovi se za

1.1: Dijagra

skog ekspererimenata kstička analizija podjela pe može pod

u izvršni obetri blokovaignala, ptimizacije amjenjuju bl

am toka sim

rimenta i nkoji omoguza rezultataprocesa sim

dijeliti na tri

blik, pri čema,

s ciljem redlokovima k

ulacijskog p

njegovo izvućuju ispunja simulacijsk

mulacije. Pre faze, i to n

mu se obavlj

duciranja brkoje oni sadr

procesa

vođenje sa jenje cilja skog eksperiema drugoma:

aju sljedeće

roja blokovarže,

slike 1.1 osimulacije. imenta.

m pristupu, p

e operacije:

a u shemi,

označava Analiza

postupak

Page 83: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Formira se lista blokova koja se u fazi povezivanja modela koristi kao polazište za određivanje poretka izvršavanja blokova,

Određuju se vremena uzorkovanja blokova za koje vrijeme uzorkovanja nije eksplicitno navedeno.

Povezivanje modela U ovoj se fazi priprema memorija potrebna za spremanje signala, stanja, izlaza i ostalih parametara simulacije. Nadalje, na temelju liste blokova stvorene u prethodnoj fazi, određuje se najefikasniji poredak izvršavanja blokova kako eventualno ne bi došlo do pojave algebarskih petlji. Pritom se uzima u obzir i eventualna razina prioriteta koju korisnik može dodijeliti pojedinom bloku. Simulacija O ovoj fazi Simulink sukcesivno izračunava stanja i izlaze iz sustava u vremenskim trenucima koji mogu, ali i ne moraju biti u jednolikim razmacima što ovisi o odabranom rješavaču diferencijalnih jednadžbi (eng. solver). Suvremeno modeliranje je praktički nezamislivo bez računala odnosno računalnih programa, koja se u modeliranju koriste prvenstveno u dvije svrhe:

- razvoj modela i - izvođenje proračuna.

Izraz "modeliranje i simulacija" označava složenu aktivnost koja uključuje tri elementa: realni sustav, model i računalo. Na kraju treba vidjeti i zašto je Matlab izabran za simuliranje i modeliranje. Neke prednosti Matlaba u usporedbi s "klasičnim" programskim jezicima poput Fortran-a ili C-a su: interaktivno sučelje omogućava brzo eksperimentiranje (Matlab je intrepretirani jezik

za razliku od, npr. Fortrana, koji je prevođen - kompajliran), potrebna je minimalna briga oko podatkovnih struktura (praktički nema deklaracija

varijabli i polja osim ako se želi točno nešto definirati na neki poseban način), Matlab omogućava brzo i lako programiranje (zahvaljujući moćnom matričnom

konceptu), ugrađeni grafički podsustav omogućava jednostavnu, kvalitetnu i brzu vizualizaciju, programi pisani u Matlabovom jeziku (tzv. m-datoteke) su obične tekstualne datoteke

i stoga su potpuno prenosive između različitih operacijskih sustava/platformi, postoje mnogobrojni dodatni paketi (alatke, engl. toolbox), tj. skupine m-datoteka za

razna specijalna područja i postoje mnogobrojne m-datoteke i čitavi paketi koje autori, ujedno i korisnici, stavljaju na slobodno raspolaganje putem Interneta.

Page 84: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

11. SIMULINK

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

a)

Page 85: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Slika 4

Otvarancontinuo- deri- integ- mem

47. Bibliote

Slika

njem određeous), može vator, grator,

morija,

eka blokova

a 48. Unos k

enog izbornse izabrati:

Simulink-a

Od

komponenti

ika, pojavlju

b)

a: a) izgled sinačica

dabrani elem

i modela u p

uju se bloko

starije inači

ent se ili “vuč

OvdSim

prozor za S

ovi. Otvaran

ice, b) izgle

če” ili kopira

dje se može poulink Library

Simulinkov m

njem kontin

ed jedne od

u ovaj prozor

ozvati y Browser

model

nuiranih (en

novijih

r

ngl.

Page 86: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

- pros- prije- nula- varij

Željeni (kopirajsu najzn- deri- poja- step- grafNa slici(releji, pVažniji Step inpVažniji MATLAformatoUpravljpodešavdobivajupodešavPritiskoStandartrenutne

stor stanja, enosna funka-pol, jabilno i lin

blok se mj-zalijepi). Onačajniji blovator, integ

ačanje i sump i sinusni gefički izlaz (si 48 prikazprekidači, zizvori (eng

put, white npokazivači

AB-ov vektom). anje simula

vanje razniu se opcijevanje paramom na lijevordne opcije e opcije. Iz

kcija,

nearno kašnj

mišem povlaOtvaranjemokovi prikazgrator i prijemator iz drugeneratori iz scope) i brojzani su i nezasićenje ili gl. sources)

noise, customi (engl. sinktor u radnom

acijom nijeih napredne za pokret

metara simulo dugme nasu već pode

z ovog proz

jenje.

Slika 48.

ači u radni m nekog drug

zani na slicienosna funkgog stupca;šestog stupjčani izlaz (eki značajnkvantizator su blokovi

m input, sinks) su Scopm prostoru)

e samo uklnijih paramtanje ("Starlacije ("Paraa mišu otvaešene. Ako zora je na

. Neki važnij

prozor (sligog izbornii 48. To su:

kcija iz prvo

pca; (display) iz niji blokovir) u trećem si su koji ge

ne wave, rampe (za iscrta), MATLAB

ljučivanje smetara. Pritrt"), zaustavameters"). ara se prozoje korisnik

ajznačajnije

iji blokovi

ika 47) ili ika dostupn

og stupca;

petog stupci za automastupcu. eneriraju ulmp input…avanje izlazB mat file (

simulacije iskom mišvljanje ("St

or za podešk prije nešto

podešavan

se koriste nni postaju dr

ca. atiku, kao n

lazni signal

za), simout (upisuje se u

i njeno zaua na izbotop") te vrl

šavanje parao mijenjao, onje vremena

naredbe corugi blokov

nelinearni

l u sustav,

(izlaz se uu datoteku

austavljanje,ornik "Simurlo važne o

rametara simonda su zapa simulacije

py-paste vi. Ovdje

elementi

kao npr.

upisuje u s Matab

, nego i ulation",

opcije za

mulacije. pamćene e. "Start

Page 87: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

time" osimulacTreba nstvarnihvremenspojedinovremenaponašat

Slika 5(p

značava pocije. napomenuti h 10 [s], negskom interom računalua. To je i ti za 10, 20 i

50. Izbornik(pridodan ak

očetni trenut

da je ovdjgo kompjutorvalu između, njegovimbit simulacili više godi

k za upravljakcelerator k

tak, a najče

je označenoor računa štođu "start t

m komponencije. Za mnina. Da simu

anje simulakako bi se m

ešće se uzim

o vrijeme so će se dogtime" i "sntama i svojnoge stvarn

mulacija traje

a)

b)

cijom: a) komoglo uprav

ma 0 [s]. "S

simulacijskađati sa simtop time". jstvima i mne sustave e toliko, ne

od starijih ivljati sustav

Stop time"

ko vrijeme,muliranim su

Trajanje može biti pun

potrebno jebi imala sm

inačica, b) kvom u realno

označava z

, tj. 10 [s] ustavom u ssimulacije no brže od e znati kak

misla.

kod novijih om vremenu

završetak

ne traje stvarnom

ovisi o stvarnog ko će se

inačica u)

Page 88: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Ostale opcije za primjenu u ovim vježbama nisu toliko važne, ali su značajne za istraživačke primjene. "Solver options" je način rješavanja zadanog problema, tj. izbor načina na koji će računalo riješiti problem.

Slika 50. Podešavanje parametara simulacije

Pokretanje simulacije

Zaustavljanje simulacije

Automatsko skaliranje prikaza

Podešavanje osi prikaza

Podešavanje maksimalne i minimalne vrijednosti y osi

Odabir područja za povećanje

Povećanje duž x-osi

Povećanje duž y-osi

Slika 51. Podešavanje parametara slikovnog vremenskog prikaza

Page 89: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Na slici 51 prikazano je kako se podešavaju opcije vremenskog prikaza signala ("scope"), za što bolji prikaz signala. Tako npr. ako se na skali do 100 promatra signal manjeg iznosa od 1, on se ne uočava dobro. Ako se isti signal gleda na skali do 1 mogu se vidjeti i razni detalji. Desnim klikom miša dobivaju se opcije koje su trenutno moguće, kao npr. automatsko podešavanje skale ("Autoscale") s čim se postiže najbolji prikaz dobivene krivulje s obzirom na maksimalnu i minimalnu vrijednost na koordinatnim osima. To nije skaliranje signala. Skaliranje signala je u biti normalizacija na odgovarajuću mjeru, dok je ovo povećavanje ili smanjivanje mjernog opsega, kao na instrumentima u laboratoriju, poput digitalnih ili analognih voltmetara. Pored znaka za pisač, nalazi se znak "Properties", koji služi za pozivanje izbornika opcija. Podešavanje minimuma (Y min) i maksimuma (Y max) na y-osi obavlja se lijevim klikom miša na "Axes Properites". Vremenski invarijantni linearni sustavi (engl. LTI - linear time-invariant) mogu se modelirati kao: - prijenosne funkcije (engl. transfer function - TF), - nula/pol/pojačanje (engl. zero/pole/gain - ZPG) - prostor stanja (engl. state-space - SS), ili - podatak frekvencijskog odziva. U MatLabu se ti modeli mogu generirati naredbom sys: - model prijenosne funkcije sys = tf(num,den) - nula/pol/pojačanje model sys = zpk(z,p,k) - model prostora stanja sys = ss(a,b,c,d) - model podataka frekvencijskog odziva sys = frd(response,frequencies) Simulink se može promatrati kao rješavač jednadžbi temeljen na modelima. Neki paketi za analizu sustava (ANSYS, Multisim, Vissim) imaju ugrađene jednadžbe koje modeliraju složene tehničke probleme. Štede dosta vremena. Mogu se koristiti samo za specifične probleme. Simulink dopušta da korisnik izgradi svoj model u grafičkom sučelju i simulira rezultat. Jedna od karakteristika Simulinka je neograničena složenost problema. Ona je ograničena samo vremenom za izvođenje i dostupnom memorijom. Prilagodljiv za bilo koje područje. Loša strana Simulinka je da se mora napraviti modeliranje. Dok postupak modeliranja može biti težak i složen, sam postupak slaganja modela je jednostavna:

• otvori se novi Simulink prozor (Simulink sprema u datoteku model), • pretraži se Simulink Library Browser

- klikne se na bibilioteku: “Sources” - povlači se željeni blok u Simulink prozor

• vizuelizacijski blokovi su u “Sinks” - npr. povuče se “Scope” u Simulink prozor

• u ostalim bibliotekama su ostali željeni elementi, • povežu se svi blokovi prema tome kako izgleda model, • u Simulation, Control Parameters se mogu podešavati razni parametri simulacije, kao

tip solvera, veličina koraka, trajanje simulacije, itd. Kod bloka sumatora može se na listu predznaka (list of signs) dodati +, - ili | te tako dodavati ili oduzimati ulaze koji se zbrajaju ili oduzimaju.

Page 90: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Mogu s54.a), a podešav

grafa m54.b).

Primjer

• p(

• p• p

Blokovibloku teizvježbanapravi signala.ta narednapravitJedna oviše, pokorak inNajsporjako spo

se modificirnajznačajn

vati parame

može se prom

S

jednostavnpovucite iz (scope), posložite ihpromijenite

i se mogu se povuče lia ruka. Druglijevi klik

Kada je mdba. Tada st dva klika n

od kategorijo brzini, jakntegracije srija dinamikorom simula

Constant

1

rati i grafovniji je izbor tre osi (Ax

mijeniti tak

Slika 54. a)

nog sustava:odgovaraju

h kao na slice predznak n

Slik

spajati na dinija do kragi način je na kranjemodel spojense smiluacijna bloku Sca sustava s

ko različitihs obzirom

ka određuje acijom.

vi u prozorautomatskoses propoer

ko da se lije

) Izbornik d

ućih bibliote

ci 55 i spojitna drugoj po

ka 55. Prim

dva načina. ajnjeg blokda se selekt

m bloku. Spn, pritisne seja izvršava.cope. To će u tzv. stiff

h dinamika. iz razloga trajanje sim

ru Scope. Do skaliranje rites) kako

evo klikne n

desnog klika

eka konstan

te, oziciji suma

mjer jednost

Prvi je da ka. Kod ovotira početni

pojke izmeđe strelica za. Ako se žeotvoriti gra

f sustavi. StNajbrža distabilnosti

mulacije. Si

Integra

1s

Desnim klikgrafa (englbi ih po po

na ikonicu

a, b) promje

ntni izvor, s

atora.

tavnom sust

se klikne nog načina mblok, pritis

đu linija prea „play“ ili „eli vidjeti reaf varijable utiff sustavi namika uvosamog po

imulacija ov

ator

kom dobiva. Autoscaletrebi raširil

i prom

na broja os

sumator, int

tava

a crtu ili strmože biti psne i zadrži edstavljaju s„run“ ili se ezultat simuu simulacijssu oni sust

odi ograničeostupka numvakvih susta

a se izborne). Uz to, mli ili suzili.

mijeni broj o

si

tegrator i po

trelicu na pproblema do

ctrl tipka dsignale, a lizabere u izulacije, potskom vremetavi koji saenja na makmeričke intava može re

Scope

ik (slika moguće je

Broj osi

osi (slika

okazivač

očetnom ok se ne dok se ne inije tok zborniku trebno je enu. državaju ksimalni egracije. ezultirati

Page 91: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Matematolerancskala raFizikalnznačenjnestlačiiskazujuPredodrproblemmnogo oscilatoSimulinJedan okod blotakvog bNpr. imje impli

Ovisno porukomsvakomRješava1. Modi2. Dodintegrac3. Na sikrene izrješenja

Uzmimo

atički gledancije grešek azličitih magni stiff sustu, kao npr.ve (engl. iu visokofrekređen (engl.

m stiff sustaprekida (di

ora, u kojemnk stiff rješad problemakova koji imbloka ponov

mplicitno y =icitno opisan

o postavkam u koman

m koraku solanje algebarifikacija simavanje mem

cijskog koraignalne linijz “dobrih” pa).

o primjer: y

no, kod stifkoja se mij

gnituda. tav ima jed opruga s v

incompressikvencijske o. default) Sava, jer imaiskontinuitem je jedan avača može a na koje se maju svojstvo vraća ka

= 2 (u – y) jno, tj. posto

Slika 56.

ama simulandnom prozlver za rješarskih petlji: mulacijske smorijskog aka. Metodaje može se

početnih uvj

4

1

5

1uy

Slika

ff sustava rjejenjaju brzo

dnu ili viševelikom koible) fluideoscilacije u imulink rjea tijela kojaeta) u svojim

značajno lzahtjevati zmože naići

tvo izravnogao ulaz u bloe isto što i

oji povratna

Sustav s alg

acije, simulzoru ili zauavanje algeb

hema na oselementa “

a je primjenjdodati blokjeta. (Korisn

2y i rješe

a 57. Primje

ešenje variro. Stiff sus

e komponenonstantom. Me i nisku e

nekoj od svešavač tipična se gibajum pokretimlakši od drznačajno mai je problemg proslijeđivok dolazi doeksplicitno veza s izlaz

gebarskom p

link pojavuustavlja simbarskih petlj

snovi rješenj“Memory” njiva samo kk “IC” (počno u slučaju

enje 5

y

er rješenja a

ra sporo, ali stav ima ne

nti koje se Matematičk

električnu invojih koponno zahtjeva

u s popriličnma. Primjer rugog i stoganje vremen

m tzv. algebavanja ulazno pojave algy=2u/3. M

za.

petljom, y =

u algebarskimulaciju. U

ji koji uspor

ja algebarskkoji unosi

kada je pojačetni uvjet) u da algeba

2

255 u.

algebarske p

postoje i drkoliko intri

ponašaju „ki ekvivalenndukciju. T

nenti ili moda previše vrno različitimstiff sustavga brže oscna da bi rijearske petlje

nog signala. gebarske peteđutim, tije

= 2 (u – y)

ih petlji: iIprva dva s

rava izvođe

ke jednadžbkašnjenje

čanje petljekako bi se

arska petlja

. Slika 55 to

petlje

ruga rješenjističnih vre

„stiffly" u onti uključujTakvi sustadova. remena da bm brzinamava je par spcilira. Bilo ešio stiff suse. Pojavljuj Ukoliko setlje. ek signala je

Ignorira, upslučaja pozenje simulac

be; u trajanju

e manje od 1osiguralo d

a ima više od

o ilustrira.

ja unutar menskih

običnom u kvazi-

avi često

bi riješio a ili ima pregnutih

koji od stav. je se kod e izlaz iz

e kao što

pozorava iva se u cije.

u jednog 1; da solver d jednog

Page 92: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Da bi sl1. Dodaizlaznim2. Ozna>Create

Podsust- pods

subs- pods- pods

kontMaskirasubsysteSimulac [T,X,Y] simulac [T,X,Y] dodatnoPostavljČitanje

loženi modeavanjem blom portovimaačavanjem de Subsystem

tavi s uvjetnsustavi čijsystem), sustavi čije sustavi čijetrolnog signanje podsusem” cija se može

]=sim('mod

cija modela

] = sim('mo

o se može dejanje paramparametara

eli bili pregloka “Subsysa; dijela shem

m”.

Slika 58.

nim izvršavae je izvrš

je izvršavae je izvršanala 2. stava se vrš

e poszivati i

el‘);

uz parametr

del',TIMES

efinirati trajmetara poja pojedinih b

ledniji, čeststem” te uba

me od koje

Primjer for

anjem su: šavanje uv

nje uvjetovavanje uvje

ši tako da s

i iz komand

re simulacij

SPAN,OPTI

janje simulaedinih bloblokova: ge

to se koristeacivanjem u

se želi stvo

rmiranja su

vjetovanje

vanje bridometovanje br

se označi p

dnog prozor

je određene

IONS,UT);

acije, vrijedokova: set_et_param('O

e podsustaviu njega potr

oriti podsus

ustava s pod

razinom k

m kontrolnoridom kont

odsustav te

ra Matlaba.

e simulacijsk

dnosti pojed_param('OB

OBJ','PARAM

i. Stvaranje rebnih bloko

stav te odab

dsustavima

kontrolnog

g signala, trolnog sig

e odabrati o

Pokretanje

kim postavk

dinih parameJ','PARAMMETER',’V

podsustavaova skupa u

birom opcij

signala (

gnala 1 i

opciju “Edit

simulacije:

kama. S pom

etara simulaMETER‘,’VAVALUE').

a: ulaznim i

je “Edit-

(Enabled

razinom

t >Mask

moću:

acije. ALUE’).

Page 93: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Proces modeliranja sustava u Simulinku sastoji se od šest koraka. Postoji 6 koraka u modeliranju bilo kojeg sustava:

• definiranje sustava, • identificiranje komponenti sustava, • modeliranje sustava s jednadžbama, • izrada blok dijagrama u Simulinku, • izvođenje simulacije i • potvrda rezultata simulacije.

Izvođenje prva 3 koraka ovog procesa je izvan Simulinka prije nego se počne izrađivati blok dijagram. Definiranje sustava: Prvi korak modeliranja dinamike sustava je njegova potpuna definicija. Ako se modelira veliki sustav koji može biti podijeljen u više dijelova, svaki dio se modelira odvojeno. Nakon stvaranja modela tih dijelova, vrši se integriranje u kompletni model sustava. Identificiranje komponenti sustava: Drugi korak u procesu modeliranja je identifikacija komponenti. 3 tipa komponenti koji definiraju sustav su: parametri — vrijednosti sustava koje su konstantne ako ih ne promijenimo, stanja — varijable u sustavu koje se mijenjaju s vremenom, signali — ulazne i izlazne vrijednosti koje se mijenjaju dinamički tijekom simulacije. U Simulinku, parametri i stanja su dani blokovima, dok su signali dani linijama koje spajaju blokove. Za svaki podsustav koji je identificiran, potrebno je postaviti pitanja:

• Koliko ulaznih signala podsustav ima? • Koliko je izlaznih signala podsustava? • Koliko stanja (varijabli) ima podsustav? • Koji su parametri (konstante) u podsustavu? • Postoje li unutarnji signali podsustava?

Kada se odgovori na ta pitanja dobiva se popis komponenti sustava i može se početi modeliranje. Modeliranje sustava jednadžbama je treći korak: Potrebno je formulirati matematičke jednadžbe koje opisuju sustav. Jednadžbe se pišu za svaki podsustav, a pri tome se koristi popis komponenti. Model može uključivati: algebarske jednadžbe, logičke jednadžbe, diferencijalne jednadžbe (za kontinuirane sustave) te jednadžbe diferencija (za diskretne sustave). Te se jednadžbe koriste za stvaranje blok dijagrama u Simulinku. Izrada Simulink blok dijagrama: Blok dijagram se izrađuje za svaki podsustav odvojeno. Nakon modeliranja svakog podsustava, oni se integriraju u jedinstveni model sustava. Izvođenje simulacije: Izvodi se simulacija i analiziraju rezultati. Potvrda (validacija) simulacijskih rezultata: Cilj ovog koraka je ispitati da li model točno opisuje fizikalne karakteristike sustava.

Page 94: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

12. NEKE PRIMJENE MATLABA

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

12.2. Dohvat slike s kamere Jedan od čestih ulaznih signala je slikovni. Slikovni signal dolazi s kamere. Stoga je u Matlabu razvijen način dohvata slike. Slika se treba prenijeti u neki od formata koje podržava Matlab, poput strukture ili matrice. Da bi znali koji su video adaptori dostupni na nekom računalo, koristi se naredba imaqhwinfo. Slijedi primjer ispisa: » imaqhwinfo ans = InstalledAdaptors: {'matrox' 'winvideo'} MATLABVersion: '7.12 (R2011a)' ToolboxName: 'Image Acquisition Toolbox' ToolboxVersion: '4.1 (R2011a)' Naredbom imaqfind pronalaze se instalirane naprave. Slijedi primjer ispisa: » imaqfind Summary of Video Input Object Using 'Integrated Webcam'. Acquisition Source(s): input1 is available. Acquisition Parameters: 'input1' is the current selected source. 10 frames per trigger using the selected source. 'YUY2_1280x720' video data to be logged upon START. Grabbing first of every 1 frame(s). Log data to 'memory' on trigger. Trigger Parameters: 1 'immediate' trigger(s) on START. Status: Waiting for START. 0 frames acquired since starting. 0 frames available for GETDATA.

Page 95: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Da bi seočitanjaje prikaprikazuj

» vobj =

Da bi sesl.), potpotrebnpostići n »bb=do

e dohvatila a učitati u nazati sliku s je jedan prim

= videoinpu

Sl

e sa slikamatrebno je do

na je varijabnaredbom:

ouble(getsna

slika s kamneki Matlabo

kamere bezmjer takvog

ut('winvideo

lika 12.1: P

a moglo biloohvatiti slikbla dvostruk

apshot(vobj)

mere, potrebov format (gz učitavanjag pogleda do

'); preview(

Primjer prika

o što raditi (ku i upisati jke preciznos

j));

bno je defingetsnapshoa u varijabluobiven sljed

(vobj);

aza videa s

(otkrivanje je u neku vsti (double)

nirati video t). Kada se u i bez memdećim nared

kamere bez

rubova, pokvarijablu. Z). Dohvat s

objekt (viddefinira vid

moriranja (pdbama:

z memoriran

kreta, prepoa većinu algučitanjem u

deoinput), adeo objekt, preview). Sl

nja

oznavanje obgebarskih ou varijablu

a onda ta moguće

lika 12.1

bjekata i operacija može se

Page 96: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Osim u Simulinskup bloSlika 12bloka zata slika

Ako se kamere Ako se To je pr

radnom prnku izboromokova). 2.3 pokazuja dohvat sliželi obradit

Slika

klikne na i drugih mou spomenu

rikazano na

Slika

ostoru i pism odgovaraj

je najjednosike (From Vti, između d

12.3: Najje

blok za doogućnosti. utom izborn

slici 12.4.

a 12.2: Tok

sanjem progjućih bloko

stavniji SimVideo Devicdva bloka se

ednostavniji

ohvat slike,

niku klikne

slikovnih si

gramskog kova (uz uvje

mulink modce) i bloka ze postavlja o

i Simulink m

otvori se i

na Preview

ignala u Ma

koda, slika set da posjed

del za dohvza prikaz sliodgovarajuć

model za do

izbornik, ko

w, pokazuje

atlabu

se s kameredujete licen

at i prikaz ike (To Videći niz različi

hvat i prika

oji pruža iz

se slika kak

e može dohvncu za odgo

slike. Sastoeo Display)itih blokova

az slike

zbor video

akva stiže s

vatiti i u ovarajući

oji se od ). Ako se a.

formata,

kamere.

Page 97: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Kada sedjelovanmogu poSlika 12alatku rZbroj aotkrivanAko je dsporije kretnja je sastavje on ve

e pokrene mnja modelaodešavati ra2.6. prikazu

računalnog vapsolutnih rnja kretnji udetektirana bi bilo imadetektira ofvljen od višeće energije

Slika

model, tadaa (Slika 12.azne opcije,uje jednostvida (Comprazlika (engu obradi vid

kretnja u kati više djelff-line. Iza bše jednostavod zadanog

a 12.4: Prika

a se otvara 5). Kod ne, kao kontratavni primjeputer Visiongl. sum of

dea. U ovomkvadrantu, dova slike. Ubloka za ulvnih blokovg praga (blo

kaz slike doh

novi grafič

ekih kameraast, pozadiner otkrivanjn System To

absolute dm demo-u SAdemo naglašUlaz u modaz video po

va. Usporedok Motion T

hvaćene s ka

čki prozor, a, otvara se

nsko svjetlo,nja kretnji doolbox), a i

differences, AD se primjšava kvadradel je snimlodataka, sigbom se ozn

Threshold).

amere

koji prikaze i izbornik, boja, i sl. dostupan u ime datotek

SAD) je pmjenuje neovant crvenomljena datote

gnal dolazi dnačava kvad

zuje krajnjik kamere, k

pomoći (Hke je vipmotpopularni pvisno u 4 kv

m bojom. Boeka, što znado bloka SA

drant s kretn

rezultat kojim se

Help) za tion.mdl. postupak vadranta. olje, ali i ači da se AD, koji njom, jer

Page 98: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Model takav prunosa vkoristi intensity(People zajednič

sa slike 12rimjer prika

video niza, ssivu sliku, y). Studenti Tracker iličke upotreb

Slika 12

Slika

.6 može seazan je na sstavlja se bl

potrebno jima se prepi People Tr

be naredbi m

2.5: Prikaz

12.6: Simu

e modificiralici 12.7 i k

lok za kameje RGB uloruča da po

racking) u pmplay i vipm

slike nakon

ulink model

ati za primjkoristi integeru (From Vlaz s kameogledaju i pprozoru za pmplaytut. N

n djelovanja

otkrivanja k

jenu u realngriranu kamVideo Devicere transformprouče primjpomoć, mo

Naime, kada

a modela

kretnji

nom vremeeru s laptop

ce). Kako prmirati u sijere Matlabdel je u Sim

a se te dvije

enu (on-linep računala. redložak iz ivu mapu (bovog praćemulinku) te

e naredbe po

e). Jedan Umjesto Matlaba

(RGB to enja ljudi e primjer okrenu u

Page 99: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

glavnom prozoru, otvaraju se dva prozora, jedan za grafički prikaz (mplay), a drugi za operaciju na slici (to je primjer rotacije ulazne slike). Slika se vidi u mplay prozorčiću ako se klikne na liniju signala koji se želi gledati dok se izvodi Simulink simulacija i zadnja ikonica u prozorčiću mplay-a (za spajanje sa Simulinkom).

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

12.3. Otkrivanje kretnji – primjer analize slike Pitanja kod otkrivanje kretnji su: - u kojoj slici se kretnja događa? - u kojem područje slike se nalazi? Ovdje se razmatra nepomična scena u kojoj dolazi do kretnji (nadzorne aplikacije ili robot-izviđač). Jednostavni algoritam izgleda ovako:

1. uhvati slike (2 u svakom koraku), 2. izvrši operaciju korelacije na sivoj slici (prethodno je rgb2gray ukoliko kamera ne

daje sivu sliku, nego u boji, a radi jednostavnosti), 3. ako je rezultat korelacije veći od praga, znači da postoji kretnja. Ta slika se

memorira u slikovnoj datoteci (npr. .jpg) ili matlabovoj podatkovnoj (.mat), a u tekstualnoj datoteci (.txt) se upisuje u koje vrijeme u kojoj slici je došlo do kretnje,

4. ponavlja se gornje korake koliko ima slika. Ispis iz datoteke dnevnik.txt (vidjeti programski kod): MOTION WAS DETECTED AT 30-Aug-2007 19:55:38 in frame number 00003

AD

On-line otkrivanje kretnji - modificiran Matlab

Intensity

Intensity

SAD

AD

Sum ofAbsolute

Differences>

Quadrant MotionEstimates

Detect

Image

Preglednik-video prozor

1.7e4/512

Prag kretnjepo_potrebi mijenjati

nazivnik

1

Integrated W...YUY2_1280x720

input1From Video Device

R'G'B' tointensity

Color Space Conversion

Motion Energy

Detect

Page 100: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Slika 12.8: Oslikan primjer snimljene slike u podatkovnoj datoteci Matlaba

% Kretnje se uvode u dnevnik.txt file. % pamti.mat bilježi samo frame-ove (slike) gdje su kretnje. qq=0; % inicijalizacija brojača filmskih slika koje će se spremiti a=1; % inicijalizacija brojača svih slika u nizu preview(vobj); % ako se želi vidjeti što snima kamera, inicijalizira se video objekt threshold = 0.0001; % koliki se prag kretnje želi. O njemu ovisi osjetljivost detekcije. v=getsnapshot(vobj); % uzima prvu referentnu sliku s kamere [m n]=size(v); % dimenzije slike. Može se i ručno definirati % Provjera uvjeta dimenzije slike. Može se riješiti tako da se odreže višak slike if round(m/2)-m/2~=0 error('Dimenzije slike nisu djeljive s 2'); end if round(n/6)-n/6~=0 % 6, jer su 3 boje, 3x2 error('Dimenzije slike nisu djeljive s 2'); end tic % uključuje se mjerač vremena kako bi mjerili brzinu izvođenja programa for l = 1:1000 % inf – ako hoćemo raditi vremenski neogrraničeno a=a+1; w=getsnapshot(vobj); % uzima trenutnu sliku s kamere x=rgb2gray(v); % RGB u sivu sliku % podjela u 4 slike x1=x(1:m/2,1:n/6); x2=x(1:m/2,n/6+1:n/3); x3=x(m/2+1:m,n/6+1:n/3); x4=x(m/2+1:m,1:n/6); y=rgb2gray(w); % uzima trenutnu sliku % dijeljenje 240x320 u 4 slikice y1=y(1:m/2,1:n/6); y2=y(1:m/2,n/6+1:n/3); y3=y(m/2+1:m,n/6+1:n/3); y4=y(m/2+1:m,1:n/6); % izračun dvodimenzionalne međukorelacije za svaku slikicu z=corr2(x,y); z1=corr2(x1,y1); z2=corr2(x2,y2); z3=corr2(x3,y3); z4=corr2(x4,y4); % postavljanje vrijednosti korelacije u polja podataka h(a)=z; h1(a)=z1; h2(a)=z2; h3(a)=z3; h4(a)=z4;

100 200 300 400 500 600 700

50

100

150

200

250

300

350

400

450

500

550

Page 101: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

% izračun minimalne vrijednosti korelacije hh=[z1,z2,z3,z4]; zz=min(hh); hmin(a)=zz; % stavljanje min. Vrijednosti korelacije u polje podataka hmin kk=[hmin(a-1),hmin(a) ]; % proračun vrijednosti varijance var_value=var(kk,1); var_values(a)=var_value; % pohrana vrijednosti varijance u var_values, ne treba if (var_value > threshold) % provjera da li je varijanca veća od praga. fid = fopen('dnevnik.txt','a'); % zapisivanje u dnevnik vremena i broja slike. time=datestr(now); fprintf(fid,'MOTION WAS DETECTED AT %-100.20s\n',time); fprintf(fid,'in frame number %-110.5d\n',a); fclose(fid); qq=qq+1; imshow(w); pause(1/10000); % prikaz slike na zaslonu film(qq) = im2frame(w); % sprema se slika u varijablu film else v=w; % osvježava se referentna slika, ovo je opcijski korak end % kraj if end % kraj for petlje toc/a % ispisuje prosječnu brzinu obrade slike disp('je brzina rada u sekundama ili'); 1/ans disp('u fps-ima'); delete(vobj); % briše se vido objekt savefile = 'pamti.mat'; % definira se ima datoteke za spremanje save(savefile,'var_values','film'); % sprema se var_values i film u datoteku Crne pruge u dijelu slike nastaju zbog savijenosti kabela analogne kamere. Ovo je primjer upotrebe korelacije za detekciju kretnji. U Matlabu se može otkrivati i snimati kretnja u realnom vremenu. S prethodnim algoritmima se ništa ne radi u slici, što znači da stroj (računalo, robot) ne “razumije” sliku. Naime, računalo radi s “1” i “0” i sve napredne funkcije se svode na to. U biti treba dobiti binarnu sliku ili labelirati objekte u slici brojevima, a sačuvati izvornu za čovjeka. Stoga treba nekako predstaviti tu kretnju u računlno-prihvatljivom obliku. Prvi korak u tome je “segmentacija kretnje”, tj. označavanje piksela u kojima se kretnja ne događa kao “0”, a ostali mogu biti ili izvorni ili “1”. 12.3.1. Otkrivanje kretnje razlikom slika Otkrivanje kretnji razlikom slika može se izvršiti na dva načina:

a) oduzimanjem trenutne i referentne slike (engl. background subtraction) i b) oduzimanjem susjednih slika (engl. frame differencing),

a) Oduzimanje trenutne i referentne slike Jednostavni algoritam može se opisati u sljedećim koracima: 1. učitavanje snimljenog filma, 2. učitavanje referentne slike, 3. učitavanje trenutne slike,

Page 102: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

4. računredosljena Intel 5. crtanj6. ponav % Off-lload 19clear filfilm3(1)a=frametic % mjfor i=2: b=fra raz= figuend toc/99 % % On-livobj=via=getsntic % infor i=2: b raz=i figureend toc/99 %% Ako delete(v

nanje apsoled oduziman

procesorimje razlike, vljanje 3-5

line inačica:122007.matlm1;clear fil)=film3(2);e2im(film(1

mjerač vreme100

ame2im(film=imabsdiff(

ure(1);image

% ispis pros

ine inačica: ideoinput('wnapshot(vobjnicijalizacija100 % opcijb=getsnapshmabsdiff(a,e(1);image(

% opcija: pse stavi nek

vobj); % bri

lutne razliknja). Može

ma brže izvš

dok traje ra

: t; % učitavalm2; % brifilm=film3;

1)); % izvlačena se uklju

m(i)); % ičit(a,b); % rače(raz);pause

sječne brzin

winvideo');pbj); % uzimaa mjerača vrijski – bilo khot(vobj); %,b); % račua(raz);pause(

rosječna brzki drugi brojisanje video

ke trenutne se koristiti ava,

ad sustava il

anje datoteksanje viša v; clear film3či se iz pod

učuje - opcij

tava se trenučuna se razlie(0.05); % i

ne rada - opc

preview(vobanje slike s kremena - opkoji broj ili % uzimanje anje razlike (0.05); % isc

zina rada. j na for, ond

o objekta

i referentnza uint8 tip

li do prekida

ke u kojoj sevarijabli-opc3; % podeša

dataka prvi fjski

utna slika ika referentniscrtava se k

cija

bj); % inicijkamere

pcija inf nove slike referentne

crtavanje kr

da se i ovdje

a)

e slike (kaop podataka

a rada.

e video (filmcijski avanje varijfilm

ne i trenutnkretnja na za

alizacija vid

s kamere i trenutne sretnje na za

e mijenja br

o što se virazlika = im

m)

abli – opcij

e slike aslonu

deo objekta

like slonu

roj

idi iz slika mabsdiff(a,b

ski

a

bitan je b), jer se

Page 103: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Slik

Općenitkad se m b) OduzJednosta1. učita 2. a = 13. b = u4. račun5. crta s6. a = b7. ponav

ka 12.9: a)R

ta napomenmora povuć

zimanje suavni algoritse snimljen. slika,

uhavati se ilina se apsoluse razlika, , vlja se 3 – 6

Rezultat b-a

na: kad stani HDD onda

usjednih sliktam izgleda n film (ili on

i učita sljedutna razlika

6.

, b)rezultattr

ne sve u RAa se uspori r

ka ovako:

n-line uhvat

eća slika, između a i b

b)

c)

t a - b, c) prtrenutne slik

AM onda jerad.

ti slika),

b slike,

rimejr on-linke

e brzina on-

ne oduzima

-line i off-li

anja referen

ine približn

tne i

no ista, a

Page 104: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

% on-linvobj=via=getsntic for i=1:b=getsnraz=ima figure a=b; end toc/99 % % off-liload 19film=filtic for i=1: a=fram raz=i figure a=b; end toc/99

ne inačica ideoinput('wnapshot(vobj

99 napshot(vobabsdiff(a,b)e(1); image

% opcijski,

ine verzija 122007.matlm3; clear fi

99 me2im(filmmabsdiff(a,e(1);image(

winvideo'); pbj);

bj); ; (raz); pause

daje brzinu

t; clear filmfilm3;

m(i)); b=fram,b);% (raz); pause

preview(vob

e(0.05);

izvršavanja

m1;clear film

me2im(film(

(0.05);

bj);

a programa

m2; film3(1)

(i+1));

a)

)=film3(2);

Page 105: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Ako je bbrzinu. horizonPostoji slučaju debljina 12.3.2. R Logičnokretnja. pomoćuIscrtava

1. Uili aktiv2. Učitapragom slika. 3. Iscrtabijela sl4. PonavBrzina ooko 30 fload 19i=2:100figure(1

brzina takvNpr. ako i

nt kamere pprozirna fobi se mogla

a slova za pr

Rubovi kre

o bi bilo daNaravno, u

u detektora ranje praga: Učita se sni

vira video-ula se trenutna

m se dobija c

ava se trenulika vlja se 2-3. ovog algoritfps off-line122007.mat

0; c=frame2i1);image(c);

Slik

va da se ne uizmeđu 2 slprijeđe u saolija koja oa detektiratiroces prepo

etnje

a se razlika u praksi je trubova.

imljeni filmlaz. a slika. S crno-bijela

utna crno-

tma je : . t; a=frame2im(film(i));; end; toc/99

ka 12.10: P

uhvate 2 slilike treba 1

amo 1 slici,dbija svjetli razlika osv

oznavnja slo

slika možeto problema

m

2im(film(1)); c=rgb2gray9% oko 30 f

b)

Primjer rezu

ike, kamera10 ms, brzi, onda se nlost da kamvjetljenosti

ova.

e očistiti praatično. Dru

);a=rgb2gray(c);c(c<20fps off-line

ultata algori

a ne može sina je put/1ne stigne snmera ne mo

između reg

agom. U idugi način od

ay(a); a(a<200)=0; c(c>=

je threshold

itma

nimiti auto 10 ms. Međnimiti 2. sliže snimiti

gistracijske

ealnom slučdređivanja p

00)=0;a(a>==200)=255;ding

koje je pređutim, ako ika za oduregistracijupozadine i

čaju bi ostapodručja kre

=200)=255;

ekoračilo se cijeli zimanje.

u. U tom slova ili

ala samo etnji je s

;tic; for

Page 106: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Jednostavni algoritam za određivanje rubova kretnje: 1. Učita se snimljeni film ili aktivira video-ulaz. 2. Hvata se ili učitava prva slika. S pragom se dobija crno-bijela reprezentacija slike. 3. Učita se trenutna slika. S pragom se dobija crno-bijela slika. 4. Računa se razlika prve i trenutne slike. 5. Koristeći Sobelov detektor rubova iscrtava se slika rubova kretnje. 6. Ponavlja se 3-5. Brzina ovog algortima je: 4,23 fps off-line.

load 19122007.mat; a=frame2im(film(1));a=rgb2gray(a); a(a<200)=0; a(a>=200)=255; tic for i=2:100; c=frame2im(film(i));c=rgb2gray(c);c(c<200)=0; c(c>=200)=255;figure(1);edge(abs(a-c),'Sobel');end; toc/99 % 4,23 fps off-line je Sobel i thresholding load 19122007.mat; a=frame2im(film(1));a=rgb2gray(a); tic; for i=2:100; c=frame2im(film(i));c=rgb2gray(c); figure(1); edge(imabsdiff(a,c),'Sobel');end; toc/99 % off-line 3,9 fps off-line je Sobel Razdvajanje pozadine od pokretnih piksela Algoritam: 1. Učita se slika referentna slika i izračuna WT. 2. Učita se slika za analizu i računa WT. 3. Računa se korelacija između trenutne i referentne slike. 4. Ako je pređen prag korelacije računa se prag pozadine iz svojstava RGB prostora boja u valićnoj aproksimaciji. 5. Prikazuje se foreground.

Page 107: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

6. Ponavlja se 2-5.

Možda dodati Senkić diplomski??? + Jurčević diplomski!!!! – to su primjeri nadzornih aplikacija u radu Jure Senkić-Zavrąni rad-PEIT.docx Diplomski rad_jurcevic.doc 12.4. Upravljanje sustavom dva spremnika

Za ovaj primjer je potrebno imati alatku za robustno upravljanje (Robust Control Toolbox) u kojoj se nalazi predložak u datoteci tank_demo.m.

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

50 100 150 200 250 300 350

50

100

150

200

250

igor.vujovic
Rectangle
Page 108: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

V

f f f f f A h t t A h f t t t

Kunošenjsu prem

VaTem

V

Varijable spfhc - naredbfh - tok toplfcc - naredbfc - tok hladf1 - ukupni A1- presjekh1 - razina t1 - temperat2 - temperaA2 - presjekh2 - razina fb - protok tb - temperath - temperatc - temperaKako Matlau vrijednos

ma tablici 4.1

Tab

arijabla mperatura Visina

Tok

Slika 4.8

premnika ozba aktuatorule vode u spba aktuatorudne vode u tok u sprem

k površine svode sprematura sprematura spremk površine svode spremvode (Flowatura sprematura tople vatura hladneab radi s brosti. Obično 1.

blica 4.1: N

Ime jedtunhunfun

8: Sustav dv

značene su nu toplog tokpremnik 1,u hladne vod

spremnik 1mnik 1, premnika 1

mnika 1, mnika 1, mnika 2,

spremnika 2mnika 2, w rate) za sprmnika 2,

vode i e vode. ojevima, a nse definiraj

Normaliziran

dinice nit tnit nit

va spremnik

na sljedeći ka,

de, 1,

,

2,

remnik 2,

ne fizikalnimju normaliz

ne jedinice „0“ z

temperaturaprazan stok nult

ka kojim se

način:

m jedinicmirane jedini

u sustavu s

znači: a hladne vodspremnik tog ulaza

upravlja

a, treba pazice. U ovom

dva spremn

de tempp

maks

ziti na dosljm slučaju de

nika

„1“ znači:peratra toplepun spremnsimalni ulaz

ednost u efinirane

: e vode

nik zni tok

Page 109: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

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

Varijabla fs je faktor skaliranja toka koji konvertira njegovu vrijednost u opsegu ulaznih vrijednosti (0 - 1 funits) u tok izražen s hunits^3/s. Konstante alpha i beta opisuju odnos tok/visina za spremnik 1: % h1 = alpha*f1 – beta. 12.4.1. Nominalni model spremnika

Nominalni model postiže se linearizacijom oko radne točke: »h1ss = 0.75; % Razina vode spremnika 1 »t1ss = 0.75; % Temperatura spremnika 1 »f1ss = (h1ss+beta)/alpha; % Tok spremnika 1 -> spremnika 2 »fss = [th,tc;1,1]\[t1ss*f1ss;f1ss]; »fhss = fss(1); % Vrući tok »fcss = fss(2); % Hladni tok »t2ss = (f1ss*t1ss + fb*tb)/(f1ss + fb); % Temperatura spremnika 2 Nominalni model za spremnik 1 ima ulaze [|fh|; fc] i izlaze [|h1|; t1]: »A = [ -1/(A1*alpha), 0; (beta*t1ss)/(A1*h1ss), -(h1ss+beta)/(alpha*A1*h1ss)]; »B = fs*[ 1/(A1*alpha), 1/(A1*alpha); th/A1, tc/A1]; »C = [ alpha, 0; -alpha*t1ss/h1ss, 1/h1ss]; »D = zeros(2,2); »spremnik1nom = ss(A,B,C,D,'InputName',{'fh','fc'},'OutputName',{'h1','t1'}); »clf »step(spremnik1nom) »title('Odziv na step spremnika 1')

Page 110: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

N

Sli

Sli

Nominalni m

lika 4.9: Od

ika 4.10: Od

model za sp

dziv na jedin

dziv na jedin

premnik 2 im

ničnu korač

ničnu korač

ma ulaze [|h

čajnu pobud

čajnu pobud

h1|;|t1|] i izl

du spremnika

du spremnik

az t2:

ka 1

ka 2

Page 111: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

»A = -(h»B = [ (»C = 1;»D = ze»spremn»step(sp

12.4.2. M

UaktuatorOgraničučinci o

Nnjegova »act_BW»actuato»tf([act_»actuato»bodem»title('D»hot_ac»set(hot»cold_a»set(col

(h1ss + beta(t2ss+t1ss)/; eros(1,2); nik2nom = premnik2no

Model aktu

U aktuatoriri se mogučenje brzineograničenja Neka je ma derivacija)

W = 20; % or = [ tf(ac_BW 0],[1 aor.OutputN

mag(actuatorDinamika akct = actuatot_act,'InputNact =actuatold_act,'Inpu

a + alpha*fb/(alpha*A2*

ss(A,B,C,Dom), title('St

uatora

ma se javlju aproksimie ograničavbrzine mog

model aktuat). Koristit će

Širina pojat_BW,[1 acact_BW]) ]

Name = {'Flor) ktuatora venor; tName','fhc',or; utName','fcc

Slika 4

fb)/(A2*h2*a*h2), (h1ss

,'InputNamtep odziv za

aju dinamikirati sustava izvedbu a

gu biti ukljutora s jedne se derivira

asa aktuatorct_BW]); ; ow','Flow ra

ntila')

,'OutputNam

c','OutputNa

4.11: Bodeov

alpha); s +beta) /(al

e',{'h1','t1'} spremnik 2

ke i zasićenom prvog aktuatora vi

učeni kroz pnim ulaz (nani izlaz kak

ra (rad/s)

rate'};

me',{'fh','fh_

ame',{'fc','fc

v dijagram

lpha*A2*h2

},'OutputNa2')

nja. U korištreda sa saiše nego poerturbacijsk

naredba) i ko bi se ogr

_rate'});

c_rate'});

za aktuator

2) ];

me','t2');

tenom frekvturacijom b

oložaj. Za liki model. dva izlaza raničilo brzi

r ventila

vencijskombrzine i aminearni mod

(aktuirani inu aktuator

opsegu, mplitude. del, neki

signal i ra.

Page 112: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

12.4.3. P

Ureda, svKako bi »fbw = »filter =»h1F = »t1F = f»t2F = f 12.4.4. N

ETo značprojektinesigurn

Knesigurnmodel p

Eodzivu kao muDelta1 i

SK

modelirgranice

Ndominir

Protuprekla

U ovom privaki s grani se definira

2.25; % Pr= mkfilter(fb

filter; filter; filter;

Nesigurnos

Eksperimenči da je lineiranja, kontnosti koji poKako veličinosti mora preko svih fEksperiment1. To je zb

ultiplikativni Delta3 pri

Slika 4.12 pKako bi se ranja u funks obzirom nNominalni rati iznad 0

apajući (An

imjeru svi mničnom frekao filtar, kor

rotupreklapfbw,4,'Butter

st u dinamic

nti s otvorenearni modeltroler će lošogađa našu ina nesiguruključivati

frekvencija. nti s otvorebog miješani model greidaju izlazim

Slika 4.12

prikazuje mjdovršio mo

kciji frekvenna opseg gdmodel za ,02 Hz. Pos

nti-Aliasing

mjereni signkvencijom 2risti se nared

pajući filtar rw');

ci modela

nom petljoml dobar na še raditi u procjenu nenosti modetežinske fu

enom petljonja hladnih eške Delta2ma h1 i t2.

2: Uvođenje

jesta unosa odel nesigurncije. Kako dje je linearah1 je vrlo stoji fazni p

g) filtri

nali se filtrir2,25 Hz. Ndba mkfilter

s frekvencij

m otkrivajuniskim frekstvarnom sesigurnosti

ela i varijabunkcije ovis

om ukazujuh i toplih vo2 na t1 izla

e nesigurnos

grešaka u mrnosti, morje to teško

an model prprecizan d

pomak od d

raju s ButteNaredbom fi

r (engl. mak

jom kidanja

u izvjesne vkvencijama.sustavu. Stofizičkog su

bilnost tipičsne o frekv

u na značaoda i gubitkazu, dok se

sti u regula

model. a se kvantifprecizno od

recizan, a gdo 0,3 Hz. dodatnih 18

rworth-ovimlter vrši seke filter, kon

a u [Hz]

varijabilnost. Ako se tooga je potrestava. čno ovise o venciji kako

ajnu dinamika topline. Me multiplika

cijski krug

ficirati kolikdrediti, mogdje loš. Za t1 nes

80 stupnjeva

m filterima e filtriranje nstruiraj fil

ti u odzivu o zanemari pebno izradit

frekvencijo bi se norm

mičku nesiguMože se m

ativni mode

ko su velikgu se odred

sigurnost bia za t1 na 0

četvrtog signala.

tar).

sustava. prilikom ti model

i, model malizirao

urnost u modelirati el greške

ke greške diti grube

i trebala 0,02 Hz.

Page 113: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Takođe dinamikgranice »Wh1 =»Wt1 = »Wt2 = »clf; »bodem»title('G»legend % Norm»delta1 »delta2 »delta3 % Frekv»varh1 »vart1 =»vart2 = % Doda»spremn»spremn»spremn

je prisutan ke miješanjafrekvencija

= 0.01+tf([00.1+tf([200.1+tf([10

mag(Wh1,WtGranice grešd('h1 dynam

malizirana d= ultidyn('d= ultidyn('d= ultidyn('d

vencijski ov= 1+delta1= 1+delta2= 1+delta3

avanje varijnik1u = appnik2u = varnik1i2u = [

značajan pa voda. Koda za modelir

0.5,0],[0.25,*h1ss,0],[00,0],[1,21])

t1,Wt2), ški modelira

mics','t1 dyna

dinamika gr'delta1',[1 1]'delta2',[1 1]'delta3',[1 1]

visna varijab1*Wh1; *Wt1; *Wt2;

abilnosti nopend(varh1,rt2*spremni[eye(2); spre

Sli

ad pojačanjd t2 nesigurnranje granic

,1]); 0.2,1]); );

anja') amics','t2 dy

reški ]); ]); ]);

bilnost u h1

ominalnom m,vart1)*spreik2nom; emnik2u]*sp

ika 4.13: Gr

ja na toj freknost prevlad

ca pogreški

ynamics','L

1, t1, t2

modelu emnik1nom

spremnik1u;

ranice grešk

kvenciji. Tidava iznad ovisnih o fr

ocation','No

m;

;

ki modelira

i učinci dola0,03 Hz. Ovrekvenciji.

orthWest')

anja

aze iz nemovi podaci su

odelirane ugeriraju

Page 114: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Sgreške m »step(sp»title('V

12.4.5. P

Calgoritmizabiru odgovar

Sada je potrmodeliranja

premnik1u,1Varijabilnos

Slika 4

Projektiran

Cilj simulirma, mora se

težinske furajućih frek

rebno slučaa utječu na o

1000) st odziva zbo

4.14: Varija

nje kontrole

ranja je pre formuliratfunkcije kojkvencijski-o

ajnim odabirodziv.

og pogreški

abilnost odz

era

atiti naredbti sustav kojje odgovarvisnih komp

rom uzorko

i modeliranj

ziva zbog gr

be za t1 i ji minimizi

raju porememponenti.

ovati nesigu

ja (spremni

reški modeli

t2. Kako bira pojačanjećajima i p

urnost kako

ik 1) ')

iranja sprem

bi se iskore u zatvorepotrebne su

bi se shvat

mnika 1

ristile prednenoj petlji. u za norm

tilo kako

nosti H∞ Stoga se

malizaciju

Page 115: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Slika

P

praćenjeodnosu izvori šušum lošse takopenaliza »Wh1no»Wt1no»Wt2no»Wt1pe»Wt2pe»clf; »bodem»title('P»legend

4.15: Shem

Potrebno jee greški i ana relativn

uma uključušeg uzemljeno dobivaju acije greški

oise = 0.01;oise = 0.03; oise = 0.03; rf = tf(100,rf = tf(50,[8

mag(Wt1perfPenalizacijad('t1','t2')

a odgovaraj

odabrati teaktuatora. Onu dinamikuuju elektronnja, zračenjtežinske vro frekvenci

; [400,1]); 800,1]);

f,Wt2perf); a greške ovis

ajuće prijenotežin

žinske faktoObično se pu ostatka snički šum u e, i dr. Da brijednosti. iji:

sna o frekve

osne funkcijnskom fakto

ore senzorskpretpostavlj

sustava. To termoparov

bi se estimirSljedećim

enciji');

ije za probleorima

kih šumovaja da je dinnije točno

vima kod koralo razinu programski

em 2 spremn

a, naredbi zanamika senza šum se

ompenzatoršuma, korisim linijama

nika s uraču

a postavljannzora zanemenzora. Potra, pojačala sti se FFT aa dobiva s

unatim

nje točki, mariva u encijalni i filtera,

analiza te e odnos

Page 116: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

K

dominanpodešav

- z- z

gdje su »Wt1cm»Wtdiffc

T »Whact »Wcact »Whrate»Wcrate

Ifeedbac »system»system»system»system»inputva

Slika 4.16

Kako glavnntne. Takođvanje t1 i t2

za t1: t1cmdza t2 – t1: t2

w1, w2 ulaz

md = 0.1; %fcmd = 0.01

Također je p

t = 0.01; %= 0.01; %

e = 50; %e = 50; %

Izrada modck ili sysic:

mnames = 'spmnames = [smnames = [smnames = [s

ar = '[t1cm

6: Frekvenc

nina vode kđer se za t2 – t1:

d = Wt1cmd2cmd =Wt1

zi za bijeli š

% za t1 ; % za t2 - t

potrebno uč

% Penalizac% Penalizac% Penalizac% Penalizaci

dela otvore

premnik1i2systemnamesystemnamesystemname

md; tdiffcmd;

ijska karakt

koja teče u obično zada

d * w1 1cmd*w1+W

šum. Odgov

t1

čitati penali

cija za aktuaija za aktuaija brzine toija brzine h

ene petlje

u hot_act ces,' Wt1cmd es,' Whrate es,' Wt1perf ; t1noise; t2

terisitka gre

spremnik 2aje vrijedno

Wtdiffcmd*w

varajuće vrij

izacije za hl

ator vruće vator hladne oplog aktualadnog aktu

s težinama

cold_act t1Fd Wtdiffcmd Wcrate'];

f Wt2perf W2noise; fhc;

eške postav

2 dolazi iz ost blizu t1.

w2

jednosti tež

ladnu i vruć

vode vode

atora uatora

a uključuje

F t2F'; Whact Wca

Wt1noise Wt2; fcc]';

ljene točke z

spremnika Stoga ima

žinskih fakto

u vodu i brz

računanje

act'];

2noise'];

zbog šuma

1, izmjeneviše smisla

ora su:

zine aktuato

odziva na

e u t2 su a koristiti

ora:

aredbom

Page 117: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

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

Nastavak programskog slijeda je u potpoglavlju 4.3.7. Međutim, da bi se primjenio regulator s H upravljanjem, potrebno je objasniti kakvo je to upravljanje, što je učinjeno u potpoglavlju 4.3.6.

12.4.6. Pojam H norme i upravljanja

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

)(max)(

jFsF

(4.1)

Strogo matematički gledano, u gornjoj jednadžbi bi trebalo pisati sup, a ne max, jer se

maksimum može dobiti i kada frekvencija teži beskonačnosti, a u biti se traži supremum. Međutim, u inžinjerskoj praksi je dovoljno točno i maksimum. Kako se minimizira vršna vrijednost, pri ekstremnoj frekvenciji, slijedi da minimiziranje H norme odgovara minimiziranju vrha najveće svojstvene vrijednosti.

Simbol H dolazi od izraza "Hardy space" (Hardyjev prostor). H je, u kontekstu automatike skup prijenosnih funkcija s ograničenom -normom. Funkcija G(s) je strogo pravilna ako teži nuli kada s . Funkcija G(s) je polu-pravilna ili dvo-pravilna ako G(s) D 0 kada s ) prijenosnih funkcija. Iz tog skupa prijenosnih funkcija, odabire se s pomoću nekog kriterija ona koja je najbolja (s obzirom na taj kriterij, npr. pogreška).

Simbol dolazi od činjenice da se maksimalna amplituda, u ovisnosti o frekvenciji, može pisati:

p

p

pdjFjF

/1

)(lim)(max

(4.2)

Page 118: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

U

frekveniščezavaKad išbeskonaAko, np0,25. Poharmonamplituharmon

Msignala rada, gdne bi do

Supravlja– signal

P

A

Formula

U biti, potencijske kompaju teorijskčeznu harmačnog korijepr., postoji sonovnim kvika brzo pa

ude 1. To sici dijele s aMinimizacii za nju se r

dje je jedan ošlo do nestSlika 4.17 ačke varijabl za minimiz

Prijenosna m

Ako se gorn

acija proble

encirajući nponente ma

ki na beskonmonici maena beskonasignal koji ivadriranjemada. Funkcijse često raamplitudomijom H noračuna najbharmonik pabilnosti suprikazuje

ble, v – mjerziranje.

Slika 4

matrica sust

nji rezultat p

ema sa slike

v

z

na beskonaanje prisutninačnoj poteanjeg intenačno potencma harmon

m dobija se ja se uvijekadi na sam

m najvećeg. orme izolirolji regulato

posebno izraustava.

temeljnu krene varijab

4.17: Konfig

tava je sa sl

sU

sYsG

(

()(

primijeni na

P(s) =

e 4.17 glasi:

u

wsP

v

z)(

ačnu potenih harmonik

enciji, a pranziteta ostaciranog domnike amplitu1 i 0,0625,

k može normmom početk

ra se najveor/kontroleražen, te treb

konfiguracijble, w – egzo

guracija opć

like 4.17:

sICs

s

)

)

a oznake sa

C(sI – A)-1

sP

sP

u

w

)(

)(

21

11

vsKu )(

nciju, bira ka brže gušaktično već aje samo dminatnog haude 1 i 0,5, t

itd. Vidi semalizirati taku procedur

eći harmonr. Ova normba paziti na

ju općenitoogeni signa

ćenitog upra

DBA 1

slike 4.17,

1B + D.

u

w

sP

sP

)(

)(

22

12

v

se vršna e potencirankod kvadri

dominantnirmonika dotada se kvade da vrijedn

ako da je dore skaliranj

nik, tj. makma je dobra z

njegovu vr

og upravljali (smetnje

avljanja

D

onda je:

u

w

vrijednost,anjem i u poriranja ili ku, te se v

obija sam hadriranjem dnost nedomominantni hjem. U bit

ksimalna vrza ekstremn

ršnu vrijedn

anja, gdje wd i zapovij

, jer se otpunosti ubiranja.

vađenjem armonik. dobija 1 i

minantnih harmonik ti se svi

rijednost ne uvjete nost kako

su: u – ijedi r), z

(4.3)

(4.4)

Page 119: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Kako je općeniti objekta u prostoru stanja:

2221

1211

2

1

21

)(DD

DD

C

CBBA

sP

slijedi:

2221

121121

2

1 ,,DD

DDDBBB

C

CC ,

te je:

2221

22111

2

1221

11111

1

2221

1211

21

211

2

21

111

1

2221

1211

2112

11

2221

121121

1

2

1)(

DBAsICDBAsIC

DBAsICDBAsIC

DD

DD

BAsICBAsIC

BAsICBAsIC

DD

DD

BBAsIC

AsIC

DD

DDBBAsI

C

CsP

122

1112

1111

111

DBAsICP

DBAsICP

2111

221 DBAsICP

2221

222 DBAsICP

Prijenosna funkcija zatvorene petlje iz w u z data je s: z = Fl (P, K) w (4.5) Uvrštavajući izraz za u u matričnu jednadžbu za formulaciju problema slijedi:

wPKPIKPPz

wPKPIKPwPKvPwPz

wPKPIvKvPwPv

KvPwP

KvPwP

Kv

w

PP

PP

v

z

))((

)(

)(

211

221211

211

2212111211

211

222221

2221

1211

2221

1211

211

2212111 )(),( PKPIKPPKPF (4.6) H upravljanje uključuje minimizaciju H norme od Fl (P, K).

Standardni H optimalni kontrolni problem je naći sve stabilizirajuće kontrolere K koji

Page 120: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

minimiziraju izraz: )))(,((max),(

jKPFKPF ll

(4.7)

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

2

2

0)( )(

)(max),(

tw

tzKPF

twl

(4.8)

gdje je

0

2

2)()(

i i dttztz druga norma vektorskog signala.

Neka je min najmanja vrijednost ),( KPFl za sve stabilizirajuće kontrolere

(kontroleri koji vode stabilnosti sustava). Tada je H suboptimalni upravljački problem naći

sve stabilizirajuće kontrolere K takve da je

),( KPFl i > min. Stabilizirajući

kontroler K(s) takav da je

),( KPFl postoji ako i samo ako je:

a) X rješenje algebarske Riccatijeve jednadžbe:

022112

11

XBBBBXCCAXXA TTTT (4.9) takvo da je: 0Re 2211

2 XBBBBA TT

i za svaki i.

b) Y 0 rješenje algebarske Riccatijeve jednadžbe:

022112

11

YCCCCYBBAYAY TTTT (4.10) takvo da je 0Re 2211

2 CCCCYA TT

i za svaki i.

c) 2, YX . Svaki takav kontroler je onda dat s K = Fl (KC, Q) gdje je:

0

0)(

2

2

I

I

C

FBZLZA

sKc

gdje su:

XBF T2 ,

TCYL 2 ,

12

XYIZ ,

22112 CLZFBXBBAA T

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

Q . Za Q(s) = 0.

Slijedi:

FAsILZsKsK C1)()(

11 (4.11)

Page 121: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Gornji iC

observe

(4.13)

A

slike, svstabilan

P

pozitivnmaksim

gdje je

vrijednojednadž

izraz se nazCentralni k

er) i povratn

Ako nastanvojstvo stab

n i:

Primjećuje

nu povratnumalna granic

H ozna

ost), a Z je pžbe:

(A

iva centralnkontroler mno stanje (en

xAx ˆ̂

Slika 4

ne neki porbilnosti je

se da je

u vezu. Najmca stabilnost

min

ačava Henk

pozitivno-d

– BS-1DTC)

nim kontrolemože se rang. state fee

BBx

wow

T ˆˆ

12

1

4.18: H rob

remećaj, zarobustno a

I

K

H norma

manja moguti (eng. stab

1 1 N

kelovu norm

definirano (e

)Z + Z(A – B

erom i ima jazdvojiti u edback) kao

uBxX

orst

T ˆ 2

xFu ˆ

bustna stab

a tako pertuako i samo

1

MGKI

a od do

uća vrijednbility margin

12MN

H

mu, spekt

eng. positiv

BS-1DTC)T –

jednak brojestimator

:

CLZu 2

bilizacija pro

urbiranu poako je no

1

2

1 M

y

u i (I-G

ost koja sn) date su

2/1(1

tralni radiju

e-definite) r

– ZCTR-1CZ

stanja kao stanja (en

yx ˆ2

oblema

ovratnu vezminalni su

GK)-1 funkc

se može poskao:

2/1)XZ

us (tj. maks

rješenje alg

Z + BS-1BT =

općeniti obng. state es

zu sustava ustav povrat

cija osjetlji

stići i odgo

ksimalnu sv

gebarske Ric

= 0

bjekt P. stimator,

(4.12)

s gornje tne veze

(4.14)

ivosti za

varajuća

(4.15)

ojstvenu

ccatijeve

(4.16)

Page 122: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

uz supstitucije R = I + DDT i S = I + DTD, a X je jedinstveno pozitivno-definirano rješenje Riccatijeve algebarske jednadžbe:

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

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

Kontroler koji garantira:

11 MGKII

K (4.18)

za specificirani > min, dat je s:

TT

TTTT

DXB

ZCLDFCZCLBFAK

1212 )()()( (4.19)

gdje je: XBCDSF TT 1 i XZIL 21 . 12.4.7. Projektiranje H kontrolera

Uvođenjem težina riješen je problem otvorene petlje te je sada potrebno vratiti se na početni model sa zatvorenom petljom i regulatorom. Pri tome se minimizira iznos (gain). Sada će se izvesti zakon upravljanja za nominalni model spremnika (tankova). »nmeas = 4; % Broj mjerenja »nctrls = 2; % Broj naredbi upravljanja (kontrola) » [k0,g0,gamma0] = hinfsyn(P.NominalValue,nmeas,nctrls);

Najmanje pojačanje koje se može postići je 0,9, što znači da se specifikacije u frekvencijskom području mogu postići kontrolerom k0. Simulirajući ovaj pristup u vremenskoj domeni provjerava se ispravnost odabranih težina.

Zatvorenu petlju kreirat će se mapiranjem ulaznog signala [t1ref; t2ref; t1noise; t2noise] u izlazne signale [|h1|; t1; t2; fhc; fcc]: »systemnames = 'spremnik1nom spremnik2nom hot_act cold_act t1F t2F'; »inputvar = '[t1ref; t2ref; t1noise; t2noise; fhc; fcc]'; »outputvar = '[ spremnik1nom; spremnik2nom; fhc; fcc; t1ref; t2ref; '; »outputvar = [outputvar 't1F+t1noise; t2F+t2noise]']; »input_to_spremnik1nom = '[hot_act(1); cold_act(1)]'; »input_to_spremnik2nom = '[spremnik1nom]'; »input_to_hot_act = '[fhc]'; input_to_cold_act = '[fcc]'; »input_to_t1F = '[spremnik1nom(2)]'; input_to_t2F = '[spremnik2nom]'; »sysoutname = 'simlft'; »cleanupsysic = 'yes'; »sysic; % Petlja se zatvara s H-beskonačno kontrolerom |k0|

Page 123: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

»sim_k0»sim_k0»sim_k0

Sizmeđu »time=0»t1ref =»t2ref =»t1noise»t2noise»y = lsiSada će »h1 = h»t1 = t1»t2 = t2»fhc = f»fcc = f

S »plot(tim»xlabel(»ylabel(»title('O»legend»grid

0 = lft(simlf0.InputNam0.OutputNaSada ćemo 80-e i 100-

0:800; = (time>=80= (time>=80e = Wt1noise = Wt2noisim(sim_k0,[e se simulira

h1ss+y(:,1);1ss+y(:,2); 2ss+y(:,3); fhss/fs+y(:,4fcss/fs+y(:,5

Sada će se i

me,h1,'--',ti('Vrijeme [s('Mjerenja')

Odziv na stepd('h1','t1','t2

ft,k0); me = {'t1ref';

me = {'h1';simulirati

-te sekunde:

0 & time<10 & time<1se * randn(sse * randn(s

[t1ref ; t2refati izlazi i is

;

4); 5); % (0<=

iscrtati izlaz

me,t1,'-',tims]'); )

ep H-beskon2');

; 't2ref'; 't1n 't1'; 't2'; 'fhodziv susta

100).*(time-100).*(time-(size(time));(size(time));f ; t1noise ;scrtati odziv

= fhc <= 1)

ze, t1 i t2, te

me,t2,'-.');

načno kontro

noise'; 't2nofhc'; 'fcc'}; ava zatvore

-80)*-0.18/2-80)*-0.2/20; ; t2noise],tim

v:

e visinu h1 z

olera, k0')

oise'};

ne petlje k

20 + (time>0 + (time>=

me);

za spremnik

ada se pobu

>=100)*-0.1=100)*-0.2;

k 1:

buđuju točke

18; ;

e t1 i t2

Page 124: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

S »plot(tim»xlabel(»ylabel(»title('A»legend»grid

12.4.8. R

KpokazatMože sscenarij

»frad =»clpk0 =»clpk0_ % Raču

Slika 4.1

Sljedećim n

me,fhc,'-',tim('Time: seco('Actuators')

Actuator Cod('fhc','fcc');

Slika 4.2

Robustnost

Kod H∞ koti koliko dose usporedem unutar s

2*pi*logsp= lft(P,k0);

_g = frd(clp

unanje najgo

9: Odziv pr

naredbama i

me,fcc,'-.'); onds'); ') mmands for;

20: Signali f

t H kontro

ontrolera k0obro ta vrijditi nominaskupa mode

pace(-5,1,30

pk0,frad);

oreg slučaja

rojektiranog

iscrtat će se

r H-infinity

fhc i fcc dob

olera

je oznaka ednost upad

alni model ela nesigurn

0);

a

g kontrolera

e odzivi za to

Controller

biveni H ko

za nominalda u pertub

zatvorenenosti.

a na jediničn

ople i hladn

k0')

ontrolerom,

lni model sbirani mode

petlje ga

čnu koračajn

ne aktuatore

koji idu na

spremnika. el unutar gramma0 s n

nu uzbudu

e:

a aktuator

Sljedeća anranica nesignajgorim m

naliza će gurnosti.

mogućim

Page 125: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

»opt=w» [maxg% Uspo»clf; »semilo»title('A»xlabel(»legend»axis([1

R

govori d Zadataidnlgrey

12.5. Si

P

primitivvizuelizpristajan

wcgopt('Freqgain,wcu,inforedba sa za

ogx(fnorm(cAnaliza kval('Frekvencij

d('Nominaln1e-4 100 0 2

Slika 4.21:

Rad u najgda H∞ kontr

k za vjydemo2.m. R

imulink 3D

Programskivnog oblikazaciju razlinjem broda

qPtWise',1);fo] = wcgaiatvorenom p

clpk0_g.Nomlitete kontroja [rad/s]')

no','Najgori 2.5])

: Frekvencij

gorem slučajroler nije do

ježbu: AkRadi se o m

D Animation

i paket Maa virtuelne ičitih problu luku i kre

; in(clpk0_g,opetljom

minalValue)olera k0')

slučaj');

ijska karakte

aju sustava ovoljno robu

ko posjedmodeliranju

n

atlab/Simulstvarnosti.

lema. U oetanjem aut

opt);

),'b-', maxga

teristika za n

zatvorene pustan kod m

dujete odgmex datotek

link omogu. Virtuelni

ovom potpotomobila u v

ain.UpperB

nominalni i

petlje značamodeliranja

govarajuću ka vremens

ućuje stvarsvijet om

oglavlju ćevirtuelnom

Bound,'r--')

najgori mo

ajno je lošijgreški.

licencu, ski kontinuir

ranje virtueogućuje lake se bavitsvijetu.

ogući slučaj

iji od nomin

proučite ranih SISO

elnih svjetoakše projekti s dva p

j

nale, što

primjer sustava.

ova kao tiranje i

primjera:

Page 126: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

12.5.1. P

P

pomoćuraznih oprikazujpotrebn

Sstavljati

Ksoftver prikazan

Smodela postavim

Ssvakomje prikaz

Kodgovar

Kputanju Matlab

Pristajanje

Pošto se kou 3D softweobjekata, teje izgleda r

no je pribaviSljedeće se i i namještatKlikom na već sam sano na slici 4Sada treba n(kugla, ko

mo je se na Sljedeće tre

me se modeluzano namjeKada se narajućom .wrKada se naodnosno k

i nova skrip

broda u lu

oriste dva bera, kao npre će se iz radne površiti legalnu limora naprati modeli (Sodabir bibl

adrži. Prona4.42. napraviti pr

ocka, valjakradnu povr

eba postavitu može nam

eštanje koorapravi i posrl ekstenzijo

apravi modekako bi se pta.

Slika 4.

ku

broda, jedanr. V- REAL

već postojšine softwaicencu tog paviti nova raSlika 4.41).lioteke, otvođe se Tanke

ristanište, ok, stožac i sšinu (slika 4ti sve mode

mjestit položdinata za po

stavili modeom (Virtualele i snimiliTanker treb

40: Radna p

n Tanker, dM BUILDEjeće bibliotarske podrškprograma. adna površi

ori se prozoker i Remork

odnosno sofsl.). Odaber4.43). ele na virtužaj u 3D koostavljanje pele potrebnl Reality). i kao .wrl pbao vezati

površina V-

drugi RemoER-a. Taj prteke izvući ke. Naravno

ina odnosno

or u kojem ker, te se ub

ftver daje mre se kocku

ualni svijet. oordinatamapristaništa.

no ih je spre

podatak, poza dok uz

V-REALM BU

orker, potrerogram sadrpotrebne m

o, za izvođ

o novi radni

su prikazanbace u radn

mogućnost uu, namjeste

S lijeve stra odnosno sv

emiti pod ž

trebno je ispomoć Rem

UILDER

ebno ih je ndrži bibliotekmodele. Sliđenje ovog

i list na koje

ni svi modenu površinu

ubacivanje oe joj se dim

rane radne pvijetu. Na s

željenim na

sprogramiramorkera. O

napraviti ku razno ika 4.40 primjera

em će se

eli što ih u kako je

osnovnih menzije i

površine slici 4.44

azivom s

ati svaku Otvori se

Page 127: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

S

da bi mo

Sada treba nogli upravlj

Slik

Slika

napisati parjati s model

ka 4.41: Stva

4.42: Posta

r osnovnih ima.

aranje nove

avljanje Tan

kodova koj

e radne povr

nkera i Rem

i su potrebn

ršine

orkera

ni da bi se naš svijet o

očitao, te

Page 128: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

»world=»open(w»fig=vrf»kretnja»kretnja

Prva linsvijeta ksvijetomdvije linobjekta objekta. »for i= pause kretnj vrdra»end »for p= pause kretnj vrdra

=vrworld('vworld); rfigure(worla1=vrnode(a2=vrnode(

nija koda stkoji je modm. Treća linnije koda sTanker_z i

.

11000:-50:e(0.01) ja1.translat

awnow;

0.5:0.01:2;e(0.01) ja1.rotation

awnow;

vezivanje_br

ld); (world,'Tank(world,'Rem

tvara novi sdeliran. Drugnija koda posu varijable Remorker.

:-5000

tion=[1100

n=[0 1 0 p]

roda.wrl','n

ker_z'); morker');

Slika 4.4

svijet koji sga linija koostavlja svije kretnja1 i

To znači d

0 0 i];

;

new');

43: Postavlja

se zove WOda otvara svjet u prozori kretnja2 kda će se mo

anje doka

ORLD i taj vijet odnosnr koji će bitkoje će bitići upravljat

će svijet ćeno daje mogti prikazan ni jednake bt s bilom ko

e imati sva gućnost uprna ekranu.

bilo kojem ojom vrijedn

svojstva ravljanja Sljedeće svojstvu nosti tog

Page 129: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

»end

»j=-500»for k= j=j+2 pause kretnj vrdra»end » o=1»for l=- pause kretnj vrdra»end »for h= pause kretnj vrdra»end »f=-900»for g= f=f pau kre

00; 11000:-50:25; e(0.01) ja1.translat

awnow;

1000; -5000:+20:e(0.01) ja2.translat

awnow;

=2:-0.01:0.8e(0.01) ja2.rotation

awnow;

0; -900:+10:-f+10; use(0.01) tnja2.transl

Slik

1000;

tion=[k 0 j]

-900

tion=[l 0 0-

8

n=[0 1 0 h]

-450

lation=[f 0

ka 4.44: Pos

];

-o];

;

g];

stavljanje kkoordinata ddoka

Page 130: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

vrd»end »d=-50»for p= d=d+ pause kretnj kretnj vrdra»end »for s=0 pause kretnj vrdra»end »a=-30»for q= a=a-10 pause(0 kretnja vrdraw»end

drawnow;

00; 2:0.001:2.2

+1; e(0.01) ja2.translatja1.rotation

awnow;

0:-0.001:-0e(0.01) ja3.rotation

awnow;

0; -300:-10:-9

0; 0.01)

a2.translatiownow;

2;

tion=[d 0 d]n=[0 1 0 p]

0.28;

n=[0 1 0 s];

900

on=[a 0 q];

S

d]; ;

;

Slika 4.45: Prikaz veziivanja brodaa

Page 131: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

O

unese i a (slika 12.5.2.

AAnimativirtueln

DU ovomotvoriti

»world=»open(w»fig = v» vrdraw

Ovaj kod ppokrene, na4.45).

Vožnja auto

Ako studenion te predl

nom svijetu.Da bi se aut

m primjeru i vidjeti taj

=vrworld('vworld); view(world, wnow;

Slika 4.4

redstavlja sa zaslonu se

omobilom u

nti žele vidjložak Car in tomobilom se učitava svijet:

vrmount.wrl

'-internal');

6: Izgled pr

svaku pojede prikaže že

u virtuelnom

jeti na svomn Mountain

moglo voziveć postoj

l');

;

redloška vir

dinu kretnjueljena anima

m svijetu

m računaluns. Predloža

iti, potrebnoeći Matlabo

rtuelnog svij

u Tankera i acija koriste

ovaj primjak stvara su

o je naći nekov svijet. S

jeta s intera

Remorkeraeći 3D alat p

jer moraju čelje za upr

ki virtuelni Sljedećim n

aktivnim upr

a. Kada se opomoću MA

imati Simuravljanje vo

svijet ili ganaredbama

ravljačem

ovaj kod ATLAB-

ulink 3D ozilom u

a kreirati. se može

Page 132: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Svojstva i značajke svijeta mogu se očitati naredbom: »get(world)

Sva ponašanja unutar virtuelnog svijeta upravljana su promjenama u VRML čvorovima, koji određuju sve elemente. »nodes(world) Jednom čvoru će se pridružiti automobil: »car = vrnode(world, 'Automobile') »fields(car) Pomicanje čvora automobile vrši se promjenom koordinata čvora: »z1 = 0:12; »x1 = 3 + zeros(size(z1)); »y1 = 0.25 + zeros(size(z1)); »z2 = 12:26; »x2 = 3:1.4285:23; »y2 = 0.25 + zeros(size(z2)); »x3 = 23:43; »z3 = 26 + zeros(size(x3)); »y3 = 0.25 + zeros(size(z3)); Putanja automobile može se odrediti npr. sljedećim kodom: »for i=1:length(x1) car.translation = [x1(i) y1(i) z1(i)]; vrdrawnow; pause(0.1); »end Automobil se rotira s: »car.rotation = [0, 1, 0, -0.7]; »vrdrawnow; Postupak se može ponavljati za druge dionice ceste: »for i=1:length(x2) car.translation = [x2(i) y2(i) z2(i)]; vrdrawnow; pause(0.1); »end »car.rotation = [0, 1, 0, 0]; »vrdrawnow; »for i=1:length(x3) car.translation = [x3(i) y3(i) z3(i)]; vrdrawnow;

Page 133: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

pause(0»end

Ovo je pgodinu bmixed rresults bfrom theoperatorvirtualitA possibwhich wdetectiopeople sbiomedishould bobstacle 12.6. St

Mnekolikoili Matlasvakomkvadratena zelen

0.1);

područje ekbi se moglo

reality, the oby concentre virtual wor’s real worty is not necble applicat

would createon and recolsuffering froical applicabe used to ees or find a

tvaranje gr

Matlabova o naredbi, kabovom edi

me omogućue u kojima nu strelicu m

kperimenatao početi impoperator is arating. In virorld, becausrld location cessary to ption of virtue the illusioloring of fulom visual d

ation. In thisenable the hway home.

rafičkog suč

lepeza funkkao što su uitoru, a mož

uje stvaranjese postavlja

može se ispr

a i i izrada pplementiratiaware of botrtual realityse all sensesis isolated ferform the d

ual/augmentn of 3D spall planes. Th

disabilities tos case lowerhuman brain

čelja (GUI)

kcija omoguicontrol ili že se koriste svog grafaju određenrobati kako

prototipa. Imi u praksi. Tth the real a

y, it should bs are involvefrom real-wdesired taskted reality isace. A smalhis output so make their vision (edgn to interpre

)

gućuje i stvmovegui. G

titi alat za kfičkog sučeni elementi.

funkcionira

ma puno proThey are botand the augmbe impossibed in the vir

world stimulks. s to make gl processor hould be coir lives easige detectiont them at hi

aranje grafiGUI se možkreiranje GUlja. Prozor Elementi s

a GUI.

ostora za znath called mimented wor

ble to distingrtual enviroi. However

lasses with can take ca

onnected to er. That is an, plain closgher vision

fičkog sučele isprogram

UI, koji se nza izradu G

se biraju s tr

anost, a kroixed reality.rld, but getsguish the re

onment and r, this high l

small cameare of edge the nerves o

an example se, recolorin

n, e.g. to avo

lja. To se pmirati u teksnaziva GUIDGUI podijelrake lijevo.

oz koju In

s the eal world the level of

eras,

of of

ng) oid

postiže s stualnom DE, koji ljen je u Klikom

Page 134: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

I

editor i

Primjer functionf = figur hsur 'P 'C hmesh 'P 'C hconto

Izlist funkcspremiti s .

r jednostav

n simple_gure('Visible',rf = uicontroPosition',[31Callback',{@h = uicontroPosition',[31Callback',{@our = uicon

Slika 4.

cije jednog m ekstenzij

vnog grafič

ui2 ,'off','Positiool('Style','pu15,220,70,2@surfbuttonol('Style','pu15,180,70,2@meshbuttontrol('Style',

47: Izgled a

jednostavnoom te pokre

čkog sučelja

on',[360,500ushbutton','5],...

n_Callback}ushbutton','S5],... on_Callback'pushbutton

alata GUID

og sučelja enuti kao i s

a:

0,450,285])String','Surf

}); String','Mes

k}); n',...

DE za kreira

dat je ispodsvaki drugi

); f',...

sh',...

anje GUI

d. Može seprogram.

e unjeti u te

ekstualni

Page 135: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

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

Page 136: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Zadaci 1. Prom2. Prom3. Prom 12.7. Melektrič

Ugenerato

Senergetsrad sinkpropulz

Slika 4

za vježbu:

mijenite funkmijenite funkmijenite neke

Modeliranječnom propu

U ovom pora na broduSinkroni gskog sustavkroniziranoije.

4.48: Izgled

kciju koja sekcije iscrtave ispise u su

e automatsulzijom

potpoglavljuu s električnenerator je

va ovisi o sp. Slika 4.4

d jednostavn

e iscrtava u vanja koje seučelju.

skog uzbu

u, modeliranom propule jezgra brposobnosti p9 prikazuje

nog grafičko

grafičkom e pozivaju k

udnog regu

at će se dlzijom [6]. rodskog enparalelno spe mjesto si

og sučelja iz

sučelju i staklikom miša

ulatora sin

dio sustava

nergetskog pojenih sinknkronog ge

z gornjeg pr

avite neku pa s desne str

kronog ge

a dizel mo

sustava. Skronih geneeneratora u

rimjera

po vašem izrane.

eneratora b

otora i ele

Stabilnost beratora da ou sustavu el

zboru.

broda s

ektričnog

brodskog državaju lektrične

Page 137: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

S

Fautomatkompau

gdje je

generatoreaktanc M

Slika

Slika 4.50 p

Slika 4.

Fazni uzbutskog naponundne uzbud

Ur izlazni n

ora, Uq armcija. Model razli

4.49: Blok s

prikazuje su

.50: Sustav

udni sustavnskog regulde izražen je

U

napon i fazn

maturni nap

ike napona o

shema struk

ustav upravlj

upravljanja

v se sastojlatora (engle s d i q kom

UU dr

no-kompaun

pon generat

opisan je jed

kture brods

ljanja uzbud

a uzbudom g

i od uzbul. automaticmponentam

2xKI q

undne uzbud

tora na q-o

dnadžbama

ke dizel-gen

dom generat

generatora

udne jedinicc voltage re

ma:

xKIU dq

dne jedinice

si, K konst

a:

nerator prop

tora s povra

s povratnom

ce, izmjeniegulator, AV

2x

e, Ud armatu

tanta iznosa

pulzije

atnom vezom

m vezom

ičnog pobuVR). Mode

urni napon

a 29K

m.

udnika i el fazno-

(4.21)

na d-osi

/ te x

Page 138: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

ffstabtfa

fref UUU

K

UUU 0

(4.22) i

r

qdtf sTUUU

1

122 (4.23)

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

b

cc sT

sTUU

1

1 (4.24)

gdje je Uc izlazni napon kompenzatora, Tc i Tb vremenske konstanta kompenzatora. Model pojačala opisuje se u literaturi izrazom:

a

aca sT

KUU

1 (4.25)

gdje je Ua izlazni napon pojačala, Ka njegovo pojačanje, a Ta vremenska konstanta. Model saturacijske petlje dan je jednadžbom: Efd = Ua + Ur (4.26) 0 Ef Efmax, Ef = Efd, uz:

0,

0.,max

ptfp

pf KUK

KkonstE

gdje je Efd izlazni napon naponskog regulatora, tj. kombinirana funkcija naponske razlike i fazno-komoundnog regulatora pobude, Ef izlazni napon razmjeran saturacijskoj petlji, Efmax maksimalni izlazni napon razmjerne saturacijske petlje.

Matematički model izmjenične pobude dan je s:

fdee

f EKT

U

1

(4.27)

gdje je Ke vremenska konstanta izmjenične pobude.

Stabilizacijska povratna veza dana je s:

ff

ffff sT

sKUU

1 (4.28)

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

Page 139: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

prikazuj(izmejn

Slik

K

on ne movdje ppower sregulaciPobudn

gdje je

konstan

je simulacijnične uzbude

ka 4.51: Sim

Klasični primože riješiti primijeniti Asystem stabijski mod.

ni sustav ima

niskofrek

nta pojačan

jski model e).

mulacijski m

istup upravproblem ni

AVR u komilizer, PSS)PSS se ug

a fazni pom

kvencijska o

nja i TA in

izveden iz

model autom

vljanju pobuiskofrekvenmbinaciji sa). AVR jediglavnom ko

mak, koji se m

oscilacija.

nercijska v

z gornjeg m

matskog nap

udom s pomncijskih oscia stabilizatoinica komb

oristi za rjemože izrazi

1

1

2

x

tg

dx TT

KK

0

6

'

vremenska

matematičko

ponskog reg

moću PID rilacija u eneorom pobu

binirane AVešavanje proiti s:

2

x

x

AT

KA i x

2

konstanta

og modela z

gulatora (A

regulatora sergetskom sde energets

VR+PSS poboblema osc

d

A

TTK

TKT

03

3

'2

pobudnog

za AVR po

VR) pobudn

se široko kosustavu. Stoskog sustavbude nazivacilacija frek

AA

d

KKT

T

6

0', gd

sustava o

obudnika

nika

oristi, ali oga će se va (engl. a se PID kvencije.

(4.29)

dje je KA

opisanog

Page 140: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

prijenos

gdje su

Pizraziti

s tim što4.52 u c

snom funkc

d

d

X

XK

'

3

PSS mora is:

o je često ucrvenom ov

ijom:

e

e

X

X

i K 6

imati napre

u praksi T1=alu. Slika 4

G

ed

e

XX

X

',

ednu vezu,

sG )(

= T3 te T2 = .52 prikazuj

Slika 4.5

T

KsGe

1)(

a Xe reakta

obično iz d

sT

sT

2

1

1

1

1

1

T4. Model uje ukupni A

52: Sustav A

sTA

A

ancija prijen

dva dijela, a

sT

sT

4

3

1

1

PSS-a prikaAVR+PSS s

AVR+PSS

nosne linije.

a prijenosn

azan je na gustav uzbud

na funkcija

gornjem dijde.

(4.30)

može se

elu slike

Page 141: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

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

Studenti koji žele vidjeti na djelu simulaciju klasterizacije prometa moraju imati alatku neizrazite logike (Fuzzy Logic Toolbox) te predložak trips.m iz „Modeling Traffic Patterns using Subtractive Clustering”.

Klasterizacija je tehnika kojom se učinkovito prepoznaje prirodno grupiranje u velikim skupovima podataka. Tako se omogućuje koncizno predstavljanje odnosa u danim podacima. U ovom primjeru se grupiraju prometni podaci u široke kategorije kako bi ih se lakše razumjelo. Da bi se stalo na kraj nepreciznostima, idealno je korištenje neizrazite logike u ovom slučaju. Može se korisiti da se uzme nejasne ili neprecizne podatke ulaza i postigne preciznu izlaznu vrijednost. U Matlab/Simulink programskom paketu postoji neizraziti sustav zaključivanja (engl. Fuzzy Inference System, FIS) s pomoću kojeg se lako mogu koristiti složene analitičke jednadžbe. U ovom primjeru, neizrazita logika će se koristiti za grupiranje podataka u široke kategorije. FIS model će odražavati odnos između demografije i vožnji automobilom.

Cilj primjera je razumijeti vezu između broja automobilskih vožnji iz jednog područja i demografije područja. Podaci su uzeti za područje New Castle County, Delaware. Razmatrano je 5 demografskih parametara: populacija, broj stambenih jedinica, vlasništvo vozila, prihod prosječnog domaćinstva i ukupna zaposlenost.

Demografski faktori bit će adresirani kao ulazi, a ostvarene vožnje kao izlaz. Problem ima 5 ulaznih varijabli i jednu izlaznu. »tripdata % učitava podatke »subplot(2,1,1); plot(datin); »legend('populacija', broj stambenih jedinica', 'vlasništvo vozila',... 'srednji prihod kućanstva', 'ukupna zaposlenost'); »title('Ulazne varijable'); subplot(2,1,2); plot(datout) »legend('broj vožnji'); title('Izlazna varijabla')

Page 142: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

S

oduzimaiteracija » [C,S]

Pje funkcsve cenklastera

Upredstav

Sdimenzi »clf; »plot(da»legend» xlabel»ylabel(» title(‘P

S

Sljedeći koanjem. Za ta za estimac

= subclust(

Prvi argumecija koja oznntre klasteraa. U ovom svljaju položSljedeći crtije ulaznog

atin(:,5), dad(‘Točke podl('ukupna za(‘broj vožnjPodaci i kla

Slika 4.31 p

orak u ovomto se u Ma

ciju broja kl

([datin dato

ent subclusnačava klasa koji su id

lučaju, C žaje klasteraež prikazujprostora.

atout(:,1), '.dataka', ‘Ceaposlenost')ji'); asteri u oda

prikazuje re

Slika 4.3

m primjeru tlabu koristlastera i cen

out],0.5);

t funkcije jestere s utjecdentificirani

ima 3 reda u svakoj de kako se k

', C(:,5),C(:entri klaster)

abranim dim

zultat izvrša

30: Prometn

je primjenti funkcija s

ntara klaster

e podatak kcajem na pri funkcijom

da koji predimenziji. klasteri iden

:,6),'r*') ra', 'Lokacij

menzijama u

avanja gorn

ni podaci

na tehnike ksubclust. O

ra u skupu p

koji se trebaostor ulazni

m subclust.

dstavljaju 3

ntificiraju u

ja', ‘Jugoist

ulaznog pros

njih naredbi

klasterizacijOna izvršavapodataka.

a klasteriziraih podatakaSvaki red

3 klastera

'ukupna zap

tok');

stora')

.

je zvane gra brz algori

ati. Drugi aa. Varijabla u C sadrži

sa 6 stupa

aposelnost' i

rupiranje itam bez

argument C sadrži položaj

aca koji

i 'vožnje'

Page 143: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Generir »myfis=

Pargumen % Davamyfis = myfis = myfis = myfis = myfis = myfis =

FčlanskihtemeljempoložajageneriraFIS s 5klastera

Slika 4.3

ranje FIS-a v

=genfis2(da

Prvi argumnt je param

anje imena usetfis(myfissetfis(myfissetfis(myfissetfis(myfissetfis(myfissetfis(myfis

FIS se sastoh funkcija m ulaza, iza i utjecaja ao. Kako sk ulaza i 1 i

a koje je ide

31: Podaci

vrši se funk

tin,datout,0

ment je ulazetar klasteri

ulazima i izs, 'input',1,'ns, 'input',2,'ns, 'input',3,'ns, 'input',4,'ns, 'input',5,'ns, 'output',1,

oji od ulaza(membersh

zlaza i funcsvakog kla

kup podatakizlaz. Svakintificirala s

i klasteri u

kcijom genfi

0.5);

zna varijabizacije.

zlazima 'name','popu'name','dwel'name','num'name','inco'name','emp,'name','num

a, izlaza i phip functioncije članstvastera u ulazka ima 5 ulai ulaz i izlaubclust.

odabranim

fis2 koja kor

bla datin, a

ulation'); lling units')

m vehicles');ome'); loyment');m of trips');

pravila. Svans). Pravilava. Naredbaznom prost

aznih varijabaz imaju vi

m dimenzijam

risti spomen

a drugi izla

;

aki ulaz i iza diktiraju pa genfis2 dtoru. Naredbbli i 1 izlaznše članskih

ma ulaznog p

nuti način k

azna varijab

zlaz može iponašanje naje FIS priba myfis je nu varijablu

funkcija k

prostora

klasterizacije

abla datout,

imati bilo kneizrazitog i pokušaju FIS koji je

u, genfis2 kokao posljedi

e.

, a treći

koji broj sustava dohvata

e genfis2 onstruira icu broja

Page 144: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Zizlaz kabroju kl

Sčlanstva »fuzzy(m

N

otvara p »mfedit Naredbona ulaz

P"gaussmgaussovprvog k

Za trenutni arakterizirajlastera i stogSada možema i pravila.

myfis)

Neizrazita jprozor koji j

(myfis)

om mfedit(mili izlaz u FPrva člansk

mf”, a paramve krivulje, klastera za u

skup podau s 3 funkcga su kriranmo isproba

Slika 4

je funkcija kje podešen z

myfis) pokreFIS editoru. ka funkcija,metri te funka 1,877 cen

ulaznu varija

ataka subclucije članstv

na 3 pravila.ati FIS da b

4.32: Grafičk

koja starta za uređivanj

eće se grafi , in1clusterkcije su [1.1nter gaussovablu popula

ust je identva (pripadno. bi razumije

čko sučelje z

grafički edinje myfis, tj.

ički editor f

r1, odabire 162 1.877],ve krivulje. acije (C(1,1)

ificirala 3 kosti, membe

eli kako se

za uređivanj

itor za izrad. FIS-a koji

funkcije član

se u editor, gdje 1,162S in1cluste

)=1.877, S(

klastera. Stoership). Bro

klasteri pr

je FIS-a

du fuzzy susmo tek ge

nstva. Može

ru. Tip fun2 predstavljaer1 dohvaća1)=1.1621 )

toga se svakoj pravila je

retvaraju u

ustava. fuzzyenerirali.

e se dobiti

nkcije pripaa koeficijen

a se položaj ).

ki ulaz i ednak je

funkcije

y(myfis)

i klikom

adanja je nt širenja

i utjecaj

Page 145: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

S

dobivajutočnu shpodatak

N »ruleed

S a*popul gdje su

Fveze. Tkonfigumoglo r »surfvie

Slično tomu se iz dvijhemu opon

ka. Naredbom r

dit(myfis)

Sve 3 funkc

lation + b*d

a, b, c, d, e Funkcija su

Tu se simuuriran. Izlazrazumijevan

ew(myfis)

Slik

me, položaj je druge funašajući polo

ruleedit prik

cije pripadan

dwelling un

i f koeficijeurfview prikulira odziv z ili odziv Fnju ponašanj

ka 4.33: Ur

i utjecaj dnkcije člansožaj i utjec

kazuju se gr

nja u ovom

nits + c*num

enti linearnekazuje povrneizrazitog

FIS-a na ulnja sustava k

ređivanje čl

druga dva stva in1clus

caj 3 klaster

rafički neizr

slučaju će b

m vehicles +

e funkcije pršinu koja g sustava zlaz se iscrtakroz cijeli o

anskih funk

klastera zaster2 i in1cra preko od

razita pravi

biti oblika:

+ d*income

pripadanja. pomaže vid

za cijeli opava na vizupseg vrijedn

kcija

a ulaznu vcluster3. Osdgovarajućih

la:

e + e*emplo

djeti ulaznopseg ulaza uelno učinknosti.

varijablu postala 4 ulazh dimenzija

oyment + f,

o-izlazne nza koje je

kovit način

opulacije a slijede

a i skupa

neizrazite e sustav kako bi

Page 146: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Ojedinica »rulevie

Funpromjen 12.9. Iz (sem_Dynami

Slika 1.

Ono što je a.

ew(myfis)

nkcijom rulnu ulazne va

_12.pdf): Cic Models, J

Sway-yaw

očito je d

leview pojaarijable.

C.Y. Tzeng, Journal of M

-roll motion

a se broj v

avljuje se

J.F. Chen, FMarine Scie

n coordinate

vožnji pove

grafički sim

Fundamentaence and Te

e system

ećava s por

mulator ko

al Propertiechnology, v

rastom popu

oji daje od

s of Linear vol. 7, no. 2

ulacije i st

dziv s obzi

Ship Steeri, pp. 79-88,

ambenih

irom na

ing , 1999.

Page 147: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem
Page 148: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem
Page 149: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem
Page 150: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem
Page 151: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem
Page 152: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem
Page 153: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Naprav 12. 9. N

What IsConvenFixing PPlanninTrack LDead R

vit od ovog

Navigation

s Navigationntions for NaPosition

ng the ShorteLaydown – Deckoning

gore mode

n? avigational

est Path Displaying N

el u Simulin

Functions

Navigationa

nku – vježb

al Tracks

be 3 sata!!!!

!

Page 154: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Drift CoTime Zo

What INavigatvehicle agere ("longitudfor naviuse. Navigat

E U U

n D

Anotheran efficirouting)functionConvenUnits You cannavigati

d g l n

To makthese sp

A D

Related timezonNavigatNavigattrack waa coursethese wn+1 wanavigati

Here, firepresen

orrection ones

s Navigatiotion is the pfrom one lo

"to move ordes—is at thigating acro

ting on landEstablishingUsing the stUsing technnavigation, Deducing nr navigationient route (u), and settinns support thntions for N

n use and coional suppodreckon gcwaypts legs navfix

ke these funcpecific functAngles are Distances aSpeeds are

d functions tne, and crostional Tractional track aypoints. Ae (or speed)aypoints, w

aypoints, becion function

ve track legnted by two

on? process of plocation to anr direct"). Ghe core of noss expanses

d, over wateg position, utars, sun, annology to fixincluding G

net movemenal task invousually by g

ng out a planhese naviga

Navigationa

onvert amonort functions

ctions easy tions only, calways in d

are always inalways in k

that do not csfix, becausck Format format requ

A waypoint i) change. Na

which are calcause an enns always pr

gs require sio 6-by-1 vec

lanning, recnother. The

Geographic inavigation ps of the glob

er, and throuusing knownd moon (cex positions GPS) nt from a paolves plannigreat circle n of intendeational actival Function

ng several as are

to use, and certain convdegrees. n nautical m

knots (nauticcarry this rese of their p

uires colums a point thravigational lled legs. In

ndpoint for tresume ang

ix waypointctors, one fo

cording, ande word derivinformationpractice. Thebe, for whic

ugh the air cwn, fixed lan

elestial navi(inertial gu

ast known ping a voyagapproximat

ed movemenvities as welns

angular and

to conformventions are

miles. cal miles peestriction incpotential for

mn-vector varough whictracks are m

n this formathe final leg

gle units are

ts. In navigaor the latitud

d controllingves from then—usually ine toolbox inch projected

can involve ndmarks (piligation)

uidance, radi

position (dege or flight, tion), weathnt (track layll.

distance m

m to commone used:

er hour). clude rhxrhr application

ariables for th a track pa

made up of tat, therefore,g must be de

always giv

ational trackdes and one

g the moveme Latin rootsn the form o

ncludes specd coordinate

a variety ofloting)

io beacons,

ead reckoninwhich inclu

her avoidancydown). Ma

easurement

n navigation

, scxsc, gcxn outside na

the latitudesasses, usuallthe line seg, n legs are efined. Mapen in degre

k format, the for the long

ment of a crs navis ("shof latitudes cialized funes are of lim

f tasks:

and satellit

ng) udes determce (optimal apping Toolb

t units. The

nal practice

xgc, gcxsc, tavigation.

s and longitly correspon

gments conndescribed u

pping Toolbes.

he waypointngitudes.

raft or hip") and

and nctions mited

te

mining track box

e, for

track,

tudes of nding to necting using box

s are

Page 155: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Fixing PThe funyour deestablishnavigaticorrelatare treatOver thassumptthe naviThe Medetermithe naviThese acomputefixing pTo obtaconsideSome PIn this isame timand a 0ºcross is

But waicrosses

Position ndamental ostination, avh your curreion within sting the bearted as rhume distances tion causes igator to ploercator was ned with a rigator to ma

assumptionser. The tool

process usinain a good nred necessa

Possible Situmaginary cme, Gilliganº-180º line ta fix. Since

it; your portthe point of

bjective of voiding hazent positionsight (or radrings and/or

mb lines, whinvolved wno measura

ot all bearindesigned exradar, are asanually draws also lead tolbox include

ng these assunavigational ary. A questuations oastal region's Lighthouthrough the e you have u

t lookout saf intersectio

navigation zards on the n. Early sailodar range) or ranges of lile in fact th

with visual siable error anngs as straigxactly for thssumed to pw the range o computaties the navfixumptions. fix, your re

tionable or p

on, you takeuse bears 0ºlighthouse

used only tw

ys he took aon of the firs

is to determ way. The fors kept witf land is callandmarks. hey are actuightings (upnd it provid

ght lines on his purpose.plot as true carc with a c

ionally efficx function,

elationship tpoor fix can

e a visual beº. If you ploon your Me

wo lines, ho

a bearing onst two lines

mine at a givfirst step in thin sight oflled pilotingIn real-life

ually great cp to 20 or 30des the signia Mercator Range circcircles on acompass. cient methowhich mim

to at least thn be obtaine

earing on thot a 90º-270ºercator charowever, its q

n Cape Jone, you will h

ven momentaccomplishf land to facg. Positions piloting, all

circles. 0 nautical mificant advanprojection.

cles, which mMercator c

ds for fixingmics the man

hree knowned with two

e radio towº line througrt, the point quality is qu

es of 300º. Ihave a perfec

t how to prohing this is tcilitate this.are fixed b

ll sighting b

miles), this antage of all

might be chart. This a

ng positions nual plotting

n points is known poin

wer of 270º. Agh the radioat which th

uestionable.

If that line ect fix.

oceed to to Today, y earings

lowing

allows

with a g and

nts.

At the o tower he lines .

exactly

Page 156: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Whoopsbearingsfar as yoIn practtriangle is reportto try tothe qualNotice tintersecchoosinThe nexlandmargood ranautical

Now whThis amLuckilyresolve

s. What haps was slightou know, thtice, the littl or the verteted as poor,

o resolve thelity is reporthat three lin

ction points.ng two lines xt time you rks, but luckdar signaturl miles and

hat? You tombiguity arisy, your radar

everything.

ppened? Is ytly in error. hey are all ele triangle isex closest to, or even ase ambiguityrted as excelnes resulted. This is a cato intersecttraverse thekily, your nre, so you'rea range from

ook ranges fses from ther watch repo.

your lookouThis happequally valids plotted, ano a danger (no fix. If a

y. When all tllent or perfd in three inase of combt from amonese straits, itnavigational e not worriem the lighth

from only twe fact that ciorts that he

ut in error? Pens all the tid. nd the fix po(like shoal wfourth line three lines afect.

ntersection pbinatorial cong n lines. t is a very fl radar is oped. You get house of 15

wo objects, ircles can inhas Cape Jo

Possibly, buime. Which

osition is tawater). If thof bearing iappear to cr

points. Fourounting. Eac

foggy mornierating. Eaca range fronautical mi

and yet yountersect twiones at 18 n

ut perhaps opoint, 1, 2,

ken as eithee triangle isis availableross at exact

r lines wouldch intersect

ing. You canch of these lm the radioiles.

u have two pce. nautical mil

one or both or 3, is cor

er the centers large, the q, it can be ptly the same

d return sixtion corresp

an't see any landmarks h

o tower of 1

possible pos

les. This sho

of your rrect? As

r of the quality

plotted e point,

x ponds to

has a 4

sitions.

ould

Page 157: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

You wefix. Thris still pSometimchoices,are usedones areBearinghad reporesolvedbe takenleading

As you officer sUsing nThe navlines ancomputa

ere lucky thiree intersectpoor becausemes the thir, or by failind, 2x(n-chooe right. g lines and aorted a beard. Note, hown visually, eto uncertain

begin to woshows up onnavfix vfix functionnd arcs. Be wation time g

is time. Thetions practice the three c

rd range onlng to interseose-2) possi

arcs can be cring from thwever, that except in denty.

onder whethn the bridge

n can be usewarned, howgrows rapid

e third rangecally coincidclosest interly adds to thect one or bible intersec

combined. Ihe radar towin practice,

esperation. A

her this mane with a lapt

ed to determwever, that ddly with the

e resolved thde. Sometimrsections fohe confusionboth of the octions result

If instead ofwer of 20º, th

lines of beaA radar's be

nual plottingtop and Map

mine the poidue to the cnumber of

he ambiguitmes the ambrm a sort ofn, either by other arcs att. In this ex

f reporting ahe ambiguitaring for na

eam width c

g process copping Toolb

ints of intercombinatoriobjects. To

ty and gavebiguity is ref circular tribisecting th

t all. In geneample, it is

a third rangty could als

avigational fan be a deg

ould be autobox softwar

section amoal nature ofillustrate th

e you an excesolved, butiangle. he original teral, when neasy to tell

ge, your radaso have beenfixing shoul

gree or more

omated, youre.

ong any numf this proceshis function

cellent the fix

two n arcs l which

ar watch n ld only e,

ur first

mber of ss, the

n, assign

Page 158: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

positions to the landmarks. Point A, Cape Jones, is at (latA,lonA). Point B, the radio tower, is at (latB,lonB). Point C, Gilligan's Lighthouse, is at (latC,lonC). For the bearing-lines-only example, the syntax is: [latfix,lonfix] = navfix([latA latB latC],[lonA lonB lonC],... [300 270 0]) This defines the three points and their bearings as taken from the ship. The outputs would look something like this, with actual numbers, of course: latfix = latfix1 NaN % A intersecting B latfix2 NaN % A intersecting C latfix3 NaN % B intersecting C lonfix = lonfix1 NaN % A intersecting B lonfix2 NaN % A intersecting C lonfix3 NaN % B intersecting C Notice that these are two-column matrices. The second column consists of NaNs because it is used only for the two-intersection ambiguity associated with arcs. For the range-arcs-only example, the syntax is [latfix,lonfix] = navfix([latA latB latC],[lonA lonB lonC],... [16 14 15],[0 0 0]) This defines the three points and their ranges as taken from the ship. The final argument indicates that the three cases are all ranges. The outputs have the following form: latfix = latfix11 latfix12 % A intersecting B latfix21 latfix22 % A intersecting C latfix31 latfix32 % B intersecting C lonfix = lonfix11 lonfix12 % A intersecting B lonfix21 lonfix22 % A intersecting C lonfix31 lonfix32 % B intersecting C Here, the second column is used, because each pair of arcs has two potential intersections. For the bearings and ranges example, the syntax requires the final input to indicate which objects are lines of bearing (indicated with a 1) and which are range arcs (indicated with a 0): [latfix,lonfix] = navfix([latB latB latC],[lonB lonB lonC],... [20 14 15],[1 0 0]) The resulting output is mixed: latfix = latfix11 NaN % Line B intersecting Arc B latfix21 latfix22 % Line B intersecting Arc C latfix31 latfix32 % Arc B intersecting Arc C lonfix = lonfix11 NaN % Line B intersecting Arc B lonfix21 lonfix22 % Line B intersecting Arc C lonfix31 lonfix32 % Arc B intersecting Arc C Only one intersection is returned for the line from B with the arc about B, since the line originates inside the circle and intersects it once. The same line intersects the other circle twice, and hence it returns two points. The two circles taken together also return two points. Usually, you have an idea as to where you are before you take the fix. For example, you might have a dead reckoning position for the time of the fix (see below). If you provide navfix with

Page 159: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

this estito the es[latfix,lo latfix = lonfix = A Num

1. Da

2. l3. l

l4. P5. a6. 7. p8. 9.

Hf

10. T0

11. 12. 13. n

imated positstimate. Heronfix] = nav [20

latfix11 latfix21 latfix31

= lonfix11 lonfix21 lonfix31

merical ExamDefine somarbitrary; pelata = 3.1; latb = 2.95;latc = 3.15;Plot them oaxesm('Map

'MapLatLplotm([lata

'LineStyle'MarkerE'MarkerSi

Here is whafor illustrati

Take three v026.5º. Calc[newlat,new

newlat =

tion, it choore's what it vfix([latB la

0 14 15],[1 0

% % %

mple of Usime specific p

erhaps theylona = -56.2 lonb = -55 lonc = -55.

on a MercatopProjectionLimit',[2.8 3

latb latc],[le','none','MadgeColor','bize',12) at it looks liion):

visual beariculate the in

wlong] = na [289 1

oses from eamight look atB latC],[lo0 0],drlat,dr

% the only p% the close% the close

% the only% the close% the close

ing navfixpoints in they correspond2; .9; .95; or projectio','mercator',

3.3],'MapLolona lonb loarker','pentab','MarkerF

ike (with lab

ings: Point Antersections

avfix([lata la35 26.5],[1

ach pair of alike:

onB lonB lorlon)

point er point er point

y point er point er point

e middle of d to points i

on: ,'Frame','on

onLimit',[-5onc],... agram',... aceColor','b

beling and i

A bears 289s: atb latc],[lon 1 1])

ambiguous

onC],...

the Atlanticin Atlantis:

',... 6.3 -55.8])

b',...

imaginary c

9º, Point B b

na lonb lonc

intersection

c Ocean. Th

coastlines ad

bears 135º,

c],...

ns the point

hese are stri

dded after th

and Point C

closest

ctly

he fact

C bears

Page 160: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

14. 15. 16. 17. n18. 19.

20. A21. p22.

Bp

23. Wa

24. 25. 26. n27. 28. 29. 30. n31. 32.

H

3.0214 3.0340 3.0499

newlong = -55.9715 -56.0079 -56.0000

Add the intplotm(newl

'Marker',''MarkerF

Bearing linepair of objeWhat if instand 7.5 nmi[newlat,new

newlat = 3.0739 3.2413 3.0443

newlong = -55.9846 -56.0355 -56.0168

Here's what

NaN NaN NaN

NaN NaN NaN ersection polat,newlongdiamond','MaceColor','r

es have beeects results itead, you hai, respective

wlong] = na [13 9 7

2.9434 3.0329 3.0880

-56.0501 -55.9937 -55.8413 t these poin

oints to the ,'LineStyle'

MarkerEdger','MarkerSiz

en added to tin only one ad ranges frely?

avfix([lata la7.5],[0 0 0])

nts look like

map: ','none',... eColor','r',...ze',9)

the map forintersection

rom the thre

atb latc],[lon)

:

.

r illustrationn, since all aee points, A

na lonb lonc

n purposes. are lines of

A, B, and C,

c],...

Notice thatbearing. of 13 nmi,

t each

9 nmi,

Page 161: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

T33. W34. 35. 36. n37. 38. 39. 40. n41. 42.

As

43. Wc

44. d

Three of theWhat if, ins[newlat,new

newlat = 3.0526 3.0592 3.0443

newlong = -56.0096 -56.0360 -56.0168

Again, visuseem like reWhen usingcandidate frdrlat = 3.05

ese points lostead of a rawlong] = na

[284 9

2.9892 3.0295 3.0880

-55.7550 -55.9168 -55.8413

ual inspectioeasonable pg the dead rrom each pa

5; drlon = -5

ook reasonaange from Pavfix([lata la9 7.5],[1 0 0

on of the respositions. eckoning poair of interse56;

able, three dPoint A, youatb latc],[lon])

sults indicat

osition (3.0ecting objec

do not. u had a bearna lonb lonc

tes which th

5ºN,56.0ºWcts is chose

ring to it of 2c],...

hree of the s

W), the closen:

284º?

six possible

er, more rea

points

asonable

Page 162: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

45. [newlat,newlong] = navfix([lata latb latc],[lona lonb lonc],... 46. [284 9 7.5],[1 0 0],drlat,drlon) 47. newlat = 48. 3.0526 49. 3.0592 50. 3.0443 51. newlong = 52. -56.0096 53. -56.0360

-56.0168 Planning the Shortest Path You know that the shortest path between two geographic points is a great circle. Sailors and aviators are interested in minimizing distance traveled, and hence time elapsed. You also know that the rhumb line is a path of constant heading, the natural means of traveling. In general, to follow a great circle path, you would have to continuously alter course. This is impractical. However, you can approximate a great circle path by rhumb line segments so that the added distance is minor and the number of course changes minimal. Surprisingly, very few rhumb line track legs are required to closely approximate the distance of the great circle path. Consider the voyage from Norfolk, Virginia (37ºN,76ºW), to Cape St. Vincent, Portugal (37ºN,9ºW), one of the most heavily trafficked routes in the Atlantic. A due-east rhumb line track is 3,213 nautical miles, while the optimal great circle distance is 3,141 nautical miles. Although the rhumb line path is only a little more than 2% longer, this is an additional 72 miles over the course of the trip. For a 12-knot tanker, this results in a 6-hour delay, and in shipping, time is money. If just three rhumb line segments are used to approximate the great circle, the total distance of the trip is 3,147 nautical miles. Our tanker would suffer only a half-hour delay compared to a continuous rhumb line course. Here is the code for computing the three types of tracks between Norfolk and St. Vincent: figure('color','w'); ha = axesm('mapproj','mercator',... 'maplatlim',[25 55],'maplonlim',[-80 0]); axis off, gridm on, framem on; setm(ha,'MLineLocation',15,'PLineLocation',15); mlabel on, plabel on; load coast; hg = geoshow(lat,long,'displaytype','line','color','b'); % Define point locs for Norfolk, VA and St. Vincent Portugal norfolk = [37,-76]; stvincent = [37, -9]; geoshow(norfolk(1),norfolk(2),'DisplayType','point',... 'markeredgecolor','k','markerfacecolor','k','marker','o') geoshow(stvincent(1),stvincent(2),'DisplayType','point',... 'markeredgecolor','k','markerfacecolor','k','marker','o') % Compute and draw 100 points for great circle gcpts = track2('gc',norfolk(1),norfolk(2),... stvincent(1),stvincent(2)); geoshow(gcpts(:,1),gcpts(:,2),'DisplayType','line',... 'color','red','linestyle','--')

Page 163: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

% Comprhpts = geoshow 'color[latpts,l stvincgeoshow 'colorThe resu

The Maorder to[latpts,lAll the iinput is column size of e[latpts,lstvincenlatpts = 37.000 41.507 41.507 37.000 lonpts = -76.00 -54.17 -30.82 -9.000These ppath folCape StNow wewaypoin

pute and drtrack2('rh',n stvincent

w(rhpts(:,1)r',[.7 .1 0],'lonpts] = gccent(1),stvinw(latpts,lonr',[.4 .2 0],'lulting track

apping Toolo approximaonpts] = gcinputs for ththe numbervectors rep

each of thesonpts] = gcnt(1),stvince

00 76 76 00

= 00 77 23

00 points represllows rhumbt. Vincent me can compunts:

raw 100 poinnorfolk(1),nt(1),stvincen),rhpts(:,2),'Dinestyle','-.'waypts(norncent(2),3);

npts,'Displayinestyle','-')

ks and distan

lbox functioate a great cwaypts(lat1his functionr of equal-lepresenting wse vectors iswaypts(norent(2),3) %

sent waypoib lines. Fou

must be incluute the dista

nts for rhumnorfolk(2),..nt(2)); DisplayTyp)

rfolk(1),norf; % CompuyType','line') nces are sho

on gcwayptsircle with rh

1,lon1,lat2,ln are scalarsength legs d

waypoints ins [(numlegs+rfolk(1),norf% Compute

ints along thr points areuded. ance in naut

mb line ..

pe','line',...

folk(2),... ute 3 waypo',...

own below:

s calculates humb line slon2,numlegs a (starting desired, whin navigation+1) 1]. Herfolk(2),... 3 waypoint

he great circe needed for

tical miles (

oints

waypoints segments. Itgs) and an end

ich is 10 by nal track fore are the po

ts

cle betweenr three legs,

(nm) along

in navigatiot uses this sy

ing positiondefault. Th

rmat ([headioints for this

n which the because the

each track a

on track foryntax:

n). The numhe outputs aing distances example:

approximate final point

and via the

mat in

mlegs re e]). The

ting t at

Page 164: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

drh = distance('rh',norfolk,stvincent); % Get rhumb line dist (deg) dgc = distance('gc',norfolk,stvincent); % Get gt. circle dist (deg) % Compute headings and distances for the waypoint legs [course distnm] = legs(latpts,lonpts,'rh'); Finally, compare the distances: distrhnm = deg2nm(drh) % Nautical mi along rhumb line distgcnm = deg2nm(dgc) % Nautical mi along great circle distlegsnm = sum(distnm) % Total dist along the 3 legs rhgcdiff = distrhnm - distgcnm % Excess rhumb line distance trgcdiff = distlegsnm - distgcnm % Excess distance along legs distrhnm = 3.2127e+003 distgcnm = 3.1407e+003 distlegsnm = 3.1490e+003 rhgcdiff = 71.9980 trgcdiff = 8.3446 Following just three rhumb line legs reduces the distance travelled from 72 nm to 8.3 nm compared to a great circle course. Track Laydown – Displaying Navigational Tracks Navigational tracks are most useful when graphically displayed. Traditionally, the navigator identifies and plots waypoints on a Mercator projection and then connects them with a straightedge, which on this projection results in rhumb line tracks. In the previous example, waypoints were chosen to approximate a great circle route, but they can be selected for a variety of other reasons. Let's say that after arriving at Cape St. Vincent, your tanker must traverse the Straits of Gibraltar and then travel on to Port Said, the northern terminus of the Suez Canal. On the scale of the Mediterranean Sea, following great circle paths is of little concern compared to ensuring that the many straits and passages are safely transited. The navigator selects appropriate waypoints and plots them. To accomplish this with Mapping Toolbox functions, you can display a map axes with a Mercator projection, select appropriate map latitude and longitude limits to isolate the area of interest, plot coastline data, and interactively mouse-select the waypoints with the inputm function. The track function will generate points to connect these waypoints, which can then be displayed with plotm. For illustration, assume that the waypoints are known (or were gathered using inputm). To learn about using inputm, see Interacting with Displayed Maps, or inputm in the Mapping Toolbox reference pages. waypoints = [36 -5; 36 -2; 38 5; 38 11; 35 13; 33 30; 31.5 32] waypoints = 36.0000 -5.0000 36.0000 -2.0000

Page 165: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

load coaaxesm(''MapLaframemplotm(la [lttrk,lntplotm(ltAlthougon other

The segof coursand retuthis formwaypoin[coursescourses distance Since thnauticalbe calcu

38.0000 38.0000 35.0000 33.0000 31.5000

ast MapProject

atLimit',[30 m

at,long)

trk] = trackttrk,lntrk,'r')gh these tracrs:

gments of a se and distaurn the courmat determint to its sucs,distances]=

90.0000 70.3132 90.0000 151.818698.0776 131.5684

es = 145.6231356.2117283.6839204.2073854.0092135.6415

his is a navil miles. Fromulated. Sout

5.0000 11.0000 13.0000 30.0000 32.0000

tion','merca47],'MapLo

k(waypoints)) ck segments

track like thnce. The fu

rse and distaines the direcessor, not = legs(way

gation funcm these distthbound traf

ator',... onLimit',[-1

);

s are straigh

his are calleunction legs ance requireection of trathe reverse.

ypoints)

tion, the coutances, speeffic is allow

10 37])

ht lines on th

ed legs. Eacwill take th

ed for each avel. Course.

urses are aleds required

wed to enter

he Mercato

h of these lehe waypointleg. Rememes are theref

ll in degreesd to arrive athe canal o

r projection

egs can be dts in navigat

mber, the ordfore calcula

s and the disat Port Said nly once pe

n, they are c

described intional trackder of the p

ated from ea

stances are at a given t

er day, so th

curves

n terms k format points in ach

in time can his

Page 166: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

informahigh fueDead RWhen sthey finreckoninreckoninBriefly,(30ºN,1north an

Howeveactuallyso he caLeavingmodern dead recpositionof windWhen nobservaof the shadvanceconditioSpecificDR:

D D D

ation might el costs.

Reckoning ailors first v

nd their wayng is an atteng. dead recko0ºW) at 080

nd sail for 3

er, a sailor sy 30.29ºN. Wannot calculg aside the dn craft have ckoning is sns. This is bd and currennavigators eations, they phip forwarde, or for the ons, hourly c DR positio

DR at everyDR at everyDR every h

be economi

ventured ouy home if theempt to dea

oning is vec00, and you

3 hours at 7

shoots the sWhat's worslate his longdifficulties ito contend wstill used forecause dead

nt drift cannostablish a fiplot a dead

d in time. Intime periodfixes are suons, which

y course chay speed chanhour on the h

ically signif

ut of sight ofey didn't knl with this p

tor additionu proceed duknots, you

un at local ase, he lives bgitude at all in speed detwith winds r determinind reckoningot. ix from somreckoning (practice, de

d covered byufficient; in are sometim

ange nge hour

ficant, since

f land, they now where tproblem. Th

n plotted on ue west for should be a

apparent nobefore the ifrom this s

terminationand current

ng position g provides a

me source, b(DR) track,ead reckoniy the next tcoastal pilo

mes called D

e unnecessa

faced a dauthey were? The term is d

a chart. Fo1 hour at 10

at (30.35ºN,

oon and discnvention ofighting. Wh

n and the neets. Howeverbetween fix

a certainty o

be it from pi which is a ing is usuallthree expectotage, three-DRs, are plo

rily high sp

unting dilemThe practiceerived from

r example, i0 knots, and10.19ºW) at

covers that tf a reliable chat happeneed to tack or, despite thxes and for f assumptio

loting, celeplot of the ily plotted foted fixes. In-minute fixeotted accord

peeds can le

mma. How ce of dead

m deduced

if you haved then you tat 1200.

the ship's lachronometeed? off course, ehese limitatiforecasting

ons that esti

estial, or sateintended poor 3 hours inn open oceanes are comm

ding to the R

ad to

could

a fix at urn

atitude is er, and

even ions,

g future mations

ellite ositions n n

mon. Rules of

Page 167: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

D D D

For exam

Notice tthis variMappinspeeds. approacplan of The timalong eacan be p

dt

d I

tImaginewaypoinYou int(10.1ºNspeed upwaypoinwaypoinspeeds =To deter[drlat,dr[drlat drans = Here is

DR every tiDR 3 hoursDR for evermple, the n

that the 152iance, one l

ng Toolbox The functio

ch is to provintended m

me of the initach leg. Altprovided. drdreckon calthe waypoindreckon calIf times arethey do not e you have ants(1,:) = [1end to trave

N,0.18ºE). Op to 7 knotsnts(2,:) = [1nts(3,:) = [1= [5;7]; rmine the Drlon,drtime]rlon drtime]

10.0000 10.0000 10.0484 10.1001

an illustrati

ime a fix ors ahead or fory line of poavigator plo

23 DR does line is insufffunction dreon provides vide a set ofovement. tial waypointernatively, reckon returlculates the nts lculates the provided fooccur at co

a fix at midn10 0]; fixtimel east and a

On the first les. 10 .13]; 10.1 .18];

DR points an] = dreckon]

0.0846 1 0.1301 1 0.1543 2 0.1801 2ion of this tr

running fixor the next tosition (LOots these DR

not coincidfficient to caeckon calcuDR positio

f waypoints

nt, or fix, isa set of sperns the positimes for po

positions fofor speed chourse changenight at the

me = 0; alter course eg, you will

nd times for(waypoints,

1.0000 %1.5373 %2.0000 %2.4934 %rack and its

x is obtainedthree expecP), either vi

Rs:

de with the Lalculate a neulates the DRons for the f

in navigatio

s also needeeeds and theitions and tiosition of e

or each whohanges, dreces point (10ºN

at the pointl travel at 5

r this plan, u,fixtime,spe

% Position at% Time of co% Position at% Time at fins DR points

d ted fixes isual or cele

LOP at 1523ew fix. R positions

first three ruonal track f

ed, as well ae times for wmes requireach course

ole hour ckon calcula

N,0º):

t (10ºN,0.13knots, and

use dreckoneeds);

t 1 am ourse changt 2 am nal waypoin:

estial

3. Although

for a givenules of dead format corre

as the speedswhich each sed of these Dchange, wh

ates position

3ºE) and heaon the seco

n:

ge

nt

h note is tak

n set of courd reckoning.esponding to

s to be empspeed will aDRs:

hich will occ

ns for these

ad for the pond leg you

ken of

rses and The o the

ployed apply

cur at

times if

point will

Page 168: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

Howevedecide tThe firsoccur atformat)1:15 a.mTo indicthe fix thours afcircumsreturnedspdtime[drlat,dr [drlat,drans = This fol

er, you wouto recalculatst calculatiot a time 1.53. What time

m. (0115, orcate times ftime at whicfter midnighstances, set d past the laes = [1.25; inrlon,drtime]

rlon,drtime]

10.0000 10.0000 10.0000 10.0570 10.1001

llowing illu

uld like to gete your DRsn tells you t373 hours ae would your 1.25 hoursfor speed chch each ordeht. Since yothe time for

ast waypointnf]; ] = dreckonspeeds,spd

]

0.0846 1 0.1058 1 0.1301 1 0.1586 2 0.1801 2stration sho

et to the fins based on sthat you we

after midnigu reach the rs after midnhanges, anotered speed i

ou don't knor the secondt.

(waypoints,dtimes);

1.0000 % P1.2500 % P1.4552 % T2.0000 % P2.4113 % Tows the diffe

nal point a lispeeding upere going toght, or 1:32 rendezvous

night)? ther input isis to end. Th

ow when thed speed, 7 k

,fixtime,...

Position at Position at sTime of couPosition at 2Time at fina

ference:

ittle earlier tp to 7 knots increase spa.m. (at timif you incre

s required, phe first speee rendezvou

knots, to end

1 am speed changurse change2 am al waypoint

to make a rea little earli

peed at the tme 0132 in n

eased your s

providing a ed, 5 knots, us will be md at infinity.

ge e

t

endezvous. ier than platurn, which navigationalspeed to 7 k

time interv is to end 1

made under t. No DRs w

You nned. would

l time knots at

al after .25 these

will be

Page 169: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

The timknown tabout 4 Drift CDead reto maintwinds acorrectiIn the stheadingThe winto the mmust bespecifiebecauseheading

What heaircraft course =[headingdriftcorr heading 25 grounds 112 windcor 8The reqcomponA relateand couvelocity[windfrodriftvel( windfro 285

mes at plannetime (2 a.m1/2 minuteorrection

eckoning is tain the plan

and current. on. tandard drif

g needed to nd velocity

moving air me chosen so ed course dire of headwing, the associ

eading puts flies at an a

= 250; airspg,groundsper(course,air

g = 8.65

speed = 2.22

rrangle = .65

quired headinent. ed problem urse. The wiy relative to om,windspe(course,grou

om = 5.00

ed positionsm.) is a little

s earlier, so

a reasonablnned courseAn importa

ft correctionstay on couis a vector o

mass is a vecthat the sumrection. Thend or tailwiniated wind c

an aircraft airspeed of peed = 145; eed,windcorspeed,wind

ng is about

is the calcuind velocitythe air mas

eed] = ... undspeed,h

s after the spfarther alon

o you may w

ly accurate me. Aircraft aant step in n

n problem, turse is unknoof known mctor of know

m of the vehe ground spnd compone

correction an

on a course145 knots.windfrom =rrangle] = .

dfrom,winds

9° to the rig

lation of they is just the vss.

eading,airsp

peed changng. With thiwant to cons

method for and ships canavigational

the desired cown. This p

magnitude anwn magnituhicle and wipeed can be ents. A nav

angle, and th

e of 250° wh

= 285; wind.. speed)

ght of the c

e wind speevector diffe

peed)

e are a littleis plan, you sider a great

predicting pan be pushedl planning is

course and problem is wnd direction

ude, but unkind velocitielarger or sm

vigator woulhe resulting

hen the win

dspeed = 38

ourse. Ther

ed and direcerence of the

e earlier; thewill arrive

ter speed ch

position if td off the plas to calculat

wind are knwell suited tn. The vehicknown direces gives a remaller than tld like to knground spe

nd is 38 knot

;

re is a 33-kn

ction from oe ground sp

e position atat the rende

hange.

the vehicle ianned courste the requir

nown, but thto vector ancle's speed rction. This hesultant in tthe air spee

now the requeed.

ts from 285

not headwin

observed hepeed and the

t the ezvous

is able se by red drift

he nalysis. relative heading the d uired

5°? The

nd

ading e

Page 170: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

windspe 38Time ZTime zoreturns statutoryzone, wfrom a nzone's dGreenwat GreenEach 15exceptioYankeeis +12, aNavigatthere arsimple e

It is posSun is aphenomhour, it you muYou muhas beensailors hlongitudThe timcalculatexample[zd,zltr,zd = zltr = H

eed = 8.00

Zones ones used foa navigationy divisions.

which has irrnavigationadescription i

wich, or Z (Znwich. 5º navigatioons to this a). These zonand on the otional time ze no Mappiexample can

ssible with aat its zenith

menon occurcrosses onest be 1.5º ea

ust know whn understoohad no abilide. The inve

mezone functtions, a strine, the inform,zone] = tim

-8

or navigational time zon. So, for exaregular bounal standpointis +6, which

Zulu) time. S

nal time zonare the two znes are onlyother, it is -zones are veing Toolboxn be devised

a sextant to from your p

rs exactly ate degree eveast of your chat time zonod since the ity to keep aention of action is quiteng, zltr, of thmation for a

mezone(123)

on are uniforne, that is, oample, Chicndaries devit, Chicago'sh indicates tSo, if it is n

ne has a diszones on eity 7-1/2º wid12. ery importax functions dd.

determine lpoint of viewt noon, locaery 4 minutecenter longine you are inspherical n

accurate timccurate chroe simple. It rhe zone desa longitude )

rm 15º exteone based socago, Illinoiised for pols longitude pthat 6 hours

noon, standa

stinct descrither side of de, since on

ant for celesdesigned sp

local apparw. At the ex

al time. Sinces. So if youitude. n before yo

nature of theme on ship, aonometers inreturns the

signator, and123ºE is the

ents of longiolely on lonis, lies in thelitical or conplaces it in s must be adard time in C

iption and df the date lin one side of

stial navigatpecifically f

rent noon. Txact center ce the Sun tru observe lo

ou can even e Earth was and so weren the 18th cdescriptiond a string fue following

itude. The tingitude withe statutory Unvenience rethe S (Sierr

dded to locaChicago, it i

designating lne, M and Y f the date lin

tion calculatfor celestial

This is the mlongitude oraverses a 1ocal apparen

attempt a fifirst accept

e unable to dentury solve, zd, an inte

ully naming:

imezone funh no regard U.S. Centrareasons. Howra) time zonal time to geis 12+6, or

letter. The Y (Mike and ne, the desc

tions. Althonavigation,

moment wheof a time zon15º time zonnt noon at 1

fix. This conted, but earldetermine thed this prob

eger for use g the zone. F

nction for

al time wever,

ne. The et 6 p.m.,

cription

ough , a

en the ne, the ne in 1 11:54,

ncept ly heir blem. in

For

Page 171: SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SP LITUbrod.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/skripta_d_pn_teh... · projektima. Nekada se koristio samo glavni prozor u kojem

zone = -8 H Returning to the simple celestial navigation example, the center longitude of this zone is: -(zd*15) ans = 120 This means that at our longitude, 123ºE, we should experience local apparent noon at 11:48 a.m., 12 minutes early.