Оптимизация генерируемого кода путем сохранения логических сигналов в виде булевых данных. При выборе параметра конфигурации модели Реализовать логические сигналы как логические данные (по сравнению с двойными) блоки, генерирующие логические сигналы, выводят логические сигналы.
Оптимизация:
Уменьшает потребление ПЗУ и ОЗУ.
Повышает скорость выполнения.
Рассмотрим модель rtwdemo_logicalAsBoolean. Выходные данные Relational Operator, Logical Operator и HitCrossing блоки double, даже если они представляют логические данные.
model = 'rtwdemo_logicalAsBoolean';
open_system(model);

Создайте временную папку (во временной папке системы) для процесса сборки и контроля.
currentDir = pwd; [~,cgDir] = rtwdemodir();
Создайте модель.
slbuild(model)
### Starting build procedure for: rtwdemo_logicalAsBoolean ### Successful completion of build procedure for: rtwdemo_logicalAsBoolean Build Summary Top model targets built: Model Action Rebuild Reason ========================================================================================================= rtwdemo_logicalAsBoolean 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 19.966s
Просмотр созданного кода без оптимизации. Эти строки кода находятся в rtwdemo_logicalAsBoolean.h.
hfile = fullfile(cgDir,'rtwdemo_logicalAsBoolean_ert_rtw',... 'rtwdemo_logicalAsBoolean.h'); rtwdemodbtype(hfile,'/* External outputs','/* Parameters (default storage) */',1,0);
/* External outputs (root outports fed by signals with default storage) */
typedef struct {
real_T Out1; /* '<Root>/Out1' */
real_T Out2; /* '<Root>/Out2' */
real_T Out3; /* '<Root>/Out3' */
} ExtY_rtwdemo_logicalAsBoolean_T;
Откройте диалоговое окно «Параметры конфигурации».
Выберите параметр Implement logic signals as Boolean data (в сравнении с двойным).
Кроме того, для оптимизации можно использовать API командной строки:
set_param(model,'BooleanDataType','on');
Сгенерированный код сохраняет выходной логический сигнал в виде булевых данных.
Создайте модель.
slbuild(model)
### Starting build procedure for: rtwdemo_logicalAsBoolean ### Successful completion of build procedure for: rtwdemo_logicalAsBoolean Build Summary Top model targets built: Model Action Rebuild Reason ======================================================================================== rtwdemo_logicalAsBoolean 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 8.5208s
Просмотр созданного кода с оптимизацией. Эти строки кода находятся в rtwdemo_logicalAsBoolean.h.
rtwdemodbtype(hfile,'/* External outputs','/* Parameters (default storage) */',1,0);
/* External outputs (root outports fed by signals with default storage) */
typedef struct {
boolean_T Out1; /* '<Root>/Out1' */
boolean_T Out2; /* '<Root>/Out2' */
boolean_T Out3; /* '<Root>/Out3' */
} ExtY_rtwdemo_logicalAsBoolean_T;
Закройте отчет о модели и создании кода.
bdclose(model) rtwdemoclean; cd(currentDir)
Реализовать логические сигналы в виде булевых данных (по сравнению с двойными)