【发布时间】:2016-08-01 21:50:52
【问题描述】:
我有一个关于卡尔曼滤波器的问题。我正在将卡尔曼滤波器用于状态空间模型,如下所示:
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)) 矩阵在单位圆内的特征值稳定的增益。
【问题讨论】:
标签: matlab estimation kalman-filter stochastic-process state-space