„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)
113. sor: 113. sor:


== Állapotmegfigyelő tervezése ==
== Állapotmegfigyelő tervezése ==
<syntaxhighlight lang="matlab" style="font-size: 140%;">
% Az állapot-visszacsatolásnál minden egyes időpillanatban szükségünk van az állapotok aktuális értékeire.
% Ez a gyakorlatban mérésekkel lenne megvalósítható, ám ez nem mindig lehetséges, vagy ha lehetséges,
% akkor csak nagyon drágán. Éppen ezért használunk állapotmegfigyelőt, ami képes minden időpillanatban nagyon jó
% közelítéssel előállítani az állapotok aktuális értékeit, a szakasz kimenetének (y) és bemenetének (u) ismeretében.
% A megfigyelő maga is egy lineáris folytonos idejű rendszer, melynek állapotegyenlete:
% xhat' = F * xhat + G * y + H *u
% 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.
% 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
% tranziensei, azaz hogy milyen pontos legyen a megfigyelésünk. Így szeretnénk ha az F mátrix sajátértékei az
% általunk előírt gyorsaságú (a domináns póluspárnál ~5ször gyorsabb) soinf pólusok lennének.
% phio(s) = det (sI - F) = det (sI-(A-G*C)) = det (sI-(A'-C'*G')
% A fenti egyenlőség azért igaz, mivel egy rendszer és annak duálisának azonos a karakterisztikus polinomja.
% Így visszavezettük a feladatot egy fiktív rendszerhez történő állapot-visszacsatolás (K2=G') megtervezésére,
% mely fiktív rendszer rendszermátrixa A' (A transzponált), bemeneti erősítésvektora pedig C' (C transzponált).
% Ezek ismeretében az állapotmegfigyelő G vektora (vagyis annak transzponáltja) már számítható az Ackermann képlettel.
</syntaxhighlight>
[[File:szabtech_állapotmegfigyelő_ábra.JPG]]
<syntaxhighlight lang="matlab" style="font-size: 140%;">
<syntaxhighlight lang="matlab" style="font-size: 140%;">


118. sor: 140. sor:
soinf=-5
soinf=-5


% A megfigyelő karakterisztikus gyökei: soinf megfelelő multiplicitással (n)
% A megfigyelő karakterisztikus polinomjának gyökei: soinf megfelelő multiplicitással (n)
phio=[soinf soinf]
phio=[soinf soinf]


126. sor: 148. sor:
% Ha rank(Mo) = n, akkor a rendszer megfigyelhető!
% Ha rank(Mo) = n, akkor a rendszer megfigyelhető!


% Megfigyelő tervezése  
% Megfigyelő tervezése
% VIGYÁZAT: Itt A és C transzponáltja szerepel, továbbá az acker eredményét is transzponálni kell!
G=acker(A',C',phio)'
G=acker(A',C',phio)'
F=A-G*C
F=A-G*C