Main Content

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

solverprofiler.profileModel

ソルバー プロファイラーを使用してモデルのソルバー性能をプログラムによって解析する

説明

res = solverprofiler.profileModel(mdl) は、ソルバー プロファイラーを使用して、モデル mdl の選択したソルバーの性能を解析します。

プロファイリング結果は常に MAT ファイルに保存されます。出力引数 res には、プロファイリング結果のおおまかな概要と、完全なプロファイリング データを含む MAT ファイルの名前が含まれます。

MAT ファイル内のプロファイリング データには、MATLAB® ベース ワークスペースからはアクセスできません。プロファイリング データを表示および解析するには、ソルバー プロファイラー ユーザー インターフェイスまたは関数 solverprofiler.exploreResult を使用して、ソルバー プロファイラーで MAT ファイルを開きます。

res = solverprofiler.profileModel(mdl,Name,Value) は、名前と値の引数を使用して指定した 1 つ以上のオプションに基づいて、選択したソルバーの性能を解析します。

すべて折りたたむ

モデル slexAircraftExample を開きます。

mdl = "slexAircraftExample";
open_system(mdl);

関数 solverprofiler.profileModel を使用して、ソルバー プロファイラーにより、モデルの選択したソルバーの性能を解析します。

res = solverprofiler.profileModel(mdl);

プロファイリング結果のおおまかな概要を確認するには、結果構造体の summary フィールドを表示します。概要では、プロファイリング シミュレーションに 600 件のソルバーのリセットと 193 件のソルバーの例外があったことが示されています。

res.summary
ans = struct with fields:
             solver: 'ode45'
             tStart: 0
              tStop: 60
             absTol: 1.0000e-06
             relTol: 1.0000e-04
               hMax: 0.1000
           hAverage: 0.0435
              steps: 1380
        profileTime: 0.0598
           zcNumber: 18
        resetNumber: 618
     jacobianNumber: 0
    exceptionNumber: 196

関数 solverprofiler.profileModel は、プロファイリング セッションのデータを MAT ファイルに保存します。結果構造体の file フィールドは、絶対パスとファイル名を示します。既定では、MAT ファイルは現在の作業ディレクトリに保存されます。

プロファイリング結果をより詳細に解析するには、プロファイリング セッション データを含む MAT ファイルをソルバー プロファイラーに読み込みます。Simulink® ツールストリップの [デバッグ] タブで [パフォーマンス アドバイザー] ボタンの矢印をクリックします。その後、[ソルバー プロファイラー] を選択します。

The Debug tab in the Simulink Toolstrip has the Performance Advisor button arrow expanded to show a menu of options with the pointer on the Solver Profiler option.

ソルバー プロファイラーで、[読み込み] ボタンの矢印をクリックし、[セッション データの読み込み] を選択します。プロファイリング セッション ファイルを選択し、[開く] をクリックします。ソルバー プロファイラーで、プロファイリング シミュレーションのデータが表示されます。

The Solver Profiler user interface has a toolstrip above three main panes. The Statistics pane on the left provides information about the model and simulation. On the right, the top pane shows a plot of the step size throughout the simulation above a pane with tabs that provide suggestions and additional details.

あるいは、関数 solverProfiler.exploreResult を使用して、プログラムによってソルバー プロファイラーを開き、セッション データを読み込みます。

solverprofiler.exploreResult(res.file)

入力引数

すべて折りたたむ

解析するモデルの名前。string または文字ベクトルとして指定します。

例: h = solverprofiler.profileModel("vdp") は、ソルバー プロファイラーを使用して、モデル vdp の現在選択されているソルバーを解析します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

例: solverprofiler.profilemodel(mdl,StartTime=0,StopTime=10,SaveStates="on") は、0 秒から 10 秒までのシミュレーションでモデル mdl の現在選択されているソルバーを解析し、状態値のログを記録します。

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: solverprofiler.profilemodel(mdl,"StartTime",0,"StopTime",10,"SaveStates","on") は、0 秒から 10 秒までのシミュレーションでモデル mdl の現在選択されているソルバーを解析し、状態値のログを記録します。

プロファイリング結果を含む MAT ファイルにモデルの状態を保存するオプション。'off' または 'on' として指定します。

プロファイリング結果と共にモデルの状態を保存した場合、MAT ファイルの内容を読み込んだ後に MATLAB ベース ワークスペースから状態データにアクセスすることはできません。データを表示および解析するには、モデルの状態とプロファイリング結果を含む MAT ファイルをソルバー プロファイラーで開きます。

MAT ファイルに状態データが含まれている場合、ソルバー プロファイラーには状態エクスプローラーを開くオプションが含まれています。このエクスプローラーで、プロファイリング シミュレーション全体における状態値を解析できます。

プロファイリング結果を含む MAT ファイルに Simscape の状態を保存するオプション。'off' または 'on' として指定します。

プロファイリング結果と共に Simscape の状態を保存した場合、MAT ファイルの内容を読み込んだ後に MATLAB ベース ワークスペースから状態データにアクセスすることはできません。データを表示および解析するには、状態データとプロファイリング結果を含む MAT ファイルをソルバー プロファイラーで開きます。

MAT ファイルに Simscape の状態データが含まれている場合、ソルバー プロファイラーには Simscape 結果エクスプローラーを開くオプションが含まれています。このエクスプローラーで、プロファイリング シミュレーション全体における Simscape 状態値を解析できます。詳細については、Simscape 結果エクスプローラー (Simscape)を参照してください。

プロファイリング結果を含む MAT ファイルにヤコビ行列に対する更新を保存するオプション。'off' または 'on' として指定します。

このオプションを有効にしても、プロファイリング シミュレーション中にソルバーがヤコビ行列を更新しなかった場合、MAT ファイルの内容は変更されません。このオプションは、陰的なソルバーを使用するシミュレーションに役立ちます。陰的なソルバーの詳細については、ソルバーの比較を参照してください。

プロファイリング結果にヤコビアンのデータを保存した場合、MAT ファイルの内容を読み込んだ後に MATLAB ベース ワークスペースから結果にアクセスすることはできません。データを表示および解析するには、ヤコビアンのデータとプロファイリング結果を含む MAT ファイルをソルバー プロファイラーで開きます。

MAT ファイルにヤコビアンのデータが含まれている場合、ソルバー プロファイラーには [ヤコビアンの解析] という名前のタブが含まれています。このタブで、プロファイリング シミュレーション中に行われたヤコビ行列に対する更新を表示および解析できます。

プロファイリング結果を含む MAT ファイルにゼロクロッシング信号データを保存するオプション。'off' または 'on' として指定します。

プロファイリング結果と共にゼロクロッシング信号データを保存した場合、MAT ファイルの内容を読み込んだ後に MATLAB ベース ワークスペースからゼロクロッシング信号データにアクセスすることはできません。データを表示および解析するには、ゼロクロッシング信号データとプロファイリング結果を含む MAT ファイルをソルバー プロファイラーで開きます。

MAT ファイルにゼロクロッシング信号データが含まれている場合、ソルバー プロファイラーにはゼロクロッシング エクスプローラーを開くオプションが含まれています。このエクスプローラーで、プロファイリング シミュレーション全体におけるゼロクロッシング信号値を解析できます。

プロファイリング シミュレーションの開始時間。秒単位のスカラー数として指定します。既定では、ソルバー プロファイラーはモデルの [開始時間] パラメーターの値を使用します。

この名前と値の引数を指定しても、モデルの [開始時間] パラメーターの値は変更されません。

プロファイリング シミュレーションの終了時間。秒単位のスカラー数として指定します。既定では、ソルバー プロファイラーはモデルの [終了時間] パラメーターの値を使用します。

この名前と値の引数に値を指定しても、モデルの [終了時間] パラメーターは変更されません。

ログに記録するイベントの最大数。正のスカラーとして指定します。既定では、ソルバー プロファイラーは最大 50,000 件のイベントをログに記録します。

モデルのプロファイリング時にログに記録されたイベント数が 50,000 件に達し、メモリがまだ使用可能な場合は、より大きな値を指定します。メモリに制限がある場合、指定する値を減らすことを検討します。

プロファイリング シミュレーションのタイムアウトを指定するオプション。秒単位の正のスカラーとして指定します。場合によっては、プロファイリング シミュレーションを続行できないことがあります。プロファイリング シミュレーションのタイムアウトを指定すると、指定した時間内にシミュレーションが進行しない場合、ソルバー プロファイラーはプロファイリング シミュレーションを停止します。

プロファイリング シミュレーションの完了後にソルバー プロファイラー ユーザー インターフェイスを開くオプション。'off' または 'on' として指定します。

プロファイリング シミュレーションで保存されたプロファイリング結果とデータを含む MAT ファイルのパスと名前。string または文字ベクトルとして指定します。

この名前と値の引数を指定しなかった場合、ソルバー プロファイラーは、現在の作業ディレクトリ内で、モデルの名前とタイムスタンプを含む規則 model_@_dd_Month_yyyy_hh_mm_ss.mat を使用して名前を付けた MAT ファイルに結果を保存します。

出力引数

すべて折りたたむ

プロファイリング結果のおおまかな概要。次のフィールドを含む構造体として返されます。

  • file — プロファイリング シミュレーションで保存されたプロファイリング結果とデータを含む MAT ファイルの絶対パスと名前

    既定では、プロファイリング結果を含む MAT ファイルは、現在の作業フォルダーに保存されます。既定のファイル名には命名パターン model_@_dd_Month_yyyy_hh_mm_ss.mat が使用され、モデルの名前とタイム スタンプが含まれています。

    名前と値の引数 DataFullFile を使用して、MAT ファイルの名前と場所を指定します。

  • summary — プロファイリング シミュレーションで使用されるモデル パラメーター値の概要とプロファイリング結果を含む構造体

    次の表は、summary 構造体に含まれているフィールドと情報をまとめたものです。

    フィールド説明
    solver文字ベクトル

    プロファイリング シミュレーションで使用されたソルバー。プロファイリング シミュレーションでは、モデルの [ソルバー] コンフィギュレーション パラメーターを使用して指定されたソルバーが使用されます。

    ソルバー プロファイラーは、連続状態を含むモデルのみをサポートし、可変ステップ離散ソルバーや固定ステップ離散ソルバーはサポートしていません。

    tStartスカラー

    プロファイリング シミュレーションの開始時間 (秒単位)。

    名前と値の引数 StartTime を指定しなかった場合、プロファイリング シミュレーションではモデルの [開始時間] コンフィギュレーション パラメーターの値が使用されます。

    プロファイリング シミュレーションで異なる開始時間を使用するには、名前と値の引数 StartTime を指定します。

    名前と値の引数 StartTime を指定しても、モデルの [開始時間] パラメーターの値は変更されません。

    tStopスカラー

    プロファイリング シミュレーションの終了時間 (秒単位)。

    名前と値の引数 StopTime を指定しなかった場合、プロファイリング シミュレーションではモデルの [終了時間] パラメーターの値が使用されます。

    プロファイリング シミュレーションで使用する終了時間を小さくするには、名前と値の引数 StopTime を、[終了時間] パラメーターの値より小さい値に指定します。

    名前と値の引数 StopTime を指定しても、モデルの [終了時間] パラメーターの値は変更されません。

    absTol正のスカラー

    ソルバーの絶対許容誤差。モデルの [絶対許容誤差] コンフィギュレーション パラメーターを使用して指定します。

    relTol正のスカラー

    ソルバーの相対許容誤差。モデルの [相対許容誤差] コンフィギュレーション パラメーターを使用して指定します。

    hMax正のスカラー

    プロファイリング シミュレーションの最大ステップ サイズ。モデルの [最大ステップ サイズ] コンフィギュレーション パラメーターを使用して指定します。

    hAverage正のスカラー

    プロファイリング シミュレーションでソルバーが実行したステップの平均サイズ。

    steps正のスカラープロファイリング シミュレーションのタイム ステップの合計数。
    profileTime正のスカラー

    プロファイリング シミュレーションの経過時間 (秒単位)。

    zcNumber非負のスカラー

    プロファイリング シミュレーションで検出されたゼロクロッシングの数。

    ゼロクロッシングを検出して特定すると、シミュレーションの精度が向上しますが、計算量が増大します。ゼロクロッシングが多数あると、シミュレーションの性能が低下する可能性があります。詳細については、ゼロクロッシング検出を参照してください。

    resetNumber非負のスカラー

    プロファイリング シミュレーションで行われたソルバーのリセット数。

    jacobianNumber非負のスカラー

    プロファイリング シミュレーションでソルバーがヤコビ行列を更新した回数。詳細については、陽的な連続ソルバーと陰的な連続ソルバーを参照してください。

    exceptionNumber非負のスカラー

    プロファイリング シミュレーション中に発生したソルバーの例外の合計数。

    ソルバーの例外は、ソルバーが指定された許容誤差値内でモデルの状態を計算できない場合に発生します。ソルバーの例外が発生すると、ソルバーは計算を調整して許容誤差値を満たそうとします。ソルバーの例外が多数ある場合は、計算が繰り返されていることを示しており、シミュレーションの性能が低下する可能性があります。

データ型: struct

バージョン履歴

R2017b で導入