我最近一直在研究卡尔曼滤波器。当然,其中涉及到很多术语,需要彻底理解这些术语才能很好地实施和优化它。在决定过程误差协方差、过程噪声协方差和测量噪声协方差时,我没有明确的理解。误差协方差仍然可以使用,因为它们基本上定义了实际状态和假设/估计状态的不确定性,以及状态向量分量的不确定性之间的相关性。这些协变量在每次连续迭代中进行迭代,并随着时间的推移,与实际状态相比,估计值变得更加准确,逐渐合并到最小值。
对于过程噪声和测量噪声协方差矩阵,我从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,在网上读了一点,我决定选择一个为噪声协方差计算的矩阵作为测量噪声协方差。这再次导致了不准确的结果。所以,我不得不屈服于点击和试用的方法,最终选择了R作为[1]这目前效果很好,再次说明我对这种选择值的试错方法不满意。
如果有人能帮我澄清一下,那就太好了。
感谢
如果您仍然对这个问题感兴趣,下面是答案。当你用卡尔曼滤波器跟踪的真实物体动力学与滤波器的动力学(写在矩阵A中)相对应时,你根本不需要协方差矩阵Q。在这种情况下,滤波器的增益系数会逐步减小。这是对的,因为过滤器一步一步地更好地了解你的对象,最终根本不需要测量。但是如果对象动力学与矩阵A不同,则滤波器滞后误差因相同原因逐步增加。矩阵Q解决了这个问题。实际物体动力学和矩阵A之间的预期差的Q状态。例如,矩阵A等于
(1吨;0 1)
对于二维状态。如果你正在跟踪的物体加速,预期差值等于
(T*T/2;T)*加速度
因此,额外的预测误差等于
(T^4/4T^3/2;T^3/2 T^2)*加速度^2
这就是矩阵Q。我希望它能帮助你。