Рис. 2. Модель Эберса – Молла.
1) расчёт температурного потенциала.
; - постоянная Больцмана; Кл - элементарный заряд.T - текущая температура в Кельвинах.
2) расчёт тока насыщения, зависящего от температуры и
напряжения между эмиттером и коллектором.
iso - ток насыщения при TNOM;
VA – напряжение Эрли;
EG – ширина запрещённой зоны;
TNOM – номинальная температура в Кельвинах.
3) определения величины IС и UС - ток и напряжение на диоде при переходе на линейный участок.
; ;RJ – минимальное дифференциальное сопротивление перехода;
4) перевод температурного коэффициента в систему С.
TCB (в системе С) = TCB*10-6 (в PPM) .
5) поправка коэффициентов передачи по току в схеме с ОЭ на температуру.
BF (исправленное) = BF * (1 + (T-TNOM) * TCB;
BR (исправленное) = BR * (1 + (T-TNOM) * TCB.
BF – коэффициент передачи по току в схеме с ОЭ для нормального включения.
BR – коэффициент передачи по току в схеме с ОЭ для инверсного включения.
6) Математическое описание зависимости тока диода DBE от напряжения на
нем.
при ; при ;д) Математическое описание зависимости тока диода DBC от напряжения на
нем.
при ; при ;e) математическое описание управляемого источника тока.
.ж) расчёт токов коллектора и эмиттера;
ik = iу - iкб ; iэ = iу + iэб ;
и) расчёт барьерной емкости перехода ЭБ;.
при ; при ;CJEO – барьерная емкость перехода ЭБ при нулевом смещении;
VJE – контактная разность потенциалов для переходов ЭБ;
MJE – показатель степени в выражении для барьерной емкости.
к) расчёт диффузионной емкости перехода ЭБ.
при >0;TAUF – среднее время пролета носителей через базу в нормальном режиме.
л) расчёт емкости CBE.
CBE = CJE+CDE;
м) расчёт барьерной емкости перехода КБ.
при ; при ;CJCO – барьерная емкость перехода КБ при нулевом смещении;
VJC – контактная разность для переходов КБ;
MJC – показатель степени в выражении для барьерной емкости.
н) расчёт диффузионной емкости перехода КБ.
при >0;CDC = 0 при
0;TAUR – среднее время пролета носителей через базу в инверсном режиме.
о) расчёт емкости CBC.
CBC= CJC+CDC;
Program bipolar;
uses {wincrt,windos}crt,dos,graph;
Label 1;
var
t1,t2,t3,t4,
Uc, Uccs, Ucb, Uec, Ueb, VA, VJC, VJE,
Is0, Is, Ieb, Icb ,Ib ,Ic, Iy,Ik,Ie,
CJC0, CJE0, CBE, CJE, CDE, CBC, CJC, CDC,
RB,RC,RJ,
T, TNOM, TCB,
Kyf,a,BF, BR, EG, TAUF, TAUR, MJC, MJE, CCS, K, FIt, q,expon: extended;
ii,col,row:integer; { extended 3.4e-4932..1.1e4932}
an,key:char;
function st(a:extended; b:extended):extended;
begin
if b<0 then
begin
if (-1*b * ln(a)) < 1.1356523e4 then
begin
st:=1/ (exp((-1*b) * ln(a)));
end
else st:= 1;
end
else
begin
if (b * ln(a)) > 1.1356523e4 then
begin
st:=1e4000;
end
else
begin
st:=exp((b) * ln(a));
end;
end;
end;
Procedure Model(Ueb,Ucb:extended;var Ieb,Icb,Ib,Iy:extended);
Begin
If Ueb > Uc then Ieb := 1 / BF * (Ic+ (Ueb - Uc) / RJ )
else Ieb :=1 / BF * Is * (st(expon,Ueb / FIt) -1);
If Ucb > Uc then Icb:= 1/BR * (Ic + (Ucb-Uc)/RJ)
else Icb:= 1/BR * Is* (st(expon, Ucb/FIt)-1);
Ib:= Ieb + Icb;
Iy:= Ieb*BF - Icb*BR;
end;
procedure InputTrans;
Label 1,2,3;
begin
clrscr;
BF:=75;
BR:= 0.3;
TCB:=2500;
Is0:=3.5e-15;
EG:=1.11;
CJC0:=4e-12;
CJE0:=1.2e-12;
RB:=67;
RC:=7.3;
VA:=102;
TAUF:=9.4e-11;
TAUR:=6.692e-8;
MJC:=0.33;
VJC:=0.65;
MJE:=0.69;
VJE:=0.69;
CCS:=1e-12;
RJ:=0.01;
writeln(' It is default parameters of transistor KT316B (Y/N) ');
gotoxy(col+3,row+3);
write('[Forward beta] ');
gotoxy(col+39,row+3);
write(BF);
gotoxy(col+3,row+4);
write('[Revers beta] ');
gotoxy(col+39,row+4);
write(BR);
gotoxy(col+3,row+5);
write('[Temp. coef. of BETTA (PPM)] ');
gotoxy(col+39,row+5);
write(TCB);
gotoxy(col+3,row+6);
write('[Saturation Current] ');
gotoxy(col+39,row+6);
write(Is0);
gotoxy(col+3,row+7);
write('[Energy gap (0.6 to 1.3)] ');
gotoxy(col+39,row+7);
write(EG);
EG:=EG*1.6e-19;
gotoxy(col+3,row+8);
write('[CJC0] ');
gotoxy(col+39,row+8);
write(CJC0);
gotoxy(col+3,row+9);
write('[CJE0] ');
gotoxy(col+39,row+9);
write(CJE0);
gotoxy(col+3,row+10);
write('[Base resistance] ');
gotoxy(col+39,row+10);
write(RB);
gotoxy(col+3,row+11);
write('[Collector resistance] ');
gotoxy(col+39,row+11);
write(RC);
gotoxy(col+3,row+12);
write('[Early Valtage] ');
gotoxy(col+39,row+12);
write(VA);
gotoxy(col+3,row+13);
write('[TAU forward] ');
gotoxy(col+39,row+13);
write(TAUF);
gotoxy(col+3,row+14);
write('[TAU reverse] ');
gotoxy(col+39,row+14);
write(TAUR);
gotoxy(col+3,row+15);
write('[MJC] ');
gotoxy(col+39,row+15);
write(MJC);
gotoxy(col+3,row+16);
write('[VJC] ');
gotoxy(col+39,row+16);
write(VJC);
gotoxy(col+3,row+17);
write('[MJE] ');
gotoxy(col+39,row+17);
write(MJE);
gotoxy(col+3,row+18);
write('[VJE] ');
gotoxy(col+39,row+18);
write(VJE);
gotoxy(col+3,row+19);
write('[CSUB] ');
gotoxy(col+39,row+19);
write(CCS);
gotoxy(col+3,row+20);
write('[Minimum junction resistance] ');
gotoxy(col+39,row+20);
write(RJ);
gotoxy(col+6,row+25);
write('Accept parameters of transistor (Y/N) ');
an:=readkey;
case an of 'y': goto 3;
'Y': goto 3;
'n': goto 2;
'N': goto 2;
else
begin
sound(500);
delay(1000);
nosound;
goto 1;
end;
end;
2: clrscr;
gotoxy(col+25,row+1);
write('Input next parameters of transistor');
gotoxy(col+3,row+3);
write('[Forward beta] ');
gotoxy(col+40,row+3);
read(BF);
gotoxy(col+39,row+3);
write(BF);
gotoxy(col+3,row+4);
write('[Revers beta] ');
gotoxy(col+40,row+4);
read(BR);
gotoxy(col+39,row+4);
write(BR);
gotoxy(col+3,row+5);
write('[Temp. coef. of BETTA (PPM)] ');
gotoxy(col+40,row+5);
read(TCB);
gotoxy(col+39,row+5);
write(TCB);
gotoxy(col+3,row+6);
write('[Saturation Current] ');
gotoxy(col+40,row+6);
read(Is0);
gotoxy(col+39,row+6);
write(Is0);
gotoxy(col+3,row+7);
write('[Energy gap (0.6 to 1.3)] ');
gotoxy(col+40,row+7);
read(EG);
gotoxy(col+39,row+7);
write(EG);
gotoxy(col+3,row+8);
write('[CJC0] ');
gotoxy(col+40,row+8);
read(CJC0);
gotoxy(col+39,row+8);
write(CJC0);
gotoxy(col+3,row+9);
write('[CJE0] ');
gotoxy(col+40,row+9);
read(CJE0);
gotoxy(col+39,row+9);
write(CJE0);
gotoxy(col+3,row+10);
write('[Base resistance] ');
gotoxy(col+40,row+10);
read(RB);
gotoxy(col+39,row+10);
write(RB);
gotoxy(col+3,row+11);
write('[Collector resistance] ');
gotoxy(col+40,row+11);
read(RC);
gotoxy(col+39,row+11);
write(RC);
gotoxy(col+3,row+12);
write('[Early Valtage] ');
gotoxy(col+40,row+12);
read(VA);
gotoxy(col+39,row+12);
write(VA);
gotoxy(col+3,row+13);
write('[TAU forward] ');
gotoxy(col+40,row+13);
read(TAUF);
gotoxy(col+39,row+13);
write(TAUF);
gotoxy(col+3,row+14);
write('[TAU reverse] ');
gotoxy(col+40,row+14);
read(TAUR);
gotoxy(col+39,row+14);
write(TAUR);
gotoxy(col+3,row+15);
write('[MJC] ');
gotoxy(col+40,row+15);
read(MJC);
gotoxy(col+39,row+15);
write(MJC);
gotoxy(col+3,row+16);
write('[VJC] ');
gotoxy(col+40,row+16);
read(VJC);
gotoxy(col+39,row+16);
write(VJC);
gotoxy(col+3,row+17);
write('[MJE] ');
gotoxy(col+40,row+17);
read(MJE);
gotoxy(col+39,row+17);
write(MJE);
gotoxy(col+3,row+18);
write('[VJE] ');
gotoxy(col+40,row+18);
read(VJE);
gotoxy(col+39,row+18);
write(VJE);