首页 > 解决方案 > 使用卡尔曼滤波器估计位置

问题描述

我尝试使用卡尔曼滤波器来估计位置。系统中的输入是速度,这也是我测量的。速度是不稳定的,系统运动一般像余弦。所以方程是: xnew = Ax + Bu + w,其中:

x= [x y]'
A = [1 0; 0 1]
B= [dt 0; 0 dt]
u=[ux uy]
w noise

正如我所提到的,我测量的是速度。我的问题是矩阵 C 在方程中的样子:

y = Cx + v

我应该在估计状态(矩阵A)中涉及速度吗?或者我应该改变方程以包括加速度?我无法测量加速度。

标签: positionkalman-filterestimation

解决方案


一种方法是将速度作为输入丢弃并将它们置于您的状态。这样,您的状态既是位置又是速度,并且您的过滤器将测量的车辆速度和对您位置的嘈杂估计用作观察。

有了这个系统,你的问题就变成了:

x = [x_e y_e vx_e vy_e]'
A = [1 0 dt 0; 0 1 0 dt; 0 0 1 0; 0 0 0 1]
w noise

x_e、y_e、vx_e 和 vy_e 是状态的估计值

B 被删除,因为 u 是 0。然后你有

y = Cx + v
with C = [1 0 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1]

其中和y = [x + dt*vx ; y + dt*vy ; vx ; vy]x、y、vx 和 vy 是速度的测量值,而 x 和 y 是使用测量速度计算的位置。

它与您将在 Wikipedia 上找到示例非常相似


推荐阅读