卡尔曼滤波器综述_第1页
卡尔曼滤波器综述_第2页
卡尔曼滤波器综述_第3页
卡尔曼滤波器综述_第4页
卡尔曼滤波器综述_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、卡尔曼滤波器综述瞿伟军 G100741、卡尔曼滤波的起源1960年,匈牙利数学家卡尔曼发表了一篇关于离散数据线性滤波递推算法的论文,这意味着卡尔曼滤波的诞生。斯坦利.施密特(Stanley Schmidt)首次实现了卡尔曼滤波器,卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。关于这种滤波器的论文由Swerling (1958)、Kalman (1960)与 Kalman and Bucy (1961)发表。2、卡尔曼滤波的发展卡尔曼滤波是一种有着相当广泛应用的滤波方法,但它既需要假定系统是线性的,又需要认为系统中

2、的各个噪声与状态变量均呈高斯分布,而这两条并不总是确切的假设限制了卡尔曼滤波器在现实生活中的应用。扩展卡尔曼滤波器(EKF)极大地拓宽了卡尔曼滤波的适用范围。EKF的基本思路是,假定卡尔曼滤滤对当前系统状态估计值非常接近于其真实值,于是将非线性函数在当前状态估计值处进行台劳展开并实现线性化。另一种非线性卡尔曼滤波叫线性化卡尔曼滤波。它与EKF的主要区别是前者将非线函数在滤波器对当前系统状态的最优估计值处线性化,而后者因为预先知道非线性系统的实际运行状态大致按照所要求、希望的轨迹变化,所以这些非线性化函数在实际状态处的值可以表达为在希望的轨迹处的台劳展开式,从而完成线性化。不敏卡尔曼滤波器(UK

3、F)是针对非线性系统的一种改进型卡尔曼滤波器。UKF处理非线性系统的基本思路在于不敏变换,而不敏变换从根本上讲是一种描述高斯随机变量在非线性化变换后的概率分布情况的方法。不敏卡尔曼滤波认为,与其将一个非线性化变换线性化、近似化,还不如将高斯随机变量经非线性变换后的概率分布情况用高斯分布来近似那样简单,因而不敏卡尔曼滤波算法没有非线性化这一步骤。在每一定位历元,不敏卡尔曼滤波器按照一套公式产生一系列样点,每一样点均配有一个相应的权重,而这些带权的样点被用来完整地描述系统状态向量估计值的分布情况,它们替代了原先卡尔曼滤波器中的状态向量估计值及协方差。不敏卡尔曼滤器让这些样点一一经历非线性状态方程与

4、测量方程,然后再将这些经非线性变换后的样点按照它们的权重而综合出对当前时刻的系统状态向量估计值。多态自适应(MMA)卡尔曼滤波器是一种受到广泛关注的滤波器,它由好多个并联、同时运行的卡尔曼滤波器组成。在这组卡尔曼滤波器中,每一个滤波器对未知的滤波参数分别做出相互不同的假设,然后各自按照自己的模型假设进行滤波计算,而多态自适应滤波器最后将它们对系统状态的各个估计值进行加权,并以此作为最优估计值输出。3、卡尔曼滤波器概述简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优

5、,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。卡尔曼滤波器由一系列递归数学公式描述,它们提供了一种高效可计算的方法来估计过程的状态,并使估计均方误差最小。卡尔曼滤波器应用广泛且功能强大,它可以估计信号的过去和当前状态,甚至能估计将来的状态,即使并不知道模型的确切性质。假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的经验

6、不是100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian Distribution)。另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。我们也把这些偏差看成是高斯白噪声。现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。假如我们要估算时刻的是实际温度值。首先你要根据时刻的温度值,来预测时刻的温度。因为你相信温度是恒定

7、的,所以你会得到时刻的温度预测值是跟时刻一样的,假设是度,同时该值的高斯噪声的偏差是度(是这样得到的:如果时刻估算出的最优温度值的偏差是,你对自己预测的不确定度是度,他们平方相加再开方,就是)。然后,你从温度计那里得到了时刻的温度值,假设是度,同时该值的偏差是度。由于我们用于估算时刻的实际温度有两个温度值,分别是度和度。究竟实际温度是多少呢?相信自己还是相信温度计呢?究竟相信谁多一点,我们可以用他们的协方差来判断。因为,所以,我们可以估算出时刻的实际温度值是:度。可以看出,因为温度计的协方差比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。现在我们已经得到时刻的最优温度值了,下一

8、步就是要进入时刻,进行新的最优估算。到现在为止,好像还没看到什么自回归的东西出现。对了,在进入时刻之前,我们还要算出时刻那个最优值(度)的偏差。算法如下:。这里的就是上面的时刻你预测的那个度温度值的偏差,得出的就是进入时刻以后时刻估算出的最优温度值的偏差(对应于上面的)。就是这样,卡尔曼滤波器就不断的把协方差递归,从而估算出最优的温度值。他运行的很快,而且它只保留了上一时刻的协方差。上面的,就是卡尔曼增益(Kalman Gain)。他可以随不同的时刻而改变他自己的值。4、卡尔曼滤波器算法首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic

9、 Difference equation)来描述: (3.1)再加上系统的测量值: (3.2)上两式子中,是时刻的系统状态,是时刻对系统的控制量。和是系统参数,对于多模型系统,他们为矩阵。是时刻的测量值,是测量系统的参数,对于多测量系统,为矩阵。和分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的协方差分别是(这里我们假设他们不随系统状态变化而变化)。对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面我们来用他们结合他们的协方差s 来估算系统的最优化输出。首先我们要利用系统的过程模型,来预测下

10、一状态的系统。假设现在的系统状态是,根据系统的模型,可以基于系统的上一状态而预测出现在状态: (3.3)式(3.3)中,是利用上一状态预测的结果,是上一状态最优的结果,为现在状态的控制量,如果没有控制量,它可以为0。到现在为止,我们的系统结果已经更新了,可是,对应于的协方差(协方差)还没更新。我们用表示协方差: (3.4)式(3.4)中,是对应的协方差,是对应的协方差,表示的转置矩阵,是系统过程的协方差。式子(3.3),(3.4)就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态的最

11、优化估算值: (3.5)其中为卡尔曼增益(Kalman Gain): (3.6)到现在为止,我们已经得到了状态下最优的估算值。但是为了要令卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新状态下的协方差: (3.7)其中为1的矩阵,对于单模型单测量,。当系统进入状态时,就是式子(3.4)的。这样,算法就可以自回归的运算下去。式子(3.3),(3.4),(3.5),(3.6)和(3.7)就是卡尔曼滤波器的基本原理了。根据这5个公式,可以很容易的实现计算机的程序。5、卡尔曼滤波器的原理在现代,随机最优控制和随机信号处理技术中,信号和噪声往往是多维非平稳随机过程。卡尔曼滤波理论采用时域上的递推

12、算法在数字计算机上进行数据滤波处理。对于离散域线性系统: (3.8) (3.9)式中,为过程噪声信号, 为测量噪声信号。离散卡尔曼滤波器递推算法为: (3.10) (3.11) (3.12) (3.13) (3.14)误差的协方差为: (3.15)卡尔曼滤波器结构如图所示 卡尔曼滤波器结构6、卡尔曼滤波器的应用实例6.1、基于VDLL的GPS信号跟踪算法图2 VDLL的基本结构系统的状态量为用户状态( 位置、速度、用户钟差、用户钟漂移) ,观测量为所有卫星通道的码环鉴相器输出组成的矢量D(X) X=(x y z b )TD(X)=(D(1) D(2) D(N)T (3-1)其中x,y,z,b,

13、分别为在ECEF( Earth Centered Earth Fixed, 地心坐标系) 下的用户接收机三维位置和速度, b, 分别为接收机钟差和钟差变化率。预检测积分时间T 选择为1ms,即滤波器迭代的k时刻与k+1时刻间隔1ms。假设用户为匀加速运动,可写出状态方程如下 (3-2)其中wk-1 为状态扰动噪声。 导航滤波器把k- 1 时刻的状态和对应的卫星位置信息反馈给本地信号生成模块,产生超前、即时与滞后码序列,分别与k时刻的1ms 卫星信号的同相支路与正交支路做相关运算,即图2 中的“积分存储”模块。为了去除对信号幅度变化的敏感性和对载波环路锁定的依赖性,码环鉴相器选择归一化的超前码与

14、滞后码相关能量差( 第i 颗卫星) (3-3)该码环鉴相器在没有噪声的理想情况下,当超前码与滞后码间距为1 chip( 码片) 时,在0.5 chip 输入误差范围内,鉴相器输出等于真实的跟踪误差。在实际应用中,超前滞后码的移位通常以采样点为单位,1 个chip 的长度不一定为整数个采样点,但鉴相器仍然与输入误差成线性关系,所以式可写为 (3-4)其中gi 为待求的鉴相器特性在线性区的斜率, vi, k为观测噪声。鉴相器输入误差是k时刻( 接收机时刻) 第i颗卫星1ms 长度的采样信号与本地即时码之间的相位偏移,而本地即时码的初始相位值等于k- 1时刻对卫星信号的相位估计。所以i, k实质上是

15、k时刻卫星信号的相位与k - 1时刻的相位估计之差,等于k 时刻信号传输延迟的真实值与k- 1 时刻信号传输延迟的估计值。 k 时刻接收到第i颗卫星信号的理论测量延迟为 (3-5)其中( xk , yk , zk ) 为k 时刻用户的三维位置坐标,( xi, k , yi, k , zi, k ) 为k 时刻第i 颗卫星的位置坐标,bk 为k 时刻的接收机钟差。K-1 时刻信号传输延迟的估计值可由k-1 时刻的用户状态估计 ( k- 1 |k- 1) 和卫星位置计算得到 (3-6)由( 4) ) ( 6) 式,可写出第i 颗卫星的观测方程如下 (3-7)其他卫星的观测方程可以类似地写出。6.2

16、 卡尔曼滤波器的仿真及分析6.2.1 系统描述验证卡尔曼滤波器的滤波性能对象为二阶传递函数: (3.16)取采样时间为1ms,采样Z变换将对象离散化,并描述离散状态方程的形式: (3.17) (3.18)带有测量噪声的被控对象输出为: (3.19)式中,6.2.2 仿真方法一:采用M语言进行仿真控制干扰信号和测量噪声信号 幅值均为0.10的白噪声信号,输入信号幅值为1.0、频率为1.5Hz的正图信号。采用卡尔曼滤波器实现信号的滤波,取。仿真时间为3s,误差协方差的变化,原始信号及带有噪声的原始信号和原始信号及滤波后的信号和分别如图1、图2和图3所示。图1误差协方差的变化 图2原始信号及带有噪声

17、的原始信号图3原始信号及滤波后的信号仿真结果表明,该滤波器对控制干扰和测量噪声具有良好的滤波作用。6.2.3 仿真方法二 :采用Simulink进行仿真卡尔曼算法由M函数实现。控制干扰信号和测量噪声信号幅值均为0.10的白噪声信号,输入信号幅值为1.0、频率为0.5Hz的正弦信号采用卡尔曼滤波器实现信号的滤波,取。仿真时间为10s,仿真结果如下图4和图5所示 图4 原始信号(红色线)及滤波后的信号(黄色线)图5原始信号及带有噪声的原始信号仿真程序如下图所示基于Kalman滤波器的Simulink仿真6.3 基于卡尔曼滤波器的 PID 控制算法及仿真6.3.1 基于卡尔曼滤波器 PID 控制的原理结合卡尔曼滤波器与经典PID控制得到一种基于卡尔曼滤波器的PID控制方法。其控制系统结构如图:PID被控对象卡尔曼 滤波器rin + + _+ 控制干扰 测量噪声 yout

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论