主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

ソルバープロファイラー

ソルバー性能のボトルネックを特定します。

説明

ソルバープロファイラーを使用して、ソルバーとモデルの動作を調査し、シミュレーション性能を低下させる可能性のある問題を特定します。

ソルバープロファイラーを使用して,モデルを解析し,そのシミュレーションに影響するパターンを調べます。ソルバープロファイラーはシミュレーション,ソルバー設定,イベント,エラーに関するグラフィカルで統計的な情報を表示します。このデータを使用してシミュレーションのボトルネックの原因となった箇所をモデル内で特定できます。

さらに、シミュレーションの速度を制限する可能性がある要因は複数あります。ソルバー プロファイラーは、モデルのシミュレーション中に発生するすべての主要なイベントを記録し、レポートします。

  • ゼロクロッシングイベント

  • ソルバーの例外イベント

  • ソルバーのリセットイベント

  • ヤコビアン計算イベント

これらのイベントは一般的であり,正確なシミュレーションに必要です。ただし,これらによって計算コストが発生し,頻繁に発生することで処理が遅くなったり,シミュレーションが失速することもあります。

使用可能なアクション

  • トレース

  • フィルター

  • エクスプローラー

情報ペイン

  • 統計

  • ステップサイズ

  • 提案

ソルバープロファイラーを開く

金宝app®エディターの右下隅にあるハイパーリンクをクリックして,ソルバープロファイラーを開きます。

すべて展開する

この例では、地面から跳ね返るボールをシミュレートするモデルを使用して、特定のソルバー イベントのソースを検出する方法を説明します。ボールが静止するにつれ、ゼロクロッシングの密度が上がり、ソルバーの速度が低下します。

まず,ex_spi_show_zcモデルを開き,ソルバープロファイラーを開始します。

[実行]をクリックし、モデルをプロファイリングします。

モデルに45個のゼロクロッシングイベントがあることを確認し,[結果]ペインの[ゼロクロッシング]タブを選択します。

[結果] ペインでex_spi_show_zc /开关フィールドを選択します。开关ブロックによって発生したすべてのゼロクロッシング イベントが[ステップサイズ]プロットに強調表示されます。

ツールストリップの[トレース]セクションで[ブロックを強調表示]を選択します。

开关ブロックがゼロクロッシングイベントを発生させていることが分かります。

関連する例

パラメーター

設定

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

Simscapeの状態をプロファイラーデータの垫ファイルに保存するには,このパラメーターを有効にします。

ゼロクロッシング情報をプロファイラー データの 小地毯ファイルに保存するには、このパラメーターを有効にします。

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

ソルバーのヤコビアンの詳細については,陰的なソルバーに対するヤコビメソッドの選択を参照してください。

Simscapeの状態に関するスティッフの解析をプロファイラーデータの垫ファイルに記録するには,このパラメーターを有効にします。スティッフおよびその他の物理系の概念のSimscape表現の詳細については,Simscapeモデルによる物理システムの表現(模拟人生)を参照してください。

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

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

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

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

フィルター

ソルバープロファイラーの[ステップサイズ]プロットでソルバーの例外イベントを強調表示するには,このパラメーターを有効にします。

ソルバープロファイラーの[ステップサイズ]プロットでソルバーのリセットイベントを強調表示するには,このパラメーターを有効にします。

ソルバー プロファイラーの [ステップ サイズ] プロットでゼロクロッシング イベントを強調表示するには、このパラメーターを有効にします。

ソルバー プロファイラーの [ステップ サイズ] プロットでヤコビアンの更新イベントを強調表示するには、このパラメーターを有効にします。

ソルバープロファイラーで[ルールのカスタマイズ]をクリックし,ルールセットにアクセスします。これらのルールのほとんどのしきい値を変更し,シミュレーションの実行中に選択的に適用するルールを選択することもできます。

ルールを変更するには,カスタマイズを有効にしてから,希望するしきい値を入力します。

カスタムルールセット

カスタム ルール セットを指定して、[规则集]ダイアログボックスの設定をオーバーライドできます。

ルールセットをMATLAB®スクリプトとして作成し、[规则集]ダイアログ ボックスの[カスタムルールセット]セクションでスクリプトのパスを指定します。

単純なルールセット例は以下のようになります。

function diagnosticsString = customRule(profilerData) if isempty(profilerData. zcevents) diagnosticsString{1} = '没有零交叉事件检测到';else diagnosticsString{1} = '检测到过零事件';结束结束
関数への入力はprofilerDataと呼ばれる構造体の配列です。この構造体の配列はプロファイリングの実行中にソルバープロファイラーが収集するすべての情報を整理します。これには,以下のサブ構造体が含まれます。

サブ構造体 フィールド
stateInfo:ブロック状態に関する情報を格納
  • 的名字:ブロック名

  • 价值:状態値

  • blockIdx:ブロック 身份证件

blockInfo:ブロックおよび状態IDの相互参照
  • 的名字:ブロック名

  • stateIdx:状態ID

zcSrcInfo:ゼロクロッシングイベントを発生させるブロックに関する情報を格納
  • 的名字:ブロック名

  • blockIdx:ブロック 身份证件

zcEvents:ゼロクロッシングイベントのタイムスタンプと対応する状態IDの相互参照
  • t:イベントのタイムスタンプ

  • srcIdx:ブロック 身份证件

exceptionEvents:例外イベントのタイムスタンプ,イベントの原因となった対応する状態のIDおよびその原因の相互参照
  • t:イベントのタイムスタンプ

  • stateIdx:状態ID

  • 原因:例外の原因

resetTime:ソルバーリセットのタイムスタンプを格納 なし
吹捧:シミュレーション時間を格納 なし

データ型:

詳細

すべて展開する

R2016aで導入