关于温度等大滞后环节的PID思考(温控PID-分段分类多参数PID)
遇到一个现场,需要控制温度在±2℃.这里采用的是PID控制器.温控系统滞后性相当大,现场工况描述如下:
设备上有5个点需要温控.分别是:1.A桶温控(放置一种胶体)2.B桶温控(放置另一种胶体)3.送胶管道4.A泵体温控5.B泵体温控.这五种温控PID均无冷却装置,只能靠自然冷却.其中3.4.5这三种暴露在空气中,不加热后冷却速度较快.滞后时间大概是15分钟左右,而1.2AB桶,完全是密闭且里面胶水为慢热型.其散热效果非常差.从加热开始,到加热产生温度变化中间可能得有15分钟,加热状态完全打开,然后关闭后约1个小时内温度都是升高的,升高到最高后再自然降温到室温约需1个小时.也就是说系统滞后达到2个多小时时间.系统延时特别特别大.
系统加热控制,采用的继电器触发。继电器的控制采用的是长周期的PWM进行控制,PWM周期为10s,加热时间长度根据PID算出来的值设置。比如10s中有1s时间是导通的那么就是1/10的时间在加热。
普通PID根本无法应对这种工况,回忆起大学学到的内容好像对于大滞后系统理论上好像可以采用史密斯预估器。但是前提能知道被控系统的较为精确的数学模型,能推导出系统的传递函数。不过本人理论学的不是很好,暂时无法介绍史密斯预估器,后续如果有能力搞明白并实践的话,再来介绍。下面说说本人对这套温控系统的控制想法:采用分段分组多参数PID控制器进行控制。
本套系统,这里思考将整个控制过程粗略分为4段。(可以分更多段,每段一组PID参数,这样效果可能会好很多,但是参数调试可能会麻烦一点)。这里根据目标温度的差值风和实时温度反馈作为系统第一层分段指标。第一段比较粗犷,PID参数大一点,目标是系统快速升温。第二段根据温差斜率变化情况决定是否进行加热处理,如果斜率为正说明温度正在升高,则不进行第二段PID的计算输出为0不进行加热。如果此时温度降低,也就是斜率为负则进行PID计算进行加热。实际温度在目标温度的小范围内,则调用第三段小范围PID控制器的参数,第四段系统温度超调较多,直接关闭PID控制器,使其输出为0(积分也要记得清零)。这里第二段还可以根据斜率的不同,设置不同的分段参数,比较麻烦,有兴趣的同学根据需要自行设计
这里第一段温差阈值设置的是15℃,第二段范围是15℃到1℃,第三段温差范围是1℃到0.5℃,第四段温差阈值是小于0.3,直接关闭(如果使用积分,注意清积分)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
伪代码如下: 定时器每隔20s(或者其他设置时间)计算一下实时温差 IF 定时器时间到 实时温差 = 实时温度 – 上次温度 上次温度 = 实时温度; 温控PID 温差 = 目标值 – 实际值 IF 温差 > 第一段温差阈值 执行第一段PID(或者完全加热,火力全开) IF 温差 < 第一段温差阈值 AND 温差 > 第二段温差阈值 IF 实时温差 > 0 说明在升温,不进行PID控制,输出强制为0。(如果使用积分,记得清积分) IF 实时温差 <= 0 说明在降温,需要使用PID进行运算。 IF 是第三段 执行第三段小范围PID(参数和上面最好不同) IF 是第四段 直接清零 |
转载请注明:燕骏博客 » 关于温度等大滞后环节的PID思考(温控PID-分段分类多参数PID)
赞赏作者微信赞赏支付宝赞赏