|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
卡尔曼滤波仿真程序用于匀速运动的目标跟踪
" K1 S/ X$ \" f) {3 L2 c. ^/ E! ^* w# d; H
% kalman filtering
2 |+ F4 P% W+ G+ l! e9 r2 T2 E- o. [. A! `6 [. ~+ v, ?
load initial_track s; % y:initial data,s:data with noise
1 d' \% M- A$ R$ S* jT=0.1;
+ E% p) P( K$ Z* A+ E$ Y! S
0 W& s! x5 j& v# m- Q* l: `% yp denotes the sample value of position
- a; b9 w. H8 N) P% yv denotes the sample value of velocity7 J5 V* ?) o0 V9 z! P' {
% Y=[yp(n);yv(n)];
6 {9 D5 N, C, C/ t2 Q% }% error deviation caused by the random acceleration
6 l3 v0 S: Y3 y( p6 F% known data% U" V1 G9 M) i* L' D* N
Y=zeros(2,200); X2 F8 ^. V. h: M) J/ G# ?! n
Y0=[0;1];
0 O( s Q; W/ I7 q& RY(:,1)=Y0;" Z8 x/ C. U) U3 g/ c
A=[1 T4 w, M7 N3 D. I* ?3 ?+ C
0 1]; * `/ C9 d" `) H: y. N. n/ `5 G
B=[1/2*(T)^2 T]';
3 F0 m# s6 {5 H2 Q8 D1 FH=[1 0];% v2 z X9 x$ V4 p/ S" i
; g5 o$ _ j( e) J
C0=[0 0
- ^. x1 c7 @1 X# `& P [) i 0 1];
) M# J( O- \8 IC=[C0 zeros(2,2*199)];
; T( |' V7 j5 K0 TQ=(0.25)^2;3 H' k- N E, V3 A; n: |9 Q
R=(0.25)^2;+ ^; b! E7 D9 L' {
5 @8 r+ }& p3 |9 A; H T# ]& J7 l" @; a3 ^- a" k! `
% kalman algorithm ieration% m( I" e- U0 ?* w3 ~6 z2 `/ k% q$ d9 Q; Z
for n=1:2004 f& c! }$ g' h( i" u
i=(n-1)*2+1;9 ~- a/ n1 `0 Q1 ~# w: V" z5 g
K=C(:,i:i+1)*H'*inv(H*C(:,i:i+1)*H'+R);
8 |% J* E0 `* \* x8 @ Y(:,n)=Y(:,n)+K*(s(:,n)-H*Y(:,n));8 M8 d5 h# y4 ]5 a+ u0 r
Y(:,n+1)=A*Y(:,n);, b# y- X X( S \. t/ S
C(:,i:i+1)=(eye(2,2)-K*H)*C(:,i:i+1);3 {* @/ C% l7 z y
C(:,i+2:i+3)=A*C(:,i:i+1)*A'+B*Q*B';
5 L$ z. b0 r% t& ? o! `' Gend3 A4 l6 J' v2 Z( n- k8 I- H: J
% r& @2 {- b1 v( F7 `- M5 [
% the diagram of position after filtering
a8 N e U! r* R5 G) v6 v) A' Ft=0:0.1:20;4 h( {* M( @7 x/ @
figure(2);
- N" [: H7 n6 myp=Y(1,:);
6 h5 M' v! Z8 C" D) @2 G& Pplot(t,yp,'r.-');
; ?# Z* y/ u6 waxis([0 20 0 20]);5 I' o+ Y* P. x- p
xlabel('time');0 S" u+ k2 ^7 d! e+ S1 N
ylabel('yp position');. w1 e% r& Y% |% r4 a( P
title('the track after kalman filtering');- a) r' i- k1 e( K7 K3 T/ N9 n' ^
hold on;
9 v# a8 Y2 [6 `! K5 ~& L* j
& R4 Q7 ^/ d* I, M5 f6 K% the diagram of velocity after filtering& _0 f% m/ v9 g4 _1 h. o
figure(3);
, G0 I% ]# R# J( @yv=Y(2,:);
- n$ x$ Z7 Z5 c) fplot(t,yv,'k.-');
1 Z1 J4 U& u/ Q/ @4 R% Dxlabel('time');
9 r9 l5 e9 T( L8 E* e) H" lylabel('yv velocity');9 f4 m5 x6 P& z
title('the velocity caused by random acceleration');$ h1 ?: ]9 \9 Q J2 i
7 ]* \4 Y) h. ~& X* a5 W& S
5 ~5 L0 e0 y" [, s& p S! E( y
v: J- T1 m0 ^; n
; b! r' ?. h. G7 |
' m7 K9 u. ~( x. D2 `4 ~ |
|