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

Чтобы интегрировать компоненты Simulink® в стороннее программное обеспечение, экспортируйте модель Simulink как связывающий инструмент функциональный модуль макета (FMU). Когда сторонняя программа запускает FMU, она проверяет необходимые лицензии и начинает локальную установку Simulink, чтобы запустить модель. Связывающие инструмент FMUs поддерживают решатели переменного шага и фиксированный шаг.

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

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

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

  2. Введите в 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

Модель должна удовлетворить этим условиям для экспорта:

  • Модель должна быть в Нормальном или режиме симуляции Акселератора.

  • Корневые порты ввода и вывода должны иметь числовой тип данных.

Если компонент co-симуляции является FMU, экспортируемым от Simulink. локальный шаг расчета, для которого FMU является шагом расчета исходной модели.

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

Включать настраиваемые параметры:

  1. Откройте модель из связанного проекта Simulink.

  2. Из модели Simulink кликните по вкладке Modeling и запустите Model Explorer.

  3. Выберите Model Workspace и добавьте переменную MATLAB® или параметр Simulink.

  4. Для каждого параметра вы добавляете и хотите настраиваемый, в Data Properties или панели Simulink.Parameter, устанавливаете флажок Argument.

  5. Нажмите Apply.

  6. Сошлитесь на настраиваемые параметры в модели.

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

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

Экспортируемый 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 ${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.

Запустите специализированный сеанс с MATLAB

Если приложение, которое импортирует FMU, запускает один экземпляр FMU, можно использовать MATLAB, чтобы запустить сеанс.

>> shareMATLABForFMUCoSim

Это выделяет текущий сеанс работы с MATLAB, доступный для запросов от внешнего инструмента до co-simulate импортированный FMU. Когда FMU соединяется, этот сеанс, редактор Simulink и проект Simulink загружаются, и co-симуляция запускается автоматически. Можно использовать этот сеанс, чтобы приостановить, возобновить co-симуляцию, а также настройки параметров или сигналы графика из командного окна, в то время как co-симуляция запускается. Если co-симуляция закончена, зашла к пользователю, или прервала ошибкой периода выполнения, завершениями 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

Если существует три FMUs, запускающиеся одновременно, введите:

> start 3

Только один инструмент управления MATLAB должен работать на одной машине.

Похожие темы