FMU-генератор — инструмент TSMaster для упаковки модели в файл FMU. Поддерживаются стандарты FMI 3.0 и FMI 2.0, тип FMU — только Co-Simulation (CS), то есть FMU совместной симуляции. В статье — устройство окна генератора, параметры экспорта и пример совместной симуляции TSMaster и Simulink.

Ключевые слова: TSMaster, FMU, FMI, Co-Simulation, Simulink.

1. Назначение FMU-генератора

FMU — межъязыковой интерфейс симуляции, описывающий модель по стандарту FMI. Стандарт FMI определяет три типа FMU:

Тип FMUОписание
Model Exchange (ME)FMU описывает симуляцию математическими уравнениями. Инструмент импорта должен подключить FMU к численному решателю: решатель задаёт состояние FMU, запрашивает производные состояния, выбирает шаг и вычисляет состояние на следующем шаге.
Co-Simulation (CS)FMU содержит встроенный численный решатель. Инструмент импорта задаёт входы FMU, требует продвинуть модель на заданное время и читает выходы FMU.
Scheduled Execution (SE)Интерфейс планируемого исполнения раскрывает отдельные разделы модели; планировщик импортёра управляет выполнением каждого раздела по отдельности.

FMU-генератор TSMaster экспортирует FMU типа Co-Simulation версий FMI 2.0 и 3.0.

2. Окно FMU-генератора

Окно генератора состоит из четырёх областей: панель инструментов, настройки экспорта, область отображения и редактирования сигналов, браузер баз данных и системных переменных (рис. 2-1).

Интерфейс FMU-генератора
Рис. 2-1. Интерфейс FMU-генератора

2.1. Панель инструментов

Служит для экспорта FMU, удаления сигналов и обновления базы данных. Назначение кнопок показано на рис. 2-2.

Панель инструментов FMU-генератора
Рис. 2-2. Кнопки панели инструментов

2.2. Настройки экспорта

Здесь задаются идентификатор, описание, версия и тип FMI/FMU, шаг симуляции и тип RPC:

ПараметрОписание
ИдентификаторТолько буквы, цифры и подчёркивания; начинается с буквы или подчёркивания.
ОписаниеПроизвольные символы.
Версия FMU3.0 или 2.0.
Тип FMUПока поддерживается только Co-Simulation (CS).
ШагШаг совместной симуляции.
Тип RPCПока только локальный RPC; FMU с локальным RPC нельзя вызывать из самого TSMaster.

2.3. Область отображения и редактирования сигналов

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

3. Порядок работы с FMU-генератором

  1. Шаг 1. Выберите версию FMU и задайте идентификатор, описание, тип FMU, шаг симуляции и тип RPC.
  2. Шаг 2. Добавьте нужные сигналы или переменные из браузера баз данных и системных переменных.
  3. Шаг 3. В области сигналов измените категории сигналов и флажками подтвердите, что именно экспортируется.
  4. Шаг 4. Нажмите кнопку экспорта на панели инструментов и выберите путь — будет сгенерирован файл FMU.
  5. Шаг 5. Импортируйте FMU в симуляционную среду и выполните совместную симуляцию с TSMaster.

4. Пример: совместная симуляция TSMaster и Simulink

Пример демонстрирует связку TSMaster и Simulink: вход FMU — Torque, выход — Carspeed. Значение Torque приходит из Simulink, Carspeed вычисляется в TSMaster. Порядок действий:

  1. Шаг 1. В TSMaster сгенерируйте FMU версии 2.0 — конфигурация генератора на рис. 4-1.
  2. Шаг 2. Импортируйте FMU в Simulink и соберите модель по рис. 4-2: амплитуда sine wave — 10, смещение — 10, остальные параметры по умолчанию.
  3. Шаг 3. Создайте в TSMaster Python-мини-программу, имитирующую (виртуальную) зависимость между Torque и Carspeed (рис. 4-3).
  4. Шаг 4. Запустите симуляцию Simulink. Результат — на рис. 4-4: синяя линия — вход Torque, жёлтая — выход Carspeed.
Конфигурация FMU-генератора
Рис. 4-1. Конфигурация FMU-генератора в примере
Модель Simulink
Рис. 4-2. Модель Simulink
Конфигурация проекта TSMaster
Рис. 4-3. Конфигурация проекта TSMaster
Результат симуляции
Рис. 4-4. Результат совместной симуляции в Simulink

FMU-генератор входит в состав лицензии TSMaster FMU Generator и работает совместно с модулем TSMaster MATLAB Controller.