今年三月份接了个活——给苏北一个化工厂的废水处理站做自动控制系统。说白了就是两个废水收集池,加药调PH值,达到排放标准再排出去。
厂里原来的方式简单粗暴:人工巡检,看PH试纸变色了就去拧阀门加药。白班还行,夜班值班的经常睡着,第二天PH超标被环保局罚了一回,老板才下定决心上自动化。
现场情况
我去现场看了一圈,设备清单:
- 两个50吨废水收集池(一个酸性池、一个碱性池)
- 一台加碱计量泵、一台加酸计量泵
- 两台潜污泵
- 一台搅拌机
- 一套在线PH计(旧的,精度不行,后面换了)
控制要求也不复杂:设定PH目标值7.5(排放标准6-9,留点余量),自动加酸/加碱调节,保持PH在7.0-8.0之间。超出范围报警,加药泵自动停机。
选型
甲方预算有限,但要求稳定可靠。我给的方案:
- 控制器:西门子S7-200 SMART SR30(便宜又好用,市场保有量大)
- PH计:梅特勒TOLEDO M300(国产的以前用过,漂移太大,这次咬咬牙上了进口的),精度±0.01PH,带4-20mA输出
- 人机界面:昆仑通态TPC7062Ti(7寸,够用)
- 执行器:两台计量泵配变频器控制加药速度
- 通讯:加了一个4G DTU模块,把数据传到老板手机上随时看
全部下来不到两万块,老板很满意。
编程和PID
PH控制是个典型的非线性过程,说白了就是不好调。因为加药到PH变化之间有个延迟(化学反应需要时间),而且强酸强碱的PH曲线在7附近特别陡——多滴一丢丢药,PH就从7跳到11了。
我用了西门子SMART自带的PID指令,但经验告诉我直接用默认参数肯定不行。我的PID参数调试过程:
第一步:纯比例控制测临界值
先把积分时间设到最大(相当于关掉积分),微分设成0。比例增益Kc从0.5开始慢慢往上加。加到1.5的时候,PH开始出现等幅振荡——周期大约90秒。
这时候的Kc就是临界增益Ku=1.5,振荡周期Tu=90秒。
第二步:用齐格勒-尼科尔斯法算参数
对于PID控制器,齐格勒-尼科尔斯建议:
- Kp = 0.6 × Ku = 0.6 × 1.5 = 0.9
- Ti = 0.5 × Tu = 0.5 × 90 = 45秒
- Td = 0.125 × Tu = 0.125 × 90 ≈ 11秒
上机测试——嗯,能控住,但超调还是有点大,稳定时间大约3分钟。对于这个废水池来说其实够用了,但我总觉得能再优化一下。
第三步:手动微调
超调大我就把Kp降到0.7,积分时间Ti加到60秒。再跑一次:超调从原来的2.3个PH单位降到了1.0以内,稳定时间也从3分钟缩短到了2分钟左右。
最后锁定的参数:
Kp = 0.7, Ti = 60s, Td = 0(没用微分,因为PH信号本身噪音就大,微分容易放大干扰)
实际运行曲线:设定值7.5,实际值稳定在7.2到7.8之间波动,完全满足环保排放要求。
编程中踩的坑
调试的时候还出了个幺蛾子——加药泵在半夜突然全速运转,差点把PH拉到12。查了半天发现是模拟量输入模块的接线问题。
4-20mA信号线用的是普通电线,没有用屏蔽双绞线,而且和动力电缆一起走线槽。白天变频器不频繁启动还好,晚上变频器频繁调节,电磁干扰串到模拟量通道上,PLC读到的PH值变成了0.5(偏低),PID认为”偏酸”,就开始疯狂加碱。
后来换了屏蔽双绞线,屏蔽层单端接地,问题解决。
最终成果
系统跑了一个多月,我远程看过几次历史曲线,PH控制一直很稳定。
甲方厂长跟我说:以前每天要安排一个人专门盯着加药,一个月人工成本三四千。现在全自动了,工人只需要每周巡检一次加药桶的液位,不够了补一下就行。
他算了一笔账:
- 设备投入:约1.8万
- 每年节省人工:约4万
- 省下的环保罚款不敢算,但一年回本肯定没问题
说真的,这种小项目技术含量不高,但实实在在帮工厂解决了问题,比那些高大上的工业4.0方案接地气多了。做自动化不就是这样嘛——不用多高端,能帮甲方省钱省心就是最好的方案。