Main Content

State Transition Table

테이블 형식으로 모달 논리 표현

  • State Transition Table block

라이브러리:
Stateflow

설명

State Transition Table 블록은 유한 상태 머신을 테이블 형식으로 표현합니다. Stateflow® 차트에서 상태와 천이를 그리는 대신에, 그래픽 객체의 유지관리를 간결하고 간소한 형식을 통해 최소화해 주는 상태 천이 테이블을 사용하여 상태 머신을 모델링할 수 있습니다. 자세한 내용은 Model Finite State Machines Using State Transition Tables 항목을 참조하십시오.

제어 논리를 구현하기 위해 State Transition Table 블록은 MATLAB® 또는 C를 동작 언어로 사용할 수 있습니다. 자세한 내용은 동작 언어 구문으로서 MATLAB과 C의 차이점 항목을 참조하십시오.

예제

포트

입력

모두 확장

기호 창을 사용하여 Stateflow 상태 천이 테이블에서 입력 데이터를 생성하면 Stateflow가 State Transition Table 블록에 그에 대응하는 입력 포트를 생성합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

출력

모두 확장

기호 창을 사용하여 Stateflow 상태 천이 테이블에서 출력 데이터를 생성하면 Stateflow가 State Transition Table 블록에 그에 대응하는 출력 포트를 생성합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

파라미터

모두 확장

블록 파라미터를 대화형 방식으로 편집하려면 속성 인스펙터를 사용하십시오. Simulink® 툴스트립에 있는 시뮬레이션 탭의 준비 갤러리에서 속성 인스펙터를 선택합니다.

참고

State Transition Table 블록에는 블록을 마우스 오른쪽 버튼으로 클릭하고 블록 파라미터 (Subsystem)을 클릭하여 액세스할 수 있는 Subsystem (Simulink) 블록 파라미터도 있습니다. 하지만 이러한 블록 파라미터를 업데이트하는 것은 권장되지 않습니다.

Stateflow 상태 천이 테이블을 업데이트하거나 웨이크업 상태로 만드는 방법으로, 상속됨, 이산 또는 연속으로 지정됩니다.

상속됨

Simulink 모델로부터의 입력은 시뮬레이션 중에 상태 천이 테이블이 웨이크업 상태가 되는 시점을 결정합니다.

상태 천이 테이블의 입력 이벤트를 정의하면 트리거 포트에 연결된 Simulink 블록의 신호가 상태 천이 테이블을 트리거합니다. Simulink 신호는 상승, 하강 또는 양쪽 모두 가능(상승과 하강)이거나 함수 호출에 대한 응답일 수 있습니다. 자세한 내용은 입력 이벤트를 전송하여 Stateflow 차트 활성화하기 항목을 참조하십시오.

입력 이벤트를 정의하지 않으면 Stateflow 상태 천이 테이블은 Simulink 모델로부터 트리거를 상속합니다. 이러한 묵시적 이벤트는 상태 천이 테이블에 입력을 제공하는 Simulink 신호의 이산 샘플 시간 또는 연속 샘플 시간입니다. 데이터 입력을 정의하면 상태 천이 테이블은 가장 빠른 데이터 입력 속도로 웨이크업 상태가 됩니다. 상태 천이 테이블의 데이터 입력을 정의하지 않으면 상태 천이 테이블은 부모 서브시스템의 실행 동작에 정의된 대로 웨이크업 상태가 됩니다.

이산

Simulink 모델이 샘플 시간 상태 천이 테이블 속성에 지정된 규칙적인 시간 간격으로 묵시적 이벤트를 생성하면 Stateflow 상태 천이 테이블이 웨이크업 상태가 됩니다. Simulink 모델의 다른 블록은 샘플 시간이 다를 수 있습니다.

연속

Stateflow 상태 천이 테이블은 주 시간 스텝 중에만 상태를 업데이트하며, 주 시간 스텝과 보조 시간 스텝 중에 출력과 로컬 연속 변수를 계산합니다. 상태 천이 테이블은 영점교차를 등록할 수 있으며, 이를 통해 Simulink 모델은 상태가 변경될 때마다 Stateflow 상태 천이 테이블을 샘플링할 수 있습니다. Stateflow 상태 천이 테이블은 로컬 연속 변수에 대한 도함수를 계산합니다. 자세한 내용은 Continuous-Time Modeling in Stateflow 항목을 참조하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: ChartUpdate
값: "INHERITED" (디폴트 값) | "CONTINUOUS" | "DISCRETE"

디폴트 시간 간격은 -1이며, 이는 Stateflow 상태 천이 테이블이 Simulink로부터 샘플 시간을 상속함을 나타냅니다.

시뮬레이션 중에 상태 천이 테이블이 웨이크업 상태가 되는 시간 간격을 지정합니다. 이 디폴트 값은 상태 천이 테이블이 Simulink로부터 샘플 시간을 상속함을 나타냅니다. 샘플 시간 지정에 대한 자세한 내용은 샘플 시간 지정하기 (Simulink) 항목을 참조하십시오.

Subsystem 블록 파라미터의 샘플 시간 파라미터를 사용하지 마십시오. 대신, 속성 인스펙터를 사용하십시오.

종속 관계

이 파라미터를 활성화하려면 업데이트 방법이산으로 설정하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: SampleTime
값: "-1" (디폴트 값) | string scalar | character vector
데이터형: string | char

상태 천이 테이블에 대한 활성 상태 데이터 출력 포트를 만들지 여부입니다. 자세한 내용은 Monitor State Activity Through Active State Data 항목을 참조하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: HasOutputData
값: false or 0 (디폴트 값) | true or 1
데이터형: logical

활성 상태 출력 데이터의 모니터링 모드입니다.

종속 관계

이 파라미터를 활성화하려면 모니터링을 위한 출력 만들기를 활성화하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: OutputMonitoringMode
값: "ChildActivity" (디폴트 값) | "LeafStateActivity"

상태 천이 테이블에 대한 활성 상태 데이터 객체의 이름입니다.

종속 관계

이 파라미터를 활성화하려면 모니터링을 위한 출력 만들기를 활성화하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: OutputPortName
값: "State_Transition_TableMode" (디폴트 값) | string scalar | character vector
데이터형: string | char

상태 천이 테이블에 대한 활성 상태 데이터 객체의 이름입니다.

종속 관계

이 파라미터를 활성화하려면 모니터링을 위한 출력 만들기를 활성화하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: EnumTypeName
값: "State_Transition_TableModeType" (디폴트 값) | string scalar | character vector
데이터형: string | char

활성 상태 데이터 출력에 대한 열거형 데이터형을 수동으로 정의할지 여부입니다. 자세한 내용은 Define State Activity Enumeration Type 항목을 참조하십시오.

종속 관계

이 파라미터를 활성화하려면 모니터링을 위한 출력 만들기를 활성화하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: DoNotAutogenerateEnum
값: false or 0 (디폴트 값) | true or 1
데이터형: logical

고급

상태 천이 테이블의 상태 구성을 첫 번째 입력 이벤트가 아닌 시간 0에 초기화할지 여부입니다. 자세한 내용은 Execution of a Chart at Initialization 항목을 참조하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: ExecuteAtInitialization
값: false or 0 (디폴트 값) | true or 1
데이터형: logical

상태 천이 테이블의 데이터가 정수 오버플로 시 포화되는지 여부입니다. 이 파라미터의 선택을 해제하면 상태 천이 테이블의 데이터가 정수 오버플로 시 래핑됩니다. 자세한 내용은 Handle Integer and Enumeration Overflow for Chart Data 항목을 참조하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: SaturateOnIntegerOverflow
값: true or 1 (디폴트 값) | false or 0
데이터형: logical

상태 천이 테이블이 웨이크업 상태가 될 때마다 출력 데이터를 초기화할지 여부입니다.

이 파라미터를 선택하면 시간 0일 때뿐만 아니라 상태 천이 테이블이 웨이크업 상태가 될 때에도 상태 천이 테이블의 출력값이 매번 재설정됩니다. 함수 호출, 에지 트리거 또는 클록 틱이 상태 천이 테이블을 트리거할 때마다 상태 천이 테이블이 출력값을 재설정합니다. 출력 데이터 객체의 초기값을 설정하면 출력이 해당 값으로 재설정됩니다. 그렇지 않으면 출력이 0으로 재설정됩니다. 이 파라미터를 선택하여 다음을 수행하십시오.

  • 모든 상태 천이 테이블 실행에서 모든 출력이 정의되어 있는지 확인합니다.

  • 출력이 래치되는 것을 방지합니다. 즉, 이전 실행에서 계산된 출력값을 방지합니다.

  • 모든 상태 천이 테이블 출력에 유의미한 초기값을 제공합니다.

자세한 내용은 Initial value 항목을 참조하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: InitializeOutput
값: false or 0 (디폴트 값) | true or 1
데이터형: logical

상태 천이 테이블이 가변 크기 데이터를 지원할지 여부입니다. 자세한 내용은 Stateflow 차트에서 가변 크기 데이터 선언하기 항목을 참조하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: SupportVariableSizing
값: true or 1 (디폴트 값) | false or 0
데이터형: logical

상태 천이 테이블의 슈퍼 스텝 의미 체계를 활성화할지 여부입니다. 상태 천이 테이블이 안정적인 상태에 도달할 때까지 각 시간 스텝에서 여러 번의 천이를 거치도록 하려면 이 파라미터를 선택합니다. 다음의 경우에는 이 옵션을 사용할 수 없습니다. 자세한 내용은 Super Step Semantics 항목을 참조하십시오.

종속 관계

이 파라미터를 활성화하려면 업데이트 방법이산으로 설정하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: EnableNonTerminalStates
값: false or 0 (디폴트 값) | true or 1
데이터형: logical

하나의 슈퍼 스텝에서 완료할 수 있는 최대 천이 횟수입니다. 자세한 내용은 Super Step Semantics 항목을 참조하십시오.

종속 관계

이 파라미터를 활성화하려면 슈퍼 스텝 의미 체계 활성화를 활성화하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: NonTerminalMaxCounts
값: 1000 (디폴트 값) | positive integer
데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

슈퍼 스텝이 하나의 슈퍼 스텝에서 최대 천이 횟수를 초과할 경우 Stateflow가 수행할 동작. 자세한 내용은 Super Step Semantics 항목을 참조하십시오.

종속 관계

이 파라미터를 활성화하려면 슈퍼 스텝 의미 체계 활성화를 활성화하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: NonTerminalUnstableBehavior
값: "Proceed" (디폴트 값) | "Throw Error"

R2023a 이후

상태 천이 테이블이 길이가 1인 차원을 가진 출력 데이터를 고정 크기로 처리할지 여부입니다. 이 파라미터를 선택하면 가변 크기 데이터 속성의 활성화 여부와 관계없이 상태 천이 테이블은 길이가 1인 차원이 하나 이상 있는 출력 데이터를 고정 크기로 처리합니다. 이 파라미터의 선택을 해제하면 상태 천이 테이블은 가변 크기 속성이 활성화된 데이터를 가변 크기로 처리합니다.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: TreatDimensionOfLengthOneAsFixedSize
값: true or 1 (디폴트 값) | false or 0
데이터형: logical

상태 천이 테이블을 프로그래밍하는 데 사용되는 동작 언어로, MATLAB 또는 C로 지정됩니다. 자세한 내용은 동작 언어 구문으로서 MATLAB과 C의 차이점 항목을 참조하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: ActionLanguage
값: "MATLAB" (디폴트 값) | "C"

상태 천이 테이블에 의해 구현되는 상태 머신 의미 체계로, Classic, Mealy 또는 Moore로 지정됩니다. 자세한 내용은 밀리 머신과 무어 머신에 대한 개요 항목을 참조하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: StateMachineType
값: "Classic" (디폴트 값) | "Mealy" | "Moore"

고정소수점 속성

Fixed-Point Designer™ fi 객체로 취급될 상속된 Simulink 신호로, 다음 값 중 하나로 지정됩니다.

  • Fixed-point — 상태 천이 테이블은 모든 고정소수점 입력을 fi 객체로 취급합니다.

  • Fixed-point & Integer — 상태 천이 테이블은 모든 고정소수점 입력과 정수 입력을 fi 객체로 취급합니다.

이 파라미터는 MATLAB을 동작 언어로 사용하는 상태 천이 테이블에만 적용됩니다.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: TreatAsFi
값: "Fixed-point" (디폴트 값) | "Fixed-point & Integer"

상태 천이 테이블의 디폴트 fimath 객체 속성으로, 다음 값 중 하나로 지정됩니다.

  • Same as MATLAB — 상태 천이 테이블은 현재 디폴트 fimath 객체와 동일한 fimath 객체 속성을 사용합니다. 텍스트 상자가 흐리게 표시되고 현재 전역 fimath 객체는 읽기 전용 형식으로 표시됩니다.

  • Specify other — 텍스트 상자에 사용자 고유의 fimath 객체를 지정합니다.

자세한 내용은 fimath Object Construction (Fixed-Point Designer) 항목을 참조하십시오.

종속 관계

이 파라미터를 활성화하려면 동작 언어MATLAB으로 설정하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 블록의 Stateflow.StateTransitionTableChart 객체에 액세스하고 점 표기법을 사용하여 객체 속성을 변경합니다.

파라미터: EmlDefaultFimath
값: "Same as MATLAB Default" (디폴트 값) | "Other:UserSpecified"

확장 기능

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

PLC 코드 생성
Simulink® PLC Coder™를 사용하여 Structured Text 코드를 생성할 수 있습니다.

고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.

버전 내역

R2012b에 개발됨

모두 확장