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 プロファイラーは各関数に要したシミュレーション時間に関するレポートを生成します。
プロファイラーの起動
モデルを開きます。
Simulink エディターの [デバッグ] タブで [パフォーマンス] ボタンの矢印をクリックし、[Simulink プロファイラー] を選択します。
プロファイリング シミュレーションを実行します。[プロファイル] タブが開いたら、[プロファイル] をクリックします。
シミュレーションが完了すると、Simulink プロファイラーでモデルのシミュレーション プロファイルが生成され、Simulink エディターのパネルに表示されます。
ブロック階層表示
レポートのブロック階層表示は、モデルのプロファイル情報を入れ子にされたツリー形式で表示します。テーブルの 1 行目、すなわちツリーの最上部は、モデル全体に相当します。後続の行のうち、入れ子の第 1 レベルは、モデルのルート レベルに相当します。
実行スタック ビュー
実行スタック ビューは、プロファイリング レポートをモデルのシミュレーション段階ごとに分解します。モデルの主なシミュレーション段階は、コンパイル、初期化、シミュレーション、および終了です。シミュレーション段階の詳細については、動的システムのシミュレーションの段階を参照してください。
プロファイラーの結果の保存
プロファイラー レポートは、mat
ファイルに保存できます。レポートを後からインポートして確認するには、保存した mat
ファイルを現在のワークスペースに読み込むか、既存のプロファイラー セッションにインポートするかのいずれかを行います。
プロファイリング レポートを保存するには、[プロファイル] タブの [共有] セクションで [MAT にエクスポート] を選択し、オプションで mat
ファイルの名前を指定します。
保存されたレポートを、Simulink エディターで開いているプロファイリング セッションに表示するには、[プロファイル] タブで [ファイルからインポート] を選択します。
保存されたレポートをコマンド ラインで表示するには、レポートを含む MAT ファイルを読み込みます。プロファイリング情報が現在のワークスペースに Simulink.profiler.Data
オブジェクトとして読み込まれます。