主要内容

利用摩尔语义建立交通灯模型

这个例子展示了如何使用摩尔语义对交通灯建模。摩尔图表只计算状态输出,不计算过渡输出。有关更多信息,请参见摩尔图的设计考虑因素

摩尔交通灯的逻辑

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

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

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

停止红绿灯为红色代表南北,绿色代表东西。

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

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

  • 时钟滴答20分钟后,激活状态变为StopForTraffic

StopForTraffic-至少有20个时钟滴答声,交通灯红灯代表南北,绿灯代表东西。

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

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

  • 检查传感器。

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

StopToGo-交通灯必须响应传感器反向交通流。

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

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

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

交通信号灯为红色表示南北,黄色表示东西。

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

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

  • 时钟滴答10分钟后,激活状态变为GoToStop

GoToStop-交通灯已为南北绿色,东西红色,10个时钟滴答。

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

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

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

摩尔交通灯的设计规则

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

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

  • 图表测试输入sens在转换的条件下。

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

相关的话题