智能车制作
标题:
卡尔曼滤波器MATLAB仿真问题
[打印本页]
作者:
二硫碘化钾
时间:
2012-2-9 11:40
标题:
卡尔曼滤波器MATLAB仿真问题
本帖最后由 二硫碘化钾 于 2012-2-9 11:47 编辑
clear;
FS=100;
T=1/FS;
t=0:T:5;
wv=randn(1,(5-0)/T+1)*0.2;
wa=randn(1,(5-0)/T+1);
vi=sin(5*t)+wv;
ai=cos(5*t)-10+wa;
A=[1,-T;0,1];
B=[T;0];
H=[1,0];
Q=[0.0001,0;0,0];
R=[0.04];
I=[1,1;1,1];
kg=[0;0];
x=[0;0];
p=[1,0;0,1];
xx=[0;0];
pp=[0,0;0,0];
for k=2:501
xx=A*x+B*ai(k-1);
pp=A*p*A'+Q;
kg=pp*H'/(H*pp*H'+R);
x=xx+kg*(vi(k)-H*xx);
p=(I-kg*H)*pp;
vo(k)=x(1)-5;
b(k)=x(2);
end
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