#Variable declaration
V = 220.0 #Supply voltage(V)
P = 4.0 #Number of poles
f = 50.0 #Frequency(Hz)
N_l = 1450.0 #Speed(rpm)
R_2 = 10.0 #Rotor resistance at standstill(ohm)
#Calculation
N_s = 120*f/P #Synchronous speed(rpm)
#For case(i)
s_f = (N_s-N_l)/N_s #Slip due to forward field
#For case(ii)
s_b = 2-s_f #Slip due to backward field
#For case(iii)
R_f = R_2/s_f #Effective rotor resistance due to forward slip(ohm)
R_b = R_2/(2-s_f) #Effective rotor resistance due to backward slip(ohm)
#Result
print('(i) Slip due to forward field , s_f = %.2f ' %s_f)
print('(ii) Slip due to backward field , s_b = %.2f ' %s_b)
print('(iii) Effective rotor resistance due to forward slip , R_f = %.2f ohm' %R_f)
print(' Effective rotor resistance due to backward slip , R_b = %.2f ohm' %R_b)
print('\nNOTE : Changes in answer from that of textbook is due to precision')
import math
import cmath
#Variable declaration
V_t = 220.0 #Supply voltage(V)
R_1 = 6.0 #Resistance(ohm)
R_2 = 6.0 #Resistance(ohm)
X_1 = 10.0 #Inductive reactance(ohm)
X_2 = 10.0 #Inductive reactance(ohm)
N = 1500.0 #Speed(rpm)
s = 0.03 #Slip
X_m = 150.0 #Inductive reactance(ohm)
#Calculation
Z_f = 0.5*complex(0,X_m)*complex(R_2/s,X_2)/complex(R_2/s,X_2+X_m) #Impedance due to forward field(ohm)
Z_b = 0.5*complex(0,X_m)*complex(R_2/(2-s),X_2)/complex(R_2/(2-s),X_2+X_m) #Impedance due to backward field(ohm)
Z_t = complex(R_1+Z_f+Z_b,X_1) #Total impedance(ohm)
#For case(i)
I_1 = V_t/Z_t #Input current(A)
#For case(ii)
P_i = V_t*abs(I_1) #Input power(W)
#For case(iii)
R_f = Z_f.real
R_b = Z_b.real
P_d = abs(I_1)**2*(R_f-R_b)*(1-s) #Power developed(W)
#For case(iv)
T_d = 9.55*P_d/N #Torque(N-m)
#Result
print('(i) Input current , I_1 = %.2f∠%.1f° A' %(abs(I_1),cmath.phase(I_1)*180/math.pi))
print('(ii) Input power , P_i = %.2f W' %P_i)
print('(iii) Power developed , P_d = %.1f W' %P_d)
print('(iv) Torque developed , T_d = %.2f N-m' %T_d)
print('\nNOTE : Case(ii) is not solved in textbook but solved here')
print(' ERROR : Calculation mistake in Z_b in textbook solution')
import math
import cmath
#Variable declaration
V_t = 220.0 #Supply voltage(V)
f = 50.0 #Frequency(Hz)
Z_m = complex(3,5) #Main winding impedance of motor(ohm)
Z_s = complex(5,3) #Starting impedance of motor(ohm)
#Calculation
#For case(i)
alpha_s = cmath.phase(Z_s) #Starting winding impedance angle(radians)
I_s = V_t/Z_s #Starting current(A)
#For case(ii)
alpha_m = cmath.phase(Z_m) #Main winding impedance angle(radians)
I_m = V_t/Z_m #Main winding current(A)
#For case(iii)
a = alpha_m-alpha_s #Angle of line current(radians)
I = (abs(I_s)**2+abs(I_m)**2+2*abs(I_s)*abs(I_m)*math.cos(a))**0.5 #Line current(A)
#Result
print('(i) Starting current , I_s = %.1f∠%.2f° A' %(abs(I_s),cmath.phase(I_s)*180/math.pi))
print('(ii) Main winding current , I_m = %.1f∠%.f° A' %(abs(I_m),cmath.phase(I_m)*180/math.pi))
print('(iii) Line current , I = %.1f A' %I)
import math
import cmath
#Variable declaration
V_t = 220.0 #Supply voltage(V)
f = 50.0 #Frequency(Hz)
Z_m = complex(4,3.5) #Main winding impedance of motor(ohm)
Z_s = complex(5,3) #Starting impedance of motor(ohm)
#Calculation
alpha_m = cmath.phase(Z_m) #Main winding impedance angle(radians)
alpha_s = (alpha_m)-(90*math.pi/180) #Angle of starting winding current(radians)
X_c = Z_s.imag-Z_s.real*math.tan(alpha_s) #Reactance connected in series with starting winding(ohm)
C = 1/(2*math.pi*f*X_c)*10**6 #Starting capacitance for getting maximum torque(µF)
#Result
print('Starting capacitance for getting maximum torque , C = %.f µF' %C)
#Variable declaration
f = 50.0 #Supply frequency(Hz)
V_nl = 100.0 #No-load voltage(V)
I_nl = 2.5 #No-load current(A)
P_nl = 60.0 #No-load power(W)
V_br = 60.0 #Block rotor voltage(V)
I_br = 3.0 #Block rotor current(A)
P_br = 130.0 #Block rotor power(W)
R_1 = 2.0 #Main winding resistance(ohm)
#Calculation
Z_br = V_br/I_br #Impedance due to blocked rotor test(ohm)
R_br = P_br/I_br**2 #Resistance due to blocked rotor test(ohm)
X_br = (Z_br**2-R_br**2)**0.5 #Reactance under blocked rotor condition(ohm)
X_1 = 0.5*X_br #Leakage reactance(ohm)
X_2 = X_1 #Leakage reactance(ohm)
R_2 = R_br-R_1 #Rotor circuit resistance(ohm)
Z_nl = V_nl/I_nl #Impedance due to no-load(ohm)
R_nl = P_nl/I_nl**2 #Resistance due to no-load(ohm)
X_nl = (Z_nl**2-R_nl**2)**0.5 #Reactance due to no-load(ohm)
X_m = 2*(X_nl-X_1-0.5*X_2) #Magnetizing reactance(ohm)
P_rot = P_nl-I_nl**2*(R_1+(R_2/4)) #Rotational loss(W)
#Result
print('Equivalent circuit parameters of the motor')
print('Under Blocked rotor test :')
print('Input impedance , Z_br = %.f ohm' %Z_br)
print('Total resistance , R_br = %.1f ohm' %R_br)
print('Total reactance , X_br = %.1f ohm' %X_br)
print('Rotor circuit resistance , R_2 = %.1f ohm' %R_2)
print('Leakage reactances , X_1 = X_2 = %.1f ohm' %X_1)
print('\nUnder No load test :')
print('Input impedance , Z_nl = %.f ohm' %Z_nl)
print('No-load resistance , R_nl = %.1f ohm' %R_nl)
print('No-load reactance , X_nl = %.1f ohm' %X_nl)
print('Magnetizing reactance , X_m = %.1f ohm' %X_m)
print('Rotational loss , P_rot = %.f W' %P_rot)
#Variable declaration
r_t = 36.0 #Number of rotor teeth
N = 4.0 #Number of stator phases
#Calculation
#For case(i)
T_p = 360/r_t #Tooth pitch(degree)
#For case(ii)
teta = 360/(N*r_t) #Step angle(degree)
#Result
print('(i) Tooth pitch , T_p = %.f° ' %T_p)
print('(ii) Step angle , θ = %.1f° ' %teta)