Смекни!
smekni.com

Математическое моделирование биполярных транзисторов типа p-n-p (стр. 2 из 3)

коллектор

Рис. 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;

3. Описание программы

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