Main Content

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

Function Caller

调用 Simulink 或导出的 Stateflow 函数

  • Function Caller block

库:
Simulink / User-Defined Functions

描述

Function Caller 模块调用并执行使用 Simulink Function 模块定义的函数或导出的 Stateflow® 函数。使用 Function Caller 模块,您可以从模型或图形层次结构中的任意位置调用函数。

您可以选择 Simulink FunctionFunction Caller 模块来突出显示相关模块。如果一个或多个相关模块位于子系统或引用模型中,则相关模块和包含相关模块的 Subsystem 模块或 Model 模块也会突出显示。

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

端口

输入

全部展开

发送给函数的输入参数的输入信号。

函数原型决定 Function Caller 模块上显示的输入端口的数量和名称。将信号线连接到输入端口,以便通过函数输入参数将数据发送给函数。

例如,y = myfunction(u) 将在 Function Caller 模块上创建一个输入端口 (u)。

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

输出

全部展开

函数返回的输出参数的输出信号。

函数原型决定 Function Caller 模块上显示的输出端口的数量和名称。将信号线或消息线连接到输出端口,以便通过函数输出参数接收函数返回的数据。当您选中异步执行函数调用复选框时,Function Caller 模块输出消息。

例如,y = myfunction(u)Function Caller 模块上创建一个输出端口 (y)。

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

参数

全部展开

指定 Function Caller 模块和 Simulink® 函数之间的函数接口。Simulink 函数可以是 Simulink Function 模块、导出的 Stateflow 图形函数或导出的 Stateflow MATLAB® 函数。对于 Simulink Function 模块的调用:

  • 函数调用参数名称必须与函数参数匹配。

  • 函数名称、输入参数和输出参数必须是有效的 MATLAB 标识符。

编程用法

模块参数FunctionPrototype
类型:字符向量
'y=f(u)' | '<function prototype>'
默认值:'y=f(u)'

指定以逗号分隔的 MATLAB 表达式列表,表达式中包含每个输入参数的数据类型、维度和复/实性(实数或虚数)。有关示例,请参阅 Argument Specification for Simulink Function Blocks

此设定必须与使用 Argument Inport 模块的数据类型参数指定的 Simulink Function 模块的数据类型匹配。

编程用法

模块参数InputArgumentSpecifications
类型:字符向量
'' | '<MATLAB expression>'
默认值''

指定以逗号分隔的 MATLAB 表达式列表,表达式中包含每个输出参数的数据类型、维度和复/实性(实数或虚数)。有关示例,请参阅 Argument Specification for Simulink Function Blocks

此指定必须与使用 Argument Outport 模块的数据类型参数指定的 Simulink Function 模块的数据类型匹配。

编程用法

模块参数OutputArgumentSpecifications
类型:字符向量
'' | '<MATLAB expression>'
默认值''

指定 Function Caller 模块调用指定 Simulink 函数的时间间隔。

默认情况下,模块根据模型中的模块上下文继承其采样时间。

要设置不同采样时间,请使用指定采样时间中的表提供的采样时间格式输入值。

如果 Function Caller 模块有任何输入,则它是非源模块,您必须将采样时间设置为 -1

编程用法

模块参数SampleTime
类型:字符向量
'-1' | sample time
默认值'-1'

指定是否为与此 Function Caller 模块关联的 Simulink Function 模块异步执行函数调用。

  • 选中此复选框可模拟异步执行,其中调用方(客户端)请求调用函数(服务器)。该函数根据在调度编辑器中定义的顺序执行,然后将输出参数返回到调用方。该模块使用消息输出端口输出这些参数。

    • 如果只有一个函数输出参数,该输出参数将成为消息有效负载。

    • 如果有多个函数输出参数,Function Caller 模块将这些输出参数捆绑成一个结构体,该结构体为消息有效负载。

    在即时模式下将消息输出端口连接到一个 Message Triggered Subsystem 模块。Message Triggered Subsystem 模块充当函数的回调。

  • 清除此复选框可模拟同步执行,其中调用方调用函数,函数立即运行,然后将输出参数返回到调用方。

编程用法

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

模块特性

数据类型

Boolean | bus | double | enumerated | fixed point | integer | single

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2014b 中推出

全部展开