„Szabályozástechnika - Folytonosidejű állapotteres szabályozók tervezése” változatai közötti eltérés
aNincs szerkesztési összefoglaló |
|||
| (10 közbenső módosítás, amit egy másik szerkesztő végzett, nincs mutatva) | |||
| 83. sor: | 83. sor: | ||
sdom2=conj(sdom1); | sdom2=conj(sdom1); | ||
% A zárt kör sajátértékeit tartalmazó vektor | % A zárt kör sajátértékeit tartalmazó vektor, valamint ha a rendszernek 2-nél több állapotváltozója lenne, | ||
% akkor n-2 darab, a domináns póluspárnál 3-5ször gyorsabb, valós segédpólust (scinf) is bele kellene vennünk. | |||
phic=[sdom1 sdom2]; | phic=[sdom1 sdom2]; | ||
% | % A zárt kör karakterisztikus polinomja | ||
polyphic=poly(phic); | |||
% Az irányíthatóság ellenőrzése | % Az irányíthatóság ellenőrzése | ||
| 154. sor: | 155. sor: | ||
% A megfelelő Simulink-modell megnyitása | % A megfelelő Simulink-modell megnyitása | ||
open(' | open('continuous_2'); | ||
% Most már zérus kezdeti értékekkel indítjuk a lengőrendszert és cél, hogy | % Most már zérus kezdeti értékekkel indítjuk a lengőrendszert és cél, hogy | ||
% 1 méterrel kimozdítsuk és stabilan ott tartsuk a testet. | % 1 méterrel kimozdítsuk és stabilan ott tartsuk a testet. | ||
% Várakozás billentyűlenyomásra | |||
pause | |||
</syntaxhighlight> | |||
== A beavatkozó jel kezdeti és végértékének számítása == | |||
<syntaxhighlight lang="matlab" style="font-size: 140%;"> | |||
% A feladat, hogy határozzuk meg az alapjel miatti korrekciót tartalmazó rendszer beavatkozó | |||
% jelének (u) kezdeti u(0) és végértékét u(inf), nulla kezdeti feltételek és r = k * 1(t) egységugrás alapjel esetén. | |||
r=1; % Egységugrás jellegű alapjel értéke (k = 1 választás mellett) | |||
% Kezdeti érték meghatározása: | |||
% A hatásvázlatról látszik, hogy u(t) = Nu*r(t) + K*( Nx*r(t) - x(t) ) | |||
% Ezt t=0-ra felírva: u(0) = Nu*r(0) + K*( Nx*r(0) - x(0) ) | |||
% Mivel tudjuk, hogy a szakasz 0 kezdeti feltételekkel indul így x(0)=0, tehát | |||
% u(0) = Nu*r(0) + K*Nx*r(0) | |||
u0=Nu*r+K*Nx*r | |||
% Végérték meghatározása: | |||
% Állandósult állapotban a szakasz bemenetére konstans beavatkozó jel kell, hogy kerüljön. Ehhez az szükségeltetik, | |||
% hogy a visszacsatolás zérus értékű legyen, azaz a K erősítés ki és ezáltal bemenete is zérus legyen. | |||
% Ebből következik, hogy Nx*r(inf) = x(inf). Ilyenkor mivel a visszacsatolás zérus, így u(inf) = r(inf) * Nu. | |||
uinf=r*Nu | |||
% Várakozás billentyűlenyomásra | % Várakozás billentyűlenyomásra | ||
| 175. sor: | 205. sor: | ||
% xhat' = F * xhat + G * y + H *u | % xhat' = F * xhat + G * y + H *u | ||
% Ahol xhat a becsült állapotok OSZLOP-vektora, valamint dim{xhat}=dim{x}=n. | % Ahol xhat a becsült állapotok OSZLOP-vektora, valamint dim{xhat}=dim{x}=n. | ||
% Továbbá éljünk az F=A-G*C és H=B választással. | % Továbbá éljünk az F = A-G*C és H = B választással. | ||
% A becslés hibájára (xtilde = xhat - x) így az alábbi differenciálegyenlet adódik: xtilde' = F * xtilde | % A becslés hibájára (xtilde = xhat - x) így az alábbi differenciálegyenlet adódik: xtilde' = F * xtilde | ||
% Látható, hogy az F mátrix sajátértékei fogják meghatározni, hogy milyen gyorsan csengjenek le a megfigyelés | % Látható, hogy az F mátrix sajátértékei fogják meghatározni, hogy milyen gyorsan csengjenek le a megfigyelés | ||
| 194. sor: | 224. sor: | ||
soinf=-5 | soinf=-5 | ||
% A megfigyelő karakterisztikus polinomjának gyökei | % A megfigyelő karakterisztikus polinomjának gyökei - soinf megfelelő multiplicitással (n) | ||
phio=[soinf soinf] | phio=[soinf soinf] | ||
% A megfigyelő karakterisztikus polinomja | |||
polyphio=poly(phio) | |||
% A megfigyelhetőség ellenőrzése | % A megfigyelhetőség ellenőrzése | ||
| 209. sor: | 241. sor: | ||
% A megfelelő Simulink-modell megnyitása | % A megfelelő Simulink-modell megnyitása | ||
open(' | open('continuous_obs'); | ||
% Ugyanaz a felállás mint | % Ugyanaz a felállás mint a sima állapot-visszacsatolás esetén, csak most állapotmegfigyelővel. | ||
% Látható, hogy a szabályzás ugyanolyan hatékony maradt. | % Látható, hogy a szabályzás ugyanolyan hatékony maradt, hiszen a becsült állapotok értékei körülbelül | ||
% 1 másodperc után már szinte megegyeznek az állapotok valódi értékeivel. | |||
% Állapotmegfigyelőt és alapjel miatti korrekciót is tartalmazó Simulink-modell megnyitása | |||
open('continuous_3'); | |||
% Várakozás billentyűlenyomásra | % Várakozás billentyűlenyomásra | ||
| 226. sor: | 262. sor: | ||
% kompenzálhatjuk a zavarás hatását. Ezt úgy oldjuk meg, hogy a zajt egy új állapotváltozónak (xd) tekintjük. | % kompenzálhatjuk a zavarás hatását. Ezt úgy oldjuk meg, hogy a zajt egy új állapotváltozónak (xd) tekintjük. | ||
% Mivel a zaj szakaszosan hosszú ideig konstans, ezért a deriváltja 0, a bemenettől pedig független, ezért a | % Mivel a zaj szakaszosan hosszú ideig konstans, ezért a deriváltja 0, a bemenettől pedig független, ezért a | ||
% differenciálegyenlete: xd' = 0*x + xd + 0*u. Viszont a többi változó differenciálegyenletébe már beleszól | % differenciálegyenlete: xd' = 0*x + 0*xd + 0*u. Viszont a többi változó differenciálegyenletébe már beleszól | ||
% az xd zavarást modellező fiktív állapotváltozó, méghozzá a B bemeneti mátrixon keresztül: x' = A*x + B*(xd+u). | % az xd zavarást modellező fiktív állapotváltozó, méghozzá a B bemeneti mátrixon keresztül: x' = A*x + B*(xd+u). | ||
% Tehát a kibővített rendszerünk állapotegyenletei: | % Tehát a kibővített rendszerünk állapotegyenletei: | ||
| 259. sor: | 295. sor: | ||
% Megfigyelőtervezés a kibővített rendszerhez | % Megfigyelőtervezés a kibővített rendszerhez | ||
% Ugyanaz, mint az állapotmegfigyelőnél, csak most a 'tilde rendszerre | |||
Gtilde=acker(Atilde',Ctilde',phiotilde)' | Gtilde=acker(Atilde',Ctilde',phiotilde)' | ||
Ftilde=Atilde-Gtilde*Ctilde; | Ftilde=Atilde-Gtilde*Ctilde; | ||
| 279. sor: | 316. sor: | ||
% Az integráló szabályzó célja a zavarelnyomás és a paraméterbizonytalanságok kiküszöbölése. Ezt úgy érjük el, | % Az integráló szabályzó célja a zavarelnyomás és a paraméterbizonytalanságok kiküszöbölése. Ezt úgy érjük el, | ||
% hogy új állapotként felvesszük a kimenet integrálját: xI = integrál (0->t) y(tau) dtau --> xI' = y = C* | % hogy új állapotként felvesszük a kimenet integrálját: xI = integrál (0->t) y(tau) dtau --> xI' = y = C*x | ||
% Ezzel már felírhatók a kibővített rendszer állapotegyenletei: | % Ezzel már felírhatók a kibővített rendszer állapotegyenletei: | ||
% | % | ||
| 322. sor: | 359. sor: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[ | [[Kategória:Villamosmérnök]] | ||