卡尔曼滤波器推导

161 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

注:受控制领域大牛CAN博士启发,受益匪浅,作此文以为笔记。

简介

  设 在这里插入图片描述

  卡尔曼滤波器是从测量值ZZk的平均数开始的。开始推导: 在这里插入图片描述 由上式可知 在这里插入图片描述   也就是说随着kk的增大,测量结果Zk不在重要,因为已经获得了足够多的测量值,此时的估计值已经很贴近了实际值了。我们令Kk=1/k1/k,即 在这里插入图片描述 可知,Kk[0,1][0,1]之间,当Kk =0=0时,估计值等于上一次计算的估计值,当Kk =1=1时,估计值等于本次测量值,这时引入两个参数eEST,eMEA,令 在这里插入图片描述在这里插入图片描述 其中,eMEA是测量误差,是测量工具自身的属性,是不变的,eEST是估计误差,会受历史数据的影响,即 在这里插入图片描述 由上述几个式子便可使用卡尔曼滤波器来解决实际的问题了。步骤如下: 第一步 在这里插入图片描述 第二步 在这里插入图片描述 第三步 在这里插入图片描述   有一个质量为50g50g的物体,但我们此时并不知道该物体质量是多少,先估计其有46g46g,估计误差为5g5g,将其放在称上称得质量为 在这里插入图片描述 该称的测量误差为3g3g,将所有数据放在Excel里进行计算 在这里插入图片描述 其中蓝色线条表示测量值,红色线条表示估计值,从图中可以看出,尽管测量值起伏较大,但估计值整体趋势很平缓,不断向实际值靠拢且十分接近实际值。

数据融合

  从一个例子入手,设某物体质量为mm,分别用标准差为σ1 =2g=2g和σ2 =4g=4g得称来称该物体,称得质量分别为Z1 =30g=30g和Z2 =33g=33g,求出最优估计值。   从上述中可得式 在这里插入图片描述 此时引入标准差,即估计值的标准差,当标准差越小时,即方差越小,估计值的波动越小,也就越趋于真实值。如下: 在这里插入图片描述 由上式可知,估计值的方差是关于Kk的函数,使估计值方差对Kk求导,即 在这里插入图片描述 将σ1 =2g=2g和σ2 =4g=4g代入上式中,Kk =0.2=0.2,得 在这里插入图片描述

协方差矩阵

  有以下33组数据 在这里插入图片描述 平均值 在这里插入图片描述 方差 在这里插入图片描述 协方差 在这里插入图片描述 协方差矩阵PP 在这里插入图片描述 为方便编程计算,引入一个过渡矩阵AA 在这里插入图片描述在这里插入图片描述 注: 式中的33是指矩阵得维数。   在matlabmatlab中验证一下 在这里插入图片描述 与计算得结果一致。

状态空间表达式

  有如下系统 在这里插入图片描述   该系统中,物块质量为MM,弹簧弹力系数为kk,阻尼系数为BB,系统输入为拉力FF。于是有 在这里插入图片描述 状态变量 在这里插入图片描述

在这里插入图片描述 测量量 在这里插入图片描述 状态空间表达式 在这里插入图片描述 化为离散形式 在这里插入图片描述   由于系统存在各种不确定性,需要加入过程噪声WW和测量噪声VV,即 在这里插入图片描述   WW服从正态分布,期望为00,协方差矩阵为QQ,即P(W)N(0,Q)P(W)-N(0,Q)VV也服从正态分布,期望为00,协方差矩阵为RR,即P(V)N(0,R)P(V)-N(0,R)。其中Q=E[WWT]Q=E[WW^T],推导如下: 在这里插入图片描述 同理,R=E[VVT]R=E[VV^T]

卡尔曼增益推导

  由于过程噪声是不确定的,于是状态估计值先验为 在这里插入图片描述 根据先验估计和测量估计可得出后验估计 在这里插入图片描述G=G= KkHH,则 在这里插入图片描述   我们的目标是求得合理的Kk值使得估计误差最小,有 在这里插入图片描述 同理 在这里插入图片描述   当后验估计值越接近真实值 Xk, 则说明 ek 的方差越小,即 ek 越接近于期望值00。于是有 在这里插入图片描述 接着推导 在这里插入图片描述

在这里插入图片描述

先验误差协方差矩阵

在这里插入图片描述

ek的协方差矩阵Pk

  由之前的推导可得 在这里插入图片描述

总结

在这里插入图片描述