Main Content

밀리 머신과 무어 머신에 대한 개요

유한 상태 머신에서 상태는 로컬 데이터와 차트 활동의 조합입니다. "상태 계산"이란 로컬 데이터를 업데이트하고 현재 활성 상태에서 새로운 상태로의 천이를 만드는 것을 의미합니다. 상태 머신 모델에서 다음 상태는 현재 상태와 입력값에 관한 함수입니다.

X(n+1)=f(X(n),u)

이 방정식에서

  • X(n)은 시간 스텝 n에서의 상태를 나타냅니다.

  • X(n+1)은 다음 시간 스텝 n+1에서의 상태를 나타냅니다.

  • u는 입력값을 나타냅니다.

상태는 하나의 시간 스텝에서 다음 시간 스텝까지 지속됩니다.

밀리 머신과 무어 머신의 의미 체계

밀리 머신과 무어 머신은 종종 유한 상태 머신 모델링을 위한 기본적인 산업 표준 패러다임으로 간주됩니다. 순수 밀리 의미 체계 또는 순수 무어 의미 체계를 Stateflow® 차트 의미 체계의 서브셋으로 구현하는 차트를 만들 수 있습니다. Embedded Coder®, Simulink® Coder™, HDL Coder™에서의 시뮬레이션과 코드 생성에서 밀리 차트와 무어 차트를 사용할 수 있습니다. 밀리 의미 체계와 무어 의미 체계는 MATLAB®의 독립 실행형 Stateflow 차트에서는 지원되지 않습니다.

밀리 차트의 의미 체계

밀리 머신은 클록 에지에서 천이가 발생하는 유한 상태 머신입니다. 다음과 같이 밀리 차트의 출력값은 입력값과 상태에 관한 함수입니다.

y=g(X,u)

각 시간 스텝에서 밀리 차트는 웨이크업 상태가 되고 입력값을 평가하고 새로운 활성 상태 구성(다음 상태라고도 함)으로 천이됩니다. 차트는 다음 상태로 천이될 때 출력값을 계산합니다.

출력값이 입력값과 상태에 관한 함수가 되도록 밀리 상태 머신은 다음과 같은 의미 체계를 적용합니다.

  • 출력값은 다음 상태에 종속되지 않습니다.

  • 차트는 상태에서가 아니라 천이에서만 출력값을 계산합니다.

  • 차트는 시스템 클록을 기반으로 주기적으로 웨이크업 상태가 됩니다.

밀리 머신은 천이 시 출력값을 계산합니다. 따라서 밀리 차트는 차트에 대한 디폴트 경로가 실행되는 시점에 첫 번째 출력값을 계산할 수 있습니다. 밀리 차트에 대해 차트 속성 초기화 시 차트 실행(진입)을 활성화하면, t = 0(첫 번째 시간 스텝)에서 계산이 이루어집니다. 그렇지 않으면 t = 1(다음 시간 스텝)에서 이루어집니다. 자세한 내용은 Execute (enter) chart at initialization 항목을 참조하십시오.

무어 차트의 의미 체계

무어 머신은 클록 에지에서 출력값이 수정되는 유한 상태 머신입니다. 다음과 같이 무어 차트의 출력값은 상태에만 관련된 함수입니다.

y=g(X)

각 시간 스텝에서 무어 차트는 웨이크업 상태가 되고 출력값을 계산하고 입력값을 평가하여 다음 시간 스텝을 위해 자체적으로 재구성됩니다. 예를 들어 차트가 입력값을 평가한 후 새로운 활성 상태 구성으로 천이될 수 있습니다. 차트는 입력값을 평가하고 상태를 업데이트하기 전에 먼저 출력값을 계산합니다.

출력값이 현재 상태에만 관한 함수가 되도록 무어 상태 머신은 다음과 같은 의미 체계를 적용합니다.

  • 출력값은 입력값에 종속되지 않습니다.

  • 출력값은 이전 출력값에 종속되지 않습니다.

  • 출력값은 시간 논리에 종속되지 않습니다.

무어 머신은 상태에서 출력값을 계산합니다. 따라서 무어 머신은 디폴트 경로가 실행된 후에만 출력값을 계산할 수 있습니다. 그때까지 출력값은 디폴트 값을 가집니다.

밀리 차트와 무어 차트 만들기

Stateflow 차트를 만들 때 디폴트 유형은 클래식 차트라고 불리는 하이브리드 상태 머신 모델입니다. 클래식 차트는 밀리 차트 및 무어 차트의 의미 체계와 확장 Stateflow 차트 의미 체계를 결합합니다.

밀리 차트를 만들려면 MATLAB 명령 프롬프트에서 다음을 입력합니다.

sfnew -Mealy

Block icon for Mealy chart.

무어 차트를 만들려면 MATLAB 명령 프롬프트에서 다음을 입력합니다.

sfnew -Moore

Block icon for Moore chart.

또는 Simulink 모델에 Stateflow 차트 블록을 추가한 후 상태 머신 유형 차트 속성을 설정하여 차트에 대한 의미 체계 유형을 선택할 수도 있습니다. 자세한 내용은 State Machine Type 항목을 참조하십시오.

밀리 차트와 무어 차트의 이점

밀리 차트와 무어 차트는 클래식 Stateflow 차트에 비해 다음과 같은 이점을 제공합니다.

  • 생성하는 밀리 차트와 무어 차트가 형식 정의와 의미 체계 규칙을 준수하는지 확인할 수 있습니다. 컴파일 시간(설계 시간이 아님)에 오류 메시지가 나타납니다.

  • 무어 차트는 C/C++ 타깃과 HDL 타깃을 위한 클래식 차트보다 효율적인 구현을 제공합니다.

  • 무어 차트를 사용하여 피드백 루프를 모델링할 수 있습니다. 무어 차트에서, 입력은 직접 피드스루를 가지지 않습니다. 출력 포트에서 입력 포트로의 피드백을 갖는 루프를 대수 루프를 도입하지 않고 설계할 수 있습니다. 밀리 차트와 클래식 차트는 직접 피드스루를 가지며 대수 루프가 있는 경우 오류를 생성합니다.

    Simulink model containing a Moore chart in a feedback loop.

참고 항목

관련 항목