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 ...
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