✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
⛄ 内容介绍
随着科技的飞速发展,尤其是航空航天技术的突飞猛进,先后有国家研发了高速高机动飞行器,这类目标具有高声速,大范围机动,系统模型非线性和参数时变等特点.在目标跟踪系统中,目标状态的准确估计尤为关键,而实际系统模型大多是非线性的,这对非线性滤波算法提出了更高的要求.
⛄ 部分代码
% Least squares method for GPS positioning.
function [Rcv_Pos,Rcv_b] = Rcv_Pos_Compute(SV_Pos, SV_Rho)
Num_Of_SV=size(SV_Pos);
if Num_Of_SV<4
Rcv_Pos=[0 0 0];Rcv_b=0;
return;
end
%%
%Initial GPS Position
Rcv_Pos=[0 0 0];Rcv_b=0;
%Start Iteration
%Constrain for convergence
B1=1;
END_LOOP=100;
count=0;
while (END_LOOP > B1)
%A.Compute G
G = G_Compute(SV_Pos, Rcv_Pos);
%B.Compute Delta_Rho
Delta_Rho = Delta_Rho_Compute(SV_Rho, SV_Pos, Rcv_Pos, Rcv_b);
%C.Iteration for new postion
Delta_X = inv(G' * G) * G' * Delta_Rho;
Rcv_Pos = (Rcv_Pos' + Delta_X(1:3))';
Rcv_b = Rcv_b + Delta_X(4);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
END_LOOP = (Delta_X(1)^2 + Delta_X(2)^2 + Delta_X(3)^2)^.5;
count = count+1;
if count>10
END_LOOP=B1/2;
end
end%End of While
end
⛄ 运行结果
⛄ 参考文献
[1]董俊松. 基于扩展卡尔曼滤波的单目标跟踪算法研究[D]. 西北师范大学, 2019.