Návrh řízení modelu odvozeného a linearizovaného v předchozí části. Pro lineární model navrhnu stavovou zpětnou vazbu tak, aby výsledný model byl stabilní, použiju Ackermanovu formuli anebo LQR. Všechny metody zkontroluji pomocí impulsu, skoku, nyquistovým diagramem a bodeho diagramem,
main_rizeni.m:
%% navrh rizeni
% pole placement
P = [-1;-1;-1;-1]*3;
K = acker(A,B,P);
figure;step(A-B*K,B,C-D*K,D);
figure;impulse(A-B*K,B,C-D*K,D);
figure;nyquist(A-B*K,B,C-D*K,D);
% lqr
Q = diag([1;1;1;1]*1e3);
R1 = 1;
K = lqr(A,B,Q,R1);
figure;step(A-B*K,B,C-D*K,D);
figure;impulse(A-B*K,B,C-D*K,D);
figure;nyquist(A-B*K,B,C-D*K,D);
Takto získané zesílení
K použiju v modelu v simulinku
ModelSimulinkDyn_StavovaZpetnaVazba.mdl:
Nejsme-li schopni stavy měřit, musíme si je simulovat s použitím výstupů (ty jsme schopni měřit) namísto stavů. Stavy jako takové získáme ze simulace, jejíž dynamika by měla být výrazně rychlejší než dynamika řízeného systému, tuto dynamiku naladíme zpětnou vazbou s použitím matice
L. Tomuto algoritmu se říká
Stavový pozorovatel, sestavení matice
L nalezneme v souboru
main_rizeni.m (zde označená jako
Lst):
% stavovy pozorovatel - zesileni zpetne vazby pouzijeme z ackermanovy
% formule, zname tim umistni polu
P = [-1;-1;-1;-1]*3;
K = acker(A,B,P);
% nyni navrhneme matici L stavoveho pozorovatele
Pp = [-10;-10;-10;-10];
Lst=acker(A',C',Pp)';
Takto získané zesílení
Lst použiju v modelu v simulinku
ModelSimulinkDyn_StavovyPozorovatelaSSV.mdl: