Main Content

getInputIndex

操作点の仕様の入力要素のインデックスを取得

説明

操作点の仕様の Inputs プロパティは、各モデル入力の平衡化仕様を含む配列です。Simulink® モデルのカスタマイズされた平衡化のためにマッピング関数を定義する場合、getInputIndex を使用して、対応するブロック パスに基づいて入力仕様のインデックスを取得できます。

最適化ベースの探索を使用して Simulink モデルを平衡化する場合、一部のアプリケーションでは最適化探索のパラメーターの定義においてさらに柔軟性が必要となります。そのようなシステムには、カスタム制約およびカスタム目的関数を指定できます。複雑なモデルの場合、マッピングを定義してモデルの状態、入力、および出力の部分集合を選択し、カスタムの制約および目的関数に渡すことができます。詳細については、カスタムの制約と目的関数を使用した操作点の計算を参照してください。

index = getInputIndex(op,block) は、操作点の仕様 opInputs プロパティで block に対応する入力仕様のインデックスを返します。

index = getInputIndex(op,block,element) は、端子の幅が 1 より大きい入力端子の入力仕様内にある指定された element のインデックスを返します。

すべて折りたたむ

Simulink モデルを開きます。

mdl = 'scdtmpSetpoints';
open_system(mdl)

モデルに操作点の仕様オブジェクトを作成します。

opspec = operspec(mdl);

opspec にはモデルのルートレベル入力端子の仕様が含まれます。

opspec.Inputs
ans = 

    <strong>u</strong>    <strong>Known</strong>    <strong>Min</strong>     <strong>Max</strong>
    <strong>_</strong>    <strong>_____</strong>    <strong>____</strong>    <strong>___</strong>

(1.) scdtmpSetpoints/Feed rpm
    0    false    -Inf    Inf
(2.) scdtmpSetpoints/Setpoints
    0    false    -Inf    Inf
    0    false    -Inf    Inf
    0    false    -Inf    Inf
    0    false    -Inf    Inf

opspec.Inputs 内にある Feed rpm 入力ブロックに対応する仕様のインデックスを取得します。

index1 = getInputIndex(opspec,'scdtmpSetpoints/Feed rpm')
index1 =

     1     1

index1(1) は、opspec.Inputs 内での Feed rpm ブロックの入力仕様オブジェクトのインデックスです。この入力端子はスカラー信号であるため、index1 は 1 つの行をもち、index1(2)1 になります。

入力端子がベクトル信号の場合、対応する入力仕様のすべての要素のインデックスを取得できます。

index2 = getInputIndex(opspec,'scdtmpSetpoints/Setpoints')
index2 =

     2     1
     2     2
     2     3
     2     4

index2 の各行は、Setpoints 入力ベクトルの 1 要素のインデックスです。

Simulink モデルを開きます。

mdl = 'scdtmpSetpoints';
open_system(mdl)

モデルに操作点の仕様オブジェクトを作成します。

opspec = operspec(mdl);

opspec にはモデルのルートレベル入力端子の仕様が含まれます。

Setpoints 入力ベクトルの 2 番目の信号に対応する要素のインデックスを取得します。

index1 = getInputIndex(opspec,'scdtmpSetpoints/Setpoints',2)
index1 =

     2     2

一度に複数のベクトル要素のインデックスを取得することもできます。たとえば、Setpoints ベクトルの 1 番目と 3 番目の要素のインデックスを取得します。

index2 = getInputIndex(opspec,'scdtmpSetpoints/Setpoints',[1 3])
index2 =

     2     1
     2     3

入力引数

すべて折りたたむ

Simulink モデルの操作点の仕様または操作点。OperatingSpecOperatingPoint、または OperatingReport オブジェクトとして指定します。

opInputs プロパティ内の入力仕様に対応するブロック パス。Simulink モデルのルートレベルの入力のパスを含む文字ベクトルまたは string として指定します。

入力仕様をもつすべてのブロックを確認するには、opInputs プロパティを表示します。

op.Inputs

入力要素のインデックス。block で指定される入力の端子幅以下の正の整数、またはそのような整数のベクトルとして指定します。既定では、element を指定しない場合、getInputIndex は選択された入力仕様のすべての要素のインデックスを返します。例については、操作点の仕様の指定された入力要素のインデックスの取得を参照してください。

出力引数

すべて折りたたむ

入力インデックス。element が整数の場合は 2 要素の行ベクトル、element がベクトルの場合は 2 列の配列として返されます。index の各行には単一のモデル入力要素のインデックスが含まれます。

index の最初の列には、opInputs プロパティ内の対応する入力仕様のインデックスが含まれます。2 列目には入力仕様内での要素インデックスが含まれます。

index を使用して、Simulink モデルのカスタマイズされた平衡化のためのカスタム マッピングの入力部分を指定できます。詳細については、operspecCustomMappingFcn プロパティを参照してください。

バージョン履歴

R2017a で導入