状態ランク付けのカスタマイズ
ソルバー プロファイラーに連続状態のログを記録すると、状態エクスプローラーを開いて各連続状態を調べることができます。状態エクスプローラーは次のメトリクスにより連続状態をランク付けします。
状態の導関数
ニュートン/DAE の例外
状態値
エラー制御の例外
状態名
状態のチャタリング
これらのランク付けメトリクスに加えて、ユーザー独自のアルゴリズムを記述してアップロードし、連続状態が状態エクスプローラーでランク付けされる方法を決定できます。
[状態のランク付け基準] ドロップダウンの横にある編集ボタンをクリックします。

表示される [Custom Algorithm] ダイアログ ボックスで [Add] をクリックし、ランク付けアルゴリズムが含まれる MATLAB® スクリプトをアップロードします。
値で状態をランク付けする単純なアルゴリズムは次のようになります。
メモ
この例で参照される構造体はプロファイリングの実行中にソルバー プロファイラーが収集する情報を整理します。構造体の詳細については、プロファイラー ルール セットの開発を参照してください。
function [index,score] = customRank(sd,tl,tr) % Allocate storage for index and score list nStates = length(sd.stateInfo); index = l:nStates; score = zeros(nStates,l); % Loop through each state to calculate score for i = l:nStates x = sd.stateInfo(i).value; % apply time range constraints x = x(sd.tout>=tl & sd.tout<=tr); if max(x) > 1 score(i) = 1; else score(i) = 0; end end % Rank the states [score, order] = sort(score, 'descend'); index = index(order); end