function W = UE_2W(A,B)
%UE_2W   Berechnung der Polvorgabematrix W.
%	W=UE_2W(A,B) erzeugt die Polvorgabematrix W
%	A Systemmatrix
%   B Eingangsmatrix
%	Hinweis: Falls das System nicht steuerbar ist, 
%            wird W singulaer.
%   CAD-Uebung zur Vorlesung Entwurf Robuster Regelungen
%   Thema: Zustandsregelung/Polvorgabe/Steuerbarkeit

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

% Dimension der A Matrix
[m,n]=size(A);

% q = Normierter Koeffizientenvektor des charakteristischen Polynoms von A
q=poly(A);        % Koeffizientenvetor des ungeregelten Systems
q=q/q(1);         % normieren auf q(1)=1
q=q(2:length(q)); % in VL wurde fuehrende 1 aus Vektor q herausgezogen [1 q_{n-1} ... q_{1}]

% W=Qs*Q
Qs=ctrb(A,B);
% Struktur von Q siehe VL
Q=eye(n);
% Q oberhalb der Hauptdiagonalen mit den Polynomkoeffizienten q fuellen
for i=1:n
    for j=i+1:n
	Q(i,j) = q(j-i);
    end
end

% W=Qs*Q
W=Qs*Q;
