Main Content

linqueryHasInputs

指定された数の入力をもつブロックを検出するためのクエリ オブジェクト

説明

linqueryHasInputs は、指定された数の入力をもつすべてのブロックを線形化結果から検出するためのカスタム クエリ オブジェクトを作成します。

Simulink® モデルを線形化する際、個々のブロック線形化に関する診断情報を含む LinearizationAdvisor オブジェクトを作成できます。特定の条件を満たすブロック線形化を検出するには、カスタム クエリ オブジェクトを指定して関数 find を使用します。あるいは、モデル線形化器で線形化アドバイザーを使用して線形化の診断を解析することもできます。線形化の結果から特定のブロックを検出する方法の詳細については、線形化の結果で特定の条件に一致するブロックの検出を参照してください。

作成

説明

query = linqueryHasInputs(numInputs) は、指定された数の入力をもつすべてのブロックを LinearizationAdvisor オブジェクトから検出するためのクエリ オブジェクトを作成します。この構文はクエリ オブジェクトの NumInputs プロパティを設定します。

プロパティ

すべて展開する

ブロックの入力数。非負の整数として指定します。

クエリ タイプ。'Has <N> Inputs' 形式の文字ベクトルとして指定します。<N>NumInputs に等しくなります。

クエリの説明。'Blocks with <N> Inputs' 形式の文字ベクトルとして指定します。<N>NumInputs に等しくなります。このプロパティを使用してクエリ オブジェクトに独自の説明を追加できます。

使用法

linqueryHasInputs クエリ オブジェクトを作成した後、次を行うことができます。

  • linqueryHasInputs クエリを find コマンドで直接使用して LinearizationAdvisor オブジェクト内にある、指定数の入力をもつブロックをすべて検出します。

  • linqueryHasInputs クエリを他のクエリ オブジェクトと論理的に組み合わせて、CompoundQuery オブジェクトを作成します。

オブジェクト関数

find線形化の結果で特定の条件を満たすブロックを検出

すべて折りたたむ

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

mdl = 'scdspeed';
load_system(mdl)

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

opts = linearizeOptions('StoreAdvisor',true);
io(1) = linio('scdspeed/throttle (degrees)',1,'input');
io(2) = linio('scdspeed/rad//s to rpm',1,'output');
[sys,op,info] = linearize(mdl,io,opts);
advisor = info.Advisor;

クエリ オブジェクトを作成し、2 つの入力をもつすべての線形化されたブロックを検出します。

qIn = linqueryHasInputs(2);
advIn = find(advisor,qIn)
advIn = 
  LinearizationAdvisor with properties:

               Model: 'scdspeed'
      OperatingPoint: [1x1 opcond.OperatingPoint]
    BlockDiagnostics: [1x13 linearize.advisor.BlockDiagnostic]
           QueryType: 'Has 2 Inputs'

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

mdl = 'scdspeed';
load_system(mdl)

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

opts = linearizeOptions('StoreAdvisor',true);
io(1) = linio('scdspeed/throttle (degrees)',1,'input');
io(2) = linio('scdspeed/rad//s to rpm',1,'output');
[sys,op,info] = linearize(mdl,io,opts);
advisor = info.Advisor;

1 つの入力と 1 つの出力をもつすべてのブロックを検出するための複合クエリ オブジェクトを作成します。

qSISO = linqueryHasInputs(1) & linqueryHasOutputs(1);

複合クエリ オブジェクトを使用してすべての SISO ブロックを検出します。

advSISO = find(advisor,qSISO)
advSISO = 
  LinearizationAdvisor with properties:

               Model: 'scdspeed'
      OperatingPoint: [1x1 opcond.OperatingPoint]
    BlockDiagnostics: [1x10 linearize.advisor.BlockDiagnostic]
           QueryType: '(Has 1 Inputs & Has 1 Outputs)'

代替機能

アプリ

モデル線形化器の線形化アドバイザーを使用して、線形化の結果で特定のブロックを見つけるカスタム クエリを作成することもできます。詳細については、線形化の結果で特定の条件に一致するブロックの検出を参照してください。

バージョン履歴

R2017b で導入