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

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);

outtextxy(540,75,s);

end;

end

else begin

if (visir_f<>0) then

begin

setcolor(0);

outtextxy(540,75,' _');

setcolor(13);

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

outtextxy(540,75,s);

end;

end;

end;

procedure v12; { вывод информации физиров 1 и 2 }

begin

d_visir:=1e-9*abs(visir_2-visir_1)*(xmax-xmin)/(xgmax- xgmin);

setcolor(0);

outtextxy(540,255,' _');

outtextxy(540,35,' _');

setcolor(15);

if(d_visir<>0) then begin

an2;

line(trunc(visir_s),ygmin,trunc(visir_s),ygmax);

visir_s:=xgmax-trunc((xmax-1/(d_visir*1e9))*(xgmax- xgmin)/(xmax-xmin));

line(trunc(visir_s),ygmin,trunc(visir_s),ygmax);

str((1e-9/d_visir):5:3,s);

outtextxy(540,35,s+' GHz');

end;

str(d_visir*1e9:5:4,s);

outtextxy(540,255,s+' ns');

end;

BEGIN

oldc1:=0;

oldc2:=0;

gd:=0;

InitGraph(gd,gm,'E:\tp-7\bgi');

an2; scal;

an4; scal;

an3; scal;

setcolor(11);

current;

kzp;

{ Начальные условия }

dh:=4;

dj:=2;

x:=0;

h:=8e-13;

y[1]:=eds;

w[1]:=eds;

y[3]:=eds; y[6]:=iv1;

w[3]:=eds; w[6]:=iv1;

y[2]:=eds; y[7]:=iv1;

w[2]:=eds; w[7]:=iv1;

y[5]:=eds; y[8]:=iv1;

w[5]:=eds; w[8]:=iv1;

y[4]:=eds; y[6]:=iv1;

w[4]:=eds; w[6]:=iv1;

y[11]:=eds; y[10]:=0;

y[9]:=iv1; w[9]:=iv1;

w[11]:=eds; w[10]:=0;

y[12]:=0; w[12]:=y[12];

y[13]:=eds; w[13]:=y[13];

y[14]:=0; w[14]:=y[14];

y[15]:=0; w[15]:=y[15];

loop:=1; { номеp pазвеpтки тока }

phas_x:=0; phas_y:=0; { сдвиг фазового поpтpета }

size_x:=1;size_y:=1; { масштаб фазового портрета }

an2;

visir_s:=800;

visir_3:=xgmin;

visir_f:=0;

visir_4:=xgmin;

visir_f1:=0;

an3;

visir_1:=xgmin;

visir_2:=xgmin; { визиры }

count:=1;

mark:=0;

round:=0;

old_cur:=iv1;

fcount:=0;

fsign:=1;

fpoint:=1;

frequency:=1e10;

old_f:=1e10;

Smax:=0;

power:=0;

oldx:=xgmax-trunc((xmax-0)*(xgmax-xgmin)/(xmax-xmin));

for aaa:=1 to 10 do

oldy[aaa]:=ygmin-trunc((ymax-y[8]*10)*(ygmin- ygmax)/(ymax-ymin));

{ Рунге-Кутт }

for iii1:=-249 to maxpoint do begin

for iii:=0 to 4 do begin

anna(y,f);

for k:=1 to n do begin

K1[k]:=f[k]*h;

y[k]:=w[k]+h*f[k]/2;

end;

x:=x+h/2;

anna(y,f);

for k:=1 to n do begin

K1[k]:=K1[k]+2*f[k]*h;

y[k]:=w[k]+f[k]*h/2;

end;

anna(y,f);

for k:=1 to n do begin

K1[k]:=K1[k]+2*f[k]*h;

y[k]:=w[k]+f[k]*h;

end;

x:=x+h/2;

anna(y,f);

for k:=1 to n do begin

y[k]:=w[k]+(K1[k]+f[k]*h)/6;

w[k]:=y[k];

end;

end;

{ вычисление мощности }

power:=power+y[8]*y[2];

{ вычисление частоты по изменению знака производной }

if fsign > 0 then begin

if y[8]-old_cur <= 0 then begin

if fcount = 0 then fpoint:=iii1;

fcount:=fcount+1;

fsign:=-1;

end;

end

else begin

if y[8]-old_cur >= 0 then begin

if fcount = 0 then fpoint:=iii1;

fcount:=fcount+1;

fsign:=1;

end;

end;

old_cur:=y[8];

if fcount = 15 then begin { Частота сигнала }

fcount:=1;

mark:=1;

old_f:=frequency;

frequency:=(iii1-fpoint)/(h*4.2e3 * 5);


Страница: