Chapter1, Thyristors Principles & Characteristics

Example 1_1, page 5

In [1]:
#Given data
alfa1=0.35 
alfa2=0.4 
IG=40*10**-3 #A

#Solution :
IA=alfa2*IG/(1-(alfa1+alfa2)) #A
print "Anode current = %0.2e A" %(IA)
Anode current = 6.40e-02 A

Example 1_2, page 7

In [2]:
#Given data
dv_dt=190 #V/µs
IC=8*10**-3 #A

#Solution :
C=IC/(dv_dt/10**-6) #F
print "Capacitance of depletion layer = %0.2e F" %C
Capacitance of depletion layer = 4.21e-11 F

Example 1_3, page 8

In [3]:
#Given data
RG=2000 #ohm
VCC=20 #V
VT=0.75 #V
Vthy=0.7 #V(Voltage across thyristor)
R=200 #ohm
IT=7*10**-3 #A
Ih=5*10**-3 #A


#Solution :
#part (a)
Vo=VCC #V##thyristor not conducting
print "(a) When thyristor is in off state, Output voltage = %0.2f V" %Vo
#part (b)
Vs=VT+IT*RG #V
print "(b) Voltage necessary to turn on the thyristor = %0.2f V" %Vs
#part (c)
VR1=Ih*R #V
print "(c) Current through thyristor should be less than holding current. Voltage should be reduced to less than",VR1,"V"
#part (d)
VR2=VR1+Vthy #V
print "(d) VCC should be reduced to less than",VR2,"V"
(a) When thyristor is in off state, Output voltage = 20.00 V
(b) Voltage necessary to turn on the thyristor = 14.75 V
(c) Current through thyristor should be less than holding current. Voltage should be reduced to less than 1.0 V
(d) VCC should be reduced to less than 1.7 V

Example 1_4, page 8

In [4]:
from sympy import symbols, solve
from numpy import pi
#Given data
IG=symbols('IG') #A
VG=1+9*IG #V
Vgate=25 #V
t=pi #radian(duration)
Pavg=0.6 #W

#Solution :
Ploss=Pavg*2*pi/t #W
#Ploss=VG*IG
X=VG*IG-Ploss 
IG=solve(X, IG) #A
IG=IG[1] #A(taking +ve value only)
VG=1+9*IG #V
#Vgate=RG*IG+VG
RG=(Vgate-VG)/IG #ohm
print "VG = %0.3f V" %VG 
print "IG = %0.3f A" %IG
print "RG = %0.2f ohm" %RG 
VG = 3.824 V
IG = 0.314 A
RG = 67.48 ohm

Example 1_5, page 8

In [5]:
#Given data
Vdc=100 #V
L=10 #H
i=80*10**-3 #A

#Solution :
t=i*L/Vdc #s
print "Width of pulse should be more than",t*1000,"milli-seconds." 
Width of pulse should be more than 8.0 milli-seconds.

Example 1_6, page 9

In [6]:
from math import log
#Given data
Vdc=100 #V
R=10 #ohm
L=5 #H
i=50*10**-3 #A

#Solution :
#i=Vdc/R*(1-exp(-R*t/L))
t=-log(1-i/Vdc*R)/R*L #s
print "Minimum width of gate pulse is",round(t*1000,1),"milli-seconds." 
Minimum width of gate pulse is 2.5 milli-seconds.

Example 1_7, page 9

In [7]:
from math import exp
#Given data
i_latch=40*10**-3 #
t=40*10**-6 #s
Vdc=90 #V
R=25 #ohm
L=0.5 #H

#Solution :
i=Vdc/R*(1-exp(-R*t/L)) #A
print "Current in the circuit is %0.4f"%i," A, it is less than latchig current, the thyristor will not turn on." 
R=Vdc/(i_latch-i) #ohm
print "Maximum value of R is %0.f"%R,"ohm." 
# Answer mismatch because of calculation accuracy.
Current in the circuit is 0.0060  A, it is less than latchig current, the thyristor will not turn on.
Maximum value of R is 2647 ohm.

Example 1_8, page 10

In [8]:
from math import exp

#Given data
i_h=50*10**-3 #A
t=50*10**-6 #s
Vdc=100 #V
R=20 #ohm
L=0.5 #H

#Solution :
i=Vdc/R*(1-exp(-R*t/L)) #A
#i<i_h   so thyristor will return to off state
iR=i_h-i #A#current through R
R=Vdc/iR #ohm
print "Maximum value of R is",round(R,3),"ohm." 
Maximum value of R is 2499.376 ohm.

Example 1_9, page 10

In [9]:
from math import sqrt, pi, degrees, asin, atan
#Given data: 
V=240 #Volt
f=50 #Hz
R=5 #ohm
L=0.05 #H
theta=degrees(atan(2*pi*f*L/R)) #degree
Vm=V*sqrt(2) #Volt
#sind(fi-theta)=0 #for no current transient
fi=theta+degrees(asin(0)) #degree
print "For no current transient, triggering angle = %0.2f degree" %fi 
#sind(fi-theta)=1 #for worst current transient
fi=theta+degrees(asin(1)) #degree
print "For worst current transient, triggering angle = %0.2f degree" %fi
For no current transient, triggering angle = 72.34 degree
For worst current transient, triggering angle = 162.34 degree

Example 1_12, page 19

In [10]:
from __future__ import division
#Given data: 
I=120 #A
Gamma=180 #degree
RMS_current=I*sqrt(Gamma/360) #A
AVG_current=I*(Gamma/360) #A
FormFactor=RMS_current/AVG_current #no unit
print "rms current = %0.2f A" %RMS_current
print "Form Factor = %0.3f " %FormFactor 
rms current = 84.85 A
Form Factor = 1.414 

Example 1_13, page 20

In [11]:
from sympy.mpmath import quad, sin
from __future__ import division
#Given data: 
V=130 #V
R=100 #ohm
theta1=60 #degree
theta2=45 #degree
v=sqrt(2)*V #
Irms=sqrt(1/2/pi*quad(lambda omega_t:(3.25*sin(omega_t))**2,[theta1*pi/180,pi])) #A
P=Irms**2*R #W
print "(a) Power supplied to load = %0.f W" %P
Irms=sqrt(1/2/pi*quad(lambda omega_t:(3.25*sin(omega_t))**2,[theta2*pi/180,pi])) #A
P=Irms**2*R #W
print "(b) Power supplied to load = %0.2f W" %P
# Answer mismatch because of calculation accuracy.
(a) Power supplied to load = 212 W
(b) Power supplied to load = 240.07 W

Example 1_14, page 20

In [12]:
#Given data: 
Iavg=200 #A
period1=2*pi 
period2=pi 
Vth1=1.8 #V
I1=200 #A
Vth2=1.9 #V
I2=400 #A
#part (a)
Ploss1=I1*Vth1*period1/2/pi #W
print "(a) Average power loss = %0.f W" %Ploss1
Ploss2=I2*Vth2*period2/2/pi #W
print "(b) Average power loss = %0.f W" %Ploss2
(a) Average power loss = 360 W
(b) Average power loss = 380 W

Example 1_15, page 21

In [13]:
from math import cos
#Given data: 
Irms=40 #A
f=50 #Hz
period1=170 #degree
period2=100 #degree
period3=40 #degree
#part (a)
alfa1=pi-period1*pi/180 #degree
Irms_by_Im=sqrt(1/2/pi*((pi-alfa1)/2+sin(2*alfa1)/4)) 
Im=Irms/Irms_by_Im #A
Iav1=Im/2/pi*(1+cos(alfa1)) #A
print "(a) Average current = %0.3f A" %Iav1
#part (b)
alfa2=pi-period2*pi/180 #degree
Irms_by_Im=sqrt(1/2/pi*((pi-alfa2)/2+sin(2*alfa2)/4)) 
Im=Irms/Irms_by_Im #A
Iav2=Im/2/pi*(1+cos(alfa2)) #A
print "(b) Average current = %0.2f A" %Iav2
#part (c2
alfa3=pi-period3*pi/180 #radian
Irms_by_Im=sqrt(1/2/pi*((pi-alfa3)/2+sin(2*alfa3)/4)) 
Im=Irms/Irms_by_Im #A
Iav3=Im/2/pi*(1+cos(alfa3)) #A
print "(c) Average current = %0.2f A" %Iav3
# Answer mismatch because of calculation accuracy.
(a) Average current = 25.286 A
(b) Average current = 19.13 A
(c) Average current = 11.64 A

Example 1_16, page 22

In [14]:
#Given data: 
#VT=0.9+0.02*IT #V
#part (a)
IT=20 #A
VT=0.9+0.02*IT #V
Pdiss=VT*IT #W
print "(a) Mean power dissipation = %0.f W" %Pdiss
#part (b)
IT_mean=20 #A
IT_peak=20*pi #A
Pdiss=1/2/pi*quad(lambda theta:(0.9+0.02*IT_peak*sin(theta))*(IT_peak*sin(theta)),[0,pi]) #W
print "(b) Mean power dissipation = %0.2f W" %Pdiss
#part (c)
IT=20 #A#for half cycle
VT=0.9+0.02*IT #V
Pdiss=VT*IT/2 #W
print "(c) Power dissipation occur only during half cycle. Mean power dissipation = %0.2f W" %Pdiss
#part (d)
IT=20 #A#for half cycle
VT=0.9+0.02*IT #V
Pdiss=VT*IT/3 #W
print "(d) Power dissipation occur only during 1/3rd period in a cycle. Mean power dissipation = %0.2f W "%Pdiss 
(a) Mean power dissipation = 26 W
(b) Mean power dissipation = 37.74 W
(c) Power dissipation occur only during half cycle. Mean power dissipation = 13.00 W
(d) Power dissipation occur only during 1/3rd period in a cycle. Mean power dissipation = 8.67 W 

Example 1_17, page 23

In [15]:
#Given data
Isub=2000 #A
f=50 #Hz
t=10*10**-3 #s
T=2*t #s#duration of half cycle
I=sqrt(Isub**2*t/T) #A
I2t=I**2*t #A**2 seconds
print "I2*t rating = %0.e A2-seconds " %I2t
I2*t rating = 2e+04 A2-seconds 

Example 1_18, page 25

In [16]:
from sympy import symbols, solve
#Given data
Vgate=12 #V
t=60*10**-6 #s
cycle=0.3 
P_peak=6 #W
#part (a)
Ig = symbols('Ig')
Vg=1+9*Ig
expr = P_peak-Vg*Ig # leads to 9*Ig**2+Ig-P_peak=0
Ig=solve(expr, Ig) #polynomial
Ig = round(float(Ig[0]),3) # A
Vg=1+9*Ig
Rg=(Vgate-Vg)/Ig #ohm
print "Series resistance Rg = %0.3f ohm" %Rg
PavgLoss=P_peak*cycle #W
print "Average power loss = %0.1f W " %PavgLoss
Series resistance Rg = 5.417 ohm
Average power loss = 1.8 W 

Example 1_19, page 25

In [17]:
from sympy import symbols, solve
#Example 1_19
#Given data
Vs=12 #V
slope = -100 # V/A
Vg_min = 20 # mA
P = 0.3 # W
Rs = 100 # ohm(from given slope)
from sympy import symbols, solve
Ig = symbols('Ig')
Vg = P/Ig # in terms of Ig
expr = Vs-Vg-Ig*Rs # expression for Ig
Ig = solve(expr, Ig)[0] # mA (2nd value choosen)
Vg = P/Ig # V
print "Source resistance, Rs = %0.2f ohm "  %Rs
print "Trigger current = %0.1f mA " %(Ig*1000)
print "Voltage Vg = %0.2f V " %Vg
Source resistance, Rs = 100.00 ohm 
Trigger current = 35.5 mA 
Voltage Vg = 8.45 V 

Example 1_20, page 26

In [18]:
#Given data
V=800 #V
I=110 #A
Es=12 #V
Im=250 #mA
Ish=600 #mA
VG=2.4 #V
IG=50 #mA
IGm=100 #mA
VGm=3 #V
Rs=Es/(Ish*10**-3) #ohm
print "Value of Rs = %0.2f ohm " %Rs
R1=Es/(Im*10**-3)-Rs #ohm(Assumed R2 is not connected)
#Rs_plus_R1>=Es/(IGm*10**-3) #ohm
Rs_plus_R1=Es/(IGm*10**-3) #ohm
R1_Lower=Rs_plus_R1-Rs #ohm
#Rs_plus_R1<=(Es-VG)/(IGm*10**-3) #ohm
Rs_plus_R1=(Es-VG)/(IG*10**-3) #ohm
R1_Upper=Rs_plus_R1-Rs #ohm
print "R1 must be more than",R1_Lower,"ohm and less than",R1_Upper,"ohm."
print "Let R1 is 125 ohm." 
R1=125 #ohm
#R2*Es/(R1+R2+Rs)<=VGm
R2=(VGm*R1+VGm*Rs)/(Es-VGm) #ohm
print "R2<=",round(R2,2),"ohm "
print "Let R2 is 48 ohm." 
Value of Rs = 20.00 ohm 
R1 must be more than 100.0 ohm and less than 172.0 ohm.
Let R1 is 125 ohm.
R2<= 48.33 ohm 
Let R2 is 48 ohm.

Example 1_21, page 30

In [19]:
#Given data: 
l=0.2 #m
w=0.01 #m
d=0.01 #m
P=3 #W
Tc=220 #W/m/degreeC
T1=30 #degreeC
theta=l/Tc/w/d #degreeC/W
T2=P*theta+T1 #degreeC
print "Temperature of the surface = %0.2f degree C " %T2
Temperature of the surface = 57.27 degree C 

Example 1_22, page 30

In [20]:
#Given data: 
l=2/1000 #m
A=12/10000 #m**2
T21=4 #degreeC(T2-T1)
Tc=220 #W/m/degreeC
theta=l/Tc/A #degreeC/W
Losses=T21/theta #W
print "Maximum losses = %0.2f W " %Losses 
Maximum losses = 528.00 W 

Example 1_23, page 30

In [21]:
#Given data: 
P=30 #W
T1=125 #degreeC
T2=50 #degreeC
theta=1 #degree C/W
theta_mica=0.3 #degree C/W
Rth_total=(T1-T2)/P #degree C/W
Rth_heat_sink=Rth_total-theta-theta_mica #degree C/W
print "Thermal resistance of heat sink = %0.2f degree C/W " %Rth_heat_sink
Thermal resistance of heat sink = 1.20 degree C/W 

Example 1_24, page 30

In [22]:
#Given data: 
theta = 0.627 # degree C/W
Ts = 93 # degree C
V = 3 # V
I = 25 # A
PL = V*I # W
Tj = theta*PL + Ts
print "Thermal resistance of heat sink = %0.f degree C/W " %Tj
Thermal resistance of heat sink = 140 degree C/W 

Example 1_25, page 30

In [23]:
#Given data: 
T1=120 #degreeC(Junction Temperature)
T2=35 #degreeC(Ambient Temperature)
P=40 #W
theta_dash=0.8 #degree C/W(junction to heat sink)
theta=(T1-T2)/P #degree C/W
print "Resistance of heat sink = %0.3f degree C/W" %(theta-theta_dash)
Resistance of heat sink = 1.325 degree C/W

Example 1_26, page 31

In [24]:
#Given data: 
Tj=125 #degreeC
Ts=80 #degreeC
theta_jc=0.7 #degree C/W
theta_cs=0.4 #degree C/W
#part (a)
Pav1=(Tj-Ts)/(theta_jc+theta_cs) #W
print "(a) Average power loss = %0.2f W" %Pav1
#part (b)
Ts=50 #degreeC
Pav2=(Tj-Ts)/(theta_jc+theta_cs) #W
print "(b) Permisible average power loss = %0.2f W" %Pav2
rating_increase=(sqrt(Pav2)-sqrt(Pav1))/sqrt(Pav1)*100 #%
print "(c) Increase in rating = %0.2f %%" %rating_increase
(a) Average power loss = 40.91 W
(b) Permisible average power loss = 68.18 W
(c) Increase in rating = 29.10 %

Example 1_27, page 36

In [25]:
from math import asin, atan, sqrt
from numpy import arange
#Given data: 
Vs=230 #V
f=50 #Hz
vc=25 #V
C=0.6*10**-6 #F
R=arange(2000,20000) #ohm
Xc=1/(2*pi*f*C) #ohm
#When R=2000 ohm
Z=min(R)-1J*Xc #ohm
I=Vs/Z #A
Vc=-1J*I*Xc #V
#vc=sqrt(2)*abs(Vc)*sind(omega_t+atand(imag(Vc),real(Vc)))
omega_t=asin(vc/sqrt(2)/abs(Vc))-atan((Vc.imag)/(Vc.real)) #radian
omega_t = omega_t*180/pi # degree
alfa1=omega_t #degree

#When R=20000 ohm
Z=max(R)-1J*Xc #ohm
I=Vs/Z #A
Vc=-1J*I*Xc #V
#vc=sqrt(2)*abs(Vc)*sind(omega_t+atand(imag(Vc),real(Vc)))
omega_t=asin(vc/sqrt(2)/abs(Vc))-atan((Vc.imag)/(Vc.real)) #radian
omega_t = (omega_t)*180/pi # degree
alfa2=omega_t #degree
print "Minimum firing angle = %0.2f degree" %alfa1
print "Maximum firing angle = %0.2f degree" %alfa2
Minimum firing angle = 25.37 degree
Maximum firing angle = 92.59 degree

Example 1_28, page 40

In [26]:
#Given data: 
V=32 #V
Eta=0.63 
Ip=10*10**-6 #A
Vv=3.5 #V
Iv=10*10**-3 #A
Vf=0.5 #V
f=50 #Hz
tau=50*10**-6 #s
T=1/f#s
Vp=Eta*V+Vf #V
C=0.4*10**-6 #F#assumed
print "Suitable value of C = %0.2f micro F " %(C*10**6)
#V-Ip*R>Vp
R_upper=(V-Vp)/Ip #ohm
#V-Iv*R<Vv
R_lower=(V-Vv)/Iv #ohm
print "Value of R should be lie between %0.2e"%R_lower,"ohm to %0.3e"%R_upper,"ohm."
R=T/C/log(1/(1-Eta)) #ohm
print "Suitale value of R = %0.3e ohm " %R
R4=tau/C #ohm
print "Suitale value of R4 = %0.f ohm " %R4
R3=10**4/Eta/V #ohm
print "Suitale value of R3 = %0.f ohm " %R3
#Answer for R4 is wrong in the book
Suitable value of C = 0.40 micro F 
Value of R should be lie between 2.85e+03 ohm to 1.134e+06 ohm.
Suitale value of R = 5.029e+04 ohm 
Suitale value of R4 = 125 ohm 
Suitale value of R3 = 496 ohm 

Example 1_29, page 41

In [27]:
#Given data: 
f=2*1000 #Hz
Vdc=10 #V
Eta=0.6 
Ip=5*10**-3 #A
Vf=0.5 #V#assumed
Vp=Eta*Vdc+Vf #V
#Vdc-Ip*R>Vp
R_upper=(Vdc-Vp)/Ip #ohm
print "Value of R should be less than",R_upper,"ohm."
C=0.5*10**-6 #F#assumed
print "Let value of C = %0.2f micro F " %(C*10**6)
T=1/f#s
R=T/C/log(1/(1-Eta)) #ohm
print "For C=0.5 micro F, calculated value of R",round(R),"ohm.\nBut it is not suitable" 
C=1*10**-6 #F#assumed
print "Let value of C = %0.2f micro F " %(C*10**6)
R=T/C/log(1/(1-Eta)) #ohm
print "For C=1 micro F, calculated value of R",round(R,1),"ohm.\nIt is suitable" 
Value of R should be less than 700.0 ohm.
Let value of C = 0.50 micro F 
For C=0.5 micro F, calculated value of R 1091.0 ohm.
But it is not suitable
Let value of C = 1.00 micro F 
For C=1 micro F, calculated value of R 545.7 ohm.
It is suitable

Example 1_30, page 41

In [28]:
from math import degrees
#Given data: 
Vs=230 #V
R=arange(1000,22000) #ohm
Vg=2 #V
C=0.47*10**-6 #F
f=50 #Hz
Xc=1/(2*pi*f*C) #ohm
#When R=1000 ohm
theta=atan(min(R)/Xc) #radian
theta = degrees(theta) # degree
Z=min(R)-1J*Xc #ohm
I=Vs/Z #A
Vc=-1J*I*Xc #V
#vc=sqrt(2)*abs(Vc)*sind(omega_t+atand(imag(Vc),real(Vc)))
omega_t=asin(Vg/sqrt(2)/abs(Vc))-atan((Vc.imag)/(Vc.real)) #radian
omega_t = degrees(omega_t) # degree
alfa1=omega_t #degree
#When R=22000 ohm
Z=max(R)-1J*Xc #ohm
I=Vs/Z #A
Vc=-1J*I*Xc #V
#vc=sqrt(2)*abs(Vc)*sind(omega_t+atand(imag(Vc),real(Vc)))
omega_t=asin(Vg/sqrt(2)/abs(Vc))-atan((Vc.imag)/(Vc.real)) #radian
omega_t = degrees(omega_t) #degree
alfa2=omega_t #degree
print "Minimum firing angle = %0.1f degree" %alfa1.real
print "Maximum firing angle = %0.1f degree" %alfa2.real
Minimum firing angle = 8.8 degree
Maximum firing angle = 74.1 degree

Example 1_31, page 49

In [29]:
#Given data: 
R=0.8 #ohm
L=10*10**-6 #H
C=50*10**-6 #F
#R<sqrt(4*L/C)
Rupper=sqrt(4*L/C) #ohm
print "Maximum value of R should be",round(Rupper,4),"ohm."
print "Given value of R is",R,"ohm. The circuit is underdamped."
t0=pi/sqrt(1/L/C-R**2/4/L**2) #s
print "Time of conduction of thyristor = %0.4e seconds" %t0
Maximum value of R should be 0.8944 ohm.
Given value of R is 0.8 ohm. The circuit is underdamped.
Time of conduction of thyristor = 1.5708e-04 seconds

Example 1_32, page 50

In [30]:
#Given data: 
V=90 #V
Iload=8 #A
t_off=40*10**-6 #s
#Ipeak=2*Iload #assumed
#V*sqrt(C/L)=2*Iload
C_by_L=(2*Iload/V)**2 
#t_off=pi/2*sqrt(L*C)
L_into_C=(t_off/pi*2)**2 
C=sqrt(L_into_C*C_by_L) #F
L=L_into_C/C #H
print "Value of L = %0.4e H " %L 
print "Value of C = %0.3e F " %C 
Value of L = 1.4324e-04 H 
Value of C = 4.527e-06 F 

Example 1_33, page 50

In [31]:
#Given data: 
RL=10 #ohm
V=100 #V
t_off=50*10**-6 #s
C=t_off/RL/log(2) #F
print "Value of C = %0.2e F " %C 
Value of C = 7.21e-06 F 

Example 1_34, page 50

In [32]:
#Given data: 
IL=40 #A
VC=100 #V
t_off=60*10**-6 #s
C=t_off*IL/VC #F
print "Value of C = %0.2e F " %C
#L>VC**2*C/IL
L_lower=VC**2*C/IL**2 #H
Ip=VC*sqrt(C/L_lower) #A
print "Value of L should be greater than %0.1e"%L_lower,"H."
print "For this value of L, Peak capacitor current is",Ip,"A. But it should be less than maximum load current."
#Let Ip=34.6 A
Ip=34.6 #A
L=C/(Ip/VC)**2 #H
print "Value of L = %0.2e H " %L 
Value of C = 2.40e-05 F 
Value of L should be greater than 1.5e-04 H.
For this value of L, Peak capacitor current is 40.0 A. But it should be less than maximum load current.
Value of L = 2.00e-04 H 

Example 1_35, page 51

In [33]:
#Given data: 
Vdc=100 #V
L=0.1*10**-3 #H
C=10*10**-6 #F
Vc=100 #V
t_off_thyristor=25*10**-6 #s
IL=10 #A
t_off=Vc*C/IL #s
print "T_off is %0.1e"%t_off,"seconds. It is greater than thristor turn off time, so it is sufficient for communication."
Ip=Vdc*sqrt(C/L) #A
print "Current rating = %0.2f A "%Ip 
T_off is 1.0e-04 seconds. It is greater than thristor turn off time, so it is sufficient for communication.
Current rating = 31.62 A 

Example 1_36, page 54

In [34]:
#Given data: 
dv_by_dt=25/10**-6 #V/s
L=0.2*10**-3 #H
Vrms=230 #V
damping=0.65 #damping factor
Vm=sqrt(2)*Vrms #V
C=1/(2*L)*(0.564*Vm/dv_by_dt)**2 #F
R=2*damping*sqrt(L/C) #ohm
print "Value of C = %0.4e F " %C
print "Value of R = %0.1f ohm " %R
Value of C = 1.3462e-07 F 
Value of R = 50.1 ohm 

Example 1_37, page 55

In [35]:
#Given data: 
V=300 #V
RL=10 #ohm
L=0 #H
Ith=100 #A
f=2000 #Hz
dv_by_dt=100*10**6 #V/s
#dv/dt=(vth(tau)-vth(0))/tau
#dv/dt=RL*(1-0.368)*V/(R+RL)/((R+RL)*C)
R=V/Ith #ohm
C=RL*(1-0.368)*V/(R+RL)/(R+RL)/dv_by_dt
print "Value of R = %0.2f ohm " %R
print "Value of C = %0.2e F " %C
Ploss=1/2*C*V**2*f #W
print "Power loss in snubber circuit = %0.2f W " %Ploss
print "Power rating of resitance is %0.2f"%Ploss,"W as all energy will be disspated in the resistance."
Value of R = 3.00 ohm 
Value of C = 1.12e-07 F 
Power loss in snubber circuit = 10.10 W 
Power rating of resitance is 10.10 W as all energy will be disspated in the resistance.

Example 1_38, page 56

In [36]:
#Given data: 
R=4 #ohm
L=6*10**-6 #H
C=6*10**-6 #F
V=300 #V
di_by_dt_max=V/L #A/s
Isc=V/R #A
dvc_by_dt=R*di_by_dt_max+Isc/C #V/s
print "Maximum permissible value of di/dt = %0.e A/s " %di_by_dt_max 
print "Maximum permissible value of dv/dt = %0.3e V/s " %dvc_by_dt 
Maximum permissible value of di/dt = 5e+07 A/s 
Maximum permissible value of dv/dt = 2.125e+08 V/s 

Example 1_39, page 56

In [37]:
from math import ceil
#Given data: 
RL=8 #ohm
V=230 #V
Ip=100 #A
SF=2 #safety factor
di_by_dt_max=40/10**-6/2 #A/s
dv_by_dt_max=150/10**-6/2 #V/s

L=sqrt(2)*V/di_by_dt_max #H
print "Value of L = %0.3e H " %L 
R=L/(sqrt(2)*V)*dv_by_dt_max #ohm
print "Value of R = %0.2f ohm " %R 
IL_peak=(sqrt(2)*V)/RL #A
Ic_peak=(sqrt(2)*V)/R #A
Itotal=IL_peak+Ic_peak #A
print "Total current through capacitor for these values = %0.2f A " %Itotal 
print "Itotal>Ip, therefore value of R should be increased." 
Ic_max=Ip-IL_peak #A
R=(sqrt(2)*V)/Ic_max #ohm
R=ceil(R) #ohm
print "New Value of R = %0.2f ohm " %R 
damping=0.65 
C=4*damping**2*L/R**2 #F
print "Value of C = %0.4f micro F " %(C*10**6) 
print "Value of L = %0.2f micro H " %(L*10**6) 
#Ic_switching=C*dv/dt
dv_by_dt=sqrt(2)*V/(R+RL)/C #V/s
print "Value of dv/dt is %0.3e"%dv_by_dt,"V/s.\nIt is within the limit for the calculated value of R, L & C. Design is safe."
Value of L = 1.626e-05 H 
Value of R = 3.75 ohm 
Total current through capacitor for these values = 127.40 A 
Itotal>Ip, therefore value of R should be increased.
New Value of R = 6.00 ohm 
Value of C = 0.7635 micro F 
Value of L = 16.26 micro H 
Value of dv/dt is 3.043e+07 V/s.
It is within the limit for the calculated value of R, L & C. Design is safe.

Example 1_40, page 57

In [38]:
#Given data: 
V=230 #V
R1=2 #ohm
R2=5 #ohm
R3=1 #ohm
R4=6 #ohm
R5=5 #ohm
Isqr_t=30 #A**2-s
R=R1+R2*R3/(R2+R3) #ohm(X grounded)
Ifault=sqrt(2)*V/R #A
tc=Isqr_t/Ifault**2 #s
print "Fault clearing time = %0.3e seconds" %tc
Fault clearing time = 2.276e-03 seconds