主要内容

出口金宝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解算器

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

FMU动态库

生成的FMU包含当前平台的动态库构建。默认的fmi2TypesPlatformValue被使用。

所有要求和可选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

  1. 打开模型vdp

  2. 在“Simul金宝appink编辑器”中,导航到模拟>保存>独立FMU

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

  4. 在导出对话框中指定FMU的导出路径。

    FMU导出对话框

  5. 点击创建

    默认情况下,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导出:

另请参阅

|||||

相关的话题