自适应卡尔曼滤波AKF(Adaptive Kalman Filter)是一种高级的卡尔曼滤波技术,旨在解决标准KF及其变种(EKF, UKF)的一个核心痛点:滤波器参数的不确定性。
标准卡尔曼滤波器的性能严重依赖于两个先验参数,在实际应用中,这些参数往往是未知的或时变的:
如果预设的 Q 和 R 值与真实情况不符,滤波器就会表现不佳:Q/R 设置过大滤波器会过分信任预测/观测,导致估计结果过于平滑,响应迟钝;相反Q/R 设置过小滤波器会过分信任观测/预测,导致估计结果噪声大,甚至发散。
自适应卡尔曼滤波(AKF)就是在滤波器运行的过程中,实时地估计或调整这些噪声统计特性(主要是 Q 和 R),使滤波器能够自适应于系统当前的真实工况,从而获得最优或次优的估计性能。
AKF具备多种实现方法,但主要原理可分为以下几类:
这里以一种常见的基于创新序列协方差匹配的AKF步骤为例。
初始化:

循环执行以下步骤:

AKF主要用于那些系统模型或观测模型噪声特性不确定或随时间变化的场景:
优势
劣势 计算复杂度更高:在线估计 Q 和 R 增加了额外的计算负担。 实现更复杂:需要精心设计自适应律,如窗口大小 N 的选择、调整策略的稳定性等,不当的自适应策略本身可能导致滤波器不稳定。 可观测性问题:有时从创新序列中无法唯一地确定是 Q 还是 R 发生了变化(Q和R之间存在耦合关系)。
| 维度 | EKF / UKF / ESKF | AKF | 
|---|---|---|
| 解决的核心问题 | 非线性问题。如何对状态的非线性动力学和观测模型进行最佳线性近似(EKF求导,UKF采样,ESKF误差分离)。 | 模型不确定问题。如何确定或在线调整噪声参数(Q, R),使滤波器在各种工况下保持最优或稳定。 | 
| 关注对象 | 状态估计本身 (x) | 滤波器参数 (Q, R) | 
| 关系 | 基础。EKF/UKF/ESKF是AKF的基础框架。一个AKF通常是在一个EKF、UKF或ESKF的基础上增加了自适应模块。 | 增强模块。AKF是增强EKF/UKF/ESKF性能的附加策略。 | 
| 滤波器 | 核心贡献 | 优点 | 缺点 | 适用场景 | 
|---|---|---|---|---|
| EKF | 雅可比矩阵线性化 | 概念直接,计算效率较高 | 线性化误差大,雅可比难求 | 中等非线性系统 | 
| UKF | 无迹变换采样 | 精度高于EKF,无需求导 | 计算成本高,有维数灾难 | 强非线性、低维系统 | 
| ESKF | 误差状态分离 | 线性化精度高,数值稳定,适合IMU | 概念复杂,实现难度高 | 以IMU为核心的导航系统 | 
| AKF | 噪声参数在线估计 | 鲁棒性强,适应时变系统 | 计算更复杂,实现难度高 | 任何需要应对Q/R不确定或时变场景的KF变种之上 | 
AKF不是独立算法,而是增强模块,与EKF/UKF/ESKF解决的是不同维度的问题,它们不是互斥的,而是可以结合使用的。EKF/UKF/ESKF 像是汽车的悬挂系统,决定了你过弯(非线性)时的平稳性和操控性;AKF 像是汽车的自适应巡航系统,根据路况(噪声变化)自动调整车速(Q/R参数)以保持最佳行驶状态: