Расчёт установившегося режима pandapower
В данной статье приводится описание примера расчёта установившегося режима с использованием Python библиотеки pandapower.
Структура данных pandapower основана на библиотекe python-a pandas. Электрическая сеть pandapower состоит из таблиц для каждого типа элемента сети. Например, отдельная таблица для трансформаторов, отдельная для линий электропередачи и т.д. Каждая таблица элементов сети состоит из столбца для каждого параметра и строки для каждого элемента сети. С помощью программного кода можно генерировать различные элементы сети.
Данный пример содержит все наиболее распространенные элементы, поддерживаемые pandapower (рис.1). Для создания сети предварительно необходимо импортировать библиотеку и создать объект “PandapowerNet”, который будет содержать в себе всю необходимую информацию об электрической сети и её элементах.
import pandapower as pp #импорт библиотеки pandapower
net = pp.create_empty_network()#создание объекта "pandapowerNet" с именем net
Содержание
1. Bus (узел, шина)
Необходимо создать три высоковольтных (vn_kv = 110) и шесть шин среднего напряжения (vn_kv = 20):
bus1 = pp.create_bus(net, name="HV Busbar", vn_kv=110, type="b") #создание шины
bus2 = pp.create_bus(net, name="HV Busbar 2", vn_kv=110, type="b")
bus3 = pp.create_bus(net, name="HV Transformer Bus", vn_kv=110, type="n")
bus4 = pp.create_bus(net, name="MV Transformer Bus", vn_kv=20, type="n")
bus5 = pp.create_bus(net, name="MV Main Bus", vn_kv=20, type="b")
bus6 = pp.create_bus(net, name="MV Bus 1", vn_kv=20, type="b")
bus7 = pp.create_bus(net, name="MV Bus 2", vn_kv=20, type="b")
net.bus #показать таблицу узлов
После обращения к таблице с исходными данными по узлам появится таблица 1.
2. External Grid (внешняя сеть)
Теперь создадим внешнюю сеть, которая служит балансирующим узлом для вычисления потока мощности. Напряжение внешней сети устанавливается 1,02 о.е. и с углом 50 градусов:
pp.create_ext_grid(net, bus1, vm_pu=1.02, va_degree=50) #cоздание внешней сети
net.ext_grid #показать таблицу внешних сетей
После обращения к таблице с исходными данными по внешним связям появится таблица 2.
3. Transformer (трансформатор)
Трансформаторы могут быть созданы либо из библиотеки стандартных типов (create_transformer), либо с помощью настраиваемых значений (create_transformer_from_parameters).
Высоковольтная вывод обмотки трансформатора подключен к узлу "bus3", а на стороне среднего напряжения трансформатор связан с "bus4". Выбран стандартный тип «25 MVA 110/20 kV v1.4.3 and older» из базовой библиотеки стандартного типа pandapower:
trafo = pp.create_transformer(net, hv_bus=bus3, lv_bus=bus4, std_type="25 MVA 110/20 kV v1.4.3 and older", name="Trafo") #cоздание трансформатора
net.trafo #показать таблицу трансформаторов
После обращения к таблице с исходными данными по трансформторам появится таблица 3.
4. Lines (линии)
Линии электропередачи, также как и трансформаторы, могут быть созданы либо из библиотеки стандартных типов (create_line), либо с помощью настраиваемых значений (create_line_from_parameters).
Сеть включает в себя три линии среднего напряжения и одну линию высокого напряжения:
line1 = pp.create_line(net, bus1, bus2, length_km=10, std_type="N2XS(FL)2Y 1x300 RM/35 64/110 kV", name="Line 1")#cоздание линии
line2 = pp.create_line(net, bus5, bus6, length_km=2.0, std_type="NA2XS2Y 1x240 RM/25 12/20 kV", name="Line 2")
line3 = pp.create_line(net, bus6, bus7, length_km=3.5, std_type="48-AL1/8-ST1A 20.0", name="Line 3")
line4 = pp.create_line(net, bus7, bus5, length_km=2.5, std_type="NA2XS2Y 1x240 RM/25 12/20 kV", name="Line 4")
net.line #показать таблицу линий
После обращения к таблице с исходными данными по линиям появится таблица 4.
5. Switches (выключатели)
Выключатель может соединять либо две шины (bus-bus switch) либо шину с концом линии / трансформатором (bus-element switch).
На стороне высокого и низкого напряжения трансформатора имеются два выключателя, которые соединяют две шины (Bus2-Bus3 и Bus4-Bus5). Эти переключатели шины могут быть определены с помощью et = "b":
sw1 = pp.create_switch(net, bus2, bus3, et="b", type="CB", closed=True) #создание выключателя
sw2 = pp.create_switch(net, bus4, bus5, et="b", type="CB", closed=True)
После обращения к таблице с исходными данными по выключателям появится таблица 5.
6. Load (нагрузка)
Элемент нагрузки по умолчанию используется для моделирования постоянной активной и реактивной мощности. Мы создаем нагрузку 2 МВт + 4 Мвар с коэффициентом масштабирования 0,6:
pp.create_load(net, bus7, p_kw=2000, q_kvar=4000, scaling=0.6, name="load") #cоздание нагрузки
net.load #показать таблицу нагрузок
После обращения к таблице с исходными данными по нагрузкам появится таблица 6.
7. Static generator (статический генератор)
Статические генераторы моделируются как отрицательные нагрузки PQ. Этот элемент используется для моделирования генераторов с постоянным значением активной и реактивной мощости. Мощность генерации задается со знаком «-»:
pp.create_sgen(net, bus7, p_kw=-2000, q_kvar=500, name="static generator") #создание статического генератора
net.sgen #показать таблицу статических генераторов
После обращения к таблице с исходными данными по статическим генераторам появится таблица 7.
8. Voltage controlled generator (генератор)
Генератор используется для моделирования генерации мощности с заданным значением величины модуля напряжения и фиксированной выдачей активной мощности. Точное соблюдение величины напряжения при расчёте потокораспределения достигается настройкой шины генератора в качестве узла PV:
pp.create_gen(net, bus6, p_kw=-6000, max_q_kvar=3000, min_q_kvar=-3000, vm_pu=1.03, name="generator") #создание генератора
net.gen #показать таблицу генераторов
После обращения к таблице с исходными данными по генераторам появится таблица 8.
9. Shunt (шунт)
Шунт определяется его активным и реактивным потреблением мощности при номинальном напряжении:
pp.create_shunt(net, bus3, q_kvar=-960, p_kw=0, name='Shunt') #создаем шунт
net.shunt #показать таблицу шунтов
После обращения к таблице с исходными данными по шунтам появится таблица 9.
Расчёт установившегося режима
Расчет установившегося режима запускается следующим образом:
pp.runpp(net)#запуск расчёта
net.res_bus #показать напряжения узлов
После обращения к таблице с результатами по напряжениям узлов появится таблица 10.
Отобразить потоки по линиям можно следующим образом:
net.res_line
После обращения к таблице с результатами расчёта установившегося режима по линиям появится таблица 11.
Также можно отобразить и другие результаты расчёта установившегося режима: результат по внешней сети (res_ext_grid); результат по нагрузке (res_load); результат по статическим генераторам (res_sgen); результат по шунтам (res_shunt); результат по генераторам (res_gen); результат по трансформаторам (res_trafo).