|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
卡尔曼滤波仿真程序用于匀速运动的目标跟踪
2 z( C: P/ w9 C9 m9 d. G
4 H' a6 e0 {$ M2 S7 g/ L% kalman filtering
0 v5 z e6 I5 M$ m* r1 {" [) O; m1 j6 N4 a
load initial_track s; % y:initial data,s:data with noise# F) O/ F+ h# K* |
T=0.1;+ a j9 J% H9 t# K2 ^1 z. P
3 [/ t n& g E/ `% yp denotes the sample value of position" O' c H6 ?: e: X" k, R+ d
% yv denotes the sample value of velocity
1 V( V, H" n1 I* N! X ~/ ? m% Y=[yp(n);yv(n)];
$ j3 W4 C6 \1 k5 }( i2 J0 Y% error deviation caused by the random acceleration- h* K( C7 ?$ L3 W6 k1 p3 ?
% known data
! \ a6 j0 W2 }Y=zeros(2,200);& m9 Q2 f& E y5 ^$ b
Y0=[0;1];% r' |% x5 ~3 n8 \! K4 x5 H! E
Y(:,1)=Y0;
V+ S9 G4 o5 M8 j. oA=[1 T
. m- F2 y/ ~- ]6 v# l* F# z 0 1]; ! `- Q+ s$ _2 h$ G- l2 \
B=[1/2*(T)^2 T]';
+ G9 l- }, ~: ]2 {4 |H=[1 0];9 D e& ~3 l) i/ A
$ A0 R: t* T* ?; ~8 N0 f" N
C0=[0 0
& R) u- p$ `: p; M 0 1];
6 d `5 w# d* c w% z8 M$ M( Q9 uC=[C0 zeros(2,2*199)];9 b/ H9 e/ S$ D2 W% u/ v: C
Q=(0.25)^2;
8 T5 t, d, x9 X( E# K3 dR=(0.25)^2;
% L7 a( K* Y$ w$ i
+ ?. ^" r! h- t r2 Z
9 ]/ T% `& w' V1 O% kalman algorithm ieration+ B( T2 H2 D# W, g% N, n: B! l
for n=1:200
N, P2 h+ N$ O" ^2 L- O i=(n-1)*2+1;
/ h3 T3 C) q' r; z9 ]" S K=C(:,i:i+1)*H'*inv(H*C(:,i:i+1)*H'+R);
- ?; l. F8 s' P5 Y' w$ _! s Y(:,n)=Y(:,n)+K*(s(:,n)-H*Y(:,n));/ g- S1 f/ m; } B
Y(:,n+1)=A*Y(:,n);' z- g2 d0 f6 `) h
C(:,i:i+1)=(eye(2,2)-K*H)*C(:,i:i+1);/ M* K; x; f" P! M+ d
C(:,i+2:i+3)=A*C(:,i:i+1)*A'+B*Q*B';* c p" k+ B l/ Q
end8 ^ J/ \. K) K, |+ d1 }
2 L \( l. v) M% }
% the diagram of position after filtering& A/ d0 J0 v$ W( t9 F* w3 c3 h6 Y
t=0:0.1:20;
1 N5 g4 f: @1 E ?( Wfigure(2);1 M6 C5 l8 U9 J! c9 S
yp=Y(1,:);9 y1 Y, S* X, H) K9 F* B4 t* }: J5 h
plot(t,yp,'r.-');
' B9 `) d c. `8 D2 T0 q/ Uaxis([0 20 0 20]);# b) w9 |: J7 X% _- m( i) s {7 }
xlabel('time');% i6 G4 K5 @; H* \, L. }
ylabel('yp position');5 |3 x# k, l# i2 G7 a6 W
title('the track after kalman filtering');, _4 g9 l" t8 I( j% J8 M( n
hold on;* P. E# _( t! D3 H5 I
V7 J3 ~- e2 R8 A" o/ y. O4 J
% the diagram of velocity after filtering
& o& Q( x* y+ Q5 _% r& L2 Ffigure(3);
& A6 }) h( Z/ i5 c* \yv=Y(2,:);
" M2 ?* b. q2 U/ ]+ c7 @% I8 i7 Dplot(t,yv,'k.-');% K" {1 T" }" L, U
xlabel('time');" A [6 O w0 ^" G6 i/ R( C
ylabel('yv velocity');" z! T3 E! v; F1 g
title('the velocity caused by random acceleration');
* H0 F) `) K) h I( g
" g9 ~ }. O. k9 w- o3 b0 c2 a P4 e5 F1 C4 x2 t
+ G1 b. X" m( I( o, ]
3 Z/ V7 V: t8 L
?. Q2 x7 W6 _' a: e- f+ ^# \
|
|