估计新值时卡尔曼滤波器矩阵尺寸不匹配

Posted

技术标签:

【中文标题】估计新值时卡尔曼滤波器矩阵尺寸不匹配【英文标题】:Kalman Filter Matrix Dimensions Mismatch at Estimating New Value 【发布时间】:2015-10-28 15:28:48 【问题描述】:

我指的是Kalman Filter Explanation。在应用上述操作和估计新值时,由于矩阵维度不匹配,我无法执行上述操作。

我有如下变量

A transition matrix - 2x2 - 1d, timestampDiff, 0d, 1d; 
X from the previous state - 2x1 - measuredValue, measuredChangingRate
P variance matrix - 2x2 - 1000, 0, 0, 1000
H Measurement matrix - 1x2 - 1,1
Z measured values - 1x2 - 34.5,4

我的计算如下

t - 表示转置 ' - 表示倒数

1. Xk = A.X ( 2x2 . 2x1 = 2x1 )
2. Pk = A.P.At ( 2x2 . 2x2 . 2x2 = 2x2 )

3. K = Pk.Hkt / (Hk.Pk.Hkt + Rk ) 
   (2x2 . 2x1 ) / ( 1x2 . 2x2 . 2x1 + 1x1 ) = 2x1
4. Xk(estimate) = Xk + K.(Z - Hk.Xk)
   2x1 + (2x1 . (1x2 - 1x2 . 2x1)) = 2x1 + 2x2

在第 4 步中,我无法将两个矩阵相加,因为它的维度不同。

请指出我在哪里做错了。

非常感谢。

【问题讨论】:

【参考方案1】:

您的测量值过多。 z 应该是与H 一样多行的向量。

【讨论】:

是的。非常感谢。【参考方案2】:

我参考了 2 个链接 [1] 和 [2] 并设法配置了我的矩阵。我的测量矩阵 H 定义了错误的尺寸。正确的尺寸是 2x2。

H Measurement matrix - 2x2 - 1,0,0,1
    https://courseware.ee.calpoly.edu/~fdepiero/fdepiero_dsp_notes/notes%20&%20materials/kalman%20filter%20notes.pdf http://www.swarthmore.edu/NatSci/echeeve1/Ref/Kalman/MatrixKalman.html

【讨论】:

以上是关于估计新值时卡尔曼滤波器矩阵尺寸不匹配的主要内容,如果未能解决你的问题,请参考以下文章

在扩展卡尔曼滤波器中计算状态空间模型和测量模型的雅可比矩阵

卡尔曼滤波器1——递归算法(笔记篇 + 代码实现)

卡尔曼滤波器1——递归算法(笔记篇 + 代码实现)

滤波估计基于matlab双卡尔曼滤波SOC和SOH联合估计含Matlab源码 2335期

现代信号处理 06 - 卡尔曼滤波

使用卡尔曼滤波器估计误差