主要内容

用摩尔语义学建模红绿灯

这个例子展示了如何使用摩尔语义为红绿灯建模。摩尔图只计算状态的输出,而不是转换的输出。有关更多信息,请参见摩尔图的设计考虑

摩尔交通灯的逻辑

在本例中,红绿灯模型包含一个名为Light_Controller的摩尔图,它在五种交通状态下运行。每个状态表示交通灯在南北和东西两个相反方向的颜色,以及当前颜色的持续时间。每个状态的名称代表了从南北方向看光的运行情况。

这个图表使用时间逻辑来调节状态转换。的操作符实现一个倒计时计时器,当进入源状态时初始化。由于东西方向的交通量较大,缺省情况下,东西方向的绿灯时间比南北方向的绿灯时间长。东西方向的绿灯至少会亮20个钟,但只要南北方向没有车辆到达,它就可以保持绿灯。一个传感器可以探测到南北方向是否有汽车在红灯前等待。如果是这样,交通灯将在南北方向变为绿色,以保持车辆通行。

Light_Controller图表的行为类似于摩尔机,因为它在转换到新状态之前根据当前状态更新输出:

停止-交通灯是红灯代表南北,绿灯代表东西。

  • 设置输出日元=红(南北)基于当前状态。

  • 设置输出y2 =绿色(东西)基于当前状态。

  • 在20个时钟滴答后,活动状态变为StopForTraffic

StopForTraffic-交通灯红灯代表南北方向,绿灯代表东西方向。

  • 设置输出日元=红(南北)基于当前状态。

  • 设置输出y2 =绿色(东西)基于当前状态。

  • 检查传感器。

  • 如果传感器显示车辆正在等待((sens)为真)在南北方向上,主动状态变为StopToGo

StopToGo-红绿灯必须响应传感器反向车流。

  • 设置输出日元=红(南北)基于当前状态。

  • 设置输出y2 =黄色(东西)基于当前状态。

  • 3个时钟滴答后,活动状态变为

-红绿灯红灯代表南北方向,黄灯代表东西方向。

  • 设置输出日元=绿色(南北)基于当前状态。

  • 设置输出y2 =红(东西)基于当前状态。

  • 10个时钟滴答后,活动状态变为GoToStop

GoToStop交通灯是绿灯代表南北,红灯代表东西。

  • 设置输出日元=黄色(南北)基于当前状态。

  • 设置输出y2 =红(东西)基于当前状态。

  • 3个时钟滴答后,活动状态变为停止

摩尔交通灯的设计规则

这个摩尔交通灯的例子说明了这些摩尔设计规则:

  • 该图表计算输出日元而且y2在国家的行动。

  • 图表测试输入sens在过渡的条件下。

  • 该图表使用了时间逻辑,但没有异步事件。

相关的话题

Baidu
map