4. 非线性系统估计问题

卡尔曼滤波在线性高斯系统中是最优估计器,但真实工程对象几乎都带有非线性:雷达测距是斜距与角度的非线性组合,惯导的姿态更新涉及三角函数,电池SOC与开路电压呈强非线性曲线。当系统模型 f(·) 或观测模型 h(·) 非线性时,高斯分布经过非线性映射后不再保持高斯形状,这正是非线性估计问题的根源,也是无迹卡尔曼滤波(UKF)要解决的核心矛盾。

一、核心原理:非线性函数传播改变了分布的形状

设状态 x ~ N(μ, P),经过非线性函数 y = g(x) 传播。线性情况下,均值和协方差按 y = Aμ、P_y = A P Aᵀ 精确传递;而非线性情况下,只有对 g(·) 做泰勒展开才能近似计算。一阶展开得到:

E[g(x)] ≈ g(μ) + ½·tr( Hessian_g · P )   ← 二阶项被一阶EKF丢弃
Cov[g(x)] ≈ J_g · P · J_gᵀ                ← J_g 为 g 在 μ 处的雅可比

关键点在于:均值传播存在二阶偏置,协方差传播依赖雅可比。若 g(·) 曲率大、P 又较大,被丢弃的二阶项会显著偏离真实均值,估计结果出现系统性偏差。下图给出非线性传播与EKF线性化近似的对比关系:

真实非线性传播 x y y = g(x) 输入分布 N(μ,P) 输出分布:偏斜、非高斯 EKF 一阶线性化近似 x y 切线 y = g(μ)+J(x−μ) 输入分布 N(μ,P) 输出:仍假设为高斯 均值偏差 Δμ(二阶项丢失)

二、EKF的线性化误差从何而来

EKF在每个时刻对 f、h 在当前估计点求雅可比,用切线代替曲线。误差来源可归纳为三类:

  • 截断误差:泰勒展开只保留一阶,二阶及以上被丢弃,曲率越大误差越大。
  • 工作点漂移:雅可比在 μ 处计算,但真实状态可能偏离 μ,切线不再贴合曲线。
  • 协方差失真:P 较大时,状态分布覆盖了曲线的大范围弯曲区域,单点切线无法代表整体。
典型误区:认为“只要雅可比推导正确,EKF就没有误差”。实际上雅可比正确只保证一阶精度,二阶偏置 ½·tr(H·P) 依然存在,且随 P 增大而放大。

三、发散风险:从误差累积到滤波器崩溃

线性化误差不会孤立存在,它会通过协方差更新进入增益计算,形成正反馈。常见发散路径如下:

  1. 初始协方差 P₀ 设置过大 → 线性化误差显著 → 新息 ν = z − h(x̂⁻) 异常。
  2. 雅可比 H 失真 → 卡尔曼增益 K 偏离最优 → 状态修正方向错误。
  3. 错误修正使估计偏离真值 → 下一时刻工作点更差 → 雅可比更失真。
  4. 协方差 P 被人为压小(过度自信)→ 增益趋零 → 滤波器“拒绝”量测 → 彻底发散。

工程上判断发散的信号包括:新息序列不再零均值白噪声、P 与残差平方不匹配、状态估计持续单向漂移。下表给出EKF与UKF在非线性场景下的适用边界对比:

对比维度 EKF UKF
分布传播方式 一阶泰勒线性化 Sigma点确定性采样
均值精度 一阶,存在二阶偏置 可达二阶以上
协方差精度 依赖雅可比,易失真 由加权样本统计,更稳健
雅可比需求 必须解析或数值求导 无需雅可比
强非线性表现 易发散 明显优于EKF
计算量 较低 约2n+1次函数评估
适用边界 弱非线性、小P、高更新率 中强非线性、大初始不确定度

四、案例场景:雷达跟踪中的线性化失效

考虑二维雷达跟踪,状态为 [x, y, vx, vy],量测为斜距与方位角:

r = sqrt(x² + y²)
θ = atan2(y, x)

当目标距离雷达很近(r 小)或方位角接近 ±90° 时,atan2 的雅可比对 x 的偏导 −y/(x²+y²) 会急剧变化。若此时 P 较大,EKF用单点切线近似整个方位角分布,会产生明显偏差,甚至出现“目标穿越雷达原点”时的估计跳变。这正是UKF的典型用武之地:用Sigma点直接穿过 atan2,无需线性化。

实操建议:在决定是否使用UKF前,先做一次“线性化误差体检”——固定 P,用蒙特卡洛采样真实传播 g(x),比较真实均值与 g(μ) 的偏差。若偏差超过状态标准差的10%,说明EKF已接近适用边界。

五、复盘:非线性估计的三条判断准则

  • 看曲率:函数在 μ 附近二阶导大,EKF误差大。
  • 看不确定度:P 越大,分布覆盖的弯曲区域越广,线性化越不可靠。
  • 看更新频率:量测更新越快,工作点越接近真值,线性化误差越小;反之则风险上升。