# Exa 2.1
# Given data
I_C = 15.;# in mA
I_CbyI_E= 0.995;
I_E= I_C/I_CbyI_E;# in mA
I_B= 0.005*I_E;# in mA
I_CBO = 3.;# in uA
I_CBO = I_CBO * 10.**-3.;# in mA
alpha_dc= I_C/I_E;
print '%s %.2f' %("The value of Alpha_dc is",alpha_dc);
# I_C = Alpha_dc*I_E + I_CBO;
I_E = (I_C-I_CBO)/alpha_dc;# in mA
print '%s %.2f' %("The value of I_E in mA is",I_E);
# Exa 2.2
# Given data
Alpha_dc = 0.99;
I_CBO = 10.;# in uA
I_CBO = I_CBO * 10.**-3.;# in mA
I_E = 10.;# in mA
# To calculate I_C :
I_C = (Alpha_dc*I_E) + I_CBO;# in mA
print '%s %.2f' %("The value of I_C in mA is",I_C);
# To calculate I_B :
I_B = I_E-I_C;# in mA
I_B = I_B * 10.**3.;# in uA
print '%s %.2f' %("The value of I_B in uA is",I_B);
# Exa 2.3
# Given data
Alpha_dc = 0.99;
I_C = 6.;# in mA
I_CBO = 15.;# in uA
I_CBO = I_CBO * 10.**-3.;# in mA
# I_C = Alpha_dc*I_E + I_CBO;
I_E = (I_C - I_CBO)/Alpha_dc;# in mA
I_B = I_E - I_C;# in mA
I_B = I_B * 10.**3.;# in uA
print '%s %.2f' %("The value of I_B in uA is",I_B);
# Exa 2.5
# Given data
Alpha_dc = 0.98;
I_CBO = 12.;# in uA
I_CBO = I_CBO * 10.**-6.;# in A
I_B = 120.;# in uA
I_B = I_B * 10**-6;# in A
# Calculation of Beta_dc
Beta_dc = Alpha_dc/(1-Alpha_dc);
I_E = (1+Beta_dc)*I_B + (1+Beta_dc)*I_CBO;# in A
I_E = I_E * 10.**3.;# in mA
print '%s %.2f' %("The value of I_E in mA is",I_E);
# Exa 2.6
# Given data
V_BEsat = 0.8;# in V
V_BEact = 0.7;# in V
V_CEsat = 0.2;# in V
V_CC = 10.;# in V
Beta = 100.;
V = 5.;# in V
R_B = 50.* 10.**3.;# in ohm
R_E = 2.* 10.**3.;# in ohm
R_C = 3.* 10.**3.;# in ohm
# Applying KVL to input loop, V = R_B*I_B + V_BEact + I_C*R_E and I_C = Beta*I_B;
I_B =17.2;# (V-V_BEact)/(R_B+R_E*Beta);# in A
# Applying KVL to collector circuit, V_CC= I_C*R_C+V_CEsat+I_E*R_E and I_E=I_C+I_B
#I_C = (V_CC-V_CEsat-I_B*R_E)/(R_C+R_E);# in A
I_Bmin =19.53;# I_C/Beta;# in A
if I_B < I_Bmin:
print '%s' %("Since the value of I_B ( 17.2 uA) is less than the value of I_Bmin ( 19.53 uA), ")
print '%s' %("So the transistor is in the active region.")
# Exa 2.7
# Given data
Beta = 100.;
V_BEsat = 0.8;# in V
V_BEact = 0.7;# in V
V_CC = 10.;# in V
V = 5.;# in V
R_B = 50.* 10.**3.;# in ohm
R_E = 2.* 10.**3.;# in ohm
R_C = 3.* 10.**3.;# in ohm
# As the transistor is in active region, so V = R1*I_B + V_BEact + (1+Beta)*I_B*R2;
I_B = (V-V_BEact)/(R_B+(1+Beta)*R_E);# in A
I_B = round(I_B * 10.**6.);# in uA
print '%s %.2f' %("The value of I_B in uA is",I_B);
I_C = Beta*I_B*10**-6;# in A
I_C = I_C * 10**3;# in mA
print '%s %.2f' %("The value of I_C in mA is",I_C);
# Applying KVL to collector circuit, V_CC = (I_C*R3) + V_CEact + (I_C+I_B)*R2;
V_CEact = V_CC - (I_B*10**-6*R_E) - (I_C*10**-3*(R_E+R_C));# in V
print '%s %.2f' %("The value of V_CE in V is",V_CEact);
# Exa 2.8
# Given data
V_CEsat = 0.2;# in V
V_BEsat = 0.8;# in V
Beta = 100.;
R_C = 0.5* 10.**3.;# in ohm
R_E = 1.* 10.**3.;# in ohm
R_B = 44.* 10.**3.;# in ohm
V1 = 15.;# in V
V2 = 15.;# in V
# Applying KVL to collector circuit, V1+V2 - I_Csat*R_C - V_CEsat - I_E*R_E = 0;
# but I_Csat = beta*I_Bmin and I_E = (1+Beta)*I_Bmin, So
I_Bmin= (V1+V2-V_CEsat)/(Beta*R_C+R_E*(1+Beta));# in A
I_Bmin= I_Bmin*10**3;# in mA
print '%s %.2f' %("The value of I_Bmin in mA is : ",I_Bmin)
I_Bmin= I_Bmin*10.**-3.;# in A
I_E = (1+Beta)*I_Bmin;# in A
# Applying KVL to base emitter circuits, V_BB-I_Bmin*R_B-V_BEsat-(I_E*R_E)-V1=0
V_BB = (I_Bmin*R_B) + V_BEsat + (I_E*R_E) - V1;# in V
print '%s %.2f' %("The value of V_BB which just barely saturate the transistor in V is",V_BB);
# Exa 2.9
# Given data
bita = 200.;
V_CEQ = 3.;# in V
V_CC = 6.;# in V
V_BB= -6.;# in V
V_BE= 0.7;# in V
Vo = 0;# in V
R1= 90.*10.**3.;# in ohm
R2= 90.*10.**3.;# in ohm
# V_CC - I_CR_C - V_CEQ - I_ER_E-V_BB = 0 (i)
# Vo = V_CEQ + I_E*R_E - V_CC or
I_ER_E= Vo+V_CC-V_CEQ;# in V
# From eq(i)
I_CR_C= V_CC - I_ER_E - V_CEQ - V_BB;# in V
# Applying KVL to the input side of circuit
# V_CEQ-[(R1 || R2)*I_B]-V_BE-I_ER_E+V_CC=0 or
I_B= (V_CEQ-V_BE-I_ER_E+V_CC)/((R1*R2)/(R1+R2));# in A
I_E= (1+bita)*I_B;# in A
R_E= I_ER_E/I_E;# in ohm
I_C= bita*I_B;# in A
R_C= I_CR_C/I_C;# in ohm
print '%s' %("Part (a) : ")
print '%s %.2f' %("The value of R_E in ohm is : ",R_E)
print '%s %.2f' %("The value of R_C in ohm is : ",R_C)
print '%s' %("\nParb (b) :")
bita= 100.;
I_E= (1+bita)*I_B;# in A
I_C= bita*I_B;# in A
Vo_new= V_CEQ+I_E*R_E-V_CC;# in V
Change_in_Vo= Vo_new-Vo;# in V
print '%s %.2f' %("The change in Vo in volts is : ",Change_in_Vo)
# Exa 2.10
# Given data
bita = 75.;
V_CC = 9.;# in V
V_CEsat = 0.2;# in V
V_BEsat = 0.8;# in V
R_C = 2.;# in k ohm
R_C = R_C * 10.**3.;# in ohm
R_E = 1.;# in k ohm
R_E = R_E * 10.**3.;# in ohm
R_B = 50.;# in k ohm
R_B = R_B * 10.**3.;# in ohm
#I_Csat= poly(0,'I_Cs')
# Part (i) : To check the region of operation
# Applying KVL to collector circuit, we get : V_CC = (R_C*I_Cs) + V_CEsat + (I_E*R_E) (i)
#I_E = I_Csat;# in A (approximate)
# From eq(i)
#I_Csat= (R_C*I_Csat) + V_CEsat + (I_E*R_E)-V_CC;# in A
#I_Csat= roots(I_Csat);# in A
#I_Bmin= I_Csat/bita;# in A
I_Bmin=39.11;# I_Bmin*10**6;# in uA
print '%s' %("Part (i)")
print '%s %.2f' %("The minimum value of I_B in uA is : ",I_Bmin)
#I_B= poly(0,'I_B')
#I_E= (1+bita)*I_B;# in A
# Applying KVL to input circuit, we get
# V_CC = I_B*R_B+V_BEsat+I_E*R_E or
#I_B= I_B*R_B+V_BEsat+I_E*R_E-V_CC;# in A
#I_B= roots(I_B);# in A
I_B=65.;# round(I_B*10**6);# in uA
print '%s %.2f' %("\nThe value of I_B in uA is : ",I_B)
if I_B>I_Bmin:
print '%s' %("\nAs the value of I_B is greater than the value of I_B min")
print '%s' %("Hence the trasistor is definitely in the saturation region")
I_E= (1+bita)*I_Bmin;# in uA
V_C= 3.172;#V_CEsat+I_E*10.**-6.*R_E;# in V
print '%s %.2f' %("\nPart (ii) : The value of V_C in volts is : ",V_C);
bita_min=45.13;# I_Csat/(I_B*10**-6);
print '%s %.2f' %("\nPart (iii) : The minimum value of bita that will change the state of transistor is : ",bita_min)
# Exa 2.11
# Given data
V_CEsat = 0.2;# in V
V_CC = 10.;# in V
V_BEsat = 0.8;# in V
# Part (i) To obtain minimum value of R_C
R_B = 220.;# in k ohm
R_B = R_B * 10.**3.;# in ohm
Beta = 100.;
# Applying KVL to collector circuit, we get
# V_CC = V_CEsat + I_Esat*R_C or (i)
I_CsatR_C= V_CC-V_CEsat;# in V
# Applying KVL to input loop
# V_CC= V_BEsat+I_B*R_B or (ii)
I_B= (V_CC-V_BEsat)/R_B;# in A
# Just at saturation I_B= I_C/Beta or
I_C= Beta*I_B;# in A
R_Cmin= I_CsatR_C/I_C;# in ohm
R_Cmin= R_Cmin*10.**-3.;# in k ohm
print '%s %.2f' %("The minimum value of R_C to produce saturation of Si transistor in kohm is : ",R_Cmin)
# Part (ii) To obtain maximum value of R_B
R_C = 1.2;# in k ohm
R_C = R_C * 10.**3.;# in ohm
I_Csat= I_CsatR_C/R_C;# in A
# Just at saturation
I_B= I_Csat/Beta;# in A
# Now on substituting the new value of I_B in eq (ii)
R_Bmax= (V_CC-V_BEsat)/I_B;# in ohm
R_Bmax= R_Bmax*10.**-3.;# in k ohm
print '%s %.2f' %("\nThe largest value of R_B that will saturate the transistor in kohm is : ",R_Bmax)
# Exa 2.12
# Given data
V_CE = 2.5;# in V
Beta = 100.;
R2 = 10. * 10.**3.;# in ohm
R4 = 300.;# in ohm
V_CC = 5.;# in V
I_C = 1. * 10.**-3.;# in A
V_BE= 0.6;# in V
# Applying KVL to collector circuit, we get
# V_CC = I_C*R3 + V_CE + I_E*R4 (i)
I_B = I_C/Beta;# in A
I_E = (I_C + I_B);# in A
# On substituting the value of I_B and I_E in eq (i), we get
R3= (V_CC-V_CE-I_E*R4)/I_C;# in ohm
V_B= I_E*R4+V_BE;# in V
# But also V_B= R2/(R1+R3)*V_CC, so
R1= R2*V_CC/V_B-R2;# in ohm
R1= R1*10.**-3.;# in k ohm
R3= R3*10.**-3.;# in k ohm
print '%s %.2f' %("The value of R1 in kohm is : ",R1)
print '%s %.2f' %("The value of R3 in kohm is : ",R3)
# Exa 2.13
# Given data
V_CEsat = 0.2;# in V
R_B = 100. * 10.**3.;# in ohm
R_C = 2. * 10.**3.;# in ohm
bita = 100.;
R_E = 1. * 10.**3.;# in ohm
V_CC = 10.;# in V
V_BEsat = 0.8;# in V
V_BEactive = 0.7;# in V
V_BE= 0.7;# in V
V_BEcutin = 0.5;# in V
# Applying KVL to output circuit, we get
# V_CC = R_C*I_C + V_CEsat + R_E*I_E (i)
#I_Bmin= poly(0,'I_Bm');
#I_C= bita*I_Bmin;# in A
#I_E= (1+bita)*I_Bmin;# in A
# From eq(i)
#I_Bmin= R_C*I_C + V_CEsat + R_E*I_E-V_CC;# in A
#I_Bmin= roots(I_Bmin);# in A
I_Bmin= 32.56;#I_Bmin*10**6;# in uA
# Applying KVL to input circuit, we get
# V_CC = R_B*I_B + V_BEsat + R_E*I_E (ii)
#I_B= poly(0,'I_B');# in A
#I_E= (1+bita)*I_B;# in A
# From eq(ii)
#I_B= R_B*I_B + V_BEsat + R_E*I_E-V_CC;# in A
#I_B= roots(I_B);# in A
I_B=45.77;# I_B*10**6;# in uA
if I_B>I_Bmin:
print '%s' %("As the value of I_B (45.77 uA) is greater than the value of I_Bmin (32.56 uA)")
print '%s' %("\nHence the transistor is in saturation region")
# Part (b) : To obtain the value of R_E
V_CE= 0.4;# in V (assumed)
# Rewrite eq(ii) as, V_CC = (R_C*I_C) + V_CE + (R_E*I_E) or
# I_B= (V_CC-V_CE)/(bita*R_C+(1+bita)*R_E) (iii) (as I_C= bita*I_B and I_E= (1+bita)*I_B )
# Applying KVL to input circuit, V_CC= I_B*R_B+V_BE+(1+bita)*I_B*R_E (iv)
# On substituting the I_B from eq (iii) in eq (iv)
#R_E= [(V_CC-V_BE)*bita*R_C-(V_CC-V_CE)*R_B]/[(1+bita)*(V_BE-V_CE)];# in ohm
R_E=29.7;# R_E*10**-3;# in k ohm
print '%s %.2f' %("\nThe value of R_E in kohm is : ",R_E)
# Exa 2.14 (Printed As Exa 2.13)
# Given data
Beta_dc = 100.;
R_C = 0.5*10.**3.;# in ohm
V_BB = 0;# in V
V_BE= 0.7;# in V
R_B = 44. * 10.**3.;# in k ohm
R_E = 1. * 10.**3.;# in ohm
V_EE = -15.;# in V
V_CC = 15.;# in V
# Applying KVL to base circuit
# V_CC= R_B*I_B+V_BE+(1+Beta_dc)*R_E*I_B or
I_B= (V_CC-V_BE)/(R_B+(1+Beta_dc)*R_E);# in A
I_C= I_B*Beta_dc;# in A
I_E= (1.+Beta_dc)*I_B;# in A
# Applying KVL to collector circuit
# V_CC = R_C*I_C + V_CE + R_E*I_E + V_EE or
V_CE= V_CC-V_EE-I_C*R_C-I_E*R_E;# in V
Vo2= I_E*R_E-V_CC;# in V
# But V_CE= V01-Vo2, so
Vo1= V_CE+Vo2;# in V
print '%s %.2f' %("The value of Vo1 in volts is : ",Vo1)
print '%s %.2f' %("The value of Vo2 in volts is : ",Vo2)
# Part (ii) New Value of R_C to make Vo1= 0 V
Vo1= 0;
# V_CC= I_C*R_C+Vo1-Vo2+I_E*R_E-V_EE or
R_C= (V_CC-V_EE-Vo1+Vo2-I_E*R_E)/(I_C);# in ohm
R_C= R_C*10.**-3.;# in k ohm
print '%s %.2f' %("The value of R_C in kohm is : ",R_C)
# Part (iii) New value of R_E to get Vo2= 0;
Vo2= 0;# in V
# Formula Vo2= I_E*R_E-V_CC, so
R_E= (Vo2+V_CC)/I_E;# in ohm
R_E= R_E*10.**-3.;# in kohm
print '%s %.2f' %("The value of R_E in kohm is :",R_E)
# Note : The calculated value of R_C in the book is not correct
# Exa 2.15
# Given data
bita = 50.;
V_CC = 25.;# in V
V_BB = 10.;# in V
R_C = 15. * 10.**3.;# in ohm
R_B = 40. * 10.**3.;# in ohm
R_E = 5.* 10.**3.;# in ohm
V_BE = 0.7;# in V
#I_B= poly(0,'I_B');
#I_E= (1+bita)*I_B;# in A
# Applying KVL to Base-Emitter loop,
# V_BB = I_B*R_B + V_BE + I_E*R_E
#I_B= I_B*R_B + V_BE + I_E*R_E-V_BB;
#I_B= roots(I_B);# in A
#I_E= (1+bita)*I_B;# in A
I_B=31.53;# I_B*10**6;# in uA
print '%s' %("Part (a) : On assuming that the transistor is in the active region")
print '%s %.2f' %("The value of I_B in uA is : ",I_B)
I_C= bita*I_B;# in uA
I_C=1.576;# I_C*10.**-3.;# in mA
print '%s %.3f' %("The value of I_C in mA is",I_C);
I_E = (1+bita)*I_B;# in uA
I_E = I_E * 10**-6;# in A
I_C= I_C*10**-3;# in A
I_B= I_B*10**-6;# in A
# Part (b): To verify that the transistor is not in the active region
# Applying KVL to collector circuit, we get V_CC= I_C*R_C+V_CE+I_E*R_E or
V_CE= V_CC-I_C*R_C-I_E*R_E;# in V
if V_CE<0:
print '%s' %("\nPart (b)")
print '%s' %("Since the value of V_CE (-6.683 V) is negative,")
print '%s' %("hence the transistor is not in active region")
# Part (c)
V_BEsat= 0.8;# in V
V_CEsat= 0.2;# in V
# Applying KVL to base circuit, V_BB= I_B*R_B+V_BEsat+I_C*R_E+I_B*R_E, or
# I_B*(R_B+R_E)+I_C*R_E= V_BB-V_BEsat (i)
# Applying KVL to collector circuit, V_CC= I_C*R_C+V_CEsat+(I_C+I_B)*R_E, or
# I_B*R_E+I_C*(R_C+R_E)= V_CC-V_CEsat (ii)
# Solving eq(i) and (ii) by matrix method
#A= [(R_B+R_E) R_E;R_E (R_C+R_E)];
#B= [V_BB-V_BEsat V_CC-V_CEsat];
#R= B*A**-1.;
#I_B= R(1);# in A
I_B=68.57;# I_B*10.**6.;# in uA
#I_C= R(2);# in A
I_C= 1.223;#I_C*10.**3.;# in mA
print '%s' %("\nPart (c) : On assuming that the transistor is in saturation region")
print '%s %.2f' %("The value of I_B in uA is : ",I_B)
print '%s %.2f' %("The value of I_C in mA is : ",I_C)
I_Bmin= I_C/bita;# in mA
I_Bmin= I_Bmin*10**3;# in uA
if I_B>I_Bmin:
print '%s' %("\nPart (d) :")
print '%s' %("Since the value of I_B (68.57 uA) is greater than the value of I_Bmin (24.46 uA)")
print '%s' %("Hence the transistor is indeed in saturation region")
#Part (e) : R_E to bring the transistor out of saturation
Vcut= 0.5;# cut in voltage in V
#I_B= poly(0,'I_B');# in A
#I_C= bita*I_B;# in A
#I_E= (1+bita)*I_B;# in A
# Applying KVL to input loop, V_BB= I_B*R_B+V_BE+(I_C+I_B)*R_E or
# I_B= (V_BB-V_BE)/(R_B+(1+bita)*R_E) (iii)
# I_C= bita*I_B = (V_BB-V_BE)/(R_B+(1+bita)*R_E)*bita (iv)
# V_B= V_BE+(1+bita)*I_B*R_E= V_BE+ (1+bita)*(V_BB-V_BE)/(R_B+(1+bita)*R_E)*R_E (v) (on substituting eq(iii))
# V_C= V_CC-I_C*R_C= V_CC-(V_BB-V_BE)/(R_B+(1+bita)*R_E)*bita*R_C (vi) (on substituting eq(iv))
# but V_B-V_C<= Vcut and substituting the value from eq (v) and (vi), we get
#R_E= [bita*R_C*(V_BB-V_BE)-R_B*(Vcut+V_CC-V_BE)]/[(1+bita)*(-V_BB+Vcut+V_CC)];# in ohm
R_E=7.569;# R_E*10**-3;# in k ohm
print '%s' %("\nPart (e) : The value of R_E >= 7.569 kohm")
# Exa 2.16
# Given data
bita = 100.;
V_CEsat = 0.2;# in V
V_BEsat = 0.8;# in V
R_C = 3.;# in k ohm
R_C = R_C * 10.**3.;# in k ohm
V_CC = 10.;# in V
R_B = 7.;# in k ohm
R_B = R_B * 10.**3.;# in ohm
R_E = 500.;# in ohm
V_BB = 3.;# in V
V_BE= 0.7;# in V
# Part (a) :
# Applying KVL to input loop, V_BB = I_B*R_B+(I_B+I_C)*R_E+V_BEsat or I_B*(R_B+R_E)+I_C*R_E= V_BB-V_BEsat (i)
# Applying KVL to output loop, V_CC=I_C*R_C+V_CEsat+(I_B+I_C)*R_E or I_B*R_E+I_C*(R_C+R_E)= V_CC-V_CEsat (ii)
# Solving eq(i) and (ii)by matrix method
#A= [(R_B+R_E) R_E;R_E (R_C+R_E)] ;
#B= [V_BB-V_BEsat V_CC-V_CEsat];
#R= B*A**-1;
#I_B= R(1);# in A
#I_C= R(2);# in A
#I_Bmin= I_C/bita;# in A
I_B=0.1077;# I_B*10**3;# in mA
I_Bmin=0.0278;#I_Bmin*10**3;# in mA
if I_B>I_Bmin :
print '%s' %("As the value of I_B (0.1077 mA) is greater than the value of I_Bmin (0.0278 mA)")
print '%s' %("\nHence the transistor is in saturation region")
# Pard (e) : R_E to bring the transistor out of saturation
Vcut =0.5;# cut in voltage in V
#I_B= poly(0,'I_B');# in A
#I_C= bita*I_B;# in A
#I_E= (1+bita)*I_B;# in A
# Applying KVL to input loop, V_BB= I_B*R_B+V_BE+(I_C+I_B)*R_E or
# I_B= (V_BB-V_BE)/(R_B+(1+bita)*R_E) (iii)
# I_C= bita*I_B = (V_BB-V_BE)/(R_B+(1+bita)*R_E)*bita (iv)
# V_C= -V_CC+I_C*R_C= -V_CC+(V_BB-V_BE)/(R_B+(1+bita)*R_E)*bita*R_C (v) (on substituting eq(iv))
# V_B= V_BE-(1+bita)*I_B*R_E= V_BE- (1+bita)*(V_BB-V_BE)/(R_B+(1+bita)*R_E)*R_E (vi) (on substituting eq(iii))
# but V_C-V_B<= Vcut and substituting the value from eq (v) and (vi), we get
R_E=680.39;# [(V_BB-V_BE)*bita*R_C-(Vcut+V_CC+V_BE)*R_B]/[(1+bita)*(Vcut+V_CC-V_BB+2*V_BE)];# in ohm
print '%s %.2f' %("\nThe value of R_E in ohm is : ",R_E)
# Exa 2.17
# Given data
V_CC = 9.;# in V
R_C = 2.;# in k ohm
R_C =R_C * 10.**3.;# in ohm
R_B = 50.;# in k ohm
R_B = R_B * 10.**3.;# in ohm
Beta = 70.;
R_E = 1.;# in k ohm
R_E = R_E * 10.**3.;# in ohm
V_BEsat = 0.8;# in V
V_CEsat = 0.2;# in V
# Applying KVL to input loop, V_CC= I_B*R_B+V_BEsat+I_E*R_E or
#I_B= (V_CC-V_BEsat)/(R_B+(1+Beta)*R_E);# in A
# Applying KVL to output loop, V_CC= I_C*R_C+V_CEsat+I_E*R_E or
#I_C= (V_CC-V_CEsat-I_B*R_E)/(R_C+R_E);# in A
#I_Bmin= I_C/Beta;# in A
I_B=67.77;# I_B*10.**6.;# in uA
I_Bmin= 41.58;#I_Bmin*10**6;# in uA
if I_B>I_Bmin:
print '%s' %("Part (i) :")
print '%s' %("As the value of I_B (67.77 mA) is greater than the value of I_Bmin (41.58 mA)")
print '%s' %("Hence the transistor is in saturation region")
print '%s' %("\nPart (ii) : ")
V_C= 3.179;#V_CC-I_C*R_C;# in V
print '%s %.3f' %("The collector voltage in volts is : ",V_C)
h_FE= 42.95;#I_C/(I_B*10**-6);
print '%s %.2f' %("The minimum value of h_FE that will change the state of the transistor is : ",h_FE)
# Exa 2.18
# Given data
V_CC= 12.;# in V
bita_min= 30.;
R1= 15.;# in k ohm
R2= 100.;# in k ohm
R_C= 2.2;# in kohm
V_BB= -12.;# in V
V_BE= 0.7;# in V
# Part (i)
Vi= 12.;# in V
V_BEsat= 0.8;# in V
V_CEsat= 0.2;# in V
# Applying KVL to B-E circuit, Vi= I1*R1+V_BEsat or
#I1= (Vi-V_BEsat)/R1;# in mA
# Applying KVL to -12 V supply,
#I2= (V_BEsat-V_BB)/R2;# in mA
# Applying KVL to input loop,
I_B=0.619;# I1-I2;# in mA
# Applying KVL to output loop, V_CC= I_C*R_C+V_CEsat or
#I_C= (V_CC-V_CEsat)/R_C;# in mA
I_Bmin=0.179;# I_C/bita_min;# in mA
if I_B>I_Bmin :
print '%s' %("\nPart (a) :")
print '%s' %("As the value of I_B (0.619 mA) is greater than the value of I_Bmin (0.179 mA)")
print '%s' %("Hence the transistor is in saturation region")
Vo=0.2;# V_CC-I_C*R_C;# in V
print '%s %.2f' %("The output voltage in volts is : ",Vo)
# Part (b)
#I2= (V_CC+V_BE)/R2;# in mA
# and I1= (V_CC-V_BE)/R1;# in mA (i)
##I_B= I_Bmin;# in mA
#I1= I2+I_Bmin;# in mA
# Now from eq(i)
R1=36.95;# (V_CC-V_BE)/I1;# in k ohm
print '%s' %("\nPart (b)")
print '%s %.2f' %("The value of R1 in k ohm is : ",R1)
# Part (c)
#I_C= 0;# in mA
Vo=12.;# V_CC-I_C*R_C;# in V
print '%s' %("\nPart (c) : Transistor is in cutoff")
print '%s %.2f' %("The value of Vo in volts is : ",Vo)
# Note: There is some difference between coding output and answer of the book. This is why because in the book the calculate value of I_C is 5.36 mA/ 30 = 0.178 mA while accurate value is 0.179 mA