Исследование диаграмм направленности и коэффициента направленного действия апертурных антенн СВЧ диапазона. Струков И.Ф - 33 стр.

UptoLike

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

33
волной Н
10
в Е и Н плоскостях при
4
max
π
Ψ
с использованием языка "Паскаль"
по формулам (21) и (22).
program LR1_W_1;
uses Graph, Crt;
const pi=3.1415926;
var GraphDriver, GraphMode, ErrorCode, Xm, Ym: integer;
i, a, b, di, lambda: real;
{----------Задание функций Fe(teta) и Fh(teta)------------}
function Fe (x:real):real;
begin Fe:=sqr(cos(x/2))*abs(sin(pi*b*sin(x))/(pi*b*sin(x)))
end;
function Fh (x:real):real;
begin Fh:=sqr(cos(x/2))*abs(cos(pi*a*sin(x))/(1-sqr(2*a*sin(x))))
end;
{----------Процедура инициализации графики-------------}
procedure init;
begin GraphDriver:=Detect;
InitGraph (GraphDriver, GraphMode, 'E:\BGI');
ErrorCode:=GraphResult;
if ErrorCode<>grOk then begin
writeln ('Error: ', GraphErrorMsg(ErrorCode));
readln;
end;
end;
{-----------Процедура построения координатной сетки------------}
procedure XYplot;
begin Line (GetMaxX div 2, 0, Xm div 2, Ym);
Line (0, Round(0.9*Ym), Xm, Round(0.9*Ym));
OutTextXY (Xm div 2+8, Round(Ym*0.45), '0.5');
OutTextXY (Xm div 2+8, Round(Ym*0.26), '0.7');
OutTextXY (Xm-35, Round(0.9*Ym)-10, 'Teta');
OutTextXY (0, Round(0.9*Ym)+5, '-pi');
OutTextXY (Xm div 2 +5, Round(0.9*Ym)+5, '0');
OutTextXY (Xm-15, Round(0.9*Ym)+5, 'pi');
end;
BEGIN Writeln('ДН волноводной или рупорной антенны при малых квадратичных
фазовых искажениях');
WriteLn('Введите размеры антенны и длину волны в одних единицах:');
Write('a=D1='); ReadLn(a);
Write('b=D2='); ReadLn(b);
Write('lambda='); ReadLn(lambda);
a:=a/lambda; b:=b/lambda; {электрические размеры антенны }
{-------------------------------------------}
init;
Xm:=GetMaxX;
Ym:=GetMaxY;
SetColor (White);
XYplot;
OutTextXY (Xm div 2+10, 5, 'Fe(Teta)'); i:=-1; di:=0.005;
While i<=1 do
begin Line(Round(Xm*(1+i)/2), Round(Ym*0.9*(1-Fe(pi*i))), Round(Xm*(1+i+di)/2),
Round(Ym*0.9*(1-Fe(pi*(i+di)))));
i:=i+di;
end;
OutTextXY (10, Ym-15, 'Press any key');
ReadLn;
{-------------------------------------------}
init;
XYplot;
OutTextXY (Xm div 2+10, 5, 'Fh(Teta)');
i:=-1;
di:=0.005;
While i<=1 do
                                                33
во лно й Н10 в Е и Н пло ско стях пр и Ψmax ≤ π 4 с и спо льзо ва ни е м язы ка "П а ска ль"
по фо р м ула м (21) и (22).
program LR1_W_1;
   uses Graph, Crt;
  const pi=3.1415926;
    var GraphDriver, GraphMode, ErrorCode, Xm, Ym: integer;
           i, a, b, di, lambda: real;
   {----------З а да ние ф у нкц ий Fe(teta) и Fh(teta)------------}
function Fe (x:real):real;
   begin Fe:=sqr(cos(x/2))*abs(sin(pi*b*sin(x))/(pi*b*sin(x)))
   end;
function Fh (x:real):real;
   begin Fh:=sqr(cos(x/2))*abs(cos(pi*a*sin(x))/(1-sqr(2*a*sin(x))))
   end;
   {----------П р оц еду р а иниц иа лиза ц иигр а ф ики-------------}
procedure init;
begin GraphDriver:=Detect;
         InitGraph (GraphDriver, GraphMode, 'E:\BGI');
         ErrorCode:=GraphResult;
         if ErrorCode<>grOk then begin
                                                      writeln ('Error: ', GraphErrorMsg(ErrorCode));
                                                      readln;
                                              end;
end;
   {-----------П р оц еду р а постр оения коор дина тной сетки------------}
procedure XYplot;
begin Line (GetMaxX div 2, 0, Xm div 2, Ym);
           Line (0, Round(0.9*Ym), Xm, Round(0.9*Ym));
           OutTextXY (Xm div 2+8, Round(Ym*0.45), '0.5');
           OutTextXY (Xm div 2+8, Round(Ym*0.26), '0.7');
           OutTextXY (Xm-35, Round(0.9*Ym)-10, 'Teta');
           OutTextXY (0, Round(0.9*Ym)+5, '-pi');
           OutTextXY (Xm div 2 +5, Round(0.9*Ym)+5, '0');
           OutTextXY (Xm-15, Round(0.9*Ym)+5, 'pi');

end;
BEGIN Writeln('Д Н волноводной или р у пор ной а нтенны пр има лы х ква др а тичны х
ф а зовы х иска ж ения х');
        WriteLn('Введите р а змер ы а нтенны идлину волны в одних единиц а х:');
        Write('a=D1='); ReadLn(a);
        Write('b=D2='); ReadLn(b);
        Write('lambda='); ReadLn(lambda);
        a:=a/lambda; b:=b/lambda; {э лектр ические р а змер ы а нтенны }
        {-------------------------------------------}
        init;
        Xm:=GetMaxX;
        Ym:=GetMaxY;
        SetColor (White);
        XYplot;
        OutTextXY (Xm div 2+10, 5, 'Fe(Teta)'); i:=-1; di:=0.005;
        While i<=1 do
          begin Line(Round(Xm*(1+i)/2), Round(Ym*0.9*(1-Fe(pi*i))), Round(Xm*(1+i+di)/2),
                   Round(Ym*0.9*(1-Fe(pi*(i+di)))));
               i:=i+di;
          end;
        OutTextXY (10, Ym-15, 'Press any key');
        ReadLn;
        {-------------------------------------------}
        init;
        XYplot;
        OutTextXY (Xm div 2+10, 5, 'Fh(Teta)');
        i:=-1;
        di:=0.005;
        While i<=1 do