メインコンテンツ

ソルバー プロファイラー ルールの変更

以下の方法で、ソルバー プロファイラーに表示される提案をカスタマイズできます。

  • エラー パターンを検出するソルバー プロファイラー ルールのしきい値を変更します。

  • プロファイリングの実行中に適用するルールを選択します。

  • ユーザー独自のルール セットを MATLAB® スクリプトとして作成します。

プロファイラー ルールのしきい値の変更

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

プロファイラー ルール セットの開発

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

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

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

function diagnosticsString = customRule(profilerData)
		if isempty(profilerData.zcEvents)
			diagnosticsString{1} = 'No zero crossing event detected.';
		else
			diagnosticsString{1} = 'Zero-crossing events detected.';
		end
end
関数への入力は profilerData と呼ばれる構造体の配列です。この構造体の配列はプロファイリングの実行中にソルバー プロファイラーが収集するすべての情報を整理します。これには、以下のサブ構造体が含まれます。

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

  • value:状態値

  • blockIdx:ブロック ID

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

  • stateIdx:状態 ID

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

  • blockIdx:ブロック ID

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

  • srcIdx:ブロック ID

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

  • stateIdx:状態 ID

  • cause:例外の原因

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