根据matlab卡尔曼滤波算法仿真.pdfVIP

  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文档。上传文档
查看更多
基于 Matlab 的卡尔曼滤波算法仿真 1. 卡尔曼滤波器原理 卡尔曼滤波是解决以均方误差最小为准则的最佳线性滤波问题,它根据前一个估计 值和最近一个观察数据来估计信号的当前值。它是用状态方程和递推方法进行估计的, 而它的解是以估计值(常常是状态变量的估计值)的形式给出其信号模型是从状态方 程和量测方程得到的。 卡尔曼滤波中信号和噪声是用状态方程和测量方程来表示的。因此设计卡尔曼滤波 器要求已知状态方程和测量方程。它不需要知道全部过去的数据,采用递推的方法计 算,它既可以用于平稳和不平稳的随机过程,同时也可以应用解决非时变和时变系统, 因而它比维纳过滤有更广泛的应用。 卡尔曼几个重要公式: ŝ(n|n) = a ŝ (n-1|n-1) + G [x(n) – ac ŝ (n-1|n-1)] (1) n 2 P(n) = a ξ(n-1) + Q (2) () G = (3) n 2 + () ξ(n) = = (1 – cG )P(n) (4) n 这组方程的递推计算过程如图 1 所示。 图 1. 卡尔曼滤波器递推运算流程图 卡尔曼滤波过程实际上是获取维纳解的递推运算过程,这一过程从某个初始状态启 动,经过迭代运算,最终到达稳定状态,即维纳滤波状态。递推计算按图 1 所示进行。 假设已经有了初始值 ŝ(0|0)和 ξ (0 ),这样便可由式(2 )计算P(1) ,由式(3 )计算 G ,由式(4 )计算ξ (1),由式(1)计算 ŝ(1|1) 。ξ (1)和ŝ(1|1)便成为下一轮迭代 1 运算的已知数据。在递推运算过程中,随着迭代次数 n 的增加,ξ (n )将逐渐下降, 知道最终趋近于某个稳定值 ξ 。这时 0 ξ (n ) = ξ (n - 1 )= ξ0 为求得这个稳定值,将式(3 )和式(2 )代入式(4 ),得到 2 2 1 ‒ + ( ) ξ02 + 2 2 ξ0 ‒ 2 2 = 0 解此方程即可求出 ξ 。 0 2. 基于 Matlab 的卡尔曼滤波器的仿真 Matlab代码如下: clear N=200; w(1)=0; x(1)=5; a=1; c=1; %过程噪声 Q1=randn(1,N)*1; %测量噪声 Q2=randn(1,N); %状态矩阵 for k=2:N;x(k)=a*x(k-1)+Q1(k-1);end for k=1:N;Y(k)=c*x(k)+Q2(k);end p(1)=10; s(1)=1; for t=2:N; Rww = cov(Q1(1:t)); Rvv = cov(Q2(1:t)); p1(t)=a.^2*

文档评论(0)

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

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

1亿VIP精品文档

相关文档