Экспорт моделей Simulink ® в функциональный макет (FMU), поддерживающий совместное моделирование в FMI версии 2.0. Чтобы убедиться, что экспортированный блок по-прежнему является допустимой моделью Simulink, можно также направить программное обеспечение на импорт FMU обратно в модель Simulink как часть процесса экспорта.
Требования включают в себя:
Симулинк Compiler™
Папка для записи, в которую можно поместить экспортированный FMU.
Экспортируемые модели могут иметь:
Типы входных и выходных данных: double, int32, boolean, string
Матрицы
Сигналы шины
Настраиваемые параметры. Параметр должен ссылаться на переменную глобальной рабочей области.
Модели Simulink можно экспортировать в автономный модуль совместного моделирования FMU в версии 2.0. Созданный пакет FMU содержит следующие файлы:
modelDescription.xml
model.png (optional)
binaries\win64\modelname.dll, или binaries\linux64\modelname.so, или binaries\darwin64\modelname.dylib
В экспортируемом FMU для режима совместного моделирования может возникнуть ожидаемая задержка по времени.
Файл FMU modelDescription.xml содержит переменные интерфейса, преобразованные из модели Simulink:
Переменные с causality = «input»: преобразованы из корневого блока Inport
Переменные с causality = «output»: преобразованы из корневого блока Outport
Переменные с causality = «parameter»: преобразованы из ссылочных настраиваемых параметров среды выполнения
Независимая переменная «time»
Чтобы создать входные и выходные данные FMU, определите корневой блок Inport и Outport в модели Simulink. Имя созданной переменной преобразуется из корневого имени блока ввода/вывода путем удаления специальных и пустых символов и исключения дубликатов.
Поддерживаются следующие типы данных ввода/вывода:
double (Реал в FMI)
int32 (целое число в FMI)
boolean (логическое значение в FMI)
строка (строка в FMI)
Если корневой блок Inport или Outport модели является невиртуальной шиной, отдельные элементы шины будут расширены до переменных с использованием соглашения о структурированном именовании («».). Если корневой блок модели Inport или Outport, отдельные скалярные элементы будут расширены до переменных с помощью соглашения об именовании массивов («[]»).
Чтобы экспортировать переменные, на которые имеются ссылки, в качестве параметра FMU, можно
определите переменную. Используйте переменную в блоке Simulink с настраиваемым параметром и убедитесь, что для параметра По умолчанию (Code Generation > Optimization > Default) задано значение «Tunable» (или для параметра модели «InlineParams» задано значение off)
определите объект Simulink Parameter. Используйте объект в блоке Simulink с настраиваемым параметром и убедитесь, что класс хранения объекта равен "ExportedGlobal’.
Имя создаваемой переменной преобразуется из имени параметра путем удаления специальных символов и исключения дубликатов.
Поддерживаются следующие типы данных параметров:
double (Реал в FMI)
int32 (целое число в FMI)
логическое или логическое (логическое в FMI)
Если ссылочным параметром является struct, отдельные элементы struct будут расширены до переменных с помощью соглашения о структурированном именовании («».). Если ссылочным параметром является массив или матрица, отдельные скалярные элементы будут расширены до переменных с помощью соглашения об именовании массивов («[]»).
Решатели с фиксированным шагом поддерживаются для автономного экспорта FMU. Перед экспортом модели рекомендуется установить фиксированное основное время выборки (Решатель > Сведения о решателе > Фиксированный размер шага). При моделировании автономного FMU в другой среде размер шага связи должен быть кратным времени основной выборки.
Динамическая библиотека FMU
Созданный FMU содержит динамическое построение библиотеки для текущей платформы. Используется значение fmi2TypesPlatform по умолчанию.
Можно вызвать все требуемые и необязательные функции fmi2, определенные стандартом FMI. Однако следующие функции не работают и возвращаются fmi2OK немедленно:
Функции обмена моделями
Функции доступа или сериализации FMUstate
Настройка функций или получение производных входных или выходных данных
Функции, запрашивающие состояние fmi2DoStep или отменяющие fmi2DoStep
Функция вычисления направленной производной переменных
Модель Simulink можно экспортировать в FMU вместе с исходным кодом C. Можно установить флажок Сохранить исходный код (Save Source Code) в окне Экспорт модели в совместное моделирование FMU (Export Model to FMU Co-Simulation) или использовать API командной строки. exportToFMU2CS('mdlName','SaveSourceCodeToFMU','on') для экспорта модели в FMU с исходным кодом C.
Если модель Simulink содержит ссылки на модель с пользовательскими типами данных или функциями с фиксированной точкой, экспорт FMU с исходным кодом может привести к ошибке из-за дублирования файлов заголовка в _sharedutils папка. Следуйте инструкциям в разделе Создание общего служебного кода, чтобы задать для параметра Создание кода > Интерфейс > Размещение общего кода значение 'Shared Location'и регенерировать FMU.
Невозможно создать FMU из модели Simulink из-за следующих ограничений:
Решатели с переменным шагом не поддерживаются
Ненулевое время начала моделирования не поддерживается
Модель Simulink, которая ссылается на внешние ресурсы (файлы данных, mex или m-файлы), не поддерживается
Экспорт vdp пример использования панели инструментов Simulink: Моделирование > Сохранить > Экспорт модели в автономный FMU
Откройте модель, vdp
В редакторе Simulink панель инструментов Simulink: Моделирование > Сохранить > Автономный FMU.
В редакторе Simulink выберите «Сохранить» > «Экспортировать модель в» > «Совместное моделирование FMU ».
В диалоговом окне экспорта укажите путь для экспорта FMU. 
Щелкните Создать (Create)
Simulink создает файл FMU, modelName.fmu и дополнительно модель Simulink,modelName_fmu.slx.
Экспорт примера vdp в FMU с использованием значения по умолчанию exportToFMU2CS функция. Эта команда создает файл FMU modelName.fmu. По умолчанию также создается модель Simulink, modelName_fmu.slx, которая содержит блок совместного моделирования FMU с исходной моделью. Создайте эту модель, если требуется проверить целостность экспортируемого FMU.
load_system('vdp') set_param('vdp', 'SolverType', 'Fixed-step') exportToFMU2CS('vdp')
Экспортируйте пример vdp в FMU с помощью функции exportToFMU2CS, но не создавайте модель Simulink. Эта команда создает файл FMU modelName.fmu.
load_system('vdp') set_param('vdp', 'SolverType', 'Fixed-step') exportToFMU2CS('vdp','CreateModelAfterGeneratingFMU','off')
Экспорт примера vdp в FMU с помощью exportToFMU2CS функция. Создайте модель для FMU и используйте изображение исходной модели в качестве значка блока. Эта команда создает файл FMU modelName.fmu и модель Simulink с блоком совместного моделирования FMU, значок блока которого является исходной моделью.
exportToFMU2CS('vdp','AddIcon','snapshot')configureForDeployment | deploytool | mcc | sim | Simulink.SimulationInput