版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
卡尔曼滤波器及其简matlab仿真一、卡尔曼滤波的起源谈到信号的分析与处理,就离不开滤波两个字。通常,信号的频谱处于有限的频率范围内,而噪声的频谱则散布在很广的频率范围内,为了消除噪声,可以进行频域滤波。但在许多应用场合,需要直接进行时域滤波,从带噪声的信号中提取有用信号。虽然这样的过程其实也算是对信号的滤波,但其所依据的理论,即针对随机信号的估计理论,是自成体系的。人们对于随机信号干扰下的有用信号不能“确知”,只能“估计”。为了“估计”,要事先确定某种准则以评定估计的好坏程度。1960年卡尔曼发表了用递归方法解决离散数据线性滤波问题的论文ANewApproachtoLinearFilteringandPredictionProblem9线性滤波与预测问题的新方法),在这篇文章里一种克服了维纳滤波缺点的新方法被提出来,这就是我们今天称之为卡尔曼滤波的方法。卡尔曼滤波应用广泛且功能强大,它可以估计信号的过去和当前状态甚至能估计将来的状态即使并不知道模型的确切性质。其基本思想是以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值。算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。对于解决很大部分的问题,它是最优,效率最高甚至是最有用的。它的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。卡尔曼滤波不要求保存过去的测量数据,当新的数据到来时,根据新的数据和前一时刻的储值的估计,借助于系统本身的状态转移方程,按照一套递推公式,即可算出新的估值。卡尔曼递推算法大大减少了滤波装置的存储量和计算量,并且突破了平稳随机过程的限制,使卡尔曼滤波器适用于对时变信号的实时处理。二、卡尔曼滤波的原理卡尔曼滤波思想的来源是在海图作业中,航海长通常以前一时刻的船位为基准,根据航向、船速和海流等一系列因素推算下一个船位,但是他并不轻易认为船位就一定在推算船位上,还要选择适当的方法,通过仪器得到另一个推算船位。观测和推算这两个船位一般不重合,航海长需要通过分析和判断选择一个可靠的船位,作为船舰当前的位置。就是以现时刻的最佳估计为在前一时刻的最佳估计的基础上根据现时刻的观测值作线性修正。卡尔曼滤波在数学上是一种线性最小方差统计估算方法,它是通过处理一系列带有误差的实际测量数据而得到物理参数的最佳估算。其实质要解决的问题是要寻找在最小均方误差下X的估计值父。它的特点是可以用递推的方法计算KKX,其所需数据存储量较小,便于进行实时处理。具体来说,卡尔曼滤波就K是要用预测方程和测量方程对系统状态进行估计。设动态系统的状态方程和测量方程分别为:x:①x+rwK K,K-1K-1K,K-1K-1Z=HX+VKKKK上两式子中,X是k时刻的系统状态,①和r 是k-1时刻到k时刻K K,K-1K,K-1的状态转移矩阵,z是k时刻的测量值,h是测量系统的参数,w和V分别K K KK表示过程和测量的噪声,他们被假设成高斯白噪声。如果被估计状态和观测量是满足上述第一式,系统过程噪声和观测噪声满足第二式的假设k时刻的观测XKTOC\o"1-5"\h\z的估计X可按下述方程求解。 ।人 人 人x=Q*x状态的一步预测: k/k-1 k,k-1 k-1 (1)/X均方误差进一步预测: p=°*p*°T+rQrT (2)k/k-1 k,k-1k-1k,k-1 k-1k-1k-1滤波增益矩阵: K=P*HTrH*p*HT+R]-1 ⑶k/k-1 kL.-kk/k-1 kk一滤波估计方程: x=x+kLz-H*x」 (4)k k/k-1 kkk/k-1均方误差更新矩阵(K时刻的最优均方误差)P=[I-K*H]*P (5)k kk/k-1上述就是卡尔曼滤波器挣条基本公式,只有给定初值X和P,根据k时刻00的观测值Z,就可以递推计算得k时刻的状态估计父。KK
下面论述卡尔曼五个公式的推导过程:设系统(1)(2)x=①x+「3k k,k-1k-1 k-1k-(1)(2)z=Hx+vkkkk k>=1其中,动态噪声{3目与量测噪声{vk}是互不相关的零均值白噪声序列,对任意k,j其基本统计性质为:E{3k}=0Cov(3k,?)=E[3k3T]=Qk5kjE{vk}=0 Cov(Vk,Vj)=E[VkVT]=Rk5kjCov(3k,vj)=E[3kvjT]=0其中5口是克罗内克5函数,即:二上打JVif—,,又设初始状态的统计特征为E[xJ*OVarx0=E{(x0—乂。)(x0-2u)t}=P0且乂0与{33,{,}都不相关,即Cov(x0,3k)=0Cov(x0,vk)=0在量测(k-1)次之后,已经有一个xk一1二xk一1/k一1的估计值,要推测k状态的状态值,因为E{3k-J=0,可定义xk/k一1为由k-1次量测值所估计值\.1的一步预测合理数值,即X_=①_X_k/k—1 k,k—1k—1 (3)同样,考虑到E{vk}=0,因而量测的期望值为Hkxk.1也是合适的。考虑到这两点以后利用第k次的量测数据zk来估计Xk的递推形式,其应
该为:(4)x=x=x+K(z—Hx)(4)k k/k k/k—1kkkk/k—1这里的Kk是一个待定的增益矩阵,其应使误差矩阵极小。接下来推导误差方差公式。定义(5)x二x一x(5)k/k一1k/k一1kk/k二x二x一xk k/kk(6)其中“〜”表示误差,式(5)表示先验(没有测量值)的误差,式(6)k/k二x二x一xk k/kk(6)其中“〜”表示误差,式(5)表示先验(没有测量值)的误差,式(6)表示后验的误差(经测量值校正)。则,根据式(6),将式(4),式(5)带入,得x—x一x—x+K(Hx+v—Hx)一xkkk k/k一1 kkkkkk/k一1k—5~ +x+KHx+Kv—KH5( —KHx—xk/k一1 kkkxkkkkk/k一1kkkk—(I一KH)x+Kvkkk/k一1kk估计误差矩阵P— E[x xt]—E{(I 一KH )x [xt (I -KH )t +vtKt]+k kk kkk/k_1k/k一1 kk kkKv[xt (I一KH)t+vKt]}kkk/k一1 kk kk(7)定义P—E[xx xxT]k/k一1 k/k一1k/k一1这就是一步预测误差矩阵。由模型的统计性质可知(8)E[vkvkT]=Rk (9)而且,预测误差与测量噪声不相关,即:E[x vT]—E[vxxT ]—0k/k一1k kk/k一1(10)将式(8),式(9),式(10)带入式(7),得P—(I一KH)P (I一KH)t+KRKtk kkk/k一1 kk kkk(11)现寻找一个Kk使式(11)最小。将式(11)右端展开后,加减同一项PHt(HPHt+R)―1HPk/k一1kkk/k一1kkkk/k一1再把有关Kk的项归在平方项里,即P=P—PHt(HP Ht+R)-iHP+k k/k-1 k/k-1k kk k/k-1 k/k-1k k[K-P HT(HP HTk k/k-1 k kk/k-1 k[K-P HT(HP HTk k/k-1 k kk/k-1 k(12)+R)-i](HPH+R)k kk/k-1kk+R)-1]kK=PHt(HPK=PHt(HPHt+R)-1k k/k-1kkk/k-1kk此时P二P-PHt(HPHtkk/k-1k/k-1kkk/k-1k二[I-KH]Pkkk/k-1这就是误差迭代公式。由此可见,的估计值,又可得到误差的方差阵。(13)+R)-1HPkkk/k-1(14)卡尔曼滤波的递推公式即可得到滤波(15)(20)(15)(20)由式(3)两边同时减去xk得:x-x=①x-xk/k-1 k k,k-1k-1 k将式(1),式(5)带入式(15)戈二①义-r3k/k-1 k,k-1k-1k-1k-1因此p=①p①t +rQ0k/k-1 k,k-1k-1k,k-1 k-1k-1k-1式(20)即一步预测估计误差矩阵。到此,卡尔曼滤波公式推导完毕。三、卡尔曼滤波的实例——以温度检测滤波为例假设我们要研究一个房间的温度,这个房间的真实温度是25度,以一分钟为时间单位。根据我们的经验判断,这个房间的温度是恒定的(A=1),但是对我们的经验不是完全相信,可能存在上下几度的偏差,我们把该偏差看做是高斯白噪
声(系统噪声W)。另外,我们在房间里放一个温度计(H=1),温度计也不准确,测量值会与实际值存在偏差,我们也把这偏差看做是高斯白噪声(测量噪声V)。现在我们用卡尔曼滤波,过滤掉噪声,估算出房间的实际温度。系统参数名称解释如下:xkG系统状态系统矩阵xkG系统状态系统矩阵B、uk 状态的控制量Zk 观测值H 观测矩阵wk 过程噪声vk 测量噪声实际温度温度不变,为1无控制量,为0温度计读数直接读出,为1温度变化偏差,常量1e-1读数误差,常量1e-6假如我们要估算2时刻房间的实际温度值。首先你要根据1时刻温度的估TOC\o"1-5"\h\z八 xk 八计值(就假设为1),来算出2时刻温度的估计值,即:X=9*X=12,1 1(*公式1),然后由给出的1时刻的均方差P1(假设为10)进一步更新均方差,有P=9*p*9t+rqrt=10.009(*公式2)。有方差P之后,根2,1 1 k-1 2,1据卡尔曼增益方程计算出增益:K=P*HtH*P*Ht+R-1=0.925(*2L2,1 vv一公式3)。现在,我们可以通过增益和测量值(Z=26.676,温度计有测量误差)来估计2时刻的温度了,X=X+K「Z-H*X] =24.763(*\o"CurrentDocument"2 2,1 2,1公式4)。得到了2时刻的估计温度,下一步就是对3时刻的温度值进行最优估算,需要得到K时刻的最优温度(24.56)的偏差,算法如下:P=昆-K*H]*P =0.751(*公式5)2 2,1就这样,再进入3时刻的滤波循环,卡尔曼滤波器就不断的把均方误差递归,从而估算出最优的温度值,运行速度快。以下是matlab程序:
clearall;clc;closeall;%系统方程X(k)=AX(k-1)+BU(k)+W(k)%系统测量值Z(k)=HX(k)+V(k)N=200;w=0.1*randn(1,N);%产生随机高斯分布x(1)=0;%赋值与否无所谓a=1; %系统状态矩阵V=randn(1,N); %产生随机高斯分布q1=std(V);Rvv=q1「2; %Rq2=std(w);Qww=q2「2; %Qh=1; %观测矩阵Y=25+V; %测量误差值p(1)=10;X(1)=0;%%%%%%%%%%kalmanfilter%%%%%%%%%%%x(k)=x(k|k-1),X(k)=x(k|k),p1(k)=p(k|k-1),p(k)=p(k|k)fork=2:N;x(k)=a*X(k-1); %X(k|k-1)=AX(k-1|k-1)+BU(k)………(1)p1(k)=a*p(k-1)*a'+Qww; %P(k|k-1)=AP(k-1|k-1)A’+Q………(2)Kg(k)=p1(k)*h'/(h*p1(k)*h'+Rvv);%Kg(k)=P(k|k-1)H’/(H
Kg(k)=p1(k)*h'/(h*p1(k)*h'+Rvv);%Kg(k)=P(k|k-1)H’/(HP(k|k-1)H’+P(k|k-1)H’+R)(4)%X(k|k)=X(k|k-1)+Kg(k)%X(k|k)=X(k|k-1)+Kg(k)(Z(k)-HX(k|k-1))………(3)p(k)=p1(k)-Kg(k)*h*p1(k); %P(k|k)=(I-Kg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山东省滕州市高一化学上册期末考试真题附答案【基础题】
- 2026年江苏省昆山市高三生物上册期末考试测试卷带答案
- 2026年广东省兴宁市高三历史上册期末考试模拟卷【典型题】附答案
- 2026年湖南省耒阳市高一历史上册期末考试真题(必刷)附答案
- 2026年湖北省天门市高三历史上册期末考试自测卷及答案【考点梳理】
- 2026年辽宁省开原市高三生物上册期末考试模拟测试卷带答案
- 2026年黑龙江省讷河市高三历史上册期末考试检测卷及1套参考答案
- 2026年吉林省敦化市高三历史上册期末考试模拟卷附参考答案【基础题】
- 2026年浙江省临海市高三生物上册期末考试模拟卷含答案
- 2026年广东省连州市高一化学上册期末考试模拟测试卷及参考答案【考试直接用】
- 2026年执业医师定期考核简易程序试卷及答案
- 中国银行股份有限公司2027全球校园招聘考试模拟试题及答案解析
- 2026年《中国梅尼埃病诊疗临床管理指南(2026版)》
- 校园防欺凌AI预警系统技术方案
- 【新教材】统编版(2024)九年级上册道德与法治全册知识点背诵提纲
- 2026秋初中英语新人教版九年级上册第一单元教案
- 2026年大数据中心业务岗结构化面试真题
- 《小小歌唱家 为救李郎离家园》课件2026-2027学年人教版四年级上册音乐
- 培训教育签到表
- (西藏)小学一考三评信息技术考试参考题库(含答案)
- 双官能团化合物课件
评论
0/150
提交评论