Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

Simulink Function

使用 Simulink 模块定义的函数

  • 库:
  • Simulink / User-Defined Functions

    SimEvents

  • Simulink Function block

说明

Simulink Function 模块是一个预先配置的 Subsystem 模块,可以用它作为一个起点来使用 Simulink® 模块以图形方式定义函数。该模块为函数调用方提供了文本接口。您可以从 Function Caller 模块、MATLAB Function 模块或 Stateflow® Chart (Stateflow) 调用 Simulink Function 模块。

有关模块参数的说明,请参阅 Simulink 文档中的 Subsystem 模块参考页。

您可以在 Sequence Viewer 中可视化 Simulink Function 调用。该查看器可显示使用参数进行调用的时间和返回的值。请参阅 Sequence Viewer (Stateflow) 模块参考。

函数接口

函数接口出现在 Simulink Function 模块表面上。编辑模块文本会从函数定义中添加和删除 Argument Inport 模块和 Argument Outport 模块。编辑操作还会设置 Simulink Function 模块内的 Trigger 模块中的 Function name 参数。

例如,在 Simulink Function 模块表面输入 y = myfunction(u) 将在子系统内添加一个 Argument Inport 模块 (u) 和一个 Argument Outport 模块 (y)。

当使用 Function Caller 模块调用函数时,Function Caller 模块中的 Function prototype 参数必须与您在 Simulink Function 模块上指定的函数接口完全匹配。此匹配包括函数的名称以及输入和输出参数的名称。例如,Simulink Function 模块和 Function Caller 模块均使用参数名称 uy

当从 Stateflow 转移标签或状态标签上调用函数时,您可以使用不同的参数名称。例如,Simulink Function 模块使用 xy 参数,而 Stateflow 转移则使用 x2y2 参数调用函数。

Function-Call Subsystem 与 Simulink Function 模块的比较

通常,相比较 Simulink Function 模块,Function-Call Subsystem 模块通过直接信号连接提供了更好的信号可追溯性。而 Simulink Function 模块消除了在模型层次结构中布设输入和输出信号线的需求。

属性Function-Call Subsystem 模块Simulink Function 模块
执行/调用函数的方法使用一条信号线来触发使用函数名称通过引用来调用
正式的输入参数(Argument Inport 模块)和输出参数(Argument Outport 模块)
本地输入(Inport 模块)和输出(Outport 模块)

端口

输入

全部展开

在子系统模块中放置一个 Inport 模块会为 Simulink Function 模块添加一个外部输入端口。端口标签与 Inport 模块的名称相匹配。

使用 Inport 模块可以从局部环境中获取信号。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | struct

子系统模块中的 Argument Inport 模块提供了对应于输入参数的输入端口。子系统模块上不显示端口。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | struct

输出

全部展开

在子系统模块中放置一个 Outport 模块会添加该模块的输出端口。子系统模块上的端口标签是 Outport 模块的名称。

使用 Outport 模块可以向局部环境发送信号。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | struct

子系统模块中的 Argument Outport 模块提供了对应于输出参数的输出端口。子系统模块上不显示端口。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | struct

模块特性

数据类型

Boolean[a] | bus[a] | double[a] | enumerated[a] | fixed point[a] | half[a] | integer[a] | single[a] | string[a]

直接馈通

多维信号

有限[a]

可变大小信号

过零检测

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

扩展功能

在 R2014b 中推出