Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

論理信号の boolean データを使用した生成コードの最適化

論理信号を boolean データとして保存し、生成されたコードを最適化します。モデル コンフィギュレーション パラメーター [boolean データ (対 double) として論理信号を処理] を選択すると、論理信号を生成するブロックは boolean 信号を出力します。

最適化により、以下が実現されます。

  • ROM と RAM の消費を低減する。

  • 実行速度が向上する。

モデル例

モデル rtwdemo_logicalAsBoolean を考えます。Relational OperatorLogical 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;

最適化の有効化

  1. [コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。

  2. [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)

参考

関連するトピック