Если требуется код, использующий только одну точность, например, когда вы нацелены на процессор с одной точностью, вы можете использовать параметры конфигурации модели и параметры блока, чтобы предотвратить введение double в модели.
Сведения о проектировании и проверке модели с одинарной точностью см. в разделе Проверка внедренной модели с плавающей запятой. Если у вас есть Designer™ Fixed-Point, вы можете использовать приложение Single Precision Converter (см. Single Precision Converter (Конструктор фиксированных точек)).
single Тип данных по умолчанию для недостаточно указанных типовВ этом примере показано, как избежать введения типа данных двойной точности в код, создаваемый для аппаратной цели с одной точностью.
Если для сигналов указан унаследованный тип данных, но правила распространения типов данных не могут определить типы данных для сигналов, типы данных сигналов по умолчанию: double. Можно использовать параметр конфигурации модели, чтобы указать тип данных по умолчанию как single.
Изучение примера модели
Откройте rtwdemo_underspecified_datatype модели примера и настройте его для отображения сгенерированных имен блоков.
model = 'rtwdemo_underspecified_datatype'; load_system(model) set_param(model,'HideAutomaticNames','off') open_system(model);

Корневые входные данные In2, In3, и In4 определить Inherit: Auto для параметра блока Тип данных. Дочерние блоки также используют наследуемые типы данных.
Создать код с помощью double как тип данных по умолчанию
Модель начинается с параметра конфигурации System target file со значением ert.tlc, для чего требуется встроенный кодер. Задать для целевого файла системы значение grt.tlc вместо этого.
set_param(model,'SystemTargetFile','grt.tlc')
Создайте код из модели.
slbuild(model)
### Starting build procedure for: rtwdemo_underspecified_datatype ### Successful completion of build procedure for: rtwdemo_underspecified_datatype Build Summary Top model targets built: Model Action Rebuild Reason ================================================================================================================ rtwdemo_underspecified_datatype 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 6.9724s
В отчете о создании кода просмотрите файл rtwdemo_underspecified_datatype.h. Код использует double тип данных для определения переменных In2, In3, и In4 поскольку типы данных Inport не указаны в модели.
cfile = fullfile('rtwdemo_underspecified_datatype_grt_rtw',... 'rtwdemo_underspecified_datatype.h'); rtwdemodbtype(cfile,... '/* External inputs (root inport signals with default storage) */',... '/* External outputs (root outports fed by signals with default storage) */',... 1, 0);
/* External inputs (root inport signals with default storage) */
typedef struct {
int8_T In1; /* '<Root>/In1' */
real_T In2; /* '<Root>/In2' */
real_T In3; /* '<Root>/In3' */
real_T In4; /* '<Root>/In4' */
} ExtU_rtwdemo_underspecified_d_T;
Создать код с помощью single как тип данных по умолчанию
Откройте диалоговое окно «Параметры конфигурации». На панели Математика и типы данных (Math and Data Types) выберите single в выпадающем списке Default for underspecified data type.
Либо включите оптимизацию в командной строке.
set_param(model, 'DefaultUnderspecifiedDataType', 'single');
Создайте код из модели.
slbuild(model)
### Starting build procedure for: rtwdemo_underspecified_datatype ### Successful completion of build procedure for: rtwdemo_underspecified_datatype Build Summary Top model targets built: Model Action Rebuild Reason =============================================================================================== rtwdemo_underspecified_datatype Code generated and compiled Generated code was out of date. 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 5.7877s
В отчете о создании кода просмотрите файл rtwdemo_underspecified_datatype.h. Код использует single тип данных для определения переменных In2, In3, и In4.
rtwdemodbtype(cfile,... '/* External inputs (root inport signals with default storage) */',... '/* External outputs (root outports fed by signals with default storage) */',... 1, 0);
/* External inputs (root inport signals with default storage) */
typedef struct {
int8_T In1; /* '<Root>/In1' */
real32_T In2; /* '<Root>/In2' */
real32_T In3; /* '<Root>/In3' */
real32_T In4; /* '<Root>/In4' */
} ExtU_rtwdemo_underspecified_d_T;