将模型导出为工具耦合FMU
集成Simulink金宝app®组件导入第三方软件,导出一个Simulink模型作为工具耦合功能模型单元(FMU)。金宝app当第三方工具运行FMU时,它会检出所需的许可证,并启动Simulink的本地安装以启动模型。金宝app工具耦合FMU支持FMU封装的固定步长金宝app和可变步长求解器。
使用项目导出FMU。打开模型并选择新>项目>来自此模型的新项目从模型创建项目。
您可以从项目中交互式地导出FMU。
在项目中,选择共享>工具耦合FMU.
在版权,描述,FMU图标字段。点击保存设置并导出为并提供一个名称。
生成的FMU包括模型实现,以及导出期间提供的元数据。
<?XML版本="1.0"编码="utf-8"?>
您还可以从命令行创建并导出一个项目到FMU,如下所示:
>> p = slproject.create('vdpProject') >> copyfile(which('vdp'), './vdpSlave.slx') >> p.d addfile ('./vdpSlave.slx') 金宝app>> Simulink.fmuexport.ExportSimulinkProjectToFMU(p,'vdpSlave.slx','-fmuname','vdpFMU')
要从命令行获得更多的FMU导出选项,键入:
帮助Sim金宝appulink.fmuexport.ExportSimulinkProjectToFMU
模型必须满足以下条件才能导出:
模型必须处于正常或加速模拟模式。
根输入和输出端口必须是以下数字数据类型之一:
双
int32
布尔
金宝appSimulink总线对象,所有元素都在其中
双
,int32
,或布尔
金宝app仿真软件。AliasType
,其中基类型解析为双
,int32
或布尔
如果联合仿真组件是从Simulink导出的FMU。金宝app该FMU的局部采样时间是原始模型的采样时间。
包括工具耦合FMU的可调参数
要包含可调参数:
从相关的Simulink项目中打开模型。金宝app
在Simulink金宝app模型中,单击建模选项卡并启动模型资源管理器。
选择Model Workspace并添加MATLAB®变量或Simulink参金宝app数。
对于添加并希望可调的每个参数,请在数据属性或金宝app仿真软件。参数窗格中,选择论点复选框。
点击应用.
在模型中引用可调参数。
导出工具耦合FMU。
使用导出的工具耦合FMU
导出的FMU需要在本地安装Simulink才能运行。金宝app协同仿真使用的MATLAB版本必须与导出FMU的MATLAB版本一致。在Windows上®,运行FMU的应用程序可以自动签出所需的许可证。对于其他操作系统,应用这些设置:
在Linux上®:
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:
/bin/glnxa64: /extern/bin/glnxa64 (csh/tcsh) export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}: /bin/glnxa64: /extern/bin/glnxa64 (bash) 在Mac OS:
setenv DYLD_LIBRARY_PATH ${DYLD_LIBRARY_PATH}:<安装文件夹>/bin/maci64:<安装文件夹>/extern/bin/maci64 (csh/tcsh) export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:<安装文件夹>/bin/maci64:<安装文件夹>/extern/bin/maci64 (bash)
为Mac OS,由于系统完整性保护(SIP),setenv
命令不能用于启动新进程的应用程序,例如MATLAB。遵循在MAC中添加库路径到“DYLD_LIBRARY_PATH”设置DYLD_LIBRARY_PATH
来< InstallationFolder > / bin / maci64: < InstallationFolder > /走读生/ bin / maci64
.
在运行FMU之前,必须从操作系统控制台设置MATLAB会话。在设置此会话之后,启动第三方应用程序并导入工具耦合FMU。每个FMU实例都需要一个新的MATLAB会话。
开始一个专用会话MATLAB
如果导入FMU的应用程序运行FMU的单个实例,则可以使用MATLAB启动会话。
> > shareMATLABForFMUCoSim
shareMATLABForFMUCoSim
为来自外部工具的请求提供可用的当前MATLAB会话,以共同模拟导入的FMU。在此会话中连接FMU时,将加载Simulink编辑器和Simulink项目,并自动启动金宝app联合仿真。您可以使用此会话在运行协同仿真时从命令窗口暂停、恢复协同仿真、调优参数和绘制信号。如果协同仿真已完成、由您停止或被运行时错误中断,MATLAB将关闭、卸载Simulink编辑器和Simulink项目,并丢弃对模型的更改。金宝app如果发生错误,它将显示在导入该FMU的模拟工具中。每个会话可以同时连接到一个FMU实例。
从操作系统启动专用会话
如果导入FMU的应用程序运行多个FMU实例,则可以使用操作系统控制台启动专用的MATLAB会话。运行matlabroot
在MATLAB中求出来< matlabroot >.
然后,用< matlabroot >:
在Windows上:
< matlabroot > \工具箱\ \ fmu_share \ \ fmu-matlab-setup脚本共享。cmd [NumberOfMATLABSessions]
Linux操作系统Mac OS:
< matlabroot > /工具箱/共享/ fmu_share /脚本/ fmu-matlab-setup [NumberOfMATLABSessions]
输入参数NumberOfMATLABSessions
是一个整数,表示启动此脚本时要启动的MATLAB会话数。如果NumberOfMATLABSessions
不存在,则不会启动MATLAB会话。然后,程序进入命令行界面模式并等待命令。
通过键入查看可用的命令帮助
:
> help命令列表:quit—关闭所有共享的matlab并退出。list -列出共享的MATLABs。start NUMBER_OF_MATLABS -启动NUMBER_OF_MATLABS更多的MATLABs。停止NUMBER_OF_MATLABS -停止NUMBER_OF_MATLABS。ignore -在启动MATLABs时停止询问硬件核心数。清理MATLAB_NUMBER的MATLAB工作区。对所有的matlab使用0。help -打印命令列表。
为每个FMU启动一个会话以并发运行。如果只有一个FMU,输入:
> start 1 .单击“确定”
如果有3个fmu同时运行,输入:
> start 3 .单击“确定”
在一台机器上只能运行一个MATLAB管理工具。