이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
데이터형 변환
이 예제는 Data Type Conversion 블록을 사용하여 데이터형 변환을 생성하는 방법을 보여줍니다. 또는 Stateflow® 차트나 MATLAB® 함수 블록 내에서 데이터형 변환을 수행할 수도 있지만, 이 방법은 효율성이 떨어집니다.
C 구조
y1 = (double)u1;
데이터형 변환을 위한 모델 패턴 — Simulink 블록
데이터형 변환을 생성하려면 Simulink > 자주 사용되는 블록 라이브러리에 있는 Data Type Conversion 블록을 사용하십시오.
1. 예제 모델 ex_data_type_SL을 엽니다.

2. Inport 블록을 클릭합니다. 속성 인스펙터에서 신호 특성 아래에서 데이터형을 int32로 지정하십시오.
3. Data Type Conversion 블록을 클릭합니다. 속성 인스펙터에서 출력 데이터형 파라미터를 double로 지정하십시오.
4. '구성 파라미터' 대화 상자에서 형변환 모드 파라미터를 Explicit로 설정하십시오. 기본적으로 Simulink®는 형변환 모드 파라미터를 Nominal로 설정하여 형변환을 최소화합니다. 자세한 내용은 Control Cast Expressions in Generated Code 항목을 참조하십시오.
5. 모델을 구축하고 코드를 생성하려면 Ctrl+B를 누르십시오.
코드 생성은 ex_data_type_SL.c에 표시됩니다:
int32_T u1; /* '<Root>/u1' */
real_T y1; /* '<Root>/y1' */
/* Model step function */
void ex_data_type_SL_step(void)
{
/* Outport: '<Root>/y1' incorporates:
* DataTypeConversion: '<Root>/Data Type Conversion'
* Inport: '<Root>/u1'
*/
y1 = (real_T)u1;
}
double에 대한 코드 생성 유형 정의는 real_T입니다.
Stateflow 차트에서의 데이터형 변환
Stateflow 차트 내에서 데이터형 변환을 수행할 수 있습니다. 이 예제는 Stateflow 차트를 사용하여 데이터형 변환만 수행하는 모델을 보여줍니다. 이는 Data Type Conversion 블록을 사용하는 것보다 효율이 떨어집니다. 하지만 다른 이유로 Stateflow 차트를 사용하는 모델에서 데이터형 변환을 수행해야 하는 경우, 차트 내에서 변환을 수행할 수 있습니다.
1. 예제 모델 ex_data_type_SF를 엽니다.

2. Inport 블록을 클릭합니다. 속성 인스펙터에서 신호 특성 아래에서 데이터형을 int32로 지정하십시오.
3. '구성 파라미터' 대화 상자에서 형변환 모드 파라미터를 Explicit로 설정하십시오.
4. 모델을 구축하고 코드를 생성하려면 Ctrl+B를 누르십시오.
코드 생성은 ex_data_type_SF.c에 표시됩니다:
int32_T u1; /* '<Root>/u1' */
real_T y1; /* '<Root>/Type_Conversion' */
/* Model step function */
void ex_data_type_SF_step(void)
{
/* Chart: '<Root>/Type_Conversion' incorporates:
* Inport: '<Root>/u1'
*/
y1 = (real_T)u1;
}
MATLAB 함수 블록에서의 데이터형 변환
MATLAB 함수 블록 내에서 데이터형 변환을 수행할 수 있습니다. 이 예제는 MATLAB 함수 블록을 사용하여 데이터형 변환만 수행하는 모델을 보여줍니다. 이는 Data Type Conversion 블록을 사용하는 것보다 효율이 떨어집니다. 그러나 다른 이유로 MATLAB 함수 블록을 사용하는 모델에서 데이터형 변환을 수행해야 하는 경우, MATLAB 함수 블록 내에서 변환을 수행할 수 있습니다.
1. 예제 모델 ex_data_type_ML을 엽니다.

2. MATLAB 함수 블록에는 이 함수가 포함되어 있습니다:
function y1 = typeconv(u1) y1 = double(u1); end
3. Inport 블록을 클릭합니다. 속성 인스펙터에서 신호 특성 아래에서 데이터형을 int32로 지정하십시오.
4. '구성 파라미터' 대화 상자에서 형변환 모드 파라미터를 Explicit로 설정하십시오.
5. 모델을 구축하고 코드를 생성하려면 Ctrl+B를 누르십시오.
코드 생성은 ex_data_type_ML.c에 표시됩니다:
int32_T u_1; /* '<Root>/u_1' */
real_T y_1; /* '<Root>/MATLAB Function' */
/* Model step function */
void ex_data_type_ML_step(void)
{
/* MATLAB Function: '<Root>/MATLAB Function' incorporates:
* Inport: '<Root>/u_1'
*/
y_1 = (real_T)u_1;
}
모델링에서의 기타 유형 변환
출력 변수가 다른 데이터형으로 지정된 블록의 출력에서도 형 변환이 발생할 수 있습니다. 예를 들어, Gain 블록에서 파라미터 데이터형을 Inherit via internal rule로 설정하여 출력 신호의 데이터형을 제어할 수 있습니다. 형식 변환의 또 다른 예는 Stateflow 차트의 경계에서 발생할 수 있습니다. 출력 변수를 다른 데이터형으로 지정할 수 있습니다.