c20l4.m

来自「这是本战略战术导弹制导的书中的matlab程序,比书中的 forchan程序简单」· M 代码 · 共 75 行

M
75
字号
n=0;	
XNP=3.;
TAU=1.;
TF=10.;
VC=4000.;
YTIC=1.;
T=0.;
S=0.;
TP=T+.00001;
X2=0;
X3=1;
X4=0;
X5=0.;
X6=0.;
X7=0.;
X8=0.;
H=.01;
while TP<=(TF-1e-5)
	X2OLD=X2;
	X3OLD=X3;
	X4OLD=X4;
	X5OLD=X5;
	X6OLD=X6;
	X7OLD=X7;
	X8OLD=X8;
	STEP=1;
	FLAG=0;
   while STEP<=1
      if FLAG==1
         STEP=2;	
         X2=X2+H*X2D;
         X3=X3+H*X3D;
         X4=X4+H*X4D;
         X5=X5+H*X5D;
         X6=X6+H*X6D;
         X7=X7+H*X7D;
         X8=X8+H*X8D;
         TP=TP+H;
      end
      X2D=X3;
      Y1=5.*(5.*X5/TAU+X4)/TAU;
      TGO=TP+.00001;
      X3D=Y1/(VC*TGO);
      X4D=-Y1;
      X5D=-5.*X5/TAU+5.*X6*XNP*VC/TAU;
      X6D=-5.*X6/TAU+5.*X7/TAU;
      X7D=-5.*X7/TAU+5.*X8/TAU;
      X8D=-5.*X8/TAU-X2;
      FLAG=1;   
   end
   FLAG=0;
	X2=(X2OLD+X2)/2+.5*H*X2D;
	X3=(X3OLD+X3)/2+.5*H*X3D;
	X4=(X4OLD+X4)/2+.5*H*X4D;
	X5=(X5OLD+X5)/2+.5*H*X5D;
	X6=(X6OLD+X6)/2+.5*H*X6D;
	X7=(X7OLD+X7)/2+.5*H*X7D;
   X8=(X8OLD+X8)/2+.5*H*X8D;
   S=S+H;
   if S>=.09999
      S=0.;
      n=n+1;
      ArrayTP(n)=TP;
      ArrayXMYT(n)=YTIC*X3;
   end
end
figure
plot(ArrayTP,ArrayXMYT),grid
xlabel('Flight Time (Sec)')
ylabel('Target Displacement Miss (Ft)')
clc
output=[ArrayTP',ArrayXMYT'];
save datfil.txt output  -ascii
disp 'simulation finished'

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?