このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
論理信号の boolean データを使用した生成コードの最適化
論理信号を boolean データとして保存し、生成されたコードを最適化します。モデル コンフィギュレーション パラメーター [boolean データ (対 double) として論理信号を処理] を選択すると、論理信号を生成するブロックは boolean 信号を出力します。
最適化により、以下が実現されます。
ROM と RAM の消費を低減する。
実行速度が向上する。
モデル例
モデル LogicalAsBoolean
について見ていきます。Relational Operator
、Logical Operator
および HitCrossing
ブロックの出力は double
です (これらが logical データを表す場合であっても)。
model = 'LogicalAsBoolean';
open_system(model);
コードの生成
モデルを作成します。
slbuild(model)
### Starting build procedure for: LogicalAsBoolean ### Successful completion of build procedure for: LogicalAsBoolean Build Summary Top model targets built: Model Action Rebuild Reason ================================================================================================== 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 25.463s
最適化を行わない生成コードを表示します。以下のコード行は LogicalAsBoolean.h
にあります。
hfile = fullfile('LogicalAsBoolean_grt_rtw',... 'LogicalAsBoolean.h'); coder.example.extractLines(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_LogicalAsBoolean_T;
最適化の有効化
[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。
[boolean データ (対 double) として論理信号を処理] パラメーターを選択します。
代わりに、コマンド ライン API を使用して最適化を有効にできます。
set_param(model,'BooleanDataType','on');
最適化を使用したコードの生成
生成コードは論理信号出力を boolean データとして格納します。
モデルを作成します。
slbuild(model)
### Starting build procedure for: LogicalAsBoolean ### Successful completion of build procedure for: LogicalAsBoolean Build Summary Top model targets built: Model Action Rebuild Reason ================================================================================= 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 10.281s
最適化を行った生成コードを表示します。以下のコード行は LogicalAsBoolean.h
にあります。
coder.example.extractLines(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_LogicalAsBoolean_T;
モデルおよびコード生成レポートを閉じます。
bdclose(model)
参考
boolean データ (対 double) として論理信号を処理