Main Content

Simulink プロファイラー

モデル コンポーネント間でのシミュレーション実行時間の分布を解析する

説明

Simulink プロファイラーはモデルのプロファイリング シミュレーションを実行し、モデル コンポーネント間でのシミュレーション実行時間の分布を解析するために使用できるレポートを生成します。レポートの解析は、以下に役立ちます。

  • 1 つ以上のモデル コンポーネントを綿密に調べることがモデルのパフォーマンス向上をもたらす可能性があるかどうかを判別する

  • 先に調べるべきコンポーネントを決定する

プロファイリング シミュレーションでは、Simulink プロファイラーはシミュレーションの合計実行時間および各モデル コンポーネント (ブロック、サブシステム、モデル参照など) の実行時間を測定します。あるコンポーネントの実行時間が予想外のものであった場合、そのコンポーネントの実装を変更することでシミュレーションのパフォーマンスを向上させることができる可能性があります。たとえば、実行時間のほとんどが S-Function ブロックによるものである場合は、S-Function のコードを最適化すると、シミュレーションが高速化する可能性があります。

The Simulink Editor has the Simulink Profiler open for the model sldemo_antiwindup.

Simulink プロファイラー を開く

Simulink® ツールストリップ: [デバッグ] タブにある [パフォーマンス] セクションで [パフォーマンス] ボタンの矢印をクリックし、[Simulink プロファイラー] を選択します。

The Debug tab of the Simulink Toolstrip has the Performance list expanded with the pointer paused on the Simulink Profiler option.

すべて展開する

この例では、モデルに人工的に速度低下を挿入したフォールトトレラント燃料制御システムを実装するモデル sldemo_fuelsys_dd の変更されたバージョンを使用します。Simulink プロファイラーを使用して、パフォーマンスの問題を特定して解決します。

例を開きます。この例にはモデル profiling_example_fuelcontrol_model が含まれています。

Simulink プロファイラーを開いてモデルの実行を解析するには、Simulink® ツールストリップの [デバッグ] タブで [パフォーマンス] ボタンの矢印をクリックし、[Simulink プロファイラー] を選択します。Simulink プロファイラーを開くと、Simulink ツールストリップの [プロファイラー] という名前のタブ、Simulink エディターの下部にある [プロファイリング レポート] という名前のパネル、およびプロパティ インスペクターが開きます。

The Simulink Editor has the Profile tab selected for the model profiling_example_fuelcontrol_model. The Simulink Profiler is open, so the Profiler Report and Property Inspector panes are visible.

モデルの実行をプロファイリングするには、[プロファイラー] タブで [プロファイル] をクリックします。プロファイリング シミュレーションが完了すると、結果が [プロファイラー レポート] ペインに表示されます。既定では、[プロファイラー レポート] ペインには、"ブロック階層ビュー" でプロファイリング結果の表が表示されます。データの構造と階層はモデルの構造と一致しています。表の各行では、ブロックのシミュレーション実行時間に関する情報が示されます。[プロファイラー レポート] ペインで結果の詳細を表示するには、表内の行の横にある矢印 (>) をクリックします。

プロファイリング シミュレーションの結果は、Engine Gas Dynamics という名前のブロックが最上位モデルの合計実行時間の大部分を占めていることを示しています。これは、Engine Gas Dynamics という名前のブロックが、パフォーマンスの問題の原因を探すのに適した場所である可能性があることを示しています。

The Simulink Editor has the Profile tab selected. The Property Inspector and Profiler Report are visible. The Profiler Report pane has the top-level node of the profiling results expanded, with the row for the block named Engine Gas Dynamics selected.

プロファイリング結果の表内の Engine Gas Dynamics ブロックの行を展開すると、シミュレーション実行時間がサブシステム内のブロック間でどのように分散しているかがわかります。続けて、プロファイリング結果の表で、シミュレーション実行時間の最大時間を占める各階層レベルのブロックの行を展開します。EGO Sensor という名前のサブシステムには、サブシステムの実行時間のほぼすべてを占めている For Iterator Subsystem が含まれています。

The Profiler Report pane has the profiling results expanded in the table to show the results for the subsystem named EGO Sensor and the for-iterator subsystem it contains.

調査するために、For Iterator Subsystem 内に移動します。サブシステム内のブロック線図には、サブシステムの入力端子をその出力端子に接続する信号線のみが含まれています。For Iterator Subsystem は、非常に多くの実行時間を費やしているにもかかわらず、モデル内で機能的な目的を果たしません。

The contents of the for-iterator subsystem inside the subsystem named EGO Sensor.

For Iterator Subsystem ブロックを削除するとシミュレーション時間が改善されることを確認するために、EGO Sensor という名前のサブシステムまで、モデルの階層構造を上に移動します。For Iterator Subsystem ブロックを削除し、EGO Sensor という名前の MATLAB Function ブロックの出力を出力端子に接続します。

For Iterator Subsystem を削除することでパフォーマンスが向上したことを確認するために、変更したモデルをプロファイリングします。[プロファイラー] タブで [プロファイル] をクリックします。2 つのプロファイリング シミュレーション間の結果を比較するには、[レポート パネルの追加] をクリックします。既定では、新しいペインに最新の実行が表示されます。以前の実行の結果を表示するには、新しいペインの [実行] リストから、以前のプロファイリング シミュレーションの実行を選択します。

The bottom of the Simulink Editor has two Profiler Report panes, arranged side by side. The left Profiler Report pane displays results from the first profiling simulation. The right Profiler Report pane displays the profiling results for the second run.

選択したプロファイリング シミュレーションの実行結果を HTML レポートまたは MAT ファイルとして共有できます。プロファイラー レポートを HTML レポートとして共有するには、[共有] メニューで [レポートの生成] を選択します。結果を MAT ファイルとして共有するには、[共有] メニューで [エクスポート] を選択します。HTML レポートまたは MAT ファイルは、現在の作業フォルダーに保存されます。

ヒント

  • シミュレーションのパフォーマンスを解析して向上させる際には、パフォーマンス アドバイザーを使用してモデルおよびシミュレーションの構成を解析することから解析を開始することを検討してください。

  • パフォーマンス アドバイザーを使用してモデルおよびシミュレーションの構成を解析した後には、ソルバー プロファイラーおよび Simulink プロファイラーを使用したプロファイリング シミュレーションによって解析を深めることができます。

    • ソルバー プロファイラーはモデルに対して選択したソルバーのパフォーマンスを解析します。ソルバー プロファイラーは、可変ステップ ソルバーを使用するシミュレーションのパフォーマンスを解析するのに特に役立ちます。プロファイリングの結果は、ステップ サイズがいつどうして制限されているのかを特定するのに役立ちます。

    • Simulink プロファイラーは、モデル コンポーネント間でのシミュレーション実行時間の分布を解析することで、シミュレーションのパフォーマンスのボトルネックを特定するのに役立ちます。

バージョン履歴

R2007b で導入

すべて展開する