卡尔曼滤波
一、卡尔曼滤波预测的机理
卡尔曼滤波器用反馈控制的方法估计过程状态:滤波器估计过程某一时刻的状态,然后以(含噪声的)测量变量的方式获得反馈。因此卡尔曼滤波器可分为两个部分:时间更新方程和测量更新方程。时间更新方程负责及时向前推算当前状态变量和误差协方差估计的值,以便为下一个时间状态构造先验估计(此时即为预测)。测量更新方程负责反馈——也就是说,它将先验估计和新的测量变量结合以构造改进的后验估计。
时间更新方程也可视为预估方程,测量更新方程可视为校正方程。最后的估计算法成为一种具有数值解的预估——校正算法。
二、被估计的过程信号
卡尔曼滤波器用于估计离散时间过程的状态变量x。这个离散时间过程由以下离散随机差分方程描述:
Xk = AXk-1 + Buk-1 + wk-1, (1.1)
定义观测变量z,得到量测方程:
zk = HXk + vk, (1.2)
随机信号wk和vk分别表示过程激励噪声和观测噪声。假设它们为相互独立,正态分布的白色噪声:
p(w) ~ N(0,Q), (1.3)
p(v) ~ N(0,R), (1.4)
实际系统中,过程激励噪声协方差矩阵Q和观测噪声协方差矩阵R可能会随每次迭代计算而变化。
三、卡尔曼滤波器算法
如图所示,卡尔曼滤波器循环更新图。时间更新方程将当前状态变量作为先验估计及时地向前投射到测量更新方程,测量更新方程校正先验估计以获得状态的后验估计。时间更新方程将状态估计 x−k 和协方差估计P−k 从k - 1时刻向前推算到k 时刻。测量更新方程首先做的是计算卡尔曼增益 Kk 。其次便测量输出以获得 zk ,然后产生状态的后验估计。最后估计状态的后验协方差。计算完时间更新方程和测量更新方程,整个过程再次重复。上一次计算得到的后验估计被作为下一次计算的先验估计。
四、算法实例
利用卡尔曼滤波对某地一交叉口检测器的交通流量进行了预测,发现在交通流量波动较大的情况下,卡尔曼滤波存在预测延迟的情况,即时滞性问题。出现该问题不仅与建立的模型相关,还与数据本身随机性相关。如果数据本身波动性不大,改变较平缓,采用卡尔曼滤波预测的效果还是不错的。