简述
卡尔曼滤波器在1960年由Rudolf E Kalman提出,由于其计算量小、递归性好,以及是具有高斯误差统计的一维线性系统等原因,至今仍占据着最优估计器的地位。卡尔曼滤波器被广泛用在导航系统中,最著名的早期使用是在阿波罗卫星的导航系统。如今,卡尔曼滤波器出现了更为广泛的应用,包括:对象追踪,自动驾驶的制导、导航和控制,压力估计,平板电脑触控输出等广袤的领域。
关于卡尔曼滤波器的导出通常十分难以理解,这通常需要极高的数学技巧。但对于使用卡尔曼滤波器,通常不需要完全理解它,只需要明白它是如何工作的。
下图显示了卡尔曼滤波器的步骤:
上图中的基本变量的结构类型和类别如下:
案例
以雷达跟踪为例,雷达的建造并不平等,每一个都有不同的侦测角度,以此为其支持的系统提供不同类型的信息。在该案例中,雷达将在2D笛卡尔坐标x和y中输出其测量值。这些测量值将表示为2乘1列向量z。雷达还将提供这些测量值的相关方差-协方差矩阵R以及测量发生时的时间标签t,m表示测量参数,k表示测量的顺序。
卡尔曼滤波器基于雷达测量来估计物体的位置和速度。估计结果由4*1向量x表示,估计结果的相关方差到协方差矩阵由4*4矩阵P表示。此外,状态估计具有表示为T的时间标签。
第一步:初始化状态系统
初始化卡尔曼滤波器的系统状态因应用程序而异。在本案例中,卡尔曼滤波器使用第一个测量值初始化系统状态。
在该雷达跟踪示例中,输入测量值x仅包含位置信息。输出系统状态p将包含对象的位置和速度。
当第一次测量开始时,关于物体的唯一已知信息是该时间点的位置。系统状态估计将被设置为第一估计之后的输入位置,系统状态误差协方差将被设置为第一次测量的位置精度。
以下方程显示了在接收到第一测量之后该卡尔曼滤波器的输入和输出值:
第二步:重新初始化系统状态
系统状态估计被重新初始化,因为速度估计需要用于计算的第二位置测量。
速度是用线性近似估计的,更新后的系统状态估计将是第二次测量的位置和计算出的速度,更新的系统状态误差协方差将是第二测量的位置精度和近似的速度精度。值得注意的是,这个速度精度近似值可以在通过过滤器运行数据后进行调整。
以下方程示出了在接收到第二测量之后该卡尔曼滤波器的输入和输出值。注意状态协方差矩阵中的速度方差项。这些值被设置为104。在本例中,速度单位为米每秒。
第一二步使用第一对测量来初始化和重新初始化系统估计。卡尔曼滤波器的每个应用可以不同的做到这一点,但目标具有系统状态估计。该系统状态估计可以用卡尔曼滤波器方程更新以用于未来的测量。
第三步:预测系统状态估计
当接收到第三个测量值时,系统状态估计向前传播,以使其与测量值时间对准。进行这种对准使得测量和状态估计可以被组合。
此时,
系统模型用于执行该预测。在本案例中,使用等速线性运动模型来近似物体在一段时间内的位置变化。请注意,等速模型确实假设加速度为零。该方程指出,假设速度不变,物体的位置等于其初始位置加上指定时间段内的位移。
状态转移矩阵表示这些方程。该矩阵用于适当地传播状态估计和状态误差协方差矩阵,因为当状态估计在时间上传播时,其在未来时间步长状态的不确定性本质上是不确定的,因此误差协方差增加。
Q矩阵:
Q矩阵表示系统模型的过程噪声。系统模型是一个近似值。在系统状态的整个生命周期中,该系统模型的准确性会发生波动。因此,Q矩阵用于表示这种不确定性,并添加到状态上的现有噪声中。对于这个例子,系统的实际加速度和减速导致了这个误差。
H矩阵:
卡尔曼滤波器使用状态到测量矩阵H将系统状态估计从状态空间转换为测量空间。对于某些应用程序,这是一个0和1的矩阵。对于使用扩展卡尔曼滤波器的其他应用,H矩阵由微分方程填充。
用方程预测系统状态:
第四步:计算卡尔曼增益
卡尔曼滤波器为每个新的测量计算卡尔曼增益,该卡尔曼增益确定输入测量将在很大程度上影响系统状态估计。换句话说,当一个真正有噪声的测量来更新系统状态时,卡尔曼增益将比这个新的不准确信息更信任其当前状态估计。
这个概念是卡尔曼滤波算法的根源,也是它工作的原因。它可以识别如何正确的对其当前估计和新的测量信息进行加权,以形成最优估计。
第五步:估计系统状态和系统状态误差协方差矩阵
卡尔曼滤波器使用卡尔曼增益来估计输入测量时间的系统状态和误差协方差矩阵。计算卡尔曼增益后,它用于在两次计算中对测量值进行适当加权。
第一个计算是新的系统状态估计。第二个计算是系统状态误差协方差。
上面计算的状态估计是卡尔曼滤波器保留的唯一状态历史。因此,卡尔曼滤波器可以在具有低内存限制的机器上实现。
结论
从理论角度来看,卡尔曼滤波器是一种允许在线性动力系统中进行精确推理的算法,该线性动力系统是类似于隐马尔可夫模型的贝叶斯模型,但其中潜在变量的状态空间是连续的,并且其中所有潜在变量和观测变量都具有高斯分布。理解卡尔曼滤波器的推导过程需要极高的数学基础,但通过一些简单的例子,我们也可以在不完全理解其推导过程的前提下使用。