%%比例接近法求解弹道轨迹
clear;clc;
%导入初始变量
det_t=0.001; %t的步长单位:秒
r0=15000; %初始距离
q0=60/180*pi; %初始方位角
sigma0=30/180*pi; %目标初始速度方向
V_feiji=350; %飞机速度m/s
V_daodan=550; %导弹速度
p=V_daodan/V_feiji; %导弹飞机速度比
K=2; %比例接近法比例K值
%初始化时间,坐标信息等
t=0;n=1;r(1)=r0;q=q0;ny=0;sit=q0;
daodan(1,1)=0;daodan(1,2)=0;%导弹初始位于原点
feiji(1,1)=r0*cos(q0);
feiji(1,2)=r0*sin(q0);
V_f_x=V_feiji*cos(sigma0);%飞机xy方向的速度
V_f_y=V_feiji*sin(sigma0);
V_d_x=V_daodan*cos(sit);%导弹的速度分量
V_d_y=V_daodan*sin(sit);
site(1,1)=-feiji(1,1);%相对位置
site(1,2)=-feiji(1,2);
while(r(n)>(V_daodan-V_feiji)*det_t)%可以设置攻击半径
n=n+1;t=t+det_t;
%更新坐标
daodan(n,1)=daodan(n-1,1)+V_d_x*det_t;
daodan(n,2)=daodan(n-1,2)+V_d_y*det_t;
feiji(n,1)=feiji(n-1,1)+V_f_x*det_t;
feiji(n,2)=feiji(n-1,2)+V_f_y*det_t;
site(n,1)=daodan(n,1)-feiji(n,1);
site(n,2)=daodan(n,2)-feiji(n,2);
%更新其他值
r(n)=sqrt((feiji(n,2)-daodan(n,2))^2+(feiji(n,1)-daodan(n,1))^2);
q(n)=atan((feiji(n,2)-daodan(n,2))/(feiji(n,1)-daodan(n,1)));
sit(n)=K*(q(n)-q(n-1))+sit(n-1);
ny(n-1)=V_daodan*abs(sit(n-1)-sit(n))/det_t/9.8;
%速度修正规则
V_d_x=V_daodan*cos(sit(n));
V_d_y=V_daodan*sin(sit(n));
end