Digital Twin — цифровая копия физической системы

в 19:33, , рубрики: Digital Transformation, digital twin, FMI, FMU, IIoT, IoT, modelica, Интернет вещей, цифровой двойник

Цифровой двойник (Digital Twin, DT) представляет собой виртуальную копию физической системы, которая обновляется в реальном времени на основе данных, поступающих с реального объекта. Это динамическая модель, объединяющая физико-математические модели системы с методами анализа данных. Согласно прогнозам Gartner, технология цифровых двойников станет широко востребованной в ближайшие пять лет.

Концепция цифрового двойника была впервые предложена Майклом Гривсом в 2003 году в курсе «Управление жизненным циклом продукта» в Мичиганском университете. В то время ограниченные возможности технологий и вычислительных мощностей сдерживали развитие концепции. Однако с ростом интереса к промышленному интернету вещей (IIoT) и передовым вычислительным методам цифровые двойники значительно эволюционировали, и становятся важным элементом промышленной автоматизации.

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

Содержание

  • Архитектура цифрового двойника

  • Этапы разработки цифрового двойника

  • Методология моделирования в инженерной практике

  • Диагностика отказов и управление техническим состоянием

  • Оценка остаточного ресурса и цифровые двойники

  • Устройства периферийных (Edge) вычислений для цифровых двойников

  • Интеллектуальная система

  • Functional Mockup Unit (FMU)

  • Самооптимизирующееся управление (Self-Optimizing Control, SOC)

  • Заключение

  • Используемые источники

Архитектура цифрового двойника

Цифровой двойник включает пять ключевых компонентов:

  1. Сенсоры — собирают данные о работе системы и окружающей среде.

  2. Актуаторы — применяют управляющие воздействия на систему.

  3. Данные — формируют основу для анализа и прогнозирования.

  4. Моделирование — воспроизводит поведение системы с учетом физических и статистических моделей.

  5. Аналитика — обрабатывает данные для визуализации, прогнозирования и управления.

Существует две основные архитектуры цифровых двойников:

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

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

Пятиуровневая модель

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

M_{DT}=(PE, VE, Ss, DD, CN),

где PE обозначает физическую сущность, VE — виртуальное оборудование, Ss — сервисы для PE и VE, DD — данные цифрового двойника, а CN — соединение между PE, VE, Ss и DD.

Для иллюстрации предлагаемого DT для сложного оборудования в исследовании рассматривается ветрогенератор (WT).

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

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

Модель сервисов (Ss) включает сервисы для PE и VE. Она оптимизирует работу PE и поддерживает высокую точность VE путем калибровки параметров во время работы для обеспечения синхронизации с PE. Ss состоит из следующих элементов: функция, вход, выход, качество, состояние. В качестве примера можно выделить сервис мониторинга выходной мощности для физического ветрогенератора. Его можно представить как Ss_monitor = (Мониторинг выходной мощности, (скорость ветра, выходная мощность физического WT, выходная мощность виртуального TW), состояние мощности, (время, стоимость, надежность), (работа, простои, отказ)).

Модель данных (DD) включает пять частей, как показано ниже:

DD=(Dp, Dv, Ds, Dk, Df)

Где Dp — данные от PE, Dv — данные от VE, Ds — данные от Ss, Dk — отраслевые знания, а Df — объединенные данные Dp, Dv, Ds и Dk. DD объединяет данные из физических и виртуальных источников, а также их комбинации, что значительно расширяет объем информации.

Модель соединения (CN) включает шесть частей, представленных в следующем выражении:

CN=(CN_SD, CN_PD, CN_VD, CN_PS, CN_VS, CN_PV)

Где CN_SD, CN_PD, CN_VD, CN_PS, CN_VS и CN_PV обозначают соединения между Ss и DD, PE и DD, VE и DD, PE и Ss, VE и Ss, PE и VE соответственно. Каждое соединение (обозначаемое как CN_XX) является двунаправленным, а передаваемые данные моделируются следующим образом:
CN_XX = (Источник данных, Единица измерения, Значение, Диапазон, Интервал выборки).

Уровни зрелости цифрового двойника

Цифровые двойники классифицируются по уровню развития:

  • Уровень I (пред-DT): Создание виртуального прототипа системы без физического объекта.

  • Уровень II (моделируемый DT): Наличие физической системы и ее цифрового двойника без прямой связи в реальном времени.

  • Уровень III (операционный DT): Полноценный цифровой двойник, обновляющийся в реальном времени на основе данных физической системы.

  • Уровень IV (интеллектуальный DT): Использование машинного обучения и искусственного интеллекта для автоматизированного управления физической системой.

Основные вызовы при внедрении цифрового двойника

Несмотря на перспективность технологии, существуют определенные сложности:

  • Моделирование: Разработка многодисциплинарных моделей требует высокоточной симуляции и унификации стандартов данных.

  • Интеграция сенсоров: Реализация надежной передачи данных требует высокой вычислительной мощности и устойчивых коммуникационных протоколов.

  • Работа с большими данными: Современные DT-системы используют не только физические модели, но и экспертные знания, что затрудняет автоматизированную настройку и оптимизацию.

Что не является цифровым двойником

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

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

Этапы разработки цифрового двойника

Определение целевой системы

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

  • Система находится на стадии концептуального проектирования. В этом случае создание цифрового двойника помогает в предварительных расчетах и подборе оптимальных характеристик системы. Используются CAD/CAM инструменты, которые позволяют сформировать цифровую модель.

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

Документирование системы

На этом этапе собирается вся доступная информация о системе, включая:

  • Алгоритмы управления (PID, MPC, методы на основе пространственного состояния);

  • Параметры датчиков и исполнительных механизмов;

  • Журналы отказов и неисправностей;

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

Мультидоменное моделирование

Созданная информационная база используется для формирования математических моделей системы. Определяются физические принципы (тепловые, механические, электрические, гидродинамические и цифровые компоненты) и выбираются соответствующие программные инструменты, такие как Comsol, Ansys, Matlab, Dymola.
При недостатке информации о некоторых элементах системы применяются модели на основе данных. В сложных системах возможно использование совместного моделирования (co-simulation), объединяющего несколько программных пакетов. Важно учитывать баланс между детализацией модели и вычислительными затратами, особенно если цифровой двойник должен работать в режиме реального времени.

Разработка цифрового двойника и согласование поведения

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

Валидация

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

Методология моделирования в инженерной практике

Обзор существующих подходов

Классический процесс управления включает этапы моделирования, анализа и проектирования MAD  (modeling, analysis and design). Данный подход основан на двух ключевых вопросах: «Какие требования предъявляются к системе?» и «Какие данные доступны для моделирования и проектирования регулятора?». На первом этапе создается математическая модель системы, описываемая передаточной функцией, пространством состояний или нелинейными зависимостями, полученными с помощью методов идентификации систем.

На втором этапе проводится анализ устойчивости системы, позволяющий выбрать оптимальную стратегию управления (PID, прогнозирующее управление, адаптивное или робастное управление и др.).

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

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

Адаптивная система управления с DT

Адаптивная система управления с DT

Оценка эффективности управления (CPA)

Оценка эффективности управления используется для измерения качества замкнутой системы и выбора оптимального алгоритма. Данный процесс требует стабильного режима работы системы, набора измерений с датчиков, методологии обработки данных (набор ключевых показателей эффективности, KPI) и программных инструментов анализа. На основе этих сигналов вычисляются KPI, включающие показатели переходного процесса, статистические характеристики, интегральные оценки ошибки и др. Использование цифрового двойника позволяет проводить CPA с учетом актуальной модели системы, даже при отсутствии некоторых реальных измерений. Кроме того, цифровой двойник позволяет тестировать различные стратегии управления (PID, MPC, LQG) и выбирать наиболее эффективную.

Диагностика отказов и управление техническим состоянием

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

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

Применение цифровых двойников для диагностики отказов представлено в различных статьях.

Оценка остаточного ресурса и цифровые двойники

Одним из наиболее полезных методов прогнозирования является оценка остаточного срока службы (Remaining Useful Life, RUL), которая оценивает срок службы объекта до того, как он достигнет критического состояния неисправности. Пример можно увидеть на графике.

График RUL

График RUL

Оценка может быть основана на одном или нескольких индикаторах работоспособности, соответствующих характеристикам сигнала, полученным из доступной информации системы, включая статистику. Таким образом, можно определить запас прочности для параметра компонентов до того, как они достигнут порога отказа. Чтобы узнать наиболее подходящий индикатор работоспособности для компонента, оцениваются три индикатора состояния: монотонность (monotonicity), прогнозируемость (prognosability) и трендоспособность (trendability).
Для переменной x с длиной N, которая оценивается в системах M, монотонность характеризует тенденцию признака по мере того, как система развивается к отказу, с положительным или отрицательным наклоном. Аналогично, прогнозируемость является мерой изменчивости признака при отказе относительно диапазона от его начальных до конечных значений. Наконец, трендоспособность обеспечивает меру сходства между траекториями признака, измеренными в многократных экспериментах по запуску до отказа.

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

  • Модели сходства (Similarity models) — требуют данных о предыдущих отказах системы.

  • Модели деградации (Degradation models) — основаны на знании порогов отказа.

  • Модели выживания (Survival models) — используют данные о времени работы системы до отказа, учитывая или не учитывая внешние факторы.

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

begin{align}S(t) &=phi + theta(t)t + epsilon(t), \S(t) &=phi + theta(t)e^{beta(t)t + epsilon(t) - sigma^2/2}end{align}

Эти модели учитывают следующие параметры:

  • Точка пересечения (intercept) phi — задаёт нижнюю или верхнюю границу предсказания.

  • Наклон модели (slope) theta(t) — случайная величина с нормальным распределением.

  • Аддитивный шум (additive noise) epsilon(t) — также описывается нормальным распределением с нулевым средним.

  • beta(t) — это случайная величина, моделируемая как гауссово распределение со средним значением и дисперсией:

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

Устройства периферийных (Edge) вычислений для цифровых двойников

Для реализации цифровых двойников в системах управления используются устройства периферийных (edge) вычислений. Edge-компьютинг — это вычислительная парадигма, в которой обработка данных выполняется ближе к их источнику, снижая нагрузку на облачные серверы. Такие устройства способны:

  • Запускать сложные вычислительные модели.

  • Подключаться к датчикам и исполнительным устройствам.

  • Обрабатывать данные в реальном времени.

  • Поддерживать промышленные протоколы связи.

Ранее я писал статью Edge платформа промышленного интернета вещей I-IoT и пример реализации Edge-платформы.

Edge-платформа

Edge-платформа

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

Интеллектуальная система

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

Интеллектуальное управление базируется на трех ключевых технологиях:

  • промышленный искусственный интеллект (IAI),

  • цифровой двойник (DT)

  • самонастраивающееся управление (SOC).

Промышленный AI (IAI) ориентирован на мониторинг, оптимизацию и управление физическими процессами в промышленности. Он широко применяется в Industry 4.0, включая обнаружение отказов, кибератак, машинное обучение и другие области. IAI обеспечивает аналитику в реальном времени, позволяя оценивать текущее состояние системы и прогнозировать её поведение.

Functional Mockup Unit (FMU)

FMI - это открытый стандарт для обмена динамическими имитационными моделями между различными инструментами в стандартизированном формате.

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

Functional Mock-up Unit, файл (с расширением.fmu), который содержит имитационную модель согласно стандарту FMI. Файл FMU - это zip-файл, который можно открыть с помощью стандартного zip-инструмента. Zip-файл содержит XML-файл, который определяет структуру модели (переменные имена, параметры, входы, выходы и т. д.), и по меньшей мере одну реализацию функций, указанных в стандарте FMI. Чаще всего это принимает форму двоичного типа, такого как dll. Бинарные файлы могут быть запущены только на платформе, для которой они скомпилированы.

Стандарт FMI определяет два различных вида FMU:

  1. Модель обмена (ME) – ME FMU представляют динамические системы дифференциальными уравнениями. Для имитации системы инструмент импорта должен подключить FMU к числовому решателю. Решатель задаёт внутреннее состояние FMU, запрашивает производные состояния и определяет размер шага и как вычислить состояние на следующем шаге времени.

  2. Ко-симуляция (CS) – CS FMU содержат свой собственный числовой решатель. Инструмент импорта устанавливает входы FMU, просит FMU сделать шаг вперед в данный момент времени и считывает выход FMU после завершения шага.

Версия 1.0 стандарта была выпущена в 2010 году. Он включает в себя все основные концепции FMU, такие как ME и CS FMU. Версия 2.0 была выпущена в 2014 году. Он добавляет некоторые функциональные возможности, такие как поддержка направленных производных.

Самооптимизирующееся управление (Self-Optimizing Control, SOC)

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

Существует несколько подходов к реализации SOC:

  • Методы поиска экстремума (extremum seeking) и отслеживание точки максимальной мощности (MPPT), применяемые при отсутствии точной информации о динамике системы.

  • Градиентные и безградиентные алгоритмы оптимизации в реальном времени для настройки контуров управления.

  • Повторяющаяся стратегия управления и итеративное обучение (repetitive control strategies, iterative learning control).

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

Пример структуры SOC-управления

Структура системы SOC-управления может быть представлена следующим образом.

Структурная схема SOC-управления

Структурная схема SOC-управления

Верхний уровень управления отвечает за оптимизацию, принимая в качестве входных данных эталонное значение r, сигнал ошибки e и выходную переменную y. На основе этих данных вычисляются оптимальные параметры контроллера c(s), который представляет собой PID-регулятор:

C(s)=K_p + frac{K_i}{s} + K_d s

Модель системы с передаточной функцией фильтра первого порядка с задержкой имеет следующий вид:

P(s)=frac{K}{T s + 1} e^{-Ls}

где K – коэффициент усиления системы, T – постоянная времени, L – запаздывание.

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

min(J)=w_1 OV(mu) + w_2 T_s(mu) + w_3 int^t_0 e^2(t, mu) dt

при ограничениях:

begin{aligned}OV(mu) &< A \T_s(mu) &< B \K_{p,min} &leq K_p leq K_{p,max}, \K_{i,min} &leq K_i leq K_{i,max}, \K_{d,min} &leq K_d leq K_{d,max}end{aligned}

где OV – процент перерегулирования, Ts – время выборки системы, w_1, w_2, w_3 – весовые коэффициенты, mu=k_p, k_i, k_d - пропорциональный, интегральный и дифференциальный коэффициенты усиления PID-регулятора, A и B соответствуют максимальному перерегулированию и времени установления. Оптимизация выполняется после каждого периода входного сигнала.

Алгоритм Nelder–Mead

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

Метод Nelder–Mead основан на симплексе — геометрической фигуре, состоящей из n+1 вершин, где n — количество переменных (размерность задачи). Например:

  • В 2D-пространстве симплекс — это треугольник.

  • В 3D-пространстве — тетраэдр.

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

Отражение (reflection)

  • Самая худшая точка (с наибольшим значением функции) отражается через центр остальных точек, создавая новую точку.

  • Если новая точка лучше, она заменяет старую.

Расширение (expansion)

  • Если отражённая точка оказалась хорошей, алгоритм пробует пойти ещё дальше в том же направлении.

Сжатие (contraction)

  • Если отражённая точка хуже, чем другие, но всё же лучше самой худшей точки, выполняется сжатие, перемещая точку ближе к центру.

Сжатие всего симплекса (shrink)

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

Однако классический алгоритм NM может застревать в локальном минимуме, особенно при решении неконвексных задач.
Для устранения этого недостатка представлен модифицированный алгоритм Globalized Constrained Nelder–Mead (GCNM). Основные этапы его работы включают:

  • Оценку значений функции,

  • Операции отражения, сжатия, расширения и уменьшения симплекса.

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

Пример оптимизации FMU модели.

В статье Field Oriented Control в OpenModelica я приводил пример использования и изменения модели на основе стандартной библиотеки Modelica. Для данного случая изменим модель SMPM_VoltageSource, и используем ее в модели транспортного средства SeriesHybrid.

Скопируем модель SMPM_VoltageSource в пользовательский пакет. Для регулированием скорости добавим PID-регулятор и блок gain k=1.5*smpm.p*0.505*0.1 для согласования сигналов. Modelica.Blocks.Interfaces.RealInput u служит входным интерфейсом задания скорости. Modelica.Mechanics.MultiBody.Interfaces.FlangeWithBearing flange и VehicleInterfaces.Mechanics.MultiBody.MultiBodyEnd служат для соединения с трансмиссией модели SeriesHybrid.

SMPM_VoltageSource модель с регулятором скорости

SMPM_VoltageSource модель с регулятором скорости

Подключим библиотеку VehicleInterfaces

Библиотека VehicleInterfaces

Библиотека VehicleInterfaces

Откроем пример SeriesHybrid и вместо двигателя driverMotor подключим нашу модель SMPM_VoltageSource. В этом примере можно использовать более сложную модель с PWM (широтно-импульсная модуляция) и инвертором, как показано в упомянутой выше статье. Таким образом можно также подключить батарею питания от генератора к инвертору. Но для данного примера была выбрана более простая модель по причине того, что вычисление и оптимизация модели с PWM занимает огромное время и вычислительные ресурсы.

SeriesHybrid модель с SMPM_VoltageSource

SeriesHybrid модель с SMPM_VoltageSource

Преобразуем модель SeriesHybrid в формат FMU. В OpenModelica - пкм -> export -> FMU. В Dymola - меню Simulation -> Translate -> FMU.

Для оптимизации воспользуемся функцией minimize пакета SciPy. Для симуляции FMU-модели используем пакет fmpy.

  • Укажем файл FMU-модели fmu_file = "C:/Users/user/Documents/Dymola/FOC_SeriesHybrid.fmu"

  • Составим список переменных для симуляции output.

  • Названия переменных можно посмотреть с помощью функции read_model_description и перебора modelVariables.

  • Создадим функцию для оптимизации def objective(params). В качестве параметров будем передавать коэффициенты PID-регулятора k, i, d = params

  • Время прогона симуляции для оптимизации stop_time = 0.5 - достаточно для этого случая, чтобы оценить критерии

  • Укажем списки переменных FMU-модели для симуляции и задания входных параметров input_values, output_values

  • Запуск симуляции в функции оптимизации result = simulate_fmu

  • Значение переменных модели симуляции result['sMPM_VoltageSource3_1.PID.u_s'] берем из переменной result

  • Составляем выражение стоимости для оценки оптимизации cost = speed_error + 0.01*tau. Я выбрал среднее значение ошибки регулирования скорости за период плюс 0.01 от максимального значения момента. Можно выбрать и другие переменные.

  • Указываем начальные данные оптимизируемых параметров initial_guess = [1, 0.1, 0] они могут отличаться от тех, что заданы в модели

  • Указываем желаемые границы параметров оптимизации bnds = ((1, 1), (0.001, 1), (0, 1))

  • Выполняем оптимизацию result = minimize. В качестве метода выберем 'Nelder-Mead' (можно пробовать и другие)

  • Возвращаем результат оптимизации result.x

  • Запускаем основной процесс симуляции results = simulate_fmu, и в качестве входных параметров указываем список коэффициентов PID-регулятора, полученных в результате оптимизации start_values=start_values

  • Строим графики полученных данных

from fmpy import read_model_description
from fmpy import simulate_fmu
import matplotlib.pyplot as plt
from scipy.optimize import minimize


fmu_file = "C:/Users/user/Documents/Dymola/FOC_SeriesHybrid.fmu"


output = [
    'currentSensor.currentSensor[1].i',
    'currentSensor.currentSensor[2].i',
    'currentSensor.currentSensor[3].i',
    'multiSensor.tau',
    'multiSensor.w',
    'w_ref.k'
]

model_desc = read_model_description(fmu_file)
# names = [v.name for v in model_desc.modelVariables if v.causality == 'parameter']
names = [v.name for v in model_desc.modelVariables]
print("Model variables:", names)

def objective(params):
    k, i, d = params
    start_time = 0.0
    stop_time = 0.5  

    # Define PI gains to test
    input_values = {
        'sMPM_VoltageSource3_1.PID.k': k,
        'sMPM_VoltageSource3_1.PID.Ti': i,
        'sMPM_VoltageSource3_1.PID.Td': d
    }

    output_values = [
        'sMPM_VoltageSource3_1.PID.k',
        'sMPM_VoltageSource3_1.PID.Ti',
        'sMPM_VoltageSource3_1.PID.Td',
        'sMPM_VoltageSource3_1.PID.u_s',
        'sMPM_VoltageSource3_1.PID.u_m',
        'sMPM_VoltageSource3_1.multiSensor.tau'
    ]

    try:
        result = simulate_fmu(fmu_file, 
                              start_time=start_time, 
                              stop_time=stop_time, 
                              start_values=input_values, 
                              output=output_values)
    except Exception as e:
        print(f"FMU simulation error: {e}")
        return float('inf') 

    # Extract error metrics safely
    speed_error = np.abs(result['sMPM_VoltageSource3_1.PID.u_s'] 
                         - result['sMPM_VoltageSource3_1.PID.u_m']).mean() if 'sMPM_VoltageSource3_1.PID.u_m' in result.dtype.names else float('inf')
    tau = np.abs(result['sMPM_VoltageSource3_1.multiSensor.tau']).max() if 'sMPM_VoltageSource3_1.multiSensor.tau' in result.dtype.names else float('inf')

    # Weighted Cost Function
    cost = speed_error + 0.01*tau
    return cost

initial_guess = [1, 0.1, 0]
bnds = ((1, 1), (0.001, 1), (0, 1))

# Run Nelder-Mead Optimization with Limits
result = minimize(objective, 
                  initial_guess, 
                  method='Nelder-Mead', 
                  bounds=bnds,
                  options={'disp': True})  # Limit iterations

# Print Optimized PI Coefficients
print("Optimized PI coefficients:", result.x)

start_values = {
    'sMPM_VoltageSource3_1.PID.k': result.x[0],
    'sMPM_VoltageSource3_1.PID.Ti': result.x[1],
    'sMPM_VoltageSource3_1.PID.Td': result.x[2]
}

results = simulate_fmu(fmu_file, 
                       start_time=0, 
                       stop_time=10, 
                        output=names,  
                        relative_tolerance=1e-6, 
                        output_interval=0.001,
                        start_values=start_values
                        )

time = results['time']

plt.figure(figsize=(20, 10))
plt.plot(time, results['sMPM_VoltageSource3_1.multiSensor.w'], label='pmsm speed')
plt.plot(time, results['sMPM_VoltageSource3_1.u']*0.1, label='PI ref')
plt.plot(time, results['brakes.wheelSpeed_1.w'], label='wheel speed')
plt.xlabel("Time")
plt.ylabel("Output")
plt.title("Simulation results")
plt.legend()
plt.grid(True)
plt.show()

В данном синтетическом примере в модели SMPM_VoltageSource были заданы коэффициенты PID-регулятора: k=5, Ti=0.1, Td=0. В результате оптимизации коэффициенты стали k=1, Ti=1, Td=0. Судя по графикам подгонка коэффициентов дает адекватные результаты.

Графики симуляции SeriesHybrid модели

Графики симуляции SeriesHybrid модели

На Youtube канале Modelica Association представлен вебинар The Potential of FMI for the Development of Digital Twins for Large Modular Multi-Domain Systems

Пример оптимизации работы цифрового двойника конвейерной линии

В работе Modeling the Operation of a Digital Twin of a Conveyor Line представлена
модель конвейерной линии с применением агентных моделей, которые описывают состояния агентов и, в сочетании с дискретно-событийными моделями, формируют сложные имитационные системы.

Модель конвейерной линии

Модель конвейерной линии

Целью исследования является оптимизация работы замкнутой конвейерной линии с использованием комплексной имитационной модели. Для достижения этой цели необходимо:

  1. Разработать структуру массового обслуживания для моделирования конвейерной линии;

  2. Создать дискретно-событийную модель конвейерной системы;

  3. Разработать агентные модели для описания состояний продукции и поддонов в процессе производства;

  4. Провести вычислительные эксперименты с комплексной моделью для анализа ее работы в различных режимах.

Разработка дискретно-событийной модели

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

Моделирование выполнено в среде AnyLogic 8.8.1. В качестве носителей продукции используются поддоны длиной 1 м. Обработка начинается с загрузки продукции на поддон на первом рабочем месте, затем проходит через 15 рабочих станций. После разгрузки на станции 4 поддон возвращается к станции 1 для загрузки новой продукции. Скорость движения поддонов составляет 0,3 м/с. В системе предусмотрены две зоны ожидания: Q1 — перед станцией 1 для пустых поддонов, и Q2 — перед станцией 4 для поддонов с обработанной продукцией.

Конвейерная линия в AnyLogic

Конвейерная линия в AnyLogic

Разработка агентной модели

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

Состояния поддона включают:

  • "Пустой" — ожидание загрузки продукции;

  • "На загрузке" — нахождение на станции загрузки продукции;

  • "В процессе" — движение с продукцией по станциям;

  • "На разгрузке" — нахождение на станции выгрузки продукции.

Состояния продукции включают:

  • "На складе" — ожидание поддона;

  • "В обработке" — перемещение по станциям;

  • "Брак" — продукция не прошла контроль качества;

  • "Готовая продукция" — успешно обработанный продукт.

Состояние "В обработке" включает этапы загрузки на поддон, обработки на станции и выход в состояние "Брак" или "Готовая продукция". Продукция, признанная бракованной, направляется в отдельный склад, а успешно обработанная — в один из трех складов по типу продукции.

Проведение экспериментов с комплексной моделью

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

Эксперимент 1: Определение оптимального количества поддонов

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

Для эксперимента заданы следующие параметры: скорость конвейера — 0,3 м/с, время обработки на станциях M2.1–M2.8 — 50 с, на станциях M3.1–M3.7 — 45 с, время ремонта станции — 600 с, время загрузки продукции — 7 с, время выгрузки — 5 с. Время эксперимента — 1 час.

Результаты моделирования показали, что оптимальное количество поддонов в системе составляет 80 штук. Увеличение их числа приводит к росту очередей и "застою" поддонов, снижая эффективность системы. При 80 поддонах достигается максимальная производительность — 58 изделий в час.

Эксперимент 2: Определение оптимального размера партий продукции

Как и в предыдущем эксперименте, продукция поступает в систему равномерными партиями, но их размер варьируется от 10 до 60 шт. Количество поддонов в системе фиксировано (50 шт.).

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

Разработанная комплексная модель позволила проанализировать работу замкнутой конвейерной линии и выявить оптимальные параметры системы. Дискретно-событийное моделирование в сочетании с агентным подходом обеспечило детальное описание процессов. Эксперименты показали, что:

  • Оптимальное количество поддонов составляет 80 шт., что обеспечивает максимальную пропускную способность в 58 изделий в час;

  • Оптимальный размер партий продукции позволяет минимизировать простои и сбалансировать загрузку станций.

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

Виртуальная оценка дебита нефтегазовой скважины

В нефтегазовой отрасли точные и надежные измерения объемов добычи нефти, газа и воды на отдельных скважинах имеют критически важное значение. Однако из-за сложности установки расходомеров измерения обычно проводятся раз в несколько месяцев. В качестве альтернативного метода применяется виртуальная оценка дебита (Virtual Rate Estimation), использующая модели скважин и данные с датчиков давления и температуры для расчета потоков в реальном времени.

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

Основные этапы процесса

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

  1. Выбирается модель скважины из системы управления моделями.

  2. Собираются данные с датчиков давления и температуры.

  3. Выполняется предварительная обработка данных, включая проверку их качества.

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

  5. Оценивается качество модели путем сравнения расчетных и измеренных значений.

  6. Полученные результаты сохраняются в базе данных для дальнейшего анализа и использования.

В статье First Principles and Machine Learning Virtual Flow Metering описывается Data-driven VFM подход, основанный на machine learning для оценке расхода дебита.

Virtual Flow Metering

Virtual Flow Metering

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

Заключение

В данной статье был рассмотрен концепт цифрового двойника, его архитектура и практические применения в различных отраслях. Было определено, что представляет собой цифровой двойник и чем он не является, с акцентом на его роль как постоянно обновляемой виртуальной копии физической системы. Интеграция цифровых двойников с IoT, AI и продвинутой аналитикой повышает уровень интеллектуальности систем, обеспечивая прогнозирование и принятие решений на основе данных.
Растущее количество научных публикаций и реальных внедрений подчеркивает возрастающее значение цифровых двойников в таких сферах, как производство, энергетика, нефтедобыча. Однако, несмотря на активное развитие технологии, остаются вызовы, связанные с масштабируемостью, интеграцией данных и вычислительной эффективностью.
В области систем управления цифровые двойники также находят применение, однако на практике многие разработки пока остаются на концептуальном уровне. Дальнейшие исследования и инженерные решения должны быть направлены на устранение этих барьеров путем создания стандартных методологий, совместимых архитектур и демонстрации реальных примеров использования цифровых двойников для оптимизации управления. По мере развития технологий цифровые двойники будут становиться неотъемлемой частью интеллектуальных автоматизированных систем, открывая новые перспективы для промышленности и науки.

Используемые источники

Автор: vladipirogov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js