无迹卡尔曼滤波
由于扩展卡尔曼滤波可能存在线性化误差,且一般情况下雅克比矩阵不易实现,增加了算法的计算复杂度。
无迹卡尔曼滤波不采用泰勒展开实现非线性系统线性化,而是采用无迹变换 Unscented Transform来处理均值和协方差的非线性传递问题。(UKF算法是对非线性函数的概率密度分布进行近似,用一系列确定样本来逼近状态的后验概率密度,而不是对非线性函数进行近似,不需要对雅克比矩阵进行求导。)
无迹变换
(1)原状态分布中按某一规则选取一些采样点(其均值和方差等于原状态分布的均值和方差)
(2)将点带入非线性方程中(求取变换后的均值和协方差)
以对称分布采样的UT变换为例。设一个非线性变换。状态向量
为
维随机变量,已知其均值
和方差
。通过UT变换得到2n+1个sigma点和相应的权值
。
(1)计算2n+1个sigma点,即采样点
表示矩阵方根的第
列。注意应确保
为半正定矩阵。
设:
则:
,
——
与
对称,合并起来就是9个sigma点:
sig1 sig2 sig3 sig4 sig5 sig6 sig7 sig8 sig9
(2)计算采样点相应的权值
将9个sigma点带入非线性方程得到新的sigma点:
假设得到
sig1 sig2 sig3 sig4 sig5 sig6 sig7 sig8 sig9
定义权值,
可求得下一个点的先验值(经过UT变换后得到的先验值)
,
以上是无迹变换算先验值的整个过程。
无迹卡尔曼滤波算法:
非线性系统:
步骤:
————1、经过UT变换求得sigma采样点及其权值
————2、计算2n+1个sigma点集的一步预测
————3、系统状态量的一步预测(相当于KF/EKF的先验值)
——UT变换后得到的新的状态值
————4、再次使用UT变换,产生新的sigma点集
————5、新的sigma点集带入观测方程,得到预测的观测量
————6、通过加权求得观测量新的均值及协方差
——UT变换后得到的新的观测值
————7、 计算卡尔曼增益
————8、系统的状态更新和协方差更新