主要内容

出口金宝app模型到功能模型单元

出口的模型

出口仿真软件金宝app®模型到功能模型单元(FMU),支持FMI 2.0版本的联合仿真。金宝app要检查导出的块仍然是一个有效的Simulink模型,您还可以指示软件将FMU导入回Simulink模金宝app型,作为导出过程的一部分。

需求包括:

  • 金宝app仿真软件编译器™

  • 一个可写文件夹,将导出的FMU放入其中。

导出的模型可以有:

  • 输入和输出数据类型:double, int32, boolean, string

  • 矩阵

  • 总线信号

  • 可调参数。可调参数可以是模型参数、基本工作区或数据字典变量。

  • 单位和描述。

独立FMU

金宝app在2.0版本中,Simulink模型可以导出到独立联合仿真FMU。生成的FMU包包含以下文件:

  • modelDescription.xml

  • model.png(可选)

  • 二进制文件\ win64 \ modelname.dll,或二进制文件\ linux64 \ modelname.so,或二进制文件\ darwin64 \ modelname.dylib

对于联合仿真模式,您可能会在导出的FMU中遇到预期的时间延迟。

FMU变量

FMU modelDescription.xml文件包含从Simulink模型转换而来的接口变量:金宝app

  • 变量的因果关系= ' input ':从根导入块转换

  • 因果关系= ' output '的变量:从根输出端口块转换而来

  • 带有因果关系= ' parameter '的变量:从引用的运行时可调参数转换而来

  • 自变量“时间”

为了生成FMU输入和输出,在Simulink模型中定义根输入和输出块。金宝app通过删除特殊字符和空白字符并避免重复,生成的变量的名称从根导入/输出端口块名称转换而来。如果输入/输出信号携带单元信息,则输出为单位FMU变量的属性。如果输入/输出块下有一个非空的描述信息块的属性>一般,则导出为描述FMU变量的属性。

支持以下输入/输出数据类型:金宝app

  • double (FMI中的实数)

  • int32 (FMI中的整数)

  • 布尔值(FMI中的布尔值)

  • 字符串(FMI中的字符串)

如果模型根导入或输出端口块是非虚拟总线,则使用结构化命名约定(' . ')将单个总线元素扩展为变量。如果模型根导入或输出端口块,将使用数组命名约定('[]')将单个标量元素扩展为变量。

要将引用的变量导出为FMU参数,可以这样做

  • 定义一个变量。

  • 定义一个Simul金宝appink Parameter对象。

确保变量和参数对象通过Simulink块的可调参数直接引用。金宝app在FMU Export对话框中展开参数的细节……配置每个参数。您可以:

  • 取消选择出口选项隐藏参数

  • 修改出口的名字所以参数在FMU界面上以不同的名称显示。不要使用特殊字符和重复的名称。

  • 单位而且描述的FMU参数变量,点击参数名称,直接修改参数对象。不能配置FMU单位而且描述使用MATLAB窗口。

支持以下参数数据类型:金宝app

  • double (FMI中的实数)

  • int32 (FMI中的整数)

  • 布尔或逻辑(FMI中的布尔)

如果引用的形参是结构,则各个结构成员将使用结构化命名约定(' . ')扩展为变量。如果引用的参数是数组或矩阵,则使用数组命名约定('[]')将单个标量元素展开为变量。

FMU解算器

对于独立的FMU导出支持固定步骤求解器。金宝app建议设置固定的基本采样时间(解算器>解算器的细节>固定的大小),然后导出模型。在其他环境下模拟独立FMU时,通信步长必须是基本采样时间的整数倍。

FMU动态库

生成的FMU包含针对当前平台的动态库构建。使用默认的fmi2TypesPlatform值。

FMI标准定义的所有必需的和可选的fmi2函数都可以调用。然而,以下函数没有操作,并立即返回fmi2OK:

  • 模型交换功能

  • 函数访问或序列化FMUstate

  • 函数设置或获取输入或输出导数

  • 命令功能查询fmi2DoStep状态或取消fmi2DoStep

  • 计算变量方向导数的函数

用FMU导出保存源代码

您可以将Simulink模型与C源金宝app代码一起导出到FMU。你可以检查一下保存源代码导出模型到FMU联合仿真窗口或使用命令行API,exportToFMU2CS(“mdlName”、“SaveSourceCodeToFMU”,“上”)用C源代码将模型导出到FMU。

请注意

要用C源代码将Simul金宝appink模型导出到FMU,请安装金宝app仿真软件编码器™

如果Simul金宝appink模型包含带有自定义数据类型或定点函数的模型引用,则导出带源代码的FMU可能会出错,因为_sharedutils文件夹中。按照“生成共享实用程序代码”的说明进行设置代码生成>接口>共享代码放置参数为'共享位置,并重新生成FMU。

限制

您不能从Simulink模型生成FMU,由于以下限制:金宝app

  • 不支持变步长求解器金宝app

  • 不支持非零模拟开始时间金宝app

  • 金宝app不支持引用外部资源(数据文件、mex或m文件)的Simulink模型金宝app

导出Simulin金宝appk模型

使用“导出”对话框

导出vdp使用Simulink工具条的金宝app例子:模拟>保存>导出模型到独立FMU

  1. 打开模型,vdp

  2. 在Si金宝appmulink编辑器中,Simulink工具条:模拟>保存>独立FMU

  3. 在Si金宝appmulink编辑器中,选择保存>导出模型到>FMU联合仿真

  4. 在“导出”对话框中指定导出路径。

  5. 单击Create

    默认情况下,Simuli金宝appnk创建FMU和一个依赖项存储在文件。然后将它们打包到存档项目(.mlproj).您可以通过设置来改变行为内容选项独立的FMU(。fmu0只

使用编程接口

  • 使用默认值将vdp示例导出到FMUexportToFMU2CS函数。这个命令创建了FMU文件,modelName.fmu.默认情况下,它还会创建一个Simulink模型,金宝appmodelName_fmu.slx,它包含与原始模型的FMU联合仿真块。如果您想检查导出的FMU的完整性,则创建此模型。

    load_system (“vdp”) set_param (“vdp”“SolverType”“固定的”) exportToFMU2CS (“vdp”

  • 使用exportToFMU2CS函数将vdp示例导出到FMU,但不要创建Simulink模型。金宝app这个命令创建了FMU文件,modelName.fmu

    load_system (“vdp”) set_param (“vdp”“SolverType”“固定的”) exportToFMU2CS (“vdp”“CreateModelAfterGeneratingFMU”“关闭”
  • 将vdp示例导出到FMUexportToFMU2CS函数。为FMU创建一个模型,并使用原始模型的图像作为块图标。这个命令创建了FMU文件,modelName.fmu,以及具有FMU金宝app联合仿真块的Simulink模型,其块图标为原始模型。

    exportToFMU2CS (vdp,“AddIcon”,“快照”)

另请参阅

||||

相关的话题