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