【飞控理论】Kalman Filters学习之一:Kalman Filters的常见用途、什么是状态观测器?


  本文是博主学习笔记,点击这里观看原视频


前言

  卡尔曼滤波器以鲁道夫卡尔曼(Rudolf Kalman)命名,也就是卡尔曼理论的主要开发者,它是一种优化估算算法可以预测你需要的参数,例如位置、速度和方向并且是在存在测量误差的情况下。卡尔曼滤波器的常见应用包括制导与导航控制系统、计算机视觉系统以及信导处理。卡尔曼滤波器的首批应用之一是在19世纪60年代,工程师们在阿波罗项目应用了卡尔曼滤波器,用来估算载人航天器前往月球和返程的最佳轨道。


1、Kalman Filters的常见用途

1.1、数据源无法直接被测量时卡尔曼滤波器是如何进行估算系统的状态

  当你需要监控火箭燃烧室的内部温度时,如果传感器在发动机的燃烧室内,它将被融化,所以需要把它放在燃烧室附近温度较低的地方,这样一来你只能监测到外部温度,在这种情况下你可以得到间接测量值并使用卡尔曼滤波器来计算内部温度的最优估算值。这样,你就可以利用能测量到的值获取原本直接测不到的信息。

1.2、数据源在噪音影响下如何使用卡尔曼滤波器来估计系统的状态

  在汽车的导航系统中使用的车载传感器主要有:
  1、惯性测量单元(IMU),它使用加速度计和陀螺仪来测量汽车的加速度和角速度;
  2、里程表测量汽车行驶的相对距离
  3、GPS接收器接收来自卫星的信号并定位汽车的位置
  在你的汽车进入隧道时,GPS的位置数据将不再可靠。这个时候你可能希望还能相信IMU相信它所提供的加速度信息,然而加速度本身并不能告诉你汽车的位置,所以你需要计算加速度的二次积分获得位移。然而这个计算会越算越偏因为很小误差也会随着时间不断累积,为了能更准确的估算位置你可以结合使用IMU测量值和里程表读数,但是要注意里程表的读数也可能受到轮胎压力和道路状况的影响。
  总而言之你的传感器可以测量汽车的相对位置,可以快速更新但同时也很容易出现错误;GPS接收器提供你的绝对位置但它更新没那么快而且可能会有误差。这时我们就可以使用卡尔曼滤波器结合这三个测量值最终得到汽车最合适的估算位置

1.3、总结

  卡尔曼滤波器可以用于优化估算一些无法直接测量但是可以间接测量的量,它们还用于从受误差影响的传感器测量值中估算出系统状态。


2、状态观测器

  状态观测器这个概念有助于解释卡尔曼滤波器是什么以及它是如何工作的。
  在接下来的讨论中,如果你看到一个带帽子的东酉,这意味着它是状态观测器得到的估计状态,因此如果状态X显示有个帽子那么它是估计状态就像这个X^\widehat X

2.1、模型建立

  我们返回1.1中的实例, 现在我们将之前例子中所需要的变量符号化:
  TextT_{ext}表示传感器获取温度也就是我们可获取的数据
  TinT_{in}表示发动机的燃烧室内实际温度也就是我们所需要的数据
  WfuelW_{fuel}表示火箭的燃油流量也就是我们可以调节的变量
【飞控理论】Kalman Filters学习之一:Kalman Filters的常见用途、什么是状态观测器?
  现在我们假设已知WfuelW_{fuel}TinT_{in}之间的数学关系和TinT_{in}TextT_{ext}之间的数学关系,但是我们的数学模型往往只能得到大概的数据而不是准确的数据。
  T^ext{\widehat T}_{ext}表示推算出的传感器获取温度
  T^in{\widehat T}_{in}表示推算出的发动机的燃烧室内实际温度
【飞控理论】Kalman Filters学习之一:Kalman Filters的常见用途、什么是状态观测器?
  接下来我们需要做的事情就是消除T^ext{\widehat T}_{ext}TextT_{ext}之前的差距以此达到消除T^ext{\widehat T}_{ext}和;TinT_{in}之间的差距的目的。所以我们要接入一个反馈控制系统以此达到使用算法控制WfuelW_{fuel}的目的。
【飞控理论】Kalman Filters学习之一:Kalman Filters的常见用途、什么是状态观测器?
  接下来我们将这些变量重新书写从而方便开始公式推导的部分,从而得到以下模型。
【飞控理论】Kalman Filters学习之一:Kalman Filters的常见用途、什么是状态观测器?

2.2、公式推导

【飞控理论】Kalman Filters学习之一:Kalman Filters的常见用途、什么是状态观测器?
  现在定义了一个新的变量eobs=xx^e_{obs}=x-\widehat x来表示xxx^\widehat x之间的差值。现在将上图中的数学模型中的式子在右方运算从而得到结果:
e˙obs=(AKC)eobs(1){\dot e}_{obs}=(A-KC)e_{obs} \tag{1}
  PS:e˙obs{\dot e}_{obs}表示eobs{e}_{obs}的一阶偏导。
【飞控理论】Kalman Filters学习之一:Kalman Filters的常见用途、什么是状态观测器?

  这个时候我们只需要解式子(1)的一阶齐次线性微分方程就可以得到公式(2)。
eobs(t)=e(AKC)teobs(0)(2)e_{obs}(t)=e^{(A-KC)t}e_{obs}(0) \tag{2}
  根据式子(2)可以看出当(AKC)<0(A-KC)<0eobs0e_{obs}\rightarrow0tt\rightarrow\infty时,x^x\widehat x\rightarrow x。这个时候我们就可以通过调控K值来调节xx的衰减率让x^x\widehat x\rightarrow x选择K的最佳方法就是使用卡尔曼滤波器了