中文第二章卡尔曼滤波器共20页
- 格式:ppt
- 大小:579.00 KB
- 文档页数:20
卡尔曼滤波技术介绍卡尔曼滤波器是在估计线性系统状态的过程中,以最小均方差为目的而推导出的几个递推数学等式,也可以从贝叶斯推断的角度来推导。
本文将分为两部分:第一部分,结合例子,从最小均方差的角度,直观地介绍卡尔曼滤波的原理,并给出较为详细的数学推导。
第二部分,通过两个例子给出卡尔曼滤波的实际应用。
其中将详细介绍一个匀加速模型,并直观的对比系统状态模型的建立对滤波的影响。
第一部分先看一个对理解卡尔曼滤波能起到作用的的笑话:一片绿油油的草地上有一条曲折的小径,通向一棵大树.一个要求被提出:从起点沿着小径走到树下.“很简单.” A说,于是他丝毫不差地沿着小径走到了树下.现在,难度被增加了:蒙上眼。
“也不难,我当过特种兵。
” B说,于是他歪歪扭扭地走到了树旁。
“唉,好久不练,生疏了。
” (只凭自己的预测能力)“看我的,我有DIY 的GPS!” C说,于是他像个醉汉似地歪歪扭扭的走到了树旁。
“唉,这个GPS 没做好,漂移太大。
”(只依靠外界有很大噪声的测量)“我来试试。
” 旁边一也当过特种兵的拿过GPS, 蒙上眼,居然沿着小径很顺滑的走到了树下。
(自己能预测+测量结果的反馈)“这么厉害!你是什么人?”“卡尔曼! ”“卡尔曼?!你就是卡尔曼?”众人大吃一惊。
“我是说这个GPS 卡而慢。
”此段引用自 highgear 的《授之以渔:卡尔曼滤波器...大泄蜜...》 (点击可跳转到该网页)这个小笑话很有意思的指出了卡尔曼滤波的核心,预测+测量反馈,记住这种思想。
在介绍卡尔曼滤波前,简单说明几个在学卡尔曼过程中要用到的概念。
即什么是协方差,它有什么含义,以及什么叫最小均方差估计,什么是多元高斯分布。
如果对这些有了了解,可以跳过,直接到下面的分割线。
均方差:它是"误差"的平方的期望值(误差就是每个估计值与真实值的差),也就是多个样本的时候,均方差等于每个样本的误差平方再乘以该样本出现的概率的和。
卡尔曼滤波卡尔曼滤波(Kalman filtering ) 一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。
由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
斯坦利施密特(Stanley Schmidt)首次实现了卡尔曼滤波器。
卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。
关于这种滤波器的论文由Swerli ng (1958), Kalman (I960) 与Kalma n and Bucy (1961) 发表。
数据滤波是去除噪声还原真实数据的一种数据处理技术,Kalman滤波在测量方差已知的情况下能够从一系列存在测量噪声的数据中,估计动态系统的状态•由于,它便于计算机编程实现,并能够对现场采集的数据进行实时的更新和处理,Kalman滤波是目前应用最为广泛的滤波方法,在通信,导航,制导与控制等多领域得到了较好的应用•中文名卡尔曼滤波器,Kalman滤波,卡曼滤波外文名KALMAN FILTER表达式X(k)=A X(k-1)+B U(k)+W(k)提岀者斯坦利施密特提岀时间1958应用学科天文,宇航,气象适用领域范围雷达跟踪去噪声适用领域范围控制、制导、导航、通讯等现代工程斯坦利施密特(Stanley Schmidt)首次实现了卡尔曼滤波器。
卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导—航电脑使用了这种滤波器。
关于这种滤波器的论文由Swerling (1958), Kalman (1960)与Kalma n and Bucy (1961) 发表。
2定义传统的滤波方法,只能是在有用信号与噪声具有不同频带的条件下才能实现. 20世纪40年代,N .维纳和A. H .柯尔莫哥罗夫把信号和噪声的统计性质引进了滤波理论,在假设信号和噪声都是平稳过程的条件下,利用最优化方法对信号真值进行估计,达到滤波目的,从而在概念上与传统的滤波方法联系起来,被称为维纳滤波。
卡尔曼滤波器原理详解卡尔曼滤波器将状态估计模型分为两个部分:状态预测和状态更新。
在状态预测阶段,滤波器根据上一时刻的状态估计值和状态转移模型预测当前时刻的状态。
在状态更新阶段,滤波器根据当前时刻的观测值和状态观测模型更新对当前时刻状态的估计。
状态预测模型可表示为:x(k)=F(k-1)*x(k-1)+B*u(k-1)+w(k-1)其中x(k)为k时刻的状态向量,F(k-1)为状态转移矩阵,u(k-1)为输入向量,B为输入矩阵,w(k-1)为过程噪声。
状态预测模型描述了下一个时刻状态如何由当前时刻的状态得到,并考虑了外部输入和过程噪声的影响。
状态观测模型可表示为:z(k)=H(k)*x(k)+v(k)其中z(k)为k时刻的观测向量,H(k)为观测矩阵,v(k)为观测噪声。
状态观测模型描述了观测向量与状态向量之间的关系,并考虑了观测噪声的影响。
卡尔曼滤波器的更新步骤分为两个步骤:预测和更新。
预测步骤根据上一时刻的状态估计值和预测模型得到当前时刻的预测状态和预测误差协方差矩阵。
更新步骤根据当前时刻的观测值和观测模型计算卡尔曼增益和更新后的状态估计值。
预测步骤中的预测状态和预测误差协方差矩阵可由以下公式计算:x^(k,k-1)=F(k)*x(k-1,k-1)+B*u(k)P(k,k-1)=F(k)*P(k-1,k-1)*F(k)^T+Q(k)其中x(k,k-1)为当前时刻的预测状态,P(k,k-1)为当前时刻的预测误差协方差矩阵,x(k-1,k-1)为上一时刻的状态估计值,P(k-1,k-1)为上一时刻的状态估计误差协方差矩阵,Q(k)为过程噪声的协方差矩阵。
更新步骤中的卡尔曼增益和更新后的状态估计值可由以下公式计算:K(k)=P(k,k-1)*H(k)^T*(H(k)*P(k,k-1)*H(k)^T+R(k))^-1x(k,k)=x(k,k-1)+K(k)*(z(k)-H(k)*x(k,k-1))P(k,k)=(I-K(k)*H(k))*P(k,k-1)其中K(k)为卡尔曼增益,x(k,k)为当前时刻的更新后的状态估计值,P(k,k)为当前时刻的更新后的状态估计误差协方差矩阵,R(k)为观测噪声的协方差矩阵。
卡尔曼滤波一、卡尔曼滤波的起源谈到信号的分析与处理,就离不开滤波两个字。
通常,信号的频谱处于有限的频率范围内,而噪声的频谱则散布在很广的频率范围内,为了消除噪声,可以把FIR滤波器或者IIR滤波器设计成合适的频带滤波器,进行频域滤波。
但在许多应用场合,需要直接进行时域滤波,从带噪声的信号中提取有用信号。
虽然这样的过程其实也算是对信号的滤波,但其所依据的理论,即针对随机信号的估计理论,是自成体系的.人们对于随机信号干扰下的有用信号不能“确知”,只能“估计”.为了“估计",要事先确定某种准则以评定估计的好坏程度.最小均方误差是一种常用的比较简单的经典准则。
对于平稳时间序列的最小均方误差估计的第一个明确解是维纳在1942年2月首先给出的.当时美国的一个战争研究团体发表了一个秘密文件,其中就包括维纳关于滤波问题的研究工作,这项研究是用于防空火力控制系统的.维纳滤波器是基于最小均方误差准则的估计器。
为了寻求维纳滤波器的冲激响应,需要求解著名的维纳–霍夫方程。
这种滤波理论所求的是使均方误差最小的系统最佳冲激响应的明确表达式。
从维纳–霍夫方程来看,维纳滤波算法是十分低效的。
这种算法要求设置大量的存储器来保存过去的测量数据,一个新的数据到来后,要进行刷新,重新计算自相关和互相关序列。
再者,求解这个方程需要耗费大量时间对高阶矩阵求逆。
因此,维纳滤波算法难以运用于实时处理中,尤其是无法用于军事、航空航天等领域。
为此,许多科技工作者进行了多方探索,但在解决非平稳过程的滤波问题时,能给出的方法很少。
到20世纪50年代中期,随着空间技术的发展,要求对卫星轨道进行精确地测量,这种方法越来越不能满足实际应用的需要。
为此,人们将滤波问题以微分方程表示,提出了一系列适应空间技术应用的精炼算法。
1960年和1961年,卡尔曼(R. E. Kalman)和布西(R. S。
Bucy)提出了递推滤波算法,成功的将状态变量引入到滤波理论中来,用消息与干扰的状态空间模型代替了通常用来描述它们的协方差函数,将状态空间描述与离散数间刷新联系起来,适于计算机直接进行计算,而不是去寻求滤波器冲激响应的明确公式。
随机线性系统卡尔曼滤波器Kalman滤波是R.E.Kalman于1960年首次提出的。
它是一种线性最小方差估计,使用状态空间法在时域内设计滤波器,算法具有递推性,适于对多维随机过程(平稳的、非平稳的)进行估计,具有连续和离散两类算法,便于在计算机上实现。
1 离散系统数学模型随机线性离散系统的一般模型如下:()()()()()()()()()11111++++=++=+k k k H k k k G k k A k v x z w x x式中,为维状态列向量,为维过程噪声列向量;x n w p z 为维测量列向量,为测量噪声列向量。
m v m 我们的目的是要建立一种递推算法,在给定测量序列()(){}k k z z Z ,,0L =的情况下能够得到()k x 的最优估值。
这种算法称为卡尔曼滤波器。
假设1:(){}k w 和(){}k v 是互不相关的高斯白噪声序列,且()[]0w =k E , ()[]0v =k E ()()[]()kj T k Q j k E δ=w w , 0≥Q ()()[]()kj T k R j k E δ=v v , 0>R ()()[]0=j k E T v w ,对于所有的k 和j 假设2:初始状态()0x 是一个高斯随机向量,且已知均值和方差()[]00m x =E()()(){}(){}[]000000P E Var T =−−=m x m x x假设3:初始状态()0x 和噪声序列(){}k w 和(){}k v 是不相关的,即()()[]00=k E T w x , 对所有k ()()[]00=k E Tv x , 对所有k 假设4:系统的矩阵()k A 、()k G 和()k H 是已知的。
在上述假定下,系统状态()k x 是高斯随机向量,(){}k x 则是高斯随机序列,也是马尔柯夫随机序列。
换句话说,一个线性系统,在高斯白噪声的驱动下,在任一时刻,系统的状态是高斯随机向量,由系统状态所构成的随机序列是高斯随机序列,且是高斯—马尔柯夫序列。
卡尔曼滤波器介绍Greg Welch1and Gary Bishop2TR95-041Department of Computer ScienceUniversity of North Carolina at Chapel Hill3Chapel Hill,NC27599-3175翻译:姚旭晨更新日期:2006年7月24日,星期一中文版更新日期:2007年1月8日,星期一摘要1960年,卡尔曼发表了他著名的用递归方法解决离散数据线性滤波问题的论文。
从那以后,得益于数字计算技术的进步,卡尔曼滤波器已成为推广研究和应用的主题,尤其是在自主或协助导航领域。
卡尔曼滤波器由一系列递归数学公式描述。
它们提供了一种高效可计算的方法来估计过程的状态,并使估计均方误差最小。
卡尔曼滤波器应用广泛且功能强大:它可以估计信号的过去和当前状态,甚至能估计将来的状态,即使并不知道模型的确切性质。
这篇文章介绍了离散卡尔曼理论和实用方法,包括卡尔曼滤波器及其衍生:扩展卡尔曼滤波器的描述和讨论,并给出了一个相对简单的带图实例。
1welch@,/˜welch2gb@,/˜gb3北卡罗来纳大学教堂山分校,译者注。
1Welch&Bishop,卡尔曼滤波器介绍21离散卡尔曼滤波器1960年,卡尔曼发表了他著名的用递归方法解决离散数据线性滤波问题的论文[Kalman60]。
从那以后,得益于数字计算技术的进步,卡尔曼滤波器已成为推广研究和应用的主题,尤其是在自主或协助导航领域。
[Maybeck79]的第一章给出了一个非常“友好”的介绍,更全面的讨论可以参考[Sorenson70],后者还包含了一些非常有趣的历史故事。
更广泛的参考包括[Gelb74,Grewal93,Maybeck79,Lewis86,Brown92,Jacobs93]。
被估计的过程信号卡尔曼滤波器用于估计离散时间过程的状态变量x∈ n。
这个离散时间过程由以下离散随机差分方程描述:x k=Ax k−1+Bu k−1+w k−1,(1.1)定义观测变量z∈ m,得到量测方程:z k=Hx k+v k.(1.2)随机信号w k和v k分别表示过程激励噪声1和观测噪声。
第二章 估计的一般方法2.1 概 述2.1.1 估计问题考虑一个动态系统,它的状态是一个时间的函数,以n 维时间随机过程(){}k X 表示,{} ,2,1,0=∈t I k 。
假定我们已经完成一个序列的测量()()()m Z Z Z ,,1,0 ,以一个与()k X 有关的测量系统,顺序地测量完成的。
我们希望以某种方法利用测量值提供()k X 。
我们的假定序列(){}m j j Z ,,0, =是一个离散时间随机过程。
给定测量记录()(){}m Z Z ,,0 ,我们据这些测量值表示()k X 的一个估值,以符号()m k Xˆ表示。
作为一个测量的函数,确定状态的估值为 ()()[]m j j Z q m k X k,,0,ˆ == (2-1) 可以说成:估值问题是以某种方法确定[]*k q 的问题。
在本质上,估值问题的解就是要开发一个适当的算法,采用这种算法,人们能够产生噪声系统状态的近似表达形式。
可以分为三种类型:1. 滤波问题在(2-1)式中,令m k =,将得到滤波问题。
是利用直到k 时刻的测量数据,估计()k X ,将估值记为()k k Xˆ。
可以指出三点: ① 我们希望得到在k 时刻的()k X 值; ② 测量数据采集到k 时刻,没有以后的数据; ③ 直到k 时刻的测量记录被用来估计状态。
2. 平滑问题在(2-1)式中,当m k <时,前述的估值问题就变为平滑问题。
平滑问题区别于滤波问题,在于关于()k X 的信息。
在测量数据的形式中,在时刻k 的测量值,变为可以不采用。
特点:① 在产生状态值上,有延迟; ② 比滤波问题所用数据多。
3. 预测问题在(2-1)式中,当m k >时,估值问题变成预测问题。
预测问题的目的,是在k 时刻得到有关()s k X +,0>s 的信息。
因此,表示了一种预测,预估计()*X 是怎样的值。
综上所述,有:当m k =时,()m k Xˆ叫做()k X 的最优滤波值; 当m k <时,()m k Xˆ叫做()k X 的平滑值; 当m k >时,()m k Xˆ叫做()k X 的预测值。