Main Content

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

Simulink Function

用 Simulink 模块以图形方式定义函数

  • 库:
  • Simulink / User-Defined Functions

    SimEvents

  • Simulink Function block

描述

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

有关模块参数的描述,请参阅 Subsystem

您可以在序列查看器中可视化 Simulink Function 调用。该查看器可显示使用参数进行调用的时间和返回的值。

您可以选择 Simulink FunctionFunction Caller 模块来突出显示与其相关的模块。要在打开的图或新选项卡中显示相关模块,请在选择后出现的省略号上暂停。然后,从操作栏中选择相关模块 Related Blocks button。当多个模块对应于所选模块时,将打开一个相关模块列表。您可以通过在文本框中输入搜索词来筛选相关模块列表。从列表中选择相关模块后,窗口焦点转至显示该相关模块的打开的图或新选项卡。

函数接口

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

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

当使用 Function Caller 模块调用函数时,Function Caller 模块中的函数原型参数必须与您在 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

模块特性

数据类型

Booleana | busa | doublea | enumerateda | fixed pointa | halfa | integera | singlea | stringa

直接馈通

多维信号

有限a

可变大小信号

过零检测

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

扩展功能

版本历史记录

在 R2014b 中推出