主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

tunableSurface

ゲインスケジューリング用の調整可能なゲイン曲面の作成

説明

tunableSurfaceでは,“ゲインスケジュール”をパラメーター化して調整できます。ゲインスケジュールとは,1つ以上のスケジューリング変数の関数として変化するゲインです。

調整を行う際には,変数ゲインを次の形式の滑らかな“ゲイン曲面”としてパラメーター化すると便利です。

K n σ γ K 0 + K 1 F 1 n σ + ... + K F n σ

ここで

  • σはスケジューリング変数のベクトル。

  • n(σ)は正規化関数(出力引数K归一化プロパティを参照)。

  • γはスケーリング係数(出力引数K归一化プロパティを参照)。

  • F1F、…はユーザーが選択する基底関数。

  • K0,……,Kは調整する係数。

基底関数には汎用的な多項式展開の項を使用できます。また,K(σ)の想定される形状がわかっていれば,より具体的な関数も使用できます。その後,設計要件に合わせて,スケジューリング変数の値の範囲内で,systuneを使用して係数K0,……,Kを調整できます。

K= tunableSurface (的名字K0initshapefcnは,調整可能なゲイン曲面を作成します。

K n σ γ K 0 + K 1 F 1 n σ + ... + K F n σ

調整可能な曲面Kには、shapefcnで指定される基底関数と,で表されるσ値("設計点")の離散集合が格納されます。調整可能なゲイン曲面には、調整可能な係数 K0,……,Kがあります。ゲイン値は定数ゲインK0initに初期化されます。Kを静的または動的な他の要素と組み合わせることで,ゲインスケジュール制御システムの閉ループモデルを構築できます。あるいは,Kを使用して,金宝app仿真软件®モデルに対するslTunerインターフェイスでルックアップテーブルをパラメーター化します。その後,選択した設計点において閉ループ システムが設計要件を満たすように、systuneを使用してK0,……,Kを調整します。

K= tunableSurface (的名字K0initは,一定の調整可能なゲインをもつ平面を作成します。この構文は,K0init tunableGain(名称)と等価です。

すべて折りたたむ

tの二次関数として変化するスカラーゲインKを作成します。

K t K 0 + K 1 n t + K 2 n t 2

このゲイン曲面で時間と共に変化するゲインを表現できます。係数 K 0 K 1 K 2 は,この時変ゲインの調整可能なパラメーターです。この例では,tが 0から 40まで変化すると仮定します。この場合、正規化関数は n t t - 2 0 / 2 0 です。

調整可能なゲイン曲面Kt)をMATLAB®で表現するには,まず,システムの設計点であるt値のベクトルを選びます。たとえば,設計点が時変システムの時間 t = 0 から t = 40 までの 5 秒おきのスナップショットである場合、次のサンプリング グリッドを使用します。

t = 0:5:40;域=结构(“t”t);

変数ゲインの二次関数を指定します。

Shapefcn = @(x) [x,x^2];

shapefcnは無名ベクトル関数のハンドルです。このベクトルの各要素が,変数ゲインを記述する多項式展開の項になります。tunableSurfaceでは定数関数 f 0 t 1 が暗黙的に仮定されるため,この関数をshapefcnに含める必要はありません。

調整可能なゲイン曲面Kt)を作成します。

K=可调表面(“K”1域shapefcn)
K =标量增益的可调谐曲面“K”,具有:*调度变量:t *基函数:t,t^2 *设计点:1x9 t值网格*标准化:默认(从设计点开始)

設計点や基底関数など,ゲイン曲面の特性の概要が表示されます。Kのプロパティを調べます。

得到(K)
BasisFunctions: @(x)[x,x^2] Coefficients: [1x3 realp] SamplingGrid: [1x1 struct] normalize: [1x1 struct] Name: 'K'

調整可能な曲面の系数プロパティは,調整可能な係数の配列 K 0 K 1 K 2 であり,配列値のrealpブロックとして格納されます。

これで,この調整可能な曲面を制御システムモデルで使用できます。MATLABで調整する場合は、制御設計ブロックを使用して調整可能な制御システム モデルを作成する場合と同じように、Kを制御システムの他の要素と相互接続します。金宝app仿真软件®で調整する場合は,setBlockParamを使用して,KslTunerインターフェイスにおける調整可能なブロックのパラメーター化にします。systuneを使用してモデルまたはslTunerインターフェイスを調整すると,結果のモデルまたはインターフェイスには係数 K 0 K 1 K 2 の調整後の値が格納されます。

係数を調整した後は,viewSurfコマンドを使用して結果のゲイン曲線の形状を表示できます。この例では,調整する代わりに係数をゼロ以外の値に手動で設定しています。結果のゲインを時間の関数として表示します。

Ktuned = setData (K, [12.1, 4.2, 2]);viewSurf (Ktuned)

图中包含一个坐标轴。标题为增益K(t)的轴包含一个类型为line的对象。

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

この例では2つのスケジューリング変数に双線形従属する,スカラーゲインKをモデル化する方法を説明します。そのためには2つの変数の独立した依存関係を表す設計点のグリッドを作成します。

最初の変数αは 0 ~ 15 度の範囲の入射角で、2.番目の変数Vは 300~600m/sの範囲の速度であると仮定します。既定では、正規化された変数が以下のようになります。

x α - 7 5 7 5 y V - 4 5 0 1 5 0

ゲイン曲面は次のようにモデル化されます。

K α V K 0 + K 1 x + K 2 y + K 3. x y

ここで K 0 K 3. は調整可能なパラメーターです。

αおよびVに線形に等間隔な設計点のグリッド(αV)を作成します。これらの設計点は,ゲイン曲面の係数の調整に使用されるスケジューリング変数の値です。プラントをサンプリングしたパラメーターの値と対応していなければなりません。

(α,V) = ndgrid (0:3:15,300:50:600);

これらの配列αおよびVは2つのスケジューリング変数の独立した変化を,それぞれが全範囲にわたって表します。これらを構造体に含めて,調整可能な曲面の設計点を定義します。

域=结构(“阿尔法”α,“V”, V);

双一次展開を記述する基底関数を作成します。

Shapefcn = @(x,y) [x,y,x*y];%或使用多基('canonical',1,2)

shapefcnから返された配列内にある基底関数は,次のとおりです。

F 1 x y x F 2 x y y F 3. x y x y

調整可能なゲイン曲面を作成します。

K=可调表面(“K”1域shapefcn);

調整可能な曲面は,パラメーター化として,金宝app仿真软件モデルのルックアップテーブルブロックまたはMATLAB函数ブロックで使用できます。あるいは,モデル相互接続コマンドを使用して,MATLABでモデル化された制御システムに調整可能な要素として組み込みます。係数の調整の後は,viewSurfコマンドを使用して結果のゲイン曲面を調べることができます。この例では、調整する代わりに係数をゼロ以外の値に手動で設定し、結果のゲインを表示しています。

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

图中包含一个坐标轴。标题为增益K(alpha,V)的轴包含一个类型为surface的对象。

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

操作領域において規則的なグリッドを形成しない設計点を使用してゲイン曲面を作成します。ゲイン曲面は,正規化されたスケジューリング変数 α N および β N の双一次関数として変化します。

K α N β N K 0 + K 1 α N + K 2 β N + K 3. α N β N

スケジューリング変数の対象とする値が、次の α β のペアであると仮定します。

α β - 0 9 0 0 5 - 1 5 0 6 - 1 5 0 9 5 - 2 5 0 5 - 3. 2 0 7 - 3. 9 0 3.

α β のサンプル値をベクトルとして指定します。

α= (-0.9;-1.5;-1.5;-2.5;-3.2;-3.9);β= [0.05;0.6;0.95;0.5;0.7;0.3);域=结构(“阿尔法”α,“β”,β);

ここでは, α β の値の規則的なグリッドではなく, α β 空間の等間隔でないポイントでシステムをサンプリングします。

情节(α,β,“哦”

图中包含一个坐标轴。轴包含一个线型对象。

基底関数を指定します。

Shapefcn = @(x,y) [x,y,x*y];

これらのサンプリングした関数の値を使用して,ゲイン曲面の調整可能なモデルを作成します。

K=可调表面(“K”1域shapefcn)
K=标量增益的可调表面“K”:*调度变量:α,β*基函数:α,β,α*β*设计点:6x1(α,β)值网格*归一化:默认值(从设计点开始)

領域は6組の α β のペアのリストになります。既定では, α β は正規化によって各変数の範囲の中心が0になるようシフトされ,範囲が1 ~ 1になるようにスケーリングされます。

K.Normalization
ans =结构体字段:input: [-2.4000 0.5000] InputScaling: [1.5000 0.4500] OutputScaling: 1

2つのスケジューリング変数を受け取って3行3列のゲイン行列を返す調整可能なゲイン曲面を作成します。ゲイン行列の各エントリは,2つのスケジューリング変数の独立した関数です。

設計点のグリッド(α,V)を作成します。

(α,V) = ndgrid (0:3:15,300:50:600);域=结构(“阿尔法”α,“V”, V);

曲面がスケジューリング変数によってどのように変化するかを記述する基底関数を作成します。αVで双一次展開を記述する基底を使用します。

shapefcn = polyBasis (“规范”、1、2);

調整可能な曲面を作成するには、行列値のゲイン曲面の初期値を指定します。この値は、正規化されたスケジューリング変数がともに 0である場合のゲイン曲面の値を設定します。tunableSurfaceは,指定した初期値からゲイン曲面の次元を取得します。したがって3行3列のゲイン行列を作成するには,3行3列の初期値を使用します。

K0init = diag([0.05 0.05 -0.05]);K0 = tunableSurface (“K”,K0init,域,shapefcn)
K0 = 3x3增益矩阵的可调曲面“K”:*调度变量:alpha,V *基函数:@(x1,x2)utFcnBasisOuterProduct(FDATA_,x1,x2) *设计点:(alpha,V)值的6x7网格*标准化:默认(从设计点)

入力引数

すべて折りたたむ

調整可能なゲイン曲面を識別するラベル。文字ベクトルとして指定します。tunableSurfaceでは,曲面の調整可能な係数を表すrealpブロックにこの名前を使用します。したがって,制御システムの一族モデルやslTunerインターフェイスでは,この名前を使用して調整可能なゲイン係数を参照できます。

調整可能なゲイン曲面の定数項の初期値。スカラーまたは配列として指定します。K0initの次元により,ゲイン曲面のI / O次元が決まります。たとえば,ゲイン曲面で 2 入力 2 出力のゲインを表す場合、K0init = 1 (2)と設定できます。残りの係数K1, K2,…は,常にK0と同じサイズになります。調整可能な係数は,それぞれのI / Oチャネルのゲインを個別に調整できるように,自動的に展開されます。

たとえば2入力2出力の曲面の場合,ゲイン行列の各要素に対する一連の展開係数があります。

調整可能なゲイン行列K (n(σ))の各要素Kijは次のようになります。

K j n σ K j 0 + K j 1 F 1 n σ + ... + K j F n σ

ゲイン曲面を調整する設計点。構造体として指定します。この構造体のフィールドに,ゲインスケジュール調整用にプラントをサンプリングするスケジューリング変数の値を格納します。たとえば2つのスケジューリング変数αおよびVの関数として変化するゲインを調整するとします。αとVの値のグリッドで、α = [0.5,0.10,0.15] および V = [700,800,900,1000] としてプラントを線形化します。

.設計点を次のように指定します。

(α,V) = ndgrid((0.5, 0.10, 0.15),(700800900、1000));域=结构(“阿尔法”α,“V”, V);

設計点は四角形または等間隔のグリッド上になくてもかまいません(不規則なグリッドのゲイン曲面を参照)。ただし、最適な結果を得るために、操作条件の全範囲をカバーする設計点を使用してください。調整時はこれらの設計点しか考慮されないため、設計点と大きく異なる操作条件においては調整後のゲイン スケジュールの有効性に問題が生じます。

スケジューリング変数でゲイン曲面をモデル化するのに使用する基底関数。関数ハンドルとして指定します。ハンドルに関連付けられた関数は,スケジューリング変数の正規化された値を入力として受け取り,基底関数の値のベクトルを返します。基底関数は常に正規化された範囲[1]で演算を行います。tunableSurfaceは,スケジューリング変数をこの区間に暗黙的に正規化します。

たとえば,スケジューリング変数の値がα=(0.5,0.10,0.15)およびV =(700800900、1000)であるとします。次の式では,これらの変数において双一次のゲイン曲面に対する基底関数を作成しています。

Shapefcn = @(x,y) [x y x*y];

shapefcnは2変数の無名関数です。基底関数はパラメーター化されたゲイン G α V G 0 + G 1 α N + G 2 V N + G 3. α N V N を記述します。ここで,αNとVNは正規化されたスケジューリング変数です(K归一化プロパティを参照)。

無名関数を使用すると,変数ゲインを記述するために必要な一連の基底関数を任意に指定できます。また,一般的に使用される展開については,次の補助関数を使用して基底関数を自動的に生成することもできます。

  • polyBasis— べき級数展開およびチェビシェフ展開。

  • fourierBasis——周期的なフーリエ級数展開。fourierBasisでは周期的な基底関数が生成され,それらの関数で定義されるゲイン曲面KはK (1) = K (1)を満たします。tunableSurfaceを使用してゲイン曲面を作成する場合,で指定したスケジューリング変数の範囲は区間[1]に正規化されます。したがって,周期的な基底関数を使用する場合は,対応するスケジューリング変数のサンプリング範囲が厳密に1つの区間と一致していなければなりません。この制限により,基底関数の周期性がスケジューリング変数の周期性と一致するようになります。たとえば,定期的に変化するスケジューリング変数が0 ~ 2πの範囲の角度である場合,の対応する値の範囲も0 ~ 2πでなければなりません。

  • ndBasis——低次元の展開からの多次元展開の作成。この関数は,スケジューリング変数ごとに異なる基底関数を使用する場合に便利です。

これらの関数で生成される基底関数の詳細については,それぞれの関数のリファレンスページを参照してください。

出力引数

すべて折りたたむ

調整可能なゲイン曲面。tunableSurfaceオブジェクトとして返されます。このオブジェクトには,ゲイン曲面の係数、基底関数,その他の情報を格納する次のプロパティがあります。

  • BasisFunctions— 基底関数。関数ハンドルとして指定されます。ゲイン曲面の作成時、shapefcn入力引数でこのプロパティの初期値が設定されます。

  • 系数——ゲイン曲面の調整可能な係数。配列値の調整可能なパラメーターrealpとして指定されます。K0initの次元とshapefcnの基底関数の数によって、K.Coefficientsの次元が決まります。

    スカラーゲインの場合,K.Coefficientsの次元は(1) M + 1)は基底関数の数)になります。K.Coefficients内の要素は,調整可能な係数K0,……,Kに対応します。

    配列値ゲインの場合,各係数がK0initの次元に展開されます。これらの展開された係数はK.Coefficientsで水平方向に連結されます。したがって,たとえば2入力2出力のゲイン曲面の場合,K.Coefficientsの次元は(2, 2 (M + 1))になります。

    調整可能なゲイン行列K (n(σ))の各要素Kijは次のようになります。

    K j n σ K j 0 + K j 1 F 1 n σ + ... + K j F n σ

  • SamplingGrid——設計点のグリッド。データ構造体として指定されます。ゲイン曲面の作成時,入力引数でこのプロパティの初期値が設定されます。

  • 归一化——正規化オフセットおよびスケーリング。次のフィールドをもつ構造体として指定されます。

    • InputOffset——各スケジューリング変数のオフセットのベクトル。

    • InputScaling——各スケジューリング変数のスケーリング係数のベクトル。

    • 输出缩放——全体のゲインのスケーリング係数。

    一般的に,tunableSurfaceのパラメーター化は次の形式を取ります。

    K σ 输出缩放 K 0 + K 1 F 1 n σ + + K F n σ

    ここで n(σ)は、次で与えられる正規化されたスケジューリング変数です。

    n σ σ InputOffset InputScaling

    tunableSurfaceは,スケジューリング変数を正規化してその数値範囲を圧縮し,最適化プロセスの数値的安定性を改善します。既定では输出缩放= 1で,tunableSurfaceは、各スケジューリング変数のSamplingGrid領域を[1]にマッピングするInputOffsetInputScalingの値を計算します。したがって,設計点範囲の中心でn = 0になります。

    これらのフィールドの値を調整することで,既定の正規化を変更できます。以下に例を示します。

    • 特定の設計点に対して既知のゲイン値がある場合,設計点でn = 0となる规范化。InputOffsetを設定できます。その後,K0initを既知のゲイン値に設定します。

    • スケジューリング変数を非負の値に制限する場合,规范化。InputOffsetを設計グリッドにおけるその変数の最小値に設定します。この制限は,たとえば基底関数が σ を含む場合などに有用です。

  • 的名字——ゲイン曲面の名前。文字ベクトルとして指定されます。ゲイン曲面の作成時、的名字入力引数でこのプロパティの初期値が設定されます。

ヒント

  • MATLAB®でモデル化された制御システムでゲイン曲面を調整する場合:の設計点に対応するプラントモデルの配列でゲイン曲面を接続します。たとえば,Gがそのような配列になっていて,Kが変数の積分時間を表しているとします。次のコマンドにより、systuneコマンドで調整可能な閉ループモデルが作成されます。

    C0 = tf(K,[1 0]);T0 =反馈(C0 * G, 1);
  • 金宝app模拟でモデル化された制御システムでゲイン曲面を調整する場合: ゲイン曲面を使用して、模拟モデルのルックアップ テーブル、行列内挿、またはMATLAB函数ブロックをパラメーター化します。たとえば,Simulink モデルに対するslTunerインターフェイスがST0で,インターフェイスの調整ブロックの名前がGainTableであるとします。次のコマンドにより,調整可能なゲイン曲面へのGainTableのパラメーター化が設定されます。

    ST0 = setBlockParam (ST0,“GainTable”、K);

    詳細については、ゲインスケジュールのパラメーター化を参照してください。

  • writeBlockValue(金宝app仿真软件控制设计)を使って調整されたゲイン曲面を仿金宝app真软件モデルに書き戻す場合,ソフトウェアはcodegenを使用してゲイン曲面のMATLABコードを生成します。codegenを手動で使用して,このコードを確認することができます。

R2015bで導入