exponenta event banner

Экспорт модели как FMU инструментальной муфты

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

Используйте проект для экспорта FMU. Откройте модель и выберите команду Создать > Проект > Создать проект из этой модели, чтобы создать проект из модели.

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

  1. В проекте выберите «Общий доступ» > «FMU инструментальной муфты».

  2. Введите в поля Авторское право, Описание и Значок FMU. Щелкните Сохранить настройки и экспортировать как и укажите имя.

Сгенерированный 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. Выберите Модель (Model) Рабочая область (Workspace) и добавьте переменную MATLAB ® или параметр Simulink .

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

  5. Нажмите кнопку «Применить».

  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:

    <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.

Связанные темы