主要内容

MIMO Control of Diesel Engine

This example usessystuneto design and tune a MIMO controller for a Diesel engine. The controller is tuned in discrete time for a single operating condition.

柴油发动机型号

现代柴油发动机使用可变的几何涡轮增压器(VGT)和废气再循环(EGR)来减少排放。必须严格控制VGT升压压力和EGR质量流以满足严格的排放目标。此示例显示了如何设计和调整一个MIMO控制器,该模拟器控制器以2100 rpm运行,每次注射缸的燃油质量为12毫克,从而调节这两个变量。

open_system('rct_diesel')

The VGT/EGR control system is modeled in Simulink. The controller adjusts the positionsEgrliftVGTPOEGR和VGT阀的。它可以访问增强压力和EGR质量流目标和测量值,以及燃油质量和发动机速度测量值。两个阀门都有速率和饱和度限制。每0.1秒采样植物模型,并且对照信号EgrliftVGTPO每0.2秒刷新一次。该示例考虑了+10 kPa在增强压力和+3 g/s的步骤变化,而燃油质量中的+5 mg干扰和速度-200 rpm的干扰。

对于正在考虑的工作条件,我们使用系统识别来从实验数据中得出引擎的线性模型。操纵变量的频率响应EgrliftVGTPOto the controlled variablesBOOSTEGR MFappears below. Note that the plant is ill conditioned at low frequency which makes independent control of boost pressure and EGR massflow difficult.

sigma(Plant(:,1:2)), grid title(“线性化发动机动力学的频率响应”)

Control Objectives

有两个主要控制目标:

  1. Respond to step changes in boost pressure and EGR massflow in about 5 seconds with minimum cross-coupling

  2. Be insensitive to (small) variations in speed and fuel mass.

对第一个目标使用跟踪要求。指定步骤更改的幅度,以确保交叉耦合很小relativeto these changes.

%5秒响应时间,稳态误差小于5%TR = TuningGoal.Tracking({'BOOST REF';'egrmf ref'},{'促进';'EGRMF'},5,0.05); TR.Name =“设定点跟踪”;tr.inputscaling = [10 3];

对于第二个目标,将速度和燃料质量变化视为步骤干扰,并指定增强压力和EGR质量流的产生变化的峰值幅度和沉降时间。还指定信号振幅以正确反映每个干扰的相对贡献。

% Peak<0.5, settling time<5dr = tuninggoal.steprective({{'FUELMASS';'速度'},{'促进';'EGRMF'},0.5,5); DR.Name ='Disturbance rejection';DR.InputScaling = [5 200]; DR.OutputScaling = [10 3];

为了提供足够的鲁棒性,可以对未建模的动力学和混叠,请限制控制带宽并在工厂输入和输出方面施加足够的稳定性边缘。因为我们正在处理2 by-2 mimo反馈循环,所以此要求保证了每个反馈通道中增益或相位变化的稳定性。增益或相位可以同时在两个通道中变化,并且每个通道中的数量不同。看控制系统调整中的稳定边距tuninggoal.marginsfor details.

%滚动-20 dB/dec过去1 rad/sro = tuninggoal.maxloopgain({'egrlift','VGTPOS'} 1 1);罗依。LoopScaling ='离开';ro.name ='Roll-off';%7 dB的增益边缘和45度的相位边缘m1 = tuninggoal.margins({'egrlift','VGTPOS'},7,45); M1.Name =“植物投入”;m2 = tuninggoal.margins('柴油发动机',7,45);m2.name =“植物产量”;

调整黑盒MIMO控制器

Without a-priori knowledge of a suitable control structure, first try "blackbox" state-space controllers of various orders. The plant model has four states, so try a controller of order four or less. Here we tune a second-order controller since the "SS2" block in the Simulink model has two states.

图1:二阶黑框控制器。

Use theslTunerinterface to configure the Simulink model for tuning. Mark the block "SS2" as tunable, register the locations where to assess margins and loop shapes, and specify that linearization and tuning should be performed at the controller sampling rate.

st0 = sltuner('rct_diesel','SS2'); ST0.Ts = 0.2; addPoint(ST0,{'egrlift','VGTPOS','柴油发动机'})

现在使用systuneto tune the state-space controller subject to our control objectives. Treat the stability margins and roll-off target as hard constraints and try to best meet the remaining objectives (soft goals). Randomize the starting point to reduce exposure to undesirable local minima.

opt = SystuneOptions('RandomStart',2); rng(0), ST1 = systune(ST0,[TR DR],[M1 M2 RO],Opt);
Final: Soft = 1.07, Hard = 0.97738, Iterations = 373 Final: Soft = 1.05, Hard = 0.98136, Iterations = 451 Final: Soft = 1.08, Hard = 0.93776, Iterations = 375

All requirements are nearly met (a requirement is satisfied when its normalized value is less than 1). Verify this graphically.

数字('位置',[10,10,1071,714]) viewGoal([TR DR RO M1 M2],ST1)

绘制设定值跟踪和干扰拒绝响应。通过信号幅度缩放以显示归一化效应(增强压力的变化+10 kPa,EGR质量流+3 g/s,燃油质量+5 mg +5 mg,速度升高-200 rpm)。

数字('位置',[100,100,560,500]) T1 = getIOTransfer(ST1,{'BOOST REF';'egrmf ref'},{'促进','EGRMF','egrlift','VGTPOS'});t1 = diag([1/10 1/3 1 1]) * t1 * diag([10 3]);子图(211),步骤(T1(1:2,:),15),标题(“设定点跟踪”) subplot(212), step(T1(3:4,:),15), title('Control effort')

d1 = getiotransfer(st1,{'FUELMASS';'速度'},{'促进','EGRMF','egrlift','VGTPOS'});d1 = diag([1/10 1/3 1 1]) * d1 * diag([5 -200]);子图(211),步骤(D1(1:2,:),15),标题('Disturbance rejection') subplot(212), step(D1(3:4,:),15), title('Control effort')

控制器在不到5秒的时间内做出响应,而最小的交叉耦合BOOSTEGRMFvariables.

调整简化的控制结构

The state-space controller could be implemented as is, but it is often desirable to boil it down to a simpler, more familiar structure. To do this, get the tuned controller and inspect its frequency response

C = getBlockValue(ST1,'SS2'); clf bode(C(:,1:2),C(:,3:4),{.02 20}), grid legend('ref to u','y to u')

bodemag(C(:,5:6)), grid title(“燃料/速度到eGrlift/vgtpos的bode响应”)

第一个图表明,控制器基本上的行为就像是对Ref-Y的PI控制器(目标变量的目标和实际值之间的差异)。第二个图表明,从测量的干扰到操纵变量的转移可以用滞后网络的串联增益代替。总之,这表明了以下简化的控制结构,该控制结构由具有一阶干扰前馈的MIMO PI控制器组成。

Figure 2: Simplified control structure.

使用变体子系统,您可以在同一Simulink模型中实现两个控制结构,并使用变量在它们之间切换。金宝app这里设置模式= 2选择MIMO PI结构。和以前一样systune调整三个2 by-2增益矩阵KP,ki,Kff笨人的lified control structure.

% Select "MIMO PI" variant in "CONTROLLER" blockMODE = 2;%配置调谐界面st0 = sltuner('rct_diesel',{'KP','ki','kff'});ST0.Ts = 0.2; addPoint(ST0,{'egrlift','VGTPOS','柴油发动机'})% Tune MIMO PI controller.ST2 = Systune(ST0,[TR DR],[M1 M2 RO]);
最终:软= 1.09,硬= 0.99774,迭代= 303

Again all requirements are nearly met. Plot the closed-loop responses and compare with the state-space design.

clf T2 = getIOTransfer(ST2,{'BOOST REF';'egrmf ref'},{'促进','EGRMF','egrlift','VGTPOS'});t2 = diag([1/10 1/3 1 1]) * t2 * diag([10 3]);子图(211),步骤(T1(1:2,:),T2(1:2,:2,:),15),标题(“设定点跟踪”) legend('SS2','PI+FF') subplot(212), step(T1(3:4,:),T2(3:4,:),15), title('Control effort')

d2 = getiotransfer(st2,{'FUELMASS';'速度'},{'促进','EGRMF','egrlift','VGTPOS'});D2 = diag([1/10 1/3 1 1]) * D2 * diag([5 -200]); subplot(211), step(D1(1:2,:),D2(1:2,:),15), title('Disturbance rejection') legend('SS2','PI+FF')子图(212),步骤(d1(3:4,:),d2(3:4,::),15),标题('Control effort')

The blackbox and simplified control structures deliver similar performance. Inspect the tuned values of the PI and feedforward gains.

展示(ST2)
块1:rct_diesel/Controller/mimo pid/kp = d = u1 u2 y1 -0.007937 -0.0008099 y2 -0.02029 0.01454名称:kp静态增益。----------------------------------- Block 2: rct_diesel/CONTROLLER/MIMO PID/Ki = D = u1U2 Y1 -0.01053 -0.01428 Y2 -0.03012 0.04637名称:Ki静态增益。----------------------------------- Block 3: rct_diesel/CONTROLLER/MIMO PID/Kff = D = u1U2 Y1 0.01405 -0.0001001 Y2 0.03233 -0.001443名称:KFF静态增益。

Nonlinear Validation

要验证模型中的MIMO PI控制器,请按调谐控制器参数以模拟和运行模拟。金宝app

WriteBlockValue(ST2)

The simulation results are shown below and confirm that the controller adequately tracks setpoint changes in boost pressure and EGR massflow and quickly rejects changes in fuel mass (at t=90) and in speed (at t=110).

Figure 3: Simulation results with simplified controller.

看Also

(Simulink Control Design)|(Simulink Control Design)||||

相关话题