MATLAB 对卡尔曼滤波器的仿真实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
XXXXX 学院 《电子信息系统仿真》 课程设计 届 电子信息工程 专业 班级 题 目 卡尔曼滤波器的设计与仿真 姓 名 学号 指导教师 职称 二О1 年 月 MATLAB 对卡尔曼滤波器的仿真实现 课程设计目的:曼滤波器原理为理论基础,用MATLAB 进行卡尔 曼滤波器仿真、对比卡尔曼滤波器的预测效果,对影响滤波其效果的各方面原因进行讨论和比较,按照理论模型进行仿真编程,清晰地表述了编程过程。 关键词:数字信号处理;卡尔曼滤波器;MATLAB ;仿真过程 2. 卡尔曼滤波基本原理 卡尔曼滤波过程实际上是获取维纳解的递推运算过程。从维纳解导出的卡尔曼滤波器实际上是卡尔曼滤波过程结束后达到稳态的情况,这时Kalman Filtering 的结果与Wiener 我们总结出卡尔曼的五个核心方程: X(k|k-1=A X(k-1|k-1+B U(k ……………………… (1 P(k|k-1=A P(k-1|k-1 A?+Q ………………………… (2 X(k|k= X(k|k-1+Kg(k (Z(k-H X(k|k-1 ……… (3 Kg(k= P(k|k-1 H? / (H P(k|k-1 H? + R ……… (4 P(k|k=(I-Kg(k H)P(k|k-1 ………………………… (5 计算滤波估计的流程图如图所示: 图(1) 可以看出,滤波过程是以不断地“预测—修正”的递推方式进行计算,先进行预测值计算,再根据观测值得到的新信息和kalman 增益(加权项),对预测值进行修正。由滤波值可以得到预测,又由预测可以得到滤波,其滤波和预测相互作用,并不要求存储任何观测数据,可以进行实时处理。 3. 程序设计 卡尔曼滤波器给出了一个应用状态变量概念的公式。而且,不同于其他的递归滤波器结构,它只需要记住一步的估计结果。考虑过程噪声和测量噪声两个随机变量的状态模型称为随机状态模型。 用下面两个方程描述离散状态模型: 1)过程方程: x (k +1 = Ax (k + Bu (k + w (k 其中,w (k 是由于过程模型的不确定性而产生的模型噪声,它可能是最难量化的参数。 2)输出方程: y (k = Cx (k + v (k 其中,v (k 是测量噪声。 3)过程状态估计 状态估计分为两步,如图所示: 图(2) 一个是两个采样周期之间的状态转移阶段, 这个阶段叫做TU(Time Update 阶段:x ∧ (k | k ?1 = Ax ∧ (k ?1 + Bu (k ?1 ; 另一个是获得 y (k 的t时刻过程状态更新阶段,这个阶段叫MU(Measurement Update阶段. 4)噪声过程 卡尔曼估计滤波器可以根据控制信号u (k 和测量输出( b y k ,来估计过程输出y (k 和状态变化x (k 。需要的先验知识包括噪声w (k 、v (k 的方差,以及如果不为零时它们的互相关性。 过程描述如下图: 图(3) x = Ax + b (u + w 这个式子是有两个输入u (t 和w (t 的状态空间描述,可用ss 函数来计算。 % Process state representation Process=ss (Ad, [Bd Bd], C, 0, Te, ?inputname?,{?u??w?},… ?outputname?,{?y?}; w (t 和v (t 的方差分别为Q 和R 。N 为w (t 和v (t 的互相关矩阵。卡尔曼函数根据Q 、R 、N 和过程状态描述计算卡尔曼估计滤波器。在这个例子中,模型噪声和测量噪声不相关, 即N = 0。 % noises n=100; w=0.1*randn(n,1; v=0.3*randn(n,1; Q=std(w.?2; R=std(v.?2; Wv=cov(v,w; N=wv(1,2; % kalman estimator [F_kalman,L,P,M]=kalman(process,Q,R; 模型描述+测量噪声+卡尔曼滤波器 系统结构框图 图(4) 建立包含测量噪声的一般模型的状态空间描述 % State representation process + measurement noise a=Ad; b=[Bd Bd [0;0]]; c=[C C]; d=[0 0 0;0 0 1]; process=ss (a,b,c,d,Te,?inputname?,{?u? ?w? ?v?},… ?outputname?,{?y? ?yb?} 然后把这个过程和卡尔曼滤波器联系起来,得到整个过程的状态空间 函数 parallel 用来把卡尔曼滤波器和过程联系起来。然后,函数feedback 用来创建把过程输出b y 当作卡尔曼滤波器输入的反馈环节,最后由状态

文档评论(0)

35425 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档