VizSim: опыт реализации проектов KICS-SIM & PLANT-SIM

PHYGITALISM
Mar 22, 2020 · 8 min read

В этой заметке мы хотим поделиться своим опытом в VizSim (визуализация симуляций) — рассказать, как мы реализовали два стенда с 3D-визуализацией физических процессов предприятий: PLANT-SIM и KICS-SIM.

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

Каждый стенд включает в себя десктопное приложение с визуализацией (Unity3d), клиентское приложение для управления визуализацией и симуляцией (iOS приложение), сервер для синхронизации всех компонентов (python, asyncio) и производственный логический контроллер (PLC), подключенный по протоколу modbus. Изначально стенды были физическими, но 3D-визуализация значительно упростила транспортировку. Сейчас мы работаем над тем, чтобы перенести один из проектов с десктопного приложения в WEB — о нем расскажем в следующей заметке.

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

1.1. Сyber-physical systems или CPS

Кибер-физические системы тесно связывают вычислительные и физические элементы, данный вид систем затрагивает самые разные сферы нашей современной жизни.

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

1.2. Digital Twin

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

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

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

1.3. Synthetic data generation

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

Чтобы применять ML алгоритмы в CPS системах, ML-модели необходимо обучать на некоторых данных. Имея большой объем информации от физического объекта в его исправной работе, мы испытываем нехватку данных, когда “что-то пошло не так”. Имея цифровую копию, мы можем собрать недостающую информацию о системе в различных, даже самых невероятных аварийных ситуациях, не нанося ущерб реальным объектам.

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

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

2. Plant simulation

2.1. Model

Для создания модели обратимся к математике, а именно к системе дифференциальных уравнений, описывающих физические процессы. Их можно описать разными способами. Например, с помощью Python (такой подход был применен для Tenessee).

Или в среде динамического моделирования вроде MATLAB Simulink (Taneco). Также есть Dymola, OpenModelica, MapleSim и др. Каждая со своими плюсами и минусами. Например, у OpenModelica, как оказалось, плохо работают решатели (solvers) дифференциальных уравнений для переходных процессов.

Однако, собрать схему в этих средах — это часть задачи. Необходимо предусмотреть ее связь с остальными компонентами стенда, чтобы запускать симуляции на сервере. Для экспорта моделей из сред моделирования был использован FMI-стандарт. https://fmi-standard.org К слову, он поддерживает cовместное моделирование, это означает, что вы можете связать две отдельно созданные модели. Сопоставляем интерфейс FMI с Python библиотекой PyFMI или пакетом FMPy.

У FMI есть особенность — для каждой ОС генерируется FMU-файл (содержит имитационную модель, соответствующую стандарту FMI) предназначенный для одной конкретной ОС. Поэтому необходимо генерировать FMU-модель в среде, в которой он будет в дальнейшем использован. Мы используем Linux.

Модель может быть создана даже как программа для Arduino. Так было в проекте KICS-SIM. Стенд представлял собой физический макет, транспортируемый в нескольких кейсах, и управляемый Arduino Mega. Мы не стали переписывать модель на другие языки, а проэмулировали Arduino в среде Proteus, переконфигурировав последовательные входы и выходы на схеме.

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

2.2. PLC

На предприятии процессами управляют промышленные логические контроллеры (PLC). Они отвечают за часть, которая управляет коэффициентами в мат. модели. Физически это может означать открытие клапана на определенную величину, или ускорение вращения турбин в реакторе. Для организации связи по этим интерфейсам в промышленности широко применяется протокол Modbus, по которому к модели подается управляющее воздействие. Может использоваться для передачи данных через последовательные линии связи (Modbus RTU) или Ethernet (Modbus TCP/IP).

Если рассматривать кейсы с реальным оборудованием, то мы работали с двумя PLC: от Schneider Electric и от Siemens. Контроллеры комплектуются в зависимости от ваших потребностей. К ним поставляется специализированное ПО для написания прошивки, а также фирменные карты памяти (вы не можете использовать обычную SD-карту для прошивки). Некоторые языки программирования контроллеров: LD/Ladder Diagram (релейно-контактные Схемы), FBD/Function Block Diagram (функциональные блоковые диаграммы), ST/Structured Text (структурированный текст) В нашем случае использовали FBD.

Если возможности использовать реальный контроллер нет, логику PLC можно реализовать на Python используя для общения с моделью все тот же протокол Modbus и библиотку pymodbus.

Или еще один вариант — симулировать программу контроллера. Мы использовали этот подход в одном из стенде с PLC SE Modicon 340. Но учтите, что в Unity Pro PLC Simulator возможна симуляция, только если вы используете Modbus TCP/IP. С использованием Modbus RTU эмуляция невозможна.

2.3. Visualization

3D модели объектов были созданы на основе референсов с предприятий, а анимации физических процессов приближены к аналогичным процессам, протекающим на производстве. В числе анимаций учтены и внештатные ситуации, такие как: перелив цистерн, замерзание жидкостей, взрывы насосов, реактора. Здесь стоит отметить, что первые стенды были реализованы в виде десктопных приложений, а ТЗ позволяло выдвинуть высокие требования к производительности машины, на которой будет запущен стенд. Последний стенд был реализован в виде WEB-приложения, что наложило свои ограничения на детализацию моделей, особенно на визуализацию жидкостей. Про оптимизацию моделей под WEB чуть позже мы выпустим отдельную заметку.

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

2.4. Admin panel

Для управления симуляцией было реализовано приложение под IPad. Помимо выбора настроек симуляции, ее запуска/остановки с выбранным сценарием, переключения с одного предприятия на другое, в приложении было реализовано Master-Slave взаимодействие для управления визуализацией. В iOS приложение интегрирована Unity сцена, при вращении которой в десктопном приложении также изменяется положение камеры. Управление камерой из админ-панели с планшета оказалось очень удобной функцией для демонстрации решения на выставках.

В последнем стенде админ-панель, как и визуализация, была реализована в WEB, с возможностью переключения предустановленных видов из админ-панели. Из интересных новых функций было добавлен json-редактор сценариев симуляций.

2.5. MLAD

Серия проектов связана не только с визуализацией симуляции, как выставочное решение, но и служит генератором синтетических данных для алгоритма машинного обучения по предсказанию возможных аварий на производстве — MLAD (Machine Learning for Anomaly Detection).

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

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

Подводим итоги

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

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

Больше примеров проектов, основанных на концепции VizSim:

В статье приведены возможные варианты реализации компонентов системы на основе реализованных нами проектов: Taneco, KICS и Tennessee (рабочие названия в соответствии с названиями предприятий). Соберем все особенности в одном месте, зафиксировав в таблице.

Автор

Екатерина Симонова

Python developer, PHYGITALISM

kate.sim@phygitalism.com

PHYGITALISM

Создаем проекты на стыке XR, ML и других интерактивных…

PHYGITALISM

Создаем проекты на стыке XR, ML и других интерактивных технологий

PHYGITALISM

Written by

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

PHYGITALISM

Создаем проекты на стыке XR, ML и других интерактивных технологий

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store