%
% UE_1PV  Uebung 1: Polvorgabe
%

% K. Mueller  01-MAY-1993
% Technische Universitaet Braunschweig, IfR
% ----------------------------------------------------------------
disp(' Regelung des Feder-Massen-Schwingers mit Zustandsregler')
disp(' Bitte die Pole vorgeben (nur reelle Pole moeglich) !');

% clp = Vektor mit 4 Elementen
clp=zeros(1,4);
clp(1) = input(' Pol 1: ');
clp(2) = input(' Pol 2: ');
clp(3) = input(' Pol 3: ');
clp(4) = input(' Pol 4: ');

% p enthaelt die Koeffizienten des Polynoms mit den Nullstellen clp
p=poly(clp);

% q enthaelt die Koeffizienten des charakteristischen Polynoms der Strecke
q=poly(A);

% W ist das in der Vorlesung beschriebene Produkt aus
% Steuerbarkeitsmatrix und oberer Dreiecksmatrix
% (pvmw.m ist ein selbstgeschriebenes m-File, keine MATLAB-Routine)
W=pvmw(A,B);

% F ist das Produkt aus dem Differenzvektor der Polynomkoeffizienten
% und der Inversen der Matrix W
disp(' ')
disp(' Zustandsregler F:')
F=(q(2:5)-p(2:5))*inv(W)

% Ag ist die Matrix des geschlossenen Kreises
Ag=A+B*F;

% R ist das Fuehrungsfilter, damit die Verstaerkung Eins ist
disp(' Fuehrungsfilter R:')
R=1/dcgain(Ag,B,C,D)

% Geregeltes System mit Sollwert w als Eingang und
% dem Vektor (y,u) als Ausgang
Bg=B*R;  Cg=[C;F];  Dg=[0;R];
disp(' Geregeltes System mit (y,u) als Ausgangsgroessen:')
Ag, Bg, Cg, Dg
step(Ag,Bg,Cg,Dg);
% --------- End of UE_1PV.M --- KPM %
