0

カルマンフィルタに関する質問があります。私は、次のような状態空間モデルのためのカルマン・フィルタを使用しています:状態空間マトリクス(A(k),B(k),C(k),D(k))は、各サンプリング時間が、QとRの行列に更新されカルマンフィルタが安定カルマンゲインを計算できない場合の考えられる原因は何ですか?

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) 

が一定であると考えられています。カルマンゲイン(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; 

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

この問題の原因を理解するのに手伝ってください。私は、カルマンフィルタが私に単位円内の固有値で安定した行列を作る利得を与えることを期待しています。

答えて

0

これは、システムがで、観察不能である場合に発生します。 nが状態空間の次元である観測行列

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

のランクをチェック(すなわち、A(k)n X n行列です)。 Oの行ランクがnより小さい場合は、問題があります。

matlabでは、O = obsv(A,C)は観測可能性行列を計算し、rank(O)はそのランクを与えます。

これが役に立ちます。

関連する問題