Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

Simulink.LookupTable 클래스

패키지: Simulink
슈퍼클래스:

룩업 테이블과 절점 데이터 저장 및 공유, ASAP2 및 AUTOSAR 코드 생성을 위한 데이터 구성

설명

Simulink.LookupTable 클래스의 객체는 룩업 테이블과 절점 데이터를 저장합니다. 이 데이터를 n-D Lookup Table 블록과 같은 Lookup Table 블록에서 사용할 수 있습니다. 객체를 사용하여 테이블 및 절점 세트에 대한 데이터형 및 코드 생성 설정을 지정할 수 있습니다.

모든 테이블과 절점 세트 데이터를 단일 Simulink.LookupTable 객체에 저장하면 생성 코드에서 모든 데이터가 단일 구조체로 나타납니다. 보정을 위해 STD_AXIS 코드 생성을 구성하려면 이 기법을 사용하십시오.

여러 룩업 테이블 간에 절점 세트를 공유하려면(예를 들어, COM_AXIS 코드 생성을 위해) 하나 이상의 Prelookup 블록에서 Simulink.Breakpoint 객체를 사용하십시오. Interpolation Using Prelookup 블록의 Simulink.LookupTable 객체를 사용합니다. 그런 다음 breakpoint 객체를 참조하도록 lookup table 객체를 구성합니다. 자세한 내용은 Package Shared Breakpoint and Table Data for Lookup Tables 항목을 참조하십시오.

Simulink.LookupTable를 서브클래스화하고 이 기본 클래스에서 상속하려면 다음 구문을 클래스 정의 파일의 첫 번째 라인에 입력하십시오. 여기서 myLookuptable은 새 클래스의 이름입니다.

classdef myLookuptable < Simulink.LookupTable

서브클래스화에 대한 예는 Define Data Classes 항목을 참조하십시오.

서브클래스에 속성을 추가하면 MATLAB® 명령줄에 서브클래스 객체를 표시하여 속성을 볼 수 있습니다. 이러한 속성은 속성 대화 상자의 새 탭에 표시됩니다.

생성

LUTObj = Simulink.LookupTable은 디폴트 속성값을 사용하는 Simulink.LookupTable 객체 LUTObj를 반환합니다.

모델 탐색기를 사용하여 Simulink.LookupTable 객체를 만들려면 도구 모음의 버튼을 사용하십시오. 객체의 디폴트 이름은 Object입니다.

속성 대화 상자

절점 사양Explicit(디폴트 값)으로 설정하면 속성 대화 상자의 이 보기가 표시됩니다.

대화 상자의 하단에는 테이블과 절점 데이터 값이 있습니다. 이 테이블 형식 영역에 대한 자세한 내용은 View Lookup Table Data 항목을 참조하십시오. 이 테이블의 내용은 절점 사양 속성이 Even spacing 또는 Reference로 설정된 경우 표시되는 속성과 동일합니다.

테이블 차원 수

룩업 테이블의 차원 수. 최대 30(30 포함)의 정수 값을 지정합니다. 예를 들어, 3차원 룩업 테이블을 나타내려면 정수 3을 지정합니다.

테이블

테이블 데이터에 대한 정보. 다음 특성을 구성할 수 있습니다.

테이블 데이터. 요소가 두 개 이상 있는 숫자형 벡터 또는 다차원 배열을 지정합니다.

테이블 데이터는 절점 사양 속성이 Explicit으로 설정되어 있을 때 대화 상자 하단에 표시되는 테이블 형식 인터페이스의 내용과 동일합니다. 이 테이블 형식 영역에 대한 자세한 내용은 View Lookup Table Data 항목을 참조하십시오.

참고

이 속성은 절점 사양Even spacing 또는 Reference로 설정된 경우에만 나타납니다.

표현식이 숫자형 벡터 또는 다차원 배열을 반환하는 한 sin(1:0.5:30)과 같은 수학 연산자와 함께 표현식을 사용할 수도 있습니다. 적용 또는 확인을 클릭하면 객체가 표현식을 실행하고 그 결과를 사용하여 이 속성의 값을 설정합니다.

데이터형auto로 설정했을 때, 을 설정하려면 single([1 2 3])과 같이 데이터형을 지정한 표현식을 사용하거나 fi (Fixed-Point Designer) 생성자를 사용하여 fi 객체를 임베딩하십시오.

차원이 3 이상인 테이블 데이터를 지정하면 reshape 함수에 대한 호출이 포함된 표현식으로 데이터를 표시합니다. 데이터의 값을 편집하려면 reshape 호출의 첫 번째 인수를 수정하십시오. 이 인수는 직렬화된 벡터의 모든 값을 포함하고 있습니다. 차원을 따라 요소를 추가하거나 제거할 때는 수정된 차원의 길이를 나타내는 인수도 수정해야 합니다.

Lookup Table 블록에서 보다 직관적인 인터페이스를 사용하여 이 데이터를 편집할 수 있습니다. Import Lookup Table Data from MATLAB 항목을 참조하십시오.

데이터형

테이블 데이터의 데이터형. 디폴트 설정은 auto이며, 이는 테이블 데이터가 에 지정한 값에서 데이터형을 획득한다는 것을 의미합니다. [1 2 3]과 같이 데이터형을 지정하지 않은 표현식을 사용하여 을 설정하면 테이블 데이터는 데이터형 double형을 사용합니다. single([1 2 3])과 같이 데이터형을 지정한 표현식 또는 fi 객체를 지정하면 테이블 데이터는 표현식 또는 객체에서 지정한 데이터형을 사용합니다. 열거형 데이터형도 지원됩니다.

정수 데이터형, half 데이터형, 부동소수점 데이터형, 고정소수점 데이터형 또는 Simulink.AliasType 객체의 이름과 같은 데이터형 표현식을 명시적으로 지정할 수 있습니다.

Simulink®의 데이터형에 대한 자세한 내용은 Data Types Supported by Simulink 항목을 참조하십시오. Simulink.LookupTableSimulink.Breakpoint 객체에서 테이블 및 절점 데이터의 데이터형을 제어하는 방법을 결정하려면 Control Data Types of Lookup Table Objects (Simulink Coder) 항목을 참조하십시오.

차원

룩업 테이블 데이터의 차원 길이.

기호 차원을 사용하려면 문자형 벡터를 지정하십시오. Implement Dimension Variants for Array Sizes in Generated Code (Embedded Coder) 항목을 참조하십시오.

최솟값

테이블 데이터에 있는 요소의 최솟값. 디폴트 값은 빈 값([])입니다. 실수 숫자형 값을 지정할 수 있습니다.

Simulink가 이 속성을 사용하는 방법에 대한 자세한 내용은 Specify Minimum and Maximum Values for Block Parameters 항목을 참조하십시오.

최댓값

테이블 데이터에 있는 요소의 최댓값. 디폴트 값은 빈 값([])입니다. 실수 숫자형 값을 지정할 수 있습니다.

Simulink가 이 속성을 사용하는 방법에 대한 자세한 내용은 Specify Minimum and Maximum Values for Block Parameters 항목을 참조하십시오.

저장된 정수 최솟값

고정소수점 데이터형을 가진 Simulink.LookupTable 객체의 경우 테이블 데이터에 있는 요소의 최솟값이며, 저장된 정수 값으로 지정됩니다. 이 값은 실제 값인 최솟값에서 파생됩니다. 이 속성은 속성 대화 상자에서만 사용할 수 있습니다.

저장된 정수 최댓값

고정소수점 데이터형을 가진 Simulink.LookupTable 객체의 경우 테이블 데이터에 있는 요소의 최댓값이며, 저장된 정수 값으로 지정됩니다. 이 값은 실제 값인 최댓값에서 파생됩니다. 이 속성은 속성 대화 상자에서만 사용할 수 있습니다.

단위

룩업 테이블에 있는 요소의 물리적 단위. degC와 같은 텍스트를 지정할 수 있습니다. Unit Specification in Simulink Models 항목을 참조하십시오.

필드 이름

생성 코드의 구조체 필드 이름. 사용자가 Simulink.LookupTable 객체를 생성 코드에 구조체로 나타나도록 구성한 경우 이 필드는 테이블 데이터를 저장합니다. 디폴트 값은 Table입니다. 필드 이름을 변경하려면 텍스트를 지정하십시오.

설명

룩업 테이블에 대한 설명. This lookup table describes the action of a pump와 같은 텍스트를 지정할 수 있습니다.

절점

절점 세트 정보. 각 행은 하나의 절점 세트입니다. 추가 절점 세트를 구성하려면 테이블 차원 수 상자에 정수 값을 지정하십시오.

절점 세트의 경우 다음 특성을 구성할 수 있습니다.

사양

절점 세트 정보의 소스로, Explicit values(디폴트 값), Reference 또는 Even spacing으로 지정됩니다.

  • 모든 테이블 및 절점 세트 데이터를 Simulink.LookupTable 객체에 저장하려면 사양Explicit values로 설정합니다.

    Simulink.LookupTable 객체는 생성 코드에서 단일 구조체 변수로 나타납니다.

  • 테이블 데이터를 Simulink.LookupTable 객체에 저장하고 절점 세트 데이터를 Simulink.Breakpoint 객체에 저장하려면 사양Reference로 설정합니다.

    Simulink.LookupTable 객체는 생성 코드에서 테이블 데이터를 포함하는 별도의 배열 변수로 나타납니다. 각 Simulink.Breakpoint 객체는 절점 세트 데이터를 포함하는 별도의 배열 또는 구조체 변수로 나타납니다.

  • 테이블 데이터와 균일한 간격의 절점을 Simulink.LookupTable 객체에 저장하려면 사양Even spacing으로 설정합니다. 첫 번째 지점간격 파라미터를 사용하여 균일한 간격의 절점 세트를 생성합니다.

참고

사양Explicit values 또는 Even spacing으로 설정되어 있으면 lookup table 객체에서 생성된 구조체에서 조정 가능한 크기, 절점 및 테이블 항목의 순서를 변경할 수 있습니다.

조정 가능한 크기 지원

생성 코드에서 테이블의 유효 크기를 조정할 수 있도록 지정하는 값. 코드에서 객체에 해당하는 구조체에는 각 절점 벡터에 대한 추가 필드가 있습니다. 각 추가 필드는 해당 절점 벡터의 길이를 저장합니다. 각 필드의 값을 변경하여 테이블의 유효 크기를 조정할 수 있습니다.

이 속성은 사양Explicit values 또는 Even spacing으로 설정한 경우에만 나타납니다.

참고

사양Reference로 설정하여 Simulink.Breakpoint 객체에 절점 데이터를 저장하는 경우, 생성 코드에서 테이블 크기를 조정할 수 있도록 하려면 각 Simulink.Breakpoint 객체의 조정 가능한 크기 지원 속성을 사용하십시오.

절점 세트의 데이터. 요소가 두 개 이상 있는 숫자형 벡터를 지정합니다.

참고

이 속성은 절점 사양Even spacing 또는 Reference로 설정된 경우에만 나타납니다. 절점 세트 데이터는 절점 사양 속성이 Explicit으로 설정되어 있을 때 대화 상자 하단에 표시되는 테이블 형식 인터페이스의 내용과 동일합니다. 이 테이블 형식 영역에 대한 자세한 내용은 View Lookup Table Data 항목을 참조하십시오.

표현식이 숫자형 벡터를 반환하는 한 sin(1:0.5:30)과 같은 수학 연산자와 함께 표현식을 사용할 수도 있습니다. 적용 또는 확인을 클릭하면 객체가 표현식을 실행하고 그 결과를 사용하여 이 속성의 값을 설정합니다.

데이터형auto로 설정했을 때, 을 설정하려면 single([1 2 3])과 같이 데이터형을 지정한 표현식을 사용하거나 fi (Fixed-Point Designer) 생성자를 사용하여 fi 객체를 임베딩하십시오.

Lookup Table 블록에서 보다 직관적인 인터페이스를 사용하여 이 데이터를 편집할 수 있습니다. Import Lookup Table Data from MATLAB 항목을 참조하십시오.

데이터형

절점 세트의 데이터형. 디폴트 설정은 auto이며, 이는 절점 세트가 에 지정한 값에서 데이터형을 획득한다는 것을 의미합니다. [1 2 3]과 같이 데이터형을 지정하지 않은 표현식을 사용하여 을 설정하면 절점 데이터는 데이터형 double형을 사용합니다. single([1 2 3])과 같이 데이터형을 지정한 표현식 또는 fi 객체를 지정하면 절점 데이터는 표현식 또는 객체에서 지정한 데이터형을 사용합니다.

정수 데이터형, 부동소수점 데이터형, 고정소수점 데이터형 또는 Simulink.AliasType 객체의 이름과 같은 데이터형 표현식을 명시적으로 지정할 수 있습니다.

Simulink의 데이터형에 대한 자세한 내용은 Data Types Supported by Simulink 항목을 참조하십시오. Simulink.LookupTableSimulink.Breakpoint 객체에서 테이블 및 절점 데이터의 데이터형을 제어하는 방법을 결정하려면 Control Data Types of Lookup Table Objects (Simulink Coder) 항목을 참조하십시오.

차원

절점 세트의 차원 길이.

기호 차원을 사용하려면 문자형 벡터를 지정하십시오. Implement Dimension Variants for Array Sizes in Generated Code (Embedded Coder) 항목을 참조하십시오.

최솟값

절점 세트에 있는 요소의 최솟값. 디폴트 값은 빈 값([])입니다. 실수 숫자형 값을 지정할 수 있습니다.

Simulink가 이 속성을 사용하는 방법에 대한 자세한 내용은 Specify Minimum and Maximum Values for Block Parameters 항목을 참조하십시오.

최댓값

절점 세트에 있는 요소의 최댓값. 디폴트 값은 빈 값([])입니다. 실수 숫자형 값을 지정할 수 있습니다.

Simulink가 이 속성을 사용하는 방법에 대한 자세한 내용은 Specify Minimum and Maximum Values for Block Parameters 항목을 참조하십시오.

단위

절점 세트에 있는 요소의 물리적 단위. degF와 같은 텍스트를 지정할 수 있습니다. Unit Specification in Simulink Models 항목을 참조하십시오.

필드 이름

생성 코드의 구조체 필드 이름. 이 필드는 절점 세트 데이터를 저장합니다. 디폴트 값은 첫 번째 절점 세트의 경우 BP1이고 두 번째 세트의 경우 BP2입니다. 필드 이름을 변경하려면 텍스트를 지정하십시오.

조정 가능한 크기 이름

생성 코드의 구조체 필드 이름. 이 필드는 절점 세트의 길이(요소 수)를 저장하며, 생성된 코드 알고리즘이 테이블의 크기를 결정하는 데 이 값을 사용합니다. 코드 실행 중에 테이블의 유효 크기를 조정하려면 메모리에서 이 구조체 필드의 값을 변경하십시오. 디폴트 이름은 첫 번째 절점 세트의 경우 N1이고 두 번째 세트의 경우 N2입니다. 필드 이름을 변경하려면 텍스트를 지정하십시오.

이 열은 조정 가능한 크기 지원을 선택한 경우에만 나타납니다.

설명

절점 세트에 대한 설명. This breakpoint set represents the pressure input과 같은 텍스트를 지정할 수 있습니다.

첫 번째 지점

균일 간격 절점 데이터의 첫 번째 지점. 이 파라미터는 사양Even spacing으로 설정되었을 때 사용할 수 있습니다.

간격

균일 간격 절점 데이터의 점 간 간격. 이 파라미터는 사양Even spacing으로 설정되었을 때 사용할 수 있습니다.

이름

이 절점 세트에 대한 정보를 저장하는 Simulink.Breakpoint 객체의 이름입니다.

이 열은 사양Reference로 설정한 경우에만 나타납니다.

첫 번째 지점 이름

첫 번째 지점에 대한 정보를 저장하는 Simulink.Breakpoint 객체의 이름. 이 파라미터는 사양Even spacing으로 설정되었을 때 사용할 수 있습니다.

간격 이름

간격에 대한 정보를 저장하는 Simulink.Breakpoint 객체의 이름. 이 파라미터는 사양Even spacing으로 설정되었을 때 사용할 수 있습니다.

데이터 정의: 스토리지 클래스

생성 코드에서 구조체 변수(사양Explicit values 또는 Even spacing으로 설정한 경우) 또는 배열 변수(Reference로 설정한 경우)의 스토리지 클래스. 이 변수는 테이블 데이터와 절점 세트 데이터(변수가 구조체인 경우)를 저장합니다. 디폴트 설정은 Auto입니다.

스토리지 클래스에 대한 자세한 내용은 C Code Generation Configuration for Model Interface Elements (Simulink Coder) 항목을 참조하십시오.

Embedded Coder®가 있는 경우 사용자 지정 스토리지 클래스를 선택할 수 있습니다. 사용자 지정 스토리지 클래스에 대한 자세한 내용은 Organize Parameter Data into a Structure by Using Struct Storage Class (Embedded Coder) 항목을 참조하십시오.

데이터 정의: 식별자

생성 코드에서 구조체 변수(사양Explicit values 또는 Even spacing으로 설정한 경우) 또는 배열 변수(Reference로 설정한 경우)의 대체 이름. 디폴트 값은 빈 값이며, 이 경우 생성 코드는 Simulink.LookupTable 객체의 이름을 구조체 또는 배열 변수의 이름으로 사용합니다. 식별자를 설정하려면 텍스트를 지정하십시오.

이 속성을 활성화하려면 데이터 정의: 스토리지 클래스Auto 이외의 설정으로 지정하십시오.

데이터 정의: 정렬

생성 코드의 데이터 정렬 경계. 구조체 또는 배열 변수에 할당된 데이터의 시작 메모리 주소는 지정한 값의 배수입니다. 디폴트 값은 -1이며, 이 경우 코드 생성기가 사용량에 따라 최적의 정렬을 결정할 수 있도록 합니다.

128을 초과하지 않는 2의 거듭제곱인 양의 정수를 지정합니다. 코드 대체를 위한 데이터 정렬 사용에 대한 자세한 내용은 Data Alignment for Code Replacement (Embedded Coder) 항목을 참조하십시오.

구조체형 정의: 이름

생성 코드에서 구조체 변수가 사용하는 구조체형의 이름. 디폴트 값은 빈 값입니다. 텍스트를 지정합니다.

이 속성은 사양Explicit values 또는 Even spacing으로 설정한 경우에만 나타납니다.

구조체형 정의: 데이터 범위

구조체형 정의의 범위(사용자 지정 코드에서 가져오거나 생성 코드에서 내보내기). 디폴트 값은 Auto입니다. Auto를 선택한 경우:

  • 구조체형 정의: 헤더 파일 상자에 값을 지정하지 않은 경우, 생성 코드는 구조체형 정의를 파일 model_types.h로 내보냅니다. model은 모델의 이름입니다.

  • 구조체형 정의: 헤더 파일 상자에 myHdr.h와 같은 값을 지정할 경우, 생성 코드는 myHdr.h에서 구조체형 정의를 가져옵니다.

데이터 범위를 명시적으로 지정하려면:

  • 사용자 지정 코드에서 생성 코드로 구조체형 정의를 가져오려면 Imported를 선택합니다.

  • 생성 코드에서 구조체형 정의를 내보내려면 Exported를 선택하십시오.

구조체형 정의: 헤더 파일 상자에 값을 지정하지 않은 경우, 생성 코드는 StructName.h에서 유형 정의를 가져오거나 내보냅니다. StructName은 속성 구조체형 정의: 이름을 사용하여 지정하는 이름입니다.

이 속성은 사양Explicit values 또는 Even spacing으로 설정한 경우에만 나타납니다.

구조체형 정의: 헤더 파일

구조체형 정의를 포함하는 헤더 파일의 이름입니다. 사용자가 만든 헤더 파일에서 정의를 가져오거나, 생성된 헤더 파일로 정의를 내보낼 수 있습니다. 구조체형의 범위를 제어하려면 구조체형 정의: 데이터 범위 속성에 대한 설정을 조정하십시오.

이 속성은 사양Explicit values 또는 Even spacing으로 설정한 경우에만 나타납니다.

테이블 및 절점 값 편집 영역

테이블 및 절점 데이터에 대한 정보입니다. 관련 텍스트 상자에 MATLAB 표현식을 입력하거나 함께 제공되는 테이블에 데이터를 직접 추가할 수 있습니다. 원하는 데이터형을 선택합니다.

  • 테이블 — 테이블 데이터. 요소가 두 개 이상 있는 숫자형 벡터 또는 다차원 배열을 지정합니다.

    표현식이 숫자형 벡터 또는 다차원 배열을 반환하는 한 sin(1:0.5:30)과 같은 수학 연산자와 함께 표현식을 사용할 수도 있습니다. Enter 키를 누르면 객체가 표현식을 실행하고 그 결과를 사용하여 이 속성의 값을 설정합니다.

    차원이 3 이상인 테이블 데이터를 지정하면 테이블은 reshape 함수에 대한 호출이 포함된 표현식으로 데이터를 표시합니다. 데이터의 값을 편집하려면 reshape 호출의 첫 번째 인수를 수정하십시오. 이 인수는 직렬화된 벡터의 모든 값을 포함하고 있습니다. 차원을 따라 요소를 추가하거나 제거할 때는 수정된 차원의 길이를 나타내는 인수도 수정해야 합니다.

    Lookup Table 블록에서 보다 직관적인 인터페이스를 사용하여 이 데이터를 편집할 수 있습니다. Import Lookup Table Data from MATLAB 항목을 참조하십시오.

  • BPN — 절점 세트에 대한 데이터.

    요소가 두 개 이상 있는 숫자형 벡터를 지정합니다.

    표현식이 숫자형 벡터를 반환하는 한 sin(1:0.5:30)과 같은 수학 연산자와 함께 표현식을 사용할 수도 있습니다. Enter 키를 누르면 객체가 표현식을 실행하고 그 결과를 사용하여 이 속성의 값을 설정합니다.

    Lookup Table 블록에서 보다 직관적인 인터페이스를 사용하여 이 데이터를 편집할 수 있습니다. Import Lookup Table Data from MATLAB 항목을 참조하십시오.

테이블에 데이터를 입력하거나 조작하는 것은 간단하고 직관적입니다. Microsoft® Excel® 스프레드시트와 유사하게 다음과 같은 테이블 작업을 수행할 수 있습니다.

  • 테이블 요소 선택

  • 다음과 같은 표준 바로 가기 키 사용

    • 복사 — Ctrl+C

    • 붙여넣기 — Ctrl+V

    • 실행 취소 — Ctrl+Z

    • 삭제

    • 다시 실행 — Shift+Ctrl+Z

속성

모두 확장

절점 세트 정보로, Simulink.lookuptable.Breakpoint 객체로 구성된 벡터, 문자형 벡터로 구성된 셀형 배열 또는 Simulink.lookuptable.Evenspacing 객체로 구성된 벡터로 지정됩니다.

Simulink.lookuptable.Breakpoint 객체로 구성된 벡터를 사용하는 경우 각 객체는 절점 세트를 나타냅니다. Simulink.lookuptable.Breakpoint 객체로 구성된 벡터를 사용하려면 속성 BreakpointsSpecification'Explicit values'로 설정하십시오.

문자형 벡터로 구성된 셀형 배열을 사용하는 경우 각 문자형 벡터는 Simulink.Breakpoint 객체의 이름을 나타냅니다. 문자형 벡터로 구성된 셀형 배열을 사용하려면 속성 BreakpointsSpecification'Reference'로 설정하십시오.

Simulink.lookuptable.Evenspacing 객체로 구성된 벡터를 사용하는 경우 각 객체는 절점 세트를 나타냅니다. Simulink.lookuptable.Evenspacing 객체로 구성된 벡터를 사용하려면 속성 BreakpointsSpecification'Even Spacing'로 설정하십시오.

절점 세트 정보의 소스로, 'Explicit values'(디폴트 값), 'Even spacing' 또는 'Reference'로 지정됩니다. 절점 > 사양 파라미터를 참조하십시오.

데이터형: char

룩업 테이블 및 절점 세트를 저장하는 구조체 변수(BreakpointsSpecification'Explicit values' 또는 'Even spacing'으로 설정한 경우) 또는 배열 변수('Reference'로 설정한 경우)에 대한 코드 생성 설정으로, Simulink.CoderInfo 객체로 지정됩니다. 이러한 임베디드 객체를 사용하여 스토리지 클래스 또는 사용자 지정 스토리지 클래스를 지정할 수 있습니다. Simulink.CoderInfo 항목을 참조하십시오.

생성 코드에서 구조체 변수가 사용하는 구조체형에 대한 설정으로, Simulink.lookuptable.StructTypeInfo 객체로 지정됩니다.

BreakpointsSpecification'Reference'로 설정하면 생성 코드에 Simulink.LookupTable 객체가 구조체로 나타나지 않습니다. 코드 생성기는 이 속성을 무시합니다.

테이블 유효 크기의 조정 가능성을 활성화하는 코드를 생성하기 위한 옵션으로, true 또는 false로 지정됩니다. 조정 가능한 크기 지원 파라미터를 참조하십시오.

데이터형: logical

테이블 데이터에 대한 정보로, Simulink.lookuptable.Table 객체로 지정됩니다.

복사 의미 체계

핸들. 핸들 클래스가 복사 작업에 미치는 영향을 알아보려면 객체 복사를 참조하십시오.

예제

1차원 룩업 테이블 표현하기

  1. LUTObj라는 이름의 Simulink.LookupTable 객체를 만듭니다.

    LUTObj = Simulink.LookupTable;

  2. 테이블 데이터를 지정합니다.

    LUTObj.Table.Value = [1.1 2.2 3.3 4.4 5.5];

  3. 절점 세트 데이터를 지정합니다.

    LUTObj.Breakpoints(1).Value = [-2 -1 0 1 2];

  4. 생성 코드에서 구조체형의 이름을 지정합니다.

    LUTObj.StructTypeInfo.Name = 'myLUTStruct';

1-D Lookup Table 블록 대화 상자에서 LUTObj를 사용할 수 있습니다. 블록에서 데이터 사양Lookup table 객체로, 이름LUTObj로 설정합니다.

이 데이터를 보려면 View Lookup Table Data에 설명된 대로 속성 대화 상자를 사용하십시오.

2차원 룩업 테이블 표현하기

  1. LUTObj라는 이름의 Simulink.LookupTable 객체를 만듭니다.

    LUTObj = Simulink.LookupTable;

  2. 테이블 데이터를 지정합니다.

    LUTObj.Table.Value = [1.1 2.2 3.3 4.4 5.5; ...
                              6.6 7.7 8.8 9.9 10.1];

  3. 절점 세트 데이터를 지정합니다. Breakpoints 속성에서 벡터 인덱스 2를 사용하여 두 번째 절점 세트의 값을 설정합니다.

    LUTObj.Breakpoints(1).Value = [-1 1];
    
    LUTObj.Breakpoints(2).Value = [-2 -1 0 1 2];
    

    LUTObjBreakpoints 속성 값의 두 번째 벡터 요소로 Simulink.lookuptable.Breakpoint 객체를 만듭니다. Value 속성을 제외하고, 새 객체는 디폴트 속성값을 갖습니다.

  4. 생성 코드에서 구조체형의 이름을 지정합니다.

    LUTObj.StructTypeInfo.Name = 'myLUTStruct';

2-D Lookup Table 블록 대화 상자에서 LUTObj를 사용할 수 있습니다.

이 데이터를 보려면 View Lookup Table Data에 설명된 대로 속성 대화 상자를 사용하십시오.

1부터 시작하는 초 값을 균일하게 간격 설정하기

1부터 시작하는 초 값을 균일하게 간격 설정하려면 Breakpoint 객체를 사용하십시오.

  1. LUTObj라는 이름의 Simulink.LookupTable 객체를 만듭니다.

    LUTObj=Simulink.LookupTable
    
    LUTObj = 
    
      LookupTable with properties:
    
                           Table: [1×1 Simulink.lookuptable.Table]
        BreakpointsSpecification: 'Explicit values'
                     Breakpoints: [1×1 Simulink.lookuptable.Breakpoint]
              SupportTunableSize: 0
                       CoderInfo: [1×1 Simulink.CoderInfo]
                  StructTypeInfo: [1×1 Simulink.lookuptable.StructTypeInfo]
  2. 절점 속성을 균일한 간격으로 설정합니다.

    LUTObj.BreakpointsSpecification='Even spacing'
    
    LUTObj = 
    
      LookupTable with properties:
    
                           Table: [1×1 Simulink.lookuptable.Table]
        BreakpointsSpecification: 'Even spacing'
                     Breakpoints: [1×1 Simulink.lookuptable.Evenspacing]
              SupportTunableSize: 0
                       CoderInfo: [1×1 Simulink.CoderInfo]
                  StructTypeInfo: [1×1 Simulink.lookuptable.StructTypeInfo]
  3. 절점의 속성을 가져옵니다.

    LUTObj.Breakpoints(1)
    
    
    ans = 
    
      Evenspacing with properties:
    
             FirstPoint: 0
                Spacing: 1
               DataType: 'auto'
                    Min: []
                    Max: []
                   Unit: ''
         FirstPointName: 'BPFirstPoint1'
            SpacingName: 'BPSpacing1'
        TunableSizeName: 'N1'
            Description: ''
  4. 첫 번째 지점 속성을 설정하기 위해 Breakpoint 객체의 FirstPoint 속성을 사용합니다.

    LUTObj.Breakpoints(1).FirstPoint=1
  5. 간격 속성을 설정하기 위해 Breakpoint 객체를 사용합니다.

    LUTObj.Breakpoints(1).Spacing=2
  6. 절점의 속성을 가져옵니다.

    LUTObj.Breakpoints(1)
    
    ans = 
    
      Evenspacing with properties:
    
             FirstPoint: 1
                Spacing: 2
               DataType: 'auto'
                    Min: []
                    Max: []
                   Unit: ''
         FirstPointName: 'BPFirstPoint1'
            SpacingName: 'BPSpacing1'
        TunableSizeName: 'N1'
            Description: ''

룩업 테이블과 절점 세트에 대한 코드 생성 제어하기

LUTObj라는 이름의 Simulink.LookupTable 객체를 만듭니다.

LUTObj = Simulink.LookupTable;

테이블 데이터를 지정합니다.

LUTObj.Table.Value = [1.00 2.25 3.50 4.75 6.00; ...
                          7.25 8.50 9.75 11.00 12.25];

절점 세트 데이터를 지정합니다. Breakpoints 속성에서, 배열 인덱스 2를 사용하여 두 번째 절점 세트를 나타내는 추가 Simulink.lookuptable.BreakpointInfo 객체를 만듭니다.

LUTObj.Breakpoints(1).Value = [-1 1];

LUTObj.Breakpoints(2).Value = [-2 -1 0 1 2];

룩업 테이블 및 각 절점 세트에 대한 데이터형을 지정합니다.

LUTObj.Table.DataType = 'fixdt(1,16,2)';

LUTObj.Breakpoints(1).DataType = 'int16';

LUTObj.Breakpoints(2).DataType = 'int16';

생성 코드에서 테이블 데이터 및 절점 세트를 저장하는 구조체 필드에 고유한 이름을 지정합니다.

LUTObj.Table.FieldName = 'myTable';

LUTObj.Breakpoints(1).FieldName = 'myBPSet1';

LUTObj.Breakpoints(2).FieldName = 'myBPSet2';

스토리지 클래스 ExportedGlobal을 사용하여 생성 코드에서 구조체 변수 정의를 내보냅니다.

LUTObj.CoderInfo.StorageClass = 'ExportedGlobal';

생성 코드에서 구조체형의 이름을 LUTStructType로 지정합니다. 구조체형 정의를 myLUTHdr.h라는 이름의 생성된 헤더 파일로 내보냅니다.

LUTObj.StructTypeInfo.Name = 'LUTStructType';
LUTObj.StructTypeInfo.DataScope = 'Exported';
LUTObj.StructTypeInfo.HeaderFileName = 'myLUTHdr.h';

모델의 n-D Lookup Table 블록에서 데이터 사양Lookup table object로 그리고 이름LUTObj로 설정합니다.

load_system('myModel_LUTObj')
set_param('myModel_LUTObj/Lookup Table','DataSpecification','Lookup table object',...
    'LookupTableObject','LUTObj')

모델에서 코드를 생성합니다.

slbuild('myModel_LUTObj')
### Starting build procedure for: myModel_LUTObj
### Generated code for 'myModel_LUTObj' is up to date because no structural, parameter or code replacement library changes were found.
### Successful completion of code generation for: myModel_LUTObj

Build Summary

0 of 1 models built (1 models already up to date)
Build duration: 0h 0m 2.141s

생성 코드는 생성된 헤더 파일 myLUTHdr.h에서 구조체형 LUTStructType을 정의합니다.

file = fullfile('myModel_LUTObj_ert_rtw','myLUTHdr.h');
rtwdemodbtype(file,'typedef struct {','} LUTStructType;',1,1)
typedef struct {
  int16_T myBPSet1[2];
  int16_T myBPSet2[5];
  int16_T myTable[10];
} LUTStructType;

이 코드는 전역 구조체 변수 LUTObj를 사용하여 테이블 및 절점 세트 데이터를 저장합니다. 테이블 데이터는 지정된 고정소수점 데이터형을 기반으로 확장됩니다.

file = fullfile('myModel_LUTObj_ert_rtw','myModel_LUTObj.c');
rtwdemodbtype(file,'LUTStructType LUTObj = {','/* Variable: LUTObj',1,1)
LUTStructType LUTObj = {
  { -1, 1 },

  { -2, -1, 0, 1, 2 },

  { 4, 29, 9, 34, 14, 39, 19, 44, 24, 49 }
} ;                                    /* Variable: LUTObj

조건부로 컴파일된 차원 길이를 사용하는 코드 생성하기

수작업으로 작성한 코드가 메모리를 조건부로 할당하고 #define 매크로로 지정한 차원 길이를 기반으로 룩업 테이블을 초기화한다고 가정합니다. 이 예제에서는 사용자가 만든 외부 테이블과 절점 데이터를 사용하는 코드를 생성하는 방법을 보여줍니다.

기호 차원을 사용하려면 ERT 기반 시스템 타깃 파일을 사용해야 하며, 이는 Embedded Coder®를 필요로 합니다.

외부 코드 탐색하기

현재 폴더에서 다음 매크로 정의를 ex_myHdr_LUT.h라는 이름의 헤더 파일에 복사합니다.

#include "rtwtypes.h"

#ifndef _HEADER_MYHDR_H_
#define _HEADER_MYHDR_H_

#define bp1Len 2
#define bp2Len 2

typedef struct {
  real_T BP1[bp1Len];
  real_T BP2[bp2Len];
  real_T Table[bp1Len * bp2Len];
} LUTObj_Type;

extern LUTObj_Type LUTObj;

#endif

다음 정적 초기화 코드를 ex_mySrc_LUT.c라는 이름의 소스 파일에 복사합니다.

#include "ex_myHdr_LUT.h"

#if bp1Len == 2 && bp1Len == 2
LUTObj_Type LUTObj = {
  { 1.0, 2.0 },

  { 3.0, 4.0 },

  { 3.0, 2.0, 4.0, 1.0 }
} ;         
#endif

#if bp1Len == 3 && bp1Len == 3
LUTObj_Type LUTObj = {
  { 1.0, 2.0, 3.0 },

  { 4.0, 5.0, 6.0 },

  { 1.0, 6.0, 2.0, 3.0, 8.0, 9.0, 5.0, 4.0, 7.0 }
} ;     
#endif

이 데이터를 가져오는 코드를 생성하려면 MATLAB에서 bp1Lenbp2LenSimulink.Parameter 객체로 생성하십시오. LUTObjSimulink.LookupTable로 생성합니다. 이 파라미터 객체를 사용하여 테이블 차원 길이와 절점 세트 데이터를 Simulink.LookupTable 객체에 지정합니다.

예제 모델 만들기

n-D Lookup Table 블록을 사용하여 예제 모델 ex_LUTObj를 만듭니다. Lookup Table 블록 대화 상자의 테이블 및 절점 탭에서 테이블 차원 수2로 설정합니다.

open_system('ex_LUTObj')

Simulink.LookupTable 객체 만들기

모델 탐색기의 모델 계층 구조 창에서 Base Workspace를 선택합니다.

도구 모음에서 Simulink LookupTable 추가 버튼을 클릭합니다. Object라는 이름의 Simulink.LookupTable 객체가 기본 작업 공간에 나타납니다.

내용 창(가운데 창)에서 객체 이름을 LUTObj로 바꿉니다.

또는 명령 프롬프트에서 객체를 만듭니다.

LUTObj = Simulink.LookupTable;

Simulink.LookupTable 객체 구성하기

내용 창에서 새 객체 LUTObj를 선택합니다. 속성 대화 상자가 대화 상자 창(오른쪽 창)에 나타납니다.

테이블 차원 수2로 설정합니다.

테이블 아래에서, [3 4; 2 1]로 설정합니다.

절점 아래의 첫 번째 행에서 [1 2]로 설정합니다.

절점 아래의 두 번째 행에서 [3 4]로 설정합니다. 적용을 클릭합니다.

구조체형 정의 아래에서 데이터 범위Imported로 설정합니다. 헤더 파일ex_myHdr_LUT.h로 설정합니다. 이름LUTObj_Type으로 설정합니다.

Lookup Table 블록 대화 상자에서 데이터 사양Lookup table object로 설정합니다. 이름LUTObj로 설정합니다. 적용을 클릭합니다.

또는 객체와 블록을 구성하기 위해 다음 명령을 사용하십시오.

LUTObj.Breakpoints(1).Value = [1 2];
LUTObj.Breakpoints(2).Value = [3 4];
LUTObj.Table.Value = [3 4; 2 1];
LUTObj.StructTypeInfo.DataScope = 'Imported';
LUTObj.StructTypeInfo.HeaderFileName = 'ex_myHdr_LUT.h';
LUTObj.StructTypeInfo.Name = 'LUTObj_Type';
set_param('ex_LUTObj/Lookup Table','LookupTableObject','LUTObj')
set_param('ex_LUTObj/Lookup Table',...
    'DataSpecification','Lookup table object')

코드 생성기가 차원 길이를 지정하는 매크로로 Simulink.Parameter 객체를 사용하도록 설정합니다. 구성 파라미터 기호 차원 지정 허용을 선택합니다.

set_param('ex_LUTObj','AllowSymbolicDim','on')

매크로 bp1Lenbp2Len을 나타내는 Simulink.Parameter 객체를 만듭니다. 사용자가 작성한 헤더 파일 ex_myHdr_LUT.h에서 매크로를 가져오는 코드를 생성하려면 스토리지 클래스 ImportedDefine을 적용하십시오.

bp1Len = Simulink.Parameter(2);
bp1Len.Min = 2;
bp1Len.Max = 3;
bp1Len.DataType = 'int32';
bp1Len.CoderInfo.StorageClass = 'Custom';
bp1Len.CoderInfo.CustomStorageClass = 'ImportedDefine';
bp1Len.CoderInfo.CustomAttributes.HeaderFile = 'ex_myHdr_LUT.h';

bp2Len = Simulink.Parameter(2);
bp2Len.Min = 2;
bp2Len.Max = 3;
bp2Len.DataType = 'int32';
bp2Len.CoderInfo.StorageClass = 'Custom';
bp2Len.CoderInfo.CustomStorageClass = 'ImportedDefine';
bp2Len.CoderInfo.CustomAttributes.HeaderFile = 'ex_myHdr_LUT.h';

Simulink.Parameter 객체를 사용하도록 기존 Simulink.LookupTable 객체 LUTObj를 구성합니다. 파라미터 객체의 이름을 사용하여 절점 세트 데이터 및 테이블 데이터의 차원 길이를 설정합니다.

LUTObj.Breakpoints(1).Dimensions = '[1 bp1Len]';
LUTObj.Breakpoints(2).Dimensions = '[1 bp2Len]';
LUTObj.Table.Dimensions = '[bp1Len bp2Len]';

스토리지 클래스 ImportFromFile을 적용하여 LUTObj를 가져온 데이터로 구성합니다. LUTObj의 정의를 가져오려면 파일 ex_mySrc_LUT.c의 이름을 모델 구성 파라미터 구성 파라미터 > 코드 생성 > 사용자 지정 코드 > 추가 빌드 정보 > 소스 파일에 추가하십시오.

LUTObj.CoderInfo.StorageClass = 'Custom';
LUTObj.CoderInfo.CustomStorageClass = 'ImportFromFile';
LUTObj.CoderInfo.CustomAttributes.HeaderFile = 'ex_myHdr_LUT.h';

set_param('ex_LUTObj','CustomSource','ex_mySrc_LUT.c')

코드 생성하기 및 검사하기

생성 코드에서 실행 파일을 컴파일하도록 모델을 구성합니다.

set_param('ex_LUTObj','GenCodeOnly','off')

모델에서 코드를 생성합니다.

slbuild('ex_LUTObj')
### Starting build procedure for: ex_LUTObj
### Successful completion of build procedure for: ex_LUTObj

Build Summary

Top model targets built:

Model      Action                       Rebuild Reason                                    
==========================================================================================
ex_LUTObj  Code generated and compiled  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 26.289s

코드 생성 보고서에서 생성된 파일 ex_LUTObj.h를 봅니다. 파일은 사용자가 작성한 헤더 파일 ex_myHdr_LUT.h를 포함함으로써 매크로 정의 및 구조체형 정의를 가져옵니다.

file = fullfile('ex_LUTObj_ert_rtw','ex_LUTObj.h');
rtwdemodbtype(file,'#include "ex_myHdr_LUT.h"','#include "ex_myHdr_LUT.h"',1,1)
#include "ex_myHdr_LUT.h"

소스 파일 ex_LUTObj.c에서 모델 step 함수의 코드 알고리즘은 테이블 룩업을 수행하는 함수에 절점과 테이블 데이터를 전달합니다. 알고리즘은 또한 룩업 함수가 테이블 데이터의 행과 열을 순회할 수 있도록 bp1Len을 전달하며, 이 데이터는 생성 코드에서 직렬화된 1차원 배열로 나타납니다.

file = fullfile('ex_LUTObj_ert_rtw','ex_LUTObj.c');
rtwdemodbtype(file,'/* Model step function */','/* Model initialize function */',1,0)
/* Model step function */
void ex_LUTObj_step(void)
{
  /* Outport: '<Root>/Out1' incorporates:
   *  Inport: '<Root>/In1'
   *  Inport: '<Root>/In2'
   *  Lookup_n-D: '<Root>/Lookup Table'
   */
  ex_LUTObj_Y.Out1 = look2_binlcapw(ex_LUTObj_U.In1, ex_LUTObj_U.In2,
    (&(LUTObj.BP1[0])), (&(LUTObj.BP2[0])), (&(LUTObj.Table[0])),
    ex_LUTObj_ConstP.LookupTable_maxIndex, (uint32_T)bp1Len);
}

제한 사항

  • Simulink.Breakpoint 객체를 참조하는 Simulink.Breakpoint 객체 또는 Simulink.LookupTable 객체를 재사용 가능한 구성요소에 대한 인스턴스별 파라미터 데이터로 사용할 수 없습니다. 예를 들어, 이러한 객체 중 하나를 다음 용도로 사용할 수 없습니다.

    • 모델 작업 공간의 모델 인수 또는 Model 블록의 모델 인수 값.

    • CodeReuse Subsystem 블록의 마스크 파라미터 값.

    • 사용자 지정 라이브러리를 생성하여 재사용하는 서브시스템의 마스크 파라미터 값.

    그러나 이러한 방식으로 Simulink.Breakpoint 객체를 참조하지 않는 독립 실행형 Simulink.LookupTable 객체를 사용할 수 있습니다.

  • 서브시스템의 블록이 Simulink.LookupTable 또는 Simulink.Breakpoint 객체를 사용하는 경우 서브시스템에서만 데이터형 재정의를 설정할 수는 없습니다. 대신, 전체 모델에 데이터형 재정의를 설정하십시오.

R2016b에 개발됨