In [1]:
%pylab notebook
A 460-V, 10 hp, four-pole, Y-connected, Insulation class F, Service Factor 1.15 induction motor has the following parameters:
Stator | Rotor | Power |
---|---|---|
$R_1 = 0.540\,\Omega$ | $R_2 = 0.488\,\Omega$ | $P_\text{core} = 150\,W$ |
$X_1 = 2.093\,\Omega$ | $X_2 = 3.209\,\Omega$ | $P_\text{f\&w} = 150\,W$ |
$X_M = 51.12\,\Omega$ | $P_\text{misc} = 50\,W$ |
In [2]:
R1 = 0.54 # [Ohm]
R2 = 0.488 # [Ohm]
Xm = 51.12 # [Ohm]
X1 = 2.093 # [Ohm]
X2 = 3.209 # [Ohm]
Pcore = 150 # [W]
Pf_w = 150 # [W]
Pmisc = 50 # [W]
V = 460 # [V]
p = 4
fse = 60 # [Hz]
For a slip of 0.02, find
The equivalent circuit of this induction motor is shown below:
The easiest way to find the line current (or armature current) is to get the equivalent impedance $Z_F$ of the rotor circuit in parallel with $jX_M$, and then calculate the current as the phase voltage divided by the sum of the series impedances, as shown below.
The equivalent impedance of the rotor circuit in parallel with $jX_M$ is:
$$Z_F = \frac{1}{\frac{1}{jX_M} + \frac{1}{Z_2}}$$
In [3]:
s = 0.02
Z2 = R2 + R2*(1-s)/s + X2*1j
Zf = 1 / (1/(Xm*1j) + 1/Z2)
Zf_angle = arctan(Zf.imag/Zf.real)
print('Zf = ({:.2f})Ω = {:.2f} Ω ∠{:.1f}°'.format(Zf, abs(Zf), Zf_angle/pi *180))
The phase voltage is:
In [4]:
V_phase = V / sqrt(3)
print('V_phase = {:.0f} V'.format(V_phase))
so the line current $I_L$ is:
$$I_L = I_A = \frac{V_\phi}{R_1 + jX_1 +R_F + jX_F}$$
In [5]:
Il = V_phase / (R1 + X1*1j + Zf)
Ia = Il
Il_angle = arctan(Il.imag/Il.real)
Ia_angle = Il_angle
print('''
Il = {:.2f} A ∠{:.1f}°
===================='''.format(abs(Il), Il_angle/pi *180))
In [6]:
PF = cos(Il_angle)
print('''
PF = {:.3f} lagging
=================='''.format(PF))
In [7]:
theta_R = arctan(X2 / (R2/s))
print('''
theta_R = {:.2f}°'''.format(theta_R/pi *180))
Therefore the rotor power factor is:
In [8]:
PF_R = cos(theta_R)
print('''PF_R = {:.3f} lagging
===================='''.format(PF_R))
In [9]:
fr = s*fse
print('''
fr = {:.1f} Hz
==========='''.format(fr))
In [10]:
Pscl = 3 * abs(Ia)**2 * R1
print('''
Pscl = {:.0f} W
============'''.format(Pscl))
The air gap power is:
$$P_{AG} = P_\text{in} - P_{SCL} = 3I^2_2\frac{R_2}{s} = 3I^2_A R_F$$As noted earlier $P_\text{core}$ losses are lumbed into the rotational losses on the rotor side.
In [11]:
Pag = 3 * abs(Ia)**2 * Zf.real
print('''
Pag = {:.2f} kW
============='''.format(Pag/1000))
In [12]:
Pconv = (1-s) * Pag
print('''
Pconv = {:.2f} kW
==============='''.format(Pconv/1000))
In [13]:
n_sync = 120*fse / p
w_sync = n_sync * (2*pi/60.0)
print('''
n_sync = {:.0f} r/min
w_sync = {:.1f} rad/s'''.format(n_sync, w_sync))
Therefore the induced torque in the motor is:
$$\tau_\text{ind} = \frac{P_{AG}}{\omega_\text{sync}}$$
In [14]:
tau_ind = Pag / w_sync
print('''
tau_ind = {:.1f} Nm
================='''.format(tau_ind))
In [15]:
Pout = Pconv - Pf_w - Pcore - Pmisc
print('Pout = {:.2f} kW'.format(Pout/1000))
The output speed is:
$$n_m = (1-s)n_\text{sync}$$
In [16]:
n_m = (1-s) * n_sync
print('n_m = {:.0f} r/min'.format(n_m))
Therefore the load torque is:
$$\tau_\text{load} = \frac{P_\text{out}}{\omega_m}$$
In [17]:
w_m = n_m * (2*pi/60.0)
tau_load = Pout / w_m
print('''
tau_load = {:.1f} Nm
=================='''.format(tau_load))
In [18]:
eta = Pout / (3*V_phase*abs(Ia)*cos(Ia_angle))
print('''
η = {:.1f} %
=========='''.format(eta*100))
In [19]:
print('n_m = {:.0f} r/min'.format(n_m))
The motor speed in radians per second is:
In [20]:
print('''
w_m = {:.1f} rad/s
================='''.format(w_m))
In [21]:
Pin = sqrt(3)* V * abs(Il) * PF
Prcl = 3 * abs(Ia)**2 * R2
The diagram can then be created:
In [22]:
# This demonstrates how to create a simple diagram by implicitly calling the
# Sankey.add() method and by appending finish() to the call to the class.
from matplotlib.sankey import Sankey
sankey = Sankey(unit='W', scale= 1/Pin, format='%.0f', margin=0.25)
sankey.add(flows=[Pin, -Pag, -Pscl],
labels=['$P_{in}=\sqrt{3}V_TI_LPF$', '$P_{AG}$', '$P_{scl}$'],
orientations=[ 0, 0, -1],
pathlengths=[0, 0.1, 0.6])
sankey.add(flows=[Pag, -Pconv, -Prcl],
labels=[None, '$P_{conv}$', '$P_{rcl}$'],
orientations=[ 0, 0, -1],
pathlengths=[0, 0.1, 0.5],
prior=0, connect=(1, 0))
sankey.add(flows=[Pconv, -Pout, -Pmisc, -Pf_w, -Pcore],
labels=[None,'$P_{out}$', '$P_{misc}$', '$P_{f&w}$', '$P_{core}$'],
orientations=[ 0, 0, -1, -1, -1,],
pathlengths=[0, 0.1, 0.1, 0.3, 0.45],
prior=1, connect=(1, 0))
sankey.finish()
title("Sankey diagram of the power-flow");