⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 irrng.m

📁 此程序给出了不同情况的雷达距离测量仿真平台
💻 M
字号:
% Range of IR Missile Seeker
% ---------------------------

clear;clf;clc;

% Input Seeker Parameters [ Band 1  Band 2 ] 

J=[1000 150];			% Target Radiant Intensity - w/sterandian
Do=[7.5 13];			% Optics Diameter - cm
NA=[1.7 1.7];			% Numerical Aperture
ao=[.7 .6];		   	% Optics Transmittance
Ds=[1e11 1e10];		% Detector D*
phi=[1.5 2.5];			% Optics FOV - degrees
df=[100 100];			% Noise Bandwidth - Hz
snr=[30 30];			% Voltage Signal-to-Noise Ratio - dB
Ls=[8 8];				% System and Processing Loss - dB

snrx=10^(snr(1)/20);Lsx=10^(Ls(1)/10);
fovx= (phi(1)*pi/180)^2;                  % FOV in steradians
snr1=10^(snr(2)/20);Ls1=10^(Ls(2)/10);
fov1=(phi(2)*pi/180)^2;

% Compute Range With No Atmospheric Attenuation

tarfac=J(1)^.5;
optfac=(pi*Do(1)*NA(1)*ao(1)/2)^.5;
detfac=Ds(1)^.5;
sysfac=(((fovx*df(1))^.5)*snrx*Lsx)^1/2;
Ro=tarfac*optfac*detfac/(sysfac*1e5); % Range in km

% Input Atmospheric Attenuation vs Altitude

alt=[200 2000 5000 10000]; % Atmospheric Attenuation -dB/km
att=[.88 .37 .16 .06];

% Compute Range with Atmospheric Attenuation
% Using Newton's Method

for j=1:4;
R(1)=Ro;
atn=att(j);				
a=atn/20;

for i=1:10;
   x=.4343/R(i)+a;
   y=log10(R(i))-log10(Ro)+a*R(i);
   dR=y/x;
   R(i+1)=R(i)-dR;
   if abs(dR)<1e-6;break;end;
end;
Rx(j)=R(i);
end;

% Plot Range vs Altitude
% Smooth Data using Polynomial Fit

z=0:10000;
f=polyval(polyfit(alt,Rx,3),z);
plot(z,f);grid;
xlabel('Altitude - meters');
ylabel('Range - km');
title('Range of IR Seeker With Altitude');
axis([0,10000,4,14]);   
hold on

% Compute Range for Second Band

alt1=[200 2000 5000 10000];
att1=[.57 .17 .05 .04];

tarfac1=J(2)^.5;
optfac1=(pi*Do(2)*NA(2)*ao(2)/2)^.5;
detfac1=Ds(2)^.5;
sysfac1=(((fov1*df(2))^.5)*snr1*Ls1)^.5;
Ro1=tarfac1*optfac1*detfac1/(sysfac1*1e5);

for k=1:4;
   R1(1)=Ro1;
   atn1=att1(k);
   a1=atn1/20;
   
   for l=1:10;
      xx=.4343/R1(l)+a1;
      yy=log10(R1(l))-log10(Ro1)+a1*R1(l);
      dR1=yy/xx;
      R1(l+1)=R1(l)-dR1;
      if abs(dR1)<1e-6;break;end
   end;
   
   Rx1(k)=R1(l);
end;

fx=polyval(polyfit(alt1,Rx1,3),z);
plot(z,fx);
   

⌨️ 快捷键说明

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