Расчёт установившегося режима pandapower

Материал из Wiki Power System
Перейти к: навигация, поиск
Рис. 1 - Рассматриваемая сеть

В данной статье приводится описание примера расчёта установившегося режима с использованием 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 (узел, шина)

Таблица 1. Список узлов

Необходимо создать три высоковольтных (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 (внешняя сеть)

Таблица 2. Список внешних сетей

Теперь создадим внешнюю сеть, которая служит балансирующим узлом для вычисления потока мощности. Напряжение внешней сети устанавливается 1,02 о.е. и с углом 50 градусов:

pp.create_ext_grid(net, bus1, vm_pu=1.02, va_degree=50) #cоздание внешней сети
net.ext_grid #показать таблицу внешних сетей

После обращения к таблице с исходными данными по внешним связям появится таблица 2.

3. Transformer (трансформатор)

Таблица 3. Список трансформаторов

Трансформаторы могут быть созданы либо из библиотеки стандартных типов (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 (линии)

Таблица 4. Список линий

Линии электропередачи, также как и трансформаторы, могут быть созданы либо из библиотеки стандартных типов (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 (выключатели)

Таблица 5. Список выключателей

Выключатель может соединять либо две шины (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 (нагрузка)

Таблица 6. Список нагрузок

Элемент нагрузки по умолчанию используется для моделирования постоянной активной и реактивной мощности. Мы создаем нагрузку 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 (статический генератор)

Таблица 7. Список статических генераторов

Статические генераторы моделируются как отрицательные нагрузки PQ. Этот элемент используется для моделирования генераторов с постоянным значением активной и реактивной мощости. Мощность генерации задается со знаком «-»:

pp.create_sgen(net, bus7, p_kw=-2000, q_kvar=500, name="static generator") #создание статического генератора
net.sgen #показать таблицу статических генераторов

После обращения к таблице с исходными данными по статическим генераторам появится таблица 7.

8. Voltage controlled generator (генератор)

Таблица 8. Список генераторов

Генератор используется для моделирования генерации мощности с заданным значением величины модуля напряжения и фиксированной выдачей активной мощности. Точное соблюдение величины напряжения при расчёте потокораспределения достигается настройкой шины генератора в качестве узла 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 (шунт)

Таблица 9. Список шунтов

Шунт определяется его активным и реактивным потреблением мощности при номинальном напряжении:

pp.create_shunt(net, bus3, q_kvar=-960, p_kw=0, name='Shunt') #создаем шунт
net.shunt #показать таблицу шунтов

После обращения к таблице с исходными данными по шунтам появится таблица 9.

Расчёт установившегося режима

Таблица 10. Результат установившегося режима по узлам
Таблица 11. Результат установившегося режима по линиям

Расчет установившегося режима запускается следующим образом:

pp.runpp(net)#запуск расчёта
net.res_bus #показать напряжения узлов

После обращения к таблице с результатами по напряжениям узлов появится таблица 10.

Отобразить потоки по линиям можно следующим образом:

net.res_line

После обращения к таблице с результатами расчёта установившегося режима по линиям появится таблица 11.

Также можно отобразить и другие результаты расчёта установившегося режима: результат по внешней сети (res_ext_grid); результат по нагрузке (res_load); результат по статическим генераторам (res_sgen); результат по шунтам (res_shunt); результат по генераторам (res_gen); результат по трансформаторам (res_trafo).