Экспорт модель как связывающий инструмент FMU

Интегрировать компоненты Simulink® в стороннее программное обеспечение, экспорт модель Simulink как связывающий инструмент функциональный модуль макета (FMU). Когда сторонняя программа запускает FMU, она проверяет необходимые лицензии и запускает локальную установку Simulink, чтобы запустить модель. Эта функция требует Связи Инструмента Экспорт Co-Simulation FMU для пакета поддержки Simulink. Используйте Add-On Explorer, чтобы загрузить и установить пакет поддержки.

Используйте Проект Simulink для экспорта FMU. Откройте модель и выберите File> Simulink Project> Create Project from Model, чтобы создать проект из модели.

Вы можете экспорт FMU из проекта в интерактивном режиме.

  1. В проекте выберите Share> FMU.

  2. Введите в Авторском праве, Описании и Полях значка 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

Прежде чем можно будет запустить 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.

Похожие темы

Была ли эта тема полезной?