Исследование эффекта автодинного детектирования в многоконтурном генераторе на диоде Ганна
Vs:=(1+0.265*Vs1/(1-T10*5.3E-4))/(1+Vs1*Vs);
Vs:=1.3E7*Eds*Vs/T10;
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=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;
old_cur:=y[8];
if fcount = 15 then begin { Частота сигнала }
fcount:=1;
mark:=1;
old_f:=frequency;
frequency:=(iii1-fpoint)/(h*4.2e3 * 5);
fpoint:=iii1;
power:=power *h*frequency/5;
str(power:5:4,s);
power:=0;
setcolor(0);
outtextxy(250,460,' ');
setcolor(11);
outtextxy(250,460,'Puhf = '+s+' W');
end;
{ вывод графиков токов и напряжений }
if(iii1>0) then begin
an3;
if(iii1=loop*1000) then begin
loop:=loop+1;
setfillstyle(0,0);
bar(xgmin+1,ygmin+1,xgmax-1,ygmax-1);
scal;
setwritemode(XORput);
setcolor(15);
line(visir_1,ygmin,visir_1,ygmax);
line(visir_2,ygmin,visir_2,ygmax);
setwritemode(COPYput);
str(d_visir*1e9:5:4,s);
outtextxy(540,255,s+' ns');
round:=round+1;
setcolor(0);
outtextxy(50,460,' ');
str(round*4:6,s);
setcolor(11);
outtextxy(50,460,'time = '+s+' ns+');
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));
end;
bn:=x*1e9;
y1:=y[1]-1;
xg:=xgmax-trunc((xmax-bn)*(xgmax-xgmin)/(xmax-
xmin));
xg:=xg-145-580*(loop-1);
yg:=ygmin-trunc((ymax-y[8]*10)*(ygmin-
ygmax)/(ymax-ymin));
setcolor(10);
line(oldx,oldy[1],xg,yg);
oldy[1]:=ygmin-trunc((ymax-y[8]*10)*(ygmin-
ygmax)/(ymax-ymin));
{ yg:=ygmin-trunc((ymax-frequency/1e10)*(ygmin-
ygmax)/(ymax-ymin));
setcolor(14);
line(oldx,oldy[2],xg,yg);
oldy[2]:=ygmin-trunc((ymax-
frequency/1e10)*(ygmin-ygmax)/(ymax-ymin));
}
yg:=ygmin-trunc((ymax-y1)*(ygmin-ygmax)/(ymax-
ymin));
setcolor(13);
line(oldx,oldy[3],xg,yg);
oldy[3]:=ygmin-trunc((ymax-y1)*(ygmin-
ygmax)/(ymax-ymin));
oldx:=xg;
end;
{ phas. portret }
if(iii1>0) then begin
an4;
di:=(y[8]-oldc1)*50*size_y;
yg:=ygmax-trunc((ymax-di)*(ygmax-ygmin)/(ymax-
ymin));
xg:=xgmin-trunc((xmax-y[8]*15*size_x)*(xgmin-
xgmax)/(xmax-xmin));
putpixel(xg+phas_x,yg+phas_y,10);
oldc1:=y[8];
if(iii1249) then begin
{ control circle }
if (mark=1) then begin
mark:=0;
setcolor(14);
circle(xg+phas_x,yg+phas_y,3);
setcolor(10);
end;
end;
{ управление экраном }
if keypressed=true then begin
c:=readkey;
case c of
{ пеpемещение фаз. поpepета }
'1': begin
an4;
setfillstyle(0,0);
bar(xgmin+1,ygmin+1,xgmax-1,ygmax-1);
end;
'4': begin
phas_x:=phas_x-10;
an4;
Size := ImageSize(xgmin+1, ygmin+1,
xgmax-1, ygmax-1);
GetMem(P, Size);
GetImage(xgmin+1, ygmin+1, xgmax-1,
ygmax-1, P^);
setfillstyle(0,0);
bar(xgmin+1,ygmin+1,xgmax-1,ygmax-1);
PutImage(xgmin+1-10, ygmin+1, P^,
NormalPut);
FreeMem(P, Size);
scal;
end;
'6': begin
phas_x:=phas_x+10;
an4;
Size := ImageSize(xgmin+1, ygmin+1,
xgmax-1, ygmax-1);
GetMem(P, Size);
GetImage(xgmin+1, ygmin+1, xgmax-1,
ygmax-1, P^);
setfillstyle(0,0);
bar(xgmin+1,ygmin+1,xgmax-1,ygmax-1);
PutImage(xgmin+1+10, ygmin+1, P^,
NormalPut);
FreeMem(P, Size);
scal;
end;
'2': begin
phas_y:=phas_y+10;
an4;
Size := ImageSize(xgmin+1, ygmin+1,
xgmax-1, ygmax-1);
GetMem(P, Size);
GetImage(xgmin+1, ygmin+1, xgmax-1,
ygmax-1, P^);
setfillstyle(0,0);
bar(xgmin+1,ygmin+1,xgmax-1,ygmax-1);
PutImage(xgmin+1, ygmin+1+10, P^,
NormalPut);
FreeMem(P, Size);
scal;
end;
'8': begin
phas_y:=phas_y-10;
an4;
Size := ImageSize(xgmin+1, ygmin+1,
xgmax-1, ygmax-1);
GetMem(P, Size);
GetImage(xgmin+1, ygmin+1, xgmax-1,
ygmax-1, P^);
setfillstyle(0,0);
bar(xgmin+1,ygmin+1,xgmax-1,ygmax-1);
PutImage(xgmin+1, ygmin+1-10, P^,
NormalPut);
FreeMem(P, Size);
scal;
end;
{ пеpеход на вычисление спектpа }
's': begin
goto 1;
end;
{ масштаб фаз. поpтpета }
'+': begin
an4;
setfillstyle(0,0);
bar(xgmin+1,ygmin+1,xgmax-1,ygmax-1);
size_x:=size_x+0.1;
size_y:=size_y+0.1;
end;
'-': begin
an4;
setfillstyle(0,0);
bar(xgmin+1,ygmin+1,xgmax-1,ygmax-1);
size_x:=size_x-0.1;
size_y:=size_y-0.1;
end;
end;
2: end;
end;
{ спектр }
1: SETCOLOR(15);
an2;
f0:=0;
Smax:=0;
sign0:=0;
setcolor(15);
for k:=1 to 200 do begin
s0:=0;s1:=0;
FOR i:=1 to 500 do begin
s0:=s0+(sign[i]-sign0)*cos(f0*i*6.28e-9/250);
s1:=s1+(sign[i]-sign0)*sin(f0*i*6.28e-9/250);
end;
if k=1 then begin sign0:=s0/500; s0:=0; end;
f0:=f0+2e8;
g1[k]:=s0*s0+s1*s1;
if g1[k]>Smax then Smax:=g1[k];
end;
ppp:=s0*s0+s1*s1;
f0:=0;
{ очистка поля и перерисовка визиров и цифр }
setfillstyle(0,0);
bar(xgmin+1,ygmin+1,xgmax-1,ygmax-1);
scal;
setwritemode(XORput);
if(d_visir<>0) then begin
line(trunc(visir_s),ygmin,trunc(visir_s),ygmax);
str((1e-9/d_visir):5:3,s);
outtextxy(540,35,s+' GHz');
end;
line(visir_3,ygmin,visir_3,ygmax);
setcolor(14);
line(visir_4,ygmin,visir_4,ygmax);
setwritemode(COPYput);
setcolor(11);
str(visir_f:5:3,s);
outtextxy(540,50,s+' GHz');
setcolor(14);
str(visir_f1:5:3,s);
outtextxy(540,60,s+' GHz');
Result;
{ рисование спектра }
moveto(xgmin,ygmax);setcolor(10);
for k:=1 to 200 do begin
xg:=xgmax-trunc((xmax-f0/1e9)*(xgmax-xgmin)/(xmax- xmin));
yg:=ygmin-trunc((ymax-100*g1[k]/SMAX)*(ygmin-
ygmax)/(ymax-ymin));
lineto(xg,yg);
f0:=f0+2e8;
end;
{ конец спектра }
repeat
c:=readkey;
case c of
{ перемещение визиров }
'9': begin
an3;
setwritemode(XORput);
setcolor(15);
line(visir_1,ygmin,visir_1,ygmax);
visir_1:=visir_1+1;
line(visir_1,ygmin,visir_1,ygmax);
v12;
setwritemode(COPYput);
end;
'7': begin
an3;
setwritemode(XORput);
setcolor(15);
line(visir_1,ygmin,visir_1,ygmax);
visir_1:=visir_1-1;
line(visir_1,ygmin,visir_1,ygmax);
v12;
setwritemode(COPYput);
end;
'6': begin
an3;
setwritemode(XORput);
setcolor(15);
line(visir_2,ygmin,visir_2,ygmax);
visir_2:=visir_2+1;
line(visir_2,ygmin,visir_2,ygmax);
v12;
setwritemode(COPYput);
end;
'4': begin
an3;
setwritemode(XORput);
setcolor(15);
line(visir_2,ygmin,visir_2,ygmax);
visir_2:=visir_2-1;
line(visir_2,ygmin,visir_2,ygmax);
v12;
setwritemode(COPYput);
end;
'3': begin
an2;
setwritemode(XORput);
setcolor(11);
line(visir_3,ygmin,visir_3,ygmax);
visir_3:=visir_3+1;
line(visir_3,ygmin,visir_3,ygmax);
visir_f:=(visir_3-xgmin)*(xmax-
xmin)/(xgmax-xgmin);
setcolor(0);
outtextxy(540,50,'___________');
setcolor(11);
str(visir_f:5:3,s);
outtextxy(540,50,s+' GHz');
setwritemode(COPYput);
Result;
end;
'1': begin
an2;
setwritemode(XORput);
setcolor(11);
line(visir_3,ygmin,visir_3,ygmax);
visir_3:=visir_3-1;
line(visir_3,ygmin,visir_3,ygmax);
visir_f:=(visir_3-xgmin)*(xmax-
xmin)/(xgmax-xgmin);
setcolor(0);
outtextxy(540,50,'___________');
setcolor(11);
str(visir_f:5:3,s);
outtextxy(540,50,s+' GHz');
setwritemode(COPYput);
Result;
end;
'.': begin
an2;
setwritemode(XORput);
setcolor(14);
line(visir_4,ygmin,visir_4,ygmax);
visir_4:=visir_4+1;
line(visir_4,ygmin,visir_4,ygmax);
visir_f1:=(visir_4-xgmin)*(xmax-
xmin)/(xgmax-xgmin);
setcolor(0);
outtextxy(540,60,'___________');
setcolor(14);
str(visir_f1:5:3,s);
outtextxy(540,60,s+' GHz');
setwritemode(COPYput);
Result;
end;
'0': begin
an2;
setwritemode(XORput);
setcolor(14);
line(visir_4,ygmin,visir_4,ygmax);
visir_4:=visir_4-1;
line(visir_4,ygmin,visir_4,ygmax);
visir_f1:=(visir_4-xgmin)*(xmax-
xmin)/(xgmax-xgmin);
setcolor(0);
outtextxy(540,60,'___________');
setcolor(14);
str(visir_f1:5:3,s);
outtextxy(540,60,s+' GHz');
setwritemode(COPYput);
Result;
end;
' ':begin
goto 2;
end;
end;
until (c='q');
end. { -= EOF =- }
В заключении хочу выразить благодарность доценту кафедры физики
твёрдого тела Саратовского госуниверситета Скрипалю Александру
Владимировичу и аспиранту той же кафедры Бабаяну Андрею Владимировичу за
оказанную помощь и внимательное отношение к выполнению дипломной работы.
-----------------------
[1] Справочная информация: PВЫХ=10 мВт, IПИК=270 мА, RПОТ=3-20 Ом., L=1.7
нГн., UПСТ=8.5 В., f=13 ГГц.
[2] Справочная информация: UОБР=30 В., IОБР=10 мкА., UПР=2.5 В.,
IПР/ИМП=0.02/0.2 А., f=350 МГц.
-----------------------
4
5
2
1
3
1
2
3
4
5
6
7
8
9
Страницы: 1, 2, 3
|