주요 콘텐츠

Chart

유한 상태 머신으로 제어 논리 구현

  • Chart block

라이브러리:
Stateflow

설명

Chart 블록은 유한 상태 머신을 그래픽으로 표현합니다. Stateflow® 차트에서 상태와 천이는 순차 모달 논리 시스템의 기본 구성요소를 형성합니다. 상태는 동작 모드에 해당하며 천이는 시스템에서 한 동작 모드에서 다른 동작 모드로의 통로를 나타냅니다. 자세한 내용은 Model a Finite State Machine 항목을 참조하십시오.

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

예제

포트

입력

모두 확장

기호 창을 사용하여 Stateflow 차트에서 입력 데이터를 생성하면 Stateflow가 Chart 블록에 해당 입력 포트를 생성합니다.

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

출력

모두 확장

기호 창을 사용하여 Stateflow 차트에서 출력 데이터를 생성하면 Stateflow가 Chart 블록에 해당 출력 포트를 생성합니다.

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

파라미터

모두 확장

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

참고

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

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

상속됨

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

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

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

이산

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

연속

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

프로그래밍 방식 사용

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

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

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

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

종속 관계

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

프로그래밍 방식 사용

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

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

차트의 상태 천이에서 영점교차 검출을 활성화할지 여부입니다. 자세한 내용은 Continuous-Time Modeling in Stateflow 항목을 참조하십시오.

종속 관계

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

프로그래밍 방식 사용

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

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

차트의 상태와 천이 동작에 비트 연산을 사용할지 여부로, 숫자 또는 논리값 1(true) 또는 논리값 0(false)으로 지정됩니다.

종속 관계

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

프로그래밍 방식 사용

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

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

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

종속 관계

이 파라미터를 활성화하려면 Stateflow 상태, 상태 천이 테이블 또는 아토믹 서브차트를 만드십시오.

프로그래밍 방식 사용

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

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

활성 상태 출력 데이터의 모니터링 모드입니다. 자세한 내용은 Monitor State Activity Through Active State Data 항목을 참조하십시오.

종속 관계

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

프로그래밍 방식 사용

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

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

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

종속 관계

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

프로그래밍 방식 사용

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

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

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

종속 관계

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

프로그래밍 방식 사용

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

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

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

종속 관계

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

프로그래밍 방식 사용

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

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

고급

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

프로그래밍 방식 사용

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

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

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

프로그래밍 방식 사용

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

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

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

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

  • 모든 차트 실행에서 모든 출력이 정의되어 있는지 확인합니다.

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

  • 모든 차트 출력에 유의미한 초기값을 제공합니다.

자세한 내용은 초기값 항목을 참조하십시오.

프로그래밍 방식 사용

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

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

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

프로그래밍 방식 사용

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

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

Simulink 모델에서 차트 수준 함수를 다른 블록으로 내보낼지 여부입니다. 자세한 내용은 재사용을 위해 Stateflow 함수 내보내기 항목을 참조하십시오.

종속 관계

이 파라미터를 활성화하려면 차트에 함수를 추가하십시오.

프로그래밍 방식 사용

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

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

차트에서 내보낸 함수를 Simulink 모델에서 전역적으로 볼 수 있는지 여부입니다. 이 속성을 활성화하면 모델 전체에서 블록이 정규화된 표기법을 사용하지 않고 차트에서 내보낸 함수를 호출할 수 있습니다.

종속 관계

이 파라미터를 활성화하려면 차트 수준 함수 내보내기를 활성화하십시오.

프로그래밍 방식 사용

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

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

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

종속 관계

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

프로그래밍 방식 사용

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

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

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

종속 관계

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

프로그래밍 방식 사용

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

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

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

종속 관계

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

프로그래밍 방식 사용

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

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

R2022b 이후

차트가 길이가 1인 차원을 가진, 스칼라가 아닌 데이터를 고정 크기로 처리할지 여부입니다. 이 파라미터를 선택하면 가변 크기 데이터 속성의 활성화 여부와 관계없이 차트는 길이가 1인 차원이 하나 이상인, 스칼라가 아닌 데이터를 고정 크기로 처리합니다. 이 파라미터를 선택 해제하면 차트는 가변 크기 속성이 활성화된, 스칼라가 아닌 데이터를 가변 크기로 처리합니다.

프로그래밍 방식 사용

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

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

시뮬레이션 중과 코드 생성 중에 Stateflow가 분석할 블록 Variant를 지정합니다. 선택한 옵션에 따라 Stateflow는 생성된 코드에 활성 선택 선택지만 포함해야 하는지 또는 활성 선택지와 비활성 선택지를 모두 포함해야 하는지 결정합니다.

  • 다이어그램 업데이트 중 모든 선택지 분석 — 이 옵션을 선택하면 Stateflow는 활성 선택지와 비활성 선택지 모두에서 신호 특성의 비호환성을 분석하고 활성 선택지에 대한 코드만 생성합니다.

  • 코드 컴파일 — 이 옵션을 선택하면 Stateflow는 Variant 천이의 활성 선택지와 비활성 선택지를 모두 분석하고 활성 선택지와 비활성 선택지에 대한 코드를 생성합니다. 생성된 코드를 컴파일할 때 선택지는 조건부로 컴파일되는 C 전처리기 조건문 #if와 #endif로 묶입니다.

프로그래밍 방식 사용

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

파라미터: VariantActivationTime
값: "update diagram analyze all choices" (디폴트 값) | "code compile"

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

프로그래밍 방식 사용

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

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

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

프로그래밍 방식 사용

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

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

고정소수점 속성

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

  • Fixed-point — 차트는 모든 고정소수점 입력을 fi 객체로 취급합니다.

  • Fixed-point & Integer — 차트는 모든 고정소수점 입력과 정수 입력을 fi 객체로 취급합니다.

종속 관계

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

프로그래밍 방식 사용

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

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

차트의 디폴트 fimath 속성으로, 다음 값 중 하나로 지정됩니다.

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

  • Specify other — 다음 두 가지 방법 중 하나로 텍스트 상자에 사용자 고유의 fimath 객체를 지정합니다.

    • 텍스트 상자 내에 fimath 객체 구성.

    • MATLAB 또는 모델 작업 공간에서 fimath 객체를 생성한 다음 텍스트 상자에 변수 이름 입력. 이 옵션을 사용하고 다른 사용자와 모델을 공유하려는 경우 모델 작업 공간에 변수를 정의하십시오.

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

종속 관계

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

프로그래밍 방식 사용

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

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

확장 기능

모두 확장

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

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

버전 내역

R2006a 이전에 개발됨

모두 확장