„Szabályozástechnika - Folytonosidejű állapotteres szabályozók tervezése” változatai közötti eltérés
| 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 | ||