このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
論理信号の boolean データを使用した生成コードの最適化
論理信号を boolean データとして保存し、生成されたコードを最適化します。モデル コンフィギュレーション パラメーター [boolean データ (対 double) として論理信号を処理] を選択すると、論理信号を生成するブロックは boolean 信号を出力します。
最適化により、以下が実現されます。
ROM と RAM の消費を低減する。
実行速度が向上する。
モデル例
モデル rtwdemo_logicalAsBoolean を考えます。Relational Operator
、Logical Operator
および HitCrossing
ブロックの出力は double
です (これらが logical データを表す場合であっても)。
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 20.95s
最適化を行わない生成コードを表示します。以下のコード行は 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;
最適化の有効化
[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。
[boolean データ (対 double) として論理信号を処理] パラメーターを選択します。
代わりに、コマンド ライン API を使用して最適化を有効にできます。
set_param(model,'BooleanDataType','on');
最適化を使用したコードの生成
生成コードは論理信号出力を boolean データとして格納します。
モデルを作成します。
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 9.3079s
最適化を行った生成コードを表示します。以下のコード行は 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)
参考
boolean データ (対 double) として論理信号を処理