Engee documentation
Notebook

Drawing a vector diagram of an induction motor

This example shows the construction of a rotating vector diagram of a squirrel cage induction motor (SACM) for one phase in static mode.

Introduction

The vector diagram of ADCZ illustrates the relationship of the main flux, voltage and current vectors of the motor in static. During motor operation, all vectors rotate in the cross-sectional plane around the rotor axis of rotation, and their moduli and phase shifts change.

In this calculation, a diagram is drawn for phase A of the motor in steady state (vector lengths and phases do not change). Moduli and phases of vectors are calculated on the basis of the substitution diagram calculated in the example according to the passport data of the crane-metallurgical motor MTK011-6.

Motor calculation

Let's determine the initial data based on the passport data of the ADCP under consideration:

In [ ]:
# Паспортные данные двигателя МТК011-6
Pₙ = 1400; Uₙ = 380; f₁ = 50;           # Номинальная мощность [Вт], линейное напряжение [В], частота [В]
nₙ = 870; p = 3; η = 0.72;              # Номинальная частота вращения [об/мин], число пар полюсов, КПД
cosϕ = 0.69; Iₙ = 4.8; I₀ = 3.2;        # Номинальный коэффициент мощности, номинальный ток [А], ток холостого хода [А]
ki = 3; mₚ = 2.8; mₘ = 2.8; J = 0.02;   # Коэффициенты максимального тока, пускового и максимального момента, момент инерции двигателя [кг·м²]

Now let's proceed to the calculation of the parameters of the ADCP substitution diagram:

In [ ]:
# Расчёт параметров схемы замещения
U₁ = Uₙ/sqrt(3);                           # Номинальное фазное напряжение статора [В]
n₀ = 60*f₁/p;                             # Синхронная частота вращения [об/мин]
sₙ = (n₀-nₙ)/n₀; sₖ = sₙ*(mₘ+sqrt(mₘ^2-1)); # Номинальное и критическое скольжение
ω₀ = 2π*f₁/p; ωₙ = π*nₙ/30;                # Синхронная и номинальная углова скорость ротора [рад/с]
Mₙ = Pₙ/ωₙ; Mₘ = Mₙ*mₘ; Mₚ = Mₙ*mₚ;           # Номинальный, максимальный и пусковой момент [Н·м]
pₘ = 0.05*Pₙ;                              # Механические потери (5% от Pₙ) [Вт]
C = 0.8093072740472634;                   # Конструктивный коэффициент (предварительный)

R₂ = 1/3*(Pₙ+pₘ)/(Iₙ^2*(1-sₙ)/sₙ);              # Приведённое активное сопротивление роторной обмотки [Ом]
R₁ = U₁*cosϕ*(1-η)/Iₙ - C^2*R₂ - pₘ/(3*Iₙ^2);  # Активное сопротивление статорной обмотки [Ом]

L₁σ = L₂σ = U₁/(4π*f₁*(1+C^2)*ki*Iₙ);          # Индуктивности рассеивания статора и приведённое ротора [Гн]
L₁ = L₂ = U₁/(2π*f₁*Iₙ*sqrt(1-cosϕ^2)-2/3*(2π*f₁*Mₘ*sₙ)/(p*U₁*sₖ)); # Индуктивности статора и приведённое ротора [Гн]
Lm = L₁ - L₁σ;                                 # Индуктивность магнитной цепи [Гн]

C = 1 + L₁σ/Lm                             # Конструктивный коэффициент (уточнённый)

X₁σ = 2π*f₁*L₁σ;    X₂σ = 2π*f₁*L₂σ        # Реактивные сопротивления рассеивания статора и приведённое ротора [Ом]

I₂ = U₁/hypot(R₁+R₂*(1+(1-sₙ)/sₙ), X₁σ+X₂σ) # Ток ротора [А] (предварительное значение)
ψ₂ = atan(X₂σ*sₙ/R₂);                       # Угол запаздывания тока ротора [рад] (к эдс ротора, предварительное значение) 

For further calculations and construction, let us proceed to the complex representation of currents and voltages. The auxiliary functions must be defined beforehand.

Auxiliary functions

The following function allows you to concisely prepare the vector diagram area later on.

In [ ]:
"""
    coordinateplane(заголовок::String, длина_оси)

Функция для построения координатный осей.
Plots, бэкенд GR.
Получает значение атрибута title и длину оси (X или Y)
Масштаб осей одинаков, подписи графиков - вверху слева
"""
function coordinateplane(заголовок::String, длина_оси)
    gr()
    plot(size=(500, 500), legend=:topleft, aspect_ratio=:equal,
        xlabel="Ось X", ylabel="Ось Y",
        title=заголовок, showaxis = false)
    quiver!([-длина_оси/2], [0], quiver=([длина_оси], [0]), color=:grey, width = 2) # Ось X
    quiver!([0], [-длина_оси/2], quiver=([0], [длина_оси]), color=:grey, width = 2) # Ось Y
end;

The next function combines instructions for preprocessing of complex vectors - scaling and rotation, as well as construction of a complex vector relative to the previous one.

In [ ]:
"""
    vectorplot(начальный::ComplexF64, результирующий::ComplexF64,
               цвет::Symbol=:black, лэйбл::String="")

Функция для построения результирующего вектора, исходящего из начального.
Plots, бэкенд GR.
Получает комплексные значения начального и результирующего векторов, атрибуты color и label результирующего.
Атрибуты поворот и множитель используются для вращения результирующего вектора на заданный угол [рад] и масштабирования соответственно.
Перед использованием рекомендуется выполнить coordinateplane().
"""
function vectorplot(начальный::ComplexF64, результирующий::ComplexF64, цвет::Symbol=:black, лэйбл::String="", поворот=0.0, множитель=1.0)
    начальный = начальный*множитель*exp(поворот*im)             # Поворот и масштабирование
    результирующий = результирующий*множитель*exp(поворот*im)   # Поворот и масштабирование
    Plots.quiver!([real(начальный)], [imag(начальный)], quiver=([real(результирующий)], [imag(результирующий)]), color=цвет, label=лэйбл)
end;

Drawing vector diagram of currents

Let's define the complex vectors of currents:

In [ ]:
Ȯ = 0.0 + 0.0*im                # Нуль-вектор в начале координат
İ₀ = I₀ + 0.0*im                # Комплексный ток холостого хода. Активная составляющая принимается равной 0.0 [A]
İ₂ = I₂*exp((3π/2-ψ₂)*im)       # Комплексный ток ротора [A]
İ₁ = İ₀ - İ₂;                   # Комплексный ток статора [A]

Draw the vector diagram of the currents:

In [ ]:
coordinateplane("Векторная диаграмма токов\n асинхронного двигателя", 20)

vectorplot(Ȯ,   İ₀,     :blue,     "İ₀, [A]")
vectorplot(İ₀,  -İ₂,    :green,    "-İ₂, [A]")
vectorplot(Ȯ,   İ₁,     :red,      "İ₁, [A]")
vectorplot(Ȯ,   İ₂,     :magenta,  "İ₂, [A]")
Out[0]:

The general view of the diagram, as well as the location of vectors relative to each other and in the plane correspond to expectations. Let's proceed to specification of vector parameters and construction of vector diagram of voltages.

Construction of the vector diagram of voltages

Let us define the complex vectors of voltages and eds:

In [ ]:
Ż₁ = R₁ + X₁σ*im        # Полное комплексное сопротивление цепи статора [В]
Ů₁_r = İ₁*R₁            # Активное падение напряжения в цепи статора [В]
Ů₁_x = İ₁*X₁σ*im        # Реактивное падение напряжения в цепи статора [В]
Ů₁_z = İ₁*Ż₁            # Полное падение напряжения в цепи статора [В]

Ů₁ = U₁*im              # Комплексное напряжение питания [В]
Ė₁ = Ė₂ = Ů₁_z - Ů₁;    # Эдс статора и приведённая ротора [В]

Let us specify the location in the plane and the parameters of the complex vectors:

In [ ]:
Ė₁ = Ė₂ = abs(Ė₁)*exp(-π/2*im)     # Эдс статора и приведённая ротора [В] (отложено вдоль комплексной оси)
Ů₁ = -Ė₁ + Ů₁_z                    # Напряжение питания [В] (с учётом поворота вектора эдс)     

I₂ = abs(Ė₂)/hypot((R₂/sₙ), X₂σ)    # Приведённый модуль тока ротора [А] (уточнённое значение)
ψ₂ = atan(X₂σ*sₙ/R₂)                # Угол запаздывания тока ротора [рад] (уточнённое значение)
İ₂ = I₂*exp((3π/2-ψ₂)*im)          # Приведённый комплексный ток ротора [А]

İ₁ = İ₀ - İ₂                       # Комплексный ток статора [A] (уточнённый)

Ů₂_r = İ₂*(R₂ + R₂*(1-sₙ)/sₙ)       # Приведённое активное падение напряжения в цепи ротора [В]
Ů₂_x = İ₂*X₂σ*im;                  # Приведённое реактивное падение напряжения в цепи ротора [В]

Let's build the vector diagram of ADCP voltages:

In [ ]:
coordinateplane("Векторная диаграмма напряжений\n асинхронного двигателя", 500)

vectorplot(Ȯ,        -Ė₁,   :green,   "-Ė₁, [В]")
vectorplot(-Ė₁,      Ů₁_r,  :blue,    "Ů₁_r, [В]")
vectorplot(-Ė₁+Ů₁_r, Ů₁_x,  :orange,  "Ů₁_x, [В]")
vectorplot(-Ė₁,      Ů₁_z,  :purple,  "Ů₁_z, [В]")
vectorplot(Ȯ,        Ů₁,    :red,     "Ů₁, [В]")
vectorplot(Ȯ,        Ė₁,    :magenta, "Ė₁, [В]")
vectorplot(Ȯ,        Ů₂_r,  :blue,    "Ů₂_r, [В]")
vectorplot(Ů₂_r,     Ů₂_x,  :orange,  "Ů₂_x, [В]")
Out[0]:

The voltage diagram also corresponds to the expected parameters. Finally, let's construct the complete diagram of currents and voltages rotating in the complex plane.

Construction of a rotating vector diagram

Let's set the rotation cycle that will be animated.
Scale the current vectors for clarity.

In [ ]:
RotateDiagram = @animate for δ in range(0.0, step=2π/100, length = 100)
    coordinateplane("Векторная диаграмма\n асинхронного двигателя", 500)

    vectorplot(Ȯ,  İ₀,  :blue,    "İ₀·15, [A]",  δ, 15)
    vectorplot(İ₀, -İ₂, :green,   "-İ₂·15, [A]", δ, 15)
    vectorplot(Ȯ,  İ₁,  :red,     "İ₁·15, [A]",  δ, 15)
    vectorplot(Ȯ,  İ₂,  :magenta, "İ₂·15, [A]",  δ, 15)

    vectorplot(Ȯ,           -Ė₁,  :green,   "-Ė₁, [В]",   δ)
    vectorplot(-Ė₁,         Ů₁_r, :blue,    "Ů₁_r, [В]",  δ)
    vectorplot((-Ė₁+Ů₁_r),  Ů₁_x, :orange,  "Ů₁_x, [В]",  δ)
    vectorplot(-Ė₁,         Ů₁_z, :purple,  "Ů₁_z, [В]",  δ)
    vectorplot(Ȯ,           Ů₁,   :red,     "Ů₁, [В]",    δ)
    vectorplot(Ȯ,           Ė₁,   :magenta, "Ė₁, [В]",    δ)
    vectorplot(Ȯ,           Ů₂_r, :blue,    "Ů₂_r, [В]",  δ)
    vectorplot(Ů₂_r,        Ů₂_x, :orange,  "Ů₂_x, [В]",  δ)
end

gif(RotateDiagram, "RotateDiagram.gif", fps = 20)
[ Info: Saved animation to /user/alexevs/_new/induction_motor_vector_diagram/RotateDiagram.gif
Out[0]:
No description has been provided for this image

It should be noted that the rotation frequency of the vectors in the diagram has been reduced 250 times (from 50 to 1/5 Hz) in order to be able to analyse the rotation.

Conclusion

As a result of the script operation, we have obtained a rotating vector diagram of ADCP currents and voltages rotating in the complex plane. Further possible extensions of this example are to refine the calculation of the substitution diagram and vectors, to build a diagram in dynamic mode (load regulation, acceleration or braking), to build a diagram for three phases - symmetrical and asymmetrical.

List of used literature

  1. Voldek A.I. Electric machines. Textbook for students of higher technical institutions. - 3rd edition, revision. - L.: Energia, 1978. - 832 p., ill.
  2. Veshenevsky S.N. Characteristics of Motors in Electric Drive - 6th edition, revised. - M.: Energia, 1977. - 431 p., ill.