绘制感应电机矢量图¶
本示例显示了在静态模式下单相鼠笼式感应电机(SACM)旋转矢量图的构造。
简介¶
ADCZ 的矢量图说明了静态电机的主要磁通、电压和电流矢量之间的关系。在电机运行过程中,所有矢量在横截面上围绕转子旋转轴旋转,其模量和相移都会发生变化。
在本计算中,绘制的是稳定状态下电机 A 相的示意图(矢量长度和相位不变)。矢量的模量和相位是根据起重机冶金电机 MTK011-6 的护照数据在示例中计算的替换图的基础上计算得出的。
电机计算¶
根据 ADCP 的护照数据确定初始数据:
# Паспортные данные двигателя МТК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; # Коэффициенты максимального тока, пускового и максимального момента, момент инерции двигателя [кг·м²]
现在我们开始计算 ADCP 替代图的参数:
# Расчёт параметров схемы замещения
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₂); # Угол запаздывания тока ротора [рад] (к эдс ротора, предварительное значение)
为了进一步计算和构建,让我们开始电流和电压的复数表示。必须事先定义辅助函数。
辅助函数¶
通过以下功能,您可以简明扼要地准备以后的矢量图区域。
"""
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;
下一个函数结合了复向量的预处理指令--缩放和旋转,以及相对于上一个复向量的复向量构造。
"""
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;
绘制电流矢量图¶
让我们来定义电流的复矢量:
Ȯ = 0.0 + 0.0*im # Нуль-вектор в начале координат
İ₀ = I₀ + 0.0*im # Комплексный ток холостого хода. Активная составляющая принимается равной 0.0 [A]
İ₂ = I₂*exp((3π/2-ψ₂)*im) # Комплексный ток ротора [A]
İ₁ = İ₀ - İ₂; # Комплексный ток статора [A]
绘制电流的矢量图:
coordinateplane("Векторная диаграмма токов\n асинхронного двигателя", 20)
vectorplot(Ȯ, İ₀, :blue, "İ₀, [A]")
vectorplot(İ₀, -İ₂, :green, "-İ₂, [A]")
vectorplot(Ȯ, İ₁, :red, "İ₁, [A]")
vectorplot(Ȯ, İ₂, :magenta, "İ₂, [A]")
矢量图的总体视图以及矢量之间和矢量在平面上的相对位置与预期一致。下面我们开始指定矢量参数并绘制电压矢量图。
构建电压矢量图¶
让我们定义电压的复矢量和边:
Ż₁ = R₁ + X₁σ*im # Полное комплексное сопротивление цепи статора [В]
Ů₁_r = İ₁*R₁ # Активное падение напряжения в цепи статора [В]
Ů₁_x = İ₁*X₁σ*im # Реактивное падение напряжения в цепи статора [В]
Ů₁_z = İ₁*Ż₁ # Полное падение напряжения в цепи статора [В]
Ů₁ = U₁*im # Комплексное напряжение питания [В]
Ė₁ = Ė₂ = Ů₁_z - Ů₁; # Эдс статора и приведённая ротора [В]
让我们指定复矢量在平面中的位置和参数:
Ė₁ = Ė₂ = 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; # Приведённое реактивное падение напряжения в цепи ротора [В]
让我们构建 ADCP 电压矢量图:
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, [В]")
电压图也与预期参数相对应。最后,我们来构建在复平面上旋转的电流和电压的完整示意图。
构建旋转矢量图¶
让我们设置一下动画的旋转周期。
为了清晰起见,缩放当前矢量。
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)
需要注意的是,为了分析旋转情况,图中矢量的旋转频率降低了 250 倍(从 50 赫兹降至 1/5 赫兹)。
结论¶
通过脚本操作,我们获得了 ADCP 电流和电压在复平面上的旋转矢量图。本示例可能的进一步扩展包括:改进替代图和矢量的计算;绘制动态模式(负载调节、加速或制动)下的示意图;绘制对称和不对称三相示意图。
所用文献列表¶
1.Voldek A.I. Electric machines.高等技术院校学生教科书。- 第 3 版,修订版。- L.: Energia, 1978.- 832 p., ill. 2.Veshenevsky S.N. 《电力驱动中的电机特性》--第 6 版,修订本。- M.: Energia, 1977.- 431 p., ill.