仿真结果:
![](https://img-blog.csdnimg.cn/e9a4b35f8d9c461780b7ce726640c281.png)
比例导引计算公式为:![a_m=NV_c\.\{lambda_{tm}}](https://latex.csdn.net/eq?a_m%3DNV_c%5C.%5C%7Blambda_%7Btm%7D%7D)
其中a为导弹加速度,N为比例导引系数,λ为导弹目视线角变化率。其中在平面交战几何有以下关系:
![](https://img-blog.csdnimg.cn/1e328764ef804da2bc644e6e53b383b2.png)
%比例导引,目标阶跃机动
clc
clear
close all
%导弹的初始参数
VM = 1200.;%导弹的初始速度
RM1 = 0;%导弹初始位置
RM2 = 10000;
XNP = 4.;%比例导引系数,根据经验取3-5
THET=0/180*pi;%导弹的初始飞行航向角
VM1=VM*cos(THET);%导弹的初始速度
VM2=VM*sin(THET);
XNM_R=0;%导弹实际加速度指令的初始值
TAU_M=1;%导弹制导系统的时间常数
%目标的初始参数
VT = 600.;
RT1 = 50000;%目标初始位置
RT2 = 30000;
BETA=-5/57.3;%目标的初始飞行航向角
VT1=-VT*cos(BETA);
VT2=VT*sin(BETA);
XNT_R=0;
XNTLIM=2.5*9.8;%30km高度,目标最大过载初始值
TAU_T=0.5;
%弹目初始相对信息
RTM1=RT1-RM1;%X轴上的相对距离
RTM2=RT2-RM2;%Y轴上的相对距离
RTM=sqrt(RTM1*RTM1+RTM2*RTM2);%相对距离
XLAM=atan2(RTM2,RTM1); %视线角
VTM1 = VT1 - VM1;%相对距离在X轴上的投影
VTM2 = VT2 - VM2;%相对距离在Y轴上的投影
VC=-(RTM1*VTM1 + RTM2*VTM2)/RTM;%接近速度(相对速度)
n=0;
w=0.5;
T=0.;
S=0.;
while VC >= 0 %弹目在接近时,就一直循环
if RTM < 1000
H=.0002;%仿真步长
else
H=.01;
end
BETAOLD=BETA;%涉及到利用二阶runge-kutta递推微分方程的值
THETOLD=THET;
RT1OLD=RT1;
RT2OLD=RT2;
RM1OLD=RM1;
RM2OLD=RM2;
XNMOLD=XNM_R;
XNTOLD=XNT_R;
STEP=1;
FLAG=0;
while STEP =.09999
S=0.;
n=n+1;
ArrayT(n)=T;
ArrayRT1(n)=RT1;
ArrayRT2(n)=RT2;
ArrayRM1(n)=RM1;
ArrayRM2(n)=RM2;
ArrayXNCG(n)=XNM/9.8;
ArrayXNTG(n)=XNT/9.8;
ArrayRTM(n)=RTM;
ArrayXLAMD(n)=XLAMD;
ArrayTHET(n)=THET;
end
end
figure
plot(ArrayRT1,ArrayRT2,ArrayRM1,ArrayRM2),grid
title('导弹目标交战轨迹')
xlabel('X轴(m) ')
ylabel('Y轴(m)')
讲解:https://www.bilibili.com/video/BV1124y1T7cL/?spm_id_from=333.788.recommend_more_video.-1&vd_source=e0242e1938661c351319b621705c7cc3 https://www.bilibili.com/video/BV1124y1T7cL/?spm_id_from=333.788.recommend_more_video.-1&vd_source=e0242e1938661c351319b621705c7cc3
|