问题描述
我尝试使用卡尔曼滤波器来估计位置。系统中的输入是速度,这也是我测量的。速度是不稳定的,系统运动就像一个余弦一般。所以方程是:
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)中包含速度?或者我应该改变方程式以包括加速度吗?我无法测量加速度。
解决方法
一种方法是将速度作为输入删除并将它们置于您的状态。这样,您的状态既是位置又是速度,您的过滤器将车辆的实测速度和您的位置的嘈杂估计用作观察结果。
有了这个系统,你的问题就变成了:
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 是根据测量速度计算出的位置。
它与您在维基百科上找到的here示例非常相似