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)
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)
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)
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)
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 :
print("load current in continuous")
else:
print("load current in discont.")
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
I1=(2*V_s/(math.sqrt(2)*math.pi)*math.sin(math.radians(180*a)))/(math.sqrt(R**2+(w*L)**2))
I2=(2*V_s/(2*math.sqrt(2)*math.pi)*math.sin(math.radians(2*180*a)))/(math.sqrt(R**2+(w*L*2)**2))
I3=(2*V_s/(3*math.sqrt(2)*math.pi)*math.sin(math.radians(3*180*a)))/(math.sqrt(R**2+(w*L*3)**2))
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)
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 :
print("load current is continuous")
else:
print("load current is discontinuous")
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)
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)
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))
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.
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))
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))
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))
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))
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)
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)
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=(5*math.pi/2-th1*math.pi/180)*math.sqrt(L*C)+C*V_s*(1-math.cos(math.radians(th1)))/I_o
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))
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)
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)
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)
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.