主要内容

实现一个FMU块

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

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

  2. 在块对话框中,输入FMU文件的路径名称FMU名字参数,单击好吧应用。文件扩展名.fmu是可选的。

    你第一次点击好吧应用,该模块确定将FMU设置为哪种FMU模式,是联合仿真还是模型交换。

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

    • 二进制文件—FMU二进制文件

    • 文档- FMU文档HTML文件

    • 资源—FMU源文件

    • 来源—FMU源文件

    • 其他支持文件金宝app,如块掩码和描述文件

FMU模块图标和端口标签更新为相应FMU的标签。将块与FMU关联后,如果需要更改FMU,可以右键单击FMU块,选择块的参数,并在中输入新的FMU名称FMU名字。本节使用的FMU来自用FMU导入块简化结构化数据接口的例子。

探索FMU模块

双击该块。假设您输入了一个名为fmuVehicAOB.fmu从当前文件夹中。的FMU块对话框反映在fmuVehicAOB.fmu文件。

参数选项卡

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

模拟选项卡

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

  • 若要输入相对容差,请选择启用FMU容忍度然后设置它。

  • 要确定模型中块的采样时间,设置通信步长。从Simulink继承步长金宝app®解算器,设为-1。此选项仅在FMU是联合仿真FMU时可用。

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

  • 将调试日志重定向到,选择日志的目的地。

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

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

    如果开启FMU调试日志复选框,则将调试日志重定向到参数设置为显示,您不能使用FMU块进行联合仿真。有关联合仿真和多核的更多信息,请参见在多核上运行联合仿真组件

  • 根据返回状态过滤日志,选中所需返回状态的复选框。

输入和输出总线选项卡

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

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

要在工作区中创建总线对象:

fmudialog.createBusType (gcb)

改变块输入,输出,参数和内部变量结构

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

参数 行动 设置
FMUInputMapping 改变输入端口的层次结构。

“平”—将输入分离为单独的信号。

“结构化”-将输入组合成信号结构(总线)。

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

“平”—将输出分离成单独的信号。

“结构化”-将输出组合成信号结构(总线)。

FMUParamMapping 更改参数的层次结构。

“平”—将参数划分为单独的参数,按参数名称和参数值列出。

“结构化”-将参数组合成参数值结构(结构体).

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

“平”—将内部变量分离为单独的信号。

“结构化”—将内部变量组合成信号(总线)结构。

使用get_paramset_param设置这些值的函数。例如,假设一个带有结构结构的块参数tab:

参数包含在a结构体。如果需要单独列出参数,请设置FMUParamMapping财产“平”

set_param (gcb,‘FMUParamMapping’,‘平’)

时间的考虑

可以为FMU块设置采样时间通信步长参数。此块采样时间设置,tC与所有Simulink金宝app块一样,必须是模型采样时间的整数倍,t。金宝app如果通信步长过大,Simulink会产生错误tC不是模型步长的倍数吗t

FMU的局部步长tl另一方面,它是FMU规范的一部分,只在FMU内部知道。为了正确操作,通信步长,tC也必须是?的整数倍tl。如果模型采样时间t或者块采样时间tC与FMU局部步长不兼容tl, FMU可能会或不会在运行时产生错误,这取决于它的实现。

故障排除FMUs

如果使用FMU有问题:

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

  • 选择开启FMU调试日志复选框上的FMU块仿真选项卡。

  • 请联系FMU供应商。

另请参阅

|

相关的话题

外部网站