주요 특징

  • 복잡한 로직 모델링 및 시뮬레이션을 위한 모델링 환경, 그래픽 구성요소 및 시뮬레이션 엔진
  • 계층성, 병렬성, 임시 연산자 및 이벤트를 포함한 확정적 실행 시맨틱
  • 유한 상태 시스템 표현을 위한 상태 다이어그램, 상태 전환 표 및 상태 전환 행렬
  • 알고리즘 표현을 위한 순서도, MATLAB 함수 및 truth table
  • 설계 분석과 런타임 오류 감지를 위한 상태 다이어그램 애니메이션, 상태 활동 로깅, 데이터 로깅 및 통합 디버깅
  • 순환 오류, 상태 불일치, 데이터 범위 위반, 오버플로우에 대한 정적 검사 및 런타임 검사
  • Mealy 및 Moore 유한 상태 시스템
상태 시스템 작성 및 시뮬레이션 방법을 알아봅니다.

로직 설계

Stateflow는 상태 시스템를 사용한 시스템 로직 모델링을 위한 그래픽 및 표 양식 인터페이스를 제공합니다. 상태 시스템에서 시스템의 운영 모드를 상태로서 모델링하고 전환 및 접합을 사용하여 모드를 전환하는 로직을 표현합니다. 독립적으로 또는 병렬로 실행되는 상태로서 시스템의 여러 구성요소를 모델링할 수 있습니다. Stateflow를 통해 상태 다이어그램 객체, 함수 및 구성요소를 계층적으로 구성함으로써 설계 복잡성을 관리할 수 있습니다.

Stateflow에서 순서도와 truth table을 포함한 표 양식으로 결합적 로직을 시각적으로 표현할 수 있습니다.

로직 설계를 위해서는 조건을 확인하고 순차적 action을 정의해야 합니다. Stateflow를 통해 C 또는 MATLAB®에서 조건과 동작을 정의할 수 있으며 Simulink® Model Explorer의 조건 및 동작에서 사용되는 데이터를 관리할 수 있습니다. Stateflow는 설계를 실행하기 전에 상태 불일치, 미사용 데이터 및 이벤트, 잘못된 전환 가능성을 알려줍니다.

보일러 온도 제어 시스템을 위한 로직을 정의하는 Stateflow 다이어그램 - 다이어그램은 그래픽 함수(오른쪽)를 사용하여 히터 시스템이 호출하는 유틸리티 알고리즘(왼쪽)을 구현합니다.


시각적으로 로직 설계

Stateflow는 상태 시스템과 순서도 작성을 위한 편집기와 그래픽 객체를 제공합니다. 그래픽 팔레트에서 상태, 전환 및 접합을 선택하고 이를 Stateflow Editor로 끌어와서 상태 시스템을 작성할 수 있습니다. 또한 순서도 표기법, Simulink 서브시스템, MATLAB 및 truth table을 사용하여 함수를 만들 수도 있습니다. Stateflow 다이어그램은 확장된 기능, Mealy 시스템 또는 Moore 시스템 뿐 아니라 Mealy와 Moore 시스템이 같이 표현될 수 있는 하이브리드 형태로 지정될 수 있습니다.

접합부에 연결되고 조건 로직에 따라 실행되는 전환을 그림으로써 순서도를 작성할 수 있습니다. Pattern Wizard를 통해 자주 사용되는 로직 흐름 패턴을 작성할 수 있습니다. 순서도는 상태 다이어그램의 여러 위치와 같은 모델의 다른 상태 다이어그램에서 사용되는 그래픽 함수에 배치할 수 있습니다. 반드시 순서도를 사용하여 상태 간 전환을 위한 로직을 설계해야 합니다.

Stateflow Editor는 잘못된 객체 배치와 전환을 파악할 수 있는 편집-시간 검사를 제공합니다.

갤러리 탐색(이미지 2개)


표를 통한 로직 설계

Stateflow의 상태 전환 표는 상태 시스템 모델링을 위한 구조적 환경을 제공합니다. 상태를 위한 행, 상태 간 전환을 위한 열을 추가하여 상태 시스템을 작성합니다. 상태 전환 표는 상태 이름을 위한 드롭다운 메뉴, 유한 상태 시스템 구문 자동 완성 및 기타 편집-시간 검사를 제공함으로써 상태 시스템 작성을 도와줍니다. 모델을 실행하기 전에 진단 테스트를 실행하여 구문 오류, 불완전한 전환 및 도달할 수 없는 상태를 감지할 수 있습니다.

상태 전환 표에서 생성된 상태 전환 행렬 보기를 통해 특정 상태의 조건과 목표 상태 가능성을 빠르게 파악할 수 있습니다.

Stateflow의 Truth table을 사용하여 연속 실행에서 상태 관리가 필요 없는 로직을 모델링할 수 있습니다. 검사할 조건을 입력한 다음 그러한 조건에 대한 결과 조합을 입력하여 truth table을 작성합니다. 그 다음 서로 다른 결과 조합에 대해 작업을 입력할 수 있습니다. truth table을 작성한 후 정적 진단 검사를 실행하여 과도하게 지정되었거나 부족하게 지정된 조건을 파악할 수 있습니다.

왼쪽: 결함 감지 알고리즘에서 올바른 센서 판독을 선택하는 로직을 구현하는 truth table 오른쪽: truth table의 자동으로 생성된 그래픽 표현


구성요소 통합 및 알고리즘 스케줄링

Stateflow에서 구성요소를 만든 후 다른 구성요소와 통합하여 상태 시스템 알고리즘을 만들 수 있습니다. Stateflow 구성요소는 MATLAB 및 Simulink 함수, 사용자 정의 C 코드, 그래픽 함수 및 truth table을 포함할 수 있습니다. 알고리즘에서 시간 기반 및 조건 기반 로직을 사용하는 구성요소 및 함수 실행을 스케줄링할 수 있습니다.

각 Stateflow 구성요소는 독립적으로 개발, 실행 및 검증할 수 있으므로 여러 사용자가 동시에 알고리즘의 서로 다른 부분에 대해 작업을 수행할 수 있습니다.

Stateflow 다이어그램(오른쪽)을 통합하는 Simulink 모델(왼쪽) 이 Stateflow 다이어그램은 엘리베이터에서 사용되는 로직을 모델링하며 그래픽 함수, MATLAB 함수 및 truth table을 포함합니다.


구성요소를 설계로 통합

구성요소를 마우스 오른쪽 버튼으로 클릭하고 atomic 서브차트로 변환한 후 라이브러리에 배치하면 다이어그램과 모델에서 구성요소를 재사용할 수 있습니다. 해당 구성요소를 사용하려면 라이브러리에서 다이어그램이나 모델로 끌어다 놓으면 됩니다. 라이브러리에서 구성요소를 업데이트하면 구성요소의 모든 인스턴스가 자동으로 업데이트됩니다. 구성요소와 함수를 계층적으로 구성하여 시스템을 명료하고 정확하게 표현할 수 있습니다.

Stateflow에서 대규모 모델링을 위한 구성요소를 만들고 재사용하십시오.

알고리즘 스케줄링

Stateflow에서 조건 및 타임 기반 로직을 모델링하여 Simulink 함수와 MATLAB 함수를 호출할 수 있습니다. Stateflow에서 모델링한 이벤트 기반 로직을 Simulink로 출력하여 함수 호출 또는 제어 신호의 변화에 응답하는 서브시스템을 활성화할 수 있습니다.

Stateflow는 타이머나 카운터 없이 이벤트 수와 시간 경과를 기준으로 상태-전환 로직을 지정할 수 있는 이벤트 기반 및 시간 기반 연산자(before, after, at, 및 every)를 제공합니다.

이륙 시에 이상 또는 오류가 발생하면 지구로 항공기를 다시 돌려보내는 실행 중지 시스템을 만듭니다.

모델 시뮬레이션과 결과 분석

모델을 시뮬레이션하여 시스템 동작을 분석할 수 있습니다. 저장된 상태에서 시뮬레이션을 재시작하고 여러 설정과 구성에 대한 반응을 분석함으로써 가상(what-if) 시나리오를 실행할 수 있습니다.


모델 시뮬레이션

Stateflow에서 상태 다이어그램 애니메이션을 사용하여 모델의 활성 상태 및 전환을 표시함으로써 시뮬레이션 중 시스템 동작을 시각화할 수 있습니다.

Stateflow의 디버깅 기능으로 시뮬레이션을 단계별로 상세히 확인할 수 있습니다. 중단점을 설정하고 데이터 값을 모니터링하며 상태 다이어그램의 여러 상태 단계를 살펴볼 수 있습니다. Stateflow 디버거 창에서 시뮬레이션 실행을 제어하고 다이어그램의 호출 스택과 실행 상태를 표시할 수 있습니다.

Stateflow 디버거는 상태 불일치, 데이터 범위 위반, 무한 루프 가능성을 포함한 런타임 오류를 감지합니다.


결과 분석

시뮬레이션 중 다음을 통해 시뮬레이션 결과를 시각화할 수 있습니다.

  • Simulink 디스플레이 및 스코프를 통해 상태와 데이터 조회
  • Simulation Data Inspector에서 데이터 로깅 조회
  • MATLAB을 통해 사용자 정의 디스플레이 작성

또는 MATLAB에서의 후속 처리를 위해 다이어그램과 상태 활동 데이터를 로그할 수 있습니다.

Stateflow의 시뮬레이션 데이터 시각화 옵션 왼쪽 상단: 특정 신호 비교를 위한 Simulink Data Inspector, 왼쪽 하단: 데이터 분석을 위한 사용자 정의 MATLAB 인터페이스, 오른쪽: 특정 상태 비교를 위한 Simulink Signal Selector


설계 검증과 코드 생성

Stateflow를 다른 Simulink 제품과 함께 사용하면 요구 사항에 대하여 설계를 검증하고 임베디드시스템을 위한 코드를 생성할 수 있습니다.

Simulink Verification and Validation을 통해 요구 사항을 Stateflow 객체에 직접 매핑하고 표준 준수를 검사하며 모델 커버리지 메트릭을 수집할 수 있습니다.

Simulink Design Verifier를 통해 설계 오류를 감지하고 보통의 방법으로 찾기 어려운 오류에 대한 테스트 벡터를 생성할 수 있습니다.

추가(Add-On) 기능 코드 생성 제품을 통해 C 및 C++, HDL 또는 PLC 코드를 상태 다이어그램에서 직접 생성할 수 있습니다.