Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

实现 FMU 模块

实现一个模块并为其分配一个功能模型单元 (FMU)。然后,您可以浏览该模块以查看 FMU。此示例将 FMU 模块与车辆 FMU 结合使用。

  1. 创建一个模型并添加 FMU 模块。

  2. 在模块对话框中,在 FMU 名称参数中输入 FMU 文件的路径名称,然后点击确定应用。文件扩展名 .fmu 是可选的。

    第一次点击确定应用时,模块会标识要将您的 FMU 设置为哪个 FMU 模式(协同仿真或模型交换)。

    模块还会创建一个 slprj/_fmu/fmu_name 文件夹,并将 FMU 文件的内容解包到此文件夹中,该文件夹包括(可选):

    • binaries - FMU 二进制文件

    • documentation - FMU 文档 HTML 文件

    • resources - FMU 源文件

    • sources - FMU 源文件

    • 其他支持文件,例如模块封装和描述文件

FMU 模块图标和端口标签更新为对应 FMU 的标签。在将模块与 FMU 关联后,如果要更改 FMU,请右键点击 FMU 模块,选择模块参数,然后在 FMU 名称中输入新 FMU 名称。本主题中的相应部分使用Simplify Interface for Structured Data with FMU Import Block示例中的 FMU。

浏览 FMU 模块

双击该模块。假设您点进了当前文件夹中名为 fmuVehicAOB.fmu 的 FMU。FMU 模块对话框会显示在 fmuVehicAOB.fmu 文件中定义的 FMU 参数。

“参数”选项卡

列出 FMU 模块参数。根据需要编辑值。您可以通过展开树视图来编辑结构体参数的元素。

“仿真”选项卡

启用日志记录和关联的自定义。

  • 要输入相对容差,请选择启用 FMU 容差并进行设置。

  • 要确定模型中模块的采样时间,请设置通信步长。要从 Simulink® 求解器继承步长,请设置为 -1。仅当 FMU 是协同仿真 FMU 时,此选项才可用。

  • 要在事件模式下进行仿真,请选中启用事件模式选项。仅当您的 FMU 用于协同仿真模式并且与 FMI 3.0 标准兼容时,此选项才可用。

  • 要启用日志记录,请选择启用 FMU 调试日志

  • 重定向调试日志至中,选择日志的目标位置。

    • 文件,保存到 slprj\_fmu\_logs_modelname\modelname_blockname.txt

    • 显示,显示在 MATLAB® 命令行窗口中。

    如果选中启用 FMU 调试日志复选框且重定向调试日志至参数设置为 Display,则不能使用 FMU 模块进行协同仿真。有关协同仿真和多个内核的详细信息,请参阅Run Co-Simulation Components on Multiple Cores

  • 按返回状态过滤日志中,选中所需返回状态的对应复选框。

输入和输出总线选项卡

这两个选项卡列出模块定义的输入和输出总线对象。

总线对象名称参数中,可以更改总线对象名称以匹配在工作区中定义的总线对象。

要在工作区中创建总线对象,请执行:

fmudialog.createBusType(gcb)

更改模块输入、输出、参数和内部变量结构体

您可以使用以下参数更改 FMU 模块输入端口、输出端口和参数的布局:

参数操作设置
FMUInputMapping更改输入端口的层次结构。

'Flat' - 将输入分成单独的信号。

'Structured' - 将输入合并为一个信号结构体(总线)。

FMUOutputMapping更改输出端口的层次结构。

'Flat' - 将输出分成单独的信号。

'Structured' - 将输出合并为一个信号结构体(总线)。

FMUParamMapping更改参数的层次结构。

'Flat' - 将参数分成单独的参数,按参数名称和值列出。

'Structured' - 将参数合并为一个参数值结构体 (struct)。

FMUInternalMapping更改内部变量的层次结构

'Flat' - 将内部变量分成单独的信号。

'Structured' - 将内部变量合并为一个信号结构体(总线)。

使用 get_paramset_param 函数设置这些值。例如,假设某模块参数选项卡具有一个结构体构造:

参数包含在 struct 中。要单独列出参数,请将 FMUParamMapping 属性设置为 'Flat'

set_param(gcb,'FMUParamMapping', 'Flat')

计时注意事项

您可以使用通信步长参数设置 FMU 模块的采样时间。与所有 Simulink 模块一样,此模块的采样时间设置 tC 必须是模型采样时间 tM 的整数倍。如果通信步长 tC 不是模型步长 tM 的倍数,则 Simulink 会生成错误。

另一方面,FMU 的局部步长 tL 是 FMU 设定的一部分,仅应用于 FMU 内部。为了正常运行,通信步长 tC 也必须是 tL 的整数倍。如果模型采样时间 tM 或模块采样时间 tC 与 FMU 局部步长 tL 不兼容,则 FMU 是否会在运行时产生错误取决于其具体实现。

FMU 故障排除

如果使用 FMU 时遇到问题,请执行下列操作:

  • 检查 FMU 是否符合 FMI 标准。使用 FMU 合规性检查程序

  • 选中 FMU 模块的“仿真”选项卡上的启用 FMU 调试日志复选框。

  • 联系 FMU 供应商。

另请参阅

|

相关主题

外部网站