我想使用卡尔曼滤波器来估计基于噪声位置测量和噪声加速度测量以未知方式上下移动的物体的高度和垂直速度。每个测量的噪声与另一个测量无关。我认为/希望这听起来像是卡尔曼滤波器的良好使用。
我尝试使用javascript库,可以在这里找到:https://github.com/itamarwe/kalman
我已经阅读了很多关于卡尔曼滤波器如何工作的信息,我只是在尝试将矩阵与库中的内容匹配时遇到了问题。下面是库中使用的矩阵列表,该矩阵已发布到与此类似的另一个问题中,以及我关于我认为应该使用的内容的注释。
这是你试图估计的向量。
我认为x会等于[位置;速度;加速度]
P -是估计的协方差矩阵,意味着估计的不确定性。它也在卡尔曼滤波器的每一步中与x一起被估计。
我会使用[1,00; 0,1,0; 0,0,1],我可能非常了解起始位置和速度,所以也许这些应该更小。
F - 描述 X 如何根据模型发展。通常,模型为 x[k] = Fx[k-1] w[k]。在您的情况下,F 可能是单位矩阵(如果您希望角加速度相对平滑)或零矩阵(如果您预计角加速度完全不可预测)。在任何情况下,w 都表示您期望加速度随步骤变化的程度。
我认为F=[1,dt,dt2/2;0,1,dt;0,0,1]当你乘以x*F时,如果没有改变,它会给你下一个状态。我在200hz下采样,所以我想我应该用.005代替dt。
w -描述过程噪声,即模型与“完美”模型的偏离程度。它被定义为协方差矩阵为q的零均值多元正态分布。
我不知道在这里用什么。我的模型将受到移动物体的未知外力的干扰。我有很多关于将要施加的加速度/力范围的数据。有没有一种方法可以让我用它来做Q?
上面的所有变量都定义了您的模型,这意味着您正在尝试估计什么。在下一部分中,我们将讨论观察的模型——为了评估模型,您测量了什么。
这是你测量的。
这将是[测量的高度,测量的加速度]。快速提问,如果这些测量具有不同的频率,通常如何处理?
H - 描述模型与观测值之间的关系。z[k]=H[k]x[k] v[k].
我认为这应该是[1,00; 0,0,1],因为我测量位置和加速度。
v-是测量噪声,假设为具有协方差R[k]的零均值高斯白噪声。在这里,您需要测量加速度计的噪声,并计算噪声协方差矩阵。
不知道如何解决这个问题。我可以找到每个传感器的标准偏差,R是否只是[stdevHeight,0;0,stdevAccel]?这只是我的一个完全猜测。
我希望非常有帮助的ita是周围的帮助一点。
非常感谢,
斯科特
关于您的问题: