% UE_2LQR   Initialisierung der I2-Strecke / Reglerentwurf
% G=(A,B,C,D)      Strecke
%
% CAD-Uebung zur Vorlesung Entwurf Robuster Regelungen
% Thema: Optimale Zustandsregelung

% M. Grobe  10/2003
% Technische Universitaet Braunschweig, IfR

% doppelter Integrator mit Anfangswerten
A=[0 0;1 0];
B=[1;0];
C=[0 1];
D=0;
G=ss2sys(A,B,C,D);

% Entwurfsparameter
r0=1;
q10=0;
q20=1;

% Q-Matrix (Gewicht fuer Sustandsgroessen)
Q=eye(size(A));
Q(1,1)=q10;
Q(2,2)=q20;

% R-Matrix (Gewicht fuer Ausgangsgroesse)
R=r0;

% LQR Reglerentwurf nach VL
% loesen der Riccati-Gleichung (CARE): A'*P + P*A - P*B*inv(R)*B'*P + Q = 0
P=are(A,B*inv(R)*B',Q);
% Regler berechnen
F=-inv(R)*B'*P;

% LQR Reglerentwurf mit MATLAB
F2=-lqr(A,B,Q,R); % MATLAB nimmt Gegenkopplung fuer Zustandsregler an, wir Mitkopplung

Gf=ss2sys(A+B*F,B,C,D);
% Vorfilter fuer stationaere Genauigkeit
Rvor=1/dcgain(Gf);

% Gesamtsystem
Ag=A+B*F;
Bg=B*Rvor;
Cg=C;
Dg=D*Rvor;
Gg=ss2sys(Ag,Bg,Cg,Dg);

step(Gg)
title('Sprunganwort für gewähltes Q und R')
