// Scilab用 2006/05/23 // カルマンフィルタゲインを求める. clear format; // システムの定義 A=[ 0 1; -1 0]; B=[ 0 1 ]; C=[1 0]; D=[0]; //重みの定義 W = 1; V2 = 10^13; V = B*V2*B'; //可制御性の確認 disp(' '); if( rank( spec(cont_mat(A',C')) ) > 0) disp('controllability is OK'); else disp('No controllability'); end //可観測性の確認 disp(' '); if( rank( spec(obsv_mat(A',B')) ) > 0) disp('observability is OK'); else disp('No observability'); end disp(' '); // YA' + AY - YC'W^(-1)CY + V = 0の解 Y を求める. Y = ricc(A',C'*inv(W)*C,V,'cont'); // ue = -C'Ky の K( = W^(-1)CY ) を求める. disp(' '); K = inv(W)*C*Y; K = K' K1 = K(1) K2 = K(2)