Исследование эффекта автодинного детектирования в многоконтурном генераторе на диоде Ганна

Страница: 9/13

26. Будак Б. М., Фомин С. В. Кратные интегралы и ряды. - М.:Наука. - 1965. - 608 с.

27. Маккракен Д., Дорн У. Численные методы и программирование на ФОРТРАНе. Пер. с англ. / под ред. Наймарка Б. М. - М.:Мир. - 1977. - 584 с.

Приложение. Текст программы для моделирования процессов в многоконтурном генераторе на диоде Ганна.

{$A+,B-,D-,E-,F-,G-,I+,L+,N+,O-,P-,Q-,R-,S+,T-,V+,X+}

program gist_f3;

uses crt,graph,AN;

label 1,2;

const

n=15;

q1=1.6e-19;

n123=1e21; c2=0.03e-12;

s123=1e-8; c3=0.3e-12;

mm1=0.6; c4=0.8e-12;

Lg=1e-5; c5=10e-12; { отсечение НЧ цепи }

Eb=4e5; c6=1e-6;

T10=300.0; c7=15e-12;

r1=0.01; l2=0.2e-9;

r3=1; l3=0.6e-9;

r4=0.0005; l4=0.01e-9; { крутим }

r5=100; l5=100e-9;

Eds=3.8; l6=35e-9;

l7=0.12e-9;

ll0=0.03; {sm}

llk=0.046; maxpoint=1000000000;

z0=39.43e3;

Type FL=EXTENDED;

Type ry=array[1 1100]of FL;

Type tt=array[1 N]of FL;

var sign,g1,sign1,sign2,sign3:ry;

oldy1,oldy:array[1 10] of integer;

K1,y,f,w:tt;

delta_i,frequency,old_f,old_cur,di,oldc1,oldc2,c1,l1, sign0,d_visir,bn,iv1,iv11,iv12,x,h,vp1,smax,f0,s0,Vs,Vs1, y1,s1,ppp:FL;

mark,count,fcount,point,deltax,fsign,gd,oldx,oldx1,dh,dj,

visir_1,visir_2,visir_3,visir_4,k,aaa,i,ii,iii,phas_x, phas_y:integer;

round,fpoint,iii1,loop:longint;

visir_f,visir_f1,visir_s,power,size_x,size_y:real;

c:char;

P: Pointer;

Size: Word;

s:string;

Procedure current;

var U:real; { BAX }

begin

Vs:=eds/(Eb*Lg);

Vs1:=Vs*Vs*Vs;

Vs:=(1+0.265*Vs1/(1-T10*5.3E-4))/(1+Vs1*Vs);

Vs:=1.3E7*Eds*Vs/T10;

if y[3]<3.3 then u:=y[3];

if y[3]>3.6 then u:=y[3]+2

else begin

if f[3]>0 then u:=y[3]

else u:=y[3]+2;

end;

iv12:=sqr(sqr(u/eb/Lg));

iv11:=mm1*u/Lg+vs*iv12;

iv1:=q1*n123*s123*iv11/(1+iv12);

end;

procedure kzp; { КЗП }

var ll2:FL;

begin

l1:=0.2e-9;

c1:=0.1e-12;

llv:=ll0/sqrt(1-sqr(ll0/llk));

z:=z0*Sin(6.28*lll/llv)/Cos(6.28*lll/llv);

if z<0 then begin

ll2:=abs(z)/6.28e10;

l1:=l1*ll2/(l1+ll2);

end

else c1:=c1+1/(z*6.28e10);

}

end;

Procedure anna(y:tt; var f1:tt);

begin

current;

f[1]:=(y[6]-y[7]-y[12])/c5; { Uag }

f[2]:=(y[7]-y[8]-y[9])/c4; { Ubg }

f[3]:=(y[8]-iv1)/c3; { Ucc'}

f[4]:=(y[9]-y[4]*r1-y[10])/c1; { Udg }

f[5]:=0; { Ueg }

f[6]:=(eds-y[1]-y[6]*r4)/l1; { i1 }

f[7]:=(y[1]-y[2])/l4; { i2 }

f[8]:=(y[2]-y[3]-y[8]*r3)/l3; { i7 }

f[9]:=(y[2]-y[11]-y[4])/l2; { i6 }

f[10]:=y[4]/l1; { iL1 }

f[11]:=y[9]/c2; { Uc2 }

f[12]:=(y[1]-y[13]-y[14])/L7; { i3' }

f[13]:=y[12]/c6; { Uc6 }

f[14]:=(y[12]-y[15]-y[14]/r5)/c7; { Ukg }

f[15]:=y[14]/L6; { iL6 }

end;

procedure an2; { spector }

begin

XMIN:=0;XMAX:=40;YMIN:=0;YMAX:=100;

YGMIN:=25;YGMAX:=200;XGMIN:=350;XGMAX:=630;

nx:=4;ny:=5;

setcolor(7);

OutTextxy(XGMIN,YGMIN-10,'Спектр тока на диоде');

OutTextxy(XGMAX-50,YGMAX+20,'f,GHz.');

setcolor(15);

moveto(xgmin,ygmax);

end;

procedure an3; { u,i }

begin

XMIN:=0;XMAX:=4;YMIN:=-4;YMAX:=10;

YGMIN:=240;YGMAX:=420;XGMIN:=50;XGMAX:=630;

nx:=8;ny:=7;

setcolor(7);

OutTextxy(XGMIN,YGMIN-10,'i7-green, Uag-magenta');

OutTextxy(XGMAX-50,YGMAX+20,'t, ns.');

setcolor(15);

end;

procedure an4; { phasa i7 }

begin

XMIN:=-4;XMAX:=8;YMIN:=-15;YMAX:=5;

YGMIN:=25;YGMAX:=200;XGMIN:=50;XGMAX:=320;

nx:=1;ny:=1;

setcolor(7);

OutTextxy(XGMIN,YGMIN-10,'di7/dt Фаз.портрет тока на диоде');

OutTextxy(XGMAX-50,YGMAX+20,'i7');

setcolor(15);

end;

procedure Result; { вычисление и вывод отношения частот }

begin

if (visir_f>=visir_f1) then

begin

if (visir_f1<>0) then

begin

setcolor(0);

outtextxy(540,75,' _');

setcolor(13);

line(540,70,620,70);

str((visir_f/visir_f1):5:3,s);

Реферат опубликован: 30/10/2008