最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

advise

線形化で問題が生じる可能性のあるブロックの検出

説明

Simulink® モデルを線形化する際、個々のブロック線形化に関する診断情報を含む LinearizationAdvisor オブジェクトを作成できます。線形化の問題が生じる可能性のあるブロックの診断のために LinearizationAdvisor オブジェクトを検索するには、関数 advise を使用します。

advise(advisor) は、advisor でブロック線形化をトラブルシューティングするための [アドバイザー] タブを開いた状態で線形解析ツールを起動します。詳細については、線形解析ツールでの線形化結果のトラブルシューティングを参照してください。

result = advise(advisor) は、線形化で問題が生じる可能性のある advisor のすべてのブロックについての線形化診断情報を含む LinearizationAdvisor オブジェクトを返します。

すべて折りたたむ

Simulink モデルを読み込みます。

mdl = 'scdpendulum';
load_system(mdl)

モデルを線形化して LinearizationAdvisor オブジェクトを取得します。

io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;

線形解析ツールで線形化アドバイザーを開きます。

advise(advisor)

Simulink モデルを読み込みます。

mdl = 'scdpendulum';
load_system(mdl)

モデルを線形化して LinearizationAdvisor オブジェクトを取得します。

io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;

線形化で問題が生じる可能性のあるブロックを検出します。

result = advise(advisor)
result = 
  LinearizationAdvisor with properties:

               Model: 'scdpendulum'
      OperatingPoint: [1x1 opcond.OperatingPoint]
    BlockDiagnostics: [1x3 linearize.advisor.BlockDiagnostic]
           QueryType: 'Linearization Advice'

入力引数

すべて折りたたむ

ブロック線形化の診断情報。LinearizationAdvisor オブジェクトまたは LinearizationAdvisor オブジェクトの配列として指定します。

出力引数

すべて折りたたむ

線形化の結果における問題が生じる可能性のあるブロックの診断情報。LinearizationAdvisor オブジェクトとして返されます。result は、advisor で線形化パス上にあり以下の条件のうち少なくとも 1 つを満たす任意のブロックについての線形化の診断情報を含みます。

  • ブロック線形化に関する診断メッセージがある

  • ゼロに線形化する

  • 代替の線形化をもつ

アルゴリズム

関数 advise の呼び出しは、関数 find を使用して次のカスタム クエリを実行することと等価です。

qPath     = linqueryIsOnPath;
qZero     = linqueryIsZero;
qBlkRep   = linqueryIsBlockSubstituted;
qDiags    = linqueryHasDiagnostics;
  
q = qPath & (qZero | qDiags | qBlkRep);
 
advisor_new = find(advisor,q);

R2017b で導入