Main Content

solverprofiler.profileModel

性能解析のためにモデルを調べる

説明

res = solverprofiler.profileModel(model) は指定された model 上でソルバー プロファイラーを実行し、結果を res に保存します。

res = solverprofiler.profileModel(model, Name,Value) は、1 つ以上の Name, Value ペア引数を使用してソルバー プロファイラーのパラメーターを指定します。

すべて折りたたむ

既定のコマンド ライン設定を使用して、モデル f14 を調べます。

model = 'f14';
res = solverprofiler.profileModel(model);

res.summary を呼び出すことで結果の概要を表示できます。

res.summary
 struct with fields:

             solver: 'ode45'
             tStart: 0
              tStop: 60
             absTol: 1.0000e-06
             relTol: 1.0000e-04
               hMax: 0.1000
           hAverage: 0.0444
              steps: 1352
        profileTime: 0.9974
           zcNumber: 0
        resetNumber: 600
     jacobianNumber: 0
    exceptionNumber: 195

[ソルバー プロファイラー] ダイアログで結果を開いて、可視化します。このステップは、関数の呼び出し時に OpenSP を有効にすることと等価です。

solverprofiler.exploreResult(res)

完全に指定されたコンフィギュレーションを使用してモデル ssc_actuator_custom_pneumatic を調べます。

model = 'ssc_actuator_custom_pneumatic';
res = solverprofiler.profileModel(model, ...
    'SaveStates' , 'on', ...
    'SaveSimscapeStates' , 'On', ...
    'SaveJacobian' , 'On', ...
    'StartTime' , 5, ...
    'StopTime' , 50, ...
    'BufferSize',  10000,...
    'TimeOut', 5,...
    'OpenSP', 'On',...
    'DataFullFile', fullfile(pwd, 'ssc_profiling_result.mat'));

入力引数

すべて折りたたむ

プロファイリングされるモデル名。文字ベクトルとして指定します。

例: h = solverprofiler.profileModel('vdp')

名前と値のペアの引数

オプションのコンマ区切りされた Name,Value の引数ペアを指定します。ここで、Name は引数名、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: 'StartTime',0,'StopTime',10,'SaveStates','On'

既定では、プロファイラーはモデルの状態を保存しません。このパラメーターを有効にすると、プロファイラーが状態を MAT ファイルに保存するように設定されます。

例: 'SaveStates','On'

Simscape の状態を MAT ファイルに保存するには、このパラメーターを有効にします。

例: 'SaveSimscapeStates', 'On'

ソルバーのヤコビ行列をメモリに記録するオプションです。このオプションは、陰的なソルバーを使用するシミュレーションに役立ちます。ソルバーの比較については、ソルバーの比較を参照してください。

例: 'SaveJacobian', 'On'

プロファイラーがモデルの解析を開始するシミュレーションの時間 (秒単位)。これは、シミュレーションの開始時間と同じではありません。

例: 'StartTime',5

プロファイラーがモデルをプロファイリングするシミュレーションの時間 (秒単位)。既定では、シミュレーションが終了するまで解析は続行します。このパラメーターを変更しても、[モデル コンフィギュレーション パラメーター] で指定するモデルの終了時間は変わりません。

値がモデルの設定された終了時間より小さいと、StopTime でプロファイリングとシミュレーションが停止します。

例: 'StopTime',30

ログに記録されるイベントの最大数。ログに記録されるイベントの数がこの値に達してもメモリが利用可能である場合は、BufferSize を増やします。メモリに制限がある場合、この値を減らすことを検討します。

例: 'BufferSize',60000

プロファイラーが実行を停止するまで待機する時間 (秒単位)。このオプションは、シミュレーションを続行できない状況の場合に役立ちます。プロファイラーは指定された時間待機して、進捗がなければ終了します。

例: 'TimeOut', 10

プロファイリングの完了後に [ソルバー プロファイラー] ダイアログ ボックスを開くオプション。

例: 'OpenSP','On'

既定では、プロファイリングの結果は、現在の作業フォルダー内の model_@_dd_Month_yyyy_hh_mm_ss.mat という名前の MAT ファイルに保存されます。現在の作業フォルダーに結果を保存するための別のファイル名を指定できます。このファイルを別の場所に保存するには、ファイルの絶対パスを、ファイル名を含めて指定します。

例: 'DataFullFile','C:\Users\myusername\Documents\profiled\vdp_results.mat'

出力引数

すべて折りたたむ

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

MAT ファイルとして保存されるプロファイリング操作の結果の MAT ファイルのパスと名前。既定では、これらは model_@_dd_Month_yyyy_hh_mm_ss.mat というパターンのファイル名で、現在の作業フォルダーに保存されます。これらを別の場所または別の名前で保存するには、solverprofiler.profileModel を呼び出すときに DataFullFile を指定します。

プロファイリング操作の結果のおおまかな概要。構造体として返されます。この概要は、シミュレーションのパフォーマンスとモデルの健全性の概要を示します。

summary 構造体には次のフィールドがあります。

フィールド目的説明
solverシミュレーションで使用されるソルバーソルバー プロファイラーによってサポートされる任意のソルバーモデルの [コンフィギュレーション パラメーター] で設定されている、シミュレーションで使用されるソルバー。すべてのソルバーのリストについては、ソルバーを参照してください。ソルバー プロファイラーは、連続状態のないモデルをサポートしません。
tStartシミュレーションの開始時間スカラープロファイリング操作中のモデルのシミュレーションの開始時間 (秒単位)。
tStopシミュレーションの終了時間スカラープロファイリング操作中のシミュレーションの終了時間 (秒単位)。StopTime がモデルの設定された [終了時間] より早い場合、シミュレーションは StopTime に停止します。
absTolソルバーの絶対許容誤差正のスカラーモデルのコンフィギュレーション設定で指定される、ソルバーの絶対許容誤差。詳細については、絶対許容誤差を参照してください。
relTolソルバーの相対許容誤差正のスカラーモデルのコンフィギュレーション設定で指定される、ソルバーの相対許容誤差。詳細については、相対許容誤差を参照してください。
hMax最大ステップ サイズ正のスカラーソルバーが受け入れることのできる最大のタイム ステップ。最大ステップ サイズを参照してください。
hAverage平均ステップ サイズ正のスカラーソルバーが受け入れるタイム ステップの平均サイズ。
steps受け入れられる合計ステップ正のスカラーソルバーが受け入れる合計タイム ステップ数。
profileTimeプロファイリングする時間正のスカラーソルバー プロファイラーによるモデルの調査にかかる時間 (秒単位)。
zcNumberゼロクロッシングの合計回数非負のスカラーモデルのシミュレーション中に発生するゼロクロッシングの合計回数これらのゼロクロッシングの検出には計算コストがかかるため、シミュレーション速度が低下する可能性があります。ゼロクロッシング検出の詳細については、ゼロクロッシング検出を参照してください。
resetNumberソルバーのリセット数非負のスカラーソルバーがパラメーターをリセットする必要がある回数。
jacobianNumberヤコビアン更新の数非負のスカラーソルバーのヤコビ行列がシミュレーション中に更新される回数。詳細については、陽的な連続ソルバーと陰的な連続ソルバーを参照してください。
exceptionNumberソルバーの例外の数非負のスカラーシミュレーション中にソルバーの例外が発生する合計数。これらの例外は、ソルバーが指定された精度でモデルの状態を解決できない場合のイベントです。結果として、ソルバーは試行の調整を実行しますが、これにより計算コストが増大します。

データ型: struct

R2017b で導入