„Szabályozástechnika - Folytonosidejű állapotteres szabályozók tervezése” változatai közötti eltérés
| 57. sor: | 57. sor: | ||
== Állapotvisszacsatolás tervezése == | == Állapotvisszacsatolás tervezése == | ||
<syntaxhighlight lang="matlab" style="font-size: 150%;"> | <syntaxhighlight lang="matlab" style="font-size: 150%;"> | ||
% Az állapotteres szabályzás alapelve, hogy a zárt körben előre meghatározott pólusokat szeretnénk. | |||
% Ezek általában egy domináns komplex konjugált póluspár (sdom1 és sdom2 - ez határozza meg a tranzienseket), | |||
% és megfelelő számú, a domináns póluspárnál 3-5ször gyorsabb pólus (scinf). | |||
% Ezekből a segédpólusokból n-2 darabra van szükség, ahol n az állapotváltozók száma. | |||
% Ezt a kívánt póluselrendezést úgy érhetjük el, hogy a bemenetre egy K erősítésvektoron keresztül negatívan | |||
% visszacsatoljuk az állapotváltozókat, azaz u = -K*x. Ha ezt behelyettesítjük a rendszer állapotegyenletébe, akkor | |||
% x' = A*x + B*u = A*x + B*(-K*x) = (A-B*K)*x lesz a módosult rendszer állapotegyenlete. Látható hogy úgy kell | |||
% a K értékét megválasztani, hogy az A-B*K módosult rendszermátrix sajátértékei éppen az általunk előírt | |||
% pólusok legyenek. Az ehhez szükséges K erősítés OSZLOP-vektor az Ackermann képlettel egyszerűen meghatározható. | |||
damp(A) % A rendszer sajátértékei, azok csillapítása (xi) | damp(A) % A rendszer sajátértékei, azok csillapítása (xi) | ||
| 65. sor: | 75. sor: | ||
xi=0.8; | xi=0.8; | ||
% A zárt kör sajátértékei | % A zárt kör általunk előírt sajátértékei | ||
sdom1=-w0*xi+j*w0*sqrt(1-xi^2); | sdom1=-w0*xi+j*w0*sqrt(1-xi^2); | ||
sdom2=conj(sdom1); | sdom2=conj(sdom1); | ||
| 71. sor: | 81. sor: | ||
% A zárt kör sajátértékeit tartalmazó vektor | % A zárt kör sajátértékeit tartalmazó vektor | ||
phic=[sdom1 sdom2]; | phic=[sdom1 sdom2]; | ||
% Ha a rendszernek 2-nél több állapotváltozója lenne, akkor | % 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. | |||
% Az irányíthatóság ellenőrzése | % Az irányíthatóság ellenőrzése | ||
| 83. sor: | 92. sor: | ||
K=acker(A,B,phic) | K=acker(A,B,phic) | ||
% | % Ellenőrizhető, hogy a zárt kör sajátértékei az általunk előírt domináns póluspár lett | ||
damp(A-B*K) | damp(A-B*K) | ||
% A megfelelő Simulink-modell megnyitása | % A megfelelő Simulink-modell megnyitása | ||
open('continuous_1'); | open('continuous_1'); | ||
% A rendszerünk itt egy [-1 -0.1] kezdőértéket kap, azaz t=0-ban | % A rendszerünk itt egy [-1 -0.1] kezdőértéket kap, azaz t=0-ban a lengőrendszer | ||
% | % a nullpontjához képest -1 méterrel ki van mozdítva és éppen 0.1 m/s pillanatnyi | ||
% sebességgel mozog a nullponja felé. A PLAY gombra nyomva láthatjuk, hogy a | |||
% lengőrendszer a szabályzó segítségével beáll a nullhelyzetébe. | |||
% Várakozás billentyűlenyomásra | % Várakozás billentyűlenyomásra | ||
| 99. sor: | 107. sor: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Állapotmegfigyelő tervezése == | == Állapotmegfigyelő tervezése == | ||
<syntaxhighlight lang="matlab" style="font-size: 150%;"> | <syntaxhighlight lang="matlab" style="font-size: 150%;"> | ||