Main Content

Function-Call Generator

提供函数调用事件来控制子系统或模型的执行

  • Function-Call Generator block

库:
Simulink / Ports & Subsystems

描述

Function-Call Generator 模块提供函数调用事件,用于以您在采样时间参数中指定的速率执行函数调用子系统或函数调用模型。函数调用子系统或函数调用模型是包含 Trigger 模块的子系统或模型,其触发器类型参数设置为函数调用

要以迭代方式在每个时间步中多次执行每个函数调用子系统或函数调用模型,请使用迭代次数参数。

要以指定的顺序执行多个函数调用子系统或函数调用模型,请结合使用 Function-Call Split 模块和 Function-Call Generator 模块。有关示例,请参阅 Function-Call Split

要间歇地(意味着不是在每个时间步)执行函数调用子系统或函数调用模型,请选择显示使能端口参数。然后,您可以使用使能端口的输入来控制模块何时输出函数调用事件。实际上,您可以根据需要打开和关闭模块。

端口

输入

全部展开

仅当此端口的输入为正数时,此模块才输出函数调用事件。

依存关系

要启用此端口,请选中显示使能端口复选框。

输出

全部展开

将函数调用事件发送到函数调用子系统或函数调用模型的函数调用输入端口。

参数

全部展开

指定函数调用子系统或含调用模型的函数调用事件之间的时间间隔。如果子系统或模型的实际调用速率与此参数指定的时间间隔不同,Simulink® 将显示错误。

默认情况下,该模块使用的时间间隔为 1。要设置不同时间间隔,请根据采样时间的类型中的表输入有效的采样时间,或指定 -1 从模型中继承时间间隔。

依存关系

要启用此参数,请清除显示使能端口复选框。如果选择显示使能端口,采样时间将自动设置为 -1(继承)。

编程用法

模块参数sample_time
类型:字符向量
'1' | 标量表达式 | 向量表达式 | '-1'
默认值'1'

此参数的值可以是向量,向量的每个元素指定执行函数调用子系统或模型的次数。如果指定向量,则该模块输出函数调用事件的向量,该向量可以使用 Demux 模块拆分成单个函数调用事件,并用于驱动多个函数调用子系统或模型。

假设您将迭代次数指定为 [3 2],并将此模块的输出连接到 Demux 模块,后者又连接到两个函数调用子系统的控制端口。在本例中,第一个函数调用子系统在每个时间步执行三次,第二个函数调用子系统在每个时间步执行两次。

但是,如果您将此模块的输出连接到单个函数调用子系统或模型,则函数调用子系统或模型在每时间步执行的总次数等于向量元素值的总和。因此,在上面的示例中,将迭代次数指定为 [3 2] 并将此模块的输出连接到单个函数调用子系统,会导致函数调用子系统在每个时间步执行五次。

设置

1

在每个时间步期间提供一次函数调用。

整数

有符号或无符号整数。在每个时间步提供指定数量的函数调用。

编程用法

模块参数numberOfIterations
类型:字符向量
'1' | '<integer>''<vector of integers>'
默认值'1'

除非选择此参数,否则此模块的输出将扩展为向量,以在必要时驱动连接到它的模块。例如,如果迭代次数设置为 2,并且未选择不允许宽输出,并且此模块的输出连接到 Demux 模块,此模块又连接到三个单独的函数调用子系统,则每个函数调用子系统在每个时间步接收两个函数调用事件。如果此模块的输出连接到具有多个事件的 Stateflow® 图,也会出现类似的结果。如果在这些情况下选择不允许宽输出,则 Simulink 会生成错误。

选择此参数可防止隐式扩展输出信号。

清除此参数可允许在适当时隐式扩展输出信号。

编程用法

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

选择此参数可向模块添加控制信号输入端口。仅当控制信号输入端口的值为正数时,该模块才输出函数调用事件。

清除此参数可删除控制信号输入端口。该模块在每个时间步输出函数调用事件。

编程用法

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

模块特性

数据类型

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

版本历史记录

在 R2006a 之前推出