主要内容

长死期过程的控制:史密斯预测器

这个例子展示了PI控制在长死区过程中的局限性,并说明了一种名为“Smith Predictor”的控制策略的好处。

这个例子的灵感来自于:

A. Ingimundarson和T. Hagglund,“死者补偿控制器的强大调整程序”,控制工程实践,9,2001,PP。1195-1208。

过程模型

过程开环响应被建模为一阶加死胡日,使用40.2秒常数和93.9秒延迟:

s = tf(“年代”);p = exp(-93.9 * s)* 5.6 /(40.2 * s + 1);p.InputName =.'U';p.outputname =.'是';P
P =从输入u到输出y: 5.6 exp(-93.9*s) * ---------- 40.2 s + 1连续时间传递函数。

注意延迟是时间常数的两倍多。这个模型代表了许多化学过程。它的阶跃响应如下所示。

步骤(P)、网格

比例积分控制器

比例积分(PI)控制是过程控制中常用的控制方法。相应的控制体系结构如下所示。

补偿器C是一个标准形式的PI控制器,具有两个调谐参数:比例增益Kp和一个积分的时间TI..我们使用PIDTUNE命令设计PI控制器,开环带宽为0.006 rad/s:

Cpi = pidtune (P, pidstd (1, 1), 0.006);消费者价格指数
CPI = 1 1 kp *(1 + ---- * ---)Ti s,kp = 0.0501,Ti = 47.3连续时间PI控制器标准形式

为了评估PI控制器的性能,关闭反馈回路并模拟参考信号的阶跃变化的响应ysp.输出干扰信号d.由于反馈路径的延迟,有必要转换P消费者价格指数的状态空间表示党卫军命令:

TPI =反馈([P * CPI,1],1,1,1);%闭环模型[YSP; D]  - > Y.tpi.InputName = {'ysp''D'};步骤(Tpi)、网格

闭环响应已接受过冲,但有点迟钝(它在大约600秒内稳定)。增加比例增益KP加速了响应,但也显着增加过冲并迅速导致不稳定:

Kp3 = (0.06; 0.08; 0.1);尝试增加三个Kp值ti3 = repmat(cpi.ti,3,1);%ti保持不变C3 = pidstd (Kp3 Ti3);%对应三个PI控制器T3 =反馈(P * C3, 1);T3。InputName ='ysp';步骤(T3)标题('增加kp时稳定性的损失'

PI控制器的性能受到长期死区时间的严重限制。这是因为当实际输出时,PI控制器没有了解死区时间并对“不耐烦”作出反应y不符合期望的设定值ysp..每个人在淋浴时都经历过类似的现象,水温需要很长时间来调整。在这种情况下,不耐烦通常会导致热水和冷水交替咒骂。一个更好的策略是等待温度设定的变化生效,然后再做进一步的调整。一旦我们知道了哪个旋钮设定的温度是我们最喜欢的,我们就能在淋浴发生反应的时间内获得合适的温度。这种“最优”控制策略是Smith Predictor方案背后的基本思想。

史密斯预测因子

Smith Predictor控制结构如下图所示。

史密斯预测器使用内部模型GP.预测过程的无延迟响应yp(例如,给定的旋钮设置将提供的水温)。然后将这个预测yp与期望的设定值ysp进行比较,以决定需要哪些调整(控制u)。为了防止漂移和拒绝外部干扰,史密斯预测器还将实际过程输出与预测进行比较y1.这也考虑到了死时间。的差距dy = y-y1通过滤波器F馈回并有助于整体误差信号e.请注意,dy等于感知到的温度失配等待足够长的淋浴要做出反应。

部署Smith Predictor方案需要

  • 一个模型GP.过程动力学和估计τ过程中的流程

  • 适当的补偿器和滤波器动态设置(CF

根据过程模型,我们使用:

$ $ G_p (s) ={5.6 \ /(1 + 40.2年代}\τ= 93.9 $ $

为了F,使用一阶滤波器,具有20秒常数的一阶滤波器来捕获低频干扰。

f = 1 /(20 * s + 1);f.InputName =.'DY';f.outputname =“迪拜”

为了C,我们用PI控制器看到的整个工厂重新设计PI控制器,其中包括来自的动态PGP.F和死者。借助史密斯预测器控制结构,我们能够增加开环带宽以实现更快的响应并增加相位余量以减少过冲。

%的过程p = exp(-93.9 * s)* 5.6 /(40.2 * s + 1);p.InputName =.'U';p.outputname =.'y0'%预测模型GP = 5.6 /(40.2 * S + 1);gp.inputname ='U';全科医生。OutputName =“yp”;Dp = exp (-93.9 *);Dp。InputName =“yp”;Dp。OutputName ='y1'%工厂S1 = sumblk ('ym = yp + dp');s2 = sumblk('dy = y0 - y1');工厂=连接(P, Gp, Dp, F, S1, S2,'U'“ym”);%设计PI控制器,具有0.08 rad/s带宽和90度相位裕度选择= pidtuneOptions (“PhaseMargin”,90);C = PidTune(工厂,PIDSTD(1,1),0.08,选项);C.InputName ='e';C.OutputName ='U';C
C = 1 1 Kp *(1 + ---- *——)Ti s带有Kp = 0.574, Ti = 40.2的标准形式的连续时间PI控制器

PI控制器与Smith预测器的比较

为了比较两种设计的性能,首先推导出闭环传递函数ysp dy对于史密斯预测者架构。为了便于连接所涉及的所有块的任务,请命名其所有输入和输出通道并让连接布线:

%将闭环模型从[Y_SP,D]组装到Y.Sum1 = sumblk ('e = ysp - yp - dp');Sum2 = sumblk ('y = y0 + d');Sum3 = sumblk ('dy = y  -  y1');T =连接(P, Gp, Dp, C、F Sum1, Sum2, Sum3, {'ysp''D'},'是');

使用将史密斯预测器(蓝色)与PI控制器(红色)进行比较:

步骤(t,“b”Tpi,'r--') 网格传奇(“史密斯预测器”'PI控制器'

史密斯预测器提供了更快的响应,没有超调。这种差异在频域也可见,通过绘制闭环波德响应ysp.y.注意史密斯预测器的更高带宽。

BODE(T(1,1),“b”Tpi (1,1),'r--',{1e-3,1})网格传奇(“史密斯预测器”'PI控制器'

模型失配的鲁棒性

在前面的分析中,内部模型

$$ g_p(s)e ^ { -  \ tau s} $$

匹配过程模型P完全正确。在实际情况中,内部模型只是真实过程动态的一个近似,因此理解Smith Predictor对过程动态和死时间的不确定性的鲁棒性是很重要的。

考虑两个代表过程参数不确定性范围的受扰植物模型:

P1 = exp(-90*s) * 5/(38*s+1);P2 = exp(-100*s) * 6/(42*s+1);波德(P, P1, P2),网格标题(“标称和扰动过程模型”

为了分析鲁棒性,将标称模型和扰动模型收集到一组过程模型中,重建PI和Smith Predictor设计的闭环传递函数,并模拟闭环响应:

植物=堆栈(1,P, P1, P2);%流程模型数组T1 = Connect(植物,GP,DP,C,F,SUM1,SUM2,SUM3,{'ysp''D'},'是');%史密斯Tpi =反馈(植物* Cpi, 1, 1, 1, 1);步骤(T1,“b”Tpi,'r--') 网格传奇('史密斯预测器1''PI控制器'

这两种设计对模型不匹配敏感,如闭环凸编图所确认的:

BODE(T1(1,1),“b”Tpi (1,1),'r--') 网格传奇('史密斯预测器1''PI控制器'

改善稳健性

为了降低Smith Predictor对建模错误的敏感性,检查内圈和外圈的稳定裕度。内循环C有开环传输C *的全科医生因此,稳定性裕度由

利润(C * Gp)标题(“内循环的稳定裕度(C)”

内环有舒适的增益和相位裕度,所以接下来关注外环。使用连接导出开环传递函数lysp.DP.与内圈关闭:

Sum1o = sumblk ('e = ysp - yp');%在dp处打开回路L =连接(P, Gp, Dp, C、F Sum1o, Sum2, Sum3, {'ysp''D'},“迪拜”);bodemag (L (1,1))

这个传递函数本质上是零,这是当过程和预测模型完全匹配时所期望的。为了深入了解外环的稳定边际,我们需要使用一个扰动过程模型,例如,P1

H =连接(植物(:,:2),Gp, Dp, C, Sum1o, Sum2, Sum3, {'ysp''D'},'DY');h = h(1,1);%开环转移L = f * h;保证金(L)标题(“外环的稳定裕度(F)”) 网格;xlim([1依照1]);

增益曲线在0.04 rad/s附近有一个驼峰,这降低了增益裕度并增加了闭环阶跃响应中的驼峰。要解决这个问题,请选择一个过滤器F早期滚动,更快地滚动:

f =(1 + 10 * s)/(1 + 100 * s);f.InputName =.'DY';f.outputname =“迪拜”

验证增益裕度在0.04 rad/s相位交叉点附近得到改善:

L = f * h;保证金(L)标题(“具有修改的F”的外循环的稳定性边缘) 网格;xlim([1依照1]);

最后,使用修改过滤器模拟闭环响应:

T2 = Connect(植物,GP,DP,C,F,SUM1,SUM2,SUM3,{'ysp''D'},'是');步骤(T2,“b”Tpi,'r--') 网格传奇('史密斯预测器2''PI控制器'

改进的设计提供了更一致的性能,但牺牲了稍慢的标称响应。

改善干扰拒绝

用于闭环传输功能的公式dy表明最佳选择F

$$ f(s)= e ^ {\ tau s} $$

在哪里τ是内部模型的死时间。这种选择实现了完美的干扰抑制,不管之间的不匹配PGP..不幸的是,这种“消极延迟”不是因果关系,也无法实施。摘要:

黄,H.-P。,et al., "A Modified Smith Predictor with an Approximate Inverse of Dead Time," AiChE Journal, 36 (1990), pp. 1025-1031

作者建议使用相位超前近似:

$$ ^ {\ tau s} \大约{1 + b(s)\超过1 + b(s)e ^ { -  \ tau s}} $$

在哪里B低通滤波器是否与内部模型具有相同的时间常数GP..您可以测试该方案如下:

定义b(s)和f(s)

40 * s + B = 0.05 / (1);τ= totaldelay (Dp);F = (1 + B) / (1 + B * exp(τ* s));f.InputName =.'DY';f.outputname =“迪拜”

重新设计带带宽的PI控制器

工厂=连接(P, Gp, Dp, F, S1, S2,'U'“ym”);C = PidTune(植物,PIDSTD(1,1),0.02,PidTuneOptions(“PhaseMargin”, 90));C.InputName ='e';C.OutputName ='U';C
C = 1 1 Kp *(1 + ---- *——)Ti s with Kp = 0.144, Ti = 40.1 standard形式的连续时间PI控制器

计算闭环模型T3

T3 =连接(植物、全科医生、Dp、C、F, Sum1, Sum2, Sum3, {'ysp''D'},'是');

比较T3、T2和Tpi

步骤(T2,“b”T3,'G'Tpi,'r--') 网格传奇('史密斯预测器2''史密斯预测器3''PI控制器'

这个比较表明,我们最后的设计以较慢的设定值跟踪为代价,加快了抗扰能力。