-
1 基础知识
-
[1] 卡尔曼增益最后会变成定值吗?
[2] 如何通俗并尽可能详细解释卡尔曼滤波?
[3] 卡尔曼滤波增益综述报告
[4] Understanding the Basis of the Kalman Filter
[5] 奇异值的物理意义是什么?
[6] 矩阵的奇异值与特征值有什么相似之处与区别之处?
[7] 欧拉角与万向节死锁
-
2 卡尔曼滤波算法简介
-
Kalman Filter是一个高效的递归滤波器,它可以实现从一系列的噪声测量中,估计动态系统的状态。广泛应用于包含Radar、计算机视觉等在内的工程应用领域,在控制理论和控制系统工程中也是一个非常重要的课题。本文介绍了卡尔曼滤波增益的由来,以及它在卡尔曼滤波理论中的作用,着重介绍了卡尔曼滤波增益的理论意义。由卡尔曼滤波增益可以更深入的理解卡尔曼滤波,把它更好地应用于实际中。
1960年卡尔曼发表了用递归方法解决离散数据线性滤波问题的论文A New Approach to Linear Filtering and Prediction Problems,在这篇文章里一种克服了维纳滤波缺点的新方法被提出来,这就是我们今天称之为卡尔曼滤波的方法。卡尔曼滤波应用广泛且功能强大,它可以估计信号的过去和当前状态,甚至在即使并不知道模型的确切性质时,也能估计将来的状态。
其基本思想是以最小均方误差为最佳估计准则,采用利用前一时刻信号与噪声的状态空间模型获取的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值。算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。
对于解决很大部分的问题,它是最优、效率最高甚至是最有用的。它的广泛应用已经超过30年,包括机器人导航、控制、传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别、图像分割、图像边缘检测等等。
-
3 卡尔曼滤波直观描述
-
Kalman Filter算法运用场景。问题描述:存在两个功能相同但性能不同的传感器,那么应该如何融合两个传感器的测量值。解决办法:加权平均,但是无法很好的确定加权平均参数。卡尔曼滤波算法就是解决该问题的方法。
形式化描述:存在一个传感器和一个对应的模型,如何解决传感器测量值与模型计算值的加权平均融合?假设模型是简化的,即 xk+1=f(w1xk+(1−w1)x^k) ,其中 xk(s1,s2,...,sn) , si 是影响模型的状态变量,现假设状态分量受到的不确定因素都服从正态分布。在 k 时刻,模型估计值为xk ,传感器测量值为 x^k ,Kalman Filter算法能够确定概率最大化下的综合值 x¯k=w1xk+(1−w1)x^k) ,即确定 w1 ,同时此时算出的综合值也服从正太分布。定义Kalman增益为 x¯k 的均值,定义步长 Δt=tk+1−tk 。
假设存在2个传感器 S1,S2 ,对应的测量值为 x^1,x^2 ,传感器测量噪音协防差为 Σ1,Σ2 ,1个状态估计模型 M (假设状态转移为一步转移),对应的估计值为x ,状态转移协防差矩阵为 Σ 。Kalman Filter算法求解步骤如下:
(1)状态估计模型初始值为 x0
(2)考虑第 k 步,状态估计模型估计值为xk ,测量值为 x^1k,x^2k ,Kalman增益 x¯k 为估计值与测量值的融合。针对该问题,需要进行两次融合:传感器测量融合、传感器测量与状态估计模型融合,融合过程中的加权参数由彼此的协防差确定。在融合值概率最大情况下求得Kalman增益,同时融合状态也服从高斯分布。
(3)进入 k+1 步,利用状态估计模型求 xk+1 ,即 xk+1=f(x¯k) 。
-
4 卡尔曼滤波算法
-
状态转移方程或离散随机差分方程如下:
xk=An×nxk−1+Bnuk−1+wk−1(1)
测量方程如下:
zk=Hm×nxk+vk(2)
随机信号 wk 和 vk 分别表示过程激励噪声和观测噪声,假设它们为相互独立且是高斯白噪声,即:
p(w)∼N(0,Q)(3)
p(v)∼N(0,R)(4)
实际系统中, 过程激励噪声协方差矩阵 Q 和观测噪声协方差矩阵 R 可 能会随每次迭代计算而变化,但本文假设它们是常数。
定义:已知第 k 步以前状态情况下第k 步的先验状态估计为 x¯^k (−代表先验,ˆ代表估计);已知测量变量 zk 时第 k 步的后验状态估计为x^k ;由此定义先验估计误差 e¯k 和后验估计误差 ek 如下:
e¯k=xk−x¯^k(5)
ek=xk−x^k(6)
那么先验估计误差的协方差 P¯¯¯k 和后验估计的协方差 Pk 为:
P¯¯¯k=E[e¯ke¯kT](7)
Pk=E[ekekT](8)
卡尔曼滤波器的表达式:由先验估计 P¯¯¯k 和加权的测量变量 zk 及其预测 Hxk 之差的线性组合构成后验状态估计 Pk :
x^k=x¯^k+K(zk−Hx¯^k)(9)
其中测量变量及其预测之差 zk−Hx¯^k 被称为测量过程的革新或残余,残余反映了预测值和实际值之间的不一致程度;矩阵 Km×n 叫做残余的增益或混合因数,作用是使(8)式中的后验估计误差协方差最小。
在此忽略矩阵 K 的详细推导,仅给出计算的大致步骤:
(1)将(9)式代入ek 的定义式(6),再将 ek 代入(8)式,求得后验估计的协方差 Pk ;
(2)将(8)式中的 Pk 对 K 求导并使其一阶导数为零,从而解得矩阵K 的值;矩阵 K 的一种表示形式如下:
Kk=P¯¯¯kHTHP¯¯¯kHT+R(10)
其中 H 矩阵为常量,Pk 与过程激励噪声的协方差矩阵 Q 有关;R 为测量噪声的协方差矩阵。
-
5 卡尔曼增益的物理意义
-
取值范围: Kk∈[0,H−1] ,即: limR→0=H−1 , limP¯k→0=0 ,因此卡尔曼滤波增益是一个决定了最优估计组成比例的“调节器”。
具体地:当 R→0 时 limR→0=H−1 ,那么 x^k=x¯^k+H−1(zk−Hx¯^k) ,则可以看出系统表现为完全取测量值作为状态的后验估计值,而系统的先验状态估计完全被抛弃;反之 P¯¯¯k→0 ,那么 limP¯k→0=0 ,即: Q=0 ,则可以看出系统完全抛弃测量值,取先验估计值。
-
6 卡尔曼增益的理论意义
-
被估计值系统的第 k+1 时刻的状态值 xk 的卡尔曼滤波值 x^k ,就是 xk 的无偏最小方差估计。同时,滤波误差方差矩阵 Pk 是基于测量值 z1,z2,z3 等等的 xk 的所有线性估计中最小的均方误差阵。
对于一维的情况,测量噪声协方差矩阵 R 增大时,增益矩阵K 变小。这表明,如果测量噪声越大,该增益取的越小,以减弱测量噪声对估计值的影响,从而使预测值所占最后的结果比重加大。
由(10)式还可以看出,当 P¯¯¯k 或者 Q 矩阵变小时,Pk 也变小(此处可以从推导公式中看出,本文省略), Kk 矩阵也减小。从直观上看,这是自然的,因为 P 变小表示估计值或者预测值比较好,又因为Q 变小表示状态转移随机波动减小。所以新的测量值对状态的估计值的矫正影响减弱,于是增益矩阵K应当变小。