网站大量收购独家精品文档,联系QQ:2885784924

Kalman经典生活实例研究(有图有代码).doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Kalman经典生活实例研究(有图有代码)Kalman经典生活实例研究(有图有代码).doc

先写出 kalman filter的模型: 式中是系统的维状态向量,是系统的维观测序列,是维系统过程噪声序列,是维观测噪声序列,是系统的维状态转移矩阵,是维噪声输入矩阵,是维观测矩阵,且。 则状态一步预测: 状态估计: 滤波增益矩阵: 一步预测误差方差阵: 估计误差方差阵: 其中,滤波增益矩阵可以进一步改写为: 估计误差方差阵可以改写为: 例子:滤波 设运动物体沿直线运动,时刻的位移、速度、加速度和加加速度分别为,只对运动物体的位置做观测,观测值为(注意,这里观测向量和噪声向量均是一维的),若,观测的采样周期为,求对的估计。 解:由于 其中为加加速度,对运动体得跟踪者来说,加加速度是随机量,此处取为白噪声。 取状态向量 则状态方程为: 式中 观测方程为: 式中 发现,这是一个定常的滤波问题。应用Kalman滤波方程有: 现假设,,,编程序,看滤波效果: 由于没有观测值数据,所以手动添加它:考虑到观测值是位移,所以添加形如 的观测值,其中的与噪声向量方差一致,便于比较,因为理论就是这个方差的噪声,生成的数据作为观测数据。实验结果如下: 实验代码如下: ******************** clc close all clear all g=9.8; t=1:0.02:5; Z=1+(1/2)*g*(t.^2);%2úéú1?2aêy?Y r=1; l=random(norm,0,sqrt(r),1,length(Z)); Z=Z+l;%1?2aêy?Y?ó??éù save data1 Z ******************** clc close all clear all load data1 %?μí3μ?2?êy X=zeros(3,1);K=zeros(3,1);P=zeros(3,3); X=[0.1;1;1];%3??μ %P=[1,1,1;1,1,1;1,1,1];%3??μ P=[5,0,0; 0,50,0; 0,0,500];%3??μ r=1; q=1; FAI=[1,0.02,0.0002; 0,1,0.02; 0,0,1]; gama=[0;0;1]; H=[1,0,0]; N=length(Z) for i=2:N Xi=FAI*X; Pi=FAI*P*FAI+q*gama*gama; K=Pi*H*(H*Pi*H+r)^(-1); X=Xi+K*(Z(i)-H*Xi); P=(eye(3)-K*H)*Pi; s(i)=X(1,1); v(i)=X(2,1); a(i)=X(3,1); ps(i)=P(1,1); pv(i)=P(2,2); pa(i)=P(3,3); end s(1)=0.1;v(1)=1;a(1)=1; ps(1)=5;pv(1)=50;pa(1)=500; error=(s-Z)./Z %?ó2?°ù·?±è MSE=MSE(error) k=1:N; n=k*0.02; figure(1) subplot(211); plot(n,Z,r,n,s,:.); xlabel(t/s); ylabel(z(t),x(t)); title(???ò?1?2a?μ?°??2¨?μ); legend(??ò?1?2az(t),??ò???2¨?μx(t),2); grid on subplot(212); plot(n,ps); xlabel(t/s); ylabel(ps); title(??ò?D-·?2?) grid on figure(2) plot(n,error); xlabel(t/s); ylabel(e); title(?à???ó2?°ù·?±è) grid on figure(3) subplot(211); plot(n,v); xlabel(t/s); ylabel(v(t)); title(?ù?è??2¨?μ); grid on subplot(212); plot(n,pv); xlabel(t/s); ylabel(pv); title(?ù?èD-·?2?) figure(4) subplot(211); plot(n,a); xlabel(t/s); ylabel(a(t)); title(?ó?ù?è??2¨?μ); grid on subplot(212); plot(n,pa); xlabel(t/s); ylabel(pa); title(?ó?ù?èD-·?2?)

文档评论(0)

ganqludp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档