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

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

Используйте проект для экспорта FMU. Откройте модель и выберите New > 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

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

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

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

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

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

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

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

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

  3. Выберите Рабочее Пространство Модели и добавьте MATLAB® переменная или параметр Simulink.

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

  5. Нажмите Apply.

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

  7. Экспорт FMU муфты инструмента.

Используйте экспортированный 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.

Запуск выделенного сеанса из 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.

Похожие темы