4、概率论基础回顾:高斯分布、协方差矩阵、条件概率与贝叶斯法则

各位同学,咱们今天聊点“硬核”的数学基础。别一听数学就头疼,我当年做飞控算法时,也栽过跟头。后来发现,搞懂这几个概念,状态估计就通了八成。说白了,概率论就是描述“不确定性”的语言。飞行器在天上飞,传感器有噪声,模型有误差,我们得学会跟不确定性打交道。

4.1 高斯分布:飞控算法中的“万能钥匙”

为什么高斯分布这么重要?我个人习惯,先讲直觉,再讲公式。你想想看,传感器噪声、风扰动、甚至GPS的漂移,它们的统计特性大多可以用高斯分布来描述。中心极限定理告诉我们,大量独立随机变量的和趋近于高斯分布。嗯,这就是它在工程中无处不在的原因。

一维高斯分布的概率密度函数长这样:

p(x) = (1 / (σ * √(2π))) * exp( - (x - μ)² / (2σ²) )

其中 μ 是均值,σ 是标准差。均值决定了分布的中心,标准差决定了分布的“胖瘦”。

核心记忆点: 在飞控中,我们通常假设过程噪声和观测噪声都是零均值的高斯白噪声。即 μ=0。这样处理起来,数学上会非常优雅。

多维高斯分布呢?公式稍微复杂一点:

p(x) = (1 / ( (2π)^(n/2) * |Σ|^(1/2) )) * exp( -0.5 * (x - μ)^T * Σ^(-1) * (x - μ) )

这里 Σ 就是协方差矩阵。别被公式吓到,我们实际编程时,用的都是现成的库函数。但理解它的几何意义很重要。

4.2 协方差矩阵:变量之间的“关系网”

协方差矩阵,说白了就是描述多个随机变量之间“联动关系”的表格。对角线元素是各个变量的方差,非对角线元素是变量之间的协方差。

举个例子,在IMU(惯性测量单元)中,加速度计的三个轴(X, Y, Z)的噪声并不是完全独立的。温度变化、安装误差都会导致它们之间产生相关性。协方差矩阵就是用来捕捉这种相关性的。

变量 X轴加速度 Y轴加速度 Z轴加速度
X轴加速度 σx² σxy σxz
Y轴加速度 σyx σy² σyz
Z轴加速度 σzx σzy σz²

注意,协方差矩阵是对称的,即 σxy = σyx。如果两个变量独立,协方差为0。但独立不一定不相关?嗯,这里不展开,大家记住高斯分布下,独立等价于不相关。

避坑指南: 我曾经在调试一个四旋翼的悬停算法时,发现状态估计总是发散。查了两天,最后发现是协方差矩阵初始化成了单位矩阵,而实际传感器的噪声方差相差了100倍。记住,协方差矩阵的数值大小,直接决定了卡尔曼滤波对传感器数据的“信任程度”。

4.3 条件概率:已知部分信息后的推断

条件概率 P(A|B) 表示在事件 B 发生的条件下,事件 A 发生的概率。公式很简单:

P(A|B) = P(A ∩ B) / P(B)

但在飞控中,它的意义远不止于此。你想想看,我们做状态估计,不就是“已知传感器观测值 Z,求系统状态 X 的概率分布”吗?这就是条件概率的典型应用。

举个例子,GPS 给出的位置是 (x_gps, y_gps),但真实位置 (x_true, y_true) 是未知的。我们想知道 P(x_true | x_gps),即给定GPS读数后,真实位置的概率分布。如果GPS噪声是高斯分布,那么这个条件概率也是高斯分布,均值就是GPS读数,方差就是GPS的噪声方差。

关键点: 条件概率是状态估计的“灵魂”。卡尔曼滤波的每一步,本质上都是在计算条件概率分布。

4.4 贝叶斯法则:从先验到后验的“推理引擎”

贝叶斯法则是概率论中最美的公式之一。它告诉我们如何根据观测数据,更新我们对某个事件的信念。

P(X|Z) = P(Z|X) * P(X) / P(Z)

其中:

  • P(X):先验概率。在观测之前,我们对状态 X 的初始估计。
  • P(Z|X):似然概率。给定状态 X 下,观测到 Z 的可能性。
  • P(Z):证据概率。观测数据本身的概率,通常作为归一化常数。
  • P(X|Z):后验概率。观测之后,我们对状态 X 的更新估计。

在飞控中,这个过程是递归的。上一时刻的后验概率,会成为下一时刻的先验概率。这就是卡尔曼滤波的“预测-更新”循环的数学本质。

我建议你把这个公式刻在脑子里。为什么?因为整个状态估计领域,从卡尔曼滤波到粒子滤波,核心思想都是贝叶斯法则。只是实现方式不同而已。

注意: 贝叶斯法则要求我们精确知道 P(Z|X) 和 P(X)。在实际工程中,这两个分布往往是我们假设的(比如假设为高斯分布)。如果假设与实际情况偏差太大,估计结果就会出问题。我曾经在一个无人机编队项目中,因为忽略了风扰动的非高斯特性,导致编队位置估计频繁跳变。后来改用鲁棒卡尔曼滤波才解决。

4.5 三者如何协同工作?

好了,我们把三个概念串起来。在飞控的状态估计中:

  1. 高斯分布 描述了噪声和状态的统计特性。
  2. 协方差矩阵 量化了状态变量之间的不确定性和相关性。
  3. 条件概率与贝叶斯法则 提供了从观测数据中更新状态估计的数学框架。

举个例子,卡尔曼滤波的预测步骤:

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

这里 x_pred 是预测的状态均值,P_pred 是预测的协方差矩阵。Q 是过程噪声的协方差矩阵(高斯分布假设)。

更新步骤:

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 是卡尔曼增益,R 是观测噪声的协方差矩阵。整个更新过程,本质上就是在计算贝叶斯后验概率。

个人经验: 刚开始学卡尔曼滤波时,我总把公式死记硬背。后来发现,只要理解了贝叶斯法则和高斯分布,公式是可以自己推导出来的。建议大家也试试,从贝叶斯公式出发,假设所有分布都是高斯分布,推导一下卡尔曼滤波的更新方程。这个过程会让你对算法有更深的理解。

嗯,今天就讲到这里。下一章我们会正式进入卡尔曼滤波的推导,你会发现,今天讲的这些基础,就是打开那扇门的钥匙。