最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

getGoal

指定された設計点で可変調整目標を評価する

複数の操作条件のコントローラーを調整する場合、varyingGoal で調整目的を設計点の関数として調整できます。getGoal を使用して、特定の設計点で、またはサンプリング変数の特定の値で可変目標を評価します。

構文

TG = getGoal(VG,'index',k)
TG = getGoal(VG,'index',k1,k2,...)
TG = getGoal(VG,'value',x1,x2,...)

説明

TG = getGoal(VG,'index',k) は、k 番目の設計点における実効調整目標を返します。絶対インデックス k は、可変目標 VGParameters プロパティにあるパラメーター値の配列を基準とします。VG.SamplingGrid を指定した場合、k はそのプロパティの設計点のグリッドを基準とします。

TG = getGoal(VG,'index',k1,k2,...) は、座標 (k1,k2,...) の設計点の実効調整目標を返します。この座標は VG.ParametersVG.SamplingGrid の多次元配列のインデックスです。設計グリッドに複数のスケジューリング変数が含まれる場合には、この構文が有用です。

TG = getGoal(VG,'value',x1,x2,...) は、スケジューリング変数の値が (x1,x2,...) である設計点の実効調整目標を返します。この構文は、VG.SamplingGrid に設計点を指定した場合にのみ使用します。たとえば、VG.SamplingGrid に設計点 (a,b) のグリッドを指定する場合、TG = getGoal(VG,'value',-1,3) は設計点 (a,b) = (-1,3) の調整目標を返します。(x1,x2,...)VG.SamplingGrid のどの点にも一致しない場合、getGoal は相対的な最近傍点を返します。

すべて折りたたむ

次の 5 行 5 列の設計点グリッドを使用してコントローラーを調整すると仮定します。

[alpha,V] = ndgrid(linspace(0,20,5),linspace(700,1300,5));

設計点のグリッドにわたって変化する、'u' という信号でのゲイン余裕と位相余裕を指定する可変調整目標を作成します。

[GM,PM] = ndgrid(linspace(7,20,5),linspace(45,70,5));
FH = @(gm,pm) TuningGoal.Margins('u',gm,pm);
VG = varyingGoal(FH,GM,PM);

グリッドを使用して VGSamplingGrid プロパティを指定します。

VG.SamplingGrid = struct('alpha',alpha,'V',V);

この可変設計目標を (alpha,V) = (5,1150) で評価します。この点は 2 番目の alpha 値と 4 番目の V 値です。したがって、varyingGoal のインデックスとして (k1,k2) = (2,4) を使用できます。

TGi = getGoal(VG,'index',2,4);

調整目標を求める特定の (alpha,V) 値がわかっているので、インデックスの代わりにこれらの値を使用できます。

TGv = getGoal(VG,'value',5,1150)
TGv = 
  Margins with properties:

      GainMargin: 10.2500
     PhaseMargin: 63.7500
    ScalingOrder: 0
           Focus: [0 Inf]
        Location: {'u'}
          Models: 17
        Openings: {0x1 cell}
            Name: ''

入力引数

すべて折りたたむ

可変調整目標。varyingGoal オブジェクトとして指定します。VG は、ゲイン スケジュール調整用の設計点グリッドにおける調整目標の変動を捉えます (tunableSurface を参照)。

設計点グリッドのインデックス。整数として指定します。1 つの整数インデックス k または複数のインデックス k1,k2,... を指定できます。

単一のインデックス k を指定した場合、getGoalkVG.Parameters のパラメーター配列または設計点を指定する VG.SamplingGrid の構造体の線形インデックスとして扱います。

  • VG が 1 次元サンプリング グリッド (1 つのスケジューリング変数) 上で変化する場合、TG = getGoal(VG,'index',k) は、VG.Parametersk 番目のエントリの調整目標を返します。

  • VG が 2 つ以上のスケジューリング変数によって変化する場合、TG = getGoal(VG,'index',k) は、グリッド内の線形インデックスで定義される k 番目のエントリを返します (配列インデックス付け (MATLAB)を参照)。

複数のインデックス k1,k2,... を指定した場合、getGoal は、これを VG.Parameters または VG.SamplingGrid の多次元配列のインデックスとして扱います。

設計点での変数値。スカラーとして指定します。入力 x1,x2,... を使用してスケジューリング変数値の特定セットの調整目標を取得します。システムに存在するスケジューリング変数と同じ数の値を指定してください。たとえば、操作条件が 2 つのスケジューリング変数 (a,b) で記述される場合、調整目標を抽出する (a,b) の値を指定するには、(x1,x2) を使用します。

出力引数

すべて折りたたむ

指定された設計点での調整目標。TuningGoal オブジェクトとして返されます。調整目標のいずれかが指定の設計点で NaN である場合、TG = [] です (varyingGoal を参照)。

R2017b で導入