このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
dare
(非推奨) 離散時間代数リカッチ方程式 (DARE) を解く
dare
は推奨されません。代わりにidare
を使用してください。詳細については、互換性についての考慮事項を参照してください。
構文
[X,L,G] = dare(A,B,Q,R)
[X,L,G] = dare(A,B,Q,R,S,E)
[X,L,G,report] = dare(A,B,Q,...)
[X1,X2,L,report] = dare(A,B,Q,...,'factor')
説明
[X,L,G] = dare(A,B,Q,R)
は、離散時間代数リカッチ (Riccati) 方程式の固有な安定解X
を計算します。
関数dare
はまた、ゲイン行列
と閉ループ固有値のベクトルL
を返します。ただし、
L=eig(A-B*G,E)
[X,L,G] = dare(A,B,Q,R,S,E)
は,次のようなより一般的な離散時間代数リカッチ (Riccati) 方程式を解きます。
または,R
が正則の場合、下記と等価です。
ここで、
です。R
、S
、およびE
が省略されると、既定値R=I
、S=0
、およびE=I
が設定されます。
関数dare
は、対応するゲイン行列
および閉ループ固有値のベクトルL
を返します。ただし、
L= eig(A-B*G,E)
[X,L,G,report] = dare(A,B,Q,...)
は、以下の値をもつ診断report
を返します。
-
1
関連付けられたシンプレクティック ペンシルが、単位円上またはその近傍に固有値をもつ場合-
2
有限の安定化解X
が存在しない場合X
が存在しかつ有限である場合には、フロベニウス ノルム
[X1,X2,L,report] = dare(A,B,Q,...,'factor')
は、2 つの行列X1
、X2
と、X = D*(X2/X1)*D
であるような対角のスケーリング行列 D を返します。ベクトル L は、閉ループ固有値を含みます。関連するシンプレクティック行列が単位円上に固有値をもつ場合、すべての出力は空です。
制限
(A, B) 組は可安定でなければなりません (つまり、単位円板外にある A の固有値はすべて可制御でなければなりません)。さらに、関連付けられたシンプレクティック ペンシルは、単位円上に固有値をもつことはできません。この状態を有効にするための十分条件は、S = 0 and R > 0 のときに (Q, A) が可検出であるか、または
アルゴリズム
関数dare
は、[1]に記述されているアルゴリズムを実装しています。QZ アルゴリズムを使用して、拡張されたシンプレクティック ペンシルを縮小し、その安定した不変部分空間を計算します。
互換性についての考慮事項
参考文献
[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.