Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Model a Traffic Light Using Moore Semantics

The following chart uses Moore semantics to model a traffic light:

Open the Model

To open the model of a Moore traffic light, click sf_moore_traffic_light or type sf_moore_traffic_light at the MATLAB® command prompt.

Logic of the Moore Traffic Light

In this example, the traffic light model contains a Moore chart called Light_Controller, which operates in five traffic states. Each state represents the color of the traffic light in two opposite directions — North-South and East-West — and the duration of the current color. The name of each state represents the operation of the light viewed from the North-South direction.

This chart uses temporal logic to regulate state transitions. The after operator implements a countdown timer, which initializes when the source state is entered. By default, the timer provides a longer green light in the East-West direction than in the North-South direction because the volume of traffic is greater on the East-West road. The green light in the East-West direction stays on for at least 20 clock ticks, but it can remain green as long as no traffic arrives in the North-South direction. A sensor detects whether cars are waiting at the red light in the North-South direction. If so, the light turns green in the North-South direction to keep traffic moving.

The Light_Controller chart behaves like a Moore machine because it updates its outputs based on current state before transitioning to a new state, as follows:

When initial state Stop is active.  Traffic light is red for North-South, green for East-West.

  • Sets output y1 = RED (North-South) based on current state.

  • Sets output y2 = GREEN (East-West) based on current state.

  • After 20 clock ticks, active state becomes StopForTraffic.

In active state StopForTraffic.  Traffic light has been red for North-South, green for East-West for at least 20 clock ticks.

  • Sets output y1 = RED (North-South) based on current state.

  • Sets output y2 = GREEN (East-West) based on current state.

  • Checks sensor.

  • If sensor indicates cars are waiting ([sens] is true) in the North-South direction, active state becomes StopToGo.

In active state StopToGo.  Traffic light must reverse traffic flow in response to sensor.

  • Sets output y1 = RED (North-South) based on current state.

  • Sets output y2 = YELLOW (East-West) based on current state.

  • After 3 clock ticks, active state becomes Go.

In active state Go.  Traffic light has been red for North-South, yellow for East-West for 3 clock ticks.

  • Sets output y1 = GREEN (North-South) based on current state.

  • Sets output y2 = RED (East-West) based on current state.

  • After 10 clock ticks, active state becomes GoToStop.

In active state GoToStop.  Traffic light has been green for North-South, red for East-West for 10 clock ticks.

  • Sets output y1 = YELLOW (North-South) based on current state.

  • Sets output y2 = RED (East-West) based on current state.

  • After 3 clock ticks, active state becomes Stop.

Design Rules in Moore Traffic Light

This example of a Moore traffic light illustrates the following Moore design rules:

  • The chart computes outputs in state actions.

  • The chart tests inputs in conditions on transitions.

  • The chart uses temporal logic, but no asynchronous events.

  • The chart defines chart inputs (sens) and outputs (y1 and y2).

Was this topic helpful?