14.12.2012 Views

Cilj vježbe: Korištenjem Matlab-ovim naredbi, pokrenuti simulaciju u ...

Cilj vježbe: Korištenjem Matlab-ovim naredbi, pokrenuti simulaciju u ...

Cilj vježbe: Korištenjem Matlab-ovim naredbi, pokrenuti simulaciju u ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

OSNOVE REGULACIJSKE TEHNIKE - laboratorijske <strong>vježbe</strong><br />

VJEŽBA 9: Interakcija <strong>Matlab</strong>-a i Simulink-a<br />

<strong>Cilj</strong> <strong>vježbe</strong>: <strong>Korištenjem</strong> <strong>Matlab</strong>-<strong>ovim</strong> <strong>naredbi</strong>, <strong>pokrenuti</strong> <strong>simulaciju</strong> u Simulink-u za različite<br />

parametre regulatora<br />

1. Uvod<br />

U ovoj vježbi pokazat ćemo naredbe za mijenjanje parametara Simulinkovog modela i pokretanje Simulacije iz<br />

skripte. Koristeći takve naredbe unutar <strong>Matlab</strong>-ovih skripti, moguće je napraviti skripte koje simuliraju<br />

ponašanje procesa u različitim uvjetima, i analiziraju rezultate kako bi se dobilo željeno rješenje.<br />

Prije svega, potrebno je napraviti Simulink model, i sačuvati ga na disk. Za primjer uzmimo slijedeći model:<br />

Slika 1. Primjer jednostavnog modela<br />

Model sa slike spremljen je na disk pod nazivom "primjer.mdl". Naredbom open, moguće je otvoriti model:<br />

>> open('primjer'); % otvara model primjer.mdl, ako već nije otvoren<br />

Naredbom sim moguće je <strong>pokrenuti</strong> <strong>simulaciju</strong> iz <strong>Matlab</strong>-a:<br />

>> sim('primjer'); % otvara model primjer.mdl i pokreće <strong>simulaciju</strong><br />

Prije pokretanja simulacije, moguće je podesiti parametre blokova naredbom set_param (vidi help<br />

set_param). Za primjer, podesit ćemo pojačanje (gain) bloka Kp na 2:<br />

>> set_param('primjer/Kp', 'Gain', '2');<br />

Prvi parametar naredbe set_param definira puni naziv bloka kojem želimo mijenjati parametre (u našem<br />

slučaju blok Kp u modelu primjer). Drugi parametar je naziv samog parametra – za blok pojačanja on je uvijek<br />

'Gain', bez obzira na naziv bloka. Kada bi se blok Kp nalazio maskiran unutar subsystem-a pod nazivom<br />

Regulator, gornju naredbu bi trebalo promijeniti u:<br />

>> set_param('primjer/Regulator/Kp', 'Gain', '2');<br />

Na gornjem primjeru je vidljivo da je vrijednost pojačanja potrebno staviti u jednostruke navodnike, tj. prikazati<br />

ju u tekstualnom (string) obliku. Kod većine parametara Simulink-ovih modela vrijedi ovo pravilo, stoga će<br />

slijedeće naredbe javiti grešku:<br />

1


OSNOVE REGULACIJSKE TEHNIKE - laboratorijske <strong>vježbe</strong><br />

>> set_param('primjer/Kp', 'Gain', 2); % greška! mora biti '2'!<br />

>> a = 5; set_param('primjer/Kp', 'Gain', a); % greška! a nije string!<br />

Za potrebnu pretvorbu varijabli u tekstualni oblik, koristi se naredba num2str:<br />

>> a = 5;<br />

>> set_param('primjer/Kp', 'Gain', num2str(a));<br />

Također, treba znati da naredba set_param javlja grešku ako prozor modela nije otvoren, pa je stoga u<br />

m-skripti potrebno osigurati da je model otvoren korištenjem naredbe open.<br />

1.1. Korištenje for-petlje za mijenjanje vrijednosti parametara<br />

Sa tako definiranim naredbama, ostaje još za objasniti naredbu for, koja služi za definiranje programske<br />

petlje. Naredba for se ponaša slično kao i u većini drugih programskih jezika (vidi help for). Na primjer,<br />

slijedeći programski blok:<br />

će ispisati:<br />

for a = 1:3,<br />

disp(a);<br />

end;<br />

1<br />

2<br />

3<br />

Kao i u drugim programskim jezicima, početak for-petlje definira glavnu varijablu petlje (u gornjem primjeru a),<br />

i niz vrijednosti koje će ta varijabla poprimiti. "Tijelo" for-petlje (tj. sve naredbe koje se nalaze između linije<br />

koja definira početak for-petlje, i linije koja definira kraj petlje) se izvodi onoliko puta koliko je definirano<br />

naredbom for, pri čemu glavna varijabla for-petlje u svakoj iteraciji poprima slijedeću vrijednost niza.<br />

U <strong>Matlab</strong>-u, niz ne mora biti linearan, moguće je naprotiv definirati bilo kakav niz za ulaznu varijablu:<br />

for b = [1 0 -3 17 -5 12],<br />

disp(b);<br />

end;<br />

Za potrebe ove <strong>vježbe</strong>, iskoristit ćemo for-petlju kako bismo pokrenuli <strong>simulaciju</strong> za različite vrijednosti<br />

pojačanja Kp. Npr., ako želimo simulirati za vrijednosti pojačanja od 1 do 10, koristit ćemo slijedeći kod:<br />

% otvori model (potrebno prije korištenja naredbe set_param)<br />

open('primjer');<br />

% za sve zadane vrijednosti pojačanja (p)<br />

for p = 1:0.1:10,<br />

end;<br />

% podesi pojačanje Kp na (p)<br />

set_param('primjer/Kp', 'Gain', num2str(p));<br />

% pokreni <strong>simulaciju</strong><br />

sim('primjer');<br />

% obradi dobivene podatke<br />

...<br />

2


OSNOVE REGULACIJSKE TEHNIKE - laboratorijske <strong>vježbe</strong><br />

2. Rad na vježbi<br />

1. Pokrenite <strong>Matlab</strong> / Simulink i otvorite novi model naziva ImePrezime.mdl u radnoj mapi.<br />

2. Zadan je proces sa prijenosnom funkcijom<br />

G ( s)<br />

=<br />

0<br />

4<br />

( s + 1)(<br />

2s<br />

+ 1)<br />

Prijenosna funkcija senzora (u povratnoj vezi) zadana je funkcijom<br />

15<br />

H ( s)<br />

=<br />

s<br />

( + 15)<br />

Napravite simulacijski model procesa sa PI regulatorom. Regulator i proces grupirajte u posebne<br />

blokove (subsystem-e). Ulazni i izlazni signal preusmjerite u <strong>Matlab</strong>-ov radni prostor, u varijable u i y<br />

tipa Array, kao što je prikazano na slici:<br />

Model sacuvajte pod nazivom ImePrezime.mdl.<br />

3. Potrebno je napisati m-skriptu, koja će na istom grafu iscrtati referentnu vrijednost, te odzive sustava<br />

na skokovitu pobudu za vrijednosti pojačanja P-regulatora od 1 do 5 (ukupno pet odziva). Prema<br />

uputama u uvodu, skripta mora mijenjati parametre regulatora i pokretati <strong>simulaciju</strong>, a zatim crtati<br />

dobivene vrijednosti. Skriptu sačuvajte pod imenom ImePrezime1.m.<br />

3. Izvješće sa <strong>vježbe</strong><br />

Model i skriptu poslati e-mail-om na vedran.grudenic@riteh.hr.<br />

3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!