uvod u simulink - uniosmcicak/au/lv4s.pdf · simulink je grafički alat unutar matlab programskog...
TRANSCRIPT
1
UVOD U SIMULINK
Simulink je grafički alat unutar MATLAB programskog jezika koji omogućuje modeliranje,
simulaciju i analizu dinamičkih sistema. Simulink se pokreće naredbom simulink iz
komandnog prozora Matlab-a ili direktno iz Matlab-ovog toolbar-a kao što je prikazano na
idućoj slici:
otvara se Simulink Library Browser
File→New→Model
File→Save as i
sačuvati model sa ekstenzijom .mdl
Prenošenje blokova iz Library Browser-a u novi model
2
U svakom Simulink-u se nalaze osnovi blokovi i dodatni blokovi u svim instaliranim toolbox-ovima.
Prikaz osnovnih i najčešće korištenih blokova u automatskom upravljanju
Definiranje konstantnog signala
Integrator
Množenje signala s konstantom
Sumator (oduzimanje) više signala
Osciloskop
Signal vremena
step pobuda
Funkcija prijenosa
3
Primjer 1. Prikazati sinusoidu na osciloskopu prvo sa parametrima bloka Sine Wave po
defaultu, a zatim mijenjati amplitudu, frekvenciju i periodu odabiranja.
Rješenje:
otvoriti grupu blokova Sources i izabrati Sine Wave zatim prevlačimo blok u model koji smo
nazvali Vjezba1.mdl.
grupa blokova Sinks i izabrati Scope (osciloskop)
povezati blokove jednostavnim prevlačenjem miša od kraja bloka Sine wave do početka
bloka Scope.
Ako smo pravilno povezali blokove pojavit će se crna linija sa strelicom u željenom smjeru.
Za slučaj da linije nisu pravilno povezane pojavit će se isprekidana crvena linija.
Kako bismo pokrenuli Simulaciju potrebno je kliknuti mišem na crnu strelicu kao što je
prikazano na idućoj slici. Po default-u simulacija traje 10 sekundi, a mi naravno možemo
mijenjati vrijeme simulacije po potrebi.
Kako bismo promijenili parametre pomoću kojih opisujemo sinusoidu potrebno je kliknuti
dva puta mišem na blok Sine Wave u modelu i pojavit će nam se slijedeća slika:
možemo mijenjati parametre koji opisuju sinusoidu. Na idućoj slici dat je prikaz sinusoide
gdje je podešena amplituda 5, frekvencija 10, a perioda 0.001.
Kako bismo vidjeli pravilan prikaz slike nakon ponovnog pokretanja simulacije i otvaranjem
scope-a potrebno je kliknuti na dvogled (Autoscale)
4
Primjer 2. Za sistem opisan funkcijom prijenosa G(s) nacrtati odziv na step pobudu.
Rješenje:
Kako bismo nacrtali odziv na step pobudu potrebno je otići u grupu blokova Sources i
izabrati blok Step koji dovodimo na ulaz. Zatim, potrebno je iz grupe blokova Continuous
izabrati blok Transfer Fcn kako bismo doveli funkciju prijenosa. Na kraju uzimamo blok
Scope iz grupe blokova Sources i povezujemo model kao na slici
Simulink model za odziv funkcije prijenosa G(s) na step pobudu
Kako bismo podesili parametre blokova potrebno je kliknuti mišem na blok Step dva
puta i podesiti Step Time na 0 kako bi nam step pobuda kretala iz 0 (po default-u je 1). Zatim,
za podešavanje funkcije prijenosa potrebno je kliknuti mišem dva puta na blok Transfer Fcn i
podesiti brojnik i nazivnik. Brojnik podešavamo tako što u uglatim zagradama ispod
Numerator coefficient stavljamo parametre koji su nama potrebni, odnosno pošto u brojniku
funkcije G(s) imamo s+1 stavljamo parametre [1 1] (obavezno je praviti razmak između
brojeva). Za podešavanje brojnika u uglattim zagradama ispod Denominator coefficient
stavljamo brojeve [1 2 3] sa razmakom pošto nam je nazivnik s2 + 2s + 3. Na ovaj način
podesili smo sve blokove, pokrećemo simulaciju i dobivamo odziv koji je prikazan na slici
Podešavanje bloka Step Podešavanje bloka Transfer Fcn
5
Odziv sistema opisanog funkcijom prijenosa G(s) na step pobudu
Primjer 3. Za sistem opisan funkcijom prijenosa G(s) nacrtati odziv na step pobudu u
otvorenoj vezi, a zatim u istom modelu u zatvorenoj negativnoj jediničnoj povratnoj vezi.
Oba odziva nacrtati na istom grafu i komentirati dobivene rezultate.
Rješenje:
Kako bismo napravili odgovarajući model u otvorenoj vezi potrebno je u grupi
blokova Sources dovesti blok Step na ulaz. Zatim, potrebno je iz grupe blokova
Continuous i izabrati blok Transfer Fcn kako bismo doveli funkciju prijenosa. Na kraju
uzimamo blok Scope iz grupe blokova Sinks i povezujemo model kao i u primjeru 3 na slici.
Blok Step podešavamo na isti način kao i u prošlom primjeru, dok blok Transfer Fcn
podešavamo kao na slici. S obzirom da nam za pravljenje modela u zatvorenoj vezi trebaju
blokovi koji su isti, nema potrebe da idemo opet u Simulink Library Browser i prevlačimo
blokove, već je dovoljno kliknuti jedan put desnim tasterom miša na blok koji nam je ponovo
potreban i kliknuti na Copy, a zatim u prazan prostor modela opet kliknuti desnim tasterom
miša i izabrati Paste.
Naravno, ako su nam potrebni drugačiji parametri u kopiranom bloku ponovo ćemo otići na
podešavanje parametara kako smo već opisali i podesiti blok prema potrebi.
6
Podešavanje bloka Transfer Fcn za primjer
Na ovom mjestu zgodno je napomenuti da ako je potrebno kopirati više istih
blokova dovoljno je prevući mišem preko njih (odnosno selektirati željene blokove) Copy, pa
Paste i na taj način smo kopirali više blokova odjednom. Moguće je i davati nazive
blokovima po potrebi. To možemo učiniti jednim klikom miša na naziv bloka po defaultu-u, a
zatim ukucati naziv koji želimo. Također, ako želimo uvećati neki blok možemo ga selektirati
i prosto "razvući" ili možemo jedan ili više blokova označiti i kliknuti u modelu na
Format→Font i izabrati font blokova koji nam odgovara. Na slici dat je prikaz promjene
naziva bloka, razvučenog bloka Clock i izabranog fonta za sve blokove 16.
Prikaz promjene naziva i veličine blokova
Sada se vraćamo na naš primjer. Kako bismo napravili sistem u zatvorenoj povratnoj vezi
možemo kopirati blokove koje već imamo u otvorenoj povratnoj vezi i dodati blok Sum (koji
se nalazi u grupi blokova Commonly Used Blocks) ispred bloka Transfer Fcn. Pošto nama
treba negativna povratna veza, a po default-u blok Sum ima dva plusa potrebno je kliknuti dva
puta mišem na blok Sum i izbrisati drugi plus i staviti minus. Podešavanje bloka Sum
prikazano je na slici. Da nam je bilo potrebno oduzimanje ili zbrajanje više od dva signala
dodali bismo onoliko pluseva, odnosno minusa u ovisnosti od toga koliko signala zbrajamo,
odnosno oduzimamo. Sada je potrebno pravilno povezati blokove (napraviti povratnu vezu) i
7
iz grupe blokova Commonly used blocks dovesti Mux na koji dovodimo oba signala i to
povezujemo sa blokom Scope. Izgled konačnog modela za primjer 4 prikazan je na slici
Podešavanje bloka Sum
Izgled modela za primjer 4
Kako bismo pravilno vidjeli sliku potrebno je podesiti da vrijeme simulacije bude 50. Odziv
sistema u zatvorenoj povratnoj vezi i otvorenoj vezi prikazan je na idućoj slici.
8
Prikaz odziva sistema drugog reda na step pobudu u zatvorenoj povratnoj vezi i
otvorenoj vezi
Pomoću bloka Mux možemo prikazati više signala odjednom na istom grafiku, a kako
bismo povećali broj ulaza sa 2 ne neki drugi broj potrebno je dva puta kliknuti mišem na blok
Mux i za Number of inputs izabrati onoliko ulaza koliko nam je potrebno (po default-u je 2).
Primjer 4. Nacrtati odskočni odziv za sistem čija je funkcija povratnog prijenosa data u
primjeru 1 prvo za slučaj kada je K=-1, a zatim za slučaj kada je K > 0 i komentirati dobivene
rezultate.
Rješenje:
Potrebno je nacrtati shemu u SIMULINK-u kao na idućoj slici:
SIMULINK shema za odziv sistema na step pobudu
Kako bismo nacrtali odzive u komandnom prozoru Matlab-a potebno je unijeti slijedeći kod:
plot(tout,yout), grid on
title(‘Odziv sistema za vrijednost parametra K=-1’),
xlabel(‘t[s]’), ylabel(‘y(t)’);
9
Primjer 5. IZRADA MODELA
10
11
Vremenski odziv sustava za različita pojačanja (0,5 ; 1; 2 )
12
13
Primjer 6. Stabiliziranje sustava
Stabiliziranje nekog nestabilnog sustava može se izvesti dodavanjem:
proporcionalnog, proporcionalno-integracijskog, proporcionalno-derivacijskog i
proporcionalno-integralno-derivacijskog regulatora.
Sljedeći primjer pokazuje kako pojačanje utječe na stabilnost sustava.
Za Bodeov prikaz potrebno je unijeti podatke u glavni prozor:
br = 0.15; naz = [1 0.3 1 0]; h = tf(br, naz); bode(h);
14
Što se događa sa sustavom ako mu se promijeni pojačanje (ns)
Vremenski odziv sustava sa slike
Bodeov prikaz se dobiva naredbama: br =0.5; naz = [1 0.3 1 0]; h = tf(br, naz); bode(h);
Bodeov prikaz nestabilnog sustava
15
Za naredbe: br = 1; naz = [1 0.3 1 0]; h = tf(br, naz); bode(h);
U sljedećem primjeru sustav je stabilan (K = 0,1):
br = 0.1; naz = [1 0.3 1 0]; h = tf(br, naz); bode(h);
Vremenski odziv zadanog sustava za K = 0,1
Bodeov dijagram zadanog sustava za K = 0,1
Združeni prikaz stvarnih Bodeovih dijagrama zadanog sustava
16
Slika 3.23 dobiva se sljedećim naredbama:
br = 0.15; naz = [1 0.3 1 0]; h = tf(br, naz); figure(1);hold on; bode(h); grid;
clear all; br = 0.5; naz = [1 0.3 1 0]; h = tf(br, naz); bode(h);
clear all; br = 1; naz = [1 0.3 1 0]; h = tf(br, naz); bode(h);
clear all; br = 0.1; naz = [1 0.3 1 0]; h = tf(br, naz); bode(h)
Pojačanje K, za koje je sustav na granici stabilnosti, može se odrediti Hurwitzovim
kriterijem stabilnosti. Karakteristična jednadžba sustava dobija se na sljedeći način:
Kako je a3 = 1, a2 = 0,3, a1 = 1 i a0 = K, slijedi da za stabilan sustav mora biti zadovoljeno:
1) a3 > 0; to je zadovoljeno
2) 1 > a2; to je zadovoljeno
To je zadovoljeno u 2 slučaja:
- kad je K> 0 i K < 0,3, a to je u intervalu K �0, 0,3 ,
- kad je K < 0 i K > 0,3.
To znači da se odabirom pojačanja od 0,3 nalazi na granici stabilnosti.