ゲイン スケジュール コントローラー調整のプラント モデル
ゲイン スケジューリングは非線形プラントを制御するための制御方法です。ゲイン スケジュール制御システムを調整するには、選択した設計点の近くで非線形ダイナミクスを近似する線形モデルの集合が必要です。一般に、プラントのダイナミクスは次の形式をとる非線形の微分方程式によって記述されます。
ここで x は状態ベクトル、u はプラント入力、y はプラント出力です。これらの非線形微分方程式は、特定のシステムについて明示的に知られていることがあります。より一般的には、Simulink® モデルなどを使用して暗黙的に指定されます。
これらの非線形ダイナミクスを、スケジューリング変数 σ でパラメーター化された操作点群 (x(σ),u(σ)) でのプラントの局所的な動作を記述する、線形モデル群に変換することができます。定格操作条件からの偏差は次のように定義されます。
これらの偏差は、"線形パラメーター変動" ダイナミクスにより 1 次に制御されます。
非線形ダイナミクスに対するこの一連の線形近似を線形パラメーター変動 (LPV) モデルと呼びます。
LPV モデルは、時間、操作条件またはその他のスケジューリング変数による線形化プラント ダイナミクスの変化を表します。たとえば、航空機のピッチ軸ダイナミクスは、入射角 α、飛行速度 V および高度 h に依存する LPV モデルよって近似できます。
実際には、このプラント モデル群を σ 値の適切なグリッドについて取得される線形モデルの有限集合で置き換えます。この置き換えによって、LPV ダイナミクスが操作範囲全体でサンプリングされ、σ 値の代表的なセット、つまり "設計点" が選択されます。
ゲイン スケジュール コントローラーは、設計点間でプラントのダイナミクスが滑らかに変化するときに最良の結果をもたらします。
線形モデル群の取得
この線形モデル群がない場合、次のようにいくつかの方法で取得できます。
Simulink モデルがある場合は、設計点でモデルを平衡化して線形化。
Simulink モデルをパラメーター変動を使用して線形化。
スケジューリング変数が時間の場合は、一連のシミュレーション スナップショットでモデルを線形化。
プラントを表す非線形微分方程式がある場合は、設計点でこれらを線形化。
ゲイン スケジュールを調整するには、線形モデル群を取得した後に、これらを slTuner
インターフェイスに関連付けて、調整可能な閉ループ モデル群を構築しなければなりません。そのためには、slTuner インターフェイスでの複数の設計点の説明に従ってブロック置換を使用します。
設計点での線形化によるゲイン スケジューリングの設定
この例は、ゲイン スケジュール コントローラーの調整のために一連の設計点でプラント モデルを線形化する方法を示します。この例では次に、結果の線形化モデルを使用して、ゲイン スケジュールを調整するための slTuner
インターフェイスを設定します。
rct_CSTR
モデルを開きます。
mdl = 'rct_CSTR';
open_system(mdl)
このモデルでは Concentration controller
と Temperature controller
の両方が出力濃度 Cr
に依存します。このゲイン スケジュール システムを調整用にセットアップするには、スケジューリング パラメーター Cr
のさまざまな値に対応する一連の定常状態の操作点でプラントを線形化します。場合によっては、さまざまな操作条件での平衡化と線形化で、プラントの個別のモデルを使用すると便利です。たとえば、この場合、これらの線形化を取得する最も簡単な方法は、プラントの別の開ループ モデル rct_CSTR_OL
を使用することです。
mdl_OL = 'rct_CSTR_OL';
open_system(mdl_OL)
設計点でのプラントの平衡化
このプラントを Cr
値の 4
~ 8
の範囲で制御するとします。この範囲内の一連の値について、定常状態の操作点を探すためにモデルを平衡化します。これらの値は調整用の設計点です。
Cr = (4:8)'; % concentrations for k=1:length(Cr) opspec = operspec(mdl_OL); % Set desired residual concentration opspec.Outputs(1).y = Cr(k); opspec.Outputs(1).Known = true; % Compute equilibrium condition [op(k),report(k)] = findop(mdl_OL,opspec,findopOptions('DisplayReport','off')); end
op
は定常状態の操作点の配列です。定常状態の操作点の詳細については、操作点についてを参照してください。
設計点での線形化
op
を使用してプラント モデルを線形化すると、それぞれが対応する設計点で線形化された LTI モデルの配列が返されます。
G = linearize(mdl_OL,'rct_CSTR_OL/CSTR',op);
ブロック置換を使用した slTuner
インターフェイスの作成
制御システム rct_CSTR
を調整するには、それらの設計点でシステムを線形化する slTuner
インターフェイスを作成します。ブロック置換を使用して、rct_CSTR
のプラントを、線形化されたプラント モデル配列 G
で置き換えます。
blocksub.Name = 'rct_CSTR/CSTR'; blocksub.Value = G; tunedblocks = {'Kp','Ki'}; ST0 = slTuner(mdl,tunedblocks,blocksub);
この例では、Concentration controller
の PI 係数のみが調整ブロックとして指定されます。ただ一般的には、tunedblocks
には調整対象となるすべてのブロックがリストされます。
ゲイン スケジュール コントローラー調整のためにブロック置換を使って slTuner
インターフェイスを構成する方法の詳細については、slTuner インターフェイスでの複数の設計点を参照してください。
ゲイン スケジュール コントローラー調整のために平衡化と線形化を使って線形モデル群を生成する方法の詳細については、HL-20 機体の平衡化と線形化を参照してください。
シミュレーション スナップショットでのシステムのサンプリング
基準軌跡 (x(σ),u(σ)) 周辺のシステムを制御している場合、スナップショットの線形化を使用して、σ 軌跡に沿ったさまざまな点でシステムをサンプリングします。スケジューリング変数が時間である時変システムに対してこの方法を使用します。
一連のシミュレーション スナップショットでシステムを線形化するには、正のスカラーのベクトルを linearize
、slLinearizer
または slTuner
の op
入力引数として使用します。これらのスカラーは、モデルを線形化するシミュレーション時間です。同じ一連の時間値を、システムの調整可能な曲面での設計点として使用します。
変化するパラメーター値でのシステムのサンプリング
スケジューリング変数が Simulink モデルでのパラメーターである場合、パラメーターの変化を使用して、パラメーター グリッド全体にわたり制御システムをサンプリングできます。たとえば、2 つのパラメーター Ks
および Bs
を含む suspension_gs
という名前のモデルを調整するとします。これらのパラメーターのそれぞれがある既知の範囲で変化し、モデル内のコントローラー ゲインは両方のパラメーターの関数として変化します。
そのようなモデルを調整目的で設定するには、パラメーター値のグリッドを作成します。この例では Ks
を 1 から 5 まで変化させ、Bs
を 0.6 から 0.9 まで変化させます。
Ks = 1:5; Bs = [0.6:0.1:0.9]; [Ksgrid,Bsgrid] = ndgrid(Ks,Bs);
これらの値は、システムをサンプリングして調整する設計点です。たとえば、モデルに slTuner
インターフェイスを作成して、1 つの調整可能なブロック、パラメーター依存ゲインをモデル化する K
という名前の Lookup Table ブロックがあるとします。
params(1) = struct('Name','Ks','Value',Ksgrid); params(2) = struct('Name','Bs','Value',Bsgrid); STO = slTuner('suspension_gs','K',params);
slTuner
は、params
で指定されたすべての (Ksgrid,Bsgrid)
値でモデルをサンプリングします。
次に、同じ設計点を使用して K
をパラメーター化するための調整可能なゲイン曲面を作成します。
design = struct('Ks',Ksgrid,'Bs',Bsgrid); shapefcn = @(Ks,Bs)[Ks,Bs,Ks*Bs]; K = tunableSurface('K',1,design,shapefcn); setBlockParam(ST0,'K',K);
すべてのスケジュール ゲインをパラメーター化してから、調整目標を作成して systune
を使用してシステムを調整します。
不要な設計点でのサンプルの削除
場合によっては、サンプリング グリッドに無関係な設計点や物理的にありえない設計点が含まれることがあります。そのような設計点は、調整や解析のどの段階にも影響しないように、モデル グリッドから完全に削除することができます。そのためには、モデル配列内の指定したモデルを NaN
に置き換える voidModel
を使用します。voidModel
は、モデル配列内の指定したモデルを NaN
に置き換えます。voidModel
を使用すると、ほぼ規則的な設計点グリッドにわたる設計が可能です。
設計と解析に影響するモデルを制御するためのツールは他にもあります。たとえば、次のことが可能です。
解析時にはモデルをグリッドに維持し、調整からは排除する。
調整時にはモデルをグリッドに維持し、特定の設計目標からは排除する。
詳細については、操作条件による要件の変更を参照してください。
MATLAB での LPV プラント
MATLAB® で、LTI プラント モデルの配列を使用して、σ の値を変化させてサンプリングされた LPV システムを表すことができます。セット内の各線形モデルを基になる設計点に関連付けるには、LTI モデル配列 σ の SamplingGrid
プロパティを使用します。このような配列を取得する方法の 1 つは、システムのパラメトリック一般化状態空間 (genss
) モデルを作成し、パラメーターの変化でモデルをサンプリングし、配列を生成することです。例については、調整可能なモデルをサンプリングすることによるパラメーターの変化の調査を参照してください。