Razmatranje struktura podataka u Matlabu izvešćemo u interaktivnom radu, uz pripadajuća objašnjenja, a zatim kreirati programe, sve u cilju upoznavanja sa Matlab okruženjem i realizacijom zadataka u vezi analize osnovnih osobina diskretnih i analognih signala i sistema.
Nakon pokretanja Matlaba na ekranu se otvara komandni prozor Matlaba na kome se uočava komandna linija, u čijem se levom uglu nalazi prompt „>>“, a odmah pored i kursor koji trepti. Komandni prozor Matlaba treba zamisliti kao radni prostor ekvivalentan praznom listu hartije, na kome je moguće vršiti različite akcije posredstvom komandne linije. Komandna linija služi da se izda naredba Matlabu. Nakon što se izda naredba, ona se neće izvršiti dok god se ne pritisne taster <enter>. Sve naredbe koje se izvrše u komandnoj liniji, kao i promenjive nastale posredstvom tih naredbi se automatski smeštaju u memoriju i mogu se naknadno koristiti dok god se ne napusti trenutna seansa u Matlabu. Ako se u nekoj naredbi ne definiše promenjiva kojoj se dodeljujue vrednost nekog izraza, Matlab tada dodeljuje vrednost generičkoj promenjivoj ans. Prirodno, prilikom izračunavanja sledećeg izraza, nova vrednost će biti prepisana preko prethodne vrednosti promenjive ans. U jednoj komandnoj liniji može da se nalazi jedan ili više izraza.
Najjednostavniji način da se upotrebi Matlab jeste kao veoma moćan kalkulator. Aritmetičke, trigonometrijske ili eksponencijalne operacije se izvode posredstvom poziva ugrađenih Matlab funkcija. Osim osnovnih, Matlab je opremljen velikom kolekcijom funkcija koje omogućavaju veoma složene operacije. Pored toga, Matlab dopušta korisniku da definiše sopstvene funkcije.
Kada je potrebno uneti više naredbi u komandni prozor, ili je potrebno ponovo pozivati i menjati izraze, rad u komandnoj liniji počinje da predstavlja ozbiljno ograničenje. Potencijalni problemi mogu da se reše uvođenjem skript datoteka, tj. datoteka koje sadrže jednu ili više naredbi koje bi se izvršile na isti način kao kad bi se jedna po jedna unosile u komandnu liniju u komandnom prozoru Matlaba. Skript datoteka je tekstualna datoteka sa ekstenzijom „.m“, koja može da se kreira u bilo kom programu za obradu teksta, odnosno u editoru teksta i dibageru koji je deo paketa Matlaba. Kreirana skript datoteka se izvršava kucanjem njenog imena u komandnoj liniji bez sufiksa „.m“ ili direktno iz Matlabovog editora.
Dužine identifikatora promenjivih u Matlabu treba da budu najviše 31 alfanumerički karakter, pri čemu se karakteri posle tridesetog ignorišu. Identifikator promenjive obavezno mora početi slovom, dok ostali karakteri mogu biti kombinacije slova, brojeva i znaka podvučeno (_). Identifikator promenjive ne sme da sadrži blanko karakter. Matlab razlikuje velika/mala slova u imenu identifikatora promenjive. Prilikom određivanja identifikatora uobičajene su dve programerske konvencije. U prvoj se koristi donja crta, dok se kod druge koriste velika slova, kao na primer: ime_promenjive odnosno ImePromenjive.
Postoje i specijalne promenjive čiji su nazivi rezervisani i to su: ans, pi, eps, flops, inf, nan, i, j, nargin, nargout, realmin, realmax.
Za vreme jedne sesije rad sa Matlabom, tj. dokle god se ne napusti program, u memoriji se čuvaju najnovije vrednosti svih definisanih promenjivih nastalih u komandnoj liniji ili u skript datoteci. Kao što je prethodno napomenuto, vrednost dodeljena nekoj promenjivoj može ponovo da se koristi jednostavnim kucanjem identifikatora te promenjive ili uključivanjem te promenjive u neki izraz. Promenjive se brišu iz memorije naredbom clear. Da bi se videlo koje su promenjive definisane od poslednjeg izvršenja naredbe clear, dovoljno je otkucati whos. Skromnija varijanta naredbe whos je who. Ako se želi da se iz memorije izbrišu samo pojedine promenjive to se čini naredbom clear i navođenjem liste identifikatora promenjivih razdvojenih blanko karakterom.
Prilikom unosa matrice, elementi po vrstama se moraju razdvojiti ili blanko simbolom ili znakom (,), dok se vrste razdvajaju znakom (;). Važno je napomenuti, da ako se na mestu nekog elementa eksplicitno napiše matematički izraz, onda između alfanumeričkih karaktera i simbola matematičkih operatora ne smeju da se stavljaju blanko karakteri. Matlab pruža više različitih načina da se dodele brojčane vrednosti vektoru. Jedan od načina da se specificira opseg vrednosti i priraštaj između dva susedna broja određenom naredbom. U Matlabu je moguće manipulisati matricama i vektorima, kao i vršiti operacije nad matricama i vektorima.
Kontrola toka izvršavanja naredbi u okviru programa napisanog u Matlabu se vrši pomoću sledeće četiri neredbe: while, if, for i switch. Sintaksa ovih naredbi određuje da se svaka od ovih naredbi završava naredbom end. Dakle, sve naredbe ili izrazi koji se nalaze između jedne od naredbi kontrole toka programa i naredbe end će se izvršavati ako je zadovoljen odgovarajući logički uslov. U okviru jedne naredbe kontrole toka je moguće ugnezditi i druge naredbe za kontrolu toka.
Kada se koriste naredbe za kontrolu toka programa, dobra programerska praksa je da se naredbe koje se nalaze pod kontrolom tih naredbi uvuku nekoliko karaktera. Nazubljivanje programa znatno povećava čitljivost programa čime se olakšava traženje grešaka i održavanje programa. Kada se koristi Matlabov editor / dibager, nazubljivanje se vrši automatski.
Jedan od načina da se grupiše sekvenca naredbi je u obliku skript datoteke sa ekstenzijom „.m“. Drugi oblik m-datoteke je funkcija. Funkcije su skript datoteke koje kreiraju sopstveni radni prostor i lokalne promenjive pod okriljem Matlaba. Sve promenjive koje se kreiraju u okviru funkcije su lokalne za tu funkciju i ne korespondiraju sa promenjivima istih imena u drugim skript ili funkcijskim datotekama. Sve ugrađene naredbe u Matlabu su funkcije ovog tipa. Upotrebom funkcija uprošćava se složenost i povećava čitljivost izvornog koda, izbegava se dupliranje koda, povećava se portabilnost, itd.
Svaka funkcija ima najmanje dve linije koda, pri čemu prva linija obavezno mora da ima zahtevani format. Opšti oblik funkcije je:
function PovratnaVrednost = ImeFunkcije(Argumenti)
%komentari
Izrazi
Na kraju funkcije se ne nalazi terminator karakter ili izraz kao što je end kod naredbi kontrole toka.
Kada se u komandnoj liniji napiše ime funkcije Matlab pokušava da prepozna funkciju po imenu. Preciznije, Matlab najpre proverava da li je ime funkcije promenjiva. Ako to nije, proverava se da li ta funkcija ne pripada skupu internih funkcija Matlaba. Ako to ne uspe, Matlab traži na disku datoteku sa istim imenom. Ako se funkcija pronađe, Matlab je kompajlira i smešta u memoriju tako da može da se koristi i svaki sledeći put.
Kada se pozove funkcija, bilo iz komandne linije, skript datoteke ili druge funkcije, vrši se prenos argumenata u funkciju prema specificiranoj listi argumenata u prototipu funkcije. Promenjive u definiciji funkcije ne moraju obavezno da imaju iste identifikatore kao u pozivu funkcije. Naprotiv, ista imena promenjivih mogu da imaju potpuno različito značenje u skript datoteci iz koje se poziva funkcija i same funkcije. Argumenti funkcije, koji se nalaze između zagrada u definiciji funkcije, predstavljaju lokalne promenjive i formiraju se pri pozivu funkcije. Prvom argumentu se dodeljuje vrednost prvog parametra u pozivu funkcije, i tako dalje do kraja liste rgumenata. Dakle, pri pozivu funkcije mora da se vodi računa da poziv odgovara definiciji funkcije. Argumenti funkcije se odvajaju zapetom.
Matlab sadrži veoma fleksibilne funkcije za dvodimenzionalnu i trodimezionalnu grafiku. Ovim funkcijama je moguće generisati krive ili površi, vršiti manipulacije sa dijagramima i menjati karakteristike i notaciju na dijagramima.
Svaki dijagram se kreira u prozoru slike, tj. u prozoru koji otvori Matlab za vreme izvršavanja funkcije koja kreira dijagram. Ako se u programu koristi više funkcija koje generišu dijagrame, Matlab će pri izvršavanju svake funkcije da kreira prozor slike koji će da prebriše prethodni.
Osim osnovnih funkcija, Matlab raspolaže dodatnim paketima alata za rešavanje posebnih klasa problema. Control Systems Toolbox obezbeđuje funkcije koje su od posebne koristi za analizu i sintezu sistema automatskog upravljanja. Naredbom help control iz komandne linije Matlaba, ispisuju se naredbe iz ovog paketa, čime se stiče uvid u napredne mogućnosti.
Analiza i sinteza linearnih sistema automatskog upravljanja zasniva se na rešavanju i razumevanju rešenja običnih linearnih diferencijalnih jednačina. Primenom Laplasove transformacije na sistem opisan diferencijalnom jednačinom pri svim početnim uslovima jednakim nuli, dobija se prenosna funkcija sistema.
Promena izraza sistema u toku vremena, izazvana dejstvom ulaza i / ili početnih uslova je vremenski odziv sistema, ili kraće odziv sistema.
Matematički posmatrano, odziv sistema je rešenje jednačine ponašanja tog sistema za zadatu promenu ulaza i zadate početene uslove.
Za upoznavanje, utvrđivanje i analizu odziva linearnih sistema dovoljno je proučiti njihove odzive na određene, tipične promene ulaza. Tri najčešće korišćene ulazne veličine za dinamičku analizu sistema su:
1. Hevisajdova ili odskočna (u Matlabu step),
2. Dirakova ili impulsna (impulse),
3. Sinusoidna funkcija (sin).
Simulink se pokreće iz komandne linije naredbom Simulink ili pomoću ikone u komandnom prozoru Matlaba. Važno je da se shvati da promenjive koje su definisane u komandnom prozoru Matlaba važe i u prozoru Simulinka.
Nakon pokretanja Simulinka, pojavljuje se prozor Simulink Library Browser, gde su pobrojane dostupne biblioteke. Glavne biblioteke su:
1. Simulink,
2. Control Systems Toolbox,
3. Neural Network Blockset,
4. Simulink Extras.
Tekst je preuzet iz udžbenika Dr Dragana Lazića i Mr Milana Ristanovića „Uvod u MATLAB“, koji je izdao Mašinski fakultet u Beogradu, 2005. godine.