このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ブロック削減
説明
ブロックのグループを縮約または削除することによって実行時間を短縮します。
カテゴリ: 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 ツールストリップで、[デバッグ] タブに移動します。[情報のオーバーレイ] メニューから [削減されたブロック]
を選択します。
メモ
強調表示対象の削減されたブロックがない場合、[削減されたブロック]
オプションは無効化されます。
削減されたブロックがキャンバスで強調表示されます。モデルの更新またはシミュレーション後は、ノーマル シミュレーション中に削減されるブロックが強調表示されます。モデルの作成後は、コード生成中に削減されるブロックが強調表示されます。
強調表示を削除するには、キャンバスの右上隅にある をクリックするか、[情報のオーバーレイ] メニューから [削減されたブロック]
の選択をクリアします。
コマンド ライン情報
パラメーター: BlockReduction |
値: 'on' | 'off' |
既定の設定: 'on' |
推奨設定
アプリケーション | 設定 |
---|---|
デバッグ | オフ (シミュレーション時または開発時) 影響なし (量産コード生成時) |
トレーサビリティ | オフ |
効率性 | オン |
安全対策 | 影響なし |
関連するトピック
- 計算結果に影響しないブロックのコードの削除 (Simulink Coder)
- 生成されたコードからのデッド コード パスの除去 (Simulink Coder)
- 時間ベースのスケジューリング (Simulink Coder)
- コードの効率性 (Simulink Coder)
- モデル コンフィギュレーション パラメーター: Simulation Target