主要内容

通过使用活动状态数据监视图表活动

如果你Stateflow®图表包括与图表层次结构高度相关的数据,您可以通过使用简化设计活动状态数据.通过启用活动状态数据,您可以:

  • 避免手动更新反映图表活动的数据。

  • 日志和监视模拟数据检查器中的图表活动。

  • 利用图表活动数据控制其他子系统。

  • 导出图表活动数据到其他Simulink金宝app®块。

有关更多信息,请参阅创建管理系统复杂性的层次结构

活动状态数据

使用活动状态数据输出可以简化某些状态流图的设计。例如,在流量信号的该模型中,所处的状态确定符号的值颜色.启用活动状态数据时,状态流可以通过跟踪状态活动来提供流量信号的颜色。显式更新颜色,所以你可以删除这个符号,简化图表的设计。

交通信号的图表建模,有红、黄、绿三个州。符号颜色的值表示哪个状态是活动的。

statflow通过Simulink的输出端口提供活动状态数据,或者将其作为本地数据提供给图表。金宝app该表列出了可用的活动状态数据的不同模式。

活动模式 数据类型 描述
自我的活动 布尔 状态是活动的吗?
孩子的活动 枚举 哪个儿童国家是活跃的?
叶国家活动 枚举 哪个叶状态是活动的?

要启用活动状态数据,请使用属性检查器。

  1. 选择创建输出以进行监控复选框。

  2. 从下拉列表中选择活动模式。

  3. 输入数据名称对于活动状态数据符号。

  4. (可选)对于Child或Leaf状态活动,输入枚举的名字活动状态数据类型。

默认情况下,statflow将状态活动报告为输出数据。若要将活动状态数据符号的范围更改为本地数据,请使用“符号”窗格。

激活状态数据示例

这个例子使用活动状态数据来为一对交通灯的控制器系统建模。

在交通控制器图中,两个平行的子图管理控制交通灯的逻辑。子图有一个相同的层次结构,由三个子状态组成:红色的黄色, 和绿色.输出数据Light1Light2对应于子图中的活动子状态。这些信号:

  • 确定动画红绿灯的阶段。

  • 有助于每光等待的汽车数量。

  • 驱动一个安全断言子系统,验证两个交通灯从来都不是同时绿灯。

要查看流量控制器图中的子片,请单击图表左下角的箭头。

流量控制器子图的行为

每个交通管制员循环通过它的子州,从红色的绿色黄色回到红色的.每个状态对应于交通灯周期中的一个阶段。输出信号Light1Light2指示在任何给定时间哪个状态是活动的。

图表建模流量信号。该图表使用活动状态数据来指示哪个状态处于活动状态。

红灯

当。。。的时候红色的状态变为活动状态,交通灯循环开始。在短暂延迟之后,控制器检查在交叉路口等待的汽车。如果它检测到至少一辆汽车,或者如果经过固定的时间长度,则控制器通过设置请求绿灯Greenlightrequest.真的.发出请求后,控制器将保留在红色的短时间的状态,直到它检测到其他交通信号是红色。然后控制器将转换为绿色

绿灯

当。。。的时候绿色状态变为活动状态,控制器通过设置取消其绿灯请求Greenlightrequest..控制器集绿色闪光灯真的,防止其他交通信号变成绿色。一段时间后,控制器检查来自另一个控制器的绿灯请求。如果它接收到请求,或者经过了固定的时间长度,那么控制器将转换到黄色状态。

黄灯

在过渡之前红色的状态时,控制器仍处于黄色状态为固定的时间。当。。。的时候黄色状态变为非活动状态时,控制器设置绿色闪光灯,表示其他交通灯可以安全变绿。然后交通灯又开始了。

交通灯的计时

几个参数定义了交通灯循环的定时。要更改这些参数的值,请双击交通管制员图表并在“块参数”对话框中输入新值。

参数 预设值 描述
reddelay. 6秒 控制器开始检查交叉路口的汽车的时间长度。此外,在控制器请求绿灯后,在红绿灯可以在绿灯后变为绿色的最小时间长度。
maxreddelay. 360秒 在请求绿灯前,控制器检查车辆的最长时间。
格雷德莱 180秒 交通灯保持绿色的最大时间长度。
Mingreendelay. 120秒 交通灯保持绿灯的最小时间长度。
YELLOWDELAY 15秒 交通灯保持黄色的时间长度。

探索的例子

  1. 为每个符号启用日志记录。在“符号”窗格中,选择每个符号。在属性检查器中,在日志记录中,选择测井信号数据

    • GreenlightRequest

    • 绿色闪光灯

    • Light1

    • Light2

  2. 在里面模拟选项卡上,单击运行

  3. 在里面模拟选项卡,在审查结果, 点击数据检查员

  4. 在“模拟数据检查器”中,在单独的轴上显示记录的信号。布尔信号GreenlightRequest绿色闪光灯显示为0或1的数值。状态活动信号Light1Light2显示为具有值的枚举数据绿色黄色红色的, 和没有任何

模拟数据检测器显示图表的输出。

要在模拟过程中跟踪图表活动,您可以使用仿真数据检查器中的缩放和光标按钮。例如,此表详细说明了在模拟的前300秒内的活动。

时间 描述 光1 Light2 GreenlightRequest 绿色闪光灯
t= 0 在仿真开始时,两个交通灯都是红色的。 红色的 红色的
t= 6 6秒后(reddelay.),两条街道等有车。两个交通信号灯通过设置请求绿灯GreenlightRequest真的 红色的 红色的 真的
t= 12

又过了6秒(reddelay.):

  • 1号灯变绿,设置绿色闪光灯真的GreenlightRequest

  • 光2通过设置请求绿灯GreenlightRequest真的

绿色 红色的 ,然后真的 真的
t= 132

120秒后(Mingreendelay.),Light 1变为黄色。

黄色 红色的 真的 真的
t= 147.

15秒后(YELLOWDELAY):

  • 1号灯变红,设置绿色闪光灯

  • 2号灯变为绿色,正在设置绿色闪光灯真的GreenlightRequest

红色的 绿色 ,然后真的
t= 153.

6秒后(reddelay.),Light 1通过设置请求绿灯GreenlightRequest真的

红色的 绿色 真的 真的
t= 267.

Light 2变为黄色120秒(Mingreendelay.)。

红色的 黄色 真的 真的
t= 282.

15秒后(YELLOWDELAY):

  • 2号灯变红,设置绿色闪光灯

  • 1号灯变绿,设置绿色闪光灯真的GreenlightRequest

绿色 红色的 ,然后真的
t= 288.

6秒后(reddelay.),灯2通过设置请求绿灯GreenlightRequest真的

绿色 红色的 真的 真的

循环重复,直到模拟结束于t= 1000.秒。

相关话题