一个函数调用子系统Block是一个有条件执行的子系统,每次控制端口接收到函数调用事件时都会运行。一个Stateflow®图表,函数调用生成器块,功能块,或者击球块可以提供函数调用事件。
函数调用子系统类似于过程编程语言中的函数。调用函数调用子系统将按执行顺序执行子系统内块的输出方法。为一个解释函数调用子系统块参数,看到子系统。
要创建一个函数调用子系统:
添加一个函数调用子系统阻塞到您的模型。
打开子系统块。添加一个框图,定义当子系统接收到函数调用事件时执行的算法。
控件的初始值和禁用值外港块。看到条件子系统初始输出值和禁用时条件子系统输出值。
设置在子系统执行时如何处理子系统状态:
打开子系统块后,再打开块参数对话框进行说明扳机堵塞。来自州时启用下拉列表中,选择一个选项:
举行
- 国家保持最新的价值观。
重置
—状态设置为初始状态。
继承
—使用父子系统发起函数调用时的保持或重置设置。
对于嵌套的子系统函数调用子系统块有不同的参数设置,子子系统的设置覆盖从父子系统继承的设置。看到扳机。
将函数调用启动器附加到函数调用输入端口。
如果你附加一个inport.块,打开块,选择信号属性选项卡,然后选择输出函数调用复选框。
配置一个函数调用子系统通过设置块采样时间类型它的触发端口块触发
或者周期
。
一个被触发的(非周期性的)函数调用子系统可以在一个时间步长内执行0次、1次或多次。
如果函数调用子系统是由根级函数调用执行的inport.带有离散采样时间的块,在一个时间步长期间不允许多个函数调用。若要允许多个函数调用,请设置样品时间来-1
(继承),并将函数调用子系统中所有块的示例时间设置为-1
(继承)。
周期性函数调用子系统在时间步长期间执行一次,并且必须接收周期性函数调用。如果函数调用是非周期性的,则模拟停止并显示错误信息。将函数调用子系统中所有块的采样时间设置为-1
(继承)。
请注意
在范围检查期间,最小和最大参数设置反向传播到函数调用子系统的实际源端口,即使函数调用子系统没有启用。
为了防止这种反向传播:
添加一个信号转换块和A.信号规格源端口后块。
设置输出的信号转换块信号副本
。
指定最小值和最大值信号规格块,而不是在源端口上指定它们。