Дифракция электромагнитного поля миллиметрового диапазона на плоских объектах. Струков И.Ф. - 42 стр.

UptoLike

Составители: 

Рубрика: 

program LabRab_Difraction_6;
uses Graph; const pi=3.1415926;
var GraphDriver, GraphMode, ErrorCode, Xm, Ym, j1,j2, N, i, nn :
integer;
fe, ro, Icos, Isin, max, ro0, x, z, lambda, delta, mno: real;
m : array [-400..400] of real;
{ Функция U(teta) - вычисление ДН }
function U (teta:real):real;
begin
Icos:=0; Isin:=0; N:=20;
for j1:=1 to N do
for j2:=1 to N do begin
fe:=2*pi*j1/N;
ro:=ro0*j2/N;
if ro<ro0 then mno:=delta+(1-delta)*exp(nn*ln(1-sqr(ro/ro0)))
else mno:=delta;
Icos:=Icos+mno*cos(2*pi*ro*sin(teta)*cos(fe))*ro;
Isin:=Isin+mno*sin(2*pi*ro*sin(teta)*cos(fe))*ro;
end;
U:=(sqr(Icos)+sqr(Isin)) * sqr(cos(teta/2));
end;
{ Процедура инициализации графики }
procedure init;
begin GraphDriver:=Detect;
InitGraph (GraphDriver, GraphMode, '');
ErrorCode:=GraphResult;
if ErrorCode<>grOk then begin
writeln ('Error: ', GraphErrorMsg(ErrorCode)); readln; end; end;
{ Процедура построения координатной сетки }
procedure XYplot; begin Line (Xm, 0, Xm, round(Ym*0.9));
Line (0, Round(0.9*Ym), Xm*2, Round(0.9*Ym));
OutTextXY (Xm+15, 5, 'I(teta)');
OutTextXY (Xm+8, Round(Ym*0.45), '0.5');
OutTextXY (Xm+8, Round(Ym*0.26), '0.7');
OutTextXY (Xm*2-65, Round(0.9*Ym)-10, 'teta,rad');
for i:=-3 to 3 do begin
line(round(Xm+i/pi*Xm), round(Ym*0.9)+5, round(Xm+i/pi*Xm),
round(Ym*0.9));
OutTextXY (round(Xm+i/pi*Xm)-3, Round(0.92*Ym)+5, chr(48+abs(i)));
end;
end;
BEGIN Writeln('Рассчет ДН зеркальной антены .');
WriteLn('Bвeдитe длину волны и радиус антены :');
Write('lambda='); ReadLn(lambda);
Write('ro0='); ReadLn(ro0);
WriteLn('Bвeдитe параметры _delta_ (0.0 - 1.0), и _n_ (0.5 - 6) :');
program LabRab_Difraction_6;
uses Graph; const pi=3.1415926;
var GraphDriver, GraphMode, ErrorCode, Xm, Ym, j1,j2, N, i, nn :
        integer;
    fe, ro, Icos, Isin, max, ro0, x, z, lambda, delta, mno: real;
    m : array [-400..400] of real;
{ Ф ункци яU(teta) - вы ч и слени еД Н }
function U (teta:real):real;
begin
  Icos:=0; Isin:=0; N:=20;
  for j1:=1 to N do
    for j2:=1 to N do begin
      fe:=2*pi*j1/N;
      ro:=ro0*j2/N;
      if rogrOk then begin
writeln ('Error: ', GraphErrorMsg(ErrorCode)); readln; end; end;
{ П роцедурапостроени якоорди натной сетки }
procedure XYplot; begin Line (Xm, 0, Xm, round(Ym*0.9));
Line (0, Round(0.9*Ym), Xm*2, Round(0.9*Ym));
OutTextXY (Xm+15, 5, 'I(teta)');
OutTextXY (Xm+8, Round(Ym*0.45), '0.5');
OutTextXY (Xm+8, Round(Ym*0.26), '0.7');
OutTextXY (Xm*2-65, Round(0.9*Ym)-10, 'teta,rad');
for i:=-3 to 3 do begin
  line(round(Xm+i/pi*Xm), round(Ym*0.9)+5, round(Xm+i/pi*Xm),
        round(Ym*0.9));
  OutTextXY (round(Xm+i/pi*Xm)-3, Round(0.92*Ym)+5, chr(48+abs(i)));
end;
end;
BEGIN Writeln('Р ассчет Д Н зеркаль ной антены.');
WriteLn('Bвeди тe дли ну волны и ради ус антены:');
Write('lambda='); ReadLn(lambda);
Write('ro0='); ReadLn(ro0);
WriteLn('Bвeди тe парам етры _delta_ (0.0 - 1.0), и _n_ (0.5 - 6) :');