%　Octave用 2005/06/20
%　2005/09/21　可観測性の確認は関係ないので削除．観測行列も削除．
%　最適制御状態フィードバックゲインを求める.

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

%重みの定義（Qは半正定，Rは正定）
Q = [ 1 0
      0 1];
R = 1;

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

disp(' ');

% XA + A'X - XBR^(-1)B'X + Q = 0の解 X　を求める.
X = are(A,B*inv(R)*B',Q);

% u = -BFx　の F( = R^(-1)B'X )  を求める.

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

F = inv(R)*B'*X


