純方位目標運動分析是一種隱蔽突擊的有效方法,它是利用目標本身的有源輻射,如電磁波輻射、紅外輻射、聲波輻射、目標對照射的散射。甚至目標施放的干擾輻射等,采用機動單站測向機對目標定位與跟蹤。這種對運動目標的隱蔽定位與跟蹤是反電子對抗、反水聲對抗、反偵察,實施對目標突然襲擊的十分有效的手段。在現代戰爭實際環境里,通常測得的敵機(艦)特征數據是非常有限的。而目標的方位幾乎成了唯一可靠的參數。因此可以 利用所測得的目標方位角信息估計目標的運動參數(位置、速度、加速度等),從而實施對敵機(艦)的有效打擊和電子干擾。 假定觀測站對某勻速直線運動的目標進行純方位跟蹤,假定觀測站已知目標的初始狀態。 基于純方位的目標運動模型可以寫成如下形式∶ X ( k ) = Φ X ( k ? 1 ) + T U ( k ) X(k)= \Phi X(k-1)+\Tau U(k) X ( k ) = Φ X ( k ? 1 ) + T U ( k ) Z ( k ) = a r c t a n y ( k ) ? y 0 x ( k ) ? x 0 + V ( k ) Z(k)=arctan{\frac{y(k)-y_0}{x(k)-x_0}} +V(k) Z ( k ) = a rc t an x ( k ) ? x 0 ? y ( k ) ? y 0 ? ? + V ( k )
% function EKF_Angle
T=1; %雷達掃描周期
N=40/T; %。總的采樣次數
F=[ 1,T,0,0;0,1,0,0;0,0,1,T;0,0,0,1]; %狀態轉移矩陣
G=[T^2/2,0;T,0;0,T^2/2;0,T]; %過程噪聲驅動矩陣
delta_w= 1e-4; %如果增大這個參數,目標真實軌跡就是曲線了
Q =delta_w * diag([1,1]); %過程噪聲均值
R=0.01 * pi/180; %觀測噪聲方差,讀者可以修改此值觀察其對角度測量的影響
W = sqrtm( Q) * randn( 2,N); %過程噪聲
V=sqrt( R) * randn( 1,N); %觀測噪聲
%觀測站的位置,可以設為其他值
station.x=0;
station.y =1000;
%% %% %%%%%%%%%%%%%%%%%%%%% % %%%%%%%%%%%%%%%%% %%
X= zeros( 4,N); %目標真實位置、速度
X( :,1)=[0,2,1400,-10]; %目標初始位置、速度
Z=zeros( 1,N); %傳感器對位置的觀測
for k=2:NX( : ,k)=F*X( :,k-1)+G* W( :,k); %目標真實軌跡
end
for k= 1 :Ntarget.x=X( 1,k) ; target.y=X( 3,k);Z( k )= hfun( target , station)+V(k); % 對目標觀測
end
% EKF濾波
Xekf = zeros( 4,N );
Xekf( : ,1)= X( :,1 ); %Kalman濾波狀態初始化
P0=eye( 4); %協方差陣初始化
for i= 2:NXn=F * Xekf( : , i-1) ; %。預測P1=F* P0 * F'+G*Q* G'; %預測誤差協方差target.x = Xn( 1 ) ; target.y = Xn( 3 ) ;dd = hfun( target , station) ; %。觀測預測%求雅可比矩陣HD= Dist( target , station ) ;H=[-( Xn(3, 1) -station.y)/ D,0,(Xn(1,1)-station.x)/D,0];K=P1*H'* inv(H*P1* H'+R); %增益Xekf( : ,i)= Xn+K*(Z(:,i )-dd ) ; %狀態更新P0= ( eye(4)-K* H) * P1; %濾波誤差協方差更新
end
%誤差分析
for i= 1 :Ntarget.x=X( 1 , i ) ;target.y=X( 3, i );s.x = Xekf( 1 , i ) ;s. y =Xekf( 3, i);Err_KalmanFilter( i)= Dist ( target , s ) ;%濾波后誤差
end
% %%%% %%%%%%%%%%%%% %% %%%% %%%%%%%%%%%%%%%% %%%%%%%畫圖
figure
hold on ; box on;
plot( X( 1,:),X( 3, : ) , '-k.' ); %真實軌跡
hold on;
plot( Xekf( 1 , : ) ,Xekf( 3, : ) , '-r+'); %擴展Kalman濾波軌跡
legend('真實軌跡','EKF軌跡');figure
hold on; box on;
plot( Err_KalmanFilter , '-ks' , 'MarkerFace' , 'r');figure
hold on; box on;
plot ( Z/ pi * 180-V/ pi * 180 , '-r. ' , 'MarkerFace' , 'r' );%真實角度值
plot( Z/ pi * 180 , '-ko' , 'MarkerFace' , 'g'); % 受噪聲污染的觀測值
legend('真實角度','觀測角度');
%%%%%%%%% %%%%%%% %%%%%%%% %%%%% %%% %%% %% %%%%% %% %%
%子函數
function cita = hfun( X1 ,X0)
cita= atan2( X1.y-X0.y ,X1.x-X0.x);
end
function d= Dist( X1,X2)
d = sqrt(( X1.x-X2.x)^2+(X1.y-X2.y)^2);
end
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%
總結
以上是生活随笔 為你收集整理的纯方位角目标跟踪 EKF状态估计 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。