📄 c20l3.m
字号:
clear
XNP=3;
TAU=1;
DISPLACE=200;
n=0;
%for THOM = 0.1:0.1:5
%Number of runs reduced to get acceptable running times
for THOM = 0.2:0.2:3
VM=3000;
VT=1000;
RM1=0;
RM2=0;
RT1=20000;
RT2=0;
QSWITCH=0;
VT1=-VT;
VT2=0;
T=0;
S=0;
RTM1=RT1-RM1;
RTM2=RT2-RM2;
RTM=sqrt(RTM1*RTM1+RTM2*RTM2);
XLAM=atan2(RTM2,RTM1);
VM1=VM;
VM2=0;
VTM1=VT1-VM1;
VTM2=VT2-VM2;
VC=-(RTM1*VTM1+RTM2*VTM2)/RTM;
TGO=RTM/VC;
XLAMH=0;
H=.005;
while VC >= 0
TGO=RTM/VC;
if TGO < 0.3
%H=.00005;
%Integration interval at end of flight reduced to get acceptable running times
H=.001;
end
if TGO <= THOM & (~QSWITCH)
QSWITCH=1;
RT2=RT2+DISPLACE;
end
RT1OLD=RT1;
RT2OLD=RT2;
RM1OLD=RM1;
RM2OLD=RM2;
VM1OLD=VM1;
VM2OLD=VM2;
XLAMHOLD=XLAMH;
STEP=1;
FLAG=0;
while STEP <=1
if FLAG==1
RT1=RT1+H*VT1;
RT2=RT2+H*VT2;
RM1=RM1+H*VM1;
RM2=RM2+H*VM2;
VM1=VM1+H*AM1;
VM2=VM2+H*AM2;
XLAMH=XLAMH+H*XLAMHD;
T=T+H;
STEP=2;
end
RTM1=RT1-RM1;
RTM2=RT2-RM2;
RTM=sqrt(RTM1*RTM1+RTM2*RTM2);
VTM1=VT1-VM1;
VTM2=VT2-VM2;
VC=-(RTM1*VTM1+RTM2*VTM2)/RTM;
XLAM=atan2(RTM2,RTM1);
XLAMHD=(XLAM-XLAMH)/TAU;
XNC=XNP*VC*XLAMHD;
AM1=-XNC*sin(XLAM);
AM2=XNC*cos(XLAM);
FLAG=1;
end
FLAG=0;
RT1=.5*(RT1OLD+RT1+H*VT1);
RT2=.5*(RT2OLD+RT2+H*VT2);
RM1=.5*(RM1OLD+RM1+H*VM1);
RM2=.5*(RM2OLD+RM2+H*VM2);
VM1=.5*(VM1OLD+VM1+H*AM1);
VM2=.5*(VM2OLD+VM2+H*AM2);
XLAMH=.5*(XLAMHOLD+XLAMH+H*XLAMHD);
S=S+H;
end
X=THOM/TAU;
THEORY=DISPLACE*exp(-X)*(1.-2.*X+.5*X*X);
if RTM2 > 0
RTMP=RTM;
else
RTMP=-RTM;
end
n=n+1;
ArrayTHOM(n)=THOM;
ArrayRTMP(n)=RTMP;
ArrayTHEORY(n)=THEORY;
end
figure
plot(ArrayTHOM,ArrayRTMP,ArrayTHOM,ArrayTHEORY),grid
title('Simulation Listing 20.3')
xlabel('Flight Time (Sec)')
ylabel('Miss (Ft) ')
clc
output=[ArrayTHOM',ArrayRTMP',ArrayTHEORY' ];
save datfil.txt output -ascii
disp 'simulation finished'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -