这个例子展示了如何使用looptune
将蒸馏塔中的两个主反馈回路解耦。
这个例子使用了下面所示的蒸馏塔的一个简单模型。
图1:蒸馏塔
在所谓的LV配置中,控制变量是浓度码
和yB
的化学物质D
(上衣)和B
(底部),而被操纵的变量是回流l
和boilupV
.对于L和v的某些组合,这个过程表现出强耦合和稳态增益的大变化。多变量反馈控制.
该模型是一个具有输入的一阶传递函数L, V
和输出码,yB
:
时间的单位是分钟(所有情节都是以分钟而不是秒为单位)。
s =特遣部队(“年代”);G = [87.8 -86.4;108.2 - -109.6) / (75 * s + 1);G.InputName = {“L”,“V”};G.OutputName = {“码”,“yB”};
控制目标如下:
通过确保顶部设定值的变化,独立控制顶部和底部的集中Dsp
对底部浓度影响不大B
,反之亦然
响应时间约4分钟,超调量小于15%
快速排除影响有效回流的输入干扰l
和boilupV
为了实现这些目标,我们使用如下所示的控制体系结构。该体系结构由一个静态解耦矩阵组成DM
与两个PI控制器串联用于回流l
和boilupV
.
open_system (“rct_distillation”)
的looptune
命令提供了一种快速的方法来调整MIMO反馈环路。当控制系统在Simulink中建模时,您只需指定调谐块、控制和测量信号以及所万博1manbetx需的带宽looptune
自动设置问题和调整控制器参数。looptune
塑造开环响应,以提供整体动作、滚转和足够的MIMO稳定裕度。
使用slTuner
接口指定调优块、控制器I/ o和闭环验证感兴趣的信号。
ST0 = slTuner (“rct_distillation”, {“PI_L”,“PI_V”,“糖尿病”});%利息信号addPoint (ST0, {“r”,“dL”,“dV”,“L”,“V”,“y”})
通过指定开环响应的增益交叉频率来设置控制带宽。对于4分钟的响应时间,交叉频率应该大约为2/4 = 0.5 rad/min。
wc = 0.5;
使用TuningGoal
对象来指定其余的控制目标。对一个步骤命令的响应应该有小于15%的超调。对工厂输入端的阶跃扰动的响应应具有良好的阻尼,在20分钟内稳定下来,且振幅不超过4。
操作系统= TuningGoal。超过(“r”,“y”15);= TuningGoal博士。StepRejection ({“dL”,“dV”},“y”4、20);
下一个使用looptune
调整控制器块PI_L
,PI_V
,DM
服从抗干扰要求。
控制= {“L”,“V”};测量=“y”;(圣、联欢、信息)= looptune (ST0、控制测量,wc,操作系统,博士);
最终:峰值增益= 0.99,迭代次数= 68
最终值接近1,表示满足了所有的要求。使用loopview
检查最终的设计结果。回应应该在阴影区域之外。
图(“位置”, [0, 0, 1000, 1200]) loopview (ST,信息)
使用getIOTransfer
获取并绘制从参考和扰动到顶部和底部浓度的闭环响应。调谐响应显示了跟踪和抗干扰之间的良好折衷。
图Ttrack = getIOTransfer(ST,“r”,“y”);步骤(Ttrack 40)、网格、标题(“定位点跟踪”)
Treject = getIOTransfer (ST, {“dV”,“dL”},“y”);步骤(Treject 40)、网格、标题(“抗干扰”)
在频域上比较开环和闭环的抗扰特性,发现控制带宽内有明显的改善。
clf, sigma(G,Treject),网格标题(“输入干扰对输出的主要收益”)传说(“开环”,“闭环”)
对上述所获得的控制器进行检验,第二控制器的增益为负。
getBlockValue(圣“PI_V”)
名称:PI_V并联的连续时间PI控制器。
这是由于植物的第二个输入通道中的负号.此外,由于相乘,可调元素被过度参数化DM
除以2,PI增益除以2不会改变整个控制器。要解决这些问题,修复的(1,1)项DM
到1和(2,2)项到-1。
DM = getBlockParam (ST0,“糖尿病”);DM.Gain.Value = diag([1 -1]);DM.Gain.Free = [false true;true false];setBlockParam (ST0“糖尿病”DM)
为减少的可调参数集重新调整控制器。
(圣、联欢、信息)= looptune (ST0、控制测量,wc,操作系统,博士);
最终:峰值增益=1,迭代次数= 84
阶跃响应看起来很相似,但是值DM
PI增益更适合于实现。
图(“位置”,[0,0,700,350]) subplot(121) Ttrack = getIOTransfer(ST,“r”,“y”);步骤(Ttrack 40)、网格、标题(“定位点跟踪”) subplot(122) Treject = getIOTransfer(ST,{)“dV”,“dL”},“y”);步骤(Treject 40)、网格、标题(“抗干扰”)
showTunable (ST)
Block 1: rct_蒸馏/PI_L = 1 Kp + Ki *——s, Kp = 16.3, Ki = 2.16名称:PI_L并行连续时间PI控制器----------------------------------- 块2:rct_distillation / PI_V = 1 + Ki *——年代Kp = 13, Ki = 1.73名称:PI_V连续时间比例积分控制器并联形式。----------------------------------- 块3:rct_distillation / DM y2 = D = u1, u2 y1 1 -0.785 1.232 - 1名称:DM静态增益。
如果您没有控制系统的Simulink模型,万博1manbetx您可以使用LTI对象和control Design块来创建下列框图的MATLAB表示。
图2控制系统框图
首先使用Control Design块参数化可调元素。使用tunableGain
对象参数化DM
和修复DM (1,1) = 1
和DM (2, 2) = 1
.这将创建一个2x2的静态增益,并将非对角条目作为可调参数。
DM = tunableGain (“脱钩”诊断接头([1]));DM.Gain.Free = [false true;true false];
同样,使用tunablePID
对象来参数化两个PI控制器:
PI_L = tunablePID (“PI_L”,“π”);PI_V = tunablePID (“PI_V”,“π”);
接下来构建一个模型C0
控制器的如图2所示。
C0 = blkdiag(PI_L,PI_V) * DM * [eye(2) -eye(2)];%注意:I/O名称应与G一致C0。InputName = {“Dsp”,Bsp的,“码”,“yB”};C0。OutputName = {“L”,“V”};
现在用looptune
是之前完成的。
%交叉频率wc = 0.5;%超调和干扰抑制要求操作系统= TuningGoal。过度({“Dsp”,Bsp的},{“码”,“yB”}, 15);= TuningGoal博士。StepRejection ({“L”,“V”},{“码”,“yB”} 4 20);调谐控制器增益[~ C] = looptune (G, C0, wc,操作系统,博士);
最终:峰值增益=1,迭代次数= 68
为了验证设计,将调谐补偿器闭环C
并模拟了设定值跟踪和抗干扰的阶跃响应。
Tcl =连接(G、C {“Dsp”,Bsp的,“L”,“V”},{“码”,“yB”});图(“位置”, 0700350年,[0])次要情节(121)Ttrack = Tcl (:, (1 2));步骤(Ttrack 40)、网格、标题(“定位点跟踪”) subplot(122) Treject = Tcl(:,[3 4]);Treject。InputName = {“dL”,“dV”};步骤(Treject 40)、网格、标题(“抗干扰”)
结果与在Simulink中得到的结果相似。万博1manbetx
looptune
|looptune (slTuner)
(万博1manbetx仿真软件控制设计)