Чтобы интегрировать Simulink® компоненты в стороннее программное обеспечение, экспорт модели Simulink как функционального модуля макета (FMU) связывания инструментов. Когда сторонняя программа запускает FMU, он проверяет необходимые лицензии и запускает локальную установку Simulink, чтобы запустить модель. FMU инструментальной связи поддерживают решатели с фиксированным шагом и переменным шагом, которые инкапсулирует FMU.
Используйте проект для экспорта FMU. Откройте модель и выберите New > Project > New Project from this Model, чтобы создать проект из модели.
Можно экспортировать FMU из проекта в интерактивном режиме.
В проекте выберите Share > Tool-Coupling FMU.
Введите Copyright, Description и FMU Icon поля. Нажмите Save Settings and Export as и укажите имя.
Сгенерированный FMU включает реализацию модели, а также метаданные, предоставляемые во время экспорта.
<?xml version="1.0" encoding="utf-8"?> <fmiModelDescription author="" copyright="" description="" fmiVersion="2.0" generationDateAndTime="2018-08-16T15:51:48Z" generationTool="Simulink (R2018b)" guid="5bd096be-a08d-020e-fc96-847aa21def5b" license="" modelName="vdpSlave" variableNamingConvention="structured" version="1.8">
Можно также создать и экспортировать проект в FMU из командной строки следующим образом:
>> p = slproject.create('vdpProject') >> copyfile(which('vdp'), './vdpSlave.slx') >> p.addFile('./vdpSlave.slx') >> Simulink.fmuexport.ExportSimulinkProjectToFMU(p,'vdpSlave.slx','-fmuname','vdpFMU')
Для получения дополнительных опций экспорта FMU из командной строки введите:
help Simulink.fmuexport.ExportSimulinkProjectToFMU
Модель должна удовлетворять этим условиям для экспорта:
Модель должна быть в режиме симуляции Normal или Accelerator.
Корневые входные и выходные порты должны быть численного типа данных.
Если компонентом ко-симуляции является FMU, экспортированный из Simulink. локальный шаг расчета для этого FMU является шагом расчета исходной модели.
Чтобы включить настраиваемые параметры:
Откройте модель из связанного проекта Simulink.
В модели Simulink щелкните вкладку Modeling и запустите Model Explorer.
Выберите Рабочее Пространство Модели и добавьте MATLAB® переменная или параметр Simulink.
Для каждого параметра, который вы добавляете и хотите настроить, на панели Data Properties или Simulink.Parameter установите флажок Argument.
Нажмите Apply.
Ссылка на настраиваемые параметры в модели.
Экспорт FMU муфты инструмента.
Для выполнения экспортированного FMU требуется локальная установка Simulink. Версия MATLAB, используемая для совместного моделирования, должна совпадать с версией MATLAB, в которой экспортируется FMU. В Windows®приложение, которое запускает FMU, может автоматически проверять требуемые лицензии. Для других операционных систем примените следующие настройки:
На Linux®:
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:<InstallationFolder>/bin/glnxa64:<InstallationFolder>/extern/bin/glnxa64 (csh/tcsh) export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:<InstallationFolder>/bin/glnxa64:<InstallationFolder>/extern/bin/glnxa64 (bash)
На Mac OS:
setenv DYLD_LIBRARY_PATH ${DYLD_LIBRARY_PATH}:<InstallationFolder>/bin/maci64:<InstallationFolder>/extern/bin/maci64 (csh/tcsh) export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:<InstallationFolder>/bin/maci64:<InstallationFolder>/extern/bin/maci64 (bash)
Для Mac OS, из-за защиты целостности системы (SIP), setenv
команда не работает для приложений, которые запускают новые процессы, такие как MATLAB. Следуйте пути добавления библиотеки к «DYLD_LIBRARY_PATH» в MAC, чтобы задать DYLD_LIBRARY_PATH
на <InstallationFolder>/bin/maci64:<InstallationFolder>/extern/bin/maci64
.
Перед запуском FMU необходимо настроить сеанс работы с MATLAB с консоли операционной системы. После настройки этого сеанса запустите стороннее приложение и импортируйте FMU с инструментальной связью. Для каждого образец FMU требуется новый сеанс работы с MATLAB.
Если приложение, импортирующее FMU, запускает один образец FMU, можно использовать MATLAB, чтобы начать сеанс.
>> shareMATLABForFMUCoSim
Это посвящает текущий сеанс работы с MATLAB, доступный для запросов от внешнего инструмента, совместному моделированию импортированного FMU. Когда FMU соединяется с этим сеансом, редактор Simulink и проект Simulink загружаются, и совместное моделирование начинается автоматически. Можно использовать этот сеанс, чтобы приостановить, возобновить совместное моделирование, а также настроить параметры или построить сигналы из командного окна во время выполнения ко-симуляции. Если совместное моделирование завершено, остановлено пользователем или прервано ошибкой во время выполнения, MATLAB закрывает, выгружает редактор Simulink и проект Simulink и отбрасывает изменения в модели. Если возникает ошибка, она отображается в инструменте симуляции, который импортирует этот FMU. Каждый сеанс может подключаться к одному образцу FMU одновременно.
Если приложение, импортирующее FMU, запускает несколько образцы FMU, можно использовать консоль операционной системы, чтобы запустить специальные сеансы работы с MATLAB.
В Windows:
<matlabroot>\toolbox\shared\fmu_share\script\fmu-matlab-setup.cmd
На Linux и Mac OS:
<matlabroot>/toolbox/shared/fmu_share/script/fmu-matlab-setup
Управляемый matlabroot
в MATLAB, чтобы узнать <matlabroot>. Программа настройки запускается и ожидает команду. Смотрите доступные команды путем ввода help
:
> help Command list: quit - Close all shared MATLABs and exit. list - List shared MATLABs. start NUMBER_OF_MATLABS - Start NUMBER_OF_MATLABS more MATLABs. stop NUMBER_OF_MATLABS - Stop NUMBER_OF_MATLABS MATLABs. ignore - Stop asking about the hardware core count when launching MATLABs. clean MATLAB_NUMBER - Clean up the MATLAB workspace for MATLAB #MATLAB_NUMBER. Use 0 for all MATLABs. help - Print the command list.
Запустите один сеанс для одновременного запуска каждого FMU. Если существует один FMU, введите:
> start 1
Если одновременно работают три FMU, введите:
> start 3
На одной машине должен работать только один инструмент управления MATLAB.