Postup s vytvořenými programy ze cvičení: Návrh řízení

Stavová zpětná vazba

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:
stavova zpetna vazba

Stavový pozorovatel se stavovou zpětnou vazbou

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:
stavova pozorovatel