1. 基础 - 状态空间模型与噪声

状态空间方程

为了进行最优估计,我们首先需要对系统进行数学建模。卡尔曼滤波是在线性状态空间模型的基础上进行的。

状态方程 (State Equation): 描述系统状态如何随时间演变。

  • : k时刻的系统状态向量
  • : k-1时刻的系统状态向量。
  • : k-1时刻的控制输入向量
  • : 状态转移矩阵,描述状态从k-1到k的变化。
  • : 控制输入矩阵,描述控制输入如何影响状态。
  • : 过程噪声,代表模型本身无法完全描述的、内在的随机扰动。

观测方程 (Measurement Equation): 描述如何通过传感器等方式观测到系统状态。

  • : k时刻的观测向量
  • : 观测矩阵,描述状态如何映射到观测值。
  • : 测量噪声,代表测量过程中的不确定性和误差。

噪声模型

卡尔曼滤波的一个核心假设是,过程噪声 和测量噪声 都是高斯白噪声,它们的期望(均值)为0,并且相互独立。
  • 过程噪声 服从正态分布:
  • 测量噪声 服从正态分布:
其中, 是噪声的协方差矩阵
  • 是过程噪声的协方差矩阵。
  • 是测量噪声的协方差矩阵。
协方差矩阵的对角线元素是各个噪声分量的方差(即不确定性的平方),非对角线元素是不同噪声分量之间的协方差(即相关性)。

2. 卡尔曼滤波的核心思想:预测与更新

卡尔曼滤波是一个递归的过程,主要包含两个步骤:预测(Predict)更新(Update)

先验估计 (预测)

在得到k时刻的测量值之前,我们可以根据k-1时刻的状态和系统模型,预测出k时刻的状态。这个预测值被称为先验估计(a priori estimate),记为
这里的 是k-1时刻的最优估计值(后验估计)。

后验估计 (更新)

得到k时刻的测量值 后,我们需要利用这个新的信息来修正我们的先验估计 ,从而得到一个更准确的后验估计(a posteriori estimate)。这就是数据融合的过程。
后验估计是先验估计和一个修正项的加权和:
  • : k时刻的后验最优估计,是我们的最终输出。
  • : 残差(Residual)或新息(Innovation)。它代表了真实测量值预测测量值之间的差异。如果残差为0,说明我们的预测非常准确。
  • : 卡尔曼增益 (Kalman Gain)。这是整个滤波器的核心。它是一个权重,决定了我们应该在多大程度上相信当前的测量值(即残差)。
    • 如果 很大,意味着我们更相信测量值。
    • 如果 很小,意味着我们更相信模型的预测值。

3. 推导卡尔曼增益

我们的目标是找到一个最优的 ,使得后验估计 尽可能地接近真实值

优化目标:最小化估计误差协方差

我们定义后验估计误差 为真实值与后验估计值之差:
我们希望这个误差的总体大小最小。在统计上,我们通过最小化误差的协方差矩阵 的迹 (trace) 来实现这一目标。迹是矩阵对角线元素之和,在这里代表了所有状态变量估计误差的方差之和。
目标:找到 ,使得 最小。

步骤一:建立误差 的关系

我们将更新公式代入误差定义中:
再将测量方程 代入:
定义先验估计误差 ,上式可以简化为:

步骤二:展开误差协方差矩阵

现在我们计算
展开上式,得到四项:
根据假设,先验误差 与测量噪声 相互独立,因此它们的交叉项的期望为零:
这样,中间两项就消失了。我们得到:
定义先验误差协方差矩阵 ,并代入测量噪声协方差矩阵 ,得到 的最终表达式:
展开后可得:

步骤三:求迹并对 求导

为了找到使 最小的 ,我们需要对 关于 求导,并令其等于零。
利用矩阵迹的性质 ,我们有 ,因此:
现在对 关于 求导。这里使用两条矩阵求导法则:
  1. (当B为对称矩阵时)
应用这些法则,我们得到:
因为协方差矩阵 是对称的,所以 。令导数为零:

步骤四:求解

整理上述方程:
最后,两边同时右乘 ,我们便得到了最优卡尔曼增益的计算公式:
Loading...