主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

FMU

在模型中包含功能模型单元(FMU)

  • FMU block

库:
Simulink Extras / FMU Import

描述

FMU 模块将现有的功能模型单元 (FMU) 导入到 Simulink® 中。该模块会根据您要导入的现有 FMU 自动选择 FMU 模式:

  • 联合仿真 - 集成实现功能模型接口 (FMI) 联合仿真接口的 FMU。这些 FMU 可能包含用于工具耦合的本地求解器。

  • 模型交换 - 集成实现 FMI 模型交换接口的 FMU。这些 FMU 不包含局部求解器,相反,它们从 Simulink 继承了求解器。

该模块支持 FMI 版本 1.0、2.0 和 3.0。对于 FMI 版本 2.0 和 3.0,如果您的 FMU 同时包含联合仿真和模型交换元素,则该模块会检测它们并提示您选择希望该模块运行的模式。

要使用此模块,您必须首先有一个现有的 FMU,从另一个工具导出,或用 C 语言编写。

示例

端口

输出

全部展开

占位符端口不产生任何输出。当实际的 FMU 导入到模块时,会配置输入和输出端口。输入和输出端口都支持数值和字符串数据类型。

参数

全部展开

指定 FMU 的名称,带或不带文件扩展名。此输入区分大小写。FMU 必须存在于 MATLAB® 路径上。

要指定 FMU 名称,请在 FMU 名称文本框中输入名称。

当您点击确定时,该模块会创建一个 /slprj/_fmu/unique_ID 文件夹,其中包含解压的文件和完整的文件层次结构。

依赖关系

指定 FMU 名称时,模块对话框将更新为包含四个选项卡:

  • 参数

  • 仿真

  • 输入

  • 输出

编程用法

模块参数FMUName
类型:字符向量
值: FMU 的名称,带或不带文件扩展名
默认值:' '

参数

此选项卡列出了 FMU 中定义的参数。

  • 要仅显示您感兴趣的参数,请在筛选器字段中输入搜索字符串。该字符串可以与参数名称或描述中的文本匹配。

  • 在参数表中,您可以在字段中更改参数的值。

  • 导入的参数名称最多为 55 个字符。

您可以通过使用 set_param 函数设置 FMUParamMapping 模块参数来更改结构化模型参数的层次结构。该模块参数可以设置为 InheritFlatStructured。默认设置为 Inherit。将其设置为 Flat 可将结构化模型参数分离为具有相应参数名称和值的单独参数。将其设置为 Structured 将模型参数组合成参数值的结构。

输入

此选项卡列出了 FMU modelDescription.xml 中指定的输入变量。

指定结构化输入端口的变量。

要按名称筛选变量,请在文本框中键入变量名称。

变量表列出了层次结构顶部节点及其子节点的变量及其值,您可以在此选项卡上编辑其中的许多变量。

  • 名称 - 变量名称。这是不可编辑的。

  • 可见性 - 选中此复选框可为变量模块上的输入端口。清除此复选框可删除端口。

    在顶级节点上选中此复选框可使子节点显示为该模块的一个端口。

    注意

    当您点击应用时,模块端口的数量会发生变化。请记住相应地添加或删除连接。

  • 开始 - 添加在 modelDescription.xml 中定义的开始值。您不能:

    • 当相应的输入端口可见时更改值。

    • 向非叶节点添加值。(您只能编辑叶节点的值。)

  • 总线对象名称 - 设置与端口对应的总线对象变量。默认情况下,该变量使用 modelDescription.xml 中定义的结构化变量名。要在工作区中创建新变量,请使用 fmudialog.createBusType

更改任何变量值都会启用将输出恢复为默认设置按钮,您可以点击该按钮来恢复原始设置。

您可以通过使用 set_param 函数设置 FMUInputMapping 参数来更改 FMU 模块的输入端口的布局。该参数可以设置为 InheritFlatStructured。默认设置为 Inherit。将参数设置为 Flat 可将总线输入端口分成单独的总线元素信号输入端口。将参数设置为 Structured 会将各个总线元素输入端口组合成一个总线输入端口。

输出

此选项卡列出了 FMU modelDescription.xml 中指定的输出变量和内部变量。

指定结构化输出端口的变量。

要按名称筛选变量,请在文本框中键入变量名称。

变量表列出了层次结构顶部节点及其子节点的变量及其值,您可以在此选项卡上编辑其中的许多变量。

  • 名称 - 变量名称。这是不可编辑的。

  • 可见性 - 选中此复选框可为变量模块上的输出端口。清除此复选框可删除端口。如果此 FMU 中存在内部变量,则可以启用或禁用各个内部变量的可见性。如果选择了内部变量,它会创建一个额外的输出端口。

    在顶级节点上选中此复选框可使子节点显示为该模块的一个端口。

    注意

    当您点击应用时,模块端口的数量会发生变化。请记住相应地添加或删除连接。

  • 开始 - 添加在 modelDescription.xml 中定义的开始值。您不能更改或添加输出变量的值。

  • 总线对象名称 - 设置与端口对应的总线对象变量。默认情况下,该变量使用 modelDescription.xml 中定义的结构化变量名。要在工作区中创建新变量,请使用 fmudialog.createBusType

更改任何变量值都会启用将输出恢复为默认设置按钮,您可以点击该按钮来恢复原始设置。

您可以通过使用 set_param 函数设置 FMUOutputMapping 参数来更改 FMU 模块的输出端口的布局。该参数可以设置为 InheritFlatStructured。默认设置为 Inherit。将参数设置为 Flat 可将总线输出端口分成单独的总线元素信号输出端口。将参数设置为 Structured 会将各个总线元素输出端口组合成一个总线输出端口。

仿真

选中此复选框可以指定 FMU 的容值。否则,请清除此复选框。

依赖关系

此参数仅当您的 FMU 版本或模式支持容值时才适用。

编程用法

模块参数FMUIsToleranceUsed
类型:字符向量
值: on | off
默认值:'off'

FMU 相对容值(%),指定为标量。​

依赖关系

此参数仅当您的 FMU 版本或模式支持容值时才适用。

编程用法

模块参数FMUToleranceValue
类型:字符向量
值:1E-3 | 标量
默认值:'1E-3'

选择用于仿真 FMU 的二进制文件。当 FMU 包含 Linux® 二进制文件时,将 Windows® 上的 FMU 的此选项设置为 linux64

依赖关系

在 Windows 上使用 Linux 二进制文件仿真 FMU 需要安装以下产品:

  • Simulink Compiler™

  • FMU Builder for Simulink 支持包

  • Windows Subsystem for Linux (WSL) 版本 2.0.9.0 或更高版本

有关详细信息,请参阅Simulate FMU with Linux Binary on Windows (Simulink Compiler)

编程用法

模块参数FMUSelectedBinary
类型:字符向量
值:x86_64-windows | x86-windows | linux64
默认值:'win64'

以事件模式仿真 FMU。​

依赖关系

仅当 FMU 支持事件模式时才启用此参数,并且仅当您的 FMU 在联合仿真模式下使用且与 FMI 3.0 标准兼容时才适用。

编程用法

模块参数CSEventModeEnabled
类型:字符向量
值: on | off
默认值:'on'

仿真期间的通信步长,指定为标量。指定模块的仿真时间时刻之间的时间间隔。有关详细信息,请参阅计时注意事项

大多数情况下,为防止意外行为,请将此值设置为值。要从驱动模块或模型求解器继承采样时间,请将此参数设置为 -1。有关详细信息,请参阅指定采样时间

该模块支持不同类型的采样时间,包括连续、离散和继承。然而,常见的联合仿真 FMU 仅支持没有偏移的周期性离散采样时间(例如正标量)。

依赖关系

此参数仅适用于联合仿真模式。

编程用法

模块参数FMUSampleTime
类型:字符向量
值:标量
默认值:'-1'

要启用 FMU 调试记录的显示,请选中此复选框。否则,请清除此复选框。

编程用法

模块参数FMUDebugLogging
类型:1xN 字符向量元胞数组
值: on | off
默认值:'off'

按类型筛选调试日志,通过选中以下复选框来指定:

  • 确定

  • 警告

  • 丢弃

  • 错误

  • 致命

  • 待处理

编程用法

模块参数FMUDebugLoggingFilter
类型:字符向量
OK | Warning | Discard | Error | Fatal | Pending
默认值: 'OK' | 'Warning' | 'Discard' | 'Error' | 'Fatal' | 'Pending'

直接调试日志,指定为:

  • 文件 - 流式传输至 slprj/_fmu/_logs_modelname/modelname_FMUblockname.txt​

  • 显示 - 流至 MATLAB 命令行窗口。

依赖关系

将此参数设置为 File 可启用 Open FMU Log File...链接。

编程用法

模块参数FMUDebugLoggingRedirect
类型:字符向量
值:File | Display
默认值'File'

代码生成

为 FMU 模块的生成代码指定 FMI API 的源。说明生成的代码是否使用从源代码内联的 FMU 函数或使用函数指针引用从编译的二进制文件获得的 FMI API。基于源代码的代码生成是嵌套 FMU、ERT 目标、GRT 目标和快速加速仿真模式的默认选项。有关示例,请参阅Integrate FMI APIs in Generated Code Using FMU Source Code or Binary

提示

将此选项设置为 source code 以使生成的代码能够跨多个平台进行编译。

依赖关系

仅当 FMU 包包含从 Simulink 生成的源代码时,此选项才有效。当您的 FMU 仅包含来自外部工具的二进制文件或源代码时,该选项处于非活动状态,并且代码生成使用已编译的二进制文件。

编程用法

模块参数FMUCGType
类型:字符向量
值:source code | shared library | auto

模块特性

数据类型

logicala | busa | doublea | integera | singlea | stringa

直接馈通

a

多维信号

a

可变大小信号

a

过零检测

a

a 实际支持的数据类型或功能取决于模块实施。

版本历史记录

在 R2017b 中推出

全部展开