智能车制作

标题: 卡尔曼滤波器MATLAB仿真问题 [打印本页]

作者: 二硫碘化钾    时间: 2012-2-9 11:40
标题: 卡尔曼滤波器MATLAB仿真问题
本帖最后由 二硫碘化钾 于 2012-2-9 11:47 编辑
  1. clear;
  2. FS=100;
  3. T=1/FS;
  4. t=0:T:5;
  5. wv=randn(1,(5-0)/T+1)*0.2;
  6. wa=randn(1,(5-0)/T+1);
  7. vi=sin(5*t)+wv;
  8. ai=cos(5*t)-10+wa;

  9. A=[1,-T;0,1];
  10. B=[T;0];
  11. H=[1,0];
  12. Q=[0.0001,0;0,0];
  13. R=[0.04];
  14. I=[1,1;1,1];
  15. kg=[0;0];
  16. x=[0;0];
  17. p=[1,0;0,1];
  18. xx=[0;0];
  19. pp=[0,0;0,0];
  20. for k=2:501
  21.     xx=A*x+B*ai(k-1);
  22.     pp=A*p*A'+Q;
  23.     kg=pp*H'/(H*pp*H'+R);
  24.     x=xx+kg*(vi(k)-H*xx);
  25.     p=(I-kg*H)*pp;
  26.     vo(k)=x(1)-5;
  27.     b(k)=x(2);
  28. end
  29. plot(t,vi,'r',t,ai,'g',t,vo,'b',t,b,'y');
复制代码
以上是将光电码盘与加速度计融合得到速度的卡尔曼滤波程序(有错。。。),是根据一篇论文编写的,论文见链接。
仿真时出错,1、b不收敛。2、卡尔曼滤波似乎没起作用。。。请高手指点一二三四五六。。。。。。看看程序哪里有问题,在此谢过,此致敬礼。。。
还有程序的仿真图。。。与论文中的相比。。。差好远啊
红色是vi,绿色是ai,蓝色是滤波输出vo,黄色是b




作者: 二硫碘化钾    时间: 2012-2-9 14:42
I is fault.
作者: 二硫碘化钾    时间: 2012-2-9 14:42
thank me.
作者: JJ哥    时间: 2012-2-20 16:21
kiss
作者: lowweihang123    时间: 2012-5-11 20:38
x(1)即x的横坐标代表什么?为什么要减去5???还有x(2)代表什么?
作者: ccyehuo    时间: 2013-11-30 20:39
第一眼看过去,I就不对了兄弟

作者: wen123    时间: 2013-12-7 11:18
ccyehuo 发表于 2013-11-30 20:39
第一眼看过去,I就不对了兄弟

你好,,,,,,你是上海大学的吧,,找你有急事,,希望能帮帮忙!!感激不尽!麻烦加qq863331018私聊!!




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2