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

Регулирование скорости упрощенного синхронного генератора

В данном примере продемонстрировано поведение трехфазного четырехпроводного упрощенного синхронного генератора переменного тока при коммутации нагрузки в сети при:

  • Наличии регулятора скорости вращения

  • Постоянном крутящем моменте — без регулятора скорости

Общий вид модели

В основе модели лежит библиотечный блок Simplified Synchronous Machine. Упрощенный синхронный генератор мощностью 2000 кВА (1600 кВт с учетом коэффициента мощности 0.8), 600 В, 1500 об/мин подключен к активно-индуктивной нагрузке мощностью 1600 кВт и 400 квар. Нейтральная точка обмотки статора машины заземлена. Внутреннее сопротивление генератора (Zg = 0.0036 + j0.16 о.е.) представляет собой сопротивление обмотки якоря Ra и переходное реактивное сопротивление X'd. Постоянная инерции генератора составляет H = 0.6 с, что соответствует J = 67.5 кг*м^2.

simplified_synchronous_machine_speed_regulation_1722511208455.png

В модели предусмотрено переключение между постоянным моментом Тмех и ПИ-регулятором скорости. Регулирование скорости моделируется с помощью математических направленных блоков, реализующих ПИ-регулятор. Синхронная машина имеет постоянное напряжение на обмотке возбуждения.
Трехфазный выключатель используется для отключения активной нагрузки мощностью 800 кВт. Первоначально выключатель замкнут и размыкается в момент времени t = 1 с, что приводит к сбросу активной нагрузки на 50%.

Реализация запуска модели с помощью программного управления:

Загрузка нужных библиотек для импорта зависимости тока от времени:

In [ ]:
using DataFrames
gr()
Out[0]:
Plots.GRBackend()

Запуск модели без регулирования скорости

Убедитесь, что ручной переключатель Manual Switch в положении приема сигнала от блока Constant - Tмех (о.е.). По умолчанию модель уже находиться в таком положении.
Загрузка модели:

In [ ]:
model_name = "simplified_synchronous_machine_speed_regulation"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");

Запуск загруженной модели:

In [ ]:
results = engee.run(model_name)
Out[0]:
Dict{String, DataFrame} with 10 entries:
  "Pэл, о.е."  => 40001×2 DataFrame…
  "Va, В"      => 40001×2 DataFrame…
  "Тмех, о.е." => 40001×2 DataFrame…
  "Tэл, о.е."  => 40001×2 DataFrame…
  "Vc, В"      => 40001×2 DataFrame…
  "Ib, А"      => 40001×2 DataFrame…
  "Vb, В"      => 40001×2 DataFrame…
  "f, о.е."    => 40001×2 DataFrame…
  "Ia, А"      => 40001×2 DataFrame…
  "Ic, А"      => 40001×2 DataFrame

Результаты моделирования

Импорт результатов моделирования:

In [ ]:
simulation_time = results["Ia, А"].time;
ia = results["Ia, А"].value;
ib = results["Ia, А"].value;
ic = results["Ia, А"].value;
f = results["f, о.е."].value;
Pel = results["Pэл, о.е."].value;
Tel = results["Tэл, о.е."].value;
Tmec = results["Тмех, о.е."].value;

Отрисовка результатов:

In [ ]:
plot(simulation_time ,ia, legend=true, label="ia")
plot!(simulation_time ,ib, legend=true, label="ib")
plot!(simulation_time ,ic, legend=true, label="ic")
plot!(title = "Мгновенное значение тока статора", ylabel = "Ток, А", xlabel="Время, c")
Out[0]: