Ìåíþ
Ïîèñê



ðåôåðàòû ñêà÷àòü Ìàòåìàòè÷åñêîå ìîäåëèðîâàíèå áèïîëÿðíûõ òðàíçèñòîðîâ òèïà p-n-p

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


     gotoxy(col+3,row+19);

     write('[CSUB] ');

     gotoxy(col+40,row+19);

     read(CCS);

     gotoxy(col+39,row+19);

     write(CCS);


     gotoxy(col+3,row+20);

     write('[Minimum junction resistance] ');

     gotoxy(col+40,row+20);

     read(RJ);

     gotoxy(col+39,row+20);

     write(RJ);

     writeln;

1:   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;

3:;

end;



Procedure InputCurrent;

Label 1,2,3;

begin

     clrscr;

     TNOM:=27;

     T:=21;

     Ueb:=0.8;

     Uec:=2;

     Ucb:=-1.2;


     gotoxy(col+25,row+1);

     write(' Default parameters');


     gotoxy(col+3,row+3);

     write('[Nominal temperature (C)] ');

     gotoxy(col+39,row+3);

     write(TNOM);


     gotoxy(col+3,row+4);

     write('[Current temperature (C)] ');

     gotoxy(col+39,row+4);

     write(T);


     gotoxy(col+3,row+5);

     write('[Emitter-Base voltage] ');

     gotoxy(col+39,row+5);

     write(Ueb);


     gotoxy(col+3,row+6);

     write('[Emitter-Collector voltage] ');

     gotoxy(col+39,row+6);

     write(Uec);


     gotoxy(col+3,row+7);

     write('[Collector-Base voltage] ');

     gotoxy(col+39,row+7);

     write(Ucb);


1:   gotoxy(col+6,row+25);

     write('Accept current parameters (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+20,row+2);

     write('Input next current parameters');


     gotoxy(col+3,row+3);

     write('[Nominal temperature (C)] ');

     gotoxy(col+40,row+3);

     read(TNOM);

     gotoxy(col+39,row+3);

     write(TNOM);


     gotoxy(col+3,row+4);

     write('[Current temperature (C)] ');

     gotoxy(col+40,row+4);

     read(T);

     gotoxy(col+39,row+4);

     write(T);


     gotoxy(col+3,row+5);

     write('[Emitter-Base voltage] ');

     gotoxy(col+40,row+5);

     read(Ueb);

     gotoxy(col+39,row+5);

     write(Ueb);


     gotoxy(col+3,row+6);

     write('[Emitter-Collector voltage] ');

     gotoxy(col+40,row+6);

     read(Uec);

     gotoxy(col+39,row+6);

     write(Uec);

     if (Ueb = 0) or (Uec = 0) then

     begin

          gotoxy(col+3,row+7);

          write('[Collector-Base voltage] ');

          gotoxy(col+40,row+7);

          read(Ucb);

          gotoxy(col+39,row+7);

          write(Ucb);

          if Uec <> 0 then

          begin

               Ueb := Uec + Ucb;

               gotoxy(col+39,row+5);

               write(Ueb);

          end

          else

          begin

               Uec := Ueb - Ucb;

               gotoxy(col+39,row+6);

               write(Uec);

          end;

          goto 1;

     end;

     Ucb := -(Uec - Ueb);

     gotoxy(col+3,row+7);

     write('[Collector-Base voltage] ');

     gotoxy(col+39,row+7);

     write(Ucb);


3:   TNOM:=TNOM+273.15;

     T:=T+273.15;

     BF:=BF*(1+(T-TNOM)*TCB*10e-6);

     BR:=BR*(1+(T-TNOM)*TCB*10e-6);


     gotoxy(col+39,row+8);

end;



procedure OutputResult;

begin

     clrscr;

     writeln('                             It is result ');


     K:=1.38e-23;

     q:=1.6e-19;

     expon:=exp(1.0);


     FIt:=K*T/q;

     gotoxy(col+3,row+3);

     write('[FIt] ');

     gotoxy(col+39,row+3);

     write(FIt);


     Is:=Is0 * (1+ Uec/VA) * st(T/TNOM,3) * st(expon,-EG/K*(1/T-1/TNOM));

     gotoxy(col+3,row+4);

     write('[Is]');

     gotoxy(col+39,row+4);

     write(Is);


     Uc:=Fit*ln(FIt/(Is*RJ));

     gotoxy(col+3,row+5);

     write('[Uc] ');

     gotoxy(col+39,row+5);

     write(Uc);



     if (st(expon,(Uec/FIt))-1) < 1e4800/Is then

          Ic:= Is * (st(expon,Uc/FIt)-1)

     else Ic:= 1e4800;

     gotoxy(col+3,row+6);

     write('[Ic]');

     gotoxy(col+39,row+6);

     write(Ic);


     Model(Ueb,Ucb,Ieb,Icb,Ib,Iy);


     gotoxy(col+3,row+7);

     write('[Ieb] ');

     gotoxy(col+39,row+7);

     write(Ieb);


     gotoxy(col+3,row+8);

     write('[Icb] ');

     gotoxy(col+39,row+8);

     write(Icb);


     gotoxy(col+3,row+9);

     write('[Ib] ');

     gotoxy(col+39,row+9);

     write(Ib);


     gotoxy(col+3,row+10);

     write('[Iy] ');

     gotoxy(col+39,row+10);

     write(Iy);


     Ik:=Iy-Icb;

     gotoxy(col+3,row+11);

     write('[Ik] ');

     gotoxy(col+39,row+11);

     write(Ik);


     Ie:=Iy+Ieb;

     gotoxy(col+3,row+12);

     write('[Ie] ');

     gotoxy(col+39,row+12);

     write(Ie);


     If Ueb < VJE/2 then  CJE := CJE0* 1 / st(1- Ueb/VJE,MJE)

     else           CJE := st(2,MJE) * CJE0 * (MJE* Ueb / VJE/2 + 1 - MJE);

     gotoxy(col+3,row+13);

     write('[CJE] ');

     gotoxy(col+39,row+13);

     write(CJE);


     If Ieb > 0 then      CDE := Ieb * BF * TAUF / FIt

     else                 CDE := 0;

     gotoxy(col+3,row+14);

     write('[CDE] ');

     gotoxy(col+39,row+14);

     write(CDE);


     CBE:=CJE+CDE;

     gotoxy(col+3,row+15);

     write('[CBE] ');

     gotoxy(col+39,row+15);

     write(CBE);


     If Ucb < (VJC / 2) then CJC := CJC0 * 1 / st(1- Ucb/VJC,MJC)

     else     CJC := 2 * st(2,MJC) * CJC0 * (MJC * Ucb / VJC / 2 + 1 - MJC);

     gotoxy(col+3,row+16);

     write('[CJC] ');

     gotoxy(col+39,row+16);

     write(CJC);


     If Icb > 0 then  CDC := Icb * BR * TAUR / FIt

     else             CDC := 0;

     gotoxy(col+3,row+17);

     write('[CDC] ');

     gotoxy(col+39,row+17);

     write(CDC);


     CBC := CJC + CDC;

     gotoxy(col+3,row+18);

     write('[CBC] ');

     gotoxy(col+39,row+18);

     write(CBC);


     gotoxy(col+6,row+25);

     write('Pres any key to Main menu ');

     readkey;

end;


procedure IGraph;

var

  grDriver: Integer;

  grMode: Integer;

  ErrCode: Integer;

  i,x0,y0: Integer;

  stro1,stro2,stro3,stro4:string;

begin

    grDriver := Detect;

    InitGraph(grDriver, grMode,'');

    ErrCode := GraphResult;

    if ErrCode = grOk then

    begin  { Do graphics }

        x0:=320;

        y0:=350;

        Kyf:=0;

        OutTextXY(250,10,'Graphic Ib=f(-Ueb)');


        Line(x0, y0-150, x0, Y0+150);

        Line(x0-200, y0, X0+200, Y0);


        setcolor(0);

        LineTo(x0+200, y0-300);

        setcolor(2);


        for i:=200 downto -200 do

        begin

             Model(Ueb*(i)/200,-(Uec-Ueb*(i)/200),Ieb,Icb,Ib,Iy);


             if Kyf=0 then

             begin

                  Kyf:=300/Ib;

                  Str(Ieb,stro1);

                  Str(Ueb,stro2);

             end;


             if abs(Kyf*Ib)< 10e5 then  Lineto(x0+i, y0-round(Kyf*Ib));

        end;

        Str(-Ieb,stro3);

        Str(-Ueb,stro4);


        OutTextXY(x0-40,Y0-300,'+Ib = ');

        OutTextXY(x0+3,Y0-300,Stro1);

        OutTextXY(x0+60,Y0+10,'+Ueb = ');

        OutTextXY(x0+100,Y0+10,Stro2);

        OutTextXY(x0-250,Y0+10,'-Ib = ');

        OutTextXY(x0-210,Y0+10,Stro3);

        OutTextXY(x0-300,Y0-10,'-Ueb = ');

        OutTextXY(x0-250,Y0-10,Stro4);

        OutTextXY(40,470,'Pres any key to Main menu');


        Readkey;

        CloseGraph;

    end

    else Writeln('Graphics error:', GraphErrorMsg(ErrCode));

end;



procedure OGraph;

var

  grDriver: Integer;

  grMode: Integer;

  ErrCode: Integer;

  i,x0,y0: Integer;

  stro1,stro2,stro3,stro4:string;

begin

    grDriver := Detect;

    InitGraph(grDriver, grMode,'');

    ErrCode := GraphResult;

    if ErrCode = grOk then

    begin  { Do graphics }

        x0:=320;

        y0:=240;

        Kyf:=0;


        OutTextXY(250,10,'Graphic Ik=f(Uec)');


        Line(x0, y0-150, x0, Y0+150);

        Line(x0-200, y0, X0+200, Y0);


        setcolor(0);

        LineTo(x0+200, round(y0-Kyf*Ik));

        setcolor(2);


        Kyf:=0;

        for i:=200 downto -200 do

        begin

             if (i>0) or (i=0) then

             begin

                  Is:=Is0 * (1+ Uec*(i)/200/VA) * st(T/TNOM,3) * st(expon,-EG/K*(1/T-1/TNOM));

                  Uc:=Fit*ln(FIt/(Is*RJ));

                  Ic:= Is * (st(expon,Uc/FIt)-1);


                  Model(Ueb,Ueb-Uec*(i)/200,Ieb,Icb,Ib,Iy);


                  Ik:=Iy-Icb;

             end;

             if i<0 then

             begin

                  Is:=Is0 * (1- Uec*(i)/200/VA) * st(T/TNOM,3) * st(expon,-EG/K*(1/T-1/TNOM));

                  Uc:=Fit*ln(FIt/(Is*RJ));

                  Ic:= Is * (st(expon,Uc/FIt)-1);


                  Model(Ueb+Uec*(i)/200,Ueb,Ieb,Icb,Ib,Iy);


                  Ik:=(Iy-Icb);

             end;


             if Kyf=0 then

             begin

                  Kyf:=abs(20/Ik);

                  Str(Ik,stro1);

                  Str(Uec,stro2);

                  setcolor(0);

                  LineTo(x0+200, round(y0-Kyf*Ik));

                  setcolor(2);

             end;


             if abs(Kyf*Ik)< 10e5 then

             Lineto(x0+i, y0-round(Kyf*Ik));

        end;


        OutTextXY(x0-40,Y0-210,'+Ik = ');

        OutTextXY(x0+3,Y0-210,Stro1);

        OutTextXY(x0+60,Y0+10,'+Uec = ');

        OutTextXY(x0+100,Y0+10,Stro2);

        OutTextXY(40,470,'Pres any key to Main menu');


        Readkey;

        CloseGraph;

    end

    else Writeln('Graphics error:', GraphErrorMsg(ErrCode));

end;



begin

     textbackground(1);

     textcolor(14);

     col:=-2;

     row:=0;

repeat

     clrscr;

    writeln('               Mogel p-n-p transistor Eabers-Mol whith 1 SIDI');

     writeln;

     writeln('                                 Main menu');

     writeln;

     writeln('1: Input parameters of transistor');

     writeln('2: Input current parameters');

     writeln('3: Output text result');

     writeln('4: Input-graphic result');

     writeln('5: Output-graphic result');

     writeln('ECS:exit');


     key:=Readkey;

     case key of '1':     InputTrans;

                 '2':     InputCurrent;

                 '3':     OutputResult;

                 '4':     IGraph;

                 '5':     OGraph;

                 #27:     halt ;

                 else

                 begin

                      sound(500);

                      delay(1000);

                      nosound;

                 end;

     end;

     until key=#27;

     {donewincrt;}

end.


4.      Ðåøåíèå êîíòðîëüíîé çàäà÷è




















5.      Ìîäåëèðîâàíèå ýëåêòðîííûõ óñòðîéñòâ


.model KT315v  NPN(Is=21.11f Xti=3 Eg=1.11 Vaf=157 Bf=81.09 Ise=321.2f

+  Ne=1.458 Ikf=.2017 Nk=.4901 Xtb=1.5 Br=1 Isc=84.36f Nc=1.317

+  Ikr=1.671 Rb=12 Rc=1.426 Cjc=9.716p Mjc=.33 Vjc=.75 Fc=.5 Cje=18.5p

+  Mje=.33 Vje=.75 Tr=275.6n Tf=321.4p Itf=1 Xtf=2 Vtf=60)

 

 




           Ãðàôèê âèäà çàâèñèìîñòè Ic = f(Ube)            Ãðàôèê âèäà  çàâèñèìîñòè Ube = f(Ibe)

                       ïðîãðàììû ORCAD 9.1;                                         ìîåé ïðîãðàììû

Çàêëþ÷åíèå


Ïðîãðàììà, íàïèñàííàÿ ïî óêàçàííîìó àëãîðèòìó, ïîäòâåðäèëà ñïðàâåäëèâîñòü ýòèõ àëãîðèòìîâ è  îòíîñèòåëüíóþ òî÷íîñòü ìàòåìàòè÷åñêîãî îïèñàíèÿ áèïîëÿðíûõ òðàíçèñòîðîâ. Ðåçóëüòàòû ïîëó÷åííîé ïðîãðàììû ñðàâíèâàëèñü ñ ïðîôåññèîíàëüíûìè CAD ïðîãðàììàìè äëÿ îäíèõ è òåõ æå òðàíçèñòîðîâ è îäèíàêîâûõ ñîîòâåòñòâóþùèõ ïàðàìåòðàõ. Íåìíîãî èçìåíÿÿ âõîäíûå ïàðàìåòðû âîçìîæíî äîñòàòî÷íî áëèçêî ïðèáëèçèòñÿ ê èõ ðåçóëüòàòàì.

  Ïîëó÷åííàÿ ïðîãðàììà ïîçâîëÿåò ðåøàòü ïîñòàâëåííûå ïåðåä íåþ ïðîáëåìû, íî íå îáëàäàåò óäîáñòâîì â èñïîëüçîâàíèè è òðåáóåò äîðàáîòêè.

 äàëüíåéøåì âîçìîæíî äîáàâëåíèå áîëåå ñëîæíûõ ìîäåëåé, ïîçâîëÿþùèõ ïðîâîäèòü àíàëèç ïî ïîñòîÿííîìó òîêó, íî è ïî ïåðåìåííîìó íà âûñîêèõ ÷àñòîòàõ, â ðåæèìå ìàëîãî ñèãíàëà.

Äëÿ óìåíüøåíèÿ ïîãðåøíîñòè ïðè âû÷èñëåíèÿõ ìîæíî íàïèñàòü ïðîãðàììó ïîä Windows, ãäå ðàçðÿäíîñòü äàííûõ óâåëè÷åíà è äîñòèãàåò 64 áèòà. Ýòîò ìåòîä ïîçâîëèò óëó÷øèòü óäîáñòâî â ðàáîòå ñ ïðîãðàììîé. 

 

Áèáëèîãðàôè÷åñêèé ñïèñîê


1.      Âëàõ Í., Ñèíãõàë Ê.  Ìàøèííûå ìåòîäû àíàëèçà è ïðîåêòèðîâàíèÿ ýëåêòðîííûõ ñõåì.

Ì. : Ðàäèî è ñâÿçü, 1988 – 560 ñòð.

2.      Â. È. Ëà÷èí, Í.Ñ. Ñàâ¸ëîâ Ýëåêòðîíèêà.

3.      Íîñîâ Þ. Ð., Ïåòðîñÿíö Ê. Î., Øèëèí Â. À. Ìàòåìàòè÷åñêèå ìîäåëè Ýëåìåíòîâ èíòåãðàëüíîé ýëåêòðîíèêè.

Ì. : Ñîâ. ðàäèî, 1976 – 304 ñòð.

4.      Ñèãîðñêèé Â. Ï., Ïåòðåíêî À.È. Àëãîðèòìû àíàëèçà ýëåêòðîííûõ ñõåì.

Ì. : Ñîâ. ðàäèî, 1976 – 608 ñòð.

5.      Ìèãóëèí È. Í., ×àïîâñêèé Ì. Ç. Óñèëèòåëüíûå óñòðîéñòâà íà òðàíçèñòîðàõ.

6.      Ëåêöèè ïî äèñöèïëèíå “Ìåòîäû àíàëèçà è ðàñ÷¸òà ýëåêòðîííûõ ñõåì”.


 


Ñòðàíèöû: 1, 2




Íîâîñòè
Ìîè íàñòðîéêè


   ðåôåðàòû ñêà÷àòü  Íàâåðõ  ðåôåðàòû ñêà÷àòü  

© 2009 Âñå ïðàâà çàùèùåíû.