卡尔曼滤波器+过程噪声协方差
Posted
技术标签:
【中文标题】卡尔曼滤波器+过程噪声协方差【英文标题】:Kalman filter +process noise covariance 【发布时间】:2016-04-20 07:12:28 【问题描述】:我最近一直在研究卡尔曼滤波器。肯定涉及很多术语,需要彻底理解才能实现它并很好地优化它。在决定过程误差协方差、过程噪声协方差和测量噪声协方差时,我没有清楚的理解。 误差协方差仍然可以使用,因为它们基本上定义了实际状态和假设/估计状态的不确定性以及状态向量分量的不确定性之间的相关性。这些协方差在每次连续迭代中都会被计算出来,并随着随着时间的推移与实际状态相比估计变得更加准确,逐渐合并到最小值。
对于过程噪声和测量噪声协方差矩阵,我从假设值 3 x 3 单位矩阵作为 Q(HIT AND TRIAL)开始。结果看起来不太乐观,所以我尝试插入这个矩阵:
Q = [(T^5)/20, (T^4)/8, (T^3)/6;
(T^4)/8, (T^3)/3, (T^2)/2;
(T^3)/6, (T^2)/2, T];
(在一些论文中找到了这个矩阵,T是采样时间)
这似乎工作正常并提供了良好的结果。它起作用了,但我不清楚它背后的原因。还尝试了各种其他矩阵,例如:
Q = 0.0001*diag([0.1 0.1 0.1]);
即使这样似乎也取得了不错的效果。我在网上的一些地方读到,为 Q 选择过大的值会导致过滤器行为不端。
请帮助我如何选择“Q”矩阵。是否有一些相同的指导方针。
来到测量噪声协方差矩阵 R,在网上阅读了一下,我决定选择计算噪声协方差作为测量噪声协方差。这又导致了不准确的结果。所以,我不得不屈服于 hit and trial 方法,最终选择 R 作为 [1] 现在这很好用,但我对这种选择值的反复试验方法不满意。
如果有人可以帮助我进行澄清,那就太好了。
谢谢
【问题讨论】:
【参考方案1】:如果您仍然对这个问题感兴趣,这里就是答案。 虽然您使用卡尔曼滤波器跟踪的真实对象动力学对应于滤波器的动力学(写在矩阵 A 中),但您根本不需要协方差矩阵 Q。在这种情况下,滤波器的增益系数会逐步减小。没错,因为 filter 一步一步地越来越了解您的对象,最终根本不需要测量。 但!如果对象动力学与矩阵 A 不同,则滤波器滞后误差会因相同的原因一步一步增加。矩阵 Q 解决了这个问题。真实对象动力学和矩阵 A 之间预期差异的 Q 状态。 例如,矩阵 A 等于
(1 T; 0 1)
对于二维状态。如果您正在跟踪的对象加速,预期的差异等于
(T*T/2;T)*加速度
因此,附加预测误差等于
(T^4/4 T^3/2; T^3/2 T^2)*加速度^2
那是矩阵Q。希望对你有帮助。
【讨论】:
以上是关于卡尔曼滤波器+过程噪声协方差的主要内容,如果未能解决你的问题,请参考以下文章