from __future__ import division
from sympy import *
import math
#Variable declaration:
Zmain=4.5+3.7j #main winding impedance(ohm)
Zaux=9.5+3.5j #auxilliary winding impedance(ohm)
f=60 #frequency(Hz)
#Calculations:
phy_main=math.degrees(math.atan(Zmain.imag/Zmain.real))
phy=phy_main-90
w=2*pi*60
Xc=symbols('Xc')
a=solve((3.5+Xc)/9.5-math.tan(math.radians(float(phy))), Xc)
C=-1/(w*a[0])
#Results:
print "The starting capacitance:",round(float(C)*10**6,0), "uF"
from __future__ import division
import cmath
from math import *
#Variable Declaration:
R1_m=2.02 #resistance of main winding(ohm)
X1_m=2.79 #resistance of main
R2_m= 4.12 #Rotor resistance ref. to stator(ohm)
X2_m=2.12 #Rotor reactance ref. to stator(ohm)
Xm=66.8 #Magnetising reactance(ohm)
s=0.05 #slip
Pcu=24 #copper loss(W)
Pw=13 #friction & windage loss(W)
V=110 #line-to-line voltage(V)
p=4 #no.of poles
fc=60 #frequency(Hz)
#Calculations:
X22=X2_m+Xm
Q2_m=X22/R2_m
Rf=(Xm**2/X22)*(1/(s*Q2_m+1/(s*Q2_m)))
Xf=(X2_m*Xm/X22)+Rf/(s*Q2_m)
Zf=Rf+1j*Xf #forward field impedance(ohm)
Rb=R2_m*(Xm/X22)**2/(2-s)
Xb=(X2_m*Xm/X22)+Rb/((2-s)*Q2_m)
Zb=Rb+1j*Xb #bachward field impedance
Zt=0.5*(Zf+Zb)+R1_m+1j*X1_m
I=V/abs(Zt) #Stator current(A)
pf=cos(cmath.phase(Zt)) #power factor
Pin=V*I*pf
Pg_f=I**2*0.5*Rf #power absorbed by forward field(W)
Pg_b=I**2*0.5*Rb #power absorbed by backward field(W)
Pmech=(1-s)*(Pg_f-Pg_b)
Pshaft=Pmech-(Pcu+Pw)
ws=(2/p)*120*pi
ns=(120/p)*fc
n=(1-s)*ns #Rotor speed(rpm)
wm=(1-s)*ws
Tshaft=Pshaft/wm #shaft torque(Nm)
eff=Pshaft/Pin
#Results:
print "Stator current:",round(I),"A", "\nPower factor:",round(pf,3)
print "Power output:",round(Pshaft),"W", "\nSpeed:",n,"rpm"
print "Shaft torque:",round(Tshaft,3),"Nm","Efficiency",round(eff*100),"%"
from __future__ import division
import math
import cmath
#Variable declaration:
f=60 #freq(Hz)
omeag=2*pi*f
s=0.05 #slip
R1=0.534 #resistance of main winding(ohm)
X1=2.45
Xm=70.1
R2=0.956
X2=2.96
Valpha=230
Vbeta=210*cmath.exp(1j*80*pi/180)
#Calculations:
Vf = 0.5*(Valpha - 1j*Vbeta)
Vb = 0.5*(Valpha + 1j*Vbeta)
Zf=R1+1j*X1+1j*Xm*(R2/s+1j*X2)/(R2/s+1j*(X2+Xm))
If=Vf/Zf
Zb=R1+1j*X1+1j*Xm*(R2/(2-s)+1j*X2)/(R2/(2-s)+1j*(X2+Xm))
Ib = Vb/Zb
Ialpha=If+Ib
Ibeta=1j*(If-Ib)
Pgf=2*((Vf*(If.conjugate())).real-R1*abs(If)**2)
Pgb=2*((Vb*(Ib.conjugate())).real-R1*abs(Ib)**2)
Pmech=(1-s)*(Pgf-Pgb)
#Results:
print "(a) Positive seq components:", round(Vf.real,1)+1j*round(Vf.imag,1),"V"
print" Negative seq. components:", round(Vb.real,1)+1j*round(Vb.imag,1),"V"
print"\n(b) Positive stator currents:",round(If.real,1)+1j*round(If.imag,1),"A"
print" Negative stator currnets:",round(Ib.real,1)+1j*round(Ib.imag,1),"A"
print"\n(c) Positive currents:",round(Ialpha.real,1)+1j*round(Ialpha.imag,1),"A"
print" Negative currnets:",round(Ibeta.real,1)+1j*round(Ibeta.imag,1),"A"
print "\n(d) Power to forward field:",round(Pgf,0),"W"
print " Power to backward field:",round(Pgb,0),"W"
print " Pmech:",round(Pmech,0),"W"
from __future__ import division
%matplotlib inline
import cmath
from math import *
from matplotlib.pyplot import *
#Variable declaration:
Lmain=0.0806 #main winding inductance(H)
Rmain = 0.58 #main winding resistance(ohm)
Laux = 0.196 #auxilliary winding inductance(H)
Raux = 3.37 #auxilliary winding resistance(ohm)
Lr=4.7*10**-6 #rotor inductance(H)
Rr=37.6*10**-6 #rotor resistance(ohm)
Lmain_r=0.588*10**-3 #main inductance ref. to rotor(H)
Laux_r = 0.909*10**-3 #aux inductance ref. to rotor(H)
p=2 #poles
Vo=230 #terminal voltage(V)
w=120*pi #angular frequency(Hz)
C=35*10**-6
Prot=40 #Windage losses(W)
Pcore=105 #Core loss(W)
n=3500 #rpm
#calculations and Results:
Xc=-1/(w*C)
speed=[0]*102
for cal in range(1,3,1):
if cal==1:
mmax=2
else:
mmax=102
for m in range(1,mmax,2):
if cal==1:
speed[m-1]=3500
else:
speed[m-1]=3599*(m-1)/100
ns=(2/p)*3600
s=(ns-speed[m-1])/ns
#for part (a):
Kplus=s*w/(2*(Rr+1j*s*w*Lr))
Kminus=(2-s)*w/(2*(Rr+1j*(2-s)*w*Lr))
A1=Lmain-1j*Lmain_r**2*(Kplus+Kminus)
A2=Lmain_r*Laux_r*(Kplus-Kminus)
A3=Laux-1j*Laux_r**2*(Kplus+Kminus)
M=[[0]*2,[0]*2]
M[0][0]=Rmain + 1j*w*A1
M[0][1] = 1j*w*A2;
M[1][0] = -1j*w*A2;
M[1][1] = Raux + 1j*Xc+ 1j*w*A3
V=[[Vo],[-Vo]]
M1=inv(M)
I=dot(M1,V)
Imain=I[0][0]
Iaux=I[1][0]
Is=Imain-Iaux
magImain=abs(Imain)
angleImain=math.degrees(cmath.phase(Imain))
magIaux=abs (Iaux)
angleIaux=math.degrees(cmath.phase(Iaux))
magIs=abs(Is)
angleIs=math.degrees(cmath.phase(Is))
Vcap=Iaux*Xc
magVcap=abs(Vcap)
#for part (b):
Tmech=[0]*102
Pshaft=[0]*102
Tmechl = (Kplus-Kminus).conjugate()
Tmechl=Tmechl*(Lmain_r**2*Imain*((Imain).conjugate())+Laux_r**2*Iaux*((Iaux).conjugate()))
Tmech2 = 1j*Lmain_r*Laux_r*((Kplus+Kminus).conjugate())
Tmech2 = Tmech2*((Imain).conjugate()*Iaux-Imain*((Iaux).conjugate()));
Tmech[m-1] = (p/2)*(Tmechl+Tmech2).real
Pshaft=((2/p)*(1-s)*w*Tmech[m-1])-Prot
#for part (c):
Pmech=[0]*102
Pmain = (Vo*(Imain.conjugate())).real
Paux = (-Vo*(Iaux.conjugate())).real
Pin = Pmain+Paux+Pcore
eta = Pshaft/Pin;
if cal==1:
print "part (a):"
print "\nImain=",round(magImain,1),"A at an angle",round(angleImain,1),"degrees"
print "\nImain=",round(magIaux,1),"A at an angle",round(angleIaux,1),"degrees"
print "\nImain=",round(magIs,1),"A at an angle",round(angleIs,1),"degrees"
print "\nVcap=",round(magVcap,0),"V"
print "\npart (b):"
print "\nTmech=",round(Tmech[0],2),"Nm"
print "\nPshaft=",round(Pshaft),"W"
print "\npart (c):"
print "\nPmain=",round(Pmain,0),"W"
print "\nPaux=",round(Paux,0),"W"
print "\nPin=",round(Pin,0),"W"
print "\nEfficiency=",round(eta*100,1),"%"
else:
plot(speed,Tmech,'g.')
xlabel('speed (rpm)')
ylabel('Tmech (Nm)')
title('Electromagnetic torque vs speed')
show()