エンジン スロットルの LPV モデル
この例では、状態オフセット で非線形性を考慮した線形パラメーター変動 (LPV) モデルとしてエンジン スロットルの動作をモデル化する方法を示します。また、LPV モデルの結果をシミュレートし、非線形シミュレーションで結果を比較します。
スロットルは、エンジンのインテーク マニホールドへの空気質量流量を制御します。スロットル本体には、運転者がアクセル ペダルを踏み込むと開くバタフライ バルブがあります。これにより、より多くの空気がシリンダー内に送り込まれ、エンジンのトルクが上がります。バタフライ バルブはマス-バネ-ダンパー システムとしてモデル化されます。バルブの回転量は 15 度から 90 度までに制限されています。
スロットル モデルの詳細については、Estimate Model Parameter Values (GUI) (Simulink Design Optimization)を参照してください。
LPV モデル
スロットルのダイナミクスは、この例で用意されている関数 throttleLPV.m で定義されています。
lpvss を使用してモデルを作成します。このモデルは、モデルの最初の状態であるスロットル角度でパラメーター化されます。
c0 = 50;
k0 = 120;
K0 = 1e6;
b0 = 4e4;
Ts = 0;
x0 = [15;0];
DF = @(t,p) throttleLPV(p,c0,k0,b0,K0);
sysp = lpvss('p',DF,Ts,0,15);LPV シミュレーション
パラメーターの軌跡に沿った入力に対する開ループ応答を生成します。
このモデルでは、 を時間 、入力 、および状態 の関数 として暗黙的に指定します。ここで、 はスロットル角度 (最初の状態) です。
load ThrottleInputData.mat
t2 = linspace(t(1),t(end),2000);
u2 = interp1(t,u,t2);
p = @(t,x,u)x(1);
yLPV = lsim(sysp,u2,t2,x0,p);応答をプロットします。
plot(t2,yLPV) title('LPV Simulation') xlabel('Throttle angle')

非線形シミュレーション
非線形の Simulink® モデルをシミュレートします。
open_system('throttleNLModel') ysl = sim('throttleNLModel'); ysl = interp1(ysl.ScopeData(:,1),ysl.ScopeData(:,2),t);
LPV モデルと非線形モデルのシミュレーション結果を比較します。
figure(1) clf plot(t,ysl,t2,yLPV) legend('Simulink model','LPV model','location','Best') title('Comparison of LPV and Nonlinear Simulations') xlabel('Throttle angle')

LPV モデルでは、実際の軌跡をスケジューリングに使用しているため、非線形応答のシミュレーションが良好です。
モデルを閉じます。
bdclose('throttleNLModel')データ関数
type throttleLPV.mfunction [A,B,C,D,E,dx0,x0,u0,y0,Delays] = throttleLPV(x1,c,k,b,K) % LPV representation of engine throttle dynamics. % Ref: https://www.mathworks.com/help/sldo/ug/estimate-model-parameter-values-gui.html % x1: scheduling parameter (throttle angle; first state of the model) % c,k,b,K: physical parameters A = [0 1; -k -c]; B = [0; b]; C = [1 0]; D = 0; E = []; Delays = []; x0 = []; u0 = []; y0 = []; % Nonlinear displacement value NLx = max(90,x1(1))-90+min(x1(1),15)-15; % Capture the nonlinear contribution as a state-derivative offset dx0 = [0;-K*NLx];
参考
lpvss | sample | step | RespConfig