exponenta event banner

Экспорт моделей Simulink в функциональные макеты

Экспорт моделей

Экспорт моделей Simulink ® в функциональный макет (FMU), поддерживающий совместное моделирование в FMI версии 2.0. Чтобы убедиться, что экспортированный блок по-прежнему является допустимой моделью Simulink, можно также направить программное обеспечение на импорт FMU обратно в модель Simulink как часть процесса экспорта.

Требования включают в себя:

  • Симулинк Compiler™

  • Папка для записи, в которую можно поместить экспортированный FMU.

Экспортируемые модели могут иметь:

  • Типы входных и выходных данных: double, int32, boolean, string

  • Матрицы

  • Сигналы шины

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

Автономный FMU

Модели Simulink можно экспортировать в автономный модуль совместного моделирования FMU в версии 2.0. Созданный пакет FMU содержит следующие файлы:

  • modelDescription.xml

  • model.png (optional)

  • binaries\win64\modelname.dll, или binaries\linux64\modelname.so, или binaries\darwin64\modelname.dylib

В экспортируемом FMU для режима совместного моделирования может возникнуть ожидаемая задержка по времени.

Переменные 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

Созданный FMU содержит динамическое построение библиотеки для текущей платформы. Используется значение fmi2TypesPlatform по умолчанию.

Можно вызвать все требуемые и необязательные функции fmi2, определенные стандартом FMI. Однако следующие функции не работают и возвращаются fmi2OK немедленно:

  • Функции обмена моделями

  • Функции доступа или сериализации FMUstate

  • Настройка функций или получение производных входных или выходных данных

  • Функции, запрашивающие состояние fmi2DoStep или отменяющие fmi2DoStep

  • Функция вычисления направленной производной переменных

Сохранение исходного кода с помощью экспорта FMU

Модель 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-файлы), не поддерживается

Экспорт модели Simulink

Диалоговое окно «Экспорт»

Экспорт vdp пример использования панели инструментов Simulink: Моделирование > Сохранить > Экспорт модели в автономный FMU

  1. Откройте модель, vdp

  2. В редакторе Simulink панель инструментов Simulink: Моделирование > Сохранить > Автономный FMU.

  3. В редакторе Simulink выберите «Сохранить» > «Экспортировать модель в» > «Совместное моделирование FMU ».

  4. В диалоговом окне экспорта укажите путь для экспорта FMU.

  5. Щелкните Создать (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')

См. также

| | | |

Связанные темы