Если мы хотим без больших затрат средств и времени построить различные модели в сфере электроэнергетики, то питон (python) будет для нас поистине незаменимым языком. Больше всего доступных открытых и бесплатных "электрических" библиотек с хорошей документацией написано именно на питоне, и этот обзор будет посвящен их краткому разбору и классификации.

Обзор составлен в формате "краткое описание + ссылки на гитхаб и документацию". При выявлении новых открытых электрических python-библиотек список будет пополняться.

Общая информационная модель, CIM

Прежде всего, приступая к построению каких-либо расчетных моделей в электроэнергетике, нам нужно понимать, что значительная часть сущностей (таких как электростанция, подстанция, трансформатор, обмотка трансформатора, выключатель, линия, уровень напряжения и сотни, сотни других) формализована в виде CIM-модели.

Общая информационная модель (Common Information Model), CIM - это набор открытых стандартов для представления элементов электроэнергетических систем. Разработаны в Международной Электротехнической Комиссии (МЭК или по-английски IEC) в 2000-х.

В России на основе этих стандартов приняты ГОСТы серии 58651 - Информационная модель электроэнергетики. ГОСТы описывают, какие поля и каких типов должны быть, например, у счетчика (Meter), или у любого из видов проводящего оборудования (ConductingEquipment). Но никто нас не обязывает (да и других разработчиков библиотек тоже) в точности следовать (и следовать вообще) этой модели. При этом обмен информацией, использующий стандарт CIM, ведет сейчас значительная часть энергокомпаний, в т.ч. в России - согласно ГОСТам серии 58651.

Можно посмотреть небольшую по количеству функций библиотеку cimpy. Она позволяет импортировать, изменять и экспортировать данные различных классов CIM, определенных стандартом IEC61970. Формат документов - XML / RDF.

Cimpy на GitHub

Документация для cimpy.

В cimpy/cimpy/cgmes_v2_4_15/ можно посмотреть список и описание классов CIM.

Breakthrough Energy

Breakthrough Energy на GitHub

Модель Breakthrough Energy - это модель производственных затрат с алгоритмами расширения мощностей, первоначально разработанная для изучения потребностей в расширении производства и передачи электроэнергии для достижения целей штатов США в области чистой энергетики. Работа с библиотекой в Python, а задача оптимизации решается с помощью Julia. Разрабатывается командой Breakthrough Energy Sciences.

Открытые данные, лежащие в основе модели, основаны на тестовых примерах, разработанных исследователями из Texas A&M University.

Добавлены и расширены некоторые модули (например, электрификация зданий и транспорта). Ведется разработка и интеграция с другими наборами данных с открытым исходным кодом для моделирования стран и регионов за пределами Соединенных Штатов.

Эта модель использовалась по результатам энергетического кризиса в Техасе в 2021 году, когда зимние отключения электроэнергии привели к сотням смертей и экономическим потерям в миллиарды долларов.

Документация доступна по ссылке.

Calliope

Calliope на Github

Calliope - это платформа для моделирования энергетических систем, ориентированная на гибкость, высокое пространственное и временное разрешение и возможность выполнять различные прогоны с использованием одного и того же базового набора данных. Проект разрабатывается на кафедре наук об экологических системах, ETH Zurich, Цюрих, Швейцария.

Calliope написана на Python и использует библиотеку Pyomo. Использует, в том числе, решатель GLPK с открытым исходным кодом.

Модель Calliope состоит из набора структурированных файлов в форматах YAML и CSV, которые определяют технологии, местоположения и ресурсный потенциал. Calliope берет данные из этих файлов, создает из них задачу чистой линейной оптимизации (без целочисленных переменных), решает ее и выдает результаты для анализа в виде структур данных pandas. Использует пять абстрактных базовых технологий – предложение, спрос, преобразование, хранение, передача энергии, из которых могут быть получены новые конкретные технологии. Дизайн Calliope обеспечивает четкое разделение фреймворка (кода) и модели (данных).

Документация доступна по ссылке.

CLOVER

Проект на гитхабе

CLOVER - это бесплатный инструмент с открытым исходным кодом для моделирования, оптимизации и анализа производительности электрических систем. Первоначально разработанный для автономных солнечных и аккумуляторных мини-сетей для электрификации сельских районов в развивающихся странах, CLOVER теперь включает в себя функции использования солнечной энергии, аккумуляторных батарей, дизельного топлива и национальной сети для подачи электроэнергии в коммунальные системы электроснабжения.

Варианты использования модели расширились от простых технико-экономических обоснований до анализа долгосрочных последствий и преимуществ устойчивой электрификации сельских районов, а также улучшения производительности и проектирования реальных систем, в настоящее время развернутых на местах.

CLOVER разработан таким образом, чтобы быть доступным и работать на "обычных" компьютерах и ноутбуках, и, хотя скорость обработки будет разной, результаты будут одинаковыми: он был запущен на машинах различной мощности от Raspberry Pi до суперкомпьютерного кластера.

Разработан в Имперском колледже Лондона, Imperial College London как средство изучения того, как поддерживать стратегии электрификации сельских районов в развивающихся странах. В процессе непрерывного развития с 2015 года CLOVER используется для исследований систем электроснабжения в странах Африки к югу от Сахары, Южной Азии и Южной Америки с целью изучения потенциала обеспечения надежной, доступной и устойчивой электроэнергией сельских и перемещенных общин.

CLOVER обладает возможностями для моделирования систем электроснабжения любого размера, от тех, которые обслуживают отдельные домохозяйства, до крупных сообществ с различными видами использования энергии и за их пределами, но чаще всего используется для мини-сетей деревенского масштаба, обслуживающих сотни пользователей. Его основная функциональность заключается в моделировании и оптимизации систем, представленных любой комбинацией солнечной энергии, аккумуляторных батарей, дизельного топлива и подключений к национальной сети при заданных параметрах производительности. CLOVER использовался для изучения технических примеров конкретных систем, а также для более широкого анализа последствий политики электрификации сельских районов как для академической аудитории, так и для инженеров-практиков.

Доступна документация в pdf.

Dispa-SET

Dispa-SET на GitHub

Модель Display-SET - это модель с открытым исходным кодом для обеспечения единства измерений и оптимальной диспетчеризации, ориентированная на проблемы балансировки и обеспечения гибкости в электросетях Западной Европы. Модули предварительной и постобработки данных написаны на Python, а основной решатель может быть вызван через GAMS (это специальная система для решения систем линейных и нелинейных уравнений).

Разработана в рамках Объединенного исследовательского центра Комиссии ЕС (Joint Research Centre) в сотрудничестве с Университетом Льежа и Левенским университетом (Бельгия).

Display-SET применялся в тематических исследованиях в Бельгии, Боливии, Греции, Ирландии и Нидерландах. Исследование, проведенное в Бельгии в 2014 году, моделирует сценарии "что-если" для различных комбинаций атомной генерации, установок с комбинированным циклом, газотурбинных установок и обнаруживает, что установки с ПГУ подвергаются более агрессивному циклированию (работают менее ровным графиком) по мере увеличения доли возобновляемых источников энергии.

В исследовании 2020 года изучалось коллективное воздействие будущих климатических условий на 34 европейские энергосистемы, включая потенциальные колебания солнечной, ветровой и гидроэнергетической мощности и спроса на электроэнергию при различных прогнозируемых метеорологических сценариях для европейского континента.

Документация доступна по ссылке.

EnergyPATHWAYS

Проект на гитхабе

EnergyPATHWAYS - это модель энергетического сектора, используемая для изучения текущих последствий долгосрочной и глубокой декарбонизации. Ведущим разработчиком является консалтинговая компания по энергетике и защите климата Evolved Energy Research, Сан-Франциско, США.

EnergyPATHWAYS написан на Python и использует решатель задачи линейного программирования Cbc solver с открытым исходным кодом. В качестве альтернативы можно использовать решатели GLPK или CPLEX. EnergyPATHWAYS использует объектно-реляционную систему управления базами данных PostgreSQL для управления данными.

EnergyPATHWAYS - это комплексная система, используемая для построения сценариев энергетической инфраструктуры в масштабах всей экономики. В то время как части модели используют методы линейного программирования, например, для расчета распределения электроэнергии, модель энергетических путей по сути не является оптимизационной моделью и включает в себя часть, связанную с моделями динамического принятия решений.

EnergyPATHWAYS предлагает подробный учет энергии, затрат и выбросов в отношении потоков энергии от первичного предложения до конечного спроса. Представление энергетической системы является гибким, допускающим различные уровни детализации и размещения городов, штатов и стран. Модель использует почасовые объемы электроэнергии исходя из наименьших затрат и поддерживает такие технологии, как преобразование энергии в газ, кратковременное хранение энергии, долговременное хранение энергии и управление спросом (Demand Response). Сценарии обычно рассчитаны до 2050 года.

Документация не найдена, доступен сайт.

Ficus

Проект на Гитхабе

Ficus - это смешанная целочисленная оптимизационная модель для локальных энергетических систем. Он разрабатывается в Институте энергетической экономики и прикладных технологий Мюнхенского технического университета, Мюнхен, Германия.

Написан на Python и использует библиотеку Pyomo. Пользователь может выбрать между GLPK-решателем с открытым исходным кодом или коммерческим CPLEX-решателем.

Основанный на URBS, ficus изначально был разработан для оптимизации энергетических систем заводов, позднее был расширен, чтобы включить местные энергетические системы. ficus поддерживает множество энергетических ресурсов – товаров, которые можно импортировать или экспортировать, производить, хранить или потреблять, – включая электроэнергию и тепло. Он поддерживает технологии преобразования энергии с несколькими входами и несколькими выходами с эффективностью, зависящей от нагрузки. Цель модели состоит в том, чтобы удовлетворить заданный спрос с минимальными затратами. ficus использует временные ряды экзогенных затрат для импортируемых товаров, а также сборы за пиковый спрос с настраиваемой временной базой для каждого используемого товара.

Доступна документация.

NEMO

Проект на гитхабе

NEMO, National Electricity Market Optimiser, национальный оптимизатор рынка электроэнергии. Представляет собой модель хронологической диспетчеризации для тестирования и оптимизации различных портфелей традиционных и возобновляемых технологий производства электроэнергии. Модель разработана для Австралийского национального рынка электроэнергии (NEM), который, несмотря на свое название, ограничен восточной и южной Австралией. NEMO разрабатывается с 2011 года в Центре энергетических и экологических рынков (CEEM) Университета Нового Южного Уэльса (UNSW), Сидней, Австралия.

Временной интервал для расчета можно выбирать, но обычно используется один часовые объемы производства и потребления.

NEMO использовался для изучения вариантов выработки электроэнергии на 2030 год в различных сценариях использования возобновляемых источников энергии (ВИЭ) и технологий, основанных на использовании ископаемого топлива.

Исследование 2012 года оценивает возможность создания энергосистемы, построенной полностью на возобновляемых источниках, использующих солнечную энергию с тепловыми накопителями, ветряные электростанции, фотовольтаику, существующие гидроэлектростанции и газовые турбины на биотопливе. Основная проблема заключается в обслуживании пикового спроса зимними вечерами после пасмурных дней и периодов слабого ветра.

В исследовании 2014 года рассматриваются три сценария с использованием угольной тепловой генерации с улавливанием и хранением углерода (CCS) и газовых турбин с улавливанием и без улавливания.

Документация проекта и пример в jupyter notebook.

Oemof

Проект на гитхабе

Oemof расшифровывается как Open Energy Modeling Framework. Проектом руководят Институт Райнера Лемуана, Берлин, Германия и Центр устойчивых энергетических систем (CSES или ZNES) при Университете Фленсбурга и Университете прикладных наук Фленсбурга, Германия.

Написан на Python и использует компоненты Pyomo и COIN-OR для оптимизации. Данные энергетических систем могут быть представлены с помощью электронных таблиц (CSV).

Состоит из библиотеки формулировки задач линейной или смешанной целочисленной оптимизации (solph), библиотеки генерации входных данных (feedin-data) и других вспомогательных библиотек. Библиотека solph используется для представления мультирегиональных и многосекторальных систем (электричество, тепло, газ, источники мобильности) и может оптимизировать различные цели, такие как финансовые затраты или выбросы CO2. Кроме того, можно переключаться между моделями диспетчирования и оптимизации инвестиций. Oemof может описывать европейскую энергетическую систему или, в качестве альтернативы, может сложную схему местного энергетического и теплового секторов.

Доступна документация.

OnSSET: OpeN Source Spatial Electrification Toolkit

Проект на гитхабе.

OnSSET (OpeN Source Spatial Electrification Toolkit), набор инструментов с открытым исходным кодом для расчета электрификации отдельных территорий. Разрабатывается отделом энергетических систем Королевского технологического института, Стокгольм, Швеция. Используется для изучения районов, не охваченных централизованным сетевым электроснабжением, и определения технологических вариантов и объемов инвестиций, которые обеспечат доступ к услугам электроснабжения с наименьшими затратами.

OnSSET предназначен для поддержки ЦУР 7 (Цель устойчивого развития №7) Организации Объединенных Наций: обеспечение доступной, надежной, устойчивой и современной энергией для всех. Выпущен 26 ноября 2016 года. OnSSET не поставляется с данными, но наборы данных доступны на energydata.info .

OnSSET может оценивать, анализировать и визуализировать наиболее экономически эффективные варианты доступа к электрификации, будь то обычная сеть, мини-сеть или автономная. Инструментарий поддерживает ряд традиционных и возобновляемых энергетических технологий, включая фотовольтаику, ветряные турбины и малую гидрогенерацию. С 2017 года добавлены биоэнергетические и гибридные технологии, такие как ветро-дизельные.

OnSSET использует энергетическую и географическую информацию, последняя может включать размер и местоположение населенного пункта, существующую и планируемую инфраструктуру передачи и генерации, экономическую деятельность, возобновляемые источники энергии, дорожные сети и потребности в ночном освещении. Информация ГИС может поддерживаться с помощью проприетарного пакета ArcGIS или эквивалента с открытым исходным кодом, такого как GRASS или QGIS.

OnSSET использовался для тематических исследований в Афганистане, Боливии, Камеруне, Эфиопии, Малави, Нигерии и Танзания. OnSSET также применялся в Индии, Кении и Зимбабве. Кроме того, были проведены континентальные исследования для стран Африки к югу от Сахары и Латинской Америки.

Результаты OnSSET были включены в отчеты МЭА World Energy Outlook за 2014 год [78] и 2015 год[79], отчет Всемирного банка о глобальной системе отслеживания за 2015 год[80] и отчет МЭА Africa Energy Outlook за 2019 год.[81] OnSSET также является частью зарождающейся платформы GEP.[82]

Документация проекта весьма скудна, сайт был недоступен.

OSeMOSYS

Проект на гитхабе.

Osmosis расшифровывается как система моделирования энергии с открытым исходным кодом. OSeMOSYS предназначен для разработки национальной и региональной политики и использует фреймворк межвременной оптимизации. Модель предполагает наличие единого социально мотивированного оператора/инвестора с совершенным предвидением (?). Проект OSeMOSYS - это инициатива сообщества, поддержанная отделом энергетических систем Королевского технологического института KTH, Стокгольм, Швеция.

OSeMOSYS изначально была написана на MathProg, высокоуровневом языке математического программирования. Впоследствии он был повторно реализован в GAMS и Python, и теперь поддерживаются все три кодовые базы. Проект также предоставляет тестовую модель под названием UTOPIA.

OSeMOSYS предоставляет основу для анализа энергетических систем в среднесрочной (10-15 лет) и долгосрочной перспективе (50-100 лет). OSeMOSYS использует чистую линейную оптимизацию с возможностью смешанного целочисленного программирования, например, для расчета дискретных расширений мощности электростанции. Она охватывает большинство секторов энергетики, включая теплоэнергетику и транспорт. В модели определены потребности в энергетических услугах, которые удовлетворяются с помощью набора технологий, использующих набор ресурсов, характеризующихся как возможностями, так и затратами. Эти ресурсы не ограничиваются энергетическими товарами и могут включать, например, воду и землю. Это позволяет применять OSeMOSYS в областях, отличных от энергетики, таких как системы водоснабжения. Технические ограничения, экономические ограничения и/или экологические целевые показатели могут быть установлены и с учетом политических соображений.

Сайт проекта и мануал на момент обзора были недоступны.

Pandapower

Проект на гитхабе

Пожалуй, это то, с чего стоит начать интересующимся темой моделирования электросетей.

pandapower - это программа анализа и оптимизации энергосистем, совместно разрабатываемая исследовательской группой по управлению энергией и эксплуатации энергосистем Кассельского университета, Германия и отделом эксплуатации распределительных систем Института экономики энергетики и технологии энергетических систем (IEE).

pandapower написана на Python. Использует библиотеку pandas для обработки и анализа данных и библиотеку PYPOWER для решения задач расчета перетоков. В отличие от некоторых инструментов с открытым исходным кодом, pandapower не зависит от проприетарных платформ, таких как MATLAB.

pandapower поддерживает автоматический анализ и оптимизацию распределительных и передающих сетей. Это позволяет исследовать большое количество сценариев, основанных на различных будущих конфигурациях сетей и технологиях. pandapower предлагает набор элементов энергосистемы, включая: линии, 2-обмоточные трансформаторы, 3-обмоточные трансформаторы и др. Саму сеть можно построить с географической информацией или без нее, используя библиотеки matplotlib и plotly.

С 2018 года немецкий сетевой регулятор BNetzA использует pandapower для автоматизированного анализа сети. Исследовательские институты энергетики в Германии также следят за развитием pandapower.

Есть сайт, доступна подробнейшая документация.

Power Grid Model

Проект на гитхабе

power-grid-model - это библиотека Python для анализа устойчивых состояний распределительной сети энергосистемы. Ядро библиотеки написано на C++. В настоящее время поддерживает следующие вычисления:

  • Расчет симметричного и асимметричного потока мощности методом Ньютона-Рафсона, расчетом токов методом итераций и линейным методом.

  • Оценка симметричного и асимметричного состояния итерационным линейным методом.

Доступна документация.

Pvlib

Проект на гитхабе

pvlib python - это поддерживаемый сообществом инструмент, который предоставляет набор функций и классов для моделирования производства электроэнергии в фотовольтаике - на солнечных панелях и фотоэлектрических электростанциях.

pvlib python изначально был перенесен из PVLIB MATLAB toolbox, разработанного в Sandia National Laboratories, и в нем реализованы многие модели и методы, разработанные в лабораториях.

Основная миссия pvlib-python заключается в предоставлении открытых, надежных, совместимых и эталонных реализаций моделей фотоэлектрических систем.

Существует по меньшей мере столько же мнений о том, как моделировать фотоэлектрические системы, сколько и разработчиков фотоэлектрических систем, поэтому pvlib-python предоставляет несколько парадигм моделирования: функции, классы Location/PVSystem и класс ModelChain. Существует соглашение об именовании переменных для обеспечения согласованности во всей библиотеке.

Доступна документация.

PYPOWER

Проект на гитхабе

PYPOWER - это решение для расчетов перетоков энергии (мощности) и оптимизации задач расчета энергопотребления. Это реализация кода на MATPOWER , https://matpower.org/ для языка программирования Python. Текущие функции включают в себя:

  • Постоянный и переменный ток (метод Ньютона и fast decoupled state estimator, FDSE - быстрый метод оценки состояния с декомпозицией по активной и реактивной мощности).

  • Расчет оптимального потока мощности для постоянного и переменного тока (OPF).

Документация, доступная на гитхабе.

PyPSA

Проект на гитхабе

PyPSA расшифровывается как Python для анализа энергосистем. PyPSA - это бесплатный программный инструментарий для моделирования и оптимизации электроэнергетических систем и смежных секторов. Он поддерживает традиционную генерацию, переменную ветровую и солнечную генерацию, хранение электроэнергии, подключение природного газа, водорода, тепла и транспортного сектора, а также гибридные сети переменного и постоянного тока. Проектом управляет Институт автоматизации и прикладной информатики (IAI), Технологический институт Карлсруэ (KIT), Карлсруэ, Германия, хотя сам проект существует независимо.

PyPSA написана на Python и использует библиотеку Pyomo. Исходный код размещен на GitHub, а также периодически выпускается в виде пакета PyPI.

Базовая функциональность PyPSA описана в документе от 2018 года. PyPSA объединяет программное обеспечение для анализа установившихся режимов и полные многопериодические модели энергетических систем. Он может использовать либо нелинейные уравнения потока мощности для моделирования системы, либо линеаризованные приближения, позволяющие совместно оптимизировать операционную и инвестиционную деятельность в течение нескольких периодов. Может быть заданы скорость набора нагрузок генераторами, периоды подъема и спада потребления, поддерживается управление спросом, но спрос остается неэластичным по цене.

Доступны подробная документация и сайт проекта.

SciGRID

Скачать репозиторий на сайте.

Sigrid, сокращ. от Scientific Grid, представляет собой модель сетей передачи электроэнергии с открытым исходным кодом (преимущественно Германия и Западная Европа). Проект ведет Institute of Networked Energy Systems, Ольденбург, Германия.

Sigrid написан на Python и использует базу данных PostgreSQL. Первый релиз (v0.1) был выпущен 15 июня 2015 года.

Sigrid стремится исправить недостаток открытых исследовательских данных о структуре сетей передачи электроэнергии в Европе - отсутствие в моделях подробных (с высоким разрешением) данных об энергетических системах (включая низковольтные сети). Sigrid использует данные сети передачи, доступные из проекта OpenStreetMap для автоматического создания структуры сети электропередач. Проект не использует данные из закрытых источников. Sigrid также может математически разложить имеющиеся данные о сети в более простое представление для использования в энергетических моделях.

Доступны разделы электросетей и газовых сетей.

Документация доступна в pdf.

SIREN

Код на гитхабе

Файлы для загрузки

SIREN, SEN Integrated Renewable Energy Network Toolkit (набор инструментов для исследования интегрированных энергосетей возобновляемой энергии). Проектом руководит неправительственная организация Sustainable Energy Now, Перт, Австралия.

SIREN работает в Windows, исходный код размещен на SourceForge. Программное обеспечение написано на Python и использует модель SAM (System Advisor Model) из Национальной лаборатории возобновляемых источников энергии США для выполнения энергетических расчетов. Использует почасовые наборы данных для моделирования энергосистемы географического региона. Пользователи могут использовать ПО для анализа местоположения и возможных объемов возобновляемых источников энергии для удовлетворения определенной величины спроса на электроэнергию. SIREN использует ряд открытых или общедоступных источников данных: карты могут быть созданы из OpenStreetMap, а наборы данных о погоде - с использованием спутниковых данных NASA MERRA-2.

Документации пока не найдено, есть сайт.

SWITCH

Репозитории на гитхабе

Switch - это модель планирования энергосистемы с открытым исходным кодом, которая уникально подходит для проектирования и изучения будущих энергосистем, которые могут иметь большую долю возобновляемых источников энергии, хранения и / или реагирования на спрос. Он оптимизирует инвестиционные решения для возобновляемых и традиционных источников энергии, аккумуляторов или хранилищ водорода, гидроэлектростанций и других активов. Это позволяет выбрать проект с наименьшими затратами для достижения политических целей, таких как цели по выбросам углерода или возобновляемым источникам энергии, при сохранении надежного энергоснабжения. Это модель для анализа "что, если" стоимости уменьшения углеродного следа.

Switch использует современный математический аппарат, учитывает несколько инвестиционных периодов, позволяя оптимизировать и оценивать долгосрочный переход на возобновляемые источники энергии, исследуя, как эти ресурсы будут использоваться ежечасно.

Платформа модульная, что позволяет легко выбирать между предварительно написанными компонентами или добавлять пользовательские компоненты в качестве элементов модели.

Сайт, Страница с описанием и pdf с принципами работы.

TEMOA

Проект на гитхабе

Инструменты для оптимизации и анализа энергетических моделей (Temoa) - это платформа моделирования с открытым исходным кодом для проведения анализа энергетических систем. Основным компонентом Temoa является модель оптимизации энергетической системы, в масштабах от локальных до глобальных. Модели позволяют одновременно проводить широкую и глубокую оценку технологии путем рассмотрения экономических и технических характеристик отдельных технологий, а также их взаимодействия в рамках четко определенной системы.

Энергетическая система описывается алгебраически как сеть взаимосвязанных процессов, которые преобразуют сырьевой энергетический продукт (например, уголь, нефть, биомассу, уран) в продукт конечного потребительского спроса (например, освещение, транспорт, нагрев воды, кондиционирование воздуха), часто через серию из одного или нескольких промежуточных товаров (например, электричество, бензин, этанол). Каждая технология определяется набором технических, экономических и экологических характеристик (например, капитальные затраты, эффективность, уровень выбросов), связанных с преобразованием энергетического товара из одной формы в другую. Технологии связаны друг с другом в сети с помощью ограничений модели.

Цель модели состоит в том, чтобы минимизировать текущую стоимость энергоснабжения путем развертывания и использования энергетических технологий и товаров с течением времени для удовлетворения ряда потребностей конечного потребителя.

Модель Temoa сформулирована как задача линейного программирования и реализована на Python с использованием Pyomo.

Temoa претендует на уникальную нишу в сообществе энергетического моделирования, устраняя два критических недостатка: невозможность проведения сторонней проверки опубликованных результатов на основе моделей и сложность проведения тщательного анализа неопределенности с большими, сложными моделями. Temoa использует современную систему контроля версий для публичного архивирования исходного кода модели и данных, что позволяет третьей стороне проверять все опубликованные работы по моделированию. Кроме того, Temoa представляет собой первую модель оптимизации энергетической системы, которая была разработана для работы в высокопроизводительной вычислительной среде.

Доступны документация и сайт.

URBS

Проект на гитхабе

URBS, что в переводе с латыни означает "город", представляет собой модель линейного программирования для изучения проблем расширения мощностей и особенно подходит для распределенных энергетических систем. Разрабатывается Институтом возобновляемых и устойчивых энергетических систем Мюнхенского технического университета, Германия.

URBS написан на Python и использует пакеты оптимизации Pyomo.

URBS классифицируется как платформа энергетического моделирования и пытается минимизировать общую дисконтированную стоимость системы. Конкретная модель выбирает из набора технологий для удовлетворения заранее определенного спроса на электроэнергию. По времени расчет производится в почасовом разрезе, а пространственное разрешение определяется моделью. Переменными для принятия решения являются мощности по производству, хранению и транспортировке электроэнергии и период их эксплуатации.

Использовалась для изучения экономически оптимального расширения европейской сети с использованием прогнозируемых мощностей ветра и солнечной энергии на 2020 год. Исследование 2012 года, проведенное с использованием высоких пространственных и технологических разрешений, показало, что добавление переменных возобновляемых источников энергии приводит к снижению доходов обычных электростанций и что расширение сети перераспределяет и смягчает этот эффект. Программное обеспечение также использовалось для изучения энергетических систем, охватывающих Европу, Ближний Восток и Северную Африку, а также Индонезию, Малайзию и Сингапур.

Документация на гитхаб.

Windpowerlib

Проект на гитхабе

Windpowerlib - это библиотека, предоставляющая набор функций и классов для расчета выходной мощности ветряных турбин. Первоначально она была частью feedinlib (ветроэнергетика и фотоэлектрика), но была выделена в отдельный продукт, с целью создания сообщества, специализирующегося на моделях ветроэнергетики.

Доступна документация.

Комментарии (27)


  1. covax80
    23.01.2023 03:16

    Уважаемый автор, а можно какие-то итоги и выводы? Чтобы Вы порекомендовали человеку "не в теме" для расчёта модели дачной электростанции на 300 Вт на солнечных панелях?


    1. avshkol Автор
      23.01.2023 03:17
      +1

      Это https://pvlib-python.readthedocs.io/en/stable/

      Но она даст только объемы выработки, в зависимости от параметров места и самой станции, а экономику придется считать отдельно... Поскольку экономика должна учитывать особенности и потребления, и законодательства, в т.ч. если будет генерация в сеть.


    1. kasyachitche
      23.01.2023 09:39

      А что вы там собрались считать?


  1. Yak52
    23.01.2023 07:55

    Если уж речь пошла про энергетику, то вот еще ссылка https://github.com/PVKonovalov/awesome-smartgrid


    1. avshkol Автор
      23.01.2023 10:34

      Спасибо, изучу все ссылки. Но этот обзор только питоновских продуктов.


  1. LeonardPowers
    23.01.2023 08:07
    +1

    Очень круто, есть что нибудь похожее для нефти/газа/аммиака?


    1. avshkol Автор
      23.01.2023 08:09

      В эту сторону я специально не копал, но часть моделей кроме энергии могут считать и другие энергоресурсы.


  1. None_of_your_business
    23.01.2023 11:40

    Это все зарубежные библиотеки, работающие по международным стандартам, не действующих в РФ. И как правило завязанные на узкие темы зеленой энергетики. Есть ли в природе российские разработки на тему отечественных стандартов? Или хотя в части ТОЭ, делающие расчет цепи методом контурных токов, например, или делающие расчет ТКЗ методом наложения. Не говоря уже о том, что скорее всего не существует симуляторов релейной защиты на Python, сколько ни искал, ничего адекватного не нашел. Возможно, я что-то упускаю из виду, но скорее всего весь этот конвейер выпускников вузов и школ программирования с этой сферой никак не пересекается.


    1. Bedal
      23.01.2023 12:36

      да там, как только речь о расчёте установившегося режима зашла (power-grid-model) - сразу три строки описания, характерных для курсача МЭИ :-)


      1. avshkol Автор
        23.01.2023 16:30

        Некоторые из этих библиотек весьма сложные и содержат массу функций, поддерживаются множеством специалистов - см. Windpower и cv-power… Мне потребовался бы месяц минимум, чтобы разобраться только с этими двумя библиотеками.


        1. Bedal
          23.01.2023 16:45

          У нас исключительно сильный специалист больше года с ветром разбирался - только недавно закончил. Там столько вариантов... но им, пожалуй, проще - доступ к первоисточникам, опробование на практике. Но это, опять же, со стороны динамики режима, а не экономики. В составе модели ЭС с воспроизведением электромеханических переходных процессов.


          1. avshkol Автор
            23.01.2023 17:05

            Да, ветер - это не так просто, одна и та же средняя скорость ветра, но с той или иной разницей между верхним потоком и нижним, может очень сильно влиять, ведь мощность, снимаемая с ветряка, пропорциональна кубу скорости ветра!


            1. Bedal
              23.01.2023 19:19

              дело не только в этом, но и в том, как именно энергия отдаётся в сеть, как устроено регулирование системы, какие параметры. Важно - какие стандарты при этом используются, как переменные в этих стандартах соотнести с используемыми у нас... Причём модель, формально правильно по стандартам сделанная - вовсе не обязательно не будет раскачивать ЭС.

              Как при этом минимизировать сбор данных, потому что зачастую у эксплуатантирующих модель служб нужных данных по динамике просто нет, и сбор с обращениями в другие службы - долго и дорогое удовольствие. Мы это регулярно проходим с самыми разными устройствами. Одни только УШРы сколько крови выпили...


    1. kasyachitche
      23.01.2023 12:54

      Если отойти от задач, решаемых студентами на коленке (расчет цепи, некоторые из приведенных в посте и прочие), то в энергетике есть действительно сложные задачи, для которых пишется весьма серьезный софт. Естественно, такой софт не пишется на питоне, а потом не выкладывается в свободный доступ.

      Меня больше интересует другой вопрос: если такой софт выкладывают, то в чем мотивация разработчиков? Разработка требует больших средств. Верификация требует вообще не понятно чего, а без нее вас вряд ли кто-то будет рассматривать всерьез, без нее вы - поделка студентов на коленке. К тому же вы даете своим конкурентам дополнительный инструмент. В чем выгода то? Вряд ли это делается из соображений гуманизма)))


      1. avshkol Автор
        23.01.2023 16:21

        Мотивация выкладывать в открытый доступ следующая:

        1) Большинство этих библиотек разработано институтами, то есть финансировалось, скорее всего, из специальных программ, и требованием там было - "раз налогоплательщики заплатили, то это должно быть открытым"

        2) Открытость модели следует из того, что используются открытые же алгоритмы (решатели), особенно задач линейного программирования

        3) Открытость модели снижает риски заказчика, который обратится для ее адаптации для себя (а вот адаптация, сбор данных и ввод их в модель будут уже платными), это модель, когда продаётся не продукт, а услуга по его внедрению. В этом смысле открытость повышает привлекательность, покупается услуга работы не с чёрным ящиком

        4) Некоторые разработчики специально стимулируют создание экосистемы вокруг их моделей, дискуссии и обсуждения, форки, поэтому модель должна быть открытой.

        5) Когда на рынке в итоге столько открытых и бесплатных в виде как-есть моделей, сложно пробиться на него с платным продуктом (и это только на питоне, есть открытые и на других языках!)


        1. Bedal
          23.01.2023 19:25
          +1

          5) Когда на рынке в итоге столько открытых и бесплатных в виде как-есть моделей, сложно пробиться на него с платным продуктом (и это только на питоне, есть открытые и на других языках!)

          Неверно :-) Такой подход годится, только если результат не слишком волнует. Энергетика - дорогая штука, и неправильные решения обходятся гораздо, гораздо дороже, чем закупки проприетарного ПО.


          1. avshkol Автор
            23.01.2023 20:34

            Посмотрите, например, https://www.pandapower.org/ . Если речь идёт о том, чтобы быстро просчитать какой-то узел, стОит ли закупать для этого сложное ПО или воспользоваться этой библиотекой, которую тысячи инженеров крутили и вертели и так, и сяк, и до вас успели наткнуться и вычистить нвсе возможные косяки?


            1. Bedal
              23.01.2023 21:04

              Один узел? Нну, ладно.

              А, и да - спасибо за обзор, полезный. Буду ждать продолжения.


    1. avshkol Автор
      23.01.2023 15:33

      Отечественные есть, разработанные под заказчика, платные и закрытые (и не на питоне))). Я же делал обзор именно открытых, на питоне, с репозиторием на гитхаб и документацией, где можно "покопаться в кишочках"...


  1. Dynasaur
    23.01.2023 11:42

    Было бы интереснее узнать что конкретно вы рассчитали и какие получили результаты и пользу, а не список всего, что нашлось в интернете


    1. avshkol Автор
      23.01.2023 16:40
      +1

      Список открытых библиотек на питоне - это первый шаг. Далее я собираюсь сделать более подробный обзор по функциям и возможностям наиболее интересных из этих библиотек с примерами расчетов. У меня это в планах на 2023 год )


      1. Bedal
        23.01.2023 19:25

        Интересно, буду ждать.


      1. kasyachitche
        24.01.2023 10:11

        А будет сравнение с проприетарными программами? Хотя бы просто по функционалу. А если с примерами - вообще бесценный пост получится, можно даже в журнал с таким постучаться.


        1. avshkol Автор
          24.01.2023 10:28

          Думаю, да - там, где удастся получить бесплатный доступ к пропиетарному ПО с аналогичным функционалом.


  1. baldr
    24.01.2023 14:04

    Вот еще репозиторий: https://github.com/electricitymaps для, например, вот этого проекта: https://app.electricitymaps.com/map

    А вот поиск по гитхабу: https://github.com/topics/electricity?l=python


    1. avshkol Автор
      25.01.2023 20:20
      +1

      Спасибо, чувствую, там много еще интересного!) Буду обновлять обзор по мере изучения.


      1. baldr
        25.01.2023 21:49

        Если что-то добавляете - то ставьте в заголовке к имени библиотеки отметку времени обновления. Нет возможности получать уведомления об изменениях в посте, а если через неделю зайти - непонятно что изменилось.