„Szabályozástechnika - Folytonosidejű állapotteres szabályozók tervezése” változatai közötti eltérés

David14 (vitalap | szerkesztései)
David14 (vitalap | szerkesztései)
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
% n-2 darab, a domináns poluspárnál 3-5ször gyorsabb, valós
% póluspárnál 3-5ször gyorsabb, valós segédpólust (scinf) is bele kellene vennünk.
% 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)


% A zárt kör sajátértékei az általunk előírt domináns póluspár lesz
% 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 lengőrendszer a nullpontjához képest -1 méterrel ki van mozdítva
% a nullpontjához képest -1 méterrel ki van mozdítva és éppen 0.1 m/s pillanatnyi
% és éppen 0.1 m/s pillanatnyi sebességgel mozog a nullponja felé.
% sebességgel mozog a nullponja felé. A PLAY gombra nyomva láthatjuk, hogy a
% A PLAY gombra nyomva láthatjuk, hogy a lengőrendszer a szabályzó
% lengőrendszer a szabályzó segítségével beáll a nullhelyzetébe.
% 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%;">