给食品厂做了台自动杀菌釜——温度压力双PID控制,一锅千罐再也不出杀菌事故

给食品厂做了台自动杀菌釜——温度压力双PID控制,一锅千罐再也不出杀菌事故

去年秋天接到一个项目,客户是做罐头食品的,主要产红烧肉罐头和午餐肉。原来的杀菌釜是人工操作——师傅看压力表、拧阀门、记时间,全凭经验。老板说这两年老张师傅要退休了,年轻人没人愿意接这个班,才下决心上自动化。

杀菌釜这玩意儿,说白了就是一个大号的压力锅。罐头装进去,加热到121℃以上,保持一定时间,把肉毒杆菌芽孢全部杀死。温度高了罐头胀罐爆罐,温度低了杀菌不彻底,那是要出食品安全事故的。所以温度和压力必须同时控制,一个都不能含糊。

工艺要求

客户用的是卧式杀菌釜,一锅容量是1200罐,直径1.2米,长3米。工艺参数是甲方工艺部门给定的:

  • 升温阶段:10分钟内从室温升到121℃
  • 杀菌阶段:121℃±0.5℃,保持35分钟
  • 降温阶段:循环冷却,10分钟内降到40℃以下
  • 釜内压力:始终保持比饱和蒸汽压高0.15-0.2MPa,防止罐头变形

核心难点在哪儿呢?升温段温度上去快但压力滞后,降温段冷水一进去温度和压力掉得飞快,罐头的内压还撑着,搞不好就胀罐。

控制系统方案

我用的硬件配置:

  • PLC:三菱FX5U-32MT/ES
  • 模拟量模块:FX5-4AD-ADP(采集温度、压力信号)
  • 温度传感器:PT100铂电阻,三线制,四支(釜体前后各两支取平均)
  • 压力变送器:4-20mA,量程0-0.6MPa
  • 执行机构:蒸汽调节阀(气动薄膜阀,4-20mA控制),冷却水气动球阀(开关型)
  • 触摸屏:威纶通MT8071iE

说个小细节:PT100我为什么用了四支而不是两支?因为杀菌釜直径1.2米,前后温度有时候会差两三度。取前后平均值来控制,比单点控制精准很多。这是以前踩过坑得来的教训——之前一个客户的杀菌釜只有一支PT100装在釜体中部,结果前端温度到了123℃,后端才118℃,后端杀菌不达标。

PID参数怎么调的

升温段我用了双PID串级控制——主环是温度,副环是蒸汽调节阀开度。

粗调的时候犯了错。我把P设得太小(P=1.5),结果升温的时候温度冲到125℃才回调,超调了4度。罐头里面的汤汁沸腾,把封口撑开了,一锅废了30多罐。老板脸都绿了。

后来老老实实按临界比例度法来调:

  • 先把I和D置零,只留P
  • P从大往小调,找到系统开始等幅振荡的临界值Pu
  • 我测出来Pu=3.2,振荡周期Tu=22秒
  • 按经验公式算:P=2.1×Pu=6.7,I=0.5×Tu=11秒
  • 最终我微调后定了P=7.0,I=8秒,D=0(蒸汽系统惯性大,加D容易震荡)

实际运行效果:升温到121℃时最大超调0.8℃,稳定后波动±0.3℃,完全满足工艺要求的±0.5℃。

降温段是另一套逻辑。我单独写了个降温子程序:打开冷却水阀的同时,自动关小蒸汽阀,但保留一定开度用来补压。因为温度往下掉的时候,釜内压力会跟着掉,但罐头里面的压力还顶着,内外压差一大就胀罐。所以我设了个压力下限,低于0.18MPa就自动补蒸汽。

程序里的几个关键逻辑

这是GX Works3里写的一段降温补压逻辑,简化了一下:

// 降温阶段压力保持逻辑
IF M100(降温中)=ON THEN
    // 读取当前釜内压力(模拟量通道1)
    D100 := D_REAL(通道1)
    // 压力换算:4-20mA对应0-0.6MPa
    D102 := D100 * 0.6 / 4000
    
    // 如果压力低于0.18MPa,补蒸汽
    IF D102 < 0.18 THEN
        // 缓慢开蒸汽阀,开度限制在15%以内
        D105 := D105 + 0.5  // 每次扫描加0.5%
        D105 := MAX(D105, 15.0)
    ELSE
        D105 := 0.0  // 关闭蒸汽阀
    END_IF
    
    // 冷却水阀全开
    M101(冷却水阀) := ON
END_IF

这里有个坑:压力采集一定要做数字滤波。釜内蒸汽波动的时候,压力信号抖得厉害。我加了一阶低通滤波,截止频率设在0.5Hz,信号稳了很多。

调试遇到的三个大坑

第一个坑:蒸汽阀选大了。甲方采购的时候图便宜,买了个DN40的气动阀。这个阀门在杀菌釜这种小流量工况下,开度5%就到目标温度了,再开就超调。结果PID输出从0到5%这一小段里控制精度极差。后来在阀前加了个手动截止阀,人为限流,相当于把阀门口径"缩"到DN20,控制才正常。

第二个坑:PT100接线过长。配电柜离杀菌釜有差不多30米,PT100三线制接过去以后,温度读数比实际偏高1.5℃。一查是导线电阻导致的。后来在PLC程序里做了补偿:采集值减去1.5。简单粗暴但管用。最好当然是把模拟量模块放釜旁边,但现场走线条件不允许。

第三个坑:散热导致测温滞后。PT100是装在釜体壁上的测温套管里的,套管本身有不锈钢壳体,热传导有延迟。升温的时候釜内温度到了121℃,套管内壁才117℃,有4℃的滞后。这个在PID参数里调I时间可以补偿一部分,但不能完全消除。我后来把I时间从8秒调到了15秒,让系统不那么敏感,反而稳定了。

运行结果

系统投用之后跑了一个月,甲方让我过去看数据:

  • 121℃杀菌段温度波动:±0.3℃(远优于工艺要求的±0.5℃)
  • 每锅升温时间:平均9分20秒(达标)
  • 杀菌完成后冷却:8分50秒降到38℃
  • 胀罐率:从人工操作的0.5%降到0.02%
  • 老张师傅不用天天蹲在釜旁边拧阀门了,现在坐在中控室喝茶看屏幕

老板最后总结了一句让我挺高兴的话:"这东西虽然花了十几万,但一个旺季就能省回来。关键是质量稳定了,不用再提心吊胆怕抽检不合格。"

搞工控的兄弟,接杀菌釜项目的时候记住三件事:PT100多装几支取平均、蒸汽阀选型宁小勿大、降温段一定做好补压逻辑。做好这三点,这个项目就成功了一大半。

上一篇 接地电阻测了三次都不合格——从摇表打到接地改造,老厂区接地系统翻新实战
下一篇 进口设备协议不公开,我用AI逆向解析了它的RS485通讯——大模型+逻辑分析仪破解非标协议的实战