# FunctionCallGenerator
提供函数调用事件来控制子系统或模型的执行
- 库: Sysblock / Subsystems
# 描述
Function-Call Generator 模块提供函数调用事件,用于以您在采样时间参数中指定的速率执行函数调用子系统或函数调用模型。函数调用子系统或函数调用模型是包含 Trigger 模块的子系统或模型,其触发器类型参数设置为函数调用。
要以迭代方式在每个时间步中多次执行每个函数调用子系统或函数调用模型,请使用迭代次数参数。
要间歇地(意味着不是在每个时间步)执行函数调用子系统或函数调用模型,请选择显示使能端口参数。然后,您可以使用使能端口的输入来控制模块何时输出函数调用事件。实际上,您可以根据需要打开和关闭模块。
# 示例
以指定的速率执行子系统,子系统中设置累加算法。Function-Call Generator 模块中的采样时间设置为 0.2,表示每 0.2s 调用一次 functionCall 子系统(采样时间必须设置为模型仿真步长的整数倍),迭代次数设置为 1,表示一个仿真步中执行的调用次数。
参考示例模型
。
在子系统中放入触发模块 trigger,并将触发类型选择为 functionCall。
模型的仿真步长设置为 0.1S,仿真时间设置为 1S,Function-Call Generator 模块设置为 0.2S,代表每 0.2S 调用一次。 预期结果 1S 内该子系统一共被调用 6 次,分别在 0S、0.2S、0.4S、0.6S、0.8S、1S 处生成结果 1、2、3、4、5、6。
# 端口
# 输入
启用 — 控制信号输入标量
# 输出
函数调用 — 函数调用事件输出标量 | 向量
将函数调用事件发送到函数调用子系统或函数调用模型的函数调用输入端口。
# 参数
采样时间 — 指定时间间隔1(默认) | 标量 | 向量 | -1
指定函数调用子系统或含调用模型的函数调用事件之间的时间间隔。如 默认情况下,该模块使用的时间间隔为 1。
# 依存关系
要启用此参数,请清除显示使能端口复选框。如果选择显示使能端口,采样时间将自动设置为 -1(继承)。
迭代次数 — 指定在每个时间步中提供函数调用的次数1(默认)| 整数
此参数的值可以是向量,向量的每个元素指定执行函数调用子系统或模型的次数。如果指定向量,则该模块输出函数调用事件的向量,该向量可以使用 Demux 模块拆分成单个函数调用事件,并用于驱动多个函数调用子系统或模型。
假设您将迭代次数指定为 [3 2],并将此模块的输出连接到 Demux 模块,后者又连接到两个函数调用子系统的控制端口。在本例中,第一个函数调用子系统在每个时间步执行三次,第二个函数调用子系统在每个时间步执行两次。
但是,如果您将此模块的输出连接到单个函数调用子系统或模型,则函数调用子系统或模型在每时间步执行的总次数等于向量元素值的总和。因此,在上面的示例中,将迭代次数指定为 [3 2] 并将此模块的输出连接到单个函数调用子系统,会导致函数调用子系统在每个时间步执行五次。
# 设置
1
在每个时间步期间提供一次函数调用。
整数
有符号或无符号整数。在每个时间步提供指定数量的函数调用。
不允许宽输出 — 防止输出信号的隐式扩展off(默认)| on
除非选择此参数,否则此模块的输出将扩展为向量,以在必要时驱动连接到它的模块。例如,如果迭代次数设置为 2,并且未选择不允许宽输出,并且此模块的输出连接到 Demux 模块,此模块又连接到三个单独的函数调用子系统,则每个函数调用子系统在每个时间步接收两个函数调用事件。
显示使能端口 — 添加控制信号的输入端口off(默认)| on
选择此参数可向模块添加控制信号输入端口。仅当控制信号输入端口的值为正数时,该模块才输出函数调用事件。
清除此参数可删除控制信号输入端口。该模块在每个时间步输出函数调用事件。
# 版本历史记录
- 在 2024b 之前推出