c7l2.m
来自「这是本战略战术导弹制导的书中的matlab程序,比书中的 forchan程序简单」· M 代码 · 共 106 行
M
106 行
%Preallocation
Z=zeros(size(1:1000));
I=zeros(size(1:50));
TF=zeros(size(1:50));
count=0;
VC=4000;
XNT=96.6;
YIC=0;
VM=3000;
HEDEG=0;
BETA=.8;
XNP=3;
SIGNOISE=.001;
TS=.1;
%RUN=50;
%To make ruuning time acceptable reduce runs by factor of 10
RUN=5;
NOISE=1;
for TF=.5:.5:10.0,
Z1=0;
for I=1:RUN
Y=YIC;
YD=-VM*HEDEG/57.3;
YDIC=YD;
T=0.;
H=.01;
S=0.;
GFILTER=1.-BETA^2;
HFILTER=(1.-BETA)^2;
XLAMH=0.;
XLAMDH=0.;
XNC=0.;
while T <= (TF - 1e-5)
YOLD=Y;
YDOLD=YD;
STEP=1;
FLAG=0;
while STEP <=1
if FLAG==1
Y=Y+H*YD;
YD=YD+H*YDD;
T=T+H;
STEP=2;
end;
TGO=TF-T+.00001;
RTM=VC*TGO;
XLAM=Y/(VC*TGO);
XLAMD=(RTM*YD+Y*VC)/(RTM^2);
YDD=XNT-XNC;
FLAG=1;
end;
FLAG=0;
Y=.5*(YOLD+Y+H*YD);
YD=.5*(YDOLD+YD+H*YDD);
S=S+H;
if S>=(TS - 1e-5)
S=0.;
if NOISE==1,
XLAMNOISE=gaussc7(SIGNOISE);
else
XLAMNOISE=0;
end;
RES=XLAM-(XLAMH+TS*XLAMDH)+XLAMNOISE;
XLAMH=GFILTER*RES+XLAMH+TS*XLAMDH;
XLAMDH=HFILTER*RES/TS+XLAMDH;
XNC=XNP*VC*XLAMDH;
end;
end;
Z(I)=Y;
Z1=Z(I)+Z1;
XMEAN=Z1/I;
end;
SIGMA=0;
Z1=0;
for I=1:RUN,
Z1=(Z(I)-XMEAN)^2+Z1;
if I==1,
SIGMA=0;
else
SIGMA=sqrt(Z1/(I-1));
end;
end;
count=count+1;
ArrayTF(count)=TF;
ArraySIGMA(count)=SIGMA;
ArrayXMEAN(count)=XMEAN;
end;
figure
plot(ArrayTF',ArraySIGMA'),grid
title('Standard deviation of miss for various flight times')
xlabel('Flight Time (S)')
ylabel('Noise Miss Standard Deviation (Ft) ')
axis([00,10,00,4])
figure
plot(ArrayTF',ArrayXMEAN'),grid
title('Mean of miss for various flight times')
xlabel('Flight Time (S)')
ylabel('Noise Miss Standard Deviation (Ft) ')
axis([00,10,00,60])
clc
output=[ArrayTF',ArraySIGMA',ArrayXMEAN'];
save datfil.txt output /ascii
disp('Simulation Complete')
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?