В этом примере показано, как создать преобразование типа данных с помощью блока преобразования типа данных, диаграммы статусов или блока функций MATLAB.
y1 = (double)u1;
Чтобы создать преобразование типов данных, используйте блок «Преобразование типов данных» из библиотеки «Simulink > Часто используемые блоки».
1. Открыть пример модели ex_data_type_SL.

2. Щелкните блок «Ввод». В инспекторе свойств в группе «Атрибуты сигнала» задайте тип данных как int32.
3. Щелкните блок «Преобразование типа данных». В Инспекторе свойств укажите параметр типа выходных данных как double.
4. В диалоговом окне «Параметры конфигурации» задайте для параметра «Режимы литья» значение Explicit. По умолчанию Simulink устанавливает для параметра Режимы литья значение Nominal генерирующий минимальную отливку. Дополнительные сведения см. в разделе Управляющие приводные выражения в сгенерированном коде.
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 ® для создания преобразования типов данных.
1. Открыть пример модели ex_data_type_SF.

2. Щелкните блок «Ввод». В инспекторе свойств в группе «Атрибуты сигнала» задайте тип данных как 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;
}
1. Открыть пример модели ex_data_type_ML.

2. Функциональный блок MATLAB содержит следующую функцию:
function y1 = typeconv(u1) y1 = double(u1); end
3. Щелкните блок «Ввод». В инспекторе свойств в группе «Атрибуты сигнала» задайте тип данных как int32.
4. В диалоговом окне «Параметры конфигурации» задайте для параметра «Режимы литья» значение Explicit.
5. Чтобы создать модель и создать код, нажмите клавиши CTRL + B.
Созданный код появится в ex_data_type_ML.c:
int32_T u1; /* '<Root>/u1' */
real_T y1; /* '<Root>/MATLAB Function' */
/* Model step function */
void ex_data_type_ML_step(void)
{
/* MATLAB Function: '<Root>/MATLAB Function' incorporates:
* Inport: '<Root>/u1'
*/
y1 = (real_T)u1;
}
Преобразования типов также могут происходить на выходе блоков, где выходная переменная указана как другой тип данных. Например, в блоке Gain можно задать тип данных Parameter как Inherit via internal rule для управления типом данных выходного сигнала. Другой пример преобразования типа может происходить на границе диаграммы Stateflow. Можно указать выходную переменную в качестве другого типа данных.