主要内容

激活Stateflow图表通过发送输入事件

一个输入事件发生在状态流之外®图表,但仅在该图表中可见。此类型的事件启用其他Simulink金宝app®块,包括其他状态流图,以通知发生在它之外的事件的特定图表。定义一个输入事件:

  1. 中所述,将事件添加到状态流图在图表中定义事件

  2. 设置范围属性的事件来自Simulink的金宝app输入.在Simulink模型中,单个触发器端口出现在statflow块的顶部。金宝app

  3. 输入事件可以通过更改控制信号(边缘触发器)或从Simulink块调用函数来激活状态流图。金宝app

    • 若要指定边缘触发的输入事件,请设置触发属性设置为以下选项之一:

      • 不断上升的

      • 下降

      • 要么

    • 若要指定函数调用输入事件,请设置触发财产函数调用

    不能在同一个状态流程图中混合边缘触发和函数调用输入事件。混合这些输入事件会导致编译时错误。

有关更多信息,请参见通过广播事件同步模型组件

激活Stateflow使用边缘触发器的图表

边缘触发的输入事件导致在模拟的当前时间步骤期间执行状态流程图。对于这种类型的输入事件,控制信号中的变化充当触发器。

边缘触发类型

描述

不断上升的

上升边触发器。当控制信号从零或负值变为正值时,图表将被激活。

下降

下降边触发器。当控制信号从正值变为零或负值时,图表将被激活。

要么

上升或下降边触发。当控制信号在任意一个方向上改变时,图表将被激活。

在所有情况下,控制信号的值必须穿过零才能成为有效的边缘触发器。例如,从-1变为1的信号就是一个有效的上升边触发器。从1变为2的信号不是有效的上升边触发器。

何时使用边缘触发的输入事件

当模型需要定期或定期执行图表时,使用边缘触发的输入事件来激活图表。例如,在此模型中,边触发的输入事件会定期激活边到功能图。有关更多信息,请参见在一个步骤中多次安排一个子系统

多个边触发输入事件的行为

在任何给定的时间步骤中,将根据输入事件的端口号按升序进行检查。图表为每个有效事件唤醒一次。对于边触发的输入事件,可以在同一时间步骤中出现多条边,从而在该时间步骤中多次唤醒图表。在这种情况下,事件将根据其端口号以升序唤醒图表。

激活Stateflow图表使用函数调用

函数调用输入事件导致在模拟的当前时间步骤期间执行状态流程图。使用这种类型的输入事件,还必须为调用状态流图的块定义函数调用输出事件。

何时使用函数调用输入事件

当模型需要在函数调用的同一时间步骤中访问图表的输出数据时,使用函数调用输入事件来激活图表。例如,在此模型中,函数调用输入事件激活循环调度器图表。有关更多信息,请参见在一个步骤中多次安排一个子系统

多个函数调用输入事件的行为

对于函数调用输入事件,只存在一个触发器事件。事件的调用者显式地调用并执行图表。在一个时间步中,只有一个函数调用是有效的。

输入事件与控制信号的关联

当您在图表中定义一个或多个输入事件时,单个触发端口将出现在图表块的顶部。多个外部Simulink块可以通过连金宝app接到触发端口的信号矢量触发输入事件。的港口属性指定连接到触发器端口的控制信号矢量的索引。

默认情况下,港口值按照您添加输入事件的顺序显示。属性可以更改这些赋值港口事件的属性。当你改变港口属性用于输入事件港口其余输入事件的值自动重新编号。

允许输入事件的数据类型

对于触发端口的多个输入事件,所有信号必须具有相同的数据类型。在模拟过程中,使用不同数据类型的信号作为输入事件会导致错误。例如,您可以将两个输入信号的类型进行mux用作图表的输入事件。

金宝app使用两个double类型的信号作为状态流程图的输入事件的Simulink模型。

不能对两个不同数据类型的输入信号进行多路组合,例如布尔而且

金宝app一个Simulink模型,它使用一个boolean类型的信号和一个double类型的信号作为状态流程图的输入事件。此配置将产生一个运行时错误。

相关的话题