目录
- 为什么需要无迹卡尔曼滤波,与扩展卡尔曼滤波的区别?
- 无迹卡尔曼滤波的核心思想与假设条件
- 算法核心:无迹变换与滤波流程
- 典型应用场景与优势
- 下期预告
一、为什么需要无迹卡尔曼滤波,与扩展卡尔曼滤波的区别?
在复杂非线性系统中,扩展卡尔曼滤波(EKF)通过泰勒展开进行线性化近似的方法存在固有缺陷。例如,在无人机大角度机动或机器人高维动力学建模中,非线性函数的高阶项会导致线性化误差显著增大,甚至引发滤波发散。EKF 的雅可比矩阵计算不仅依赖系统可导性,还对初始误差敏感,难以保证全局最优性。
无迹卡尔曼滤波(UKF)的诞生正是为了突破这些限制。它通过无迹变换(Unscented Transformation, UT)直接近似概率分布,而非对函数进行线性化。具体而言,UKF 通过选取一组 sigma 点(确定性采样点)来捕获状态分布的均值和协方差,利用非线性函数直接传播这些点,再通过加权统计得到新的均值和协方差。相较于 EKF,UKF 的核心优势在于:
- 无需线性化:避免泰勒展开带来的截断误差,适用于强非线性系统;
- 更高精度:在二阶以内的非线性系统中能精确匹配均值和协方差;
- 鲁棒性更强:对初始误差和模型不确定性具有更好的适应性。
二、无迹卡尔曼滤波的核心思想与假设条件
(一)核心思想:无迹变换
UKF 的核心是通过无迹变换近似概率分布的传播。对于状态向量 x,首先在当前均值 x ˉ \bar{x} xˉ周围选取 2n+1 个 sigma 点(n 为状态维度),并赋予相应权重。这些点通过非线性函数 f (x) 和 h (x) 直接传播后,再通过加权平均得到新的均值和协方差。这种方法能更准确地保留非线性变换后的分布特性。
(二)假设条件
- 高斯噪声模型:与 EKF 相同,假设系统噪声和观测噪声服从高斯分布;
- 局部马尔可夫性:当前状态仅依赖前一状态和控制输入;
- 状态分布可近似性:通过 sigma 点集能够有效近似状态的概率分布。
三、算法核心:无迹变换与滤波流程
(一)sigma 点选取与权重计算
sigma 点生成:
χ k − 1 ∣ k − 1 ( 0 ) = x ^ k − 1 \chi_{k - 1|k - 1}^{(0)} = \hat{x}_{k - 1} χk−1∣k−1(0)=x^k−1
χ k − 1 ∣ k − 1 ( i ) = x ^ k − 1 + ( n + λ ) P k − 1 i , i = 1 , … , n \chi_{k - 1|k - 1}^{(i)} = \hat{x}_{k - 1} + \sqrt{(n + \lambda)P_{k - 1}}_i, i = 1, \ldots, n χk−1∣k−1(i)=x^k−1+(n+λ)Pk−1i,i=1,…,n
χ k − 1 ∣ k − 1 ( i ) = x ^ k − 1 − ( n + λ ) P k − 1 i , i = n + 1 , … , 2 n \chi_{k - 1|k - 1}^{(i)} = \hat{x}_{k - 1} - \sqrt{(n + \lambda)P_{k - 1}}_i, i = n + 1, \ldots, 2n χk−1∣k−1(i)=x^k−1−(n+λ)Pk−1i,i=n+1,…,2n
其中 λ = α 2 ( n + κ ) − n \lambda = \alpha^2(n + \kappa) - n λ=α2(n+κ)−n为缩放参数, α \alpha α控制 sigma 点的扩散程度, κ \kappa κ为辅助参数。
权重分配:
w m ( 0 ) = λ n + λ w_m^{(0)} = \frac{\lambda}{n + \lambda} wm(0)=n+λλ
w c ( 0 ) = λ n + λ + ( 1 − α 2 + β ) w_c^{(0)} = \frac{\lambda}{n + \lambda} + (1 - \alpha^2 + \beta) wc(0)=n+λλ+(1−α2+β)
w m ( i ) = w c ( i ) = 1 2 ( n + λ ) , i = 1 , … , 2 n w_m^{(i)} = w_c^{(i)} = \frac{1}{2(n + \lambda)}, i = 1, \ldots, 2n wm(i)=wc(i)=2(n+λ)1,i=1,…,2n
β \beta β用于引入关于 x 的先验分布信息(如高斯分布取 2)。
(二)预测阶段
-
状态预测:
χ k ∣ k − 1 ( i ) = f ( χ k − 1 ∣ k − 1 ( i ) , u k ) \chi_{k|k - 1}^{(i)} = f(\chi_{k - 1|k - 1}^{(i)}, u_k) χk∣k−1(i)=f(χk−1∣k−1(i),uk)
x ^ k ∣ k − 1 = ∑ i = 0 2 n w m ( i ) χ k ∣ k − 1 ( i ) \hat{x}_{k|k - 1} = \sum_{i = 0}^{2n}w_m^{(i)}\chi_{k|k - 1}^{(i)} x^k∣k−1=∑i=02nwm(i)χk∣k−1(i)
-
协方差预测:
P k ∣ k − 1 = ∑ i = 0 2 n w c ( i ) ( χ k ∣ k − 1 ( i ) − x ^ k ∣ k − 1 ) ( χ k ∣ k − 1 ( i ) − x ^ k ∣ k − 1 ) T + Q k − 1 P_{k|k - 1} = \sum_{i = 0}^{2n}w_c^{(i)}(\chi_{k|k - 1}^{(i)} - \hat{x}_{k|k - 1})(\chi_{k|k - 1}^{(i)} - \hat{x}_{k|k - 1})^T + Q_{k - 1} Pk∣k−1=∑i=02nwc(i)(χk∣k−1(i)−x^k∣k−1)(χk∣k−1(i)−x^k∣k−1)T+Qk−1
(三)更新阶段
-
观测预测:
γ k ∣ k − 1 ( i ) = h ( χ k ∣ k − 1 ( i ) ) \gamma_{k|k - 1}^{(i)} = h(\chi_{k|k - 1}^{(i)}) γk∣k−1(i)=h(χk∣k−1(i))
z ^ k ∣ k − 1 = ∑ i = 0 2 n w m ( i ) γ k ∣ k − 1 ( i ) \hat{z}_{k|k - 1} = \sum_{i = 0}^{2n}w_m^{(i)}\gamma_{k|k - 1}^{(i)} z^k∣k−1=∑i=02nwm(i)γk∣k−1(i)
-
协方差更新:
P z z = ∑ i = 0 2 n w c ( i ) ( γ k ∣ k − 1 ( i ) − z ^ k ∣ k − 1 ) ( γ k ∣ k − 1 ( i ) − z ^ k ∣ k − 1 ) T + R k P_{zz} = \sum_{i = 0}^{2n}w_c^{(i)}(\gamma_{k|k - 1}^{(i)} - \hat{z}_{k|k - 1})(\gamma_{k|k - 1}^{(i)} - \hat{z}_{k|k - 1})^T + R_k Pzz=∑i=02nwc(i)(γk∣k−1(i)−z^k∣k−1)(γk∣k−1(i)−z^k∣k−1)T+Rk
P x z = ∑ i = 0 2 n w c ( i ) ( χ k ∣ k − 1 ( i ) − x ^ k ∣ k − 1 ) ( γ k ∣ k − 1 ( i ) − z ^ k ∣ k − 1 ) T P_{xz} = \sum_{i = 0}^{2n}w_c^{(i)}(\chi_{k|k - 1}^{(i)} - \hat{x}_{k|k - 1})(\gamma_{k|k - 1}^{(i)} - \hat{z}_{k|k - 1})^T Pxz=∑i=02nwc(i)(χk∣k−1(i)−x^k∣k−1)(γk∣k−1(i)−z^k∣k−1)T
-
卡尔曼增益与状态更新:
K k = P x z P z z − 1 K_k = P_{xz}P_{zz}^{-1} Kk=PxzPzz−1
x ^ k = x ^ k ∣ k − 1 + K k ( z k − z ^ k ∣ k − 1 ) \hat{x}_k = \hat{x}_{k|k - 1} + K_k(z_k - \hat{z}_{k|k - 1}) x^k=x^k∣k−1+Kk(zk−z^k∣k−1)
P k = P k ∣ k − 1 − K k P z z K k T P_k = P_{k|k - 1} - K_kP_{zz}K_k^T Pk=Pk∣k−1−KkPzzKkT
四、典型应用场景与优势
(一)无人机姿态估计
在无人机飞行中,非线性的运动学方程(如四元数姿态更新)和传感器噪声(如陀螺仪漂移)会导致 EKF 估计精度下降。UKF 通过 sigma 点直接传播姿态信息,能够更准确地融合 IMU、磁罗盘和 GPS 数据,实现高动态下的稳定姿态跟踪。
(二)航天器轨道确定
航天器在近地轨道的摄动(如大气阻力、地球扁率)具有强非线性特性。UKF 利用无迹变换处理轨道动力学模型,结合雷达测距数据,可显著提高轨道预测精度,减少地面站的跟踪误差。
(三)生物医学信号处理
在脑电信号(EEG)或心脏运动建模中,非线性系统(如神经元放电模型)的状态估计对治疗决策至关重要。UKF 能够有效捕捉信号的非线性特征,在噪声环境中提取关键生理参数。
下期预告
尽管无迹卡尔曼滤波在非线性估计中表现出色,但其对高斯噪声的依赖和计算复杂度限制了在非高斯环境中的应用。针对这一挑战,下期我们将重点探讨粒子滤波(PF),这一基于蒙特卡洛方法的滤波技术能够:
- 突破高斯假设:通过随机采样粒子近似后验分布,有效处理非高斯噪声;
- 适应强非线性:无需线性化或参数化模型,直接通过粒子集传播状态;
- 解决高维问题:结合序贯重要性采样(SIS)和重采样技术优化计算效率。
我们将深入解析粒子滤波的核心算法,探讨其在以下领域的创新应用:
机器人 SLAM:在动态环境中融合激光雷达与视觉里程计数据;
此外,还将讨论粒子滤波面临的关键挑战:
- 样本贫化:重采样导致粒子多样性丧失;
- 计算成本:高维状态下的粒子数量爆炸问题;
- 实时性优化:通过 Rao-Blackwellization 等方法提升效率。
敬请期待下期专题:“粒子滤波:非高斯环境下的鲁棒状态估计”,探索这一革命性滤波技术如何重塑复杂系统的状态估计范式!
有关ukf的matlab代码见
链接:https://pan.baidu.com/s/1NQlCIgFvDZyiMwKDPuq2pA
提取码:6523
有关卡尔曼滤波matlab代码(免费下载):
https://download.youkuaiyun.com/download/qq_44965657/90564035
https://download.youkuaiyun.com/download/qq_44965657/90564042
https://download.youkuaiyun.com/download/qq_44965657/90564050
https://download.youkuaiyun.com/download/qq_44965657/90564054
https://download.youkuaiyun.com/download/qq_44965657/90564056
https://download.youkuaiyun.com/download/qq_44965657/90564059
https://download.youkuaiyun.com/download/qq_44965657/90564065
https://download.youkuaiyun.com/download/qq_44965657/90564063
https://download.youkuaiyun.com/download/qq_44965657/90564062
https://download.youkuaiyun.com/download/qq_44965657/90564060