Kalman滤波MATLAB综合实验报告_第1页
Kalman滤波MATLAB综合实验报告_第2页
Kalman滤波MATLAB综合实验报告_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、数学实验综合实验报告实验名称综合实验(Kalman滤波)2016年5月一、【实验目的】明白滤波计算流程能够调用相关函数进行数据处理使用循环函数和二维曲线画图有效的构建仿真模型,产生模拟数据二、【实验原理分析】卡尔曼滤波器是一个"optimal recursive data processing algorithm (最优化自回归数据处理算法)”对于解决很大部分的问题,它是最优,效率最高甚至是最有用的。它的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近来更被应用于计算机图像处 理,例如头脸识别,图像分割,图像边缘检测等等。设系统

2、可用一个线性随机微分方程来描述:X(k)=A X(k-1)+B U(k)+W(k)再加上系统的测量值:Z(k)=H X(k)+V(k)上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。 Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声,他们的协方差分别是Q,R (这里假设他们不随系统状态变化而变化)。对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处 理器。首先要利用系统的过程模型,来预测下一状态

3、的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:X(k|k-1)=A X(k-1|k- 1)+B U(k) .(1)式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。至U现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的协方差还没更新。我们用 P表示协方差:P(k|k-1)=A P(k-1|k- 1) A ' +Q (2)式(2)中,P(k|k-1)是X(k|k-1)对应的协方差,P(k-1|k-1)是X(k-1|k-1)对应的协

4、方差,A '表示A的转置矩 阵,Q是系统过程的协方差。式子1, 2就是卡尔曼滤波器 5个公式当中的前两个,也就是对系统的预测。现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k):X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k- 1) (3)其中Kg为卡尔曼增益(Kalman Gain):Kg(k)= P(k|k- 1) H ' / (H P(k|k) H '+ R) (4)到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。但是为了要令卡尔曼滤波器不断

5、的运行下去直到系统过程结束,我们还要更新k状态下X(k|k)的协方差:P(k|k)= (I-Kg(k) H ) P(k|k-1) (5)其中I为1的矩阵,对于单模型单测量,1=1。当系统进入k+1状态时,P(k|k)就是式子 的P(k-1|k-1)。 这样,算法就可以自回归的运算下去。、MATLAB中已经给出了滤波函数,以下为直接调用方法 :设线性系统为丁上 +血+血y = Cx + Du + Hw+v其调用格式为kest, L, P=kalman (sys, Qn, Rn, Nn)kest, L, P=kalma n( sys, Qn, Rn, Nn, sen sors, known)kes

6、t,L,P,M,Z=kalma n(sys,Q n,Rn,Nn)最后一种调用格式只限于离散系统。三、【实验内容及数据来源】已知离散系统-0.49 0.293 0412耳+l = 凉 + 现(2),第一式为系统方程,第二式为观测方程,:表示状态量x的第二个分量。e与v是互不相关的高斯白噪声。10.9'假设打的真值兀1二8481,由此系统方程构造出k=1,2,30的数据亦,构造时加上系统噪声干扰,再由-4.3并以此作为仿真数据。用Kalman滤波对仿真数据进行滤波处观测方程构造出观测数据并加观测噪声干扰, 理,并与真实结果比较。四、【实验程序】%描述% x n+1=Ax n+Bu n+Gw

7、 n% y n=Cx n+Du n+Hw n+v n%状态转移矩阵A=0.49 0.298 0.4120.401 -0.391 0.391-0.992 0.401 0.296;% B矩阵B=zeros(3,3);% G矩阵G=eye(3,3);% C矩阵向量C=0 1 0;D=0 0 0;H=zeros(1,3);%状态向量初值(真值)x(:,1)=10.9 8.481 -4.3'%状态向量初始估计值guji=20.1 21.3 20.7'%进入循环for i=2:30%c 产生正态分布数据w=ra ndn (3,1);v=ra ndn (1,1);%真实数据x(:,i)=A*

8、x(:,i-1);%人为制造系统误差x1(:,i)=x(:,i)+w;Qn=eye(2,2);Rn=1;Nn=0;%人为制造观测数据的误差z0(:,i)=C*x1(:,i)+v;%建立Kalman的系统参数sys=ss(A,B,G,C,D,H,-1);kest,L,P,M,Z=kalma n(sys,Q n,Rn,Nn);%得到估计数据guji(:,i)=A*guji(:,i-1)+L*(z0(:,i)-C*A*guji(:,i-1);endsubplot(2,2,1)%做出真值曲线x1plot(x(1,:)hold on%做出在噪声污染情况下的滤波估计值曲线x1plot(guji(1,:),

9、':m')hold offlege nd('real of x1','estimate of x1')gridsubplot(2,2,2)%做出真值曲线x2plot(x(2,:)hold on%做出在噪声污染情况下的滤波估计值曲线x2plot(guji(2,:),':m')hold offlegend('real of x2','estimate of x2')gridsubplot(2,2,3:4)%做出真值曲线x2plot(x(3,:)hold on%做出在噪声污染情况下的滤波估计值曲线x3pl

10、ot(guji(3,:),':m')hold offlege nd('real of x1','estimate of x1')grid五、【实验结果】为了阐述kalman滤波的基本计算思路,在试验中选择了最简单的一种系统模型,线性定常动力系统。在实际应用中很多时候面对的都是非线性而且时变系统,这有时候性质要复杂一些。最后的结果信息我们反映在图9.2中,这只是结果的直观反应,更多的时候需要的是计算结果。表9.1 中给出了真实的运动轨迹。40200-20-400图1.1 Kalman滤波处理的与真实值的比较表1.1真实的运动状态数据时间序列第一个分

11、量第二个分量第三个分量110.98.481-4.326.096738-0.626471-8.6847193-0.777390966-0.70598303-8.8698557914-4.245685102-3.503808027-2.1374046715-4.005131216-1.1682560142.174020826-1.41495685102-0.2992273764926530241.1715184422.5114945581.8378480680.8954692850.29406328491.2885494730.501827329-1.3770193681

12、00.213601806-0.21792072-1.48460605111-0.571933183-0.40961964-0.73872259212-0.70666762-0.3580244600.376969821-0.0712707550.612040224140.0462066750.1160096940.526538396150.2741459790.1790455990.156538231160.2521808690.101132157-0.153820209170.0903320820.001438153-0.25514020918-0.060426476

13、-0.064098975-0.16455422819-0.11650681-0.063509021-0.01446867620-0.08197512-0.0275444560.0858249121-0.0130161940.0114553990.095678165220.0364551780.0277116080.045826416230.045001580.021701416-0.011486563240.0237853320.005069134-0.03933932225-0.003042386-0.007825788-0.03320676626-0.017504042-0.0111439

14、59-0.00994929727-0.015996991-0.0065520080.0099502928-0.0056915043.76E-050.016186945290.0038913910.0040320990.010452388300.0074147310.0040707810.000850519表1.2给出了三个分量的滤波处理结果。如果对比表1.1与表1.2,可以看出在序列靠后的地方真实状态与估计状态的绝对误差是比较小的。表1.2 Kalman滤波处理结果时间序列第一个分量第二个分量第三个分量120.121.320.7222.72524889.494219162-6.31616921

15、6310.406516233.728682279-21.105630164-1.788182459-6.118879723-14.710902865-8.614322881-4.198556849-4.9577776266-6.763631785-4.3780776395.7870306767-2.3574079941.3648383156.6026590981.4226924661.560996264.55308832692.3926733422.27910370.224864281101.8616921010.225133574-1.436205036110.517263742-0.011

16、25328-2.11384303912-0.58022756-0.648547414-1.2212362613-0.593150559-0.7072128380.16466488714-0.5532042150.2029068090.29099303715-0.3912351910.0634052510.55915043216-0.6186255910.60012591930.2254946617-0.618625591-0.7838607191.16515757918-0.0453432221.357835159-0.66486884319-0.11295527-0.6242528310.2

17、7688772520-0.3988591910.53368178-0.19830150321-0.179721431-0.3947254910.51876082622-0.2792072370.5248242670.023365338230.448919666-0.6582977510.7137889240.4794277290.581682628-0.413558092250.032585161-0.025564549-0.472086999260.014970698-0.329369401-0.07715656327-0.8528779380.7140655-0.551591054280.

18、072338102-1.2580818171.23301402529-0.4532687511.521953811-0.53639147630-0.003343612-0.9750646480.893963618六、【实验心得】MATLAB中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。它可以提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。MATLAB内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。本学期通过对 MATLAB的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了MATLAB的实用方法。

19、通过老师的讲解与自己上机的操作,使我在短时间内学会使用 MATLAB,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计 简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。MATLAB是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。郑蕊MATLAB作为一门编程语言,其简易程度超过了大多数的计算机高级语言,作为一名计算机专业的学生,我深深感受到了这门语言的简洁与方便,语法和自然语言更为贴近,简便易学,功能强大,能够用其进行绝大多少的数学计算与绘图。而且我们的数值计算就是用MATLAB作为我们的计算的工具,所以感觉这门课程多我的帮助很大,而且可以将其接入java等多种主流编

温馨提示

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

评论

0/150

提交评论