kalman滤波、数据融合问题

[复制链接]
查看11 | 回复1 | 2011-3-27 11:34:21 | 显示全部楼层 |阅读模式
最近在做姿态方面的问题,要用到kalman滤波,准备用matlab编个仿真,但苦于知道的不多。
我也不求谁谁给我编一个,不现实,只求给我来个这方面的论坛链接之类的(姿态,kalman,matlab相关),能够有参考价值,在那上面问些问题能有好心人解答就行了,谢谢!
回复

使用道具 举报

千问 | 2011-3-27 11:34:21 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">本人有个简单卡尔曼的程序:


A = [1.1269 -0.4940 0.1129
1.0000 0 0
0 1.0000 0];
B = [-0.3832
0.5919
0.5191];
C = [1 0 0];
Plant = ss(A,[B B],C,0,-1,\'inputname\',{\'u\' \'w\'},\'outputname\',\'y\');
Q = 1; R = 1;
[kalmf,L,P,M] = kalman(Plant,Q,R);

a = A;
b = [B B 0*B];
c = [C;C];
d = [0 0 0;0 0 1];
P = ss(a,b,c,d,-1,\'inputname\',{\'u\' \'w\' \'v\'},\'outputname\',{\'y\' \'yv\'});
sys = parallel(P,kalmf,1,1,[],[]) ;
% Close loop around input #4 and output #2
SimModel = feedback(sys,1,4,2,1) ;
% Delete yv from I/O list
SimModel = SimModel([1 3],[1 2 3]) ;

t = [0:100]\';
u = sin(t/5);

n = length(t) ;
randn(\'seed\',0) ;
w = sqrt(Q)*randn(n,1);
v = sqrt(R)*randn(n,1);

[out,x] = lsim(SimModel,[w,v,u]);

y = out(:,1); % true response
ye = out(:,2); % filtered response
yv = y v; % measured response

figure(1);
plot(t,y,\'--\',t,ye,\'-\'),
xlabel(\'No. of samples\'), ylabel(\'Output\')
title(\'Kalman filter response\')
figure(2);
plot(t,(y-yv)/y,\'--\',t,(y-ye)/y,\'-\'),
xlabel(\'No. of samples\'), ylabel(\'Error\')

MeasErr = y-yv;
MeasErrCov = sum(MeasErr.*MeasErr)/length(MeasErr)
EstErr = y-ye;
EstErrCov = sum(EstErr.*EstErr)/length(EstErr)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行