0

カルマンフィルターについて質問です。次のように、状態空間モデルにカルマン フィルターを使用しています。

X(k+1) = A(k)x(k)+B(k)u(k)+w(k), w(k) ∼ N(0,Q)
Y(k) = C(K)x(k)+D(k)u(k)+v(k), v(k) ∼ N(0,R)

状態空間行列(A(k),B(k),C(k),D(k))はサンプリング時間ごとに更新されますが、Q 行列と R 行列は一定であると見なされます。カルマン ゲイン (K(k)) と共分散 P 行列 (P(k)) を計算する式は次のとおりです。

K(k) = (P(k)*C(k)' )/(R + C(k)*P(k)*C(k)');
Pxx(k) = (eye(n)-K(k)*C(k))*P(k)*(eye(n)-K(k)*C (k))'+K(k)*R*K(k)';%Joseph form
P(k) = A(k)*Pxx(k)*A(k)' + Q; 

私が直面している問題は、の安定性に関連してい(A(k)-K(k)*C(k))ます。一部のサンプリング時間では、計算されたカルマン ゲインが(A(k)-K(k)*C(k))行列を安定化できず、 の固有値(A(k)-K(k)*C(k))が単位円の外側にあります。

この問題の原因を突き止めるのを手伝ってくれませんか? (A(k)-K(k)*C(k))カルマン フィルターが、単位円内の固有値で行列を安定させるゲインを与えることを期待しています。

4

1 に答える 1

1

これは、システムが観察できない場合に発生する可能性があります。可観測性行列のランクを確認する

O = [C(k)
     C(k)A(k)
     C(k)A(k)^2
     ...
     C(k)A(k)^(n-1)]

ここnで、 は状態空間の次元 (つまり、A(k)n X n行列) です。の行ランクOが 未満の場合n、問題があります。

matlab ではO = obsv(A,C)、オブザーバビリティ マトリックスを計算し、rank(O)そのランクを指定します。

お役に立てれば。

于 2016-08-04T21:41:28.237 に答える