c21l3.m

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

M
104
字号
n=0;
VC=4000.;
XNT=32.2;
XNP=3.;
XNCLIM=99999.;
%for X=.1:.1:4
%Number of runs reduced by factor of 2.5 to get acceptable running times
for X=.25:.25:4	
	if X<.5
		W=1.;
		TAU=X/W;
	else
		W=X;
		TAU=1.;
	end
	XMWEAVEOLD=0.;
   XMWEAVEMAX=0.;
   %for TF=.2:.2:20
   %Number of flight times reduced by factor of 5 to get acceptable running times
	for TF=1:1:20
		PHASE=0.;
		Y=0.;
		YD=0.;
		XNL=0.;
		D=0.;
		ELAMDH=0.;
		X4=0.;
		X5=0.;
      T=0.;
      %H=.01;
      %Integration interval increased by factor of 5 to get acceptable running times
		H=.05;
		S=0.;
 		while T<=(TF-1e-5)
 			YOLD=Y;
			YDOLD=YD;
			XNLOLD=XNL;
			DOLD=D;
			ELAMDHOLD=ELAMDH;
			X4OLD=X4;
			X5OLD=X5;
			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;
					D=D+H*DD;
					X4=X4+H*X4D;
					X5=X5+H*X5D;
					T=T+H;
				end
				YTDD=XNT*sin(W*T);
 				TGO=TF-T+.00001;
				XLAM=Y/(VC*TGO);
				DD=5.*(XLAM-D)/TAU;
				ELAMDHD=5.*(DD-ELAMDH)/TAU;
				XNC=XNP*VC*ELAMDH;
				if XNC>XNCLIM
					XNC=XNCLIM;
				end
				if XNC<-XNCLIM
					XNC=-XNCLIM;
				end
				X4D=5.*(XNC-X4)/TAU;
				X5D=5.*(X4-X5)/TAU;
				XNLD=5.*(X5-XNL)/TAU;
				YDD=YTDD-XNL;
				FLAG=1;
      	end
      	FLAG=0;
 			Y=.5*(YOLD+Y+H*YD);
 			YD=.5*(YDOLD+YD+H*YDD);
			XNL=.5*(XNLOLD+XNL+H*XNLD);
			D=.5*(DOLD+D+H*DD);
			ELAMDH=.5*(ELAMDHOLD+ELAMDH+H*ELAMDHD);
			X4=.5*(X4OLD+X4+H*X4D);
			X5=.5*(X5OLD+X5+H*X5D);
		end
 		XMWEAVE=Y;
		if (XMWEAVE>XMWEAVEOLD & XMWEAVE>XMWEAVEMAX & TF>10.)
			XMWEAVEMAX=XMWEAVE;
		end
		XMWEAVEOLD=XMWEAVE;
	end
 	if X<.5
		XMWEAVEMAX=XMWEAVEMAX/TAU^2;
	end
	n=n+1;
	ArrayX(n)=X;
	ArrayXMWEAVEMAX(n)=XMWEAVEMAX;
end
figure
plot(ArrayX,ArrayXMWEAVEMAX),grid
xlabel('X')
ylabel('Normalized Miss')
clc
output=[ArrayX',ArrayXMWEAVEMAX'];
save datfil.txt output  -ascii
disp 'simulation finished'

⌨️ 快捷键说明

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