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

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

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

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

  • Simulink Compiler™

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

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

  • Типы входных и выходных данных: дважды, int32, boolean, строка

  • Матрицы

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

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

  • Модуль и описание.

Автономный 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 путем удаления специальных символов и знаков пробела и предотвращения копий. Если сигнал ввода/вывода несет информацию о модуле, он экспортируется как Unit атрибут переменной FMU. Если блок ввода/вывода имеет непустую информацию об описании под Block Properties> General, это экспортируется как Description атрибут переменной FMU.

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

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

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

  • boolean (Boolean в FMI)

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

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

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

  • задайте переменную.

  • задайте объект Simulink Parameter.

Убедитесь, что переменная и объект параметра являются непосредственно ссылками настраиваемыми параметрами блоков Simulink. В диалоговом окне Экспорта FMU расширьте Parameter Details..., чтобы сконфигурировать каждый параметр. Вы можете:

  • Отменяйте опцию Exported, чтобы скрыть параметр

  • Измените Exported Name, таким образом, параметр отображен с другим именем в интерфейсе FMU. Не используйте специальные символы и двойные названия.

  • Установите Unit и Description из переменной параметра FMU путем нажатия на название параметра, и непосредственно изменения объекта параметра. Вы не можете сконфигурировать Unit FMU и Description использование Окна MATLAB.

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

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

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

  • boolean или логический (Boolean в 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 с исходным кодом C, установите Simulink Coder™

Если модель 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 и модель тестовой обвязки с ее зависимостями, сохраненными в MAT файл. Это затем упаковывает их в заархивированный проект (.mlproj). Можно изменить поведение опцией установки Contents к Standalone FMU (.fmu0 only.

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

  • Экспортируйте 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')

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

| | | |

Похожие темы