即,如果您具有位置变量(p)和速度(v)作为状态变量,并且我对p进行了低频测量,那么这也间接地给我有关v的信息(因为它是p的导数)。处理这种关系的最佳方法是什么?

A)在更新步骤中,我应该只说我已经测量了p,并且依赖于滤波过程以及我积累的状态协方差矩阵(P),以更正v? C)在我的更新/测量步骤中,我应该说我对p和
v都进行了测量,然后以某种方式将有关其相互依赖性的信息编码到度量协方差矩阵(R)中?


更多背景知识,下面是我遇到的具体情况问题:

我正在使用一个系统,该系统要估计对象的位置(p),并且我经常测量加速度(a)和不频繁地测量p高噪声。

我目前正在与使用扩展卡尔曼滤波器执行此操作的代码库,将其保留为状态变量p和v。在每次加速度测量之后运行“预测”步骤,在该步骤中,它使用测得的a和增量时间来积分和预测新的p和v v。然后,它对每个(不频繁的)p测量运行一个“更新” /“测量”步骤。错误的v。显然,对a的进一步测量永远不会纠正此问题,但是对p的测量应该摆脱此错误。而且,实际上,这似乎确实发生了……但是非常缓慢。

我在想这可能部分是因为p在此系统中影响v的唯一方法是通过协方差矩阵P-即上面的方法A)-这似乎是间接的。我想知道是否会有更好的方法将我们对p和v之间的这种关系的知识整合到模型中,以便对p的测量可以更快地校正v。 br />

评论

稍后,我将尝试返回更长的答案,但我对您的问题的立即反应是A)是,B和C)可能不是。您是否可以通过某种方式检测$ \ mathbf {a} $的高误差度量?如果您可以检测到异常值,则可以将其丢弃以减轻其影响。如果系统位置的采样率与动态相比太低,则可能很难获得出色的性能。

另一件事;在状态转换矩阵中表示的$ \ mathbf {p} $和$ \ mathbf {v} $之间应该存在隐式关系。具体来说,应该表示$ \ mathbf {p_ {k + 1}} = \ mathbf {p_k} + \ mathbf {v_k} \ Delta t $或类似值。

#1 楼

在理想的世界中,您将拥有正确的模型并使用它。
对于您而言,该模型并不完美。
但是,建议的步骤基于您对过程的了解-您应该使用动态模型矩阵将其合并到过程方程中:


根据您的知识正确构建了给定的F矩阵的经典正确方法。
“额外”预测步骤不会产生任何结果,因为$ {F} _ {ik} = {F} _ {ij} {F} _ {jk} $,如果缩短时间范围,则应相应地更改$ Q $和$ R $应该使您位于小步链的末尾,就像P_k_k-1。
如果不测量V,则必须以某种方式“估计”它。但是根据定义,如果您的案例属于使用Kalman滤波器的Kalman假设,则将产生最佳结果。

总而言之,请坚持使用“经典”。