주요 콘텐츠

Stateflow 유한 상태 머신 설계하기

Stateflow®는 시스템의 동작 모드를 유한 상태 머신의 상태로 정의하여 Simulink® 모델에서 제어 논리를 만들 수 있는 그래픽 프로그래밍 환경입니다. 또한 다음을 수행할 수 있습니다.

  • 모델 간에 논리를 재사용하고 공유할 수 있습니다.

  • MATLAB® 코드나 Simulink 서브시스템을 상태 머신 내 함수로 사용할 수 있습니다.

  • 라이브 애니메이션으로 논리를 시각화할 수 있습니다.

  • 중단점을 사용하고 시뮬레이션 데이터를 기록하여 논리를 디버그할 수 있습니다.

상태와 천이를 사용하여 논리 정의하기

유한 상태 머신은 시스템의 동작 모드를 상태로 모델링합니다. 상태는 데이터를 수정하거나, 코드와 이벤트를 실행하거나, 다른 상태를 포함할 수 있습니다.

유한 상태 머신은 일련의 스텝으로 실행됩니다. 각 스텝 동안, 각 상태는 활성 또는 비활성 상태입니다. 활성 상태는 동작을 수행하거나 코드를 실행할 수 있지만, 비활성 상태는 그럴 수 없습니다. 상태 머신의 조건이 변경되면 활성 상태도 변경됩니다.

차량의 자동 변속기를 살펴보겠습니다. 다음 애니메이션 이미지에서 Stateflow 차트는 기어를 상태로 모델링합니다. 차량 속도의 변화에 따라 변속기가 기어를 전환합니다.

Chart animation showing states and transitions activating.

상태 머신에서 천이는 한 상태에서 다른 상태로의 경로를 나타냅니다. 예를 들어, 자동 변속기 시스템은 1단 기어에서 2단 기어로, 2단 기어에서 1단 기어나 3단 기어로 전환할 수 있습니다.

위 차트에서 Stateflow 차트는 변속 시스템의 천이를 상태 간 화살표로 나타냅니다. 각 천이에는 활성 상태가 변경되는 시점을 결정하는 조건이 있습니다. 예를 들어, 차량 속도가 10을 초과하면 차량이 1단 기어에서 2단 기어로 전환됩니다.

상태 천이 테이블과 차트를 사용하여 상태 머신 모델링하기

Stateflow를 사용하면 상태 머신을 상태 천이 테이블이나 차트로 모델링할 수 있습니다.

상태 천이 테이블 사용하기

상태 천이 테이블은 상태와 천이를 테이블의 항목으로 나타냅니다. 예를 들어, 다음 상태 천이 테이블은 이전 섹션의 자동 변속기 차트와 동일한 기능을 갖습니다.

State transition table that models the automatic transmission of a car.

상태의 그래픽 레이아웃에 신경 쓰지 않고 논리를 구현하는 데 집중하고 싶다면 상태 천이 테이블을 사용해 보십시오.

상태 천이 테이블을 만드는 방법에 대해 자세히 알아보려면 Model Bang-Bang Controller by Using a State Transition Table 항목을 참조하십시오.

차트 사용하기

차트를 만들 때는 캔버스에 상태와 천이를 나타내는 그래픽 객체를 배치하여 상태 머신을 모델링합니다. 논리에 다음이 필요한 경우 차트를 사용해 보십시오.

  • 재사용 가능한 컴포넌트. 예를 들어 한 차트의 여러 위치에서 코드를 재사용하거나 여러 차트에서 동일한 코드를 사용할 수 있습니다.

  • 이벤트 기반 동작 모드. 예를 들어 차트의 한 컴포넌트가 다른 컴포넌트로부터 신호를 수신할 때 상태를 변경할 수 있습니다.

  • 비선형 흐름. 예를 들어 루프나 분기 경로를 사용하는 동작 흐름을 설계할 수 있습니다.

Stateflow 차트를 만드는 방법에 대해 자세히 알아보려면 다음 단계를 따르십시오.

튜토리얼에서는 이차전지(충전식 배터리) 시스템을 만듭니다. 이 시스템은 여러 동작 모드를 포함하고, 재사용 가능한 컴포넌트를 공유하며, 병렬로 실행되는 두 개의 배터리를 갖습니다.

A chart of a rechargeable battery system with main and emergency batteries that operate in parallel. Each battery has multiple layers of hierarchy.

참고 항목

도움말 항목