무어 의미 체계를 사용하여 신호등 모델링하기
R2026b이 예제에서는 무어 의미 체계를 사용하여 신호등을 모델링하는 방법을 보여줍니다. 무어 차트는 천이에서가 아니라 상태에서만 출력값을 계산합니다. 자세한 내용은 Design Considerations for Moore Charts 항목을 참조하십시오.

무어 신호등의 논리
이 예제에서는 신호등 모델에 5개의 신호 상태로 동작하는 Light_Controller라는 무어 차트가 포함되어 있습니다. 각 상태는 2개의 반대 방향(북-남 및 동-서)으로 있는 신호등의 색상과 현재 색상이 유지되는 기간을 나타냅니다. 각 상태의 이름은 북-남 방향에서 보이는 신호등의 동작을 나타냅니다.
이 차트는 시간 논리를 사용하여 상태 천이를 조절합니다. after 연산자는 소스 상태에 진입할 때 초기화되는 카운트다운 타이머를 구현합니다. 동-서 도로에 교통량이 더 많기 때문에 기본적으로 타이머는 북-남 방향보다 동-서 방향의 녹색등에 더 긴 시간을 제공합니다. 동-서 방향의 녹색등은 최소 20 클록 틱 동안 유지되지만, 북-남 방향에서 교통이 감지되지 않으면 더 오래 유지될 수도 있습니다. 센서는 북-남 방향에서 빨간등에 대기 중인 차량이 있는지 감지합니다. 차량이 감지되면, 북-남 방향의 신호등을 녹색으로 변경하여 교통 흐름을 유지합니다.
Light_Controller 차트는 무어 머신처럼 동작합니다. 즉, 현재 상태를 기반으로 출력값을 업데이트한 후 다음과 같은 새로운 상태로 천이합니다.
Stop — 북-남 방향 신호등은 빨간색, 동-서 방향 신호등은 녹색입니다.
현재 상태에 따라 출력값
y1 = RED(북-남)를 설정합니다.현재 상태에 따라 출력값
y2 = GREEN(동-서)을 설정합니다.20 클록 틱 이후 활성 상태는
StopForTraffic이 됩니다.
StopForTraffic — 최소 20 클록 틱 동안 북-남 방향 신호등은 빨간색, 동-서 방향 신호등은 녹색이었습니다.
현재 상태에 따라 출력값
y1 = RED(북-남)를 설정합니다.현재 상태에 따라 출력값
y2 = GREEN(동-서)을 설정합니다.센서를 확인합니다.
센서가 북-남 방향에서 대기 중인 차량을 감지하면(
[sens]= true), 활성 상태는StopToGo가 됩니다.
StopToGo — 신호등은 센서의 응답에 따라 교통 흐름을 변경해야 합니다.
현재 상태에 따라 출력값
y1 = RED(북-남)를 설정합니다.현재 상태에 따라 출력값
y2 = YELLOW(동-서)를 설정합니다.3 클록 틱 이후 활성 상태는
Go가 됩니다.
Go — 3 클록 틱 동안 북-남 방향 신호등은 빨간색, 동-서 방향 신호등은 노란색이었습니다.
현재 상태에 따라 출력값
y1 = GREEN(북-남)을 설정합니다.현재 상태에 따라 출력값
y2 = RED(동-서)를 설정합니다.10 클록 틱 이후 활성 상태는
GoToStop이 됩니다.
GoToStop — 10 클록 틱 동안 북-남 방향 신호등은 녹색, 동-서 방향 신호등은 빨간색이었습니다.
현재 상태에 따라 출력값
y1 = YELLOW(북-남)를 설정합니다.현재 상태에 따라 출력값
y2 = RED(동-서)를 설정합니다.3 클록 틱 이후 활성 상태는
Stop이 됩니다.
무어 신호등의 설계 규칙
이 무어 신호등 예제에서는 다음 무어 설계 규칙을 보여줍니다.
차트는 상태 동작에서 출력값
y1과y2를 계산합니다.차트는 천이에 대한 조건에서 입력값
sens를 테스트합니다.차트는 시간 논리를 사용하지만, 비동기 이벤트는 사용하지 않습니다.