Сообщество Engee

Моделирование упрощенного синхронного генератора

Автор
avatar-daniil_timofeevdaniil_timofeev
Соавторы
avatar-gladkovgladkov
Notebook

Модель энергосистемы c упрощенным синхронным генератором

В этом примере мы рассмотрим синхронный генератор (модель power_ssm.engee) P=20 кВт U= 24кВ, на шины которого подключена базовая нагрузка (P= 10кВт и Q=100 Вар) и коммутируемая нагрузка (P=10 кВт и Q=100 Вар) в момент времени 0.1 (модель power_ssm.engee).

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

Pkg.add(["Statistics"])
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`
using Plots
using DataFrames
using Statistics
gr();

Загрузка модели:

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

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

results = engee.run(model_name)
SimulationResult(
    run_id => 39,
    "Q" => WorkspaceArray{Float64}("power_ssm/Q")
,
    "i_b" => WorkspaceArray{Float64}("power_ssm/i_b")
,
    "i_c" => WorkspaceArray{Float64}("power_ssm/i_c")
,
    "P" => WorkspaceArray{Float64}("power_ssm/P")
,
    "v_b" => WorkspaceArray{Float64}("power_ssm/v_b")
,
    "v_a" => WorkspaceArray{Float64}("power_ssm/v_a")
,
    "v_c" => WorkspaceArray{Float64}("power_ssm/v_c")
,
    "i_a" => WorkspaceArray{Float64}("power_ssm/i_a")

)

Чтение данных о мгновенных значения тока и напряжения:

t = results["i_a"].time;
i_a = results["i_a"].value;
i_b = results["i_b"].value;
i_c = results["i_c"].value;
v_a = results["v_a"].value;
v_b = results["v_b"].value;
v_c = results["v_c"].value;

Загрузка и визуализация данных, полученных в ходе симуляции

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

plot(t, [i_a i_b i_c], label=["Ток фазы А" "Ток фазы В" "Ток фазы С"])
plot!(title = "Результаты моделирования в Engee", ylabel = "Мгновенное значение тока, А", xlabel="Время, c")

Вывод графика зависимости мгновенных значений напряжения от времени:

plot(t, [v_a v_b v_c], label=["Напряжение фазы А" "Напряжение фазы В" "Напряжение фазы С"])
plot!(title = "Результаты моделирования в Engee", ylabel = "Мгновенное значение напряжения, В", xlabel="Время, c")

Выводы:

В данном примере были использованы инструменты для командного управления моделью Engee. Модель демонстрирует работу синхронного генератора на нагрузку, изменяющуюся скачком. Результаты симуляций были импортированы в интерактивный скрипт, визуализированы, с помощью интерактивных графиков библиотеки Plots, а также проанализированы.