卡尔曼滤波器中的时变系统矩阵

机器算法验证 卡尔曼滤波器 时变协变量
2022-03-15 07:52:03

卡尔曼滤波器可以适应时变系统矩阵。运行滤波器的方程是相同的,它在线性高斯模型下保持其最优性。

我的问题如下:

时变系统矩阵的演化可以是随机的吗?在一些参考文献中,我似乎在字里行间读到它们应该确定性地发展。这是否意味着整个过滤器都损坏了,或者我们只是通过使它们随机而失去了最优性?

作为参考,请查看以下论文的第 3.2 节:

http://www.ims.cuhk.edu.hk/~cis/2012.1/CIS%2012-1-05.pdf

哈维关于卡尔曼滤波器的书中也有类似的评论。

2个回答

如果你的动态系统是

xt=Atxt1+ηt
yt=Btxt+εt
然后当人们说系统矩阵时At,Bt应该是确定性的,这意味着卡尔曼滤波器可以为您提供状态估计xt 以参数的过去和当前值为条件
E(xt|yt,,y1,At,,A1,Bt,,B1).

因此,当您执行过滤步骤来估计状态的这种条件期望时,您会认为这些矩阵是已知的(观察到的)而不是未知的和随机的。当然,它们可以是某些外部随机过程(通常是这种情况)的实现,也可以是时间的确定性函数——这无关紧要。

上述论文中的作者在 3.2 中描述的似乎是 KF 的扩展,当他们假设At,Bt是随机的,但它们在过滤时不以它们的值为条件。所以他们不假设在过滤时矩阵是已知的,而是假设它们来自具有已知均值/方差的分布。

时变系统矩阵的演化可以是随机的吗?

是的。如果你的模型是

xt=Atxt1+ηt
yt=Btxt+εt
你进一步假设AtBt本身是潜在的马尔可夫过程,那么您可能有一个适合粒子过滤的模型,特别是 Rao-Blackwellized 或边缘粒子过滤器。使用这些,将有可能获得形式分布的基于抽样的近似值
p(xty1:t),
这将被认为是过滤分布的边缘。您不必以未知数量为条件,例如Bt或者At.

我有一些快速的 C++ 代码,可以让您在“系统矩阵”上获得具有相当一般动态的模型的过滤分布。使用您自己的模型进行子类rbpf_kalman化,所有功能都已准备就绪。