Main Content

viewSurf

スケジューリング変数の関数としてのゲイン曲面の可視化

説明

viewSurf(GS) は、1 次元または 2 次元のゲイン曲面の値をスケジューリング変数の関数としてプロットします。GS は調整可能なゲイン曲面で、tunableSurface で作成します。プロットでは、GS.SamplingGrid で指定された独立変数の値が使用されます。2 次元のゲイン曲面の場合、GS.SamplingGrid の設計点は四角形のグリッド上になければなりません。

viewSurf(GS,xvar,xdata) は、xdata でリストされたスケジューリング変数の値のゲイン曲面 GS をプロットします。変数名 xvarGS.SamplingGrid のスケジューリング変数名と一致しなければなりません。ただし、xdata の値は GS.SamplingGrid の設計点と一致しなくてかまいません。

2 次元のゲイン曲面の場合、プロットで表示されるのはパラメトリックな曲線群で、他のスケジューリング変数の値ごとに 1 つの曲線がプロットされます。2 次元の場合、GS.SamplingGrid の設計点は四角形のグリッド上になければなりません。

viewSurf(GS,xvar,xdata,yvar,ydata) は、ndgrid(xdata,ydata) で表されるスケジューリング変数の値のグリッドで評価した 2 次元のゲイン曲面の表面プロットを作成します。この場合、GS の設計点が四角形のグリッド上にある必要はなく、xdataydata の設計点が一致する必要もありません。

すべて折りたたむ

2 つの独立変数に依存する調整可能なゲイン曲面を表示します。

2 つのスケジューリング変数 α および V に次のように双線形従属する、スカラー ゲイン K をモデル化します。

K(α,V)=K0+K1x+K2y+K3xy.

ここで、xy は正規化されたスケジューリング変数です。α は 0 ~ 15 度の範囲の入射角で、V は 300 ~ 600 m/s の範囲の速度であると仮定します。xy は次のように表されます。

x=α-7.57.5,y=V-450150.

係数 K0,...,K3 は、この変数ゲインの調整可能なパラメーターです。tunableSurface を使用してこの変数ゲインをモデル化します。

[alpha,V] = ndgrid(0:1.5:15,300:30:600); 
domain = struct('alpha',alpha,'V',V);
shapefcn = @(x,y) [x,y,x*y];
K = tunableSurface('K',1,domain,shapefcn);

一般的には、制御システムの一部として係数を調整します。その後、setBlockValue または setData を使用して調整後の係数を K に書き戻し、調整されたゲイン曲面を表示します。この例では、調整する代わりに係数をゼロ以外の値に手動で設定し、結果のゲインを表示しています。

Ktuned = setData(K,[100,28,40,10]);
viewSurf(Ktuned)

Figure contains an axes object. The axes object with title Gain K(alpha,V), xlabel alpha, ylabel V contains an object of type surface.

viewSurf を実行すると、domain で指定され Ktuned.SamplingGrid に格納されている値の範囲に対し、ゲイン曲面がスケジューリング変数の関数として表示されます。

ゲイン曲面で指定された点とは別の設計点で評価した 1 次元のゲイン曲面を表示します。

tunableSurface を使用してゲイン曲面を作成するときは、ゲイン係数を調整する設計点を指定します。これらの点は、一般的には、プラントをサンプリングまたは線形化したスケジューリング変数の値になります。ただし、指定された設計点とは別のブレークポイントをもつルックアップ テーブルとしてゲイン曲面を実装する場合もあります。この例では、一連の設計点をもつゲイン曲面を作成し、それとは別の一連のスケジューリング変数の値を使用して曲面を表示します。

1 つのスケジューリング変数 t の二次関数として変化するスカラー ゲインを作成します。t = 0 から t = 40 まで、5 秒ごとにプラントを線形化してあると仮定します。

t = 0:5:40;
domain = struct('t',t);
shapefcn = @(x) [x,x^2];
GS = tunableSurface('GS',1,domain,shapefcn);

一般的には、制御システムの一部として係数を調整します。この例では、調整する代わりに係数をゼロ以外の値に手動で設定しています。

GS = setData(GS,[12.1,4.2,2]);

別の一連の時間の値で評価したゲイン曲面をプロットします。

tvals = [0,4,11,18,25,32,39,42];
viewSurf(GS,'t',tvals)

Figure contains an axes object. The axes object with title Gain GS(t), xlabel t, ylabel GS contains an object of type line.

このプロットでは、domain で指定された設計点ではなく、tvals で指定された点で折れ曲がったゲイン曲線が表示されます。また、tvals には、domain のスケジューリング変数の範囲から外れた値も含まれています。外挿の範囲が調整に使用された値の範囲から離れすぎていると、警告が表示されます。

2 つの独立変数に依存するゲイン曲面について、ゲイン曲面の値を 1 つの独立変数の関数としてプロットします。

2 つの独立変数 α および V の双一次関数であるゲイン曲面を作成します。

[alpha,V] = ndgrid(0:1.5:15,300:30:600);
domain = struct('alpha',alpha,'V',V);
shapefcn = @(x,y) [x,y,x*y];
GS = tunableSurface('GS',1,domain,shapefcn);

一般的には、制御システムの一部として係数を調整します。この例では、調整する代わりに係数をゼロ以外の値に手動で設定しています。

GS = setData(GS,[100,28,40,10]);

選択した V の値でゲインをプロットします。

Vplot = [300:50:600];
viewSurf(GS,'V',Vplot);

Figure contains an axes object. The axes object with title Gain GS(V), xlabel V, ylabel GS contains 11 objects of type line.

viewSurf は、指定された V の値でゲイン曲面を評価し、domain 内の α のすべての値について V への依存関係をプロットします。プロットのいずれかのラインをクリックすると、対応する α の値が表示されます。このプロットは、1 つの独立変数によるゲインの全範囲の変動を可視化する場合に便利です。

ゲイン曲面で指定された設計点とは別のスケジューリング変数の値で評価した 2 次元のゲイン曲面を表示します。

tunableSurface を使用してゲイン曲面を作成するときは、ゲイン係数を調整する設計点を指定します。これらの点は、一般的には、プラントをサンプリングまたは線形化したスケジューリング変数の値になります。ただし、指定された設計点とは別のブレークポイントをもつルックアップ テーブルとしてゲイン曲面を実装する場合もあります。この例では、一連の設計点をもつゲイン曲面を作成し、それとは別の一連のスケジューリング変数の値を使用して曲面を表示します。

2 つの独立変数 α および V の双一次関数であるゲイン曲面を作成します。

[alpha,V] = ndgrid(0:1.5:15,300:30:600);
domain = struct('alpha',alpha,'V',V);
shapefcn = @(x,y) [x,y,x*y];
GS = tunableSurface('GS',1,domain,shapefcn);

一般的には、制御システムの一部として係数を調整します。この例では、調整する代わりに係数をゼロ以外の値に手動で設定しています。

GS = setData(GS,[100,28,40,10]);

選択した α および V の値でゲインをプロットします。

alpha_vec = [7:1:13];
V_vec = [500:25:625];
viewSurf(GS,'alpha',alpha_vec,'V',V_vec);

Figure contains an axes object. The axes object with title Gain GS(alpha,V), xlabel alpha, ylabel V contains an object of type surface.

ゲイン曲面を評価するブレークポイントは、domain で指定された範囲内でなくてもかまいません。ただし、ゲインを評価する範囲が調整に使用された範囲から離れすぎていると、警告が表示されます。

ブレークポイントは等間隔にする必要もありません。また、スケジューリング変数を任意の順序で指定することで曲面の形状を異なる視点から確認できます。最初に指定した変数がプロットの X 軸として使用されます。

alpha_vec2 = [1,3,6,10,15];
V_vec2 = [300,350,425,575];
viewSurf(GS,'V',V_vec2,'alpha',alpha_vec2);

Figure contains an axes object. The axes object with title Gain GS(V,alpha), xlabel V, ylabel alpha contains an object of type surface.

入力引数

すべて折りたたむ

プロットするゲイン曲面。tunableSurface オブジェクトとして指定します。GS は 1 つまたは 2 つのスケジューリング変数に依存し、スカラー値でなければなりません。

プロットの X 軸の変数。文字ベクトルとして指定します。変数名 xvarGS.SamplingGrid のスケジューリング変数名と一致しなければなりません。

ゲイン曲面を評価してプロットする X 軸の変数の値。数値ベクトルとして指定します。

プロットの Y 軸の変数。文字ベクトルとして指定します。変数名 yvarGS.SamplingGrid のスケジューリング変数名と一致しなければなりません。

ゲイン曲面を評価してプロットする Y 軸の変数の値。数値ベクトルとして指定します。

バージョン履歴

R2015b で導入