卡尔曼滤波

  1. 卡尔曼滤波基本原理
  2. 理论推导
    1. 高斯分布融合
    2. 计算值和测量值融合
  3. 引用

卡尔曼滤波基本原理

现实中存在很多不确定性:

  • 不存在完美的数学模型
  • 系统的扰动不可控,也很难建模
  • 测量的传感器存在误差

卡尔曼滤波就是融合同一值的多个不确定性得到更准确的值,这里可以是模型计算值和测量值融合。参考知乎解释如何通俗并尽可能详细地解释卡尔曼滤波? - Kent Zeng的回答

用两个传感器同时测一个数值,最终结果可以取平均值,如果其中一个传感器更准确,取加权平均,加权的系数根据两个传感器的噪声分布(高斯分布)确定。实际中是数学模型计算出一个值,传感器测量出一个值,把这个两个值进行高斯分布的融合,得到的值的概率分布的方差更小(数据更准确)

理论推导

高斯分布融合

两个一维高斯分布的融合就是概率的乘积然后归一化。一维高斯分布方程为$\mathcal{N}(x, \mu, \sigma)=\frac{1}{\sigma \sqrt{2 \pi}} e^{-\frac{(z-\mu)^{2} }{2 \sigma^{2}} }$。融合得到

其中

令${\bf{k}} = { {\sigma _0^2} \over {\sigma _0^2 + \sigma _1^2}}$则有

写成矩阵形式

其中$\mathbf{K}$为卡尔曼增益。

计算值和测量值融合

连续系统的状态空间方程

其中$X$为系统的状态,$U$为系统的输入,$Z$传感器测量值,$H$状态到测量值的转换举证,由于传感器示数和状态的单位或者刻度不一样,$H$可能不是单位举证。

转换为离散形式,具体转换过程就叙述了,注意不是简单的替换,这里只是为了方便说明。

  1. 计算值

    其中$w = {\cal N}(0,Q)$是由于模型不确定性和干扰带来的过程噪音

    设$Cov({X_k}) = {P_k}$为${X_k}$的协方差矩阵,又认为$U$的的协方差为0,并且和状态无关,过程噪声和状态也没有关系,则有${P_k} = A{P_{k - 1}}{A^{\rm{T}}}$
    所以就算值的协方差矩阵为

    综上,计算值的概率分布为

  2. 测量值
    测量值的概率分布为,
    其中$R$为传感的噪声的方差

  3. 融合计算值和测量值
    借助上面高斯分布融合公式得到如下公式,用估计值作为计算值迭代求解下次估计值,初始状态估计值的均值的协方差可以大概给一个,会随着迭代次增加接近真实值。

引用

  1. 卡尔曼滤波器 视频详解
  2. How a Kalman filter works, in pictures
  3. 详解卡尔曼滤波原理

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 yangbenbo@whu.edu.cn

文章标题:卡尔曼滤波

本文作者:杨本泊

发布时间:2021-07-04, 10:21:23

最后更新:2023-07-09, 07:10:12

原始链接:http://yangbenbo.github.io/2021/07/04/卡尔曼滤波/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录