出口金宝app从模型到功能模型单元
出口的模型
出口仿真软件金宝app®在FMI 2.0版本中支持联合仿真的功能模拟单元(FMU)。金宝app要检查导出的块仍然是有效的Simulink模型,您还可以指导软件将FMU导入回Simulink模型,金宝app作为导出过程的一部分。
需求包括:
金宝app仿真软件编译器™
一个可写的文件夹,其中放置导出的FMU。
导出的模型可以有:
输入和输出数据类型:
双
,int32
,布尔
,字符串
矩阵
总线信号
可调参数,可以是模型参数、基本工作区或数据字典变量。
单元和描述。
当您将一个模型导出为一个独立的FMU时,来自Simulink的某些元数据也会随FMU一起导出。金宝app元数据包括:
模型描述
信号单元
参数的单位
信号的描述
参数描述
独立FMU
金宝app在2.0版本中,Simulink模型可以导出到独立的co-Simulation FMU。生成的FMU包包含以下文件:
modelDescription.xml
model.png(可选)
二进制文件\ win64 \ modelname.dll
,或二进制文件\ linux64 \ modelname.so
,或二进制文件\ darwin64 \ modelname.dylib
对于联合仿真模式,您可能会在导出的FMU中遇到预期的时间延迟。
FMU变量
FMUmodelDescription.xml
文件包含从Simulink模型转换的接口变量:金宝app
变量与
因果关系=“输入”
:由根导入块转换而来变量与
因果关系=“输出”
:由根输出端口块转换而来变量与
因果关系=“参数”
:由引用的运行时可调参数转换而来独立变量
“时间”
要生成FMU输入和输出,请在Simulink模型中定义根import和Outport块。金宝app生成的变量的名称由根导入或输出端口块名称转换而来,通过删除特殊字符和空白字符并避免重复。如果输入输出信号携带单元信息,则输出为单位
FMU变量的属性。如果输入/输出块下有非空的描述信息块的属性>一般,导出为描述
FMU变量的属性。
支持以下输入和输出数据类型:金宝app
双
(真实的FMI)int32
(FMI中的整数)布尔
(FMI中的布尔值)字符串
(FMI中的字符串)
如果模型根导入或输出块是非虚拟总线,单个总线元素将使用结构化命名约定扩展为变量(“。”)
.如果模型根导入或输出块是数组或矩阵,则单个标量元素将使用数组命名约定扩展为变量(“[]”)
.
将引用的变量导出为FMU参数,您可以:
定义一个变量。
定义一个Simul金宝appink Parameter对象。
确保变量和参数对象被Simulink块的可调参数直接引用。金宝app在FMU导出对话框中展开参数的细节……配置每个参数。您可以:
取消选择出口选项隐藏参数
修改出口的名字所以参数在FMU界面上以不同的名称显示。禁止使用特殊字符和重复名称。
集
单位
而且描述
通过单击参数名称,直接修改参数对象即可获得FMU参数变量如果FMU参数为
金宝app仿真软件。参数
,单击超链接即可修改单位
而且描述
变量的。如果FMU参数是常规MATLAB变量,单击超链接将打开模型资源管理器。你可以把MATLAB变量转换成a
金宝app仿真软件。参数
所以它可以携带单位
而且描述
.单位
而且描述
的FMU参数变量不能直接在FMU导出对话框中更新。你可以配置单位
而且描述
通过模型资源管理器,双击金宝app仿真软件。参数
在基本工作区中,等等。
支持以下参数数据类型:金宝app
双
(真实的FMI)int32
(FMI中的整数)布尔
或逻辑(布尔在FMI)
如果引用的参数是a结构体
,个人结构体
成员将使用结构化命名约定扩展为变量(“。”)
.如果引用的参数是数组或矩阵,单个标量元素将使用数组命名约定展开为变量(“[]”)
.
当带有模型引用金宝app块的Simulink模型导出到FMU时,您还可以导出从子模型提升的基本工作区变量、模型参数和实例参数。
在Simuli金宝appnk工具条上,在保存中,选择导出模型到独立的FMU查看导出带有内部变量的FMU的选项。
FMU解算器
固定步骤求解器支持独立的FMU导出。金宝app建议设置固定的基本采样时间(解算器>解算器的细节>固定的大小),然后导出模型。当在另一个环境中模拟独立的FMU时,通信步长必须是基本采样时间的整数倍。
FMU动态库
生成的FMU包含当前平台的动态库构建。默认的fmi2TypesPlatform
Value被使用。
所有要求和可选fmi2
可以调用FMI标准定义的函数。但是,下面的函数没有操作和返回fmi2OK
立即:
模型交换功能
函数访问或序列化
FMUstate
设置或获取输入或输出导数的函数
函数查询
fmi2DoStep
状态,或取消fmi2DoStep
计算变量方向导数的函数
使用FMU导出保存源代码
您可以将Simulink模型与C源金宝app代码一起导出到FMU。你可以检查一下保存源代码在导出模型到FMU联合仿真窗口或使用命令exportToFMU2CS(“mdlName”、“SaveSourceCodeToFMU”,“上”)
用C源代码将模型导出到FMU。
请注意
要使用C源代码将Simu金宝applink模型导出到FMU,请安装金宝app仿真软件编码器™
如果Simul金宝appink模型包含具有自定义数据类型或定点函数的模型引用,则导出带有源代码的FMU可能会由于中重复的头文件而导致错误_sharedutils
文件夹中。请按照生成共享实用程序代码的说明设置代码生成>接口>共享代码放置参数为'共享位置
'并重新生成FMU。
您可以将带有FMU导入块的Simu金宝applink模型导出为嵌套的独立FMU。当导出一个嵌套FMU时,Simulink将所有依赖的内部F金宝appMU打包到嵌套FMU的资源/文件夹中。当嵌套FMU在模拟环境中实例化时,所有内部FMU将共享由环境提供的相同回调函数,例如,记录器和内存分配函数。
指定附加文件
当将Simulink导出到独立的FM金宝appU时,您可以指定要包含在生成的FMU中的其他文件,例如资源、DLL等。这些文件的目标位置可以是:
< fmuroot > / <拱> / /二进制文件
-依赖的dll< fmuroot > /资源/
-数据文件、查找表等< fmuroot > /文档/
用户提供自己的帮助内容
有关在导出Simulink模型时指定附加文件的示例,请参见金宝app导出Simul金宝appink模型到独立的FMU与用户指定的文件和归档项目与线束模型.
出口保护模型
您可以导出受保护的Simulink金宝app模型。有关导出受保护模型的示例,请参见导出带有保护模金宝app型的Simulink模型和FMU导入块到独立的FMU.
限制
由于以下限制,您无法从Simulink模型生成FMU:金宝app
不支持可变步长求解器。金宝app
不支持非零模拟开始时间。金宝app
导出Simulin金宝appk模型
使用导出对话框
导出vdp
使用Simulink工具条的示例:金宝app模拟>保存>导出模型到独立FMU
打开模型
vdp
在“Simul金宝appink编辑器”中,导航到模拟>保存>独立FMU.
在Si金宝appmulink编辑器中,选择保存>出口到>FMU联合仿真.
在导出对话框中指定FMU的导出路径。
点击创建
默认情况下,Simuli金宝appnk创建FMU和一个利用模型,其依赖项存储在
垫
文件。然后将它们打包到存档项目(.mlproj
).您可以通过设置更改行为内容选项独立FMU.
使用编程接口
导出
vdp
示例到FMU,使用默认值exportToFMU2CS
函数。该命令创建FMU文件modelName.fmu
.缺省情况下,该命令还创建一个Simulink模型金宝appmodelName_fmu.slx
,其中包含与原始模型的FMU Co-Simulation块。如果您想检查导出FMU的完整性,请创建此模型。load_system (“vdp”) set_param (“vdp”,“SolverType”,“固定的”) exportToFMU2CS (“vdp”)
导出
vdp
实例到FMU,使用exportToFMU2CS
函数,但不创建Simulink模型。金宝app该命令创建FMU文件modelName.fmu
.load_system (“vdp”) set_param (“vdp”,“SolverType”,“固定的”) exportToFMU2CS (“vdp”,“CreateModelAfterGeneratingFMU”,“关闭”)
导出
vdp
实例到FMU,使用exportToFMU2CS
函数。为FMU创建一个模型,并使用原始模型的图像作为块图标。这个命令创建FMU文件,modelName.fmu
以及具有FM金宝appU Co-Simulation块的Simulink模型,其块图标为原始模型。exportToFMU2CS (vdp,“AddIcon”,“快照”)
不同工作流程的示例
下面的例子说明了如何在所有不同的场景下使用FMU导出:
另请参阅
exportToFMU2CS
|configureForDeployment
|金宝app仿真软件。SimulationInput
|世纪挑战集团
|deploytool
|sim卡