第1章:线性卡尔曼滤波推导——从贝叶斯估计到卡尔曼增益

各位同学好,我是老张。在组合导航这行摸爬滚打了十几年,今天咱们来聊聊卡尔曼滤波最核心的东西——它的数学推导。

说实话,我第一次接触卡尔曼滤波时,看着那一堆矩阵和协方差,头都大了。后来慢慢发现,这东西说白了就是一套「预测-修正」的循环。你想想看,我们做导航,不就是先猜一下位置,然后用观测数据去修正这个猜测吗?

1.1 从贝叶斯估计说起

卡尔曼滤波的根,其实在贝叶斯估计里。贝叶斯定理告诉我们:

P(x|z) = P(z|x) * P(x) / P(z)

翻译成人话就是:后验概率 = 似然 × 先验概率 / 证据

嗯,这里要注意,在卡尔曼滤波的语境下:

  • 先验:我们根据上一时刻的状态,预测当前时刻的状态
  • 似然:当前观测值在给定状态下的可能性
  • 后验:融合了预测和观测之后,我们对状态的最佳估计

我个人习惯把贝叶斯估计看作是卡尔曼滤波的「哲学基础」。你理解了贝叶斯,就理解了卡尔曼滤波为什么是「最优」的——因为它是在概率框架下,把已知信息都用上了。

核心思想:卡尔曼滤波本质上是在做「贝叶斯在线推理」,每一步都在更新我们对状态的概率认知。

1.2 线性卡尔曼滤波的数学推导

好,咱们来点硬核的。线性卡尔曼滤波假设系统是线性的,噪声是高斯白噪声。模型长这样:

状态方程:x_k = F * x_{k-1} + B * u_k + w_k
观测方程:z_k = H * x_k + v_k

其中 w_k ~ N(0, Q),v_k ~ N(0, R)。

我在项目中遇到过一个问题:有人把Q和R设成对角矩阵就完事了,结果滤波发散。后来发现,Q矩阵必须反映真实的系统噪声特性,不能随便拍脑袋。

预测步(Time Update)

预测步就是「猜」。我们根据上一时刻的最优估计,预测当前时刻的状态和协方差:

x_pred = F * x_est + B * u
P_pred = F * P_est * F^T + Q

这里:

  • x_pred:预测的状态
  • P_pred:预测的协方差(代表不确定性)
  • Q:过程噪声协方差

你想想看,为什么协方差会变大?因为预测引入了不确定性(Q),所以我们对状态的把握变差了。

更新步(Measurement Update)

更新步就是「修正」。我们用观测数据来修正预测:

K = P_pred * H^T * (H * P_pred * H^T + R)^{-1}
x_est = x_pred + K * (z - H * x_pred)
P_est = (I - K * H) * P_pred

这里K就是卡尔曼增益,是整个滤波器的灵魂。

小技巧:我建议初学者先用手算一遍一维的情况,把矩阵换成标量,这样能直观看到每个变量的变化。

1.3 卡尔曼增益的物理意义

卡尔曼增益K,说白了就是一个「权重分配器」。它决定了我们更相信预测还是更相信观测。

咱们来看K的表达式:

K = P_pred * H^T * (H * P_pred * H^T + R)^{-1}

这个公式可以拆成两部分理解:

  • 分子:P_pred * H^T —— 预测的不确定性
  • 分母:H * P_pred * H^T + R —— 预测不确定性 + 观测噪声

所以K的取值在0到1之间(一维情况下):

  • 当R很小(观测很准)时,K → 1,我们更相信观测
  • 当P_pred很小(预测很准)时,K → 0,我们更相信预测

我曾经调试一个组合导航系统,发现K值一直偏大,导致滤波结果跟着观测跳来跳去。后来发现是R矩阵设得太小了,相当于我过度相信了传感器。调大R之后,K值降下来,滤波曲线就平滑了。

避坑指南:我曾经把Q和R设成固定值,结果系统在不同工况下表现差异很大。后来我改用自适应方法,根据残差动态调整Q和R,效果好了很多。

1.4 知识体系总览

下面这张图是我自己画的,把本章的核心逻辑串起来了:

线性卡尔曼滤波核心逻辑 贝叶斯估计 P(x|z) ∝ P(z|x)P(x) 预测步 x_pred = F·x_est + B·u 更新步 x_est = x_pred + K·(z-H·x_pred) 卡尔曼增益 K K = P_pred·H^T·(H·P_pred·H^T + R)^{-1} K的物理意义:预测与观测的权重分配 R小 → K大 → 更相信观测 | P_pred小 → K小 → 更相信预测 K ∈ [0, 1](一维情况),决定滤波器的「信任倾向」

这张图把贝叶斯估计、预测步、更新步和卡尔曼增益串在了一起。你顺着箭头看,就能理解整个滤波流程。

1.5 本章小结

咱们这一章讲了三个核心内容:

  1. 贝叶斯估计是卡尔曼滤波的理论基础——后验 = 似然 × 先验
  2. 预测步和更新步的数学推导——先猜后修,循环往复
  3. 卡尔曼增益的物理意义——它是预测和观测之间的「信任天平」

说实话,这些公式看起来复杂,但只要你理解了「预测-修正」这个循环,再回头看公式,就会发现它们其实很自然。我在带新人时,总是让他们先用手算一维的例子,把每个变量的变化画出来,这样比死记公式有效得多。

下一章咱们会聊非线性情况——扩展卡尔曼滤波。不过那是后话了,先把线性情况吃透再说。


专注资料整理