Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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を計算します。

A T X A X A T X B ( B T X B + R ) 1 B T X A + Q = 0

関数dareはまた、ゲイン行列 G = ( B T X B + R ) 1 B T X A と閉ループ固有値のベクトルLを返します。ただし、

L=eig(A-B*G,E)

[X,L,G] = dare(A,B,Q,R,S,E)は,次のようなより一般的な離散時間代数リカッチ (Riccati) 方程式を解きます。

A T X A E T X E ( A T X B + S ) ( B T X B + R ) 1 ( B T X A + S T ) + Q = 0

または,Rが正則の場合、下記と等価です。

E T X E = F T X F F T X B ( B T X B + R ) 1 B T X F + Q S R 1 S T

ここで、 F = A B R 1 S T です。RS、およびEが省略されると、既定値R=IS=0、およびE=Iが設定されます。

関数dareは、対応するゲイン行列 G = ( B T X B + R ) 1 ( B T X A + S T )

および閉ループ固有値のベクトル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 つの行列X1X2と、X = D*(X2/X1)*Dであるような対角のスケーリング行列 D を返します。ベクトル L は、閉ループ固有値を含みます。関連するシンプレクティック行列が単位円上に固有値をもつ場合、すべての出力は空です。

制限

(A, B) 組は可安定でなければなりません (つまり、単位円板外にある A の固有値はすべて可制御でなければなりません)。さらに、関連付けられたシンプレクティック ペンシルは、単位円上に固有値をもつことはできません。この状態を有効にするための十分条件は、S = 0 and R > 0 のときに (Q, A) が可検出であるか、または

[ Q S S T R ] > 0

アルゴリズム

関数dareは、[1]に記述されているアルゴリズムを実装しています。QZ アルゴリズムを使用して、拡張されたシンプレクティック ペンシルを縮小し、その安定した不変部分空間を計算します。

互換性についての考慮事項

すべて展開する

R2019a 以降は非推奨

参考文献

[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.

参考

R2006a より前に導入