주요 콘텐츠

Stateflow 데이터의 크기 지정하기

다음을 수행하여 데이터 객체의 크기를 Simulink® 모델의 Stateflow® 차트에 지정합니다.

  • 데이터 속성 설정하기 항목에 설명된 대로, 크기 속성을 설정합니다. 자세한 내용은 크기 항목을 참조하십시오.

  • Stateflow API를 통해 Props.Array.Size 속성을 설정합니다. 자세한 내용은 Stateflow.Data 항목을 참조하십시오.

다음 방법 중 하나를 사용하여 크기를 지정합니다.

  • Simulink 신호에서 또는 Stateflow 차트의 정의에서 크기를 상속합니다.

  • 숫자형 값을 입력합니다.

  • MATLAB® 표현식을 입력합니다.

각 크기 지정 방법에 대한 지원은 데이터의 범위에 따라 다릅니다.

데이터의 범위데이터 크기 지정 방법
크기 상속숫자형 값 사용MATLAB 표현식 사용
로컬MATLAB을 동작 언어로 사용하는 차트에서만
상수아니요
파라미터
입력
출력
데이터 저장소 메모리아니요아니요

데이터 크기 상속하기

대응하는 Simulink 신호 또는 차트의 해당 정의에서 크기를 상속하도록 Stateflow 데이터 객체를 구성하려면 크기를 –1로 지정하십시오. 모델을 시뮬레이션하거나 빌드한 후에는 모델 탐색기의 CompiledSize 열에서 데이터의 상속된 크기를 확인할 수 있습니다.

참고

차트는 Simulink 프레임 기반 신호에서 데이터 크기를 상속받을 수 없습니다. 자세한 내용은 Sample- and Frame-Based Concepts (DSP System Toolbox) 항목을 참조하십시오.

숫자형 값을 사용하여 데이터 크기 지정하기

숫자형 값을 입력하여 데이터 크기를 지정하는 경우에는 다음 지침을 따르십시오.

  • 스칼라를 지정하려면 1을 입력하거나 필드를 비워둡니다.

  • n×1 열 벡터를 지정하려면 n를 입력합니다.

  • n 행 벡터를 지정하려면 [1 n]을 입력합니다.

  • n×m 행렬을 지정하려면 [n m]을 입력합니다. 여기서 mn1보다 큽니다.

  • n차원 배열을 지정하려면 [d1 d2dn]을 입력합니다. 여기서 dii번째 차원의 크기입니다.

C를 동작 언어로 사용하는 차트에서 1차원 Stateflow 벡터는 크기가 동일한 Simulink 행 벡터 또는 열 벡터와 호환됩니다. 예를 들어, 크기가 3인 Stateflow 입력 데이터는 크기가 [1 3]인 Simulink 행 벡터 및 크기가 [3 1]인 열 벡터와 호환됩니다.

표현식을 사용하여 데이터 크기 지정하기

데이터 크기는 숫자형 값을 사용하여 데이터 크기 지정하기 항목에서 설명하는 크기 사양 중 하나로 평가되는 MATLAB 표현식을 입력하여 지정할 수 있습니다. 다음 지침도 적용됩니다.

  • 표현식에는 숫자형 값, 상수, 파라미터, 변수, 산술 연산, MATLAB 함수 호출이 혼합되어 포함될 수 있습니다.

  • 차원의 크기를 지정하는 표현식은 양의 정수 값으로 평가되어야 합니다.

  • 표현식은 호환되는 값만 결합할 수 있습니다. 예를 들어, 정수는 같은 유형의 다른 정수나 double형 스칼라와만 결합될 수 있습니다.

  • 표현식에 열거형 값이 포함되어 있는 경우에는 MATLAB 명명 규칙을 준수하기 위해 유형 접두사를 포함시켜야 합니다. 예를 들어, Colors.Red는 유효하지만, Red는 유효하지 않습니다. 자세한 내용은 Notation for Enumerated Values 항목을 참조하십시오.

  • 다음을 수행하기 위해 MATLAB 표현식을 사용할 수 없습니다.

    • 상속되는 데이터 크기를 지정합니다. -1로 평가되는 표현식을 사용하지 마십시오.

    • Simulink로부터 프레임 기반 데이터를 받는 Stateflow 입력 데이터의 크기를 지정합니다. 자세한 내용은 Sample- and Frame-Based Concepts (DSP System Toolbox) 항목을 참조하십시오.

유효한 데이터 크기 표현식 예제

다음 예제는 데이터 크기를 차트에 지정하는 유효한 MATLAB 표현식입니다.

  • K+3, 여기서 K는 차트 수준 Stateflow 상수 또는 파라미터입니다.

  • N/2, 여기서 N은 MATLAB 기본 작업 공간의 변수입니다.

  • [P Q], 여기서 PQ는 Simulink 파라미터입니다. C를 동작 언어로 사용하는 차트는 이러한 기호 차원을 모델을 통해 전파합니다. Stateflow 데이터의 기호 차원 전파하기 항목을 참조하십시오.

  • 2*Colors.Red, 여기서 Red는 유형 Colors의 열거형 값입니다.

  • size(u), 여기서 u는 차트 수준 변수입니다. 함수 size를 사용하면 한 데이터 객체의 크기를 기반으로 다른 데이터 객체의 크기를 지정할 수 있습니다. 이 표현식 유형은 라이브러리 차트를 재사용하여 다양한 크기의 데이터를 다루려 할 때 유용합니다. 그 밖의 상황에서는 size 함수를 사용하지 않고 데이터의 크기를 직접 지정하여 차트의 명확성을 높일 수 있습니다.

  • floor((a*b)/c), 여기서 acint16형 스칼라이고 bdouble형 스칼라입니다.

  • [fi(2,1,16,2) fi(4,1,16,2)]. 이 표현식은 함수 fi (Fixed-Point Designer)를 호출하여 [2 4]의 데이터 크기를 지정합니다. 이 함수는 워드 길이가 16이고 소수부 길이가 2인 부호 있는 고정소수점 숫자를 반환합니다.

이름 충돌이 발생할 수 있는 변수 사용 안 함

모델에 이름이 동일한 변수가 여러 개 포함되어 있는 경우 크기 지정에는 우선 순위가 가장 높은 변수가 사용됩니다.

우선 순위변수
1마스크 파라미터
2모델 작업 공간 변수
3MATLAB 기본 작업 공간 변수
4Stateflow 데이터

혼란을 피하기 위해, 모델의 여러 수준에서 정의되는 변수 이름을 사용하여 데이터 크기를 지정하지 마십시오.

Stateflow 데이터의 기호 차원 전파하기

모델 구성 파라미터 기호 차원 지정 허용을 선택하면 C를 동작 언어로 사용하는 차트는 Stateflow 데이터의 기호 차원을 모델 전체에 전파할 수 있습니다. Embedded Coder®가 있는 경우 기호 차원이 ERT 타깃을 위한 생성 코드에 포함됩니다. Simulink 파라미터를 다음 스토리지 클래스 중 하나와 함께 사용하여 기호 차원의 크기를 지정합니다.

  • 헤더 파일이 지정된 Define 또는 ImportedDefine

  • CompilerFlag

  • 지정된 헤더 파일에서 데이터를 매크로로 정의하는 사용자 정의된 사용자 지정 스토리지 클래스

자세한 내용은 Allow symbolic dimension specification (Simulink) 항목과 Implement Symbolic Dimensions for Array Sizes in Generated Code (Embedded Coder) 항목을 참조하십시오.

MATLAB을 동작 언어로 사용하는 Stateflow 차트는 기호 차원 전파를 지원하지 않습니다. Simulink 파라미터를 사용하여 데이터 크기를 지정하려면 기호 차원 지정 허용 체크박스의 선택을 해제하십시오.

참고 항목

(Fixed-Point Designer) |

도움말 항목