主要内容

使用函数调用子系统

一个函数调用子系统块是一个有条件执行的子系统,每当控制端口接收到函数调用事件时,它就运行。一个Stateflow®图表,函数调用生成器块,MATLAB函数块,功能块,或打穿越块可以提供函数调用事件。

函数调用子系统类似于过程式编程语言中的函数。调用函数调用子系统将按执行顺序执行子系统中块的输出方法。来解释一下函数调用子系统块参数,看到子系统

创建函数调用子系统

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

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

  2. 打开子系统块。添加框图,定义当子系统接收到函数调用事件时执行的算法。

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

  4. 设置子系统执行时如何处理子系统状态:

    打开子系统块,然后打开块参数对话框触发块。从州时启用下拉列表,选择一个选项:

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

    • 重置-处于初始条件的状态。

    • 继承-从父子系统开始调用函数时使用保持或重置设置。

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

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

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

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

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

  • 一个触发的(非周期性的)函数调用子系统可以在一个时间步骤中执行零次、一次或多次。

    如果函数调用子系统是由根级函数调用执行的轮廓尺寸块与离散的样本时间,在一个时间步长的多个函数调用是不允许的。要允许多个函数调用,请设置样品时间1(继承的),并将函数调用子系统中所有块的示例时间设置为1(继承)。

  • 周期性的函数调用子系统在每个时间步骤中,当它接收到函数调用信号时执行一次,当它没有接收到函数调用信号时,它不会在一个时间步骤中执行。将函数调用子系统中所有块的示例时间设置为1(继承)。

请注意

在范围检查过程中,最小和最大参数设置被反向传播到功能调用子系统的实际源端口,即使功能调用子系统没有启用。

为了防止这种反向传播:

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

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

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

模型的例子

另请参阅

相关的例子

更多关于