10.01.2015 Views

Szabályozástechnika Matlab Gyakorlatok, Villamosmérnöki - Index of

Szabályozástechnika Matlab Gyakorlatok, Villamosmérnöki - Index of

Szabályozástechnika Matlab Gyakorlatok, Villamosmérnöki - Index of

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.

Bevezetés a <strong>Matlab</strong> Control System Toolbox Használatába Hetthéssy Jenő, Bars Ruth, Barta András, 2005<br />

2. Bevezetés a <strong>Matlab</strong> Control System Toolbox Használatába<br />

Tekintsünk egy egy-bemenetű, egy-kimenetű folytonos lineáris rendszert, amely átviteli függvényével<br />

adott:<br />

u(t)<br />

Y( S)<br />

num y(t)<br />

H()<br />

s = =<br />

U(s)<br />

U()<br />

s den Y(s)<br />

2<br />

Állítsuk elő a <strong>Matlab</strong> segítségével a H()<br />

s = rendszer átmeneti függvényét, azaz az y(t)<br />

2<br />

s + 2s+<br />

4<br />

kimenetet egységugrás bemenet esetén. Az átviteli függvényt a számláló és a nevező polinom felvételével<br />

határozzuk meg. Egy polinomot az együtthatóival adhatunk meg, így a fenti példában num = 2 ,<br />

2<br />

den = s + 2s<br />

+ 4.<br />

» num=2<br />

Step response<br />

» den=[1 2 4]<br />

0.7<br />

Általános esetben az együtthatókat csökkenő fokszám szerinti 0.6<br />

sorrendben kell egy vektorba gyűjteni. Az átmeneti függvényt a<br />

0.5<br />

<strong>Matlab</strong> step utasításával lehet megjeleníteni:<br />

0.4<br />

» step(num,den);<br />

Ugyanezt közvetlenül is meg lehet adni:<br />

0.3<br />

» step(2,[1 2 4]);<br />

0.2<br />

Vegyük észre, hogy az időskálát a <strong>Matlab</strong> automatikusan<br />

0.1<br />

választotta.<br />

Amennyiben tárolni kívánjuk a kiszámított átmeneti függvény<br />

0<br />

0 1 2 3 4 5 6<br />

értékeit, akkor a step függvényt bal oldali argumentummal -<br />

annak a változó nevének megadásával, amelyben tárolni kívánjuk a kiszámított függvényértékeket - kell<br />

meghívnunk:<br />

» [y,x,t]=step(num,den) vagy egyszerűbben<br />

» y=step(num,den)<br />

Látható és érdemes megjegyezni, hogy a <strong>Matlab</strong> függvényhívások jellemzője, hogy az argumentumok<br />

száma változó lehet mindkét oldalon. A fenti három bal oldali változót megjelölő függvényhívásban az y a<br />

kimenőjel értékeit, az x a rendszer belső állapotváltozóinak értékeit és a t a számítások időpontjainak<br />

értékeit tartalmazza. Vegyük észre, hogy ebben az esetben grafikus ábrázolás nem történt. Ha<br />

pontosvesszőt teszünk a sor végére, akkor az adatokat sem írja ki a <strong>Matlab</strong>. Az értékek kiírhatók a változó<br />

nevének beírásával.<br />

» y<br />

Látható, hogy egy oszlopvektort kaptunk, amelynek elemei a mintavételezési pontokban felvett értékek. A<br />

mintavétel természetes, hiszen nem analóg számítógéppel dolgozunk, így csakis diszkrét időpontokban<br />

várhatjuk a szimuláció eredményét. Kérdés, hogy milyen időfelbontással dolgoztunk. Az ábrából látható,<br />

hogy a <strong>Matlab</strong> automatikusan a 0 ≤ t ≤ 6 időtartományt választotta ki az átmeneti függvény<br />

megjelenítésére. A <strong>Matlab</strong> a rendszer dinamikai tulajdonságai (zérusai, pólusai) alapján választja meg az<br />

idővektort. Az y vektor elemeinek számából így már vissza tudunk következtetni a mintavételi időre.<br />

» n=length(y)<br />

n = 109<br />

» T=6/n<br />

T = 0.055<br />

A számított mintavételi idő: T=6/109=0.055 sec.<br />

A help utasítás megmutatja az utasítás részletes használati módjait:<br />

» help step<br />

Természetesen többféleképpen megadható a fenti szimulációs futtatás meghívása. Az utasítás egy fontos<br />

alakja, amikor nem kívánjuk a <strong>Matlab</strong> automatikus szimulációs időközét és időtartamát választani, hanem<br />

9

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

Saved successfully!

Ooh no, something went wrong!