Chapter 07 : Choppers¶

Example 7.2, Page No 387¶

In [1]:
import math
#initialisation of variables
a=0.4     #duty cycle %a=T_on/T
V_s=230.0
R=10.0

#Calculations
V=a*(V_s-2)
V_or=math.sqrt(a*(V_s-2)**2)
P_o=V_or**2/R
P_i=V_s*V/R
n=P_o*100/P_i

#Results
print("avg o/p voltage=%.1f V" %V)
print("rms value of o/p voltage=%.1f V" %V_or)
print("chopper efficiency in percentage=%.2f" %n)

avg o/p voltage=91.2 V
rms value of o/p voltage=144.2 V
chopper efficiency in percentage=99.13


Example 7.3, Page No 388¶

In [2]:
import math
#initialisation of variables
V_i=220.0
V_o=660.0

#Calculations
a=1-V_i/V_o
T_on=100.0     #microsecond
T=T_on/a
T_off=T-T_on
T_off=T_off/2
T_on=T-T_off
a=T_on/T
V_o=V_i/(1-a)

#Results
print("pulse width of o/p voltage=%.0f us" %T_off)
print("\nnew o/p voltage=%.0f V" %V_o)

pulse width of o/p voltage=25 us

new o/p voltage=1320 V


Example 7.4 Page No 288¶

In [3]:
import math
#initialisation of variables
I_1=12.0
I_2=16.0

#Calculations
I_0=(I_1+I_2)/2
R=10.0
V_0=I_0*R
V_s=200.0
a=V_0/V_s
r=a/(1-a)

#Results
print("time ratio(T_on/T_off)=%.3f" %r)

time ratio(T_on/T_off)=2.333


Example 7.5, Page No 390¶

In [4]:
import math
#initialisation of variables
V_o=660.0
V_s=220.0

#Calculations
a=(V_o/V_s)/(1+(V_o/V_s))
T_on=120
T=T_on/a
T_off=T-T_on
T_off=3*T_off
T_on=T-T_off
a=T_on/(T_on+T_off)
V_o=V_s*(a/(1-a))

#Results
print("pulse width o/p voltage=%.0f us" %T_off)
print("\nnew o/p voltage=%.2f V" %V_o)

pulse width o/p voltage=120 us

new o/p voltage=73.33 V


Example 7.11 Page No 408¶

In [7]:
import math
#initialisation of variables
R=1.0
L=.005
T_a=L/R
T=2000*10**-6
E=24.0
V_s=220
T_on=600*10**-6
a=T_on/T

#Calculations
a1=(T_a/T)*math.log(1+(E/V_s)*((math.exp(T/T_a))-1))
if a1<a :
else:

I_o=(a*V_s-E)/R
I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a)))-E/R
I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1))-E/R
f=1/T
w=2*math.pi*f
I_TAV=a*(V_s-E)/R-L*(I_mx-I_mn)/(R*T)
P1=I_TAV*V_s
P2=E*I_o
I_or=math.sqrt(I_o**2+I1**2+I2**2+I3**2)

#Results
print("avg o/p current=%.2f A" %I_o)
print("max value of steady current=%.2f A" %I_mx)
print("min value of steady current=%.2f A" %I_mn)
print("first harmonic current=%.4f A" %I1)
print("second harmonic current=%.4f A" %I2)
print("third harmonic current=%.5f A" %I3)
print("avg supply current=%.4f A" %I_TAV)
print("i/p power=%.2f W" %P1)
print("power absorbed by load emf=%.0f W" %P2)
print("power loss in resistor=%.2f W" %(P1-P2))
print("rms value of load current=%.3f A" %I_or)

load current in continuous
avg o/p current=42.00 A
max value of steady current=51.46 A
min value of steady current=33.03 A
first harmonic current=5.0903 A
second harmonic current=1.4983 A
third harmonic current=0.21643 A
avg supply current=12.7289 A
i/p power=2800.35 W
power absorbed by load emf=1008 W
power loss in resistor=1792.35 W
rms value of load current=42.334 A


Example 7.12 Page No 411¶

In [10]:
import math
#initialisation of variables
R=1
L=.001
V_s=220
E=72.0
f=500.0
T_on=800*10**-6
T_a=L/R
T=1.0/f
m=E/V_s
a=T_on/T

#Calculations
a1=(T_a/T)*math.log(1+m*(math.exp(-T/T_a)-1))
if a1>a :
else:

t_x=T_on+L*math.log(1+((V_s-E)/272)*(1-math.exp(-T_on/T_a)))
#Value of t_x wrongly calculated in the book so ans of V_o and I_o varies
V_o=a*V_s+(1-t_x/T)*E
I_o=(V_o-E)/R
I_mx=(V_s-E)/R*(1-math.exp(-T_on/T_a))

#Results
print("avg o/p voltage=%.2f V" %V_o)
print("avg o/p current=%.2f A" %I_o)
print("max value of load current=%.1f A" %I_mx)

load current is discontinuous
avg o/p voltage=121.77 V
avg o/p current=49.77 A
max value of load current=81.5 A


Example 7.13, Page No 412¶

In [11]:
import math
#initialisation of variables
a=0.2
V_s=500
E=a*V_s
L=0.06
I=10

#Calculations
T_on=(L*I)/(V_s-E)
f=a/T_on

#Results
print("chopping freq=%.2f Hz" %f)

chopping freq=133.33 Hz


Example 7.14 Page No 412¶

In [12]:
import math
#initialisation of variables
a=0.5
pu=0.1 #pu ripple

#Calculations
#x=T/T_a
#y=exp(-a*x)
y=(1-pu)/(1+pu)
#after solving
x=math.log(1/y)/a
f=1000
T=1/f
T_a=T/x
R=2
L=R*T_a
Li=0.002
Le=L-Li

#Results
print("external inductance=%.3f mH" %(Le*1000))

external inductance=-2.000 mH


Example 7.15 Page No 414¶

In [14]:
import math
#initialisation of variables
R=10.0
L=0.015
T_a=L/R
f=1250.0
T=1.0/f
a=0.5
T_on=a*T
V_s=220.0

#Calculations
I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a)))
I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1))
dI=I_mx-I_mn
V_o=a*V_s
I_o=V_o/R
I_or=math.sqrt(I_mx**2+dI**2/3+I_mx*dI)
I_chr=math.sqrt(a)*I_or

#Results
print("Max value of ripple current=%.2f A" %dI)
print("Max value of load current=%.3f A" %I_mx)
print("Min value of load current=%.2f A" %I_mn)
print("Avg value of load current=%.2f A" %I_o)
print("rms value of load current=%.2f A" %I_or)
print("rms value of chopper current=%.2f A" %I_chr)
#Answers have small variations from that in the book due to difference in the rounding off of digits.

Max value of ripple current=2.92 A
Max value of load current=12.458 A
Min value of load current=9.54 A
Avg value of load current=11.00 A
rms value of load current=13.94 A
rms value of chopper current=9.86 A


Example 7.17 Page No 417¶

In [15]:
import math
#initialisation of variables
L=0.0016
C=4*10**-6

#Calculations
w=1/math.sqrt(L*C)
t=math.pi/w

#Results
print("time for which current flows=%.2f us" %(t*10**6))

time for which current flows=251.33 us


Example 7.18, Page No 424¶

In [19]:
import math
#initialisation of variables
t_q=20.0*10**-6
dt=20.0*10**-6

#Calculations
t_c=t_q+dt
I_0=60.0
V_s=60.0
C=t_c*I_0/V_s

#Results
print("value of commutating capacitor=%.0f uF" %(C*10**6))

L1=(V_s/I_0)**2*C
L2=(2*t_c/math.pi)**2/C
if L1>L2 :
print("value of commutating inductor=%.0f uH" %(L1*10**6))
else:
print("value of commutating inductor=%.0f uH" %(L2*10**6))

value of commutating capacitor=40 uF
value of commutating inductor=40 uH


Example 7.19, Page No 424¶

In [20]:
import math
#initialisation of variables
t=100.0*10**-6
R=10.0

#Calculations
#V_s*(1-2*math.exp(-t/(R*C)))=0
C=-t/(R*math.log(1.0/2))
L=(4/9.0)*C*R**2
L=(1.0/4)*C*R**2

#Results
print("Value of comutating component C=%.3f uF" %(C*10**6))
print("max permissible current through SCR is 2.5 times load current")
print("value of comutating component L=%.1f uH" %(L*10**6))
print("max permissible current through SCR is 1.5 times peak diode current")
print("value of comutating component L=%.2f uH" %(L*10**6))

Value of comutating component C=14.427 uF
max permissible current through SCR is 2.5 times load current
value of comutating component L=360.7 uH
max permissible current through SCR is 1.5 times peak diode current
value of comutating component L=360.67 uH


Example 7.20, Page No 426¶

In [122]:
import math
#initialisation of variables
T_on=800.0*10**-6
V_s=220.0
I_o=80.0
C=50*10**-6

#Calculations
T=T_on+2*V_s*C/I_o
L=20*10**-6
C=50*10**-6
i_T1=I_o+V_s*math.sqrt(C/L)
i_TA=I_o
t_c=C*V_s/I_o
t_c1=(math.pi/2)*math.sqrt(L*C)
t=150*10**-6
v_c=I_o*t/C-V_s

#Results
print("effective on period=%.0f us" %(T*10**6))
print("peak current through main thyristor=%.2f A" %i_T1)
print("peak current through auxillery thyristor=%.0f A" %i_TA)
print("turn off time for main thyristor=%.1f us" %(t_c*10**6))
print("turn off time for auxillery thyristor=%.3f us" %(t_c1*10**6))
print("total commutation interval=%.0f us" %(2*t_c*10**6))
print("capacitor voltage=%.0f V" %v_c)
print("time nedded to recharge the capacitor=%.0f us" %(2*V_s*C/I_o*10**6))

for firing angle = 30deg
avg output voltage=232.509 V
for firing angle = 60deg
avg output voltage=133.65 V
avg current rating=12 A
rms current rating=20.785 A
PIV of SCR=565.7 V
power dissipated=16.8 W


Example 7.21, Page No 427¶

In [*]:
import math
#initialisation of variables
I_o=260.0
V_s=220.0
fos=2 #factor of safety

#Calculations
t_off=18*10**-6
t_c=2*t_off
C=t_c*I_o/V_s
L=(V_s/(0.8*I_o))**2*C
f=400
a_mn=math.pi*f*math.sqrt(L*C)
V_omn=V_s*(a_mn+2*f*t_c)
V_omx=V_s

#Results
print("Value of C=%.3f uF" %(C*10**6))
print("value of L=%.3f uH" %(L*10**6))
print("min value of o/p voltage=%.3f V" %V_omn)
print("max value of o/p voltage=%.0f V" %V_omx)

firing angle delay=47.461 deg
pf=0.646
firing angle delay=127.71 deg


Example 7.22, Page No 434¶

In [25]:
import math
#initialisation of variables
x=2.0
t_q=30*10**-6
dt=30*10**-6
t_c=t_q+dt
V_s=230.0
I_o=200.0

#Calculations
L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x)))
C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x)))
V_cp=V_s+I_o*math.sqrt(L/C)
I_cp=x*I_o
x=3
L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x)))
C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x)))
V_cp=V_s+I_o*math.sqrt(L/C)
I_cp=x*I_o

#Results
print("value of commutating inductor=%.3f uH" %(L*10**6))
print("value of commutating capacitor=%.3f uF" %(C*10**6))
print("peak capacitor voltage=%.0f V" %V_cp)
print("peak commutataing current=%.0f A" %I_cp)
print("value of commutating inductor=%.3f uH" %(L*10**6))
print("value of commutating capacitor=%.3f uF" %(C*10**6))
print("peak capacitor voltage=%.2f V" %V_cp)
print("peak commutataing current=%.0f A" %I_cp)

value of commutating inductor=7.321 uH
value of commutating capacitor=49.822 uF
peak capacitor voltage=307 V
peak commutataing current=600 A
value of commutating inductor=7.321 uH
value of commutating capacitor=49.822 uF
peak capacitor voltage=306.67 V
peak commutataing current=600 A


Example 7.23, Page No 434¶

In [27]:
import math
#initialisation of variablesV_s=230
C=50*10**-6
L=20*10**-6
I_cp=V_s*math.sqrt(C/L)
I_o=200
x=I_cp/I_o

#Calculations
t_c=(math.pi-2*math.asin(1/x))*math.sqrt(C*L)
th1=math.degrees(math.asin(1.0/x))
t=(math.pi-th1*math.pi/180)*math.sqrt(L*C)

#Results
print("turn off time of main thyristor=%.2f us" %(t_c*10**6))
print("total commutation interval=%.3f us" %(t*10**6))
print("turn off time of auxillery thyristor=%.3f us" %(t*10**6))

turn off time of main thyristor=62.52 us
total commutation interval=80.931 us
turn off time of auxillery thyristor=80.931 us


Example 7.24, Page No 440¶

In [28]:
import math
#initialisation of variables
tc=0.006
R=10.0
L=R*tc
f=2000.0

#Calculations
T=1/f
V_o=50.0
V_s=100.0
a=V_o/V_s
T_on=a*T
T_off=T-T_on
dI=V_o*T_off/L
I_o=V_o/R
I2=I_o+dI/2
I1=I_o-dI/2

#Results
print("max value of load current=%.3f A" %I2)
print("min value of load current=%.3f A" %I1)

max value of load current=5.104 A
min value of load current=4.896 A


Example 7.27, Page No 443¶

In [29]:
import math
#initialisation of variables
I_a=30.0
r_a=.5
V_s=220.0

#Calculations
a=I_a*r_a/V_s
a=1
k=.1 #V/rpm
N=(a*V_s-I_a*r_a)/k

#Results
print("min value of duty cycle=%.3f" %a)
print("min Value of speed control=%.0f rpm" %0)
print("max value of duty cycle=%.0f" %a)
print("max value of speed control=%.0f rpm" %N)

min value of duty cycle=1.000
min Value of speed control=0 rpm
max value of duty cycle=1
max value of speed control=2050 rpm


Example 7.28, Page No 444¶

In [30]:
import math
#initialisation of variables
V_t=72.0
I_a=200.0
r_a=0.045
N=2500.0

#Calculations
k=(V_t-I_a*r_a)/N
E_a=k*1000
L=.007
Rm=.045
Rb=0.065
R=Rm+Rb
T_a=L/R
I_mx=230
I_mn=180
T_on=-T_a*math.log(-((V_t-E_a)/R-I_mx)/((I_mn)-(V_t-E_a)/R))
R=Rm
T_a=L/R
T_off=-T_a*math.log(-((-E_a)/R-I_mn)/((I_mx)-(-E_a)/R))
T=T_on+T_off
f=1/T
a=T_on/T

#Results
print("chopping freq=%.1f Hz" %f)
print("duty cycle ratio=%.3f" %a)

chopping freq=40.5 Hz

duty cycle ratio=0.588


Example 7.29, Page No 445¶

In [32]:
import math
#initialisation of variablesI_mx=425
I_lt=180.0     #lower limit of current pulsation
I_mn=I_mx-I_lt
T_on=0.014
T_off=0.011

#Calculations
T=T_on+T_off
T_a=.0635
a=T_on/T
V=(I_mx-I_mn*math.exp(-T_on/T_a))/(1-math.exp(-T_on/T_a))
a=.5
I_mn=(I_mx-V*(1-math.exp(-T_on/T_a)))/(math.exp(-T_on/T_a))
T=I_mx-I_mn
T=T_on/a
f=1/T

#Results
print("higher limit of current pulsation=%.0f A" %T)
print("chopping freq=%.3f Hz" %f)
print("duty cycle ratio=%.2f" %a)
#Answers have small variations from that in the book due to difference in the rounding off of digits.

higher limit of current pulsation=0 A
chopping freq=35.714 Hz
duty cycle ratio=0.50