Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ブロック削減

説明

ブロックのグループを縮約または削除することによって実行時間を短縮します。

カテゴリ: Simulation Target

設定

既定の設定: オン

オン

Simulink® ソフトウェアによって以下のブロック パターンが検索され、削減されます。

  • 冗長型変換 — 不要な型変換ブロック。int 型の入力と出力をもつ int 型変換ブロックなど

  • デッド コード — 未使用コード パスに含まれているブロックまたは信号

  • シングルタスク システムにおける高速から低速への Rate Transition ブロック — 入力頻度が出力頻度より高い Rate Transition ブロック

オフ

Simulink ソフトウェアでは、最適化が可能なブロック パターンは検索されません。シミュレーションと生成済みコードは最適化されません。

ヒント

  • [ブロック削減] を選択すると、Simulink によって特定のブロック グループがより効率的な 1 つのブロックに縮約されるか、完全に削除されます。この削減により、モデルのシミュレーションと生成済みコードの実行が高速化します。

  • ブロック削減を行っても、ソース モデルの外観は変わりません。

  • 調整可能なパラメーターを使用しても、デッド コード除去によるブロックの削減は回避できません。

  • ブロック削減が行われると、削除されたブロックの並べ替え順は Simulink に表示されなくなります。

  • モデルの ReducedNonVirtualBlockList パラメーターを照会して、削減されたブロックのブロック ハンドルのベクトルを取得することで、モデル内の削減されるブロックをプログラムで確認できます。

    ReducedBlockHandlesVector = get_param(ModelName,'ReducedNonVirtualBlockList');

  • Simulink Coder™ ライセンスをお持ちの場合、ブロック削減の対象となるのはブロックを実行する部分に相当する生成コードのみです。サンプル時間の定義やデータ型などのその他の補足データは、生成済みコードに残る可能性があります。

デッド コード除去

"未使用コード パス" 内のブロックと信号はすべて、生成済みコードから除去されます。

  • ブロックが未使用コード パスの一部としてみなされるには、以下の条件が満たされている必要があります。

    • ブロックのすべての信号パスが、実行されないブロックで終了している。実行されないブロックの例には、Terminator ブロック、無効になった Assertion ブロック、ブロック削減用に設定された S-Function ブロック、コード生成時の MAT ファイルのログが無効になっている場合の To Workspace ブロックなどが含まれます。

    • ブロックからのグローバル信号ストレージ下流が、そのブロックのいずれの信号パスにも含まれていない。

  • 調整可能なパラメーターを使用しても、デッド コード除去によるブロックの削減は回避できません。

  • 次のブロック線図に示されている信号パスがあるとします。

    [ブロック削減] をチェックした場合、Simulink Coder ソフトウェアは各信号パスに次のように応答します。

    信号パスSimulink Coder ソフトウェア
    In1 から Out1 へデッド コード除去条件が満たされていないため、コードを生成する。
    In2 から Terminator へデッド コード除去条件が満たされているため、コードを生成しない。
    In3 から Scope へMAT ファイルのログが有効になっている場合はコードを生成し、MAT ファイルのログが無効になっている場合はコードを除去する。

削減されたブロックの強調表示

[ブロック削減] が選択されている場合、モデル シミュレーションおよびコード生成中の実行時間を短縮するために削除されている非バーチャル ブロックを強調表示できます。そのようなブロックを強調表示するには、Simulink ツールストリップで、[デバッグ] タブに移動します。[情報のオーバーレイ] メニューから [削減されたブロック] を選択します。

Debug tab on Simulink toolstrip, Information Overlays menu, with Reduced Blocks highlighted on menu.

メモ

強調表示対象の削減されたブロックがない場合、[削減されたブロック] オプションは無効化されます。

削減されたブロックがキャンバスで強調表示されます。モデルの更新またはシミュレーション後は、ノーマル シミュレーション中に削減されるブロックが強調表示されます。モデルの作成後は、コード生成中に削減されるブロックが強調表示されます。

Simulink canvas with a simple model. Background is in grey, and one block, a Data Type Conversion block, is highlighted with a yellow border and white background. In the upper-right corner of the canvas, there is a circle containing an X.

強調表示を削除するには、キャンバスの右上隅にある circle with X inside をクリックするか、[情報のオーバーレイ] メニューから [削減されたブロック] の選択をクリアします。

コマンド ライン情報

パラメーター: BlockReduction
値: 'on' | 'off'
既定の設定: 'on'

推奨設定

アプリケーション設定
デバッグオフ (シミュレーション時または開発時)
影響なし (量産コード生成時)
トレーサビリティオフ
効率性オン
安全対策

影響なし

関連するトピック