Chapter 09 : Transistor Biasing and Thermal Stabilization

Example 9.1, Page No 306

In [1]:
import math
#initialisation of variables
Vcc=22.5    #in V
Rc=5.6 #in K
Re=1.0  #in K
R2=10.0 #in K
R1=90.0 #in K
B=55.0 #beta

#Calculations
V=(R2*Vcc)/(R2+R1)                 #Thevenin Equivallent Voltage
Rb=(R2*R1)/(R2+R1)                 #Thevenin Equivallent Resistance

#For base current large compared to reverse saturation current ie Ib>>Ico it follows that Ic=B*Ib
#Applying KVL to the base circuit
#0.65-2.25+Ic+10*Ib=0
#We have   -1.60+Ic+(10/55)*Ic=0

Ic=1.60/(65.0/55);
Ib=Ic/55.0

#Applying KVL to the collector circuit yields
#-22.5+6.6*Ic+Ib+Vce

Vce = 22.5-(6.6*1.36)-0.025

#Results
print("The equivallent Vbb = %.2f Volts " %V)
print("The equivallent Rb is = %.2f ohm " %Rb)
print("As B=55 we have Ic=55*Ib ")
print(" Ic= %.2f milli amp " %Ic)
print("Ib= %.2f micro amp " %Ib)
print("Vce= %.2f Volts " %Vce)
The equivallent Vbb = 2.25 Volts 
The equivallent Rb is = 9.00 ohm 
As B=55 we have Ic=55*Ib 
 Ic= 1.35 milli amp 
Ib= 0.02 micro amp 
Vce= 13.50 Volts 

Example 9.2, Page No 311

In [2]:
import math

#initialisation of variables
Rc=4.0 #in K
Vcc=20.0  #in V
Vce=10.0     #in V
Ic=2.0       #in mA
#Ic varies from 1.75 to 2.25 and B(beta) varies from 36 to 90
Re = (Vcc-Vce)/Ic - Rc
#S=delta Ic/delta B
Ic2=2.25     #in mA
Ic1=1.75  #in mA
B2=90.0
B1=36.0

#Calculations
S=(Ic2-Ic1)/(B2-B1)
S2=(S*36*(1+90))/1.75
#S2=(1+B)*(1+(Rb/Re))/(1+B+(Rb/Re))
Rb=(S2-1)*(1+B2)*Re/(1+B2-S2);
Vbe=0.65       #in V
V = Vbe + ((Rb+Re*(1+B1))*Ic1/B1);
R1=Rb*Vcc/V
R2=R1*V/(Vcc-V)

#Results
print("S2 = %.2f K " %S2)
print("Re = is %.2f B2=90 " %Re)
print("Rb= %.2f K " %Rb)
print("V =  %.2f Volts " %V)
print("R1= %.2f K " %R1)
print("R2= %.2f K " %R2)
S2 = 17.33 K 
Re = is 1.00 B2=90 
Rb= 20.18 K 
V =  3.43 Volts 
R1= 117.67 K 
R2= 24.35 K 

Example 9.3a Page No 316

In [3]:
import math

#initialisation of variables
Re=4.7    #in K
Rb=7.75   #in K
B1=55.0   #/beta at 25degree C
Ic1=1.5   #in mA
Ico1=1.0
Vbe1=0.6     #in V

#Part a

Ico2=33000.0                #in nA
Vbe2=0.225              #in V

#Calculations
M1=1/(1+(Rb/(Re*B1)))       #Stability Factor
B2=100.0         #at 175degree C
M2=1/(1+(Rb/(Re*B2)))       #Stability Factor

print("Stabitity Factor at 25deree C= %.2f " %M1)
print("Stabitity Factor at 175deree C= %.2f " %M2)

if M2>M1 :
    M1=1.0
    M2=1.0


#Let k = (delta Ic)/(Ic1)
k=(1+(Rb/Re))*(M1*(Ico2-Ico1)*(10**-9)/Ic1*(10**-3))-(M1*(Vbe2-Vbe1)/(Ic1*Re))+(1+(Rb/Re))*(M2*(B2-B1)/(B2*B1));
deltaIc=k*Ic1
print("Change in Collector Current at 175degree C is = %.2f mA" %deltaIc)


#Given Data at -65degree C
Ico2=1.95*(10**-3)
B2=25.0
Vbe2=0.78

M2=1/(1+(Rb/(Re*B2)))      #Stability Factor
print("Stabitity Factor at -65deree C= %.2f " %M2)
 
#Let k = (delta Ic)/(Ic1)
k=(1+(Rb/Re))*(M1*(Ico2-Ico1)*(10**-9)/Ic1*(10**-3))-(M1*(Vbe2-Vbe1)/(Ic1*Re))+(1+(Rb/Re))*(M2*(B2-B1)/(B2*B1))
deltaIc=k*Ic1

#Results
print("Change in Collector Current at -65degree C is = %.2f mA" %deltaIc)
Stabitity Factor at 25deree C= 0.97 
Stabitity Factor at 175deree C= 0.98 
Change in Collector Current at 175degree C is = 0.11 mA
Stabitity Factor at -65deree C= 0.94 
Change in Collector Current at -65degree C is = -0.12 mA

Example 9.3b, Page No 317

In [4]:
import math
#initialisation of variables
Re=4.7    #in K
Rb=7.75   #in K
B1=55.0   #/beta at 25degree C
Ic1=1.5   #in mA
Ico1=1.0
Vbe1=0.6     #in V


#Part a

Ico2=33000.0                #in nA
Vbe2=0.225              #in V

#Calculations
M1=1/(1+(Rb/(Re*B1)))       #Stability Factor
#Given Data at -65degree C
Ico2=1.95*(10**-3)
B2=25.0         #at -65degree C
Vbe2=0.78
M2=1/(1+(Rb/(Re*B2)))       #Stability Factor

#Let k = (delta Ic)/(Ic1)
k=(1+(Rb/Re))*(M1*(Ico2-Ico1)*(10**-9)/Ic1*(10**-3))-(M1*(Vbe2-Vbe1)/(Ic1*Re))+(1+(Rb/Re))*(M2*(B2-B1)/(B2*B1));
deltaIc=k*Ic1



#Given Data
Ico2=32.0         #in nA
Vbe2=0.10      #in V
M1=1/(1+(Rb/(Re*B1)))       #Stability Factor
print("Stabitity Factor at 25deree C= %.2f " %M1)
B2=90.0            #at 175degree C
M2=1/(1+(Rb/(Re*B2)))            #Stability Factor
print("Stabitity Factor at 75deree C= %.2f " %M2)

if M2>M1 :
    M1=1.0
    M2=1.0

#Let k = (delta Ic)/(Ic1)
k=(1+(Rb/Re))*(M1*(Ico2-Ico1)*(10**-9)/Ic1*(10**-3))-(M1*(Vbe2-Vbe1)/(Ic1*Re))+(1+(Rb/Re))*(M2*(B2-B1)/(B2*B1));
deltaIc=k*Ic1
print("Change in Collector Current at 75degree C is = %.2f mA" %deltaIc)

#Given Data at -65degree C
Ico2=1.95*(10**-3)
B2=20.0
Vbe2=0.38

M2=1/(1+(Rb/(Re*B2)))         #Stability Factor
print("Stabitity Factor at -65deree C= %.2f " %M2)
 
    
#Let k = (delta Ic)/(Ic1)
k=(1+(Rb/Re))*(M1*(Ico2-Ico1)*(10**-9)/Ic1*(10**-3))-(M1*(Vbe2-Vbe1)/(Ic1*Re))+(1+(Rb/Re))*(M2*(B2-B1)/(B2*B1));
deltaIc=k*Ic1
print("Change in Collector Current at -65degree C is = %.2f mA" %deltaIc)
Stabitity Factor at 25deree C= 0.97 
Stabitity Factor at 75deree C= 0.98 
Change in Collector Current at 75degree C is = 0.13 mA
Stabitity Factor at -65deree C= 0.92 
Change in Collector Current at -65degree C is = -0.07 mA

Example 9.4 Page No 319

In [5]:
import math
#initialisation of variables

B1=150.0   #beta
Ico1=50.0     #in nA

#Given Data at 65degree C
B2=1200.0 #beta
Ico2=3.0    #in micro A

Vbe=0.65       #in mV
Vcc=20.0        #in V
M=1.0   
#Assumption: Each factor Ico,B, and Vbe cuses the same percentge change(5%)

#Let Rb/Re=k
#(1+k)*((1200-150)/(1200*150))=0.05


#Calculations
k=((0.05)*((1200*150)/(1200-150)))-1
print("Rb/Re = %.2f  " %k)
#Let us check our assumption

if M>(1.0/(1+(k/B1))) :
    M=1.0

#(1+(Rb/Re))*((Ico2-Ico1)/Ic1)=0.05   Since Ico2>>Ico1, we consider only Ico2

Ic1=((1+k)*Ico2)/(0.05*1000)
print("Ic1= %.2f mA " %Ic1)

#Vbe changes 2.5mV/degree
DVbe=2.5*40
#Total increment
dVbe=2*DVbe*(10**-3)

#Let l=(Ic1*Re)
l=dVbe/0.05

Re=l/Ic1
print("Re= %.2f  " %Re)
Rb=k*Re
print("Rb= %.2f  " %Rb)

B=(B1+B2)/2              #beta
V=((Ic1/B)*Rb)+(Vbe)+(((Ic1/B)+Ic1)*Re)
print("V= %.2f  Volts" %V)
R1=(Rb*Vcc)/V
R2=(R1*V)/(Vcc-V)

#Results
print("R1= %.2f ohm" %R1)
print("R2= %.2f ohm" %R2)
Rb/Re = 7.55  
Ic1= 0.51 mA 
Re= 7.80  
Rb= 58.87  
V= 4.70  Volts
R1= 250.47 ohm
R2= 76.96 ohm

Example 9.5 Page No 325

In [6]:
import math

#initialisation of variables

Vcc=30.0          #in V
Rc=2.0           #in K
Re=4.7           #in K
Ic=1.5           #in mA

#We know that dPc/dIc = Vcc - (2*Ic*(Rc+Re))
#Let D=dPc/dIc

D = Vcc - (2*Ic*(Re+Rc))

print('Ic increases by 0.131mA over a temprature range of 35 to 75 degree C')
print('theta<(A=(dPc/dIc)*(dIc/dTc))')
A=D*((0.131*(10^-3))/(75-25))

#Results
print("theta< %.2f degreeC/W " %(1.0/A))
print('The upper bound on theta is so high that transistor would not violate it and therefore circuit will be safe from thermal runaway')
Ic increases by 0.131mA over a temprature range of 35 to 75 degree C
theta<(A=(dPc/dIc)*(dIc/dTc))
theta< -4.28 degreeC/W 
The upper bound on theta is so high that transistor would not violate it and therefore circuit will be safe from thermal runaway

Example 9.6a, Page No 326

In [7]:
import math
#initialisation of variables
B=100.0 #beta
Ico=-5.0 #in mA
Ic=-1.0 #in mA
Vcc=40.0 
Re=5.0     #in ohm
Rc=10.0   #in ohm


#Calculations
#Ic= BIb + (1+B)*Ico
#Ic=B(Ib+Ico)
Ib=-(Ic/B)+Ico

print("Ib= %.2f mA " %Ib)
#Neglecting Vbe
Rb=(5-Vcc)/(Ib*0.001)
print("Rb= %.2f ohm " %Rb)

Vce=Vcc-15
if Vce>(Vcc/2) :
    S=(1+B)*(1+(Rb/Re))/(1+B+(Rb/Re))
    print("Stability Factor is= %.2f " %S)

A=-(Vcc+(2*Ic*(Re+Rc)))*(S)*(0.007*Ico*0.01)


#Results
print("theta< %.2f degreeC/W " %(1.0/A))
Ib= -4.99 mA 
Rb= 7014.03 ohm 
Stability Factor is= 94.28 
theta< 3.03 degreeC/W 

Example 9.6b Page No 326

In [8]:
import math 

#initialisation of variables
B=100.0 #beta
Ico=-5.0 #in mA
Ic=-1.0 #in mA
Vcc=40.0 
Re=5.0     #in ohm
Rc=10.0   #in ohm

#Calculations
#Ic= BIb + (1+B)*Ico
#Ic=B(Ib+Ico)
Ib=-(Ic/B)+Ico

#Neglecting Vbe
Rb=(5-Vcc)/(Ib*0.001)

Vce=Vcc-15
if Vce>(Vcc/2) :
    S=(1+B)*(1+(Rb/Re))/(1+B+(Rb/Re))
    print("Stability Factor is= %.2f " %S)

A=-(Vcc+(2*Ic*(Re+Rc)))*(S)*(0.007*Ico*0.01)


#Results
print("theta< %.2f degreeC/W " %(1.0/A))
Stability Factor is= 94.28 
theta< 3.03 degreeC/W