c6l2.m

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

M
86
字号
VC=4000.;
XNT=32.2;
YIC=0.;
VM=3000.;
HEDEG=0.;
TAU=.5;
XNP=3.;
TA=0.;
R=-.01;
n=0.;
%for TF=.1:.1:10
%Reduce number of runs by factor of 5 to get acceptable running time
for TF=.5:.5:10	
   Y=YIC;
	YD=-VM*HEDEG/57.3;
	YDIC=YD;
	XNL=0.;
   ELAMDH=0.;	
   X4=0.;
	X5=0.;
	TH=0.;
   THH=0.;	
   T=0.;	
   H=.01;
      while T<=(TF-1e-5)
      YOLD=Y;
      YDOLD=YD;
      XNLOLD=XNL;
      ELAMDHOLD=ELAMDH;
      X4OLD=X4;
      X5OLD=X5;
      THOLD=TH;
      THHOLD=THH;
      STEP=1;
      FLAG=0;
      while STEP<=1
         if FLAG==1
            STEP=2;
            Y=Y+H*YD;
            YD=YD+H*YDD;
            XNL=XNL+H*XNLD;
            ELAMDH=ELAMDH+H*ELAMDHD;
            X4=X4+H*X4D;
            X5=X5+H*X5D;
            TH=TH+H*THD;
            THH=THH+H*THHD;
            T=T+H;
         end
         TGO=TF-T+.00001;
         XLAM=Y/(VC*TGO);
         EPS=XLAM-TH-THH+R*THH;
         DD=5.*EPS/TAU;
         ELAMDHD=5.*(DD-ELAMDH)/TAU;
         XNC=XNP*VC*ELAMDH;
         X4D=5.*(XNC-X4)/TAU;
         X5D=5.*(X4-X5)/TAU;
         XNLD=5.*(X5-XNL)/TAU;
         THD=XNL/VM+TA*XNLD/VM;
         THHD=DD-THD;
         YDD=XNT-XNL;    
         FLAG=1;
      end
      FLAG=0;
      Y=.5*(YOLD+Y+H*YD);
      YD=.5*(YDOLD+YD+H*YDD);
      XNL=.5*(XNLOLD+XNL+H*XNLD);
      ELAMDH=.5*(ELAMDHOLD+ELAMDH+H*ELAMDHD);
      X4=.5*(X4OLD+X4+H*X4D);
      X5=.5*(X5OLD+X5+H*X5D);
      TH=.5*(THOLD+TH+H*THD);
      THH=.5*(THHOLD+THH+H*THHD);
   end
   n=n+1;
   ArrayTF(n)=TF;
   ArrayY(n)=Y;
end
figure
plot(ArrayTF,ArrayY),grid
xlabel('Flight Time (Sec)')
ylabel('Miss (Ft)')
clc
output=[ArrayTF',ArrayY'];
save datfil.txt output  -ascii
disp 'simulation finished'

⌨️ 快捷键说明

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