Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

多变量卡尔曼滤波

在完成阅读“一维卡尔曼滤波”一章后,你应该对卡尔曼滤波的概念很熟悉了。本章我们将推导多维(多变量)卡尔曼滤波的方程。

本教程处理的是线性卡尔曼滤波(LKF),LKF假设系统动态模型是线性的。

截至目前,我们已经处理过一维问题,例如估计液体温度。但是许多动态过程有2、3甚至更多个维度。

比如,用于描述在三维空间中运行的飞机的位置的状态向量

[xyz]

描述飞机位置和速度的状态向量是六维的:

[xyz˙x˙y˙z]

描述飞机位置、速度和加速度的状态向量则是九维的:

[xyz˙x˙y˙z¨x¨y¨z]

Airplane in 3D

假设匀加速运动模型,我们可以用九个运动方程在 n1 时刻来外插飞机在 n 时刻的状态:

{xn=xn1+˙xn1Δt+12¨xn1Δt2yn=yn1+˙yn1Δt+12¨yn1Δt2zn=zn1+˙zn1Δt+12¨zn1Δt2˙xn=˙xn1+¨xn1Δt˙yn=˙yn1+¨yn1Δt˙zn=˙zn1+¨zn1Δt¨xn=¨xn1¨yn=¨yn1¨zn=¨zn1

通常我们把九个线性方程用矩阵形式合写成一个方程。

首先,逐一列举这些方程很费劲,用矩阵形式来记述更简洁明了。

其次,计算机进行矩阵计算效率很高,实现矩阵版的卡尔曼滤波能得到更短的计算时间。

后续章节会用矩阵形式描述卡尔曼滤波。并且,理论部分后会紧随具有完整求解流程的数值示例。

最后一章包括两个数值示例。第一个示例里,我们设计一个无输入的六维卡尔曼滤波器;第二个示例里,我们设计一个有输入的二维卡尔曼滤波器。

上一章 下一章

Cookies

This website uses Google Analytics third-party cookies to analyze web traffic. Read more about cookies