Main Content

Data Type Conversion

입력 신호를 지정된 데이터형으로 변환

  • 라이브러리:
  • Simulink / Commonly Used Blocks

    Simulink / Signal Attributes

    HDL Coder / Commonly Used Blocks

    HDL Coder / HDL Floating Point Operations

    HDL Coder / Signal Attributes

  • Data Type Conversion block

설명

Data Type Conversion 블록은 임의의 Simulink® 데이터형의 입력 신호를 사용자가 지정한 데이터형으로 변환합니다.

참고

블록 파라미터를 지정하여 출력 데이터형을 제어하거나 다운스트림 블록으로부터 데이터형을 상속하려면 Data Type Conversion 블록을 사용하십시오. 모델의 다른 신호로부터 데이터형을 상속하려면 Data Type Conversion Inherited 블록을 사용하십시오.

고정소수점 신호 변환하기

고정소수점 데이터형 간에 변환할 경우 입력과 출력이 같아야 함 파라미터가 블록 동작을 제어합니다. 다음과 같은 경우에는 이 파라미터가 블록의 동작을 변경하지 않습니다.

  • 입력 및 출력이 고정소수점 데이터형을 갖지 않는 경우.

  • 입력 또는 출력이 자명한 스케일링을 사용하는 고정소수점 데이터형을 갖는 경우.

고정소수점 숫자에 대한 자세한 내용은 Fixed-Point Numbers in Simulink (Fixed-Point Designer) 항목을 참조하십시오.

입력 신호의 실제 값을 유지하여 신호의 데이터형을 변환하려면 디폴트 설정인 실제 값(RWV)을 선택하십시오. 블록은 입력 및 출력의 스케일링으로 인한 제한을 고려하며 실제 값과 동일한 출력을 생성하려고 시도합니다.

저장된 정수 값에 대한 스케일링 재해석을 수행하여 입력 신호의 실제 값을 변경하려면 저장된 정수(SI)를 선택하십시오. 지정된 데이터형의 제한 내에서 블록은 변환하는 동안 신호의 저장된 정수 값을 유지하려고 합니다. 워드 길이와 부호의 유무를 동일하게 유지하여 입력 및 출력 데이터형을 지정하는 것이 좋습니다. 그렇게 하면 블록이 신호의 스케일링만 변경합니다. 입력과 출력에 대해 부호의 유무와 워드 길이를 다르게 지정하면 범위 손실 또는 예기치 않은 부호 확장과 같은 예기치 않은 결과가 생성될 수 있습니다. 예제는 Simulink 모델의 데이터형 변환하기 항목을 참조하십시오.

저장된 정수(SI)를 선택하면 블록이 부동소수점 입력 신호에 대해 하위 수준의 비트 재해석을 수행하지 않습니다. 예를 들어, 입력이 single형이고 값이 5인 경우 메모리에 입력을 저장하는 비트는 다음 명령을 사용하여 16진수로 지정됩니다.

num2hex(single(5))
40a00000

하지만 Data Type Conversion 블록은 저장된 정수 값을 40a00000으로 처리하지 않고, 실제 값인 5로 처리합니다. 변환을 마친 후 출력의 저장된 정수 값은 5입니다.

열거형 신호 형변환하기

다음과 같이 Data Type Conversion 블록을 사용하여 열거형 신호를 형변환합니다.

  1. 열거형 신호를 숫자형 신호로 형변환.

    Data Type Conversion 블록에 대한 모든 열거형 값 입력의 기본 정수는 숫자형 범위 내에 있어야 합니다. 그렇지 않으면 시뮬레이션 중에 오류가 발생합니다.

  2. 정수형 신호를 열거형 신호로 형변환.

    Data Type Conversion 블록에 대한 값 입력은 열거형 값의 기본 값과 일치해야 합니다. 그렇지 않으면 시뮬레이션 중에 오류가 발생합니다.

    블록에 대한 값 입력이 열거형 값의 기본 값과 일치하지 않을 경우 Simulink가 열거형의 디폴트 값을 사용하도록 사용자가 정수 오버플로 시 포화 파라미터를 활성화할 수 있습니다. Type Casting for Enumerations (Simulink Coder) 항목을 참조하십시오.

다음과 같은 경우 Data Type Conversion 블록을 사용할 수 없습니다.

  • 정수가 아닌 숫자형 신호를 열거형 신호로 형변환하려는 경우.

  • 복소 신호의 실수부와 허수부의 데이터형에 상관없이 복소 신호를 열거형 신호로 형변환하려는 경우.

열거형 사용에 대한 자세한 내용은 Simulink Enumerations 항목을 참조하십시오.

포트

입력

모두 확장

입력 신호로, 스칼라, 벡터 또는 N차원 배열로 지정됩니다. 입력은 임의의 실수 값 신호 또는 복소수 값 신호일 수 있습니다. 입력이 실수이면 출력도 실수입니다. 입력이 복소수이면 출력도 복소수입니다. 블록은 입력 신호를 사용자가 지정한 출력 데이터형으로 변환합니다.

고정소수점 데이터형을 변환하는 경우 입력과 출력이 같아야 함 파라미터를 사용하여 신호의 실제 값(RWV)을 기준으로 변환할지 저장된 정수(SI) 값을 기준으로 변환할지 결정해야 합니다. 자세한 내용은 고정소수점 신호 변환하기 항목을 참조하십시오.

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

출력

모두 확장

출력 신호로, 사용자가 지정한 데이터형으로 변환되며 입력 신호와 동일한 차원을 가집니다.

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

파라미터

모두 확장

Simulink에서 검사하는 출력 범위의 하한 값입니다.

Simulink는 이 최솟값을 사용하여 다음 작업을 수행합니다.

참고

출력 최솟값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.

프로그래밍 방식의 사용법

블록 파라미터: OutMin
유형: 문자형 벡터
: '[ ]'| 스칼라
디폴트 값: '[ ]'

Simulink에서 검사하는 출력 범위의 상한 값입니다.

Simulink는 이 최댓값을 사용하여 다음 작업을 수행합니다.

참고

출력 최댓값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.

프로그래밍 방식의 사용법

블록 파라미터: OutMax
유형: 문자형 벡터
: '[ ]'| 스칼라
디폴트 값: '[ ]'

출력의 데이터형을 선택합니다. 유형은 상속되거나 직접 지정되거나 Simulink.NumericType과 같은 데이터형 객체로 표현될 수 있습니다.

프로그래밍 방식의 사용법

블록 파라미터: OutDataTypeStr
유형: 문자형 벡터
값: 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>''<data type expression>'
디폴트 값: 'Inherit: Inherit via back propagation'

블록에 지정한 출력 데이터형이 고정소수점 툴에 의해 재정의되지 않도록 방지하려면 이 파라미터를 선택합니다. 자세한 내용은 Use Lock Output Data Type Setting (Fixed-Point Designer) 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: LockScale
유형: 문자형 벡터
값: 'off' | 'on'
디폴트 값: 'off'

고정소수점 데이터 표현 맥락에서 어떤 유형의 입력과 출력이 같아야 하는지를 지정합니다.

  • 실제 값(RWV) — 입력의 실제 값(RWV)이 출력의 실제 값(RWV)과 같도록 하는 목표를 지정합니다.

  • 저장된 정수(SI) — 입력의 저장된 정수(SI) 값이 출력의 저장된 정수(SI) 값과 같도록 하는 목표를 지정합니다.

프로그래밍 방식의 사용법

블록 파라미터: ConvertRealWorld
유형: 문자형 벡터
값: 'Real World Value (RWV)' | 'Stored Integer (SI)'
디폴트 값: 'Real World Value (RWV)'

다음 반올림 모드 중 하나를 선택합니다.

올림(Ceiling)

양수와 음수를 모두 양의 무한대 방향으로 올림합니다. MATLAB® ceil 함수와 동일합니다.

가장 가까운 짝수로(Convergent)

숫자를 표현 가능한 가장 가까운 값으로 올림 또는 내림합니다. 반올림 경계에 놓인 숫자인 경우 가장 가까운 짝수로 올림 또는 내림합니다. Fixed-Point Designer™ convergent 함수와 동일합니다.

내림(Floor)

양수와 음수를 모두 음의 무한대 방향으로 내림합니다. MATLAB floor 함수와 동일합니다.

양의 방향 정수로(Nearest)

숫자를 표현 가능한 가장 가까운 값으로 올림 또는 내림합니다. 반올림 경계에 놓인 숫자인 경우 양의 무한대 방향으로 올림합니다. Fixed-Point Designer nearest 함수와 동일합니다.

반올림(Round)

숫자를 표현 가능한 가장 가까운 값으로 올림 또는 내림합니다. 반올림 경계에 놓인 숫자인 경우 양수는 양의 무한대 방향으로 올림하고 음수는 음의 무한대 방향으로 내림합니다. Fixed-Point Designer round 함수와 동일합니다.

최대단순(Simplest)

가능한 한 가장 효율적인 반올림 코드를 생성하기 위해 내림과 0 방향으로의 올림/내림 중에서 자동으로 선택합니다.

0 방향의 가장 가까운 정수로(Zero)

숫자를 0 방향의 가장 가까운 정수로 내림 또는 올림합니다. MATLAB fix 함수와 동일합니다.

프로그래밍 방식의 사용법

블록 파라미터: RndMeth
유형: 문자형 벡터
: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
디폴트 값: 'Floor'

참고 항목

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

오버플로 시 포화시킬지 아니면 래핑할지를 지정합니다.

  • off — 오버플로 시 데이터형이 표현할 수 있는 적절한 값으로 래핑됩니다.

    예를 들어, 숫자 130은 부호 있는 8비트 정수에 맞지 않으므로 -126으로 래핑됩니다.

  • on — 오버플로 시 데이터형이 표현할 수 있는 최솟값 또는 최댓값으로 포화됩니다.

    예를 들어, 부호 있는 8비트 정수와 연관된 오버플로가 발생할 경우 -128 또는 127로 포화될 수 있습니다.

  • 모델에 오버플로가 발생할 가능성이 있고 생성된 코드에서 포화 보호를 명시적으로 지정하려는 경우 이 체크박스를 선택해 보십시오.

  • 생성된 코드의 효율성을 최적화하려면 이 체크박스를 선택 해제하는 것이 좋습니다.

    이 체크박스를 선택 해제하면 블록이 범위를 벗어난 신호를 처리하는 방법을 과도하게 지정하는 일이 방지됩니다. 자세한 내용은 Troubleshoot Signal Range Errors 항목을 참조하십시오.

  • 이 체크박스를 선택하는 경우 출력이나 결과뿐만 아니라 블록의 모든 내부 연산에 포화가 적용됩니다.

  • 일반적으로 코드 생성 프로세스는 오버플로가 발생할 가능성이 없는 경우를 감지할 수 있습니다. 이 경우, 코드 생성기는 포화 코드를 생성하지 않습니다.

프로그래밍 방식의 사용법

블록 파라미터: SaturateOnIntegerOverflow
유형: 문자형 벡터
값: 'off' | 'on'
디폴트 값: 'off'

-1이 아닌 값으로 샘플 시간을 지정합니다. 자세한 내용은 샘플 시간 지정하기 항목을 참조하십시오.

종속성

이 파라미터는 -1이 아닌 값을 명시적으로 설정하지 않는 한 표시되지 않습니다. 자세한 내용은 Blocks for Which Sample Time Is Not Recommended 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: SampleTime
유형: string형 스칼라 또는 문자형 벡터
디폴트 값: "-1"

블록 특성

데이터형

Boolean | double | enumerated | fixed point | half | integer | single

직접 피드스루

다차원 신호

가변 크기 신호

영점교차 검출

아니요

확장 기능

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

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

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

버전 내역

R2006a 이전에 개발됨