getOutputIndex
操作点の仕様の出力要素のインデックスを取得
構文
説明
操作点の仕様の Outputs プロパティは、各モデル出力の平衡化仕様を含む配列です。Simulink® モデルのカスタマイズされた平衡化のためにマッピング関数を定義する場合、getOutputIndex を使用して、対応するブロック パスに基づいて出力仕様のインデックスを取得できます。
最適化ベースの探索を使用して Simulink モデルを平衡化する場合、一部のアプリケーションでは最適化探索のパラメーターの定義においてさらに柔軟性が必要となります。そのようなシステムには、カスタム制約およびカスタム目的関数を指定できます。複雑なモデルの場合、マッピングを定義してモデルの状態、入力、および出力の部分集合を選択し、カスタムの制約および目的関数に渡すことができます。詳細については、カスタムの制約と目的関数を使用した操作点の計算を参照してください。
例
Simulink モデルを開きます。
mdl = 'scdindex1';
open_system(mdl)

モデルに操作点の仕様を作成します。
opspec = operspec(mdl);
opspec にはモデルの出力仕様の配列が含まれます。
opspec.Outputs
ans =
y Known Min Max Period PeriodicTolerance
_________________ _________________ _________________ _________________ _________________ _________________
(1.) scdindex1/Out1
0 false -Inf Inf -1 0.0001
(2.) scdindex1/Out2
0 false -Inf Inf -1 0.0001
Out2 の出力仕様のインデックスを取得します。
idx = getOutputIndex(opspec,'scdindex1/Out2')
idx =
2 1
idx の最初の列には、opspec.Outputs 内の出力仕様のインデックスが含まれます。2 列目には出力仕様内での要素インデックスが含まれます。この場合、出力仕様には 1 つの要素のみが含まれます。
Simulink モデルを開きます。
mdl = 'scdplane';
open_system(mdl)

モデルに操作点の仕様を作成します。
opspec = operspec(mdl);
モデルのルートレベルの出力に加え、配列 opspec.Outputs には addoutputspec コマンドを使用して信号に追加された、平衡化の制約の仕様も含まれます。
Aircraft Dynamics Model ブロックの 2 番目の出力端子から発生する信号に出力仕様を追加します。
opspec = addoutputspec(opspec,'scdplane/Aircraft Dynamics Model',2);
opspec の出力配列を表示します。
opspec.Outputs
ans =
y Known Min Max Period PeriodicTolerance
_________________ _________________ _________________ _________________ _________________ _________________
(1.) scdplane/alpha (rad)
0 false -Inf Inf -1 0.0001
(2.) scdplane/Nz Pilot (g)
0 false -Inf Inf -1 0.0001
(3.) scdplane/Aircraft Dynamics Model
0 false -Inf Inf -1 0.0001
追加された出力仕様のインデックスを取得します。特定のブロックの出力端子のうち 1 つのみに出力仕様がある場合、端子番号を指定しなくても出力インデックスを取得できます。
index1 = getOutputIndex(opspec,'scdplane/Aircraft Dynamics Model')
index1 =
3 1
同じブロックの最初の出力から発生する信号に出力仕様を追加します。
opspec = addoutputspec(opspec,'scdplane/Aircraft Dynamics Model',1);
opspec の出力配列を表示します。
opspec.Outputs
ans =
y Known Min Max Period PeriodicTolerance
_________________ _________________ _________________ _________________ _________________ _________________
(1.) scdplane/alpha (rad)
0 false -Inf Inf -1 0.0001
(2.) scdplane/Nz Pilot (g)
0 false -Inf Inf -1 0.0001
(3.) scdplane/Aircraft Dynamics Model
0 false -Inf Inf -1 0.0001
(4.) scdplane/Aircraft Dynamics Model
0 false -Inf Inf -1 0.0001
同じブロックに対応する出力仕様が 2 つになり、それぞれが各出力端子に対応しています。Aircraft Dynamics Model ブロックの出力端子 1 に対応する出力仕様のインデックスを取得します。
index2 = getOutputIndex(opspec,'scdplane/Aircraft Dynamics Model',1)
index2 =
4 1
Simulink モデルを開きます。
mdl = 'scdtmp';
open_system(mdl)

モデルに操作点の仕様オブジェクトを作成します。
opspec = operspec(mdl);
opspec には、ベクトル信号である出力端子 Out1 の出力仕様が含まれます。
opspec.Outputs
ans =
y Known Min Max Period PeriodicTolerance
_________________ _________________ _________________ _________________ _________________ _________________
(1.) scdtmp/Out1
0 false -Inf Inf -1 0.0001
0 false -Inf Inf -1 0.0001
0 false -Inf Inf -1 0.0001
0 false -Inf Inf -1 0.0001
0 false -Inf Inf -1 0.0001
0 false -Inf Inf -1 0.0001
Out1 のすべての要素のインデックスを取得します。
index1 = getOutputIndex(opspec,'scdtmp/Out1')
index1 =
1 1
1 2
1 3
1 4
1 5
1 6
index1 の各行には Out1 内のベクトル信号の 1 要素のインデックスが含まれます。最初の列は、opsepc.Outputs 内での Out1 端子の出力仕様オブジェクトのインデックスです。2 列目は出力仕様内での要素インデックスです。
出力仕様の個々の要素や、要素のサブセットのインデックスを取得することもできます。Out1 の要素番号 4 のインデックスを取得します。
index2 = getOutputIndex(opspec,'scdtmp/Out1',[],4)
index2 =
1 4
Out1 の要素 2 と要素 3 のインデックスを取得します。
index3 = getOutputIndex(opspec,'scdtmp/Out1',[],[2 3])
index3 =
1 2
1 3
入力引数
Simulink モデルの操作点の仕様。OperatingSpec オブジェクトまたは OperatingReport オブジェクトとして指定します。
op の Outputs プロパティ内で出力仕様に対応するブロック パス。次のいずれかのパスを含む文字ベクトルまたは string として指定します。
モデルのルートレベルの出力。
出力仕様が追加されたモデル内の信号のソース ブロック。モデルへの出力仕様の追加の詳細については、
addoutputspecを参照してください。
出力仕様をもつすべてのブロックを表示するには、op の Outputs プロパティを表示します。
op.Outputs
出力端子。[1,N] の範囲の整数として指定します。ここで N は、指定された block の出力端子の数です。block がルートレベルの出力端子である場合、N は 1 です。
port を指定せず、op の出力配列内に指定された block に対応するエントリが 1 つ存在する場合、port の既定値はそのエントリの端子番号になります。指定された block に対応するエントリが出力配列内に複数ある場合、port の既定値は最初のエントリの端子番号になります。例については、信号に追加された平衡化出力仕様のインデックスの取得を参照してください。
op の出力配列の i 番目のエントリの端子番号を表示するには、以下を入力します。
op.Outputs(i).PortNumber
出力要素のインデックス。指定された block の出力の端子幅以下の正の整数、またはそのような整数のベクトルとして指定します。既定では、element を指定しない場合、getOutputIndex は選択された出力仕様のすべての要素のインデックスを返します。例については、複数要素をもつ出力仕様の出力インデックスの取得を参照してください。
出力引数
出力インデックス。element が整数の場合は 2 要素の行ベクトル、element がベクトルの場合は 2 列の配列として返されます。index の各行には単一の出力要素のインデックスが含まれます。
index の最初の列には、op の Outputs プロパティ内で対応する出力仕様のインデックスが含まれます。2 列目には出力仕様内での要素インデックスが含まれます。
index を使用して、Simulink モデルのカスタマイズされた平衡化のためのカスタム マッピングの出力部分を指定できます。詳細については、operspec の CustomMappingFcn プロパティを参照してください。
バージョン履歴
R2017a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)