基本概念
卡尔曼滤波是一种最优递归估计算法,用于从包含噪声的观测数据中估计动态系统的状态。它通过结合系统模型预测和实际测量值,以最小化均方误差的方式提供对系统状态的最优估计。
核心思想
卡尔曼滤波基于两个基本方程:
- 状态预测方程(基于系统模型)
- 测量更新方程(基于实际观测)
它通过以下步骤递归进行:
- 预测:根据系统模型预测下一时刻状态
- 更新:结合观测值修正预测值
数学表述
系统模型
状态方程:
xk=Fkxk−1+Bkuk+wk\mathbf{x}_k = \mathbf{F}_k \mathbf{x}_{k-1} + \mathbf{B}_k \mathbf{u}_k + \mathbf{w}_kxk=Fkxk−1+Bkuk+wk
其中:
- xk\mathbf{x}_kxk:k时刻的系统状态向量(待估计)
- Fk\mathbf{F}_kFk:状态转移矩阵
- Bk\mathbf{B}_kBk:控制输入矩阵
- uk\mathbf{u}_kuk:控制输入向量
- wk\mathbf{w}_kwk:过程噪声,服从正态分布 N(0,Qk)\mathcal{N}(0, \mathbf{Q}_k)N(0,Qk)
观测方程:
zk=Hkxk+vk\mathbf{z}_k = \mathbf{H}_k \mathbf{x}_k + \mathbf{v}_kzk=Hkxk+vk
其中:
- zk\mathbf{z}_kzk:k时刻的观测向量
- Hk\mathbf{H}_kHk:观测矩阵
- vk\mathbf{v}_kvk:观测噪声,服从正态分布 N(0,Rk)\mathcal{N}(0, \mathbf{R}_k)N(0,Rk)
滤波算法步骤
1. 预测步骤(先验估计)
状态预测:
x^k−=Fkx^k−1++Bkuk\hat{\mathbf{x}}^{-}_k = \mathbf{F}_k \hat{\mathbf{x}}^{+}_{k-1} + \mathbf{B}_k \mathbf{u}_kx^k−=Fkx^k−1++Bkuk
误差协方差预测:
Pk−=FkPk−1+FkT+Qk\mathbf{P}^{-}_k = \mathbf{F}_k \mathbf{P}^{+}_{k-1} \mathbf{F}^T_k + \mathbf{Q}_kPk−=FkPk−1+FkT+Qk
2. 更新步骤(后验估计)
卡尔曼增益计算:
Kk=Pk−HkT(HkPk−HkT+Rk)−1\mathbf{K}_k = \mathbf{P}^{-}_k \mathbf{H}^T_k (\mathbf{H}_k \mathbf{P}^{-}_k \mathbf{H}^T_k + \mathbf{R}_k)^{-1}Kk=Pk−HkT(HkPk−HkT+Rk)−1
状态更新:
x^k+=x^k−+Kk(zk−Hkx^k−)\hat{\mathbf{x}}^{+}_k = \hat{\mathbf{x}}^{-}_k + \mathbf{K}_k (\mathbf{z}_k - \mathbf{H}_k \hat{\mathbf{x}}^{-}_k)x^k+=x^k−+Kk(zk−Hkx^k−)
协方差更新:
Pk+=(I−KkHk)Pk−\mathbf{P}^{+}_k = (\mathbf{I} - \mathbf{K}_k \mathbf{H}_k) \mathbf{P}^{-}_kPk+=(I−KkHk)Pk−
符号说明
- x^k−\hat{\mathbf{x}}^{-}_kx^k−:k时刻的先验状态估计(预测值)
- x^k+\hat{\mathbf{x}}^{+}_kx^k+:k时刻的后验状态估计(修正值)
- Pk−\mathbf{P}^{-}_kPk−:先验估计误差协方差矩阵
- Pk+\mathbf{P}^{+}_kPk+:后验估计误差协方差矩阵
- Kk\mathbf{K}_kKk:卡尔曼增益矩阵
- Qk\mathbf{Q}_kQk:过程噪声协方差矩阵
- Rk\mathbf{R}_kRk:观测噪声协方差矩阵
直观理解
卡尔曼增益Kk\mathbf{K}_kKk是关键参数,它决定了我们应该更信任预测值还是观测值:
- 当观测噪声小(Rk→0\mathbf{R}_k \to 0Rk→0)时,Kk→Hk−1\mathbf{K}_k \to \mathbf{H}^{-1}_kKk→Hk−1,更信任观测值
- 当预测噪声小(Pk−→0\mathbf{P}^{-}_k \to 0Pk−→0)时,Kk→0\mathbf{K}_k \to 0Kk→0,更信任预测值
应用领域
卡尔曼滤波广泛应用于:
- 导航与制导系统(GPS、惯性导航)
- 目标跟踪与雷达系统
- 机器人定位与路径规划
- 经济预测与金融建模
- 信号处理与通信系统
优势与特点
- 递归性:只需前一时刻的估计值,无需存储全部历史数据
- 最优性:在线性高斯假设下为最小均方误差估计
- 计算高效:适合实时应用
- 适应性:可以通过调整噪声协方差适应不同环境
卡尔曼滤波通过巧妙结合系统动力学模型和实际观测数据,在不确定性环境中提供了对系统状态的最优估计。