Сообщество Engee

Универсальный механизм

Автор
avatar-alexevsalexevs
Notebook

Косимуляция "Универсальный механизм" и Engee: осциллятор

В этом примере мы рассмотрим интеграцию Engee с программным комплексом "Универсальный механизм" (УМ) на примере косимуляции. В УМ запустим 3-D симуляцию перемещения осциллятора, а в Engee - модель формирования внешней силы осциллятора и считывания переменных из модели УМ.

Введение

Косимуляция (Co-simulation) - процесс совместного, синхронизированного моделирования объекта/системы или её составных частей в разных системах имитационного моделирования. При помощи встроенных инструментов работы с внешним оборудованием и программным обеспечением в Engee есть возможность реализовать такой процесс.

Программный комплекс "Универсальный механизм" (УМ, Universal Mechanism, UM) предназначен для моделирования динамики и кинематики плоских и пространственных механических систем. В нём можно разработать 3-D механическую систему любой сложности, определять и рассчитывать, а также визуализировать переменные моделируемой системы. Кроме этого, в УМ есть инструменты для подключения внешних интерфейсов, описанных, например, в специализированных DLL-библиотеках. Этим способом и воспользуемся для реализации косимуляции.

Модель осциллятора в УМ

Один из базовых примеров моделирования в УМ, описанный в руководстве пользователя - груз на пружине (или осциллятор). По умолчанию в установленном пакете программы УМ он располагается в директории ...\UM Software Lab\Universal Mechanism\10\SAMPLES\TUTORIAL\oscillator\.

Для работы с моделью нам понадобятся две программы - UM Input для параметрирования модели осциллятора и UM Simulation для его моделирования. Они обе доступны в триальной версии программного комплекса на сайте разработчика.

В процессе моделирования будем пользоваться следующими инструментами UM Simulation:

  • Анимационное окно

  • Мастер переменных

  • Графическое окно

  • Инспектор моделирования объекта

image.png

Модель Engee

Модель примера - universal_mechanism_oscillator.engee

Блоки "Константа" - Fx, Fy, Fz будут формировать входные значения для модели УМ. После добавления в шину они передаются в блок UM Cosimulation из раздела "Оборудование" библиотеки блоков Engee. Этот же блок будет передавать из модели УМ считываемые сигналы. После блока Селекции шины они записываются для вывода на графики.

image.png

Интеграция UM и Engee

DLL-библиотека

Для синхронизации приёма/передачи данных из/в Engee используется клиент-серверная DLL библиотека Engee_UM.dll, работающая в контексте интегрирующего решателя УМ. В ней определены порты для приёма/передачи данных, в соответствии с портами, указанными в блоке UM Cosimulation в модели Engee:

Порт приёма сигналов в УМ: 7489
Порт передачи сигналов в УМ: 7490

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

Файл конфигурации

Следующий шаг подготовки к косимуляции - создание и добавление файла с названием settings.cfg, где описываются основные параметры сигналов - имена, количество, входные значения параметров моделирования, необходимые для отображения в УМ. Файл для текущего примера подготовлен заранее. Он содержит следующее описание сигналов:

MODEL_NAME OscillatorExample \
INPUT_SIGNAL_COUNT 3 \
OUTPUT_SIGNAL_COUNT 3 \
MODEL_PARAM_COUNT 3 \
INPUT_SIGNAL_NAMES dX dY dZ \
OUTPUT_SIGNAL_NAMES Fx Fy Fz \
MODEL_PARAM_NAMES Cx Cy Cz \
INIT_MODEL_PARAM 2000 2000 2000

Этот файл необходимо поместить в папку с исполняемым файлом UM Simulation umsimul.exe, по умолчанию это:

C:\Program Files\UM Software Lab\Universal Mechanism\9\bin\umsimul.exe

Подготовка модели осциллятора

Сконфигурируем входные параметры самой модели осциллятора, выполнив следующие шаги:

  • Откроем пример осциллятора в UM Input.

  • Добавим биполярную силу "Внешняя сила" с линейным характером.

  • Приложение силы: Тело1 - груз (Brick), Тело2 - подвес (Top).

  • Параметрами fx, fy, fz определим Амплитуду, Частоту и Силу (F0) добавленной силы.

  • Сохраним модель.

um_input.png

Добавленные параметры fx, fy, fz будут передаваться в модель УМ из Engee.

Мастер связи с внешними библиотеками

Теперь установим связь параметров модели УМ с параметрами, сконфигурированными ранее для приёма/передачи из/в Engee. Для этого выполним следующие шаги:

  • Запустим UM Simuliation и откроем модель осциллятора.

  • Откроем Мастер связи с внешними библиотеками.

  • Добавим путь к внешней библиотеке Engee_UM.dll.

  • Выберем внешнюю библиотеку, после чего отобразятся пустые строки входных и выходных величин.

  • Откроем мастер переменных, из вкладки "Линейные переменные" перенесём проекции координат груза (r:x(Brick), r:y(Brick), r:z(Brick)) в строки входных величин (dX, dY, dZ) мастера связи, а из вкладки "Все силы" - параметры внешней силы fx, fy, fz для определения выходных величин Fx, Fy, Fz. В итоге, настроенные связи в мастере отобразятся следующим образом:

image.png

Подключение Engee

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

Косимуляция

Перейдём к косимуляции. После подготовки и настройки связи с Engee выполним следующие шаги:

  • Запустим модель Engee.

  • По информационному сообщению в окне клиентской программы Engee убедимся, что объект Um создан.

  • Запустим интегрирование в УМ.

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

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

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

bandicam2025_08_0512_36_26_466_ezgif_com_crop.gif

Результаты моделирования

В Engee и Универсальном механизме наблюдается синхронное изменение графика координаты груза по оси Z:

um_plots_snapshot.png

Заключение

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