メインコンテンツ

ゲイン スケジュール PI コントローラーの解析

この例では、線形パラメーター変動システムのゲイン スケジュール PI 制御を解析します。この例は [1] および [2] を基にしています。

プラント G(ρ) は、ダイナミクスがパラメーター ρ に依存する 1 次システムです。

x˙=-1τ(ρ)x+1τ(ρ)u

y=c(ρ)x

ここで、以下となります。

τ(ρ)=133.6-16.8ρ

c(ρ)=4.8ρ-8.6

パラメーター ρ は、区間 [2,7] に制限されています。次の相互接続図に示すように、プラント G(ρ)、ゲイン スケジュール PI コントローラー K(ρ)、むだ時間 Td=0.5 秒で閉ループ システムが構成されます。

IC.png

LPV プラント

lpvss を使用して LPV プラントのモデルを作成します。関数 plantFcnGSPI は、状態空間行列とオフセットを時間 t およびパラメーター rho の関数として返します。この関数のコードを表示するには、ファイル plantFcnGSPI.m を開くか、コマンド ラインで「type plantFcnGSPI」と入力します。

G = lpvss('rho',@plantFcnGSPI);

ゲイン スケジュール PI コントローラー

ゲイン スケジュールの比例積分 (PI) コントローラー K(ρ) は、領域 ρ[2,7] において閉ループの減衰比 ζd=0.7 および固有振動数 ωd=0.25 を達成するように設計されています。このコントローラーは 2 つの異なる形式で作成できます。

  • コントローラー K1 では、積分器の入力に積分ゲインがあります。

x˙c=Ki(ρ)e

u=xc+Kp(ρ)e

  • コントローラー K2 では、積分器の出力に積分ゲインがあります。

x˙c=e

u=Ki(ρ)xc+Kp(ρ)e

これらの形式は、ρKi が定数であれば等価です。ただし、パラメーターが時間によって変化する場合は 2 つの形式で入出力応答が異なります。この例では、これらの 2 つのオプションの閉ループ性能を比較します。

この例では、これらの 2 つのコントローラーのコードがファイル k1FcnGSPI.m および k2FcnGSPI.m に用意されています。lpvss を使用して 2 つのコントローラーを作成します。

K1 = lpvss('rho',@k1FcnGSPI);
K2 = lpvss('rho',@k2FcnGSPI);

閉ループ モデル

コントローラー K1 および K2 を使用して、相互接続図に示す閉ループ LPV モデルを作成します。

遅延の 2 次パデ近似を使用します。

Td = 0.5;
[n,d] = pade(Td,2);
H = tf(n,d);

閉ループ モデルを作成します。

CL1 = feedback(G*H*K1,1);
CL2 = feedback(G*H*K2,1);

LTI の解析

いくつかの ρ の固定値について、閉ループ応答を評価します。

3 つの rho 値で LPV システムをサンプリングします。

Nvals = 3;
pvals = linspace(2,7,Nvals);
CL1vals = sample(CL1,[],pvals);
CL2vals = sample(CL2,[],pvals);

ρ の固定値における相補感度のボード応答をプロットします。

bode(CL1vals,'b',CL2vals,'r--',{1e-2,1})

MATLAB figure

予想どおり、ρ が定数の場合、積分ゲインの位置はコントローラーに影響しません。したがって、2 つの閉ループ応答は LTI の場合は同一です。

LPV の解析

1 つの特定のパラメーターの軌跡に沿って r から y までの閉ループ ステップ応答を生成します。

パラメーターの軌跡を指定します。

t = linspace(0,30,1e3);
rho = interp1([0 10 30],[2 7 7],t);
plot(t,rho,'b')
grid on
xlabel('Time (seconds)')
ylabel('\rho')
title('Parameter Trajectory for Step Response')

Figure contains an axes object. The axes object with title Parameter Trajectory for Step Response, xlabel Time (seconds), ylabel rho contains an object of type line.

ステップ応答をプロットします。

step(CL1,CL2,t,rho)
grid on
title('Step Responses for Parameter Trajectory');
legend('Ki at input (K1)','Ki at output (K2)','Location','Best');

MATLAB figure

2 つの閉ループのシミュレーションに相違があります。これは、ゲイン スケジュール制御での積分器の配置により、パラメーターが変化したときに違いが生じることを示しています。

プラントとコントローラーのデータ関数

type plantFcnGSPI.m
function [A,B,C,D,E,dx0,x0,u0,y0,Delays] = plantFcnGSPI(t,rho) 
% LPV data for plant
rho = max(2,min(rho,7));  % keep rho in range [2,7]
tau = sqrt(133.6-16.8*rho);
A = -1/tau;
B = 1/tau;
C = sqrt(4.8*rho-8.6);
D = 0;
E = [];

% No offsets or delays
dx0 = [];  x0 = [];  u0 = []; y0 = [];
Delays = [];
end
type k1FcnGSPI.m
function [A,B,C,D,E,dx0,x0,u0,y0,Delays] = k1FcnGSPI(t,rho) 
% LPV data for PI controller K1
tau = sqrt(133.6-16.8*rho);
c = sqrt(4.8*rho-8.6);

% PI Gains
sigma = 0.7;
wcl = 0.25;
Kp = (2*sigma*wcl*tau-1)/c;
Ki = wcl^2*tau/c;

% State-space and offset data: Ki at the input
A = 0;
B = Ki;
C = 1;
D = Kp;
E = [];

% No offsets or delays
dx0 = [];  x0 = [];  u0 = []; y0 = [];
Delays = [];
end
type k2FcnGSPI.m
function [A,B,C,D,E,dx0,x0,u0,y0,Delays] = k2FcnGSPI(t,rho) 
% LPV data for PI controller K2
tau = sqrt(133.6-16.8*rho);
c = sqrt(4.8*rho-8.6);

% PI Gains
sigma = 0.7;
wcl = 0.25;
Kp = (2*sigma*wcl*tau-1)/c;
Ki = wcl^2*tau/c;

% State-space and offset data: Ki at the output
A = 0;
B = 1;
C = Ki;
D = Kp;
E = [];

% No offsets or delays
dx0 = [];  x0 = [];  u0 = []; y0 = []; % no offsets
Delays = [];
end

参考文献

  1. Tan, Shaohua, Chang-Chieh Hang, and Joo-Siong Chai. “Gain Scheduling: From Conventional to Neuro-Fuzzy.” Automatica 33, no. 3 (March 1997): 411–19. https://doi.org/10.1016/S0005-1098(96)00162-8.

  2. Pfifer, Harald, and Peter Seiler. “Robustness Analysis of Linear Parameter Varying Systems Using Integral Quadratic Constraints.” International Journal of Robust and Nonlinear Control 25, no. 15 (October 2015): 2843–64. https://doi.org/10.1002/rnc.3240.

参考

|

トピック