卡尔曼滤波的MATLAB实现_第1页
卡尔曼滤波的MATLAB实现_第2页
卡尔曼滤波的MATLAB实现_第3页
卡尔曼滤波的MATLAB实现_第4页
卡尔曼滤波的MATLAB实现_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、卡尔曼滤波的 MATLA 实现一、实验内容一个系统模型为xi(k 1) xi(k) X2(k)w(k), k 0,1,x2(k 1) x2(k) w(k)同时有下列条件:(1)初始条件已知且有x(0) 0, 0T。(2)w(k)是一个标量零均值白高斯序列,且自相关函数已知为Ew(j)w(k)jk。另外,我们有下列观测模型,即%(k1) xdk1)V1(k 1),k 0,1,y2(k1)X2(k 1)V2(k 1)且有下列条件:(3)v,k 1)和V2(k 1)是独立的零均值白高斯序列,且有Ev1(j)v1(k)jk,Ev2(j)v2(k)2jk, k 0,1, 2,(4)对于所有的 j 和 k

2、,w(k)与观测噪声过程w(k 1)和v2(k 1)是不相关的, 即Ew(j)w(k)0,Ew(j)v2(k) 0, j 0,1,2, k 0, 1, 2,我们希望得到由观测矢量y(k 1),即y(k 1) y1(k 1), y2(k 1)T估计状态矢量x(k 1) xk 1),X2(k 1)T的卡尔曼滤波器的公式表示形式,并求解以下问 题:(a)求出卡尔曼增益矩阵,并得出最优估计x(k 1)和观测矢量y(1), y(2),,y(k 1)之间的递归关系。(b)通过一个标量框图(不是矢量框图)表示出状态矢量x(k 1)中元素x1(k 1)和x2(k 1)估计值的计算过程。(c)用模拟数据确定状态

3、矢量x(k)的估计值x(k k), k 0,1,.,10,并画出当 k=0, 1,,10 时xi(k k)和X2(k k)的图。(d)通常, 状态矢量的真实值是得不到得。 但为了用作图来说明问题, 表 P8.1 和 P8.2给出来状态矢量元素得值。对于 k = 0, 1,,10,在同一幅图 中画出真实值和在(c)中确定的x1(k)的估计值。对X2(k)重复这样过程。当 k 从 1 变到 10 时,对每一个元素 i 二 1, 2,计算并画出各自的误差图,即xi(k) xi(k k)。(e)当 k 从 1 变到 10 时,通过用卡尔曼滤波器的状态误差协方差矩阵画出2 2E1(k. k)和E2(k

4、k), 而jk k) x,k) X1(k k),2(kk) x2(k) X2(k k)。(f)讨论一下(d)中你计算的误差与(e)中方差之间的关系。表 P8.1P8.1 题 8.18.1 到题 8.38.3 中的观测值时间下标 k观测值y/k)观测值y2(k)13.296919692.1013429423.387365150.4754079737.028306413.1768889849.712125212.49811140511.420183152.91992424615.978705836069342855.42519274828.302127813.053657

5、41930.446838315.980511411 038.758755954.51016361表 P8.2 题 8.1 到题 8.3 中的由模拟得到的实际状态值时间下标k实际状态值x1(k)实际状态值x1(k)00.00000000000.00000000011.654287141.6542871423.503007021.8487198835.9978529242.4755222249.150407403508739103.35833170616.921925944.41318684721.344833524.42290758825.893351444.54851

6、792931.541353305.648001861 036.936056705.394470340、实验原理1、卡尔曼滤波简介 卡尔曼滤波是解决以均方误差最小为准则的最佳线性滤波问题,它根据前一 个估计值和最近一个观察数据来估计信号的当前值。 它是用状态方程和递推方法 进行估计的, 而它的解是以估计值 (常常是状态变量的估计值) 的形式给出其信号模型是从状态方程和量测方程得到的。卡尔曼过滤中信号和噪声是用状态方程和测量方程来表示的。 因此设计卡尔 曼滤波器要求已知状态方程和测量方程。 它不需要知道全部过去的数据, 采用递 推的方法计算, 它既可以用于平稳和不平稳的随机过程, 同时也可以应用解

7、决非 时变和时变系统,因而它比维纳过滤有更广泛的应用。2、卡尔曼滤波的递推公式xkAkxk 1Hk(ykCkAkxk 1)如果初始状态X。的统计特性Ex。及varxo已知,并x0Ex0P0E(x0 x0)(x0 x0) varx0将Po代入式(3)可求得pi,将pi代入式(2)可求得Hi,将此Hi代入式(1)可求得在最小均方误差条件下的x1,同时将P1代入式( 4)又可求得P1; 由P又可求P2,由p2又可求得H2,由H2又可求得x2,同时由H2与p2又可求 得P2;以此类推,这种递推计算方法用计算机计算十分方便。三、MATLA程序%卡尔曼滤波实验程序clc;yi=3.2969i969,3.3

8、87365i5,7.0283064i,9.7i2i252i,ii.420i83i5,i5.97870583PkCk(CkPkCkRk)(2)PkAkPk 1AkQk 1(3)Pk(I HOPk .3、递推过程的实现(4)(1),22.06934285,28.302i278i,30.4468383i,38.75875595; %观测值 yi(k)y2=2.10134294,0.47540797,3.17688898,2.49811140,2.91992424,6.17307616,5.42519274,3.05365741,5.98051141,4.51016361;%观测值 y2(k)p0=1

9、,0;0,1;p=p0;%均方误差阵赋初值Ak=1,1;0,1;%转移矩阵Qk=1,0;0,1;%系统噪声矩阵Ck=1,0;0,1;%量测矩阵Rk=1,0;0,2;%测量噪声矩阵x0=0,0;xk=x0;%状态矩阵赋初值for k=1:10Pk=Ak*p*Ak+Qk;%滤波方程 3Hk=Pk*Ck*inv(Ck*Pk*Ck+Rk); %滤波方程 2 yk=y1(k);y2(k); %观测值xk=Ak*xk+Hk*(yk-Ck*Ak*xk);%滤波方程 1x1(k)=xk(1);x2(k)=xk(2);p=(eye(2)-Hk*Ck)*Pk;pk(:,k)=p(1,1),p(2,2);endfi

10、gure%画图表示状态矢量的估计值subplot(2,1,1)i=1:10;plot(i,x1(i),k)h=legend(x1(k)的估计值) set(h,interpreter,none)subplot(2,1,2) i=1:10;plot(i,x2(i),k)h=legend(x2(k)的估计值) set(h,interpreter,none)X1=0,1.65428714,3.50300702,5.997852924,9.15040740,12.50873910,16.92192594,21.34483352,25.89335144,31.54135330,36.93605670; %

11、由模拟得到的 实际状态值 X1(k)X2=0,1.65428714,1.84871988,2.47552222,3.17187816,3.35833170,4.41318684,4.42290758,4.54851792,5.64800186,5.394470340;%由模拟得到的实际状态值 X2(k)figure%在同一幅图中画出状态矢量的估计值与真实值subplot(2,1,1)i=1:10;plot(i,x1(i),k,i,X1(i+1),b)h=legend(x1(k)的估计值,x1(k)的真实值)set(h,interpreter,none)subplot(2,1,2)i=1:10;

12、%记录估计值%滤波方程 4%记录状态误差协方差矩阵plot(i,x2(i),k,i,X2(i+1),b)h=legend(x2(k)的估计值:x2(k)的真实值)set(h,interpreter,none)for i=1:10%计算 x(k)的误差e1(i)=X1(i+1)-x1(i);e2(i)=X2(i+1)-x2(i);endfigure%画出误差图subplot(2,1,1)i=1:10;plot(i,e1(i),r)h=lege nd(x1(k)的误差)set(h,interpreter,none)subplot(2,1,2)i=1:10;plot(i,e2(i),r)h=lege

13、 nd(x2(k)的误差)set(h,interpreter,none)figure%通过用卡尔曼滤波器的状态误差协方差矩阵画出E1(k/k)A2jP E2(k/k)A2i=1:10;subplot(2,1,1)plot(i,pk(1,i),r)h= lege nd(由状态误差协方差矩阵得到的 E & 1(k/k)A2)set(h,Interpreter,none) subplot(2,1,2) plot(i,pk(2,i),r)h= legend(由状态误差协方差矩阵得到的E & 2(k/k)A2)set(h,Interpreter,none)四、实验结果分析(a)卡尔曼增益矩阵:HkPkCT(C PkCTR)1估计值与观测值之

温馨提示

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

评论

0/150

提交评论