@卡尔曼滤波理解

Kalman Filter For Dummies

翻译

 

如何用卡尔曼滤波算法求解电池SOC(基础篇)——转载留存

卡尔曼滤波算法详细推导     这一篇对预备知识的介绍还是很好的,过程与原理讲解也很到位,应该是目前看到中文里最好的讲解了。 这篇非常好,很值得看!!

一、预备知识

1、协方差矩阵

    X是一个n维列向量,u_ix_i的期望,协方差矩阵为

             P=E[(X-E[X])(X-E[X])^T] 

                =\begin{bmatrix} E[(x_1-u_1)(x_1-u_1)]& E[(x_1-u_1)(x_2-u_2)]& ...& E[(x_1-u_1)(x_n-u_n)]&\\ E[(x_2-u_2)(x_1-u_1)]& E[(x_2-u_2)(x_2-u_2)]& ...& E[(x_2-u_2)(x_n-u_n)]\\ ...& ...& ...& ...&\\ E[(x_n-u_n)(x_1-u_1)]& E[(x_n-u_n)(x_2-u_2)]& ...& E[(x_n-u_n)(x_n-u_n)]& \end{bmatrix}

      可以看出

   协方差矩阵都是对称矩阵且是半正定的  

   协方差矩阵的迹tr(P)X的均方误差

2、用到的两个矩阵微分公式

     公式一:

          \frac{\partial tr(AB)}{\partial A}=B^T

     公式二:若B是对称矩阵,则下式成立

          \frac{\partial tr(ABA^T)}{\partial A}=2AB         

tr表示矩阵的迹,具体推导过程参考相关矩阵分析教程            矩阵微分公式,应该是矩阵论里的内容

扩展卡尔曼滤波新手教程(一)----中文版               这一篇也可以,一些相关概念,更切实一些 。

这里的噪声的概念和之前理解得有点不同,之前以为噪声就是环境干扰。            

翻译自老外(大学老师)的博客(进去点开  EKF Tutorial,还有更加丰富的讲解以及在线曲线调参),应该是比较准确的。

Part2:处理噪声

当然,在真实世界中,像海拔高度的测量是通过如GPS或气压计这样的传感器完成的。这些传感器往往具有不同的精度。例如,For example, Garmin 公司将其测高计产品的输出精度表述为“10英尺“。因此,可以说,如果测高计读到1000英尺的输出结果,那么我们的实际高度可能是990到1010英尺的任意值。如果传感器输出始终保持偏移一个常数值,我们就可以简单地加或减这个常数值来决定我们的海拔高度。然而实际上,传感器的精确度会不断地发生无法预知的变化,从而导致我们观测到的传感器读数始终是真实海拔高度的带有噪声的版本:

我们可以将测量噪声表示为可观测高度范围的百分比,若在观测过程中伴随了相对测量值10%的噪声,则此时的海拔高度的观测值随时间的变化如下图所示:

在这里插入图片描述

 为了更好地完成飞机高度随时间下降的曲线图,我们还应考虑飞机实际的高度变化可能不会是一个平滑的过程。因为任何一个开过飞机的人都会告诉你,当他们驾驶飞机降落时,飞机实际上都会经历一定数量的振荡。这些振荡是由噪声定义的,所以可以被看作是另一种噪声信号:

更具一般性的表示:

其中, 称为过程噪声,因为就像飞机的振荡一样,它是过程中固有的部分,不是由观测或测量带来的。 

所以,测量过程的噪声是由传感器测量精度带来的,而状态转移过程的噪声是干扰。(暂时是这样理解的)

 

你可能感兴趣的:(定位导航,数学与控制)