主要内容

getStateIndex

操作点の仕様の状態要素の邮箱ンデックスを取得

説明

操作点の仕様のプロパティは,各モデル状態の平衡化仕様を含む配列です。金宝app动态仿真模块®モデルのカスタマズされた平衡化のためにマッピング関数を定義する場合,getStateIndexを使用して、対応するブロックパスまたは状態名に基づいて状態仕様の以及ンデックスを取得できます。

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

指数= getStateIndex (人事处的名字は,操作点の仕様人事处プロパティで的名字に対応する状態仕様の邮箱ンデックスを返します。

指数= getStateIndex (人事处的名字元素は,複数の状態をもブロックの状態仕様内にある指定された元素の邮箱ンデックスを返します。

すべて折りたたむ

金宝appSimulinkモデルを開きます。

mdl =“scdindex1”;open_system (mdl)

モデルに操作点の仕様を作成します。

Opspec = operspec(mdl);

opspecにはモデルの状態仕様の配列が含まれます。

opspec。州
ans = < >强x < /强> < >强知道< /强> < >强稳态< /强> < >强Min < /强> <强> Max < /强> < >强dxMin < /强> < >强dxMax < /强> <强> _ < /强> <强> ___ < /强> <强劲 >___________ <强> ___ < /强> <强> ___ < /强> <强> ___ < /强> <强> ___ < / >强(1)scdindex1 /系统化0假真负无穷到正无穷负无穷到正无穷0假真负无穷到正无穷正0错误真的负无穷到正无穷负无穷到正无穷(2)scdindex1 /系统2 0假真负无穷到正无穷负无穷到正无穷

System2ブロックに対応する状態仕様のンデックスを取得します。

index2 = getStateIndex(opspec,“scdindex1 /系统2”
Index2 = 2

index2 (1)は,opspec。州内でのsystem2の状態仕様オブジェクトの管理员邮箱ンデックスです。このブロックは単一の状態をもので,index2は1の行をも,index2 (2)1です。

ブロックに複数の状態がある場合、対応する状態仕様のすべての状態の以及ンデックスを取得できます。

index1 = getStateIndex(opspec,“scdindex1 /系统化”
索引1 = 1 1 1 2 1 3

index1の各行にはsystem2ブロック内の1の状態のンデックスが含まれます。各行の最初の列には,opspec。州内の状態仕様の邮箱ンデックスが含まれます。2列目には仕様内での各状態要素のンデックスが含まれます。

金宝appSimulinkモデルを開きます。

mdl =“scdindex1”;open_system (mdl)

モデルに操作点の仕様を作成します。

Opspec = operspec(mdl);

ブロックに複数の状態がある場合,要素インデックスを指定することで,対応する状態仕様内の特定の状態のインデックスを取得できます。たとえば,system1ブロックの仕様内にある2番目の状態のereplicationンデックスを取得します。

index1 = getStateIndex(opspec,“scdindex1 /系统化”,2)
索引1 = 1

要素インデックスをベクトルとして指定して,ブロックの状態のサブセットのインデックスを取得することもできます。たとえば,系统化ブロックの仕様内にある1番目と3番目の状態のインデックスを取得します。

index2 = getStateIndex(opspec,“scdindex1 /系统化”1, [3])
Index2 = 1 1 1 3

金宝appSimulinkモデルを開きます。

mdl =“scdindex2”;open_system (mdl)

System1ブロックは,位置速度加速度という名前付きの3状態をも。

モデルに操作点の仕様を作成します。

Opspec = operspec(mdl);

操作点の仕様オブジェクトのプロパティは,system1にある名前付きの各状態に1。

opspec。州
ans = < >强x < /强> < >强知道< /强> < >强稳态< /强> < >强Min < /强> <强> Max < /强> < >强dxMin < /强> < >强dxMax < /强> <强> _ < /强> <强> ___ < /强> <强劲 >___________ <强> ___ < /强> <强> ___ < /强> <强> ___ < /强> <强> ___ < / >强(1)位置0错误真的负无穷到正无穷负无穷到正无穷(2)速度0错误真的负无穷到正无穷负无穷到正无穷(3)加速0假真负无穷到正无穷负无穷到正无穷

ブロック内の名前付きの状態に対応する状態仕様のンデックスを取得するには,状態名を指定します。

index1 = getStateIndex(opspec,“速度”
Index1 = 2

index1の最初の列には,opspec。州プロパティ内の対応する状態仕様の邮箱ンデックスが含まれます。2列目は,名前付き状態の1です。

モデルを開きます。

mdl =“scdTanks_simscape”;open_system (mdl)

モデルに操作点の仕様を作成します。

Opspec = operspec(mdl);

操作点の仕様オブジェクトのプロパティは,モデル内の各Simscape状態に1。

Simscape状態に対応する仕様の,ンデックスを取得するには,状態名を指定します。たとえば,Tank3の圧力状態の。

idx = getStateIndex(opspec,“scdTanks_simscape.Tank3.pressure”
Idx = 18

idxの最初の列には,opspec。州内の対応する状態仕様の邮箱ンデックスが含まれます。2列目はSimscape状態の1です。

opspec。州でのこの状態の仕様を表示します。

opspec.States (idx (1))
ans = < >强x < /强> < >强知道< /强> < >强稳态< /强> < >强Min < /强> <强> Max < /强> < >强dxMin < /强> < >强dxMax < /强> <强> _ < /强> <强> ___ < /强> <强劲 >___________ <强> ___ < /强> <强> ___ < /强> <强> ___ < /强> <强> ___ < / >强(1)scdTanks_simscape.Tank3。压力0假真-Inf Inf -Inf Inf

入力引数

すべて折りたたむ

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

人事处プロパティ内で状態仕様に対応するブロックパスまたは状態名。次のいずれかのパスを含む文字ベクトルまたはstringとして指定します。

  • 金宝appSimulinkモデル内にある名前なしの状態を含むブロックのブロックパス。

  • 金宝appSimulinkブロックまたはSimscape™ブロック内にある名前付きの状態の名前。

状態仕様をもすべての状態を表示するには,人事处プロパティを表示します。

op.States

状態要素の邮箱ンデックス。的名字で指定されたブロックまたは状態内にある状態要素の数以下の正の整数,またはそのような整数のベクトルとして指定します。既定では,元素を指定しない場合,getStateIndexは選択された状態仕様のすべての要素の邮箱ンデックスを返します。例にいては,操作点の仕様の指定された状態要素の邮箱ンデックスの取得を参照してください。

出力引数

すべて折りたたむ

状態邮箱ンデックス。元素が整数の場合は2要素の行ベクトル,元素がベクトルの場合は2列の配列として返されます。指数の各行には単一のモデル状態の邮箱ンデックスが含まれます。

指数の最初の列には,人事处プロパティ内の対応する状態仕様の邮箱ンデックスが含まれます。2列目には状態仕様内での要素ンデックスが含まれます。

指数を使用して,金宝app仿真软件モデルのカスタマイズされた平衡化のためのカスタムマッピングの状態部分を指定できます。詳細にいては,operspecCustomMappingFcnプロパティを参照してください。

バジョン履歴

R2017aで導入