%　Octave用 2005/09/21
%　Hinf制御の状態フィードバックゲインを求める.


%　システムの定義
A=[  0 1;
    -1 0];
B1=[ 0
    1 ];

B2=[ 0
    1 ];

C1=[1 0];

D12 = [1];

%重みの定義
gg = 0.1;

%可制御性の確認
disp(' ');
if( rank( eig(ctrb(A,B2)) ) > 0)
 disp('controllability is OK');   
else
 disp('No controllability');
end

%rankの確認
if rank(D12) < size(B2,2)
 disp('rank(D12) < input order')
end

% XA + A'X - X(B2(D12*D12')^(-1)B2'-gg^(-2)*B1*B1')X + C1'*C1 = 0の解 X　を求める.
X = are(A,(B2*inv(D12*D12')*B2'-inv(gg^2)*B1*B1'),C1'*C1);

% u = -B2Fx　の F( = inv(D12*D12')*B2'X )  を求める.

disp(' u = -B2Fx');
disp(' ');

F = inv(D12*D12')*B2'*X


