Документация Engee
Notebook

Устройство плавного пуска двигателя с вентиляторной нагрузкой

Введение

Устройство плавного пуска (сокр. - УПП, англ. - softstarter) применяют для управляемого запуска и, где это требуется, останова асинхронного двигателя. Типичные агрегаты – вентиляторы, насосы, компрессоры, конвейеры, дробилки и мельницы. УПП постепенно повышает напряжение двигателя, снижая пусковой ток и механические удары в передаче и нагрузке. Для вентилятора с большой инерцией это помогает уменьшить нагрузку на ремни, подшипники и сеть при разгоне [1].

Преимущества УПП – настройка времени и начального напряжения пуска, уменьшение сетевых просадок и механических напряжений, а после замыкания bypass (шунтирования УПП) – меньшие потери в силовой части. Ограничения – при пониженном напряжении уменьшается и доступный момент; тяжёлая нагрузка может не разогнаться. УПП не обеспечивает длительное регулирование скорости, а тиристорное управление создаёт гармоники во время пуска. Уставки и тепловую стойкость следует проверять для конкретного агрегата и частоты пусков [1].

В примере реализуется расчёт и проверка модели softstarter.engee: разгон асинхронного двигателя с механической номинальной мощностью 15 кВт от трёхфазного тиристорного УПП, затем шунтирование тиристоров контактором bypass.

Теоретическая часть

В каждой фазе УПП пара встречно-параллельных тиристоров меняет действующее напряжение двигателя посредством угла отпирания . На старте большой угол ограничивает напряжение; уменьшение повышает его. При прочих равных пусковой электромагнитный момент приближённо пропорционален квадрату напряжения. Это приближение полезно для настройки, но не заменяет расчёт переходного процесса с гармониками и инерцией [1]. Зависимости (1) объясняют, почему при снижении напряжения нужно проверять достаточность пускового момента.

После разгона тиристоры почти полностью открыты. Контактор, включённый параллельно УПП, принимает ток нагрузки и уменьшает потери в силовом регуляторе. Для оценки переключения сравниваются одинаковые временные окна до и после замыкания, местный максимум тока и скорость [1, 5].

Исходные данные и расчёт параметров

Для воспроизводимого примера принят двигатель АИР160S2 по каталогу [2]. Паспортная мощность 15 кВт- это механическая мощность . Номинальная полная электрическая мощность для блока машины рассчитывается отдельно. Инерция вентилятора без паспорта нагрузки является допущением. Исходные данные сведены в таблицу 1.

Полная мощность и номинальный момент определяются формулами (2) и (3).

Таблица 1 - Паспортные данные и допущения

Величина Значение Основание
15 кВт паспорт двигателя [2]
, 380 В, 50 Гц паспорт [2]
, 2930 об/мин, 1 пара полюсов паспорт [2]
, 0.894; 0.89 паспорт [2]
, 28.6 А; 7.5 паспорт [2]
, 2.2; 2.3 паспорт [2]
0.05 кг·м² паспорт [2]
0.15 кг·м² принято для примера
допущение расчётной схемы [3]

Порядок вычислений повторяет пример Engee [3]: фазное напряжение и скольжение → номинальный и максимальный моменты → сопротивления ветвей схемы замещения → индуктивности рассеяния и намагничивания → пять уточнений коэффициента . Альтернативная методика не требуется. Рассчитанные параметры приведены в таблице 2.

Таблица 2 - Параметры блоков после расчёта

Параметр Значение Комментарий
,S_rated машины и инерции 18 852.27 ВА полная электрическая мощность
V_rated, f_rated, N_pole_pairs 380 В; 50 Гц; 1 RMS линейного напряжения
, 0.260; 0,153 Ом по схеме замещения [3]
0.252 Ом симметричное рассеяние
16.674 Ом ветвь намагничивания
0.252 Ом принято равным при симметричной сети
0.2 кг·м² инерция на общем валу
0.526 с на базе
51.251 Н·м момент вентилятора при

Нагрузка задаёт соотношение ; знак означает противодействие вращению. Коэффициент выбран так, чтобы при паспортных 2930 об/мин вентилятор потреблял 15 кВт.

В блоке «Инерция электрической машины» заданы кг·м², полная мощность , 50 Гц и одна пара полюсов.

Параметр демпфирования соответствует примерно 0.72 кВт механических потерь около рабочей точки [4].

Коэффициент нагрузки и инерционная постоянная определяются формулой (4).

Следующая ячейка повторяет вычисления в коде. Её результат можно сопоставить с таблицей 2; она не записывает параметры обратно в модель.

In [ ]:
function ssp_motor_and_load()
    # Паспорт: P2 – мощность на валу.
    P2 = 15_000.0; Uline = 380.0; f = 50.0; nN = 2930.0
    eta = 0.894; cosphi = 0.89; IN = 28.6
    ki = 7.5; mP = 2.2; mM = 2.3; polepairs = 1
    # Фазное напряжение, скольжение и моменты.
    Uphase = Uline / sqrt(3)
    n0 = 60f / polepairs
    sN = (n0 - nN) / n0
    sK = sN * (mM + sqrt(mM^2 - 1))
    omega0 = 2pi*f / polepairs
    omegaN = pi*nN / 30
    MN = P2 / omegaN
    MP = mP*MN
    MM = mM*MN
    Pmechloss = 0.05P2
    # Сопротивление ротора с учётом механических потерь.
    Rr = (P2 + Pmechloss)*sN / (3IN^2*(1-sN))
    C = 1.02
    Rs = Lsigma = Lm = 0.0
    # Пять уточнений коэффициента C в схеме замещения.
    for _ in 1:5
        Rs = Uphase*cosphi*(1-eta)/IN - C^2*Rr - Pmechloss/(3IN^2)
        Lsigma = Uphase/(4pi*f*(1+C^2)*ki*IN)
        L1 = Uphase/(2pi*f*IN*sqrt(1-cosphi^2) - (2/3)*(2pi*f*MM*sN)/(polepairs*Uphase*sK))
        Lm = L1 - Lsigma
        C = 1 + Lsigma/Lm
    end
    # Полная электрическая мощность и инерция нагрузки.
    S = P2/(eta*cosphi)
    Jrotor = 0.05
    Jfan_assumed = 0.15
    J = Jrotor + Jfan_assumed
    Kfan = MN/(omegaN/omega0)^2
    H = J*omega0^2/(2S)
    (; S, Uphase, n0, sN, sK, MN, MP, MM, Rs, Rr,
       Xls=2pi*f*Lsigma, Xlr=2pi*f*Lsigma, Xm=2pi*f*Lm,
       C, J, Kfan, H)
end
ssp_motor_and_load()
Out[0]:
(S = 18852.273584194252, Uphase = 219.3931022920578, n0 = 3000.0, sN = 0.023333333333333334, sK = 0.10199540208015195, MN = 48.887183884882525, MP = 107.55180454674156, MM = 112.4405229352298, Rs = 0.2600435132159712, Rr = 0.15334077602866833, Xls = 0.25186946799114457, Xlr = 0.25186946799114457, Xm = 16.673597292505725, C = 1.0151058864846372, J = 0.2, Kfan = 51.250993600850656, H = 0.523523295851384)

Логика системы управления

Блок GateLogic формирует синхронные импульсы открытия шести тиристоров, используя время, частоту сети и заданный угол . Угол линейно убывает от (150°) до 0.02 рад за 10 с.

После достижения скорости 0.97 о.е. и истечения 10.2 с сбрасывается сигнал контактора:

  • 1 означает разомкнутый bypass,
  • 0 – замкнутый [5].

Последовательность состояний bypass приведена в таблице 3.

Таблица 3 - Последовательность управления

Участок Угол тиристоров Условие bypass
с линейный спад 150° → 1.15° разомкнут
с 0.02 рад выдержка времени
с 0.02 рад замыкание при о.е.

Логика с защёлкой удерживает bypass в замкнутом состоянии после срабатывания.

Пуск управляется по заданной временной программе угла. Активной обратной связи по току и тепловой защиты в этой логике нет; поэтому ограничение пускового тока требуется оценивать по результату прогона.

Описание модели Engee

Модель примера показана на рисунке 1.

image.png

Рисунок 1 - Модель Engee процесса разгона АДКЗР с вентиляторной нагрузкой с использованием УПП

Физические блоки и нагрузка

Физическая часть модели состоит из следующих элементов.

Трёхфазная сеть 380 В, 50 Гц питает УПП Softstarter с шестью встречно-параллельными тиристорами и RC-цепями. Трёхполюсный Bypass Contactors подключён параллельно регулятору. Асинхронная машина ASM соединена с блоком «Инерция электрической машины» и управляемым источником момента вентилятора. Фазные источники имеют амплитуду 310.269 В и сдвиги 120°. Подсистема с именем Splitters электрически реализует звезду с общей нейтралью.

Система управления модели

Система упарвления состоит из следующих частей.

Блок Engee Function - GateLogic, маршрутизация импульсов и логика сравнения скорости с порогом 0.97 о.е. формируют пуск двигателя и bypass.

Блок Clock и заданный порог времени 10.2 с запрещают раннее шунтирование УПП.

Блоки NOR и Set-Reset Flip-Flop удерживают состояние контактора.

Измерительные блоки машины фиксируют скорость, момент, клеммный ток, активную мощность и коэффициент мощности для записи результатов [5, 6].

Моделирование и сбор данных

Ячейка ниже загружает существующий файл модели, если он ещё не открыт, затем запускает engee.run. Она не вызывает engee.save и не меняет параметры или блоки. После прогона проверяется наличие нужных ключей в simout. Единственный путь получения временных рядов в этом скрипте – collect(simout[ключ]), как в примере программного управления Engee [7].

В simout используются записи softstarter/speed, softstarter/current, softstarter/Set-Reset Flip-Flop.Q, softstarter/GateLogic.alpha, softstarter/P_measure.1, softstarter/PF_measure.1. Ток измерения машины представлен в относительных единицах.

Модель рассчитана до 13 с фиксированным шагом 0.25 мс, то есть имеет 52 001 отсчёт на сигнал.

In [ ]:
# Укажите каталог, где лежат скрипт и существующая модель.
ssp_project_dir = @__DIR__
model_name = "softstarter"
ssp_model_path = joinpath(ssp_project_dir,"$model_name.engee")
if !any(m -> string(m.name) == model_name, engee.get_all_models())
    engee.load(ssp_model_path)
end
# Расчёт модели создаёт новый simout; файл модели не сохраняется.
engee.run(model_name)
# Проверяем, что записаны все сигналы для графиков и bypass.
ssp_required = ["$model_name/speed","$model_name/current",
    "$model_name/Set-Reset Flip-Flop.Q","$model_name/firing_angle",
    "$model_name/power","$model_name/pf"]
ssp_missing = setdiff(ssp_required,collect(keys(simout)))
isempty(ssp_missing) || error("Нет сигналов в simout: " * join(ssp_missing,", "))
Dict(k => size(collect(simout[k]),1) for k in ssp_required)
Out[0]:
Dict{String, Int64} with 6 entries:
  "softstarter/Set-Reset Flip-Flop.Q" => 52001
  "softstarter/firing_angle"          => 52001
  "softstarter/power"                 => 52001
  "softstarter/speed"                 => 52001
  "softstarter/pf"                    => 52001
  "softstarter/current"               => 52001

Обсуждение результатов

Код в ячейках ниже строит графики: скорость за всё время пуска и ток в относительных единицах. Момент шунтирования определяется по фронту сигнала контактора в simout.

In [ ]:
using Statistics, Plots
# Все временные ряды считываем только из результата последнего прогона simout.
ssp_speed_data = collect(simout["$model_name/speed"])
ssp_current_data = collect(simout["$model_name/current"])
ssp_bypass_data = collect(simout["$model_name/Set-Reset Flip-Flop.Q"])
ssp_power_data = collect(simout["$model_name/power"])
ssp_pf_data = collect(simout["$model_name/pf"])
ssp_t = Float64.(ssp_speed_data.time)
ssp_n = Float64.(ssp_speed_data.value)
ssp_i = Float64.(ssp_current_data.value)
ssp_b = Bool.(ssp_bypass_data.value)
# Фронт 1 → 0 означает замыкание обходного контактора.
ssp_edge = findfirst(ssp_b[1:end-1] .& .!ssp_b[2:end])
ssp_edge === nothing && error("Не найдено замыкание bypass")
ssp_tb = ssp_t[ssp_edge+1]
ssp_before = (ssp_t .>= ssp_tb-0.2) .& (ssp_t .< ssp_tb)
ssp_after = (ssp_t .>= ssp_tb) .& (ssp_t .< ssp_tb+0.2)
ssp_steady = ssp_t .>= 12.0
# Сравниваем одинаковые окна по 0,2 с до и после bypass.
ssp_stats = (; bypass_s=ssp_tb, speed_pu=mean(ssp_n[ssp_steady]),
    current_pu=mean(ssp_i[ssp_steady]),
    current_before_pu=mean(ssp_i[ssp_before]),
    current_after_pu=mean(ssp_i[ssp_after]),
    current_peak_before_pu=maximum(ssp_i[ssp_before]),
    current_peak_after_pu=maximum(ssp_i[ssp_after]),
    current_peak_start_pu=maximum(ssp_i),
    peak_change_percent=100*(maximum(ssp_i[ssp_after])/maximum(ssp_i[ssp_before])-1),
    mean_change_percent=100*(mean(ssp_i[ssp_after])/mean(ssp_i[ssp_before])-1),
    active_power_kw=mean(ssp_power_data.value[ssp_steady])*ssp_motor_and_load().S/1000,
    pf=mean(ssp_pf_data.value[ssp_steady]))
Out[0]:
(bypass_s = 10.2, speed_pu = 0.980984030712573, current_pu = 1.7613970660179428, current_before_pu = 1.7644524225790483, current_after_pu = 1.764199537878836, current_peak_before_pu = 1.7673113466972183, current_peak_after_pu = 1.8134326927157334, current_peak_start_pu = 8.361612357157105, peak_change_percent = 2.6096899170996224, mean_change_percent = -0.014332191504640157, active_power_kw = 16.896113267188117, pf = 0.8824429731651577)
In [ ]:
# Две панели графиков: скорость и ток.
gr(format=:png)
ssp_p1 = plot(ssp_t,ssp_n; xlabel="Время, с", ylabel="Скорость, о.е.", label="Ротор", lw=1.5)
vline!(ssp_p1,[ssp_tb]; label="Bypass", ls=:dash)
ssp_p2 = plot(ssp_t,ssp_i; xlabel="Время, с", ylabel="Ток, о.е.", label="Terminal current", lw=1.4)
vline!(ssp_p2,[ssp_tb]; label="Bypass", ls=:dash)
ssp_zoom = (ssp_t .>= ssp_tb-0.2) .& (ssp_t .<= ssp_tb+0.2)
ssp_p3 = plot(ssp_t[ssp_zoom],ssp_i[ssp_zoom];
    xlabel="Время, с", ylabel="Ток, о.е.", label="±0,2 с", lw=1.5)
vline!(ssp_p3,[ssp_tb]; label="Bypass", ls=:dash)
ssp_fig = plot(ssp_p1,ssp_p2, ssp_p3; layout=(3,1), size=(1000,900));

# следующая строка сохраняет график в png
savefig(ssp_fig,joinpath(ssp_project_dir,"softstarter_script_results.png"))
# ssp_fig
Out[0]:
"/user/work/_dev/maxim-sidorov2/soft_starter_script_debug/softstarter_script_results.png"

Построенные графики - на рисунке 2.

softstarter_script_results.png

Рисунок 2 - Разгон, ток двигателя и переключение bypass в контрольном прогоне

При контрольном прогоне скорость после установления составила 0.981 о.е., или 2942.95 об/мин.

Средний сигнал клеммного тока за 12–13 с составил 1.761 о.е.;

пик этого сигнала на пуске – 8.303 о.е. около 2.741 с.

Входная активная мощность двигателя составила 16.896 кВт, коэффициент мощности – 0.882.

По закону нагрузки мощность на валу вентилятора около 15.2 кВт, поскольку рабочая скорость немного превышает паспортные 2930 об/мин. Показатели сведены в таблице 4.

Таблица 4 - Контрольные показатели из simout

Показатель Значение
Время замыкания bypass 10.2 с
Скорость после установления 0.981 о.е.
Средний клеммный ток при 12–13 с 1.761 о.е.
Максимум клеммного тока за пуск 8.303 о.е.
Активная мощность после установления 16.896 кВт
Коэффициент мощности после установления 0.882

Оценка точки bypass (шунтирования УПП)

Выведем график тока в точке шунтирования УПП:

In [ ]:
ssp_zoom = (ssp_t .>= ssp_tb-0.2) .& (ssp_t .<= ssp_tb+0.2)
ssp_p3 = plot(ssp_t[ssp_zoom],ssp_i[ssp_zoom];
    xlabel="Время, с", ylabel="Ток, о.е.", label="±0,2 с", lw=1.5)
vline!(ssp_p3,[ssp_tb]; label="Bypass", ls=:dash)
Out[0]:
No description has been provided for this image

В интервале 10.0 – 10.2 с средний клеммный ток равен 1.764 о.е., а максимум - 1.768 о.е.

В интервале 10.2 – 10.4 с средний ток 1.764 о.е., максимум - 1.812 о.е.

После переключения среднее изменилось на −0.016%, локальный максимум вырос на 2.53%.
Краткий пик виден, но устойчивого увеличения тока нет.

Минимальная скорость до и после переключения 0.981 о.е.

Такой малый провал не нарушает разгон. Относительные изменения получены по формуле (5).

Практические рекомендации и развитие

  1. Подставить фактическую приведённую инерцию вентилятора вместо принятого кг·м² и проверить характеристику по данным конкретного агрегата.
  2. При подборе УПП проверить допустимый ток, число пусков в час и тепловую нагрузку тиристоров; в этой модели нет активного ограничения тока. Для вентилятора ABB приводит ориентиры по времени разгона и уставке ограничения тока [1].
  3. Для проверки сети добавить достоверный импеданс питающего трансформатора и кабеля, затем повторить пуск при разных напряжениях и моментах сопротивления.
  4. Для детального bypass регистрировать в фазные токи и напряжения на тиристорах и контакторе, оценивать согласование фаз и коммутационные пики.
  5. Скрипт можно копировать вместе с моделью для нового двигателя: изменить путь проекта и паспортные данные, пересчитать параметры модели, затем прогнать и сравнить метрики. Развить его можно в серию параметрических прогонов и автоматическую таблицу сравнений, сохраняя эталонную модель отдельно.

Использованные источники

  1. ABB. Softstarter Handbook, 1SFC132060M0201 (2010). Ссылка.
  2. Насосэлпром. Техническая документация АИР160S2. Ссылка.
  3. Проект "Модель асинхронного двигателя". Сообщество Engee.
  4. Блок "Инерция электрической машины". Документация Engee.
  5. Блок "Трёхфазный выключатель и управляющий сигнал". Документация Engee.
  6. Блок "Измерение величин асинхронной машины". Документация Engee.
  7. Блок "Программное управление моделированием и simout". Документация Engee.
  8. Блок "Параметры блока асинхронной машины". Документация Engee.