Интегрировать компоненты Simulink® в стороннее программное обеспечение, экспорт модель Simulink как связывающий инструмент функциональный модуль макета (FMU). Когда сторонняя программа запускает FMU, она проверяет необходимые лицензии и запускает локальную установку Simulink, чтобы запустить модель. Эта функция требует Связи Инструмента Экспорт Co-Simulation FMU для пакета поддержки Simulink. Используйте Add-On Explorer, чтобы загрузить и установить пакет поддержки.
Используйте Проект Simulink для экспорта FMU. Откройте модель и выберите File> Simulink Project> Create Project from Model, чтобы создать проект из модели.
Вы можете экспорт FMU из проекта в интерактивном режиме.
В проекте выберите Share> FMU.
Введите в Авторском праве, Описании и Полях значка FMU. Нажмите Save Settings и Export как и обеспечьте имя.
Сгенерированный 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
Модель должна удовлетворить эти условия для экспорта:
Модель должна быть в Нормальном или режиме моделирования Акселератора.
Корневые порты ввода и вывода должны иметь числовой тип данных.
Прежде чем можно будет запустить FMU, необходимо запустить сервер с консоли операционной системы.
На Windows®:
<SupportPackageRoot>\toolbox\shared\fmu_share\script\fmu-matlab-setup.cmd
На Linux® и Mac OS:
<SupportPackageRoot>/toolbox/shared/fmu_share/script/fmu-matlab-setup
Запустите matlabshared.supportpkg.getSupportPackageRoot
в MATLAB®, чтобы узнать <SupportPackageRoot>. Сервер запускается и ожидает команды. Смотрите доступные команды путем ввода 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
Если существует три FMUs, запускающиеся одновременно, введите:
> start 3
Только один инструмент управления MATLAB должен работать на единственной машине.
Экспортируемый FMU требует, чтобы локальная установка Simulink запустилась. Версия MATLAB, используемая для co-моделирования, должна совпасть с версией 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 ${LD_LIBRARY_PATH}:<InstallationFolder>/bin/glnxa64:<InstallationFolder>/extern/bin/glnxa64 (csh/tcsh) export DYLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:<InstallationFolder>/bin/glnxa64:<InstallationFolder>/extern/bin/glnxa64 (bash)
Для Mac OS, из-за Защиты целостности системы (SIP), команда setenv
не работает на приложения, который запускает новые процессы, такие как MATLAB. Следуйте https://www.mathworks.com/matlabcentral/answers/170268-how-do-i-set-environment-variables-on-mac-os-x, чтобы установить DYLD_LIBRARY_PATH
на <InstallationFolder>/bin/glnxa64:<InstallationFolder>/extern/bin/glnxa64
.
Можно теперь запустить стороннее приложение и импортировать связывающий инструмент FMU. Каждый экземпляр FMU требует нового сеанса работы с MATLAB.