„Szabályozástechnika - Folytonosidejű állapotteres szabályozók tervezése” változatai közötti eltérés
a nem kell 150%-os betűméret szerintem |
|||
| 10. sor: | 10. sor: | ||
== A mechanikai lengőrendszer leírása == | == A mechanikai lengőrendszer leírása == | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab" style="font-size: 150%;"> | ||
%% Állapotteres szabályozás folytonos időben | %% Állapotteres szabályozás folytonos időben | ||
%% Mechanikai lengőrendszer leírása | %% Mechanikai lengőrendszer leírása | ||
</syntaxhighlight> | |||
[[File:szabtech_mechanikai_lengőrendszer_ábra.JPG]] | |||
<syntaxhighlight lang="matlab" style="font-size: 150%;"> | |||
% A rendszer paraméterei | % A rendszer paraméterei | ||
| 28. sor: | 32. sor: | ||
% Állapotváltozók, be es kimenet: | % Állapotváltozók, be es kimenet: | ||
% x_ = [x x']' | % x_ = [x x']' | ||
% u = F | % u = F | ||
% y = x | % y = x | ||
% | % | ||
% Az állapotegyenletek: | % Az állapotegyenletek: | ||
| 52. sor: | 56. sor: | ||
== Állapotvisszacsatolás tervezése == | == Állapotvisszacsatolás tervezése == | ||
<syntaxhighlight lang="matlab"> | <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ó. | |||
</syntaxhighlight> | |||
[[File:szabtech_állapot-visszacsatolás_ábra.JPG]] | |||
<syntaxhighlight lang="matlab" style="font-size: 150%;"> | |||
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) | ||
| 61. sor: | 79. 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); | ||
| 67. sor: | 85. 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 | ||
| 79. sor: | 96. 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 | ||
| 95. sor: | 111. sor: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Állapotmegfigyelő tervezése == | == Állapotmegfigyelő tervezése == | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab" style="font-size: 150%;"> | ||
% A megfigyelő sajátértékei jóval gyorsabbak mint a zárt kör sajátértékei | % A megfigyelő sajátértékei jóval gyorsabbak mint a zárt kör sajátértékei | ||
| 126. sor: | 143. sor: | ||
== Alapjel miatti korrekció == | == Alapjel miatti korrekció == | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab" style="font-size: 150%;"> | ||
% Tervezés | % Tervezés | ||
| 147. sor: | 164. sor: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Terhelésbecslő tervezése == | == Terhelésbecslő tervezése == | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab" style="font-size: 150%;"> | ||
% A kibővített rendszer mátrixai | % A kibővített rendszer mátrixai | ||
| 174. sor: | 191. sor: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Integráló szabályozás tervezése == | == Integráló szabályozás tervezése == | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab" style="font-size: 150%;"> | ||
% Itt új K erősítésvektrot kell meghatározni, de a többi már | % Itt új K erősítésvektrot kell meghatározni, de a többi már | ||