研讨会系列 · KF L14 (1/2)

Kalman Filter 模型、假设与符号体系

正式进入 Kalman Filter —— 系统模型、基本假设、估计符号与递归结构全景

📅 2026-05-10 🧩 KF 模型 📐 假设体系 🔄 递归结构

🎯 学完本节,你应能

掌握Kalman Filter的系统模型、基本假设与符号体系

📖 前置知识

建议先完成前面的课程,或具备线性代数与概率论基础。

🎯 本讲目标(第一部分)

写出标准线性系统模型、理解 KF 的基本假设、看懂估计符号(预测/更新/误差/协方差)、理解递归结构的两个环节。

🔑 核心思想

Kalman Filter 的"舞台搭建":先把系统模型和假设写清楚,再定义记号,最后拆成 time update + measurement update 两个递归环节。

📖 目录

1. Kalman Filter 解决什么问题

真实状态 $x_{k}$ 看不见或看不准。我们只有带噪声测量:

$$ y_{k} = C x_{k} + v_{k} $$

同时我们知道系统大致如何演化:

$$ x_{k+1} = A x_{k} + w_{k} $$

🎯 目标

用过去和当前测量,递归估计当前状态 —— 每来一个新测量只需常数时间,不依赖历史长度。

2. 系统模型

状态方程

$$ x_{k+1} = A x_{k} + w_{k} $$

若有控制输入:

$$ x_{k+1} = A x_{k} + B u_{k} + w_{k} $$

测量方程

$$ y_{k} = C x_{k} + v_{k} $$

其中:

3. KF 基本假设

课堂板书列出的核心假设:

① 初始状态

$$ x_{0} \sim N(0, \Pi_{0}),\quad \Pi_{0} \ge 0 $$

② 过程噪声

$$ w_{k} \sim N(0, Q),\quad Q \ge 0 $$

③ 测量噪声

$$ v_{k} \sim N(0, R),\quad R > 0 $$

④ 互不相关

$x_{0}, w_{k}, v_{k}$ 彼此不相关

还要求:

⑤ 可观性

$$ (A, C)\ \text{observable} $$

⑥ 能控性

$$ (A, \sqrt{Q})\ \text{controllable} $$

4. 为什么 $R>0$ 而 $Q\ge 0$?

这是一个很好的问题。课堂中同学提问:为什么前面很多地方是"半正定",到了测量噪声协方差 $R$ 这里却要求正定?

为什么 $R \succ 0$

🎯 核心观点

$R$ 对应测量噪声。如果某个方向上的测量噪声等于零,那等于说你在那个方向上拿到了完美测量(perfect measurement)。这在真实世界里几乎不成立,因为测量设备本身是人造装置,天然带误差。

所以对 measurement noise 来说,要求 $R$ 正定,体现的是一种"现实测量不可能完美"的建模立场。

为什么 $Q \succeq 0$

过程噪声可以半正定的原因:

  1. 某些维度可能被物理约束住了 —— 比如系统只能沿某个方向运动,另一些方向没有状态变化。
  2. 某些维度你可能根本不关心 —— 比如电机控制中有时只关心速度,不关心绝对位置。

所以对 process noise 来说,允许某些方向上的噪声"没有被建模进去"是合理的。

📌 要点

Kalman Filter 里的矩阵条件不是死规定,而是和物理意义、建模范围直接绑定的。

5. 为什么假设高斯噪声

📐 数学原因

在线性系统里,如果初始条件是高斯的、噪声也是高斯的,那么经过线性变换以后,状态仍然保持高斯。

这意味着:

  • 分布族封闭
  • 可以做递归
  • 只需跟踪均值和协方差

这其实就是 Kalman Filter 可计算、可实现的关键基础之一。

🔧 工程原因

很多实际噪声确实可以近似看成高斯:

  • 有些测量误差的经验分布本身接近高斯
  • 很多小扰动叠加后在中心极限定理意义下接近高斯

当然,如果系统强非线性或噪声明显偏离高斯,就需要换工具(如 EKF、UKF、粒子滤波)。

6. 估计符号体系

这是本讲最容易绕晕但必须记住的部分。关键在于理解下标含义:

$$ \hat x_{k|k} = \text{时刻 }k\text{ 对 }x_{k}\text{ 的估计(利用了截至 }k\text{ 的测量)} $$
$$ \hat x_{k|k-1} = \text{时刻 }k\text{ 对 }x_{k}\text{ 的预测(只用了截至 }k-1\text{ 的测量)} $$

误差与协方差

估计误差

$$ \tilde x_{k|k} = x_{k} - \hat x_{k|k} $$

误差协方差

$$ P_{k|k} = E[\tilde x_{k|k} \tilde x_{k|k}^T] $$

预测误差

$$ \tilde x_{k|k-1} = x_{k} - \hat x_{k|k-1} $$

预测误差协方差

$$ P_{k|k-1} = E[\tilde x_{k|k-1} \tilde x_{k|k-1}^T] $$

💡 记忆法

左边的下标 = "当前要估计哪个时刻的状态";右边的下标 = "你手里拿到了哪个时刻为止的 measurement"。只要这个逻辑不乱,后面的递推关系就不会迷路。

7. 初始化

零均值假设下:

$$ \hat x_{0|-1} = 0 $$
$$ P_{0|-1} = \Pi_{0} $$

🚀 为什么初始化重要

任何算法都必须给出 initialization,不然根本跑不起来。在任何测量到来前,对初始状态的最佳估计就是均值 0,不确定性就是 $\Pi_{0}$。

8. 递归结构:两大环节

整个 Kalman Filter 被拆成两部分:

⏱ Time Update(时间更新)

没有新 measurement 时,只能根据系统时间推进做 prediction。

$$ \hat x_{k+1|k} = A \hat x_{k|k} $$ $$ P_{k+1|k} = A P_{k|k} A^T + Q $$

基于模型做一步预测

📏 Measurement Update(测量更新)

新 measurement $y_{k}$ 到来时,用它修正 prediction。

$$ \hat x_{k|k} = \hat x_{k|k-1} + K_{k} e_{k} $$ $$ P_{k|k} = P_{k|k-1} - K_{k} R_{e,k} K_{k}^T $$

用新息修正估计

Kalman Filter 的节奏是:

先预测 → 再看见 → 再修正 → 再进入下一时刻

这种结构让它天然适合在线系统——你不需要每来一个新 measurement 就把历史全部重算一遍。

9. 从 LMMSE 到递归的动机

回顾上一讲的出发点:

🧠 关键认识

估计本质上可以看成"把要估计的变量投影到某个信息空间上"。这个空间如果换成经过正交化之后得到的空间,空间本身没变,所以得到的 estimate 也不变。但新的表示方式会让递归计算成为可能。

📝 自测题

问题 1

新息 $e_{k}$ 表示什么?

点击查看答案

新息 $e_{k} = y_{k} - C\hat x_{k|k-1}$ 是实际测量与预测测量之差,代表当前测量中无法由过去信息解释的"纯新"部分。

问题 2

为什么 $R$ 要正定而 $Q$ 可以半正定?

点击查看答案

$R>0$ 意味着每个测量方向都有噪声——现实测量不可能完美。$Q\ge 0$ 允许某些状态方向不被过程噪声激励——那些方向可能被物理约束或你不关心。

问题 3

Kalman Filter 为什么能递归运行,而不是每步重新计算?

施老师大课堂 · 研讨会系列 KF L14 (1/2) · Kalman Filter 模型、假设与符号体系