
3-卡尔曼滤波-1详解.ppt
35页单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,卡尔曼滤波,Kalman Filtering,背景介绍:,Kalman,匈牙利数学家卡尔曼滤波器源于他的博士论,文和1960年发表的论文A New,Approach to Linear Filtering,and Prediction Problems线,性滤波与猜测问题的新方法估量原理和卡尔曼滤波,1.状态估量原理,2.为什么要用状态估量理论,3.经典把握理论与现代把握理论,4.什么是卡尔曼滤波,5.卡尔曼滤波器的软硬件实现,6.卡尔曼滤波器的应用,1.状态估量原理,状态估量是卡尔曼滤波的重要组成局部一般来说,依据观测数据对随机量进展定量推断就是估量问题,特殊是对动态行为的状态估量,它能实现实时运行状态的估量和猜测功能比方对飞行器状态估量状态估量对于了解和把握一个系统具有重要意义,所应用的方法属于统计学中的估量理论最常用的是最小二乘估量,线性最小方差估量、最小方差估量、递推最小二乘估量等其他如风险准则的贝叶斯估量、最大似然估量、随机靠近等方法也都有应用。
受噪声干扰的状态量是个随机量,不行能测得准确值,但可对它进展一系列观测,并依据一组观测值,按某种统计观点对它进展估量使估量值尽可能准确地接近真实值,这就是最优估量真实值与估量值之差称为估量误差假设估量值的数学期望与真实值相等,这种估量称为无偏估量卡尔曼提出的递推最优估量理论,承受状态空间描述法,算法承受递推形式,卡尔曼滤波能处理多维和非平稳的随机过程卡尔曼滤波理论的提出,抑制了威纳滤波理论的局限性,使其在工程上得到了广泛的应用,尤其在把握、制导、导航、通讯等现代工程方面关于维纳滤波和卡尔曼滤维纳滤波和卡尔曼滤波都是解决线性滤波和猜测问题的方法,并且都是以均方误差最小为准则的,在平稳条件下两者的稳态结果是全都的但是它们解决问题的方法有很大区分1.维纳滤波是依据全部过去观测值和当前观测值来估量信号的当前值,因此它的解形式是系统的传递函数H(z)或单位脉冲响应h(n),因此更常称这种系统为最正确线性过滤器或滤波器;卡尔曼滤波是用当前一个估量值和最近一个观测值来估量信号的当前值,它是用状态方程和递推的方法进展估量的,它的解形式是以估量值(常常是状态变量值因此更常称这种系统为线性最优估量器或滤波器。
2.维纳滤波只适用于平稳随机过程,卡尔曼滤波就没有这个限制3.维纳过滤中信号和噪声是用相关函数表示的,因此设计维纳滤波器要求信号和噪声的相关函数卡尔曼过滤中信号和噪声是状态方程和量测方程表示的,因此设计卡尔曼滤波器要求状态方程和量测方程(固然,相关函数与状态方程和量测方程之间会存在确定的关系)卡尔曼过滤方法看来似乎比维纳过滤方法优越,它用递推法计算,不需要知道全部过去的数据,从而运用计算机计算便利,而且它可用于平稳和不平稳的随机过程(信号),非时变和时变的系统但从进展历史上来看维纳滤波的思想是40年月初提出来的,1949年正式以书的形式出版卡尔曼滤波到60年月初才提出来,它是在维纳滤波的根底上进展起来的,虽然如上所述它比维纳滤波方法有不少优越的地方,但是最正确线性滤波问题是由维纳滤波首先解决的,维纳滤波的物理概念比较清晰,也可以认为卡尔曼滤波仅仅是对最正确线性过滤问题提出的一种新的算法当被估量的状态变量很多时,卡尔曼滤波运算量以及存储量将会变得很大,由于需要存储和更新状态猜测误差的自相关矩阵这也是他的缺点wiener滤波用于标量滤波,而kalman滤波可用于矢量滤波,所以应用也更广些2为什么要用状态估量理论 在很多实际问题中,由于随机过程的存在,常常不能直接获得系统的状态参数,需要从夹杂着随机干扰的观测信号中分别出系统的状态参数。
例如,飞机在飞行过程中所处的位置、速度等状态参数需要通过雷达或其它测量装置进展观测,而雷达等测量装置也存在随机干扰,因此在观测到飞机的位置、速度等信号中就夹杂着随机干扰,要想正确地得到飞机的状态参数是不行能的,只能依据观测到的信号来估量和猜测飞机的状态,这就是估量问题从观测到的信号中估量出状态的估值,并且希望估值与状态的真值越小越好,即要求有:成立;因此存在最优估量问题,这就是卡尔曼滤波卡尔曼滤波的最优估量需满足以下三个条件:无偏性,即估量值的均值等于状态的真值;估量的方差最小;实时性从以上分析可以看出卡尔曼滤波就是在有随机干扰和噪声的状况下,以线性最小方差估量方法给出状态的最优估量值,卡尔曼滤波是在统计的意义上给出最接近状态真值的估量值因此,卡尔曼滤波在空间技术、测轨、导航、拦截与通讯等方面获得了广泛的应用3经典把握理论与现代把握理论 经典把握理论只适应与单输入单输出的线性定常系统,争论方法是传递函数传递函数在本质上是一种频率法,要靠各个频率重量描述信号因此,频率法限制了系统对整个过程在时间域内进展把握的力气,所以经典把握理论很难实现实时把握同时,经典把握理论也很难实现最优把握经典把握系统的组成,由于经典把握理论的上述局限性,随着科学技术的进展,特殊是空间技术和各类高速飞行器的快速进展,要求把握高速度、高精度的受控对象,把握系统更加简洁,要求把握理论解决多输入多输出、非线性以及最优把握等设计问题。
这些新的把握要求经典把握理论是无法解决的现代把握理论是建立在状态空间根底上的,它不用传递函数,而是用状态向量方程作为根本工具,因此可以用来分析多输入多输出、非线性以准时变简洁系统的争论现代把握理论本质上是时域法,信号的描述和传递都是在时间域进展,所以现代把握理论具有实现实时把握的力气由于承受了状态空间法,现代把握理论有利于设计人员依据给定的性能指标设计出最优的把握系统卡尔曼滤波把握系统构造图 由于系统的状态x是不确定的,卡尔曼滤波器的任务就是在有随机干扰w和噪声v的状况下给出系统状态x的最优估算值 ,它在统计意义下最接近状态的真值x,从而实现最优把握u()的目的4.什么是卡尔曼滤波:卡尔曼滤波是性最小方差估量的根底上,提出的在数学构造上比较简洁的而且是最优线性递推滤波方法,具有计算量小、存储量低,实时性高的优点特殊是对经受了初始滤波后的过渡状态,滤波效果特殊好假设系统是高斯的,卡尔曼滤波是最优的最小均方误差估量;假设系统不是高斯的,卡尔曼滤波是线性最小均方误差估量,是最优的线性估量器卡尔曼滤波是以最小均方误差为估量的最正确准则,来寻求一套递推估量的算法根本思想是:承受信号与噪声的状态空间模型,利用前一时刻的估量值和现时刻的观测值来更新对状态变量的估量,求现在时刻的估量值。
它适合于实时处理和计算机运算卡尔曼滤波的实质是由量测值重构系统的状态向量它以“猜测实测修正”的挨次递推,依据系统的量测值来消退随机干扰,再现系统的状态,或依据系统的量测值从被污染的系统中恢复系统的原来面目卡尔曼滤波特点:卡尔曼滤波是解决状态空间模型估量与猜测的有力工具之一,它不需存储历史数据,就能够从一系列的不完全以及包含噪声的测量中,估量动态系统的状态卡尔曼滤波是一种递归的估量,即只要获知上一时刻状态的估量值以及当前状态的观测值就可以计算出当前状态的估量值,因此不需要记录观测或者估量的历史信息卡尔曼滤波器与大多数我们常用的滤波器不同之处,在于它是一种纯粹的,时域,滤波器,不需要像,低通滤波器,等,频域,滤波器那样,需要在频域设计再转换到时域实现5.卡尔曼滤波器的软硬件实现 目前,卡尔曼滤波器已经有很多不同的实现形式卡尔曼最初提出的形式现在一般称为简洁卡尔曼滤波器除此以外,还有施密特扩展卡尔曼滤波器,信息滤波器以及平方根滤波器最常见的卡尔曼滤波器是锁相环,承受FPGA硬件可以实现卡尔曼滤波器硬件实现卡尔曼滤波器有良好的滤波效果,但由于其计算量大,当采样率高时,一个采样周期内难以完成计算,且计算机的字长有限,使计算中舍入误差和截断误差积存、传递,造成数值不稳定,因此用MCU和DSP难以实现。
FPGA可以实现并行计算,它有多个乘法器和累加器并行处理数据,承受FPGA实现的卡尔曼滤波器,由于输入和输出数据计算同时进展,因此可以大大提高滤波速度一般,数字滤波器的FPGA实现是用VHDL或Verilog HDL等硬件描述语言通过编写底层代码实现这种编程方式效率低,难度大利用Altera公司FPGA的DSP开发工具DSP Builder设计卡尔曼滤波器,比基于硬件描述语言的设计,周期更短,设计更简洁基于现场可编程规律门阵列FPGA器件和模数转换器设计的数据采集系统为硬件平台,进展算法设计基于模块化设计思想,设计时钟分频模块、AD转换芯片的FPGA把握模块和卡尔曼滤波模块卡尔曼滤波模块承受DSP Builder设计,转换成硬件描述语言VHDL后,应用软件Modelsim、QuartusII进展仿真并完成硬件验证软件实现 很多物理进程,如路上行驶的车辆、围绕地球轨道运转的卫星、由绕组电流驱动的电机轴或正弦射頻载波信号,均可用线性系统来近似线性系统是指能用如下两个方程描述的简洁进程:,状态方程:输出方程:在上述方程中,A、B和C均为矩阵,k是时间系数,x称为系统状态,u是系统的输入,y是所测量的输出。
w和z表示噪音,其中变量w称为进程噪音,z称为测量噪音,它们都是向量卡尔曼滤波的算法流程为:1.预估量X(k)=F(k,k-1)X(k-1)2.计算预估量协方差矩阵3.C(k)=F(k,k-1)C(k)F(k,k-1)”+T(k,k-1)Q(k)T(k,k-1)”4.Q(k)=U(k)U(k)”5.计算卡尔曼增益矩阵6.K(k)=C(k)H(k)”H(k)C(k)H(k)”+R(k)(-1)7.R(k)=N(k)N(k)”,8.更新估量 9.X(k)=X(k)+K(k)Y(k)-H(k)X(k)10.计算更新后估量协防差矩阵11.C(k)=I-K(k)H(k)C(k)I-K(k)H(k)+K(k)R(k)K(k)12.X(k+1)=X(k)13.C(k+1)=C(k)14.重复以上步骤该算法可用C语言编程,在计算机上实现卡卡尔曼滤波的一个循环,6.卡尔曼滤波器的应用 卡尔曼滤波器最初是专为飞行器导航而研发的,目前已成功应用在許多领域中卡尔曼滤波器主要用来預估那些只能被系统本身間接或不精確观測的系统状态許多工程系统和嵌入式系统都需要卡尔曼滤波比方,在雷达中,人们感兴趣的是跟踪目标,但目标的位置,速度,加速度的测量值往往在任何时候都有噪声。
卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估量这个估量可以是对当前目标位置的估量(滤波),也可以是对于将来位置的估量(猜测),也可以是对过去位置的估量卡尔曼滤波器应用领域:自动驾驶仪 动态定位系统 经济学,特殊是宏观经济学,时间序列模型,以及 计量经济学 惯性引导系统 雷达跟踪器 卫星导航系统,。
