【发布时间】:2015-04-05 15:55:16
【问题描述】:
我正在尝试运行标准卡尔曼滤波器算法来计算似然度,但在计算法线密度时,我不断遇到非正定方差矩阵的问题。 我进行了一些研究,发现实际上可能存在一些数值不稳定;尝试了一些数值方法来避免非正定矩阵,同时使用 Choleski 分解及其变体 LDL' 分解。 我正在使用 MatLab。 有人建议什么吗? 谢谢。
【问题讨论】:
-
贴一个最小的例子(代码)
-
在更新噪声协方差时,您使用的是
(I-KH)P还是(I-KH)P(I-KH)*P*(I-KH)' + K*R*K'? (其中P是校正前的噪声协方差,K是卡尔曼增益,H是观测模型,R是观测噪声协方差)参见 en.wikipedia.org/wiki/… 处的“约瑟夫形式” -
您的系统是否可观察?检查你的误差协方差矩阵 P 的奇异值。如果系统是不可观察的,它们将从一开始就无限增长。如果确实是数值不稳定的问题,P的最大奇异值会先减小,然后开始增大。当然,不多描述问题是不可能的。您是否将其应用于线性系统?非线性系统?
-
我会尽快更新我的问题,提供更多细节,但有件事引起了 Fegur cmets 先生的注意:我系统的观测方程只是与过渡方程的一个恒等式;也就是说,我观察到所有变量都没有测量误差。您认为这可能会导致问题吗?系统是线性的。
标签: matlab kalman-filter