这个例子用途Systune.
设计和调整柴油发动机的MIMO控制器。控制器以单个操作条件的离散时间进行调谐。
现代柴油发动机使用可变几何涡轮增压器(VGT)和废气再循环(EGR)来减少排放。对于满足严格的排放目标,需要对VGT提升压力和EGR质量流进行紧密控制。此示例显示如何设计和调整MIMO控制器,当发动机在2100转为2100 rpm时,每次注射缸为12毫克的燃料质量时,可以调整这两个变量。
Open_System('rct_diesel')
VGT / EGR控制系统在Simulink中建模。金宝app控制器调整位置埃格拉特
和VGTPOS.
EGR和VGT阀门。它可以访问升压压力和EGR质量流量和测量值,以及燃料质量和发动机速度测量。两个阀门都有速率和饱和限制。每0.1秒和控制信号采样植物模型埃格拉特
和VGTPOS.
每0.2秒刷新一次。该示例考虑了+10kPa在升压压力中的步骤变化,+ 3 g / s在EGR质量流动中,+5mg的燃料质量和-200rpm的速度为+ 5 mg。
对于正在考虑的操作条件,我们使用系统识别来从实验数据中导出发动机的线性模型。来自操纵变量的频率响应埃格拉特
和VGTPOS.
对受控变量促进
和EGR MF.
出现在下面。请注意,该植物在低频下均为低频调节,这使得升压压力和EGR质量流动的独立控制困难。
Sigma(植物(:,1:2)),网格冠军(“线性化引擎动态的频率响应”)
有两个主要控制目标:
响应升压压力和EGR质量流量的步骤变化约5秒,最小交叉耦合
对速度和燃料质量的速度变化不敏感。
对第一个目标使用跟踪要求。指定步骤变化的幅度,以确保交叉耦合很小相对的这些变化。
%5-第二次响应时间,稳态误差小于5%tr = tuninggoal.tracking({'Boost Ref';'egrmf ref'},{'促进';'egrmf'},5,0.05);tr.name =.'设定点跟踪';tr.InputScaling = [10 3];
对于第二个目的,将速度和燃料质量变化视为阶跃干扰,并指定升压压力和EGR质量流动的所得变化的峰值幅度和稳定时间。还指定信号幅度以适当地反映每个干扰的相对贡献。
%峰值<0.5,沉降时间<5dr = tuninggoal.steprejectile({'燃料制作';'速度'},{'促进';'egrmf'},0.5,5);dr.name =“干扰拒绝”;dr.InputScaling = [5 200];Dr.OutputScaling = [10 3];
为了为未铭出的动态和混叠提供足够的鲁棒性,限制控制带宽,并在工厂输入和输出中强加足够的稳定性边缘。由于我们正在处理2×2 MIMO反馈循环,因此该要求可确保每个反馈信道中的增益或相变的稳定性。增益或相位可以同时在两个通道中改变,并且在每个信道中的不同量相同。看控制系统调谐中的稳定性边距和TuningGoal.Margins.
有关详细信息。
%滚动-20 db / dec过去1 rad / sro = tuninggoal.maxloopgain({'egrlift'那'vgtpos'},1,1);Ro.Loopscaling ='离开';ro.name =.'滚下';增益余量%7 dB和45度的相位余量m1 = tuninggoal.margins({'egrlift'那'vgtpos'},7,45);m1.name =.'植物输入';m2 = tuninggoal.margins('柴油发动机',7,45);m2.name =.'植物输出';
如果没有优先考虑合适的控制结构,请首先尝试“BlackBox”状态空间控制器的各种订单。工厂模型有四个州,所以尝试四分之一的控制器。这里我们调整二阶控制器,因为Simulink模型中的“SS2”块具有两个状态。金宝app
图1:二阶BlackBox控制器。
使用SLTUNER.
接口配置Simulink模型进行调谐。金宝app将块“SS2”标记为可调谐,注册在其中评估边缘和循环形状的位置,并指定应以控制器采样率执行线性化和调谐。
st0 = sltuner('rct_diesel'那'ss2');st0.ts = 0.2;addpoint(st0,{'egrlift'那'vgtpos'那'柴油发动机'})
现在使用Systune.
调整国家空间控制器,受我们的控制目标。将稳定性边距和滚动目标视为艰难的限制,并尽量符合剩余目标(软目标)。随机化起点以减少暴露于不期望的局部最小值。
选择= systuneOptions('OrmyStart',2);RNG(0),ST1 = SYSTUNE(ST0,[TR DR],[M1 M2 RO],OPT);
Final:Soft = 1.07,硬= 0.94547,迭代= 420 Final:Soft = 1.05,硬= 0.95546,迭代= 491 Final:Soft = 1.05,硬= 0.99363,迭代= 433
几乎满足所有要求(当其归一化值小于1时,满足需求。以图形方式验证。
数字('位置',[10,10,1071,714])ViewGoAL([TRR RO M1 M2],ST1)
绘制设定点跟踪和干扰抑制响应。通过信号幅度缩放以显示归一化效应(通过+10kPa,EGR质量流动的增压压力+ 3 g / s,燃料质量+ 5mg,速度升高,速度为-200rpm)。
数字('位置',[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),标题('设定点跟踪')子图(212),步骤(t1(3:4,:),15),标题(“控制努力”)
d1 = getiotransfer(st1,{'燃料制作';'速度'},{'促进'那'egrmf'那'egrlift'那'vgtpos'});d1 = diag([1/10 1/3 1 1])* d1 * diag([5 -200]);子图(211),步骤(d1(1:2,:),15),标题(“干扰拒绝”)子图(212),步骤(d1(3:4,:),15),标题(“控制努力”)
控制器在不到5秒的响应中响应最小交叉耦合促进
和egrmf.
变量。
状态空间控制器可以根据它实现,但通常希望将其煮沸到更简单,更熟悉的结构。为此,请获取调谐控制器并检查其频率响应
c = getblockValue(ST1,'ss2');CLF BODE(C(:,1:2),C(:,3:4),{。02 20}),网格传奇('ref to你'那'你对你)
Bodemag(C(:,5:6)),网格标题('从汽油/速度到egrlift / vgtpos的响应)
第一绘图表明,控制器基本上表现得像在REF-Y上的PI控制器(目标和受控变量的实际值之间的差异)。第二个曲线表明,从测量的变量转移到操纵变量可以通过与滞后网络串联的增益代替。完全建议以下简化控制结构由MIMO PI控制器组成,具有一流的扰动前馈。
图2:简化控制结构。
使用变体子系统,您可以在同一Simulink模型中实现两个控制结构,并使用变量在它们之间切换。金宝app在这里设置mode = 2
选择MIMO PI结构。如前所述,使用Systune.
调整三个2×2增益矩阵kp.
那ki.
那kff.
在简化的控制结构中。
%在“控制器”块中选择“MIMO PI”变体mode = 2;%配置调谐界面st0 = sltuner('rct_diesel',{'kp'那'ki'那'kff'});st0.ts = 0.2;addpoint(st0,{'egrlift'那'vgtpos'那'柴油发动机'})%tune mimo pi控制器。ST2 = SYSTUNE(ST0,[TR DR],[M1 M2 RO]);
最终:软= 1.09,硬= 0.98992,迭代= 319
再次达到所有要求。绘制闭环响应并与状态空间设计进行比较。
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,:),15),标题('设定点跟踪') 传奇('ss2'那'pi + ff')子图(212),步骤(t1(3:4,:),t2(3:4,:),15),标题(“控制努力”)
d2 = getiotransfer(st2,{'燃料制作';'速度'},{'促进'那'egrmf'那'egrlift'那'vgtpos'});d2 = diag([1/10 1/3 1 1])* d2 * diag([5 -200]);子图(211),步骤(d1(1:2,:),d2(1:2,:),title(“干扰拒绝”) 传奇('ss2'那'pi + ff')子图(212),步骤(d1(3:4,:),d2(3:4,:),15),标题(“控制努力”)
BlackBox和简化的控制结构提供类似的性能。检查PI和馈电增益的调谐值。
展示(ST2)
框1:rct_diesel / controller / mimo pid / kp = d = U1 U2 Y1 -0.007997 -0.0008363 Y2 -0.02049 0.01456名称:KP静态增益。---------------------------------------------------- rct_diesel / controller / mimo pid / ki = d = u1U2 Y1 -0.01058 -0.01381 Y2 -0.03019 0.04706名称:KI静态增益。------------------------------------------------------ rct_diesel / controller / mimo pid / kff = d = u1U2 Y1 0.01368 -9.661E-05 Y2 0.03164 -0.001435名称:KFF静态增益。
要在Simulink模型中验证MIMO PI控制器,请将调谐的控制器参数推动到Sim金宝appulink并运行模拟。
WriteBlockValue(ST2)
仿真结果如下所示,并确认控制器充分跟踪升压压力和EGR质量流量的设定值变化,并迅速拒绝燃料质量(T = 90)的变化(在T = 110处)。
图3:使用简化控制器的仿真结果。
TuningGoal.Margins.
|TuningGoal.maxloopgain.
|TuningGoal.stepreject.stepreject.
|TuningGoal.Tracking.
|SLTUNER.
(金宝appSimulink Control Design)|Systune(SLTuner)
(金宝appSimulink Control Design)