solverprofiler.profileModel
ソルバー プロファイラーを使用してモデルのソルバー性能をプログラムによって解析する
説明
は、ソルバー プロファイラーを使用して、モデル res
= solverprofiler.profileModel(mdl
)mdl
の選択したソルバーの性能を解析します。
プロファイリング結果は常に MAT ファイルに保存されます。出力引数 res
には、プロファイリング結果のおおまかな概要と、完全なプロファイリング データを含む MAT ファイルの名前が含まれます。
MAT ファイル内のプロファイリング データには、MATLAB® ベース ワークスペースからはアクセスできません。プロファイリング データを表示および解析するには、ソルバー プロファイラー ユーザー インターフェイスまたは関数 solverprofiler.exploreResult
を使用して、ソルバー プロファイラーで MAT ファイルを開きます。
は、名前と値の引数を使用して指定した 1 つ以上のオプションに基づいて、選択したソルバーの性能を解析します。res
= solverprofiler.profileModel(mdl
,Name,Value
)
例
プログラムによるモデルのソルバー性能の解析
モデル 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.0588
zcNumber: 18
resetNumber: 618
jacobianNumber: 0
exceptionNumber: 196
関数 solverprofiler.profileModel
は、プロファイリング セッションのデータを MAT ファイルに保存します。結果構造体の file
フィールドは、絶対パスとファイル名を示します。既定では、MAT ファイルは現在の作業ディレクトリに保存されます。
プロファイリング結果をより詳細に解析するには、プロファイリング セッション データを含む MAT ファイルをソルバー プロファイラーに読み込みます。Simulink® ツールストリップの [デバッグ] タブで [パフォーマンス] ボタンの矢印をクリックします。その後、[ソルバー プロファイラー] を選択します。
ソルバー プロファイラーで、[読み込み] ボタンの矢印をクリックし、[セッション データの読み込み] を選択します。プロファイリング セッション ファイルを選択し、[開く] をクリックします。ソルバー プロファイラーで、プロファイリング シミュレーションのデータが表示されます。
あるいは、関数 solverProfiler.exploreResult
を使用して、プログラムによってソルバー プロファイラーを開き、セッション データを読み込みます。
solverprofiler.exploreResult(res.file)
入力引数
mdl
— 解析するモデルの名前
string | 文字ベクトル
解析するモデルの名前。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
の現在選択されているソルバーを解析し、状態値のログを記録します。
SaveStates
— プロファイリング結果を含む MAT ファイルにモデルの状態を保存するオプション
'off'
(既定値) | 'on'
プロファイリング結果を含む MAT ファイルにモデルの状態を保存するオプション。'off'
または 'on'
として指定します。
プロファイリング結果と共にモデルの状態を保存した場合、MAT ファイルの内容を読み込んだ後に MATLAB ベース ワークスペースから状態データにアクセスすることはできません。データを表示および解析するには、モデルの状態とプロファイリング結果を含む MAT ファイルをソルバー プロファイラーで開きます。
MAT ファイルに状態データが含まれている場合、ソルバー プロファイラーには状態エクスプローラーを開くオプションが含まれています。このエクスプローラーで、プロファイリング シミュレーション全体における状態値を解析できます。
SaveSimscapeStates
— プロファイリング結果を含む MAT ファイルに Simscape™ の状態を保存するオプション
'off'
(既定値) | 'on'
プロファイリング結果を含む MAT ファイルに Simscape の状態を保存するオプション。'off'
または 'on'
として指定します。
プロファイリング結果と共に Simscape の状態を保存した場合、MAT ファイルの内容を読み込んだ後に MATLAB ベース ワークスペースから状態データにアクセスすることはできません。データを表示および解析するには、状態データとプロファイリング結果を含む MAT ファイルをソルバー プロファイラーで開きます。
MAT ファイルに Simscape の状態データが含まれている場合、ソルバー プロファイラーには Simscape 結果エクスプローラーを開くオプションが含まれています。このエクスプローラーで、プロファイリング シミュレーション全体における Simscape 状態値を解析できます。詳細については、Simscape 結果エクスプローラー (Simscape)を参照してください。
SaveJacobian
— プロファイリング結果を含む MAT ファイルにヤコビ行列に対する更新を保存するオプション
'off'
(既定値) | 'on'
プロファイリング結果を含む MAT ファイルにヤコビ行列に対する更新を保存するオプション。'off'
または 'on'
として指定します。
このオプションを有効にしても、プロファイリング シミュレーション中にソルバーがヤコビ行列を更新しなかった場合、MAT ファイルの内容は変更されません。このオプションは、陰的なソルバーを使用するシミュレーションに役立ちます。陰的なソルバーの詳細については、ソルバーの比較を参照してください。
プロファイリング結果にヤコビアンのデータを保存した場合、MAT ファイルの内容を読み込んだ後に MATLAB ベース ワークスペースから結果にアクセスすることはできません。データを表示および解析するには、ヤコビアンのデータとプロファイリング結果を含む MAT ファイルをソルバー プロファイラーで開きます。
MAT ファイルにヤコビアンのデータが含まれている場合、ソルバー プロファイラーには [ヤコビアンの解析] という名前のタブが含まれています。このタブで、プロファイリング シミュレーション中に行われたヤコビ行列に対する更新を表示および解析できます。
SaveZCSignals
— プロファイリング結果を含む MAT ファイルにゼロクロッシング信号データを保存するオプション
'off'
(既定値) | 'on'
プロファイリング結果を含む MAT ファイルにゼロクロッシング信号データを保存するオプション。'off'
または 'on'
として指定します。
プロファイリング結果と共にゼロクロッシング信号データを保存した場合、MAT ファイルの内容を読み込んだ後に MATLAB ベース ワークスペースからゼロクロッシング信号データにアクセスすることはできません。データを表示および解析するには、ゼロクロッシング信号データとプロファイリング結果を含む MAT ファイルをソルバー プロファイラーで開きます。
MAT ファイルにゼロクロッシング信号データが含まれている場合、ソルバー プロファイラーにはゼロクロッシング エクスプローラーを開くオプションが含まれています。このエクスプローラーで、プロファイリング シミュレーション全体におけるゼロクロッシング信号値を解析できます。
StartTime
— プロファイリング シミュレーションの開始時間
[開始時間] パラメーターの値 (既定値) | スカラー
プロファイリング シミュレーションの開始時間。秒単位のスカラー数として指定します。既定では、ソルバー プロファイラーはモデルの [開始時間] パラメーターの値を使用します。
この名前と値の引数を指定しても、モデルの [開始時間] パラメーターの値は変更されません。
StopTime
— プロファイリング シミュレーションの終了時間
[終了時間] パラメーターの値 (既定値) | スカラー
プロファイリング シミュレーションの終了時間。秒単位のスカラー数として指定します。既定では、ソルバー プロファイラーはモデルの [終了時間] パラメーターの値を使用します。
この名前と値の引数に値を指定しても、モデルの [終了時間] パラメーターは変更されません。
BufferSize
— ログに記録するイベントの最大数
50000
(既定値) | 正のスカラー
ログに記録するイベントの最大数。正のスカラーとして指定します。既定では、ソルバー プロファイラーは最大 50,000 件のイベントをログに記録します。
モデルのプロファイリング時にログに記録されたイベント数が 50,000 件に達し、メモリがまだ使用可能な場合は、より大きな値を指定します。メモリに制限がある場合、指定する値を減らすことを検討します。
TimeOut
— プロファイリング シミュレーションのタイムアウトを指定するオプション
正のスカラー
プロファイリング シミュレーションのタイムアウトを指定するオプション。秒単位の正のスカラーとして指定します。場合によっては、プロファイリング シミュレーションを続行できないことがあります。プロファイリング シミュレーションのタイムアウトを指定すると、指定した時間内にシミュレーションが進行しない場合、ソルバー プロファイラーはプロファイリング シミュレーションを停止します。
OpenSP
— プロファイリング シミュレーションの完了後にソルバー プロファイラー ユーザー インターフェイスを開くオプション
'off'
(既定値) | 'on'
プロファイリング シミュレーションの完了後にソルバー プロファイラー ユーザー インターフェイスを開くオプション。'off'
または 'on'
として指定します。
DataFullFile
— プロファイリング シミュレーションで保存されたプロファイリング結果とデータを含む MAT ファイルのパスと名前
string | 文字ベクトル
プロファイリング シミュレーションで保存されたプロファイリング結果とデータを含む MAT ファイルのパスと名前。string または文字ベクトルとして指定します。
この名前と値の引数を指定しなかった場合、ソルバー プロファイラーは、現在の作業ディレクトリ内で、モデルの名前とタイムスタンプを含む規則 model_@_dd_Month_yyyy_hh_mm_ss.mat
を使用して名前を付けた MAT ファイルに結果を保存します。
出力引数
res
— プロファイリング結果のおおまかな概要
構造体
プロファイリング結果のおおまかな概要。次のフィールドを含む構造体として返されます。
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 で導入
参考
ソルバー プロファイラー | 状態エクスプローラー | ゼロクロッシング エクスプローラー | Simscape 結果エクスプローラー (Simscape)
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)