Main Content

Simulink プロファイラーによるパフォーマンス データの取得

Simulink プロファイラーの機能

Simulink プロファイラーは、モデルのシミュレーション中にパフォーマンス データを取得します。また、モデルのどの部分がシミュレーションを実行するときに最も時間を要したかを特定します。このプロファイル情報により、モデルのどの部分に焦点をあてて、最適化する努力を行えば良いかを決めることができます。

メモ

Simulink プロファイラーでは、ラピッド アクセラレータ シミュレーションはサポートされません。

Simulink® では、パフォーマンス データは "シミュレーション プロファイル レポート" に保存されます。このデータは、モデルの各関数の実行にかかった時間を示します。

Simulink プロファイラーの基本となるのは、次の疑似コードで要約される実行モデルです。

Sim() 
	ModelInitialize(). 
	ModelExecute() 
		for t = tStart to tEnd
		Output()
		Update()
		Integrate()
			Compute states from derivs by repeatedly calling: 
				MinorOutput() 
				MinorDeriv() 
			Locate any zero crossings by repeatedly calling: 
				MinorOutput() 
				MinorZeroCrossings() 
		EndIntegrate 
		Set time t = tNew. 
	EndModelExecute
	ModelTerminate
EndSim 

Simulink はこの概念モデルに基づき、次の表の関数をモデルや関数に応じて、0 回、1 回あるいはそれ以上の回数で呼び出し、モデルを実行します。

関数目的レベル
sim

モデルをシミュレートします。この最上位レベルの関数はモデルをシミュレートするために必要な関数を呼び出します。この関数に要する時間は、モデルをシミュレートする総時間です。

システム

ModelInitialize

シミュレーションのためにモデルの準備

システム

ModelExecute

シミュレーション開始から終了までのタイム ステップごとに、output、update、integrate などの関数がそれぞれのブロックのために呼び出されて、モデルが実行されます。

システム

Output

現在のタイム ステップでの、1 ブロックの出力を計算します。

ブロック

Update

現在のタイム ステップでのブロックの状態を更新します。

ブロック

Integrate

現在のタイム ステップで、状態導関数を積分することによってブロックの連続状態を計算します。

ブロック

MinorOutput

ブロックの出力をマイナー タイム ステップで計算します。

ブロック

MinorDeriv

ブロックの状態導関数をマイナー タイム ステップで計算します。

ブロック

MinorZeroCrossings

ブロックのゼロクロッシング値をマイナー タイム ステップで計算します。

ブロック

ModelTerminate

メモリを解放し、その他シミュレーション終了の一掃を行います。

システム

Nonvirtual Subsystem

ブロックごとに output、update、integrate などの関数を呼び出すことによって、現在のタイム ステップで、非バーチャル サブシステムの出力を計算します。この関数に要した時間は、非バーチャル サブシステムを実行するのに必要な時間です。

ブロック

Simulink プロファイラーは、それぞれの関数の呼び出しを実行するのに必要な時間を測定します。モデルのシミュレーション後に、Simulink プロファイラーは各関数に要したシミュレーション時間に関するレポートを生成します。

プロファイラーの起動

  1. モデルを開きます。

  2. Simulink エディターの [デバッグ] タブで [パフォーマンス] ボタンの矢印をクリックし、[Simulink プロファイラー] を選択します。

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

  3. プロファイリング シミュレーションを実行します。[プロファイル] タブが開いたら、[プロファイル] をクリックします。

シミュレーションが完了すると、Simulink プロファイラーでモデルのシミュレーション プロファイルが生成され、Simulink エディターのパネルに表示されます。

The Simulink Editor is open for the model sldemo_antiwindup with the Profile tab selected. Two Profiler Report panes are open at the bottom of the Simulink Editor. Each pane displays results from a different profiling simulation run using the Simulink Profiler.

ブロック階層表示

レポートのブロック階層表示は、モデルのプロファイル情報を入れ子にされたツリー形式で表示します。テーブルの 1 行目、すなわちツリーの最上部は、モデル全体に相当します。後続の行のうち、入れ子の第 1 レベルは、モデルのルート レベルに相当します。

The block hierarchy view in the Profiler Report pane.

実行スタック ビュー

実行スタック ビューは、プロファイリング レポートをモデルのシミュレーション段階ごとに分解します。モデルの主なシミュレーション段階は、コンパイル、初期化、シミュレーション、および終了です。シミュレーション段階の詳細については、動的システムのシミュレーションの段階を参照してください。

The execution stack view in the Profiler Report pane.

プロファイラーの結果の保存

プロファイラー レポートは、mat ファイルに保存できます。レポートを後からインポートして確認するには、保存した mat ファイルを現在のワークスペースに読み込むか、既存のプロファイラー セッションにインポートするかのいずれかを行います。

プロファイリング レポートを保存するには、[プロファイル] タブの [共有] セクションで [MAT にエクスポート] を選択し、オプションで mat ファイルの名前を指定します。

保存されたレポートを、Simulink エディターで開いているプロファイリング セッションに表示するには、[プロファイル] タブで [ファイルからインポート] を選択します。

保存されたレポートをコマンド ラインで表示するには、レポートを含む MAT ファイルを読み込みます。プロファイリング情報が現在のワークスペースに Simulink.profiler.Data オブジェクトとして読み込まれます。

関連するトピック