Main Content

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 で導入