算法介绍及实现——卡尔曼滤波

本文主要介绍卡尔曼滤波的推导过程及建模步骤,是网站的学习笔记 。本文主要是通过例子来引出卡尔曼滤波的建模思想及算法步骤 。
参考网站:(这个网站讲得真的很详细很清楚,层层递进,逻辑清晰)
目录
一、引言
【算法介绍及实现——卡尔曼滤波】1)引例1——运动状态建模
二、g-h(-k)滤波器
1)引例2——黄金称重
2)引例3——一维模式下的等速飞机追踪
3)引例4——匀加速飞机轨迹预测
三、一维卡尔曼滤波器
1)引入观测噪声( Error)
2)引入过程噪声( Noise)
3)引例5
四、多维卡尔曼滤波器
1)多维情况下的状态外推方程
2)多维情况下的协方差外推方程
3)多维情况下的状态更新方程
4)协方差更新方程
5)卡尔曼增益方程
6)引例6
7)引例7
一、引言1)引例1——运动状态建模
基于一个匀加速直线运动对物体的位置进行预测,设当前为X0(当前状态),X为预测位置 。若是物体做理想的匀加速直线运动,则可使用下式进行预测:
将其扩展到三维空间中有:
上述的方程反应了输入数据(位移或坐标)对输出数据之间的关系,这样描述上一个系统状态和下一个系统状态之间关系的方程称为动态模型或状态空间模型 。
但是,实际情况不会是抽象分析中的理想环境,还包括各种各样的误差影响,若想在实际情况中获得高精度的预测,就必须要将噪声考虑其中 。此处主要将噪声分为两类:
测量噪声:是指在测量过程中的噪声,比如在上述引例中,需要对速度和时间进行测量,而对这些量的观测存在一个随机误差,测量中包含的误差称为测量噪声 。(在建模过程中随机误差即测量噪声服从正态分布)
过程噪声:由于外部环境的原因,使得物体并非做预想的严格的匀速直线运动(即由于外界环境影响,物体运动并非完全与运动方程对齐),这种动态模型的误差(不确定性)称为过程噪声
二、g-h(-k)滤波器1)引例2——黄金称重
对黄金进行称重 。假设现在有一块黄金,每日对其进行称重,称重过程(测量过程)只包含随机误差,不包含系统误差,那么每日的黄金重量可能如下:
连续观测n天,我们选取前n天的平均值(每天的观测值记为Zi)作为第n天黄金重量的估计值 。
第一个下标表示对第n天的估计值,第二个下标表示基于多少天的数据,若基于前n-1天的观测值对第n天的数据进行估计则记为Xn,n-1:
由于我们认定黄金的重量是恒定不变的,所以状态空间模型(基于当前状态值对下一状态的预测)为:
由于预测时需要再重新累加求和,由此我们可以对式子进行改写:
对上式证明如下:
再顾及状态空间模型有:
上述式子可以描述为:
该方程被称为状态更新方程,其中的(- Value of thestate)被称为测量残差 。其也表示了基于该时刻预测值和观测值获得该时刻的估计值的方法 。其中1/n称为卡尔曼增益,在本例子中会随着迭代而改变 。所以可写为如下方程:
——数值示例(搬运于网站,看不清可直接跳转网页)The alpha - beta - gamma()
······
2)引例3——一维模式下的等速飞机追踪
在一维对等速飞机进行追踪 。有一雷达对飞机进行跟踪,如下图:
Xn表示时间n内飞机的飞行距离,飞机的速度可以用微分方式获得:
则其动态模型为:
上述方程组被称为过渡方程或预测方程(也称状态外推方程),也是卡尔曼五个方程之一,这个方程组完成由本状态向下一状态的预测 。