Привет, Хабр! Всем известно, на чём программисты пишут код, — большинство из вас хоть раз слышали о Python, Java или C++. Но задумывались ли вы когда-нибудь, какими инструментами разработки пользуются инженеры-электроэнергетики? Ведь их задача — не просто написать код, а смоделировать целую энергосистему и внедрить в нее новый алгоритм без катастрофических последствий. Сегодня мы хотим погрузить вас в мир электроэнергетики и рассказать про то, какой российский софт пришел на смену зарубежному.

Об электроэнергетике айтишными терминами

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

Отрасль электроэнергетики такая же широкая, как и айти: здесь тоже есть свои «бэкенд» и «фронтенд», разработка, тестирование и даже свой «инфобез».

На «бэке» —  генерация электроэнергии. Инженеры на электростанциях, будь то тепловых, гидро- или атомных, следят за тем, чтобы процесс производства электроэнергии был стабильным, безопасным и эффективным.

Далее идет передача и распределение — аналог «сетевой инфраструктуры». Здесь работают инженеры, которые управляют магистральными и распределительными линиями электропередачи. Их задача — доставить электроэнергию от источников генерации до конечных потребителей, обеспечивая надежность и сокращая потери до минимума. Это как поддержание сети и серверов, чтобы данные (в нашем случае — электричество) доходили до пользователей без перебоев. Хотя и в классическом понимании своя сетевая инфраструктура в энергетике есть, например, современные подстанции оснащаются локальной вычислительной сетью для обмена данными по Ethernet между устройствами.

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

Аналог «инфобеза» в электроэнергетике — системы релейной защиты и автоматики. Релейная защита отвечает за безопасность работы энергосистемы, мгновенно реагируя на аварийные ситуации, такие, как короткие замыкания или перегрузки.

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

Зачем моделирование в электроэнергетике?

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

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

Перекрытие изоляции по воздуху на высоковольтной линии
Перекрытие изоляции по воздуху на высоковольтной линии

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

Какой софт нужен для моделирования?

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

В условиях современных реалий российская электроэнергетика столкнулась с необходимостью замены зарубежного ПО для моделирования энергосистем и алгоритмов управления. Раньше основными инструментами инженеров-энергетиков были такие широко известные (в узких кругах) решения, как MATLAB/Simulink, RSCAD, PSCAD, PowerFactory, ETAP, PSS и др.

Авторы данной статьи — команда электроэнергетиков Центра Инженерных Технологий и Моделирования «Экспонента». Далее мы поделимся опытом применения Engee, российской платформы для разработки алгоритмов управления и создания динамических моделей энергосистем. Именно её мы взяли на замену зарубежным решениям.

Engee глазами электроэнергетиков

Моделирование физических процессов

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

Библиотека электрических компонентов
Библиотека электрических компонентов

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

Блоки в Engee — это математические модели, отражающие работу реальных устройств
Блоки в Engee — это математические модели, отражающие работу реальных устройств

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

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

1-D моделирование энергосистемы
1-D моделирование энергосистемы

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

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

Визуализация и анализ результатов — важная часть моделирования
Визуализация и анализ результатов — важная часть моделирования

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

Рассмотрим еще несколько примеров.

Пример 1. Модель ветроустановки.
В этой модели асинхронная машина с короткозамкнутым ротором Р = 150 кВт используется в качестве генератора ветряной турбины. Асинхронный генератор подключен к сети и работает на локальную нагрузку P = 75 кВт. Когда генератор производит более 75 кВт, избыточная мощность передается в сеть. Асинхронный генератор потребляет реактивную мощность, поэтому к его шинам подключена конденсаторная батарея Q = 90 кВар. Ветряная турбина смоделирована с помощью блока Engee Function, отражающего зависимость мощности от скорости ветра. В зависимости учтено, что при скорости ветра ниже минимальной рабочей скорости 3 м/с или выше максимальной рабочей 23 м/c (штормовое отключение) мощность вырабатываемая ветроустановкой равна нулю.
В этой модели асинхронная машина с короткозамкнутым ротором Р = 150 кВт используется в качестве генератора ветряной турбины. Асинхронный генератор подключен к сети и работает на локальную нагрузку P = 75 кВт. Когда генератор производит более 75 кВт, избыточная мощность передается в сеть. Асинхронный генератор потребляет реактивную мощность, поэтому к его шинам подключена конденсаторная батарея Q = 90 кВар. Ветряная турбина смоделирована с помощью блока Engee Function, отражающего зависимость мощности от скорости ветра. В зависимости учтено, что при скорости ветра ниже минимальной рабочей скорости 3 м/с или выше максимальной рабочей 23 м/c (штормовое отключение) мощность вырабатываемая ветроустановкой равна нулю.

Пример 2. Модель батареи электрокара.
В этой модели изучаем поведение аккумуляторной батареи номинальным напряжением 300 В и емкостью 100 А∙ч. В основе модели лежит библиотечный блок Battery. Кроме электрических портов у блока Battery есть еще и тепловой порт для моделирования тепловых эффектов. Их важно учитывать при разработке систем управления, так как при критическом увеличении температуры может произойти тепловой разгон, самовозгорание или взрыв. Батарея подключена к реалистичному профилю нагрузки звена постоянного тока, который имитируется с помощью блока From Workspace. Данный блок передает в модель график нагрузки в виде сигнала i = f(t) к управляемому источнику тока. В процессе симуляции батарея не только разряжается, но и заряжается, если ток нагрузки имеет обратное направление. Такое поведение встречается при разгоне-торможении электромобиля.
В этой модели изучаем поведение аккумуляторной батареи номинальным напряжением 300 В и емкостью 100 А∙ч. В основе модели лежит библиотечный блок Battery. Кроме электрических портов у блока Battery есть еще и тепловой порт для моделирования тепловых эффектов. Их важно учитывать при разработке систем управления, так как при критическом увеличении температуры может произойти тепловой разгон, самовозгорание или взрыв. Батарея подключена к реалистичному профилю нагрузки звена постоянного тока, который имитируется с помощью блока From Workspace. Данный блок передает в модель график нагрузки в виде сигнала i = f(t) к управляемому источнику тока. В процессе симуляции батарея не только разряжается, но и заряжается, если ток нагрузки имеет обратное направление. Такое поведение встречается при разгоне-торможении электромобиля.

Моделирование систем управления Моделирование систем управления Моделирование систем управления

Моделирование систем управления

Кроме электрических компонентов в Engee есть отдельная библиотека с «базовыми» блоками. Они нужны для разработки систем управления электрическими блоками. Например, с помощью этих блоков можно создать автоматический регулятор возбуждения генератора. Схема регулятора при этом не будет отличаться от исполнения в ГОСТ 70661-2023:

Сохранение читаемости схемы при переносе в Engee
Сохранение читаемости схемы при переносе в Engee

«Базовые» блоки нужны не меньше электрических, ведь кроме моделирования «физики» ей нужно как-то управлять. Электроэнергетики часто сталкиваются с необходимостью проведения вычислений и цифровой обработки сигналов для анализа работы системы. Рассмотрим некоторые разделы базовых компонентов:

Библиотека базовых компонентов
Библиотека базовых компонентов

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

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

  • Сценарии изменения нагрузки для изучения суточных или сезонных колебаний.

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

  • ШИМ-сигнал на инвертор, что важно для проверки алгоритмов управления.

Программирование и средства автоматизации

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

Методы для программного управления моделью
Методы для программного управления моделью

Engee — мультиязычная среда с поддержкой Julia, Python, MATLAB, C/C++.Для хранения кода Engee существует специальный инструмент — Редактор скриптов. Скрипты имеют формат ngscript, однако вы можете работать и со всем известным форматом ipynb.

Маскирование кодовых ячеек в Редакторе кода
Маскирование кодовых ячеек в Редакторе кода

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

Запуск модели в цикле со сменной места короткого замыкания
Запуск модели в цикле со сменной места короткого замыкания

Итоги

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

За рамками статьи остались не менее важные аспекты по созданию пользовательских блоков и приложений, а также возможности интеграции с программно-аппаратным комплексом КПМ РИТМ, который позволяет запускать модели Engee в режиме реального времени для HIL-тестирования устройств (Hardware-in-the-Loop).

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

Полезные ссылки:
https://t.me/exponenta_energy

https://start.engee.com/electricity

https://energy.exponenta.ru

Если вы еще не опробовали Engee, возможно, самое время протестировать его на небольшом проекте, а наша команда с радостью поможет вам!

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


  1. lazy_val
    17.09.2024 07:41

    Engee — мультиязычная среда с поддержкой Julia, Python, MATLAB, C/C++. Для хранения кода Engee существует специальный инструмент — Редактор скриптов. Скрипты имеют формат ngscript, однако вы можете работать и со всем известным форматом ipynb.

    Как код на компилируемом языке запускается через "редактор скриптов"? Тот же C++, к примеру. Cling?


  1. E2a
    17.09.2024 07:41

    В промышленном применении должна быть гарантия, что расчёты верны, и что расчётное ПО внезапно не ошибётся. Как минимум это гарантируется длительным опытом применения. И как ПО поведёт себя на больших сложных схемах. К сожалению в статье про это ничего нет.

    Тот же PowerFactory работает уже 30 лет, считает большие схемы, и т.д. Всё это в их рекламе. А что Вашим ПО уже успешно посчитали в электроэнергетике?

    Судя по сайту Engee - ПО общего применения.


  1. vedmak3
    17.09.2024 07:41

    Похоже на Jupiter Notepad на стероидах. Время покажет.