自适应卡尔曼滤波
卡尔曼滤波发散的原因
如果卡尔曼滤波是稳定的, 随着滤波的推进, 卡尔曼滤波估计的精度应该越 来越高,滤波误差方差阵也应趋于稳定值或有界值。 但在实际应用中, 随着量测 值数目的增加, 由于估计误差的均值和估计误差协方差可能越来越大, 使滤波逐 渐失去准确估计的作用,这种现象称为卡尔曼滤波发散。
引起滤波器发散的主要原因有两点: (1)描述系统动力学特性的数学模型和噪声估计模型不准确,不能直接真 实地反映物理过程, 使得模型与获得的量测值不匹配而导致滤波发散。 这种由于 模型建立过于粗糙或失真所引起的发散称为滤波发散。
(2)由于卡尔曼滤波是递推过程,随着滤波步数的增加,舍入误差将逐渐 积累。如果计算机字长不够长, 这种积累误差很有可能使估计误差方差阵失去非 负定性甚至失去对称性,使滤波增益矩阵逐渐失去合适的加权作用而导致发散。 这种由于计算舍入误差所引起的发散称为计算发散。
针对上述卡尔曼滤波发散的原因,目前已经出现了几种有效抑制滤波发散 的方法,常用的有衰减记忆滤波、 限定记忆滤波、 扩充状态滤波、 有限下界滤波、 平方根滤波、和自适应滤波等。 这些方法本质上都是以牺牲滤波器的最优性为代 价来抑制滤波发散,也就是说,多数都是次优滤波方法。
自适应滤波
在很多实际系统中,系统过程噪声方差矩阵Q和量测误差方差阵R事先是不 知道的,有时甚至连状态转移矩阵 或量测矩阵H也不能确切建立。如果所建立
的模型与实际模型不符可能回引起滤波发散。 自适应滤波就是这样一种具有抑制 滤波发散作用的滤波方法。 在滤波过程中, 自适应滤波一方面利用量测值修正预 测值,同时也对未知的或不确切的系统模型参数和噪声统计参数进行估计修正。 自适应滤波的方法很多,包括贝叶斯法、极大似然法、相关法与协方差匹配法, 其中最基本也是最重要的是相关法,而相关法可分为输出相关法和新息相关法。
在这里只讨论系统模型参数已知,而噪声统计参数Q和R未知情况下的自适 应滤波。由于Q和R等参数最终是通过增益矩阵 K影响滤波值的,因此进行自适 应滤波时,也可以不去估计 Q和R等参数而直接根据量测数据调整 K就可以了。
输出相关法自适应滤波的基本途径就是根据量测数据估计出输出函数序列
{C k},再由{C讣推算出最佳增益矩阵K,使得增益矩阵K不断地与实际量测数据
{C k} 相适应。
Sage-Husa自适应卡尔曼滤波是在利用量测数据进行递推滤波时, 通过时变 噪声估计估值器,实时估计和修正系统噪声和量测噪声的统计特性,从而达到降 低系统模型误差、抑制滤波发散提高哦滤波精度的目的。
xk k,k 1Xk 1 wk
Zk HkXk Vk
E(wQ qk,E(WkW:) Qk 用
E(vJ 讥2皿)Rk ©
E(WkV【)0
Sage-Husa自适应卡尔曼滤波算法可描述为
1 b
dk 百,Ob 1为遗忘因子。
1 bk 1
如果系统状态变量的维数比较高,而 Sage-Husa自适应滤波算法中又增加 了对系统噪声统计特性的计算,计算量将大大增加,实时性也将难以得到保证。 Xk Xk,k 1 K k~k
Xk,k 1 k,k 1?k 1 qk 1
Zk Zk Hk&k1 ?
Kk Pk,k1H:[HkPk,k1HT Rk] 1
Pk,k k,k R 1 k,k 1 Qk 1
Pk (I Kk H k ) R,k 1
其中
・ /、 ?、RK、qk和Qk由以下时变噪声统计估值器获得:
? 1 (1 dk)? dk(Zk 1 Hk 1?k 1,k)
Rk1 (1 dk)R dk(Zk 1Zk 1 H k 1 Fk 1,kH k 1)
(?k 1 (1 dk)q>k dk(xk 1 k 1,kXk)
(1 dQQk dk(Kk1Zk1zkr1K:1 Pk 1 k 1,k Pk k 1,k)
式中:
除此之外,对于阶次较高的系统,Sage-Husa自适应滤波算法中Rk和Qk的在线
估计有时会由于计算发散失去半正定性和正定性而出现滤波发散现象,此时 Sage-Husa自适应滤波算法的稳定性和收敛性不能完全保证。
基于极大似然准则的自适应卡尔曼滤波,通过系统状态方差阵和量测噪声方 差阵实时估计系统噪声统计特性的变化,以保证滤波器更好地适应这种变化。极 大似然估计从系统量测量出现概率最大的角度估计, 其特点是不仅考虑新息的变 化,而且考虑新息协方差矩阵Cvk的变化。它的量测噪声协方差矩阵F?和系统噪
声协方差矩阵(3为:
Xk Xk ^’k 1 Kkvk
1 k T Cvk Vi Vi N i k N 1
式中:Vk Zk Zk,k 1,N为平滑窗口的宽度。
扩展卡尔曼滤波
最初提出的卡尔曼滤波基本理论只适用于状态方程和量测方程均为线性的 随机线性高斯系统。但是大部分系统是非线性的,其中还有许多事强非线性的。 非线性估计的核心就在于近似,给出非线性估计方法的不同就在于其近似处理的 思想和实现手段不同。近似的本质就是对难以计算的非线性模型施加某种数学变 换,变换成线性模型,然后用Bayes估计原理进行估计。进一步说,非线性变换到 线性变换主要有两种实现手段,一种是Taylor多项式展开,一种是插值多项式展 开。
Bucy和等人致力于研究将经典卡尔曼滤波理论扩展到非线性随机系统滤波 估计中,提出了离散非线性随机系统扩展卡尔曼滤波 (Extended kalman filter,
以下简称EKF)。EKF是传统非线性估计中的代表,其基本思想是将非线性状态函 Rk Cvk H kPk,k 1 H k
3k k
Xi
k N 1 T Xi k,k 1P 1 k,k 1
数和量测函数进行局部线性化,即进行一阶 Taylor多项式展开,然后应用线性
系统Kalman滤波公式。
非线性离散系统状态方程和观测方程的一般形式如下所示
Xk 1 f(Xk,Uk) kWk
Zk g(Xk,Uk) Vk
式中:Uk Rr为输入向量;Wk Rp和Vk Rq均为高斯白噪声,且互不相关, 其统计特性为:
E(Wk) 0,Cov(Wk,Wj) Qk kj
其中,E(Vk) 0,Cov(Vk,Vj) Rk kj
Cov(wk ,vj) 0
式中,Qk为过程激励噪声协方差矩阵,Rk为观测噪声协方差矩阵。
f (Xk 1,Uk 1)是一个非线性状态转换函数,g(Xk 1,Uk 1)是一个非线性量测函数。每
一个时刻点,根据一阶泰勒展开将f (xk 1,uk 1), g(xk 1,uk 1)线性化,即将非线性状
态函数f(;)和非线性量测函数g(;)围绕滤波值展开泰勒级数,并略去二阶以上
项,得到
和式(1-3 )可以得到非线性系统线性化后只与状态变量有关的表达式,如下
式1-4中,注意到f(Xk,Uk) ?kXk并非Xk的函数,g(xk,Uk) H?kXk并非Xk的
函数,根据1-4近似结果,应用上节的Kalman滤波器计算可以得到EKF迭代算法: f(Xk,Uk) f (Xk,Uk) f(Xk,Uk)
Xk Xk Xk ( Xk 丘) 1-2
g(Xk,Uk) g(Xk,Uk) g(Xk,Uk)
Xk Xk 乂(Xk Xk) 1-3
定义?k f (Xk,Uk)
Xk Xk Xk ,Hk g(Xk'Uk)
Xk Xk Xk ,根据式(1-1 )、式(1-2)
Xk 1
Zk ?kXk [ f (?k,Uk)
HkXk [g(Xk,Uk) F?kXk] Vk k xk ] k wk 1-4
无迹卡尔曼滤波(UKF
EKF 是一种次优非线性高斯滤波器,它采用对非线性函数进行线性化 近似的方法,来计算状态分布经非线性函数传递之后的特性。尽管EKF得到了广 泛的应用,但它依然存在自身无法克服的理论局限性 :①要求非线性系统状态函 数和量测函数必须是连续可微的, 这限制了 EKF的应用范围;②对非线性函数的 一阶线性化近似精度偏低,特别地,当系统具有强非线性时, EKF估计精度严重
下降,甚至发散;③需要计算非线性函数的雅克比矩阵, 容易造成EKF数值稳定
性差和出现计算发散。
为了克服上述EKF的缺陷,能够以较高的精度和较快的计算速度处理 非线性高斯系统的滤波问题, Julier等人根据确定性采样的基本思路,基于 Unscented变换(UT 提出了 Unscented卡尔曼滤波(UKF。
与EKF类似,UKF仍继承了卡尔曼滤波器的基本结构,不同之处在于 UKF用 Un see nted变换取代了 EKF中的局部线性化。UKF仍假设随机系统的状态 必须服从高斯分布,但取消了对系统模型的限制条件, 也就是说,不要求系统是 近似线性的,同时,UKF不需要计算雅克比矩阵,因此不要求状态函数和量测函 数必须是连续可微的,它甚至可以应用于不连续系统。 可以证明:不论系统非线 性程度如何,UT变换理论上至少能以三阶泰勒精度逼近任何非线性高斯系统状 态的后验均值和协方差,因此
UKF的理论估计精度优于EKF
UK法首先要构造Sigma散点集,设状态向量为n维,5?k 1为时刻k-1的 定义?k f(Xk,Uk)
Xk 4 g(Xk,Uk)
Xk Xk , H k Xk Xk Xk ,可得
滤波方程初始条件 Xo E(Xo), P° var( Xo)
状态先验估计值 Xk,k 1 f(Xk
误差协方差先验估计值 Pk,k 1 k,k R 1 k,k 1 k,k 1Qk 1 k,k 1
增益矩阵 Kk Pk,kiH:[HkPk,kiHT Rk] 1
状态后验估计值Xk ?k,k 1 Kk[zk g(Xki,uk)]
误差协方差后验估计值 R (I KkHk)Pk,k i
状态向量估计值,Pk i为该时刻状态向量的协方差矩阵,2n+1维的Sigma点集可
以表示为:
X0,k 1
Xi ,k 1 ? 1
? 1 (,(n )R,k 1 )i , i=1,2 , ... , n
X n,k 1 Xk 1 (. (n )R,k 1 )i
对应于 i的一阶二阶权系数为
m /(n ) i 0
Wi
1/2(n ) i 0
wc /(n ) 1 2 ・ i 0
1/2( n ) i 0
其中, (n ) n
参数 决定第i个Sigma点在状态均值Xk 1周围的扩展空间,是取值区间为
[,1] 的常数; 为冗余量; 为与状态向量的先验分布相关的参数,对
咼斯分布, =2为最优。
由时刻k-1的Xk1和Pk 1来计算Sigma点集x—U 0,1…丄),通过非线性函
由Xi,k/k 1可得状态向量预测值Xk/k1及误差协方差阵
Fk/k 1
同理,利用Xk 1和R 1按照前面的采样策略来计算Sigma点集
Xi,k 1 (i 0,1..., L),通过非线性量测函数hk()斤传播为 第你1,由i,k/k 1可得输数 fk 1 ( ) qk 1 传播为 xi,k/k 1 ,
xi,k/k 1 fk 1 (xi,k 1 ) qk 1 i 0,1,..., L
Xk/k 1 L
Wi xi ,k/k 1
i 0 Wi fk 1 (xi,k 1 ) qk 1
i 0
Pk/k 1 L c
Wi (xi,k/k 1
i 0 ?k/k 1)(xi,k/k 1 Xk/k 1) Qk 1