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

Kiskoza (vitalap | szerkesztései)
a ne kell 150%-os betűméret szerintem
Kiskoza (vitalap | szerkesztései)
a nem kell 150%-os betűméret szerintem
15. sor: 15. sor:


%% Mechanikai lengőrendszer leírása
%% Mechanikai lengőrendszer leírása
</syntaxhighlight>
[[File:szabtech_mechanikai_lengőrendszer_ábra.JPG]]
<syntaxhighlight lang="matlab">


% A rendszer paraméterei  
% A rendszer paraméterei  
32. sor: 28. 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:  
56. sor: 52. sor:


== Állapotvisszacsatolás tervezése ==
== Állapotvisszacsatolás tervezése ==
<syntaxhighlight lang="matlab">
% 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">
<syntaxhighlight lang="matlab">


79. sor: 61. sor:
xi=0.8;
xi=0.8;


% A zárt kör általunk előírt sajátértékei
% A zárt kör 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);
85. sor: 67. 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 n-2 darab, a domináns
% Ha a rendszernek 2-nél több állapotváltozója lenne, akkor
% póluspárnál 3-5ször gyorsabb, valós segédpólust (scinf) is bele kellene vennünk.
% n-2 darab, a domináns poluspá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
96. sor: 79. 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
% A zárt kör sajátértékei az általunk előírt domináns póluspár lesz
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 lengőrendszer
% A rendszerünk itt egy [-1 -0.1] kezdőértéket kap, azaz t=0-ban
% a nullpontjához képest -1 méterrel ki van mozdítva és éppen 0.1 m/s pillanatnyi
% a lengőrendszer a nullpontjához képest -1 méterrel ki van mozdítva
% sebességgel mozog a nullponja felé. A PLAY gombra nyomva láthatjuk, hogy a
% és éppen 0.1 m/s pillanatnyi sebességgel mozog a nullponja felé.
% lengőrendszer a szabályzó segítségével beáll a nullhelyzetébe.
% 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
111. sor: 95. sor:


</syntaxhighlight>
</syntaxhighlight>
== Állapotmegfigyelő tervezése ==
== Állapotmegfigyelő tervezése ==
<syntaxhighlight lang="matlab">
<syntaxhighlight lang="matlab">