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

Материал из Wiki Power System
Перейти к: навигация, поиск
(Расчёт установившегося режима)
 
(не показано 11 промежуточных версий 3 участников)
Строка 1: Строка 1:
[[Файл:Рассматриваемая сеть.png|мини|300px| Рис. 1 - Рассматриваемая сеть]]
+
[[Файл:Рассматриваемая сеть.png|мини|600px| Рис. 1 - Рассматриваемая сеть]]
  
В данной статье приводится описание примера расчёта установившегося режима с использованием Python библиотеки [[Pandapower|pandapower]].
+
В данной статье приводится описание примера расчёта [[Установившийся режим|установившегося режима]] с использованием Python библиотеки [[pandapower]].
  
Структура данных pandapower основана на библиотекe python-a pandas. Сеть pandapower состоит из таблиц для каждого типа элемента сети, например, отдельная таблица для трансформаторов, отдельная для линий. Каждая таблица элементов сети состоит из столбца для каждого параметра и строки для каждого элемента сети. Набирая код, вы генерируете различные таблицы элементов сети.  
+
Структура данных [[pandapower]] основана на библиотекe python-a pandas. Электрическая сеть [[pandapower]] состоит из таблиц для каждого типа элемента сети. Например, отдельная таблица для [[трансформатор]]ов, отдельная для [[Линия электропередачи|линий электропередачи]] и т.д. Каждая таблица элементов сети состоит из столбца для каждого параметра и строки для каждого элемента сети. С помощью программного кода можно генерировать различные элементы сети.
  
Данный пример содержит все наиболее распространенные элементы, поддерживаемые Pandapower (рис.1). Для создания сети предварительно необходимо импортировать библиотеку и создать объект “PandapowerNet”, который будет содержать в себе всю необходимую информацию о электрической сети и ее элементах.
+
Данный пример содержит все наиболее распространенные элементы, поддерживаемые [[pandapower]] (рис.1). Для создания сети предварительно необходимо импортировать библиотеку и создать объект “PandapowerNet”, который будет содержать в себе всю необходимую информацию об [[Электрическая сеть|электрической сети]] и её элементах.
  
 
<syntaxhighlight lang="Python">
 
<syntaxhighlight lang="Python">
Строка 14: Строка 14:
 
== 1. Bus (узел, шина) ==
 
== 1. Bus (узел, шина) ==
  
[[Файл:Таблица1. Список узлов.png|мини|300px| Таблица 1. Список узлов]]
+
[[Файл:Таблица1. Список узлов.png|мини|400px| Таблица 1. Список узлов]]
  
 
Необходимо создать три высоковольтных (vn_kv = 110) и шесть шин среднего напряжения (vn_kv = 20):
 
Необходимо создать три высоковольтных (vn_kv = 110) и шесть шин среднего напряжения (vn_kv = 20):
Строка 29: Строка 29:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
После обращения к таблице с исходными данными по узлам появится следующая таблица 1.
+
После обращения к таблице с исходными данными по узлам появится таблица 1.
  
[[Категория:Библиотеки для расчётов]]
+
== 2. External Grid (внешняя сеть) ==
 +
 
 +
[[Файл:Список внешних сетей.png|мини|500px| Таблица 2. Список внешних сетей]]
 +
 
 +
Теперь создадим внешнюю сеть, которая служит [[Балансирующий узел|балансирующим узлом]] для вычисления потока мощности. Напряжение внешней сети устанавливается 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 (трансформатор) ==
 +
 
 +
[[Файл:Список трансформаторов.png|мини|500px| Таблица 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 (линии) ==
 +
 
 +
[[Файл:Список линий.png|мини|500px| Таблица 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 (выключатели) ==
 +
 
 +
[[Файл:Список выключателей.png|мини|500px| Таблица 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 (нагрузка) ==
 +
 
 +
[[Файл:Список нагрузок.png|мини|500px| Таблица 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 (статический генератор) ==
 +
 
 +
[[Файл:Список статических генераторов.png|мини|500px| Таблица 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 (генератор) ==
 +
 
 +
[[Файл:Список генераторов.png|мини|500px| Таблица 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 (шунт) ==
 +
 
 +
[[Файл:Список шунтов.png|мини|500px| Таблица 9. Список шунтов]]
 +
 
 +
Шунт определяется его активным и реактивным потреблением мощности при номинальном напряжении:
 +
 
 +
<syntaxhighlight lang="Python">
 +
pp.create_shunt(net, bus3, q_kvar=-960, p_kw=0, name='Shunt') #создаем шунт
 +
net.shunt #показать таблицу шунтов
 +
</syntaxhighlight>
 +
 
 +
После обращения к таблице с исходными данными по шунтам появится таблица 9.
 +
 
 +
== Расчёт установившегося режима ==
 +
 
 +
[[Файл:Расчет установившегося режима по узлам.png|мини|500px| Таблица 10. Результат установившегося режима по узлам]]
 +
 
 +
[[Файл:Расчет установившегося режима по линиям.png|мини|600px| Таблица 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).
 +
 
 +
 
 +
[[Категория:Pandapower]]

Текущая версия на 20:08, 12 декабря 2018

Рис. 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).