Control System Toolbox関数リファレンス | ![]() ![]() |
表示
[X,L,G,rr] = care(A,B,Q) [X,L,G,rr] = care(A,B,Q,R,S,E) [X,L,G,report] = care(A,B,Q,...,'report') [X1,X2,L,report] = care(A,B,Q,...,'implicit')
詳細
[X,L,G,rr] = care(A,B,Q)
は、つぎの代数Riccati方程式の一意的な解を計算します。
ここで、は、開左半平面にすべての固有値をもっていなければなりません。行列
は対称で、
の安定化解と呼ばれます。また 、
[X,L,G,rr] = care(A,B,Q)
は、つぎのものを出力します。
L
[X,L,G,rr] = care(A,B,Q,R,S,E)
では、つぎの一般的なRiccati方程式を解きます。
ここで、ゲイン行列はであり、"閉ループ"固有値は、
L = eig(A-B*G,E)
です。
最適制御設計などのアプリケーションの開発を支援するために、2つのオプションが用意されています。
[X,L,G,report] = care(A,B,Q,...,'report')
は、解が存在しない場合、エラーメッセージを消去し、代わりに処理結果に対する情報をreportに出力します。
-1
(失敗) -2
(失敗) また、 [X1,X2,L,report] = care(A,B,Q,...,'implicit')
も、エラーメッセージを消去しますが、つぎのように陰的な型でを出力します。
このオプションは、成功した場合、report
=
0
を出力することに注意してください。
例題 1
a = [-3 2;1 1] b = [0 ; 1] c = [1 -1] r = 3 [x,l,g] = care(a,b,c'*c,r)
x x = 0.5895 1.8216 1.8216 8.8188
a
およびa-b*g
の固有値を比較すれば、この解が実際に安定であることが確認できます。
[eig(a) eig(a-b*g)] ans = -3.4495 -3.5026 1.4495 -1.4370
最後に、閉ループ固有値eig(a-b*g)
は、出力変数l
と一致します。
l l = -3.5026 -1.4370
例題 2
ここで、つぎのように安定化された解
を計算することができます。
B = [B1 , B2] m1 = size(B1,2) m2 = size(B2,2) R = [-g^2*eye(m1) zeros(m1,m2) ; zeros(m2,m1) eye(m2)] X = care(A,B,C'*C,R)
アルゴリズム
care
は、[1]で説明したアルゴリズムを実現します。careは、 の条件数が良く、かつ
である場合に、Hamilton行列と共に機能し、その他の場合、拡張Hamiltonペンシルを用い、QZアルゴリズムを使用します。
制限
の組み合わせは、安定化可能でなければなりません(すなわち、すべての不安定なモードは可制御です)。また、関連するHamilton行列またはHamiltonペンシルは、虚軸上に固有値をもつことはできません。この状態を維持するための十分条件は、
かつ
の場合、または、
の場合、
が検出可能であるということです。
参考
dare
離散系Riccati方程式の解
lyap
連続時間Lyapunov方程式の解
参考文献
[1] Arnold, W.F., III and A.J. Laub, "Generalized Eigenproblem Algorithms and Software for Algebraic Riccati Equations," Proc. IEEE, 72 (1984),
pp. 1746-1754.
![]() | canon | chgunits | ![]() |