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

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

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

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

  • Simulink Compiler™

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

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

  • Типы входных и выходных данных: дважды, int32, булевская переменная, строка

  • Матрицы

  • Соедините шиной сигналы

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

Автономный FMU

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

  • modelDescription.xml

  • model.png (optional)

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

Вы можете испытать ожидаемую задержку экспортируемого FMU для режима Co-Simulation.

Переменные FMU

Файл FMU modelDescription.xml содержит взаимодействующие через интерфейс переменные, преобразованные из модели Simulink:

  • Переменные с причинной связью =’input’: преобразованный от корневого блока Inport

  • Переменные с причинной связью =’output’: преобразованный от корневого блока Outport

  • Переменные с причинной связью =’parameter’: преобразованный от Настраиваемых параметров Во время выполнения, на которые ссылаются,

  • Независимая переменная 'время'

Чтобы сгенерировать ввод и вывод FMU, задайте корневой блок Inport и Outport в модели Simulink. Имя сгенерированной переменной преобразовано от корневого имени блока Inport/Outport путем удаления специальных символов и знаков пробела и предотвращения копий.

Следующие типы данных ввода/вывода поддерживаются:

  • дважды (Действительный в FMI)

  • int32 (Целое число в FMI)

  • булевская переменная (булевская переменная в FMI)

  • строка (Строка в FMI)

Если корневой блок Inport или Outport модели будет невиртуальной шиной, отдельные элементы шины будут расширены до переменных с помощью структурированного соглашения о присвоении имен (‘. ’). Если корневой блок Inport или Outport модели, отдельные скалярные элементы будут расширены до переменных с помощью соглашения о присвоении имен массивов (‘ []’).

Чтобы экспортировать переменные, на которые ссылаются, как параметр FMU, вы можете

  • задайте переменную. Используйте переменную в блоке Simulink с настраиваемым параметром и убедитесь Code Generation> Optimization>, поведение параметра Default установлено в 'Tunable' (или параметр модели 'InlineParams' устанавливается на off)

  • задайте объект Simulink Parameter. Используйте объект в блоке Simulink с настраиваемым параметром и убедитесь, что Классом памяти объекта является ‘ExportedGlobal’.

Имя сгенерированной переменной преобразовано с названия параметра путем удаления специальных символов и предотвращения копий.

Следующие типы данных параметров поддерживаются:

  • дважды (Действительный в FMI)

  • int32 (Целое число в FMI)

  • булевская переменная или логический (булевская переменная в FMI)

Если параметр, на который ссылаются, будет struct, отдельные члены struct будут расширены до переменных с помощью структурированного соглашения о присвоении имен (‘. ’). Если параметр, на который ссылаются, будет массивом или матрицей, отдельные скалярные элементы будут расширены до переменных с помощью соглашения о присвоении имен массивов (‘ []’).

Решатель FMU

Решатели фиксированного шага поддерживаются для автономного экспорта FMU. Рекомендуется установить фиксированный основной шаг расчета (Solver> Solver details> Fixed-step size) прежде, чем экспортировать модель. При симуляции Автономного FMU в другой среде коммуникационный неродной размер должен быть интегральным кратным основной шаг расчета.

FMU динамическая библиотека

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

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

  • Функции Exchange модели

  • Доступ функций или сериализация FMUstate

  • Функции устанавливающие или добирающиеся производные ввода или вывода

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

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

Сохраните исходный код с экспортом FMU

Можно экспортировать модель Simulink в FMU наряду с исходным кодом C. Можно проверять Save Source Code в окно Export Model to FMU Co-Simulation или использовать API командной строки, exportToFMU2CS('mdlName','SaveSourceCodeToFMU','on') экспортировать модель в FMU с исходным кодом C.

Если модель Simulink содержит модели - ссылки с пользовательскими типами данных, или функции фиксированной точки, экспортируя FMU с исходным кодом могут ошибка, должная скопировать заголовочные файлы в _sharedutils папка. Следуйте инструкциям на, Генерируют Разделяемый Служебный Код, чтобы установить Code Generation> Interface> параметр Shared Code Placement к 'Shared Location'и регенерируйте FMU.

Ограничения

Вы не можете сгенерировать FMU из модели Simulink, из-за этих ограничений:

  • Решатели переменного шага не поддерживаются

  • Ненулевое время начала симуляции не поддерживается

  • Модель Simulink, что ссылки внешние ресурсы (файлы данных, mex или m файлы) не поддерживаются

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

Используйте диалоговое окно экспорта

Экспортируйте vdp пример с помощью панели инструментов Simulink: Simulation> Save> Export Model To Standalone FMU

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

  2. В редакторе Simulink, панели инструментов Simulink: Simulation> Save> Standalone FMU.

  3. В редакторе Simulink выберите Save> Export Model к> Co-симуляция FMU.

  4. В диалоговом окне экспорта задайте путь, чтобы экспортировать FMU.

  5. Нажмите Create

    Simulink создает файл FMU, modelName.fmu и опционально модель Simulink, modelName_fmu.slx.

Используйте программируемый интерфейс

  • Экспортируйте vdp пример в FMU использование exportToFMU2CS по умолчанию функция. Эта команда создает файл FMU, modelName.fmu. По умолчанию это также создает модель Simulink, modelName_fmu.slx, который содержит блок FMU Co-Simulation с исходной моделью. Создайте эту модель, если вы хотите проверять целостность экспортируемого 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 Co-Simulation, значок блока которого является исходной моделью.

    exportToFMU2CS('vdp','AddIcon','snapshot')

Смотрите также

| | | |

Похожие темы