주요 콘텐츠

차트에 열거형 값 할당하기

Stateflow® 차트의 가독성을 높이려면 열거형 데이터를 사용하십시오. 열거형 데이터를 사용하면 다음과 같은 작업이 가능합니다.

  • 특정 값으로 제한된 집합을 만들고 해당 값을 이름으로 참조.

  • 관련된 값을 개별 데이터형으로 그룹화.

  • 긴 상수 목록을 정의하는 것을 방지.

열거형 데이터는 Simulink® 모델의 Stateflow 차트에서 지원됩니다. 자세한 내용은 Reference Values by Name by Using Enumerated Data 항목을 참조하십시오.

차트 동작

이 예제에서는 열거형 값을 사용하여 상태 키워드를 제공하는 차트를 만드는 방법을 보여줍니다.

Stateflow chart with states called A and B.

시뮬레이션 동안 차트 동작은 상태 AB 간에 전환합니다.

상태 A의 실행

  • 시뮬레이션이 시작되면 상태 A로 진입합니다.

  • 상태 A는 값 RED를 열거형 데이터 color에 할당하여 entry 동작을 실행합니다.

  • 데이터 y는 조건 [y > 6]이 true가 될 때까지 시간 스텝당(매 0.2초) 1씩 증분합니다.

  • 차트는 상태 A에서 상태 B로의 천이를 수행합니다.

상태 B의 실행

  • 상태 A로부터 천이가 발생한 후, 상태 B로 진입합니다.

  • 상태 B는 값 GREEN을 열거형 데이터 color에 할당하여 entry 동작을 실행합니다.

  • 데이터 y는 조건 [y < 3]이 true가 될 때까지 시간 스텝당(매 0.2초) 1씩 감소합니다.

  • 차트는 다시 상태 B에서 상태 A로의 천이를 수행합니다.

차트 만들기

상태와 천이를 차트에 추가하기

  1. 빈 차트가 있는 Simulink 모델을 만들기 위해 MATLAB® 명령 프롬프트에서 sfnew를 입력합니다.

  2. 빈 차트에서 상태 AB를 추가합니다. 텍스트 프롬프트에서 적절한 동작문을 입력합니다.

  3. 디폴트 천이를 상태 A에 추가하고, 상태 AB 사이에 천이를 추가합니다.

  4. 각 천이를 더블 클릭합니다. 텍스트 프롬프트에서 적절한 조건을 입력합니다.

차트에 대한 열거형 데이터형 정의하기

  1. 데이터형 정의를 저장할 파일을 만들기 위해 MATLAB 툴스트립의 탭에서 새로 만들기 > 클래스를 선택합니다.

  2. MATLAB 편집기에서 다음을 입력합니다.

    classdef TrafficColors < Simulink.IntEnumType
      enumeration
        RED(0)
        GREEN(10)
      end
    end  
    classdef 섹션은 TrafficColors라는 정수 기반 열거형 데이터형을 정의합니다. enumeration 섹션에 이 데이터형이 허용하는 열거형 값이 있고, 그 뒤에 해당 값의 기본 숫자형 값이 있습니다.

  3. 파일을 MATLAB 검색 경로의 폴더에 TrafficColors.m으로 저장합니다.

차트 데이터 정의하기

  1. 정의되지 않은 데이터의 연결을 맺기 위해 기호 창에서 정의되지 않은 기호 연결 맺기 아이콘 을 클릭합니다. Stateflow 편집기에서 차트의 각 기호에 적절한 범위가 할당됩니다.

    기호범위
    color출력 데이터
    y로컬 데이터
    GREEN파라미터 데이터
    RED파라미터 데이터

  2. color를 열거형 데이터로 지정하기 위해 속성 인스펙터에서 다음을 수행합니다.

    • 유형 필드에서 Enum: <class name>을 선택합니다. <class name>을 앞에서 정의한 데이터형 이름 TrafficColors로 바꿉니다.

    • 기록 아래에서 신호 데이터 기록 대화 상자를 선택합니다.

  3. y의 범위와 유형을 설정하기 위해 속성 인스펙터에서 다음을 수행합니다.

    • 범위 필드에서 출력을 선택합니다.

    • 유형 필드에서 uint8을 선택합니다.

    • 기록 아래에서 신호 데이터 기록 대화 상자를 선택합니다.

  4. 기호 창에서 기호 GREEN과 기호 RED를 삭제합니다. color를 열거형 데이터로 지정하기 전에는 Stateflow 편집기에서 이들 기호가 파라미터로 잘못 식별되어 있었습니다.

기록된 출력값 표시하기

  1. 모델을 시뮬레이션합니다.

  2. 시뮬레이션 탭의 결과 검토 아래에서 데이터 인스펙터를 선택합니다.

  3. 시뮬레이션 데이터 인스펙터 (Simulink)검사 창에서 신호 colory을 선택합니다. 기록된 신호를 함께 표시하거나 개별 축에 표시할 수 있습니다. 자세한 내용은 Inspect Simulation Data (Simulink) 항목을 참조하십시오.

    Simulation Data Inspector showing simulation results for color and y.

  4. MATLAB 작업 공간에서 기록된 데이터에 액세스하기 위해 신호 기록 객체 logsout을 호출합니다. 예를 들어 명령 프롬프트에서 다음을 입력합니다.

    losgout = out.logsout;
    colorLog = logsout.getElement("color");
    Tbl = table(colorLog.Values.Time,colorLog.Values.Data);
    Tbl.Properties.VariableNames = ["SimulationTime","Color"]
    Tbl =
    
      9×2 table
    
        SimulationTime    Color
        ______________    _____
    
               0          RED
             1.6          GREEN
             2.8          RED
               4          GREEN
             5.2          RED
             6.4          GREEN
             7.6          RED
             8.8          GREEN
              10          RED
    

참고 항목

(Simulink)

도움말 항목