Inverz inga állapot-visszacsatolás tervezés Matlab segédlet

Hasonló dokumentumok
Inverz inga irányítása állapot-visszacsatolással

Tartalom. 1. Állapotegyenletek megoldása 2. Állapot visszacsatolás (pólusallokáció)

Tartalom. Állapottér reprezentációk tulajdonságai stabilitás irányíthatóság megfigyelhetőség minimalitás

Számítógépvezérelt irányítás és szabályozás elmélete (Bevezetés a rendszer- és irányításelméletbe, Computer Controlled Systems) 8.

Bevezetés az állapottér elméletbe: Állapottér reprezentációk

L-transzformáltja: G(s) = L{g(t)}.

Bevezetés az állapottér-elméletbe Dinamikus rendszerek állapottér reprezentációi

Ha ismert (A,b,c T ), akkor

Irányítástechnika 2. előadás

Segédlet a gyakorlati tananyaghoz GEVAU141B, GEVAU188B c. tantárgyakból

1. Feladatok a dinamika tárgyköréből

Soros felépítésű folytonos PID szabályozó

Irányítástechnika GÁSPÁR PÉTER. Prof. BOKOR JÓZSEF útmutatásai alapján

Irányításelmélet és technika I.

Keresztmetszet másodrendű nyomatékainak meghatározása

Vektorok, mátrixok, lineáris egyenletrendszerek

Matematika (mesterképzés)

Számítógépvezérelt irányítás és szabályozás elmélete (Bevezetés a rendszer- és irányításelméletbe, Computer Controlled Systems) 7.

Denavit-Hartenberg konvenció alkalmazása térbeli 3DoF nyílt kinematikai láncú hengerkoordinátás és gömbi koordinátás robotra

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

Tartalom. Soros kompenzátor tervezése 1. Tervezési célok 2. Tervezés felnyitott hurokban 3. Elemzés zárt hurokban 4. Demonstrációs példák

6. MECHANIKA-STATIKA GYAKORLAT Kidolgozta: Triesz Péter egy. ts. Négy erő egyensúlya, Culmann-szerkesztés, Ritter-számítás

"Flat" rendszerek. definíciók, példák, alkalmazások

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

Tömegpontok mozgása egyenes mentén, hajítások

10. Előadás. Megyesi László: Lineáris algebra, oldal. 10. előadás Sajátérték, Kvadaratikus alak

6. MECHANIKA-STATIKA GYAKORLAT (kidolgozta: Triesz Péter, egy. ts.; Tarnai Gábor, mérnöktanár)

Algoritmusok Tervezése. 1. Előadás MATLAB 1. Dr. Bécsi Tamás

Irányítástechnika II. Nem hivatalos vizsga beugró kérdéssor kidolgozás

Számítógépes geometria (mester kurzus)

A Hamilton-Jacobi-egyenlet

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

1. zárthelyi,

Lineáris leképezések (előadásvázlat, szeptember 28.) Maróti Miklós, Kátai-Urbán Kamilla

9. Előadás. (9. előadás) Lineáris egyr.(3.), Sajátérték április / 35

15. LINEÁRIS EGYENLETRENDSZEREK

3. előadás Stabilitás

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, Leontyev-modell

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet

Gauss elimináció, LU felbontás

Mérnöki alapok 2. előadás

Mechanika I-II. Példatár

Gauss-eliminációval, Cholesky felbontás, QR felbontás

Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I márc.11. A csoport

Lássuk be, hogy nem lehet a három pontot úgy elhelyezni, hogy egy inerciarendszerben

Robotok inverz geometriája

Jelek és rendszerek Gyakorlat_02. A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával.

2014/2015. tavaszi félév

MATLAB OKTATÁS 1. ELŐADÁS ALAPOK. Dr. Bécsi Tamás Hegedüs Ferenc

Az egységugrás függvény a 0 időpillanatot követően 10 nagyságú jelet ad, valamint K=2. Vizsgáljuk meg a kimenetet:

Optika gyakorlat 2. Geometriai optika: planparalel lemez, prizma, hullámvezető

6. Előadás. Megyesi László: Lineáris algebra, oldal. 6. előadás Bázis, dimenzió

Egyenletek, egyenlőtlenségek VII.

Számítógépvezérelt irányítás és szabályozás elmélete (Bevezetés a rendszer- és irányításelméletbe, Computer Controlled Systems) 9.

Norma Determináns, inverz Kondíciószám Direkt és inverz hibák Lin. egyenletrendszerek A Gauss-módszer. Lineáris algebra numerikus módszerei

Fizika. Fizika. Nyitray Gergely (PhD) PTE PMMIK február 13.

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Sajátértékek és sajátvektorok. mf1n1a06- mf1n2a06 Csabai István

karakterisztikus egyenlet Ortogonális mátrixok. Kvadratikus alakok főtengelytranszformációja

Haszongépj. Németh. Huba. és s Fejlesztési Budapest. Kutatási. Knorr-Bremse November 17. Knorr-Bremse

Számítógépes gyakorlat MATLAB, Control System Toolbox

Lineáris algebra Gyakorló feladatok

Robotika. Kinematika. Magyar Attila

2. REZGÉSEK Harmonikus rezgések: 2.2. Csillapított rezgések

Példa: Háromszög síkidom másodrendű nyomatékainak számítása

Intergrált Intenzív Matematika Érettségi

Számítógépes Grafika mintafeladatok

Példa: Tartó lehajlásfüggvényének meghatározása végeselemes módszer segítségével

pont) Írja fel M struktúrában a parametrikus bizonytalansággal jellemzett

Lineáris leképezések. 2. Lineáris-e az f : R 2 R 2 f(x, y) = (x + y, x 2 )

3. el adás: Determinánsok

Irányítástechnika II. előadásvázlat

Számítógépes gyakorlat MATLAB, Control System Toolbox

Folytonos rendszeregyenletek megoldása. 1. Folytonos idejű (FI) rendszeregyenlet általános alakja

Saj at ert ek-probl em ak febru ar 26.

Gépészmérnöki alapszak, Mérnöki fizika ZH, október 10.. CHFMAX. Feladatok (maximum 3x6 pont=18 pont)

Számítógépes Grafika mintafeladatok

Tárgymutató. dinamika, 5 dinamikai rendszer, 4 végtelen sok állapotú, dinamikai törvény, 5 dinamikai törvények, 12 divergencia,

Gauss-Seidel iteráció

Irányításelmélet és technika II.

Baran Ágnes. Gyakorlat Függvények, Matlab alapok

Felső végükön egymásra támaszkodó szarugerendák egyensúlya

Gépészeti rendszertechnika (NGB_KV002_1)

Matematika A2 vizsga mgeoldása június 4.

Hurokegyenlet alakja, ha az áram irányával megegyező feszültségeséseket tekintjük pozitívnak:

Lineáris egyenletrendszerek

Ipari kemencék PID irányítása

Lineáris algebra numerikus módszerei

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

Lineáris algebra gyakorlat

Irányítástechnika GÁSPÁR PÉTER. Prof. BOKOR JÓZSEF útmutatásai alapján

Determinánsok. A determináns fogalma olyan algebrai segédeszköz, amellyel. szolgáltat az előbbi kérdésekre, bár ez nem mindig hatékony.

Példa: Tartó lehajlásfüggvényének meghatározása a Rayleigh Ritz-féle módszer segítségével

SZABÁLYOZÁSI KÖRÖK 2.

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

Q 1 D Q 2 (D x) 2 (1.1)

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Bevezetés az algebrába 2 Differencia- és differenciálegyenlet-rendszerek

Átírás:

Inverz inga állapot-visszacsatolás tervezés Matlab segédlet FIGYELEM: Az elektronikus labor 2 kérdésből álló (feleletválasztós) beugró teszttel indul (min. 6% kell a sikeres teljesítéshez), melynek anyaga a 5., 6.a., 6.b., 7. EA-k, ill. az addig megtartott GYAK órák anyaga! TIPP: Az E-labor elkezdése előtt indítsuk el a Matlabot, mert annak indulása több percig eltarthat! 1. Bevezetés A Moodle felületen végzendő elektronikus labor során az állapot-visszacsatolással történő szabályozás tervezése kerül bemutatásra. A módszer neve abból adódik, hogy rendszer bemenetére visszahat (visszacsatolt módon) az aktuális állapot egy k T erősítési vektorral súlyozva, azaz egy megfelelő szabályozó jel u = k T x + r alakú lesz, ahol a negatív előjel a negatív visszacsatolást valósítja meg, r pedig szabályozást módosító külső jel. Ezzel a szabályozással képesek vagyunk a rendszer pólusainak módosítására és így a rendszer stabilizálására, ezért ezt a technikát pólusallokációnak vagy pólusáthelyezésnek is nevezzük. A rendszer stabilizálása a nem zérus kezdeti állapot zérusba való konvergenciáját biztosítja (az r jel követését önmagában általában nem tudja biztosítani). A labor témája egy inverz inga stabilizáló szabályozása állapot-visszacsatolással. Az inverz inga egy egyenes pályán mozgó kocsiból és arra csuklóval felerősített, a kocsi mozgásának irányában elforgatható rúdból álló mechanikai rendszer (lásd az 1. ábra). Ez egy önmagában instabil rendszer, amely vegyesen stabil, instabil, ill. a stabilitás határán lévő pólusokkal rendelkezik (lásd alábbi ábra, ahol a pólusok x -szel jelöltek). 1. ábra: Az inverz inga zérusai (o) és pólusai (x) a komplex számsíkon, ahol a színezett félsík az instabil rész 1

A feladat során ennek megfelelően olyan szabályozást tervezünk, amely stabil pólusokat biztosít, és ezáltal képes az inga rúdját stabilan függőleges pozícióban tartani. Ezt a kocsira ható megfelelő irányú és nagyságú erővel érhetjük el, amely az u szabályozó bemenet. Az inverz inga esetében a cél a rendszer stabilizálása, ami állandósult állapotban zérus rúd szögkitérést és szögsebességet, ill. zérus kocsi pozíciót és sebességet fog eredményezni, ezért a külső r módosító jel alkalmazása nem szükséges. Így a keresendő u bemenő jel u = k T x alakra egyszerűsödik. 2. Az inverz inga modellje Legyen a kocsi tömege M, a rúd tömege m, a rúd hossza pedig h = 2 l! Az ingára rögzített rúd állandó keresztmetszetű és homogén anyagú, így a súlypontjába redukált pontszerű m tömeggel modellezhető, amely így l = h távolságra van a kocsitól. A kocsira u erő hat, míg a 2 merev rúdban u = F vagy u = F erők ébrednek. Az M tömegű kocsi x M irányú gyorsulása, valamint az m tömegű rúd x m és y m irányú gyorsulása az alábbi összefüggésekkel írható fel. Az inverz inga fizikai modellje a 2. ábrán látható. 2. ábr:a Az inverz inga modellje Mechanikai egyenletek (Newton II. törvénye): Mx M = u Fsinθ mx m = Fsinθ 2

Geometriai egyenletek: my M = Fcosθ mg x m = x M + lsinθ x m = x M lθ 2 sinθ + lθ cosθ y m = lcosθ y m = lθ 2 cosθ lθ sinθ Az ismeretlen F értékét kiküszöbölve és egy oldalra rendezve a következő egyenletrendszert kapjuk: Az x m és y m kifejezéseket behelyettesítve: Mx M + mx m u = my Msinθ mx m cosθ + mgsinθ = Mx M + mx M mlθ 2 cosθ + mlθ cosθ u = mlθ + mx M cosθ + mgsinθ = A következő lépésben a fenti nemlineáris egyenletrendszert mérnöki megfontolásokkal linearizáljuk. A szabályozási feladat a rúd θ(t) szögének minél kisebb értéken tartása, ezért a következő közelítéseket alkalmazzuk. Egyrészt kis szögekre sinθ θ és cosθ 1, másrészt a felső egyensúlyi ponton a rúd szögsebessége kicsi, így θ 2 =. Ezeket kihasználva a következő, jól használható közelítést kapjuk: Mx M + mx M + mlθ u = mlθ + mx M + mgθ = Ebből az egyenletrendszerből fejtsük ki x M és θ változókat, ami egyben az inga fizikai mozgásegyenleteiből álló egyenletrendszert jelenti: x M = mg M θ + 1 M u (M + m)g θ = θ 1 Ml Ml u = A fenti egyenletrendszer alapján írjuk fel az inverz inga állapottér reprezentációját. Legyenek az állapotvektor elemei a mechanikában megszokott általánosított pozíció és sebesség koordinátáknak megfelelően a következők: a kocsi elmozdulása: x M, a kocsi sebessége: x M, a rúd szögelfordulása: θ, a rúd szögsebessége: θ. x = [ Legyen az y kimenőjel a kocsi elmozdulása, azaz x M x M θ θ y = x M A rendszer állapottér reprezentációja az alábbi módon írható fel általánosan, amelyből a d u tag elhagyható, mivel d = (azaz az u szabályozó jelnek nincs közvetlenhatása a kimenetre, csak az állapot megváltozására): x = A x + b u y = c T x + d u = c T x 3

ahol A = [ m M g, b = M + m g ml 1 M [ 1 Ml, c T = [1, (d = ) 3. Mátrix definiálása Matlabban A Matlab ( MATrix LABoratory ) alapértelmezett változó struktúrája a mátrix, így elsőként áttekintjük a mátrixok definiálásának szabályait: A változók megadásakor ügyeljünk a betűméretre: a Matlab megkülönbözteti a kis- és nagybetűket! pl. az >> A_x=1; a_x=2 parancs két külön változót definiál: A_x=1 a_x=2 A mátrixok elemeit szögletes zárójelek között adjuk meg. A soron belüli elemeket vessző, vagy szóköz választja el egymástól, a sorokat pontosvessző választja el: pl. >> A=[1 4 5; 2 Ekkor az alábbi mátrixot kapjuk: A = [ 1 4 5 2 4. Állapot-visszacsatolt szabályozás tervezése Egy állapottér reprezentációban adott rendszer állapot-visszacsatolásának tervezése általánosságban a következő lépésekben történik. 1. Az irányíthatóság ellenőrzése az első lépés. Egy (A, b, c T ) állapottér-reprezentációval adott rendszer akkor irányítható, ha a rendszer véges T idő alatt az x() állapotból egy tetszőleges x(t), x(t) x() állapotba vihető az u(t), t szabályozó jellel. Ha a rendszer nem irányítható, akkor az állapot-visszacsatolás módszere nem alkalmazható. Az irányíthatósági mátrix rangját Matlabban két lépésben tudjuk meghatározni. Irányíthatósági mátrix számítása: >>C = ctrb(a,b); Rang számítása: >>n = rank(c); Ha n értéke megegyezik az állapotok számával, akkor az állapottér-reprezentáció irányítható és az állapottér-visszacsatolt szabályozó tervezése elvégezhető. A keresendő irányíthatósági mátrix alakja az inverz inga 4 dimenziós állapotterére (ezt számolja ki a Matlab ctrb parancsa): C = [b A b A 2 b A 3 b. 4

2. A rendszert irányíthatósági alakra hozzuk, azaz meghatározzuk azt a T c nemszinguláris (tehát invertálható) transzformációs mátrixot, amely a rendszert irányíthatósági alakúra transzformálja. Ha a rendszer eleve irányíthatósági alakban adott, akkor a T c mátrixot értelemszerűen egységmátrixnak választjuk. Megjegyezzük, hogy a szabályozás során az új állapottérbe való transzformálás tényleges elvégzésére nincs szükség, elegendő a transzformációs mátrix meghatározása: T c = (C τ) 1 ahol C az irányíthatósági mátrix (már kiszámoltuk) és τ egy speciális struktúrájú ún. Toeplitz (felső-háromszög) mátrix szintén 4 dimenziós állapottérre felírva: 1 a 3 a 2 a 1 τ = [ a 3 a 2 1 a 3 Matlabban τ-t kézzel kell létrehozni a rendszer karakterisztikus polinomjának együtthatói alapján: >>a_i = poly(a); függvény megadja a karakterisztikus polinom együtthatóit vektoros formában. Mivel a kapott mátrix 5 elemű, de a 4 = 1, ezért a kapott vektor 1. eleme levágható. >>a_i = a_i(2:5); Ezek után a τ mátrix: >>Tau = [1 a_i(3) a_i(2) a_i(1); a_i(3) a_i(2); 1 a_i(1); ; A T c mátrix ezek alapján: >>Tc = inv(c*tau); 3. Az eredeti rendszer és a tervezendő rendszer karakterisztikus polinomjainak meghatározása. Az eredeti rendszer karakterisztikus polinomjának együtthatóit és pólusait az A mátrix segítségével az alábbi módon határozhatjuk meg: a(s) = det (si A) = s 4 + a 3 s 3 + a 2 s 2 + a 1 s + a A rendszer pólusai a fenti egyenlet gyökei lesznek. p = [p 1 p 2 p 3 p 4 Az tervezendő rendszer pólusai (p ) az alábbi formában adottak: p = [p 1 p 2 p 3 p 4 p alapján a tervezett ( új ) rendszer a (s) karakterisztikus polinomja gyöktényezős alakban egyszerűen meghatározható: a (s) = (s p 1)(s p 2)(s p 3)(s p 4) = s 4 + a 3s 3 + a 2s 2 + a 1s + a Matlabban a fenti lépések az alábbi módon végezhetők el. Az eredeti rendszer pólusainak meghatározása a pole() vagy eig() parancsokkal történhet. A pole() parancs alkalmazása esetén először a rendszer mátrixok (A, b, c T, d) definiálására van szükség (esetünkben d = ), majd a mátrixokból az ss() (state-space) paranccsal hozunk létre állapottér alakú rendszermodellt a Matlabban: >>sys = ss(a, b, c, ); 5

Ezután már a sys nevű állapottér objektum közvetlenül használható a pole() paranccsal: >>p = pole(sys) Másik lehetőségként a Matlab sajátérték-számító (eigenvalue) függvénye az eig() alkalmazható csupán az A mátrix segítségével: >>p = eig(a) A karakterisztikus polinom együtthatói az előző pontban leírt megfontolások alapján: >>a_i = poly(a); >>a_i = a_i(2:5); A tervezendő rendszer karakterisztikus polinomjának együtthatóinak meghatározására egy lehetőség, hogy a p pólusok ismeretében felírjuk a rendszer A mátrixát diagonális alakban: p 1 p 2 A = [ p 3 p 4 majd ennek a mátrixnak a karakterisztikus polinomját számítjuk ki: Matlabban: >>A_diag = diag(p_uj); >>a_iuj = poly(a_diag); a (s) = det (si A ) = (s p 1)(s p 2) (s p 3)(s p 4) 4. A kompenzátort az irányíthatósági állapottérnek megfelelő értékekkel kapjuk: k c T = [a 3 a 3 a 2 a 2 a 1 a 1 a a A tervezendő kompenzátor a megfelelő állapottér transzformációval a következő alakra hozható: k T = k c T T c Matlabban a tervezés egyetlen lépésben is megoldható az acker() függvény alkalmazásával. A függvény szintaktikája a következő: >>k = acker(a,b,p_uj) ahol A, b a rendszermátrixok, míg p_uj az új pólusokat tartalmazó sorvektor. Az acker() függvény lefuttatása után eredményül kapott k erősítési vektor az eredeti rendszer állapotterére vonatkozik, így még az irányíthatósági transzformációs mátrixot sem kell megkeresni! 5. A zárt rendszer állapottér reprezentációja általánosan (esetünkben az r és d tagok nullák, így elhagyhatók): x = (A b k T ) x + b r = (A b k T ) x y = c T x + d u = c T x A zárt rendszer állapottere az alábbi módon kódolható: >>A_cl = (A-b*k); >>Sys_cl = ss(a_cl, b, c, ); 6

ahol az ss() függvény egy állapottér (A, b, c T, d) objektumot hoz létre (esetünkben d = ). 6. Vizsgáljuk meg a zárt (szabályozott) rendszer minőségi tulajdonságait az egységugrás vizsgálójel válaszfüggvényével: >>impulse(sys_cl) Ezzel a zárt rendszer egységimpulzusra adott válasza (súlyfüggvénye) rajzolható ki. A minőségi tulajdonságokat az lsiminfo() paranccsal írathatjuk ki: >> [y,t =impulse(sys_cl); >> perf = lsiminfo(y,t,) 5. Mintapélda Legyen a kocsi tömege M = 2 kg, a rúd tömege m =,1 kg, a rúd hossza l =,5 m! A szabályozott rendszer pólusai kerüljenek a p = [ 2 + 3,46i 2 3,46i 1 1 helyre! Az előző fejezet alapján az (A, b, c T ) állapottér reprezentáció a következő lesz: A = [ b = 1 M [ 1 Ml m M g M + m g ml = [,495 2,61,5 = [, c T = [1 1 A rendszer karakterisztikus polinomja: a(s) = det (si A) = s 4 + a 3 s 3 + a 2 s 2 + a 1 s + a = s 4 2,61s 2 azaz: a 3 =, a 2 = 2,61, a 1 =, a =. Az irányíthatósági mátrix: A τ mátrix:,5 C = [b A b A 2 b A 3,5 b = [ 1 a 3 τ = [ a 2 a 1 1 a 3 a 2 = [ 1 a 3,495,495 2,61 2,61 2,61 2,61 1 7

Ebből az irányíthatósági transzformációs mátrix:,5,495 1 T c = (C τ) 1,5,495 = ([ [ 2,61 2,61 1 1 = [,12,51,12,51 2,61 2,61 ) 1 1 A tervezendő rendszer karakterisztikus polinomja az előírt pólusok alapján: a (s) = (s p 1)(s p 2)(s p 3)(s p 4) = s 4 + a 3s 3 + a 2s 2 + a 1s + a = s 4 + 24s 3 + 196s 2 + 719,4s + 1597,2 azaz: a 3 = 24, a 2 = 196, a 1 = 719,4, a = 1597,2. A kompenzátor értéke az irányíthatósági állapottérben: k c T = [a 3 a 3 a 2 a 2 a 1 a 1 a a = [24 216,6 719,4 1597,2 Ezt visszatranszformálva az eredeti állapottérbe: k T = k c T T c = [ 162,8 73,4 297,9 6,7 A 2. ábra a kimenő jel (rúd szögelfordulása) egységimpulzus bemenetre adott súlyfüggvényét mutatja. A kimeneti jel átmeneti függvényére jellemző tranziens adatok a következők: Beállási idő: 2,47 s Minimum érték: -,2 rad Maximum érték:,14 rad 8

s 3. ábra: A zárt rendszer súlyfüggvénye A rendszer beavatkozó jele a fentiek alapján (r = miatt): u = k T x. Ez azt jelenti, hogy a szabályozójel előállításához szükség van a rendszer összes állapotára. Jelenleg a rendszernek egy kimenete van, a kocsi elmozdulása: y = x M. Ha a rendszer mind a négy állapotát szeretnénk kimenetként azaz y = x, akkor a rendszer c T vektora helyett egy egységmátrixot kell választani. Így egy SIMO (Single Input Multiple Output) rendszert kapunk. Megjegyzés: A rendszer (belső) állapotai x attól függetlenül léteznek, hogy azokat mérjük-e vagy sem (kiemenet lesz-e vagy sem). A fenti módosításra csak azért van szükség, hogy a rendszer beavatkozó jele egyszerűen vizsgálható legyen az u = k T x összefüggés segítségével. y = [1 [ x M x M θ θ 1 = x M y = [ 1 x M x M x M x M [ = [ 1 θ θ θ θ u = k T y = [ 162,8 73,4 297,9 x M 6,7 [ θ θ = 162,8 x M 73,4 x M 297,9 θ 6,7 θ skalár érték! x M 9

4. ábra: A beavatkozó jel A megfelelő kompenzátor kiválasztása valamilyen kompromisszum alapján történik, amelyben a minőségi jellemzők egy része javul a többiek rovására. A tervezési feladat a lényeges minőségi jellemzőket javítása úgy, hogy közben a kevésbé lényeges jellemzők minősége ne romoljon túlságosan, azaz a jellemzők közötti összhang megteremtése a cél. Emellett fontos kiemelni az u szabályozó jelre vonatkozó korlátozást a mérnöki gyakorlatban. Azaz a bemenő szabályozó energia korlátos, pl. az inverz inga megvalósítása esetén ezt a korlátot a kocsiban alkalmazott villamos motor maximális teljesítménye határozza meg. 6. Matlab implementáció (.m script fájl készítése) A tervezéshez célszerű egy Matlab scriptet létrehozni. Ekkor a scriptben levő kód egy lépésben lefuttatható, nem kell minden parancsot egyesével a Command Window-ba megadni. A feladatban szereplő paraméterek (pl. tömegek, rúdhossz, stb.) a program elején vannak deklarálva, így azok változása esetén elegendő csak azokat átírni. Új script-et a Ctrl+N gyorsbillentyűvel vagy a menüsorban a New script gombra kattintva lehet létrehozni Matlabban (lásd alábbi ábra). 1

5. ábra: Új Matlab script létrehozása A létrehozott script-et mentsük el (Ctrl+S vagy Save ikon)! A kód az F5 gombbal vagy a zöld Run gombra kattintva futtatható le. 6. ábra: A program futtatása A kódban szereplő változók a globális Workspace-ben jelennek meg. Ha valamelyik részeredményt ki szeretnénk íratni a Command Window-ba akkor elegendő a sor végéről elhagyni a ; -t. Ha a program futása során valamilyen hiba történik a hibaüzenet szintén a Command Window-ban jelenik meg (pirossal). A minta kód alább olvasható (egy az egyben másolható az üres Matlabba script fájlba). 11

InverzInga.m close all; clear all; clc; %Workspace és Command Window kitakaritasa M = 2; %[kg, Kocsi tomege m =.1; %[kg, Rud tomege l =.5; %[m, Rud modell szerinti hossza g = 9.81; %[m/s^2, Gravitacios gyorsulas %Az uj polusok p_uj = [-2+3.46*i, -2-3.46*i, -1, -1; %Inverz inga modellje A = [ ; -m/m*g ; ; (M+m)/(M*l)*g ; b = [; 1/M; ; -1/(M*l); c = [1 ; d = ; %a kimeneti egyenlet teljes alakja miatt: y=c* x+d*u %Allapotter (ss = state space) Inga = ss(a,b,c,d); %polusok p = eig(a); % instabil polusok megtekintese polar koordinata rsz.-ben pzmap(inga) %x: polusok; kor: zerusok %karakterisztikus polinom egyutthatoi a_i = poly(a); a_i = a_i(2:5); %legmagasabb elem nem kell C = ctrb(a,b) %Iranyithatosagi matrix Tau = [1 a_i(3) a_i(2) a_i(1); a_i(3) a_i(2); 1 a_i(3); ; Tc = inv(c*tau) %Transzformacios matrix %Az uj rendszer karakterisztikus polinomja A_diag = diag(p_uj); a_iuj = poly(a_diag); a_iuj = a_iuj(2:5); %legmagasabb elem nem kell 12

%Az erosites iranyithatosagi alakban kc = a_iuj-a_i; %Az eredeti rendszerbe transzformalva k1 = kc*tc; %a tervezes a fentiek nelkul is elvegezheto az acker fuggveny segitsegevel %hasonlitsuk ossze a kapott eredmenyt! k = acker(a,b,p_uj) %A zart renszer allapottere A_cl = A-b*k; Sys_cl=ss(A_cl,b,c,d); %A rendszer impulzusvalasza [y,t =impulse(sys_cl); perf = lsiminfo(y,t,) %minosegi tulajdonsagok kiiratasa figure; impulse(sys_cl); %diagram %Beavatkozo jel meghatarozasa c_full = eye(4); %egysegmatrix d_full = zeros(4,1); %a d matrix meretet hozza kell igazitani c_full-hoz %Allapotter Sys_cl_full = ss(a_cl,b,c_full,d_full); %impulzusvalasz fuggveny (y es t diszkret pontokkal) [y,t =impulse(sys_cl_full); %Nx4 matrix %impulse(sys_cl_full) %mind a 4 allapotra vonatkozo impulzusvalasz (diagram) %beavatkozo jel szamitas: u = -k*y'; %rajzolas figure; plot(t,u); xlabel('time [s') ylabel('control input F [N') grid 13