Transcript

1

Modeliranje i simuliarnje u elektrotehnici

(Matlab/Simulink)

Predavanje i vježbeNapredni postupci

Ovaj materijal se ne smije citirati, kopirati ili distribuirati bez dozvole izvornih autora. Vlasnik stranice samo je urednik materijala za obrazovne svrhe.

Statistika• Kada se analiziraju podaci, potrebno je izračunati

statistiku. »scores = 100*rand(1,100);• Za to služe “built-in functions”mean, median, mode• Podaci se mogu grupirati u histogram naredbom:»hist(scores,5:10:95);• koja iscrtava histogram s točkama centriranim u 5, 15,

25…95»N=histc(scores,0:10:100);• Ovaj primjer daje broj pojavljivanja između određenih

vrijednosti (u intervalima) 0 <10, 10 <20…90 <100.

Slučajni brojevi• Mnogi procesi u vjerojatnosti oslanjaju se na slučajne

brojeve:• MATLAB sadrži ugrađene naedbe s uobičajenim

distribucijama:»rand• vuče brojeve uniformnom distribucijom u intervalu od 0

do 1»randn• vuče brojeve standardnom normalnom distribucijom

(Gauss)»random• daje slučajne brojeve iz više distribucija• Pogledajte doc randomfor help• U dokumentaciji također postoji lista specifičnih funkcija.• Mogu se koristiti i generatori slučajnih brojeva:»rand(‘state’,0)

Promjena srednje vrijednosti i varijance kod naredbi rand i randn

Dana distribucija se može izmijeniti. Tako npr. naredba:>>y=rand(1,100)*10+5;daje 100 ravnomjerno distribuiranih brojeva između 5 i 15.>> y = floor(rand(1,100)*10+6);daje 100 ravnomjerno distribuiranih cijelih brojeva između 10 i 15. U ovom slučaju je bolje koristiti naredbu floor ili ceil (pod – donja vrijendost ili krov – gornja vrijednost) nego round (zaokruži).>> y = randn (1,1000);>> y2 = y*5+8;povećava std na 5 i srednju vrijednost na 8.

Administrator
Text Box
Zacrnjeni slide-ovi su namjerno takvi radi zaštite autorskih prava!!!

2

Vježba: Vjerojatnost• Izvšit ćemo simulaciju Brownian-ove kretnje u 1

dimenziji. Pozvat ćemo skriptu ‘brown’

• Napravit ćemo vektor od 10,000 elemenata gdje su svi članovi 0.

• Napisat ćemo petlju da bi pratili položaj čestice u svakom trenutku

• Start je u 0. Da bi dobili novi položaj, odabrat ćemo slučajan broj i ako je < 0.5, kretnja je ulijevo, a za > 0.5udesno. Pohranjuju se novi položaji na njihovim mjestima u vektoru.

• Potom se iscrtava histogram s 50 intervala u kojima su položaji čestice.

Vježba: Vjerojatnost• Skripta brown.m

x=zeros(10000,1);for n=2:10000if rand<0.5x(n)=x(n-1)-1;elsex(n)=x(n-1)+1;endendfigure;hist(x,50);

Napredne strukture podataka• Koristili smo dosad 2D matrice.• Međutim, mogu se formirati n-dimenzionalne matrice.• Svaki element mora biti istog tipa (integers, doubles,

characters…)• Matrice su prostorno-učinkovite i povoljne za izračun• Ponekad su druge složene strukture podataka pogodnije

za određeni problem, kao npr.• “Cell array” – slične su tipu “array”, ali elementi ne

morajubiti istog tipa.• “Structs” mogu čuvati imena varijabli i njihove vrijednosti

unutar jedne strukture– Ovo je slično objektno orijentiranom programiranju u

MATLAB-u

Organizacija čelija• Čelija je kao matrica, samo što svaki član te matrice (polje)

može sadržati bilo kakav tip podataka (čak i druge matrice).

• Tako npr. jedna čelija može sadržavati imena ljudi, druga njihovu starost, treća koliko imaju djece ili plaću.

• Isto bi se moglo učiniti s matricama, ali je za to potrebno najmanje 3-dimenzionalna matrica. Pri tome je prostor gdje ne treba treća dimenzija nepotrebno zauzimanje memorije.

3

Cells: inicijalizacijaDa bi se inicijalizirala čelija potrebno je odrediti njenu

veličinu, npr:»a=cell(3,10);Ovo znači: a je čelija s 3 reda i 10 stupaca.Ili se čelija može ručno upisati u zagradama {}, npr:»c={'hello world',[1 5 6 2],rand(3,2)};c je čelija s 1 redom i 3 stupca. Svaki element čelije može

biti bilošto.Da bi se pročitao neki element koriste se zagrade {}:»a{1,1}=[1 3 4 -10];»a{2,1}='hello world 2';»a{1,2}=c{3};

Strukture (Structs)• Strukture dopuštaju da se relevantne varijable nazovu

svojim imenom iako su unutar strukture.Poput su C-struktura, koje su objekti s poljima (fields).• Da bi se inicijalizirale prazne strukture koristi se naredba:»s=struct([]);- size(s) bi u ovom slučaju bio 1x1- incijalizacija je opcijska, ali je preporučljiva kada su u

pitanju velike strukture• Dodavanje polja vrši se:»s.name= 'Jack Bauer';»s.scores= [95 98 67];»s.year= 'G3';- Polja mogu biti svašta, kao: matrice, čelije, pa čak i druge

strukture- Korisni su za držanje varijabli zajedno• Za više infromacija pogledati doc struct

StruktureDa bi se inicijalizirala struktura, potrebno je zadati polje

i vrijednosti parova:>> ppl=struct(‘ime’,{‘Ivan’,’Igor’,’Ana’},..., ‘starost’, {33,

25, 18},’starost djece’,{[2;4],1,[]});- veličina(s2)=1x3- svaka čelija mora imati istu veličinu

>> osoba=ppl(2);- osoba je struktura s poljima ime, starost, djeca- vrijednosti polja su drugi indeks u svakoj čeliji

>> osoba.imeRezultat je: Igor

Pristup strukturama• Da bi se pristupilo polju u strukturi, potrebno je dati ime

polju.»stu=s.name;»scor=s.scores;- Strukture 1x1 su korisne kada se koristi puno varijabli u

funkciji. Sve se stave u strukturu.Za pristup nx1 strukturnim poljima, koriste se njihova

mjesta:»person=ppl(2);- person je struct s imenom, starošću i/ili drugim podacima»personName=ppl(2).name;- Ime osobe je ‘Igor'»a=[ppl.starost];- a je 1x3 vektor starosti (godina)

4

Vježba: čelije

• Napišite skriptu sentGen• Neka je čelija veličine 3x2, a u njoj su

imena ljudi u prvom stupcu, a napomene u drugom.

• Izaberite 2 slučajna cijela broja (1-3)• Ispišite rečenicu u obliku ‘[ime] je

[napomena].’• Startajte skriptu nekoliko puta

Vježba: ČelijeSkripta sentGen

c=cell(3,2);c{1,1}=‘John’;c{2,1}=‘Mary Sue’; c{3,1}=‘Gomer’;c{1,2}=‘smart’;c{2,2}=‘blonde’;c{3,2}=‘hot’r1=ceil(rand*3);r2=ceil(rand*3);disp([ c{r1,1}, ’is ‘, c{r2,2}, ’.’]);

Unošenje/iznošenje (Import/Export) slika

Slike se mogu unijeti u matlab npr. s:im=imread('myPic.jpg');MATLAB podržava razne formate slike:-jpeg, tiff, gif, bmp, png, hdf, pcx, xwd, ico, cur, ras, pbm,

pgm, ppm. U help imread može se vidjeti puna lista i detaljiDa bi se upisala slika (tj. podaci iz matrice u slikovnu

datoteku, write) potrebno je definirati matricu RGB formate i tzv. colormap (mapu boja, definicija boja – help colormap za više podataka):

»imwrite(mat,jet(256),'test.jpg','jpg');Pogledajte i help imwrite za opcije.

AnimacijeU MATLAB se može lako uloviti slike iz filma i ponovo ih

priazivati. Najuobičajeniji formati filmova su:- avi- animated gif• Avi- Dobar je kao se ima prirodne scene s mnogo boja i jasno

definiranim rubovima• Animated gif- Dobar za iscrtavanje filmova iz crteža ili teksta kada ima

samo nekoliko boja (max 256) i kada su dobro definirane linije

5

Pravljenje animacija

Animacija se pravi tako da se iscrtava slika za slikom uz pauzom između prikazivanja slika. Primjer:

»close all

»for t=1:30

»imagesc(rand(200));

»colormap(gray);

»pause(.5);

»end

Snimanje animacija kao filmovaFilm je niz slika koje treba uhvatiti i snimiti. Primjer:»close all»for n=1:30»imagesc(rand(200));»colormap(gray);»M(n)=getframe;»endDa bi se prikazao film koristi se naredba:»movie(M,2,30);Ovo znači da se film prikazuje 2 puta s brzinom 30 slika u

sekundi (30 frames per second, fps).Da bi se ovaj film spremio na HDD koristi se npr.:»movie2avi(M,'testMovie.avi','FPS',30);

Upravljači (Handles)Upravljači grafike (Handle Graphics) su sustav grafičkih objakata koje

Matlab koristi da bi implementirao graf ili vizualizacijsku funkciju. Svaki objekt se može okarakterizirati s nekoliko osobina. One se mogu koristiti za upravljanje ponašanjem i izgledom grafa. Kada se pozove funkcija za crtanje, Matlab generira graf uporabom različitih grafičkih objekata, npr. figure window, axes, lines, text, ... Kada MATLAB kreira objekt, daje mu identifikator (handle). Ti identifikatori koriste se kao upravljači za svojstva objekata.

Svaki grafički objekt ima upravljače, npr.:»h=plot(1:10,rand(1,10)); % Daje upravljač za iscrtanu liniju.»h2=gca; % daje upravljač za trenutne (koordinatne) osi»h3=gcf; % daje upravljač za trenutnu slikuDa bi se vidjele trenutne vrijednosti značajke koristi se get:»get(h); ILI »yVals=get(h,'YData');Za promjenu značajki se koristi set:»set(h2,'FontName','Arial','XScale','log');»set(h,'LineWidth',1.5,'Marker','*');Sve što se vidi na slici opisano je preko upravljača.

“display”Kada funkcije koriste disp da bi ispisivale (print) poruke,

npr.:»disp('startingloop')»disp('loopis over')disp ispisuje zadani string u komandnom prozoru.

Također je korisno prikazati vrijednost varijable:»disp(strcat(['loopiteration ',num2str(n)]));

- strcat povezuje (concatenates) dane stringove.

6

Otkrivanje greški (debugging)U Matlabovom editoru postoji mogućnost otkrivanja

grešaka u programu. Da bi se ta mogućnost koristila, potrebno je označiti kontrolne točke u programu (set breakpoints).- točke se označuju klikom na broj retka programa kada je aktivirana ikonica za označavanje točki- uspješno označena točka prepoznaje se crvenom točkom na početku retka- starta se program- program pauzira na mjestu označene točke- varijable se mogu ispitati u komandnom prozoru- s “step to next ” se prelazi na sljedeću točku- upravljanje s otkrivanjem greški je jednostavno s ikonicama na traci alata u vrhu editora. Ne zaboravite isključiti ovaj način rada kada završite kontrolu.

Otkrivanje greški (debugging)

Vježba: Otkrivanje greškiKoristite degugger za otkrivanje i ispravljanje greške u

kodu:x = 1:10;Mat = rand (3,10);vekt=rand(3,1);odg1=x*(Mat^2)’;odg2 =odg1 + (vekt./rand(1,3)’);odg3 = odg2*(Mat*x);Odg4 = Odg3;

Mjere učinkovitostiPonekad može biti korisno znati koliko se dugo određeni

kod izvršava.- Da bi se predvidjelo koliko dugo petlja traje- Da se izdvoji neučinkoviti programski kod• Vrijeme izvođenja operacija može se mjeriti operacijama

tic/toc. Npr.»tic»CommandBlock1»a=toc;»CommandBlock2»b=toc;- tic resetira timer- Svaki toc daje trenutnu vrijednost u sekundama od tic. - Može se nakon jednog tic imati više toc.

Administrator
Rectangle

7

Mjere učinkovitostiKod složenijih programa može se koristiti funkcija profile,

koja u GUI ispisuje vrijeme izvođenja svake naredbe.

>> profile on

Nakon ovoga se poziva program koji se ispituje, a nakon toga se rezultat može lako pregledati s:

>> profile viewer

koji grafički prikazuje razultat.

Što su alatke (Toolboxes)?Alatke sarže funkcije specifične za neko određeno

područje, npr.: obrada signala, statistika, optimizacija...

Općenito je učinkovitije koristiti MATLAB-ove alatke nego redefinirati ili programirati svoju funkciju. To štedi vrijeme kodiranja i otklanjanja pogreški (debugging). 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.

Administrator
Rectangle
Administrator
Rectangle

8

Alatka za simboličku matematiku: simboličke varijableSimboličke varijable su tip poput varijabli s dvostrukom

preciznošću (double) ili znakovnih (char).Definiraju se naredbom sym:»a=sym('1/3');»b=sym('4/5');(razlomci ostaju razlomci)»c=sym('c','positive');- Mogu se dodavati ograničenja - Za više pogledati help symMože se koristiti syms»syms x y realJe skraćeno za x=sym('x','real'); y=sym('y','real');

Administrator
Rectangle
Administrator
Rectangle

9

VježbaJednadžba kružnice radijusa r centrirane u (a, b)

dana je s: (x-a)^2 + (y-b)^2 = r^2Proširite jednadžbu u oblik:Ax^2 + Bx + Cxy + Dy + Ey^2 = F i nađite izraze za koeficijente izražene s a, b i r.

»syms a b r x y»pretty(expand((x-a).^2 + (y-b).^2))

Signal Processing ToolboxMATLAB se često koristi za obradu signala (npr. fft).U ovoj alatci se može:What you can do:- projektirati filtere- statistički obraditi signal- Laplace-ova transformacijaSrodne alatke su:- komunikacijska- valićna- RF- obrada slike

Control System Toolbox• Ova alatka 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,

modalna analiza...• Srodne alatke:- Identifikacija susava (System Identification)

- Robustno upravljanje (Robust Control)- Moderna teorija upravljanja- Modelsko prediktivno upravljanje

Statistička alatka• Za statističku i analizu podataka.- Principalna analiza komponenti (Principal

component analysis, PCA)- Nezavisna analiza komponenti (Independent

component analysis, ICA)- Testovi značaja (chi kvadrat, t-tests…)• Srodne alatke:- Spline–for fitting- Bioinformatics- Neural Networks

10

Optimizacijska alatka

Služi za optimizacijske probleme iz raznih područja, a ne samo tehnike. Npr.:

- linearno programiranje- postupci unutarnjih točki- Kvadratni postupci

Central File Exchange• Web stranica – the MATLAB Central File Exchange!!

• Mnogi ljudi ovdje stavljaju svoje programe, funkcije pa i alatke za rješavanje problema na koji su naišli

• Koristi se za proširenje Matlabove funkcionalnostz ako je potrebno.

• http://www.mathworks.com/matlabcentral/

Napredno korištenje: Monte-Carlo simulacija

Example: Monte-Carlo

Administrator
Rectangle

11

Modeliranje i simuliarnje u elektrotehnici

(Matlab/Simulink)

Predavanje i vježbeSimulink

SIMULINK

• Interaktivno je grafičko sučelje• Temelji se na blok dijagramima• Služi za projektiranje, simulaciju, provedbu

i testiranje u obradi signala, komunikacijama i drugim vremenski promjenjivim sustavima

Administrator
Rectangle
Administrator
Rectangle

12

Što je Simulink?• To je rješavač jednadžbi temeljen na modelima• Neki paketi za analizu (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.- Neograničena složenost problema (ograničena samo

vremenom za izvođenje i dostupnom memorijom)- Prilagodljiv za bilo koje područje- Loša strana? Mora se napraviti modeliranje.

Početak rada

• Otvori se nova datoteka• Ispita se Simulink Library Browser- Klika se na bibilioteku: “Sources”- Povlači se blok u Simulink prozor datoteke• Vizuelizacijski blokovi su u “Sinks”• Npr. povuče se “Scope” u Simulink prozor• U Simulation, Control Parameters se mogu podešavati

razni parametri simulacije, kao tip solvera, veličina koraka, trajanje simulacije, itd.

Administrator
Rectangle

13

Simulink – ispod maske

• Alatke Simulink-a pružaju potpune alatke za modeliranje

• Odabirom komponenti koje odgovaraju željenom modelu, može se izvesti odgovarajuća simulacija

Alatke• MathUvlaz je signal na kojem se izvodi izabrana matematička

operacija»Add, subtract, round, multiply, gain, angle• Kontinuirani blokovi (Continuous)Dodaju diferencijalne jednadžbe su sutav»Integrals, Derivatives, Transfer Functions, State

Space• Diskontinuiteti (Discontinuities)Dodaju se nelinearnosti u sustav• Diskretni blokovi (Discrete)Simulira se jednadžbe diferencijaOvo je korisno kod digitalnih sustava

Izgradnja modelaIzvori (Sources)• Step input, white noise, custom input, sine

wave, ramp input, • Blokovi su koji generiraju ulazni signal u sustavPokazivači (Sinks)• Scope: Isctavanje izlaza• simout: izlaz se upisuje u MATLAB-ov vektor

u radnom prostoru (comand window)• MATLAB mat file – upisuje se u datoteku s

Matab formatom

Administrator
Rectangle

14

Promjene parametara blokova• Desnim klikom na blok i izborom “Parameters” pojavljuje

se prozorčić s parametrima koje je moguće podešavati za pojedini blok.

• Tako npr. blok “Transfer Function” ima opciju zadavanja brojnika i nazivnika, a blok “Summing Junction” broj spojeva i njihove predznake.

• Također se mogu podešavati pokazivače (npr. “scope”). Također se desnim klikom dobijaju moguće opcije, a bitna je “autoscale”, koja podešava osi tako da je preko cijelog prozorčića prikazana iscrtana krivulja.

Prvi model• Povucite iz odgovarajućih biblioteka konstantni izvor,

sumator, integrator i pokazivač (scope). • Posložite ih kao na slici i spojite.• Promijenite predznak na drugoj poziciji sumatora.

ScopeIntegrator

1s

Constant

1

Administrator
Rectangle
Administrator
Rectangle

15

Stvaranje podsustava• Selektiraju se blokovi za koje želimo da budu u

podsustavu.• Desnim klikom pojavljuje se i opcija “create subsystem”,

koju treba odabrati.

Subsystem

In1Out1

ScopeConstant

1

Primjer: Živčani sustavŽivčani krugovi kod životinja često su oscilacijskog

ponašanja. Simulinku se može koristiti da se modelira ponašanje npr.

- Kretanje (hod)- Pomicanje udova lijevo-desno- Ponašanje pri hodu stvara se generatorom šablona

(central pattern generators) koji oscilira po samoj svojoj prirodi

- Kada se na generator dodaju ostali elementi, ovaj generator će prilagoditi svoju frekvenciju i pomocati dodatne elemente.

- Otvorite “RIOCPGDemo.mdl”

RIOCPGDemo.mdl

Tail

4

s + .4 s+ 42

S tep

Neuron F iring Dy nam ics

Neu

r on

1 In

Ne u

r on

2 In

Mus

cle

Act

ivat

ion

M usc ular A c tuator Gain

20

Input

Forc e O ut

Feedbac k G ain

-111

Chi

.4 * tanh (2 *u )

CP G

In 1

In 2

Ou t1

Ou t2A ll O ut

Administrator
Rectangle
Administrator
Rectangle

16

Modeliranje i simuliarnje u elektrotehnici

(Matlab/Simulink)

Predavanje i vježbeProgramiranje u Matlabu:

napredne mogućnosti

Neke prednosti MATLABA u usporedbi s "klasičnim" programskim jezicima poput Fortran-a ili C-a su:

- interaktivno sučelje omogućava brzo eksperimentiranje i mami na igru (MATLAB je intrepretirani jezik[1] za razliku od, npr. Fortrana, koji je prevođen[2]),

- potrebna je minimalna briga oko podatkovnih struktura (praktički nema deklaracija varijabli i polja),

- 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 (toolbox -i), 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.

M-datoteke su obične tekstualne datoteke koje sadrže MATLAB-ove naredbe (programe) te imaju ekstenziju (oznaka iza točke u imenu datoteke) "m". Postoje dvije vrste m-datoteka: skripte i funkcije (u užem smislu).Zajedničko im je sljedeće:

% je znak za komentar. MATLAB ignorira sve što se u nekoj liniji nalazi iza znaka %.Prve linije u datoteci koje počinju s % sadrže opis programa. On je prekinut prvom linijom koja ne počinje s %, a ispisuje se na zaslon naredbom help <ime_datoteke> (bez nastavka "m").Format linije je slobodan, pri čemu jedna linija može sadržavati više naredbi odvojenih zarezom ili točka-zarezom. Treba paziti da se rezultat svake naredbe koja ne završava točka-zarezom odmah ispisuje na zaslon - što se najčešće ne želi.... je znak za nastavak linije.

Administrator
Rectangle

17

SkripteSkripta je vanjska ili korisnička datoteka koja sadrži niz

Matlabovih izraza. Tipkanjem imena datoteke, izvršavaju se te naredbe (izrazi) po redu kako su napisani.

Skripte imaju ekstenziju “.m” i često se nazivaju m-file-ovima. Najjednostavniji su oblik programa u Matlabu.

Skripte mogu koristiti podatke iz rade memorije ili kreirati nove podatke za rad. Skripte ne mogu davati izlaze, ali svi podaci koje je skripte obradila ostaju u radnom prostoru Matlaba pa se mogu koristiti u Komandnom prozoru za daljnji rad.

Skripte sadrže niz Matlab izraza koji ne zahtjevaju posebno deklariranje na početku ili negdje u programu. Mogu sadržavati komentare (% na početku linije), koji mogu biti samostalne linije ili dio bilo koje druge linije.

FunkcijeUpišite u programu za uređivanje koda sljedeći niz naredbi:function pozdravdisp('Dobar dan!');Nakon toga spremite u radni direktorij funkciju pod imenom

"pozdrav.m". Upišite novodefiniranu funkciju u glavni prozor MatLaba:

» pozdravDobar dan!»Nakon upisivanja imena funkcije, računalo u glavnom

prozoru ispisuje tekst "Dobar dan!", te javlja da očekuje nove naredbe (znak "»"). Upisivanje naredbe editpozdrav otvorit će se u programu za editiranje tražena datoteka pozdrav.m.

Automatski prijelaz u C++Unošenjem naredbe deploytool otvara se kutija za dijalog:

Zatim se kreira novi projekt s klikovima miša na New Project ( ).Povlačenjem file-ova u Deployment Tool ili selektiranjem s Add Files ikonom ( ) dodaju se datoteke u projekt.

Važno je ostvariti to da ime dodanih datoteka nije isovjetno s imenom neke ugrađene funkcije.

Sljedeći korak je podešavanje karkateristika za bildanje i pakiranje projekta. Prilikom build-anja moguće je naći mjesto pogreške. Ta i slična svojstva mogu se podešavati pod Settings.Mogu se dodati klase ako to zahtjeva projekt.Spremanje projekta obavlja se s .

Klikanjem Build pokreće proces build-anja projekta.Nakon tog procesa, kompajlirani projet se testira, a po potrebi uređuje i ponovo build-a.

18

Deployment tool je GUI sučelje do Matlabovog build-era i za Javu.

Dodatne operacije mogu se postići desnim klikom na prozorčiću. Postoje i mogućnosti: Selection options, (Evaluate Selection, Open selection i Help on Selection), Back i Forwad unutar izlaznog prozora, Refresh (osvježava izlazni prozor) te Print.

M-fileovi moraju biti pisani u obliku funkcije da bi se mogli prevesti i kompajlirati u C++.

Umjesto upotrebe Deployment Tool-a, može se koristiti naredba mcc u komandnom prozoru. Pri tome ulazne i izlazne direktorije treba kreirati, jer ta naredba to ne radi automatski.

Sintaksa MCC naredbe je:

MCC [-options] fun [fun2 ...]

S njom se posiva Mtlabov kompajler. Ako u sustavu postoji Visual c++, može se umjesto Matlabovog koristiti i taj kompajler.

Ova naredba priprema fun.m za uporabu izvan MATLAB-ovog okružja tako da izgrađuje samostojeću aplikaciju u exe obliku ili C ili C++ datoteke, ovisno oopcijama.

Za opcije pogledajte help.

Prijelaz iz skripte u funkciju i iz funkcije u Deploy aplikaciju

Prijelaz iz skripte (M-file) u funkciju (M-file)

MATLAB pruža 2 načina pakiranja nizova Matlab naredbi: funkcije i skripte. Razlika je što se mogu unositi argumenti u funkcije, a u skripte ne. Varijable korištene u funkciji su lokalne za tu funkciju i ne može im se pristupiti iz radnog prostora osim ako nisu izlazne varijable iz funkcije. S druge strane, variajble korištene u skripti su dostupne u radnom prostoru, tj. globalne su varijable. Matlabov kompajler ne može komilirati skriptu, a funkciju može, kao i skripte koje se pozivaju iz funkcije. Pretvaranje skripte u funkciju (da bi se mogla prebaciti u C++) je obično lagano. Dovoljno je na početku dodati funkcijsku liniju (koja počinje naredbom function).

Primjer skripte M-file houdini.m

m = magic(4); % Formira 4x4 magični kvadrat s imenom m. t = m .^ 3; % Kubira se svaki element varijable m.disp(t); % Ispisuje se vrijednost t.

Izvršavanje ove skripte stvara varijable m i t u radnom prostoru Matlaba. MATLAB-ov kompajler ne može kompajlirati houdini.m, jer je to skripta, a ne funkcija. Da bi se dobila funkcija potrebno je dodati jednostavno funkcijsko zaglavlje, tj. liniju: function houdini(sz). Tada funkcija glasi:

function houdini(sz) m = magic(sz);t = m .^ 3; disp(t)

Međutim, kako je houdnini.m sada funkcija, u radnom prostoru neće ostati varijable m i t. Da bi se to postiglo, potrebno je dodati izlazne argumente funkcije: [m,t] = houdini(sz). Konačna verija programskog koda tako bi glasila:

19

function [m,t] = houdini(sz)m = magic(sz);t = m .^ 3; disp(t)

Ova funkcija vraća vrijednosti m i t onome tko ga je pozvao. Ako je pozvana iz radnog prostora, onda u radni prostor. Ako je pozvana iz nekog drugog programa, vraća vrijednosti tom programu. Uključujući skripte, kompajlira se skripte iz naredbe i drugi sloj koji je pozvan u tim skriptama.

Napraviti primjer skripte, funkcije i upotrebe Deploy tool-a za vježbe

Modeliranje i simuliarnje u elektrotehnici

(Matlab/Simulink)

Predavanje i vježbeUpravljanje brzinom istosmjernog stroja

Upotreba servomotora je iznimno raširena. Skoro sve što zahtjeva precizne pokrete pokreće se servomotorima

Istosmjerni motor upravljan strujom armature je u otvorenoj petlji sustav prvog reda. Ulaz je napon (um) koji je narinut na pojačalo snage. Izlaz je brzina motora ω u rad/s. Pretpostavlja se da je armaturna samoindukcija zanemariva. Brzina motora i izlazni napon tahometra (ut) su povezani s jednadžbom

ut (t) = Ktω (t)Blok dijagram je prikazan na slici 4.12.

Blok dijagram istosmjernog motora

Administrator
Rectangle

20

Simulacijski model u Simulink-u

Tablica 4.1: Tvornički parametri tipičnog servomotora

1,57 ⋅ 10-6 kgm2inercija armature motora, J6 ⋅ 10-6 Nmstrenje motora, B

5,3 Ωotpor armature motora, Rm

0,027 V/rad/selektromotorna konstanta povratne veze, Kb

0,027 Nm/Amomentna konstanta, Km

0.00955 V/rad/sosjetljivost tahometra, Kt

Ako se u izraz za prijenosnu funkciju motora (prema slici 4.12.a) uvrste podaci iz tablice 4.1, slijedi da je:

( )( )

( )( )

( )m

mbm

m

m

mb

m

mm

m

mbm

m

mbm

m

m

mbm

m

m

mmb

mm

RKK

BJsRK

RKK

BJsKRK

KKKBJsR

K

KKBJsRK

BJsRKKBJsR

BJsRK

BJsRK

K

BJsRK

sH

++⋅=

⎟⎟⎠

⎞⎜⎜⎝

⎛++⋅

=⋅++

=

=++

=

++++

=

++

+=

11

/1

/

)(

m

mbx R

KKBK +=

⎟⎟⎠

⎞⎜⎜⎝

⎛+

⋅=

⎟⎟⎠

⎞⎜⎜⎝

⎛+

⋅=1

1

1

1)(s

KJKR

K

sKJK

RK

sH

x

xm

m

xx

m

m

Prijenosna funkcija motora H(s) je, dakle, prvog reda:

gdje je K istosmjerno pojačanje, a τ vremenska konstanta. 1

)(+

=sKsH

τ

Za podatke iz tablice slijedi:

⎥⎦⎤

⎢⎣⎡==VsKR

KKxm

m 1515,35

[ ]

1010933,0515,35)(

933,10/

+=

=+

=

ssH

msRKKB

J

mmb

τ

Ovaj sustav se može voditi pomoću: a) proporcionalnog regulatora i b) proporcionalno-integracijskog regulatora.

Vođenje istosmjernog stroja proporcionalnim regulatorom

Proporcionalni regulator (eng. controller) stvara aktuatorski signal razmjeran signalu pogreške. Za ovaj istosmjerni motor, zakon vođenja stoga glasi:

um(t) = Kp(ωd(t) - ω(t))gdje su ωd željena brzina motora i Kp proporcionalno pojačanje. Kako je

ut(t) = Ktω(t)slijedi da se željeni izlazni napon tahometra može izraziti kao

ud(t) = Ktωd(t)i dobiva se zakon upravljanja:

( ))()()( tutuKK

tu tdt

pm −=

21

Uzimajući da je slijedi da je prijenosna funkcija zatvorene petlje:

)(1)(

)( '

'

sHKsHK

sWp

p

+=

1515,351011,0

515,351515,35

1515,35011,0515,35

1011,0515,35011.01

1011,0515,35

1011,0515,351

1011,0515,35

)(

'

'

'

'

'

'

'

'

'

++

+=

+⋅+=

=

+

⋅+++

⋅=

+⋅+

+⋅

=

sK

KK

KsK

sKss

K

sK

sK

sW

p

p

p

p

p

p

p

p

p

gdje je vremenska konstanta 1515,35011,0

' +=

pKτ

U (s)d K’P H(s) U (s)t

- W(s)

Blok dijagram regulacije brzine motora proporcionalnim regulatorom

Primjer prikaza istog dijagrama u Simulinku

Istosmjerni motor

P regulator

Vođenje istosmjernog stroja PI regulatorom

U PI regulatoru postoji dodatni član u signalu aktuatora, koji je razmjeran integralu signala pogreške. PI zakon vođenja za istosmjerni motor je:

( ))()()( sssKKsU dI

pm ωω −⎟⎠⎞

⎜⎝⎛ +=

Zbog dodatnog člana prijenosna funkcija je sada drugog reda i to ne jednostavna, jer ima i nul točku. Na isti način kao i kod proporcionalnog regulatora dobiva se prijenosna funkcija zatvorene petlje:

( )

( ) ( ) Ip

Ip

Ip

Ip

Ip

Ip

KsKsKsK

ssKsKss

ssKsK

ssKsK

ssKsK

sHsKsHsKsW

515,35515,351011,0515,35515,35

1011,0(515,351011,0(

)1011,0(515,35

1011,0515,351

1011,0515,35

)()(1)()()(

2 +++

+=

+++++

+

=

=

+⋅

++

+⋅

+

=+

=

U (s)d U (s)t

-W(s)

sKK I

P

'' + )(sH

Blok dijagram regulacije brzine motora proporcionalno-integracijskim regulatorom

Primjer prikaza istog dijagrama u Simulinku

Istosmjerni motor

PI regulator

a b

c

22

ZADATAK1. Proračunajte proporcionalni regulator tako da vremenska konstanta prijenosne funkcije zatvorene petlje bude τ = 0,005 (s).

( )

0,0338K

K

K

K

K

p

p

p

p

p

=

=+

=+⋅

+=

+=

'

'

'

'

'

2,21515,35

011,01515,35005,0

1515,35011,0005,0

1515,35011,0τ

2. Simulirajte vođenje istosmjernog motora proračunatim proporcionalnim regulatorom. Precrtajte odziv na jediničnu odskočnu funkciju (može i copy-paste iz Matlaba).

3. Mijenjajte vrijednosti Kp’. Da li istosmjerno pojačanje ovisi o Kp’?

4. Koristeći se Simulink-om, mijenjati parametre PI regulatora tako da prebačaj bude što bliže 20% u trenutku 0,005 (s). Za PI regulator iz zadatka vrijedi:

5. Unesite u tablicu parametre a, b i c te rezultate Mp i Tp. Skicirajte odziv za svaki slučaj.

csbassK +

=)(

Tp

Mp

c

b

a

Pomoć: Koliki je prebačaj određuje se najlakše podešavajući b. Zatim se podešava vrijeme prebačaja preko promjene parametra c pa fino podešava prebačaj parametrom a. Ne mora se raditi na ovaj način. Ugađanje parametara regulatora da se dobiju ciljane vrijednosti je zadatak u automatici. Postoje složene metode proračuna. Zahvaljujući napretku računala, najjednostavnije je koristiti se postupkom "pokušaja i promašaja", jer MatLab vrlo brzo proračunava odziv. Postupak se sastoji u iskustvenom nagađanju parametara i eksperimentalnom provjeravanju ispravnosti pogođenih parametara.

Realizacija spomenutih modela za vježbe

Administrator
Rectangle

Recommended