Engee documentation
Notebook

Construction of a vector diagram of an asynchronous motor

This example shows the construction of a rotating vector diagram of an asynchronous motor with a closed-loop rotor (ADKZ) for one phase in static mode.

Introduction

The vector diagram of the ADKZ illustrates the relationship of the main flow vectors, motor voltages and currents in statics. During engine operation, all vectors rotate in the cross-sectional plane around the axis of rotation of the rotor, while their modules and phase shifts change.

In this calculation, a diagram is constructed for the phase A of the engine in steady state (the lengths and phases of the vectors do not change). The modules and phases of the vectors are calculated based on the substitution scheme calculated in the example according to the passport data of the MTK011-6 crane-metallurgical engine.

Engine calculation

We will determine the initial data based on the passport data of the ADKZ in question.:

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 move on to calculating the parameters of the ADKZ replacement scheme.:

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, we turn to the complex representation of currents and voltages. Auxiliary functions must first be defined.

Auxiliary functions

The following function allows you to concisely prepare the area of the vector diagram in the future.

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 following function combines instructions for preprocessing complex vectors - scaling and rotation, as well as constructing 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;

Construction of a vector diagram of currents

Let's define complex vectors of currents:

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

Let's construct a 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 appearance of the diagram, as well as the location of the vectors relative to each other and on the plane, correspond to expectations. Let's proceed to clarifying the parameters of the vectors and constructing a vector stress diagram.

Construction of a vector stress diagram

Let's define the complex voltage and EMF vectors:

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

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

Let's specify the location on 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 construct a vector diagram of ADKZ stresses:

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, we will construct a complete diagram of currents and voltages rotating in a complex plane.

Building a rotating vector diagram

Setting the rotation cycle that will be animated.
We will 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 to allow rotation analysis by 250 times (from 50 to 1/5 Hz).

Conclusion

As a result of the script, we have obtained a rotating vector diagram of ADKZ currents and voltages rotating in a complex plane. Further possible extensions of this example include clarifying the calculation of the substitution scheme and vectors, constructing a diagram in dynamic mode (load regulation, acceleration or deceleration), and constructing a diagram for three phases - symmetrical and asymmetrical.

List of used literature

  1. Voldek A.I. Electric machines. Textbook for students of higher engineering institutions. - 3rd ed., reprint. - L.: Energiya, 1978. - 832 p., ill.
  2. Vyoshenevsky S.N. Characteristics of motors in an electric drive - 6th ed., ispr. - M.: Energy, 1977. - 431 p., ill.