文档

使用函数调用子系统

一个函数调用子系统块是一个有条件执行的子系统,每次控制信号有一个函数调用事件时运行。一个Stateflow®图表,函数调用生成器Block,或者功能块可以提供函数调用事件。

函数调用子系统类似于过程编程语言中的函数。调用函数调用子系统将按排序顺序执行子系统内块的输出方法。的解释函数调用子系统块参数,参见子系统,原子子系统,非虚拟子系统,代码复用子系统

创建函数调用子系统

创建一个函数调用子系统:

  1. 添加一个函数调用子系统块到你的模型。

    • 从Simulink Ports &子系统库复万博1manbetx制一个块到你的模型。

    • 点击模型图,开始输入函数调用,然后选择函数调用子系统

  2. 的初始值和禁用值外港块。看到条件子系统初始输出值禁用时的条件输出值

  3. 设置子系统状态在执行时的处理方式。

    打开子系统模块,然后打开模块参数对话框触发块。从启用时的状态下拉列表,选择:

    • 举行-各国保持其最近的值。

    • 重置-各国恢复其初始条件。

    • 继承-使用父子系统发起函数调用的持有或重置设置。

    对于嵌套子系统,其函数调用子系统块具有不同的参数设置,子子系统的设置覆盖从父子系统继承的设置。

  4. 将函数调用启动器附加到函数调用输入端口。

    如果你附上轮廓尺寸块,打开该块,选择信号属性窗格,然后选择输出函数调用复选框。

您还可以从头创建一个函数调用子系统。首先,添加子系统块中,然后添加触发块在子系统中。接下来,打开触发块对话框,并设置触发类型函数调用

函数调用子系统中的样本时间传播

配置一个函数调用子系统通过设置采样时间类型它的触发端口块至触发周期

  • 触发的函数调用子系统可以在一个时间步执行0次、1次或多次。

    如果一个函数调用子系统是由根触发的轮廓尺寸块与离散采样时间,多个函数调用在一个时间步长是不允许的。若要允许多个函数调用,请设置样品时间1

    你必须将触发函数调用子系统中所有块的采样时间设置为inherited ()1).

  • 周期性函数调用子系统在一个时间步执行一次,并且必须接收周期性函数调用。如果函数调用是非周期性的,则模拟停止并显示错误消息。

    您可以指定非继承的样本时间或继承的(1)采样时间。所有指定非继承采样时间的块必须指定相同的采样时间。例如,如果一个块指定0.1作为采样时间,所有其他块必须指定一个采样时间0.11。如果函数调用的速率与子系统中块指定的采样时间不同,则模拟停止并显示错误消息。

请注意

在范围检查期间,最小和最大参数设置被反向传播到函数调用子系统的实际源端口,即使函数调用子系统未启用。

为了防止这种反向传播:

  1. 添加一个信号转换Block和a信号规范源端口后阻塞。

  2. 设置输出信号转换信号复制

  3. 的最小值和最大值信号规范块,而不是在源端口上指定它们。

模型的例子

另请参阅

相关的例子

更多关于

这个话题有帮助吗?