Расчёт установившегося режима pandapower — различия между версиями
Kovalenik (обсуждение | вклад) |
Kovalenik (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | [[Файл:Рассматриваемая сеть.png|мини| | + | [[Файл:Рассматриваемая сеть.png|мини|600px| Рис. 1 - Рассматриваемая сеть]] |
В данной статье приводится описание примера расчёта установившегося режима с использованием Python библиотеки [[Pandapower|pandapower]]. | В данной статье приводится описание примера расчёта установившегося режима с использованием Python библиотеки [[Pandapower|pandapower]]. | ||
Строка 29: | Строка 29: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | После обращения к таблице с исходными данными по узлам появится | + | После обращения к таблице с исходными данными по узлам появится таблица 1. |
+ | |||
+ | == 2. External Grid (внешняя сеть) == | ||
+ | |||
+ | [[Файл:Таблица1. Список узлов.png|мини|300px| Таблица 1. Список внешних сетей]] | ||
+ | |||
+ | Теперь создадим внешнюю сеть, которая служит балансирующим узлом для вычисления потока мощности. Напряжение внешней сети устанавливается 1,02 о.е. и с углом напряжения 50 градусов: | ||
+ | |||
+ | <syntaxhighlight lang="Python"> | ||
+ | pp.create_ext_grid(net, bus1, vm_pu=1.02, va_degree=50) #cоздание внешней сети | ||
+ | net.ext_grid #показать таблицу внешних сетей | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | После обращения к таблице с исходными данными по внешним связям появится таблица 2. | ||
+ | |||
+ | == 3. Transformer (трансформатор) == | ||
+ | |||
+ | [[Файл:Таблица1. Список узлов.png|мини|300px| Таблица 3. Список трансформаторов]] | ||
+ | |||
+ | Трансформаторы могут быть созданы либо из библиотеки стандартных типов (create_transformer), либо с помощью настраиваемых значений (create_transformer_from_parameters). | ||
+ | |||
+ | Высоковольтная шина трансформатора подключена к bus3, а на стороне среднего напряжения трансформатор связан с bus4. Выбран стандартный тип «25 MVA 110/20 kV v1.4.3 and older» из базовой библиотеки стандартного типа pandapower: | ||
+ | |||
+ | <syntaxhighlight lang="Python"> | ||
+ | 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 #показать таблицу трансформаторов | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | После обращения к таблице с исходными данными по трансформторам появится таблица 3. | ||
+ | |||
+ | == 4. Lines (линии) == | ||
+ | |||
+ | [[Файл:Таблица1. Список узлов.png|мини|300px| Таблица 4. Список линий]] | ||
+ | |||
+ | Линии, также как и трансформаторы, могут быть созданы либо из библиотеки стандартных типов (create_line), либо с помощью настраиваемых значений (create_line_from_parameters). | ||
+ | |||
+ | Сеть включает в себя три линии среднего напряжения и одну линию высокого напряжения: | ||
+ | |||
+ | <syntaxhighlight lang="Python"> | ||
+ | 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 #показать таблицу линий | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | После обращения к таблице с исходными данными по линиям появится таблица 4. | ||
+ | |||
+ | == 5. Switches (выключатели) == | ||
+ | |||
+ | [[Файл:Таблица1. Список узлов.png|мини|300px| Таблица 5. Список выключателей]] | ||
+ | |||
+ | Выключатель может соединять либо две шины (bus-bus switch) либо шину с концом линии / трансформатором (bus-element switch). | ||
+ | |||
+ | На стороне высокого и низкого напряжения трансформатора имеются два выключателя, которые соединяют две шины (Bus2-Bus3 и Bus4-Bus5). Эти переключатели шины могут быть определены с помощью et = "b": | ||
+ | |||
+ | <syntaxhighlight lang="Python"> | ||
+ | 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) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | После обращения к таблице с исходными данными по выключателям появится таблица 5. | ||
+ | |||
+ | == 6. Load (нагрузка) == | ||
+ | |||
+ | [[Файл:Таблица1. Список узлов.png|мини|300px| Таблица 6. Список нагрузок]] | ||
+ | |||
+ | Элемент нагрузки по умолчанию используется для моделирования постоянной активной и реактивной мощности. Мы создаем нагрузку 2 МВт + 4 МВАр с коэффициентом масштабирования 0,6: | ||
+ | |||
+ | <syntaxhighlight lang="Python"> | ||
+ | pp.create_load(net, bus7, p_kw=2000, q_kvar=4000, scaling=0.6, name="load") #cоздание нагрузки | ||
+ | net.load #показать таблицу нагрузок | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | После обращения к таблице с исходными данными по нагрузкам появится таблица 6. | ||
+ | |||
+ | == 7. Static generator (статический генератор) == | ||
+ | |||
+ | [[Файл:Таблица1. Список узлов.png|мини|300px| Таблица 7. Список статических генераторов]] | ||
+ | |||
+ | Статические генераторы моделируются как отрицательные нагрузки PQ. Этот элемент используется для моделирования генераторов с постоянным активным и реактивным питанием. Мощность генерации задается со знаком «-»: | ||
+ | |||
+ | <syntaxhighlight lang="Python"> | ||
+ | pp.create_sgen(net, bus7, p_kw=-2000, q_kvar=500, name="static generator") #создание статического генератора | ||
+ | net.sgen #показать таблицу статических генераторов | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | После обращения к таблице с исходными данными по статическим генераторам появится таблица 7. | ||
+ | |||
+ | == 8. Voltage controlled generator (генератор) == | ||
+ | |||
+ | [[Файл:Таблица1. Список узлов.png|мини|300px| Таблица 8. Список генераторов]] | ||
+ | |||
+ | Генератор используется для моделирования генерации мощности с заданным значением величины напряжения и фиксированной выдачей активной мощности. Точное соблюдение величины напряжения при расчете потокораспределения достигается настройкой шины генератора в качестве узла PV: | ||
+ | |||
+ | <syntaxhighlight lang="Python"> | ||
+ | pp.create_gen(net, bus6, p_kw=-6000, max_q_kvar=3000, min_q_kvar=-3000, vm_pu=1.03, name="generator") #создание генератора | ||
+ | net.gen #показать таблицу генераторов | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | После обращения к таблице с исходными данными по генераторам появится таблица 8. | ||
+ | |||
+ | == 9. Shunt (шунт) == | ||
+ | |||
+ | [[Файл:Таблица1. Список узлов.png|мини|300px| Таблица 9. Список шунтов]] | ||
+ | |||
+ | Шунт определяется его активным и реактивным потреблением мощности при номинальном напряжении: | ||
+ | |||
+ | <syntaxhighlight lang="Python"> | ||
+ | pp.create_shunt(net, bus3, q_kvar=-960, p_kw=0, name='Shunt') #создаем шунт | ||
+ | net.shunt #показать таблицу шунтов | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | После обращения к таблице с исходными данными по шунтам появится таблица 9. | ||
+ | |||
+ | == Расчет установившегося режима == | ||
+ | |||
+ | [[Файл:Таблица1. Список узлов.png|мини|300px| Таблица 10. Результат установившегося режима по узлам]] | ||
+ | |||
+ | [[Файл:Таблица1. Список узлов.png|мини|300px| Таблица 11. Результат установившегося режима по линиям]] | ||
+ | |||
+ | Расчет установившегося режима запускается следующим образом: | ||
+ | |||
+ | <syntaxhighlight lang="Python"> | ||
+ | pp.runpp(net)#запуск расчета | ||
+ | net.res_bus #показать напряжения узлов | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | После обращения к таблице с результатами по напряжениям узлов появится таблица 10. | ||
+ | |||
+ | Отобразить потоки по линиям можно следующим образом: | ||
+ | |||
+ | <syntaxhighlight lang="Python"> | ||
+ | net.res_line | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | После обращения к таблице с результатами установившегося режима по линиям появится таблица 11. | ||
+ | |||
+ | Также можно отобразить и другие результаты установившегося режима: результат по внешней сети (res_ext_grid); результат по нагрузке (res_load); результат по статическим генераторам (res_sgen); результат по шунтам (res_shunt); результат по генераторам (res_gen); результат по трансформаторам (res_trafo). | ||
[[Категория:Библиотеки для расчётов]] | [[Категория:Библиотеки для расчётов]] |
Версия 17:34, 26 июля 2018
В данной статье приводится описание примера расчёта установившегося режима с использованием 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).