在完成阅读“一维卡尔曼滤波”一章后,你应该对卡尔曼滤波的概念很熟悉了。本章我们将推导多维(多变量)卡尔曼滤波的方程。
本教程处理的是线性卡尔曼滤波(LKF),LKF假设系统动态模型是线性的。
截至目前,我们已经处理过一维问题,例如估计液体温度。但是许多动态过程有2、3甚至更多个维度。
比如,用于描述在三维空间中运行的飞机的位置的状态向量:
[xyz]
描述飞机位置和速度的状态向量是六维的:
[xyz˙x˙y˙z]
描述飞机位置、速度和加速度的状态向量则是九维的:
[xyz˙x˙y˙z¨x¨y¨z]
假设匀加速运动模型,我们可以用九个运动方程在 n−1 时刻来外插飞机在 n 时刻的状态:
{xn=xn−1+˙xn−1Δt+12¨xn−1Δt2yn=yn−1+˙yn−1Δt+12¨yn−1Δt2zn=zn−1+˙zn−1Δt+12¨zn−1Δt2˙xn=˙xn−1+¨xn−1Δt˙yn=˙yn−1+¨yn−1Δt˙zn=˙zn−1+¨zn−1Δt¨xn=¨xn−1¨yn=¨yn−1¨zn=¨zn−1
通常我们把九个线性方程用矩阵形式合写成一个方程。
首先,逐一列举这些方程很费劲,用矩阵形式来记述更简洁明了。
其次,计算机进行矩阵计算效率很高,实现矩阵版的卡尔曼滤波能得到更短的计算时间。
后续章节会用矩阵形式描述卡尔曼滤波。并且,理论部分后会紧随具有完整求解流程的数值示例。
最后一章包括两个数值示例。第一个示例里,我们设计一个无输入的六维卡尔曼滤波器;第二个示例里,我们设计一个有输入的二维卡尔曼滤波器。