💡 写在前面: 上个月一个老客户打电话跟我说,他们化工厂被居民投诉气味问题投诉到快停产了。常规的有毒气体报警器倒是装了不少,但问题是这些报警器只会报”浓度超标”,分辨不出是正常工艺排放还是真的出事了。你说一个化工厂,一点味道没有是不可能的,但怎么区分”正常该有的味”和”出事了要跑的味道”?这个项目让我折腾了两个月,最后用一套传感器阵列加AI分类搞定了。
先说说背景。这家厂是做精细化工中间体的,厂区占地大概80亩,反应釜、蒸馏塔、储罐区都有。周围三公里有个新建的住宅小区,入住之后投诉就没断过。环保局来了好几次,要求上在线监测。
但问题来了:化工园区的气味不是单一气体,是几十上百种VOCs混在一起的。你装一个硫化氢检测仪,它能测出硫化氢浓度,但老百姓投诉的可能是苯系物的味,或者含硫有机物的味。单靠一个传感器,你根本没办法判断”现在这个味道是不是异常”。就像你让人尝一口汤,只告诉他”咸不咸”,他分辨不出来到底是鸡汤还是排骨汤。
🤔 思路:人鼻子怎么闻味的,让机器也学
我查了一下,这个技术叫”电子鼻”(Electronic Nose),其实不是什么新鲜概念。最早是上世纪80年代英国沃里克大学搞出来的,后来用在食品检测上——比如检测红酒有没有掺假、咖啡烘焙程度这些。但用在化工异味溯源上,国内做得还不多。
原理说起来也简单:人的鼻子有大约400种嗅觉受体,不同气味的分子激活不同组合的受体,大脑通过这个”组合模式”来识别气味。电子鼻就是用多个不同敏感度的气体传感器构成阵列,每个传感器对不同的气体成分有不同响应,然后拿这些响应数据训练一个分类模型。
翻译成人话:你不用一个传感器去精确测量”甲醛浓度是多少ppm”,而是用8个”偏科”的传感器去闻,然后让AI学会”这种响应组合=正常工艺排放,那种组合=泄漏”。
🔧 硬件:2000块钱的传感器阵列+Jetson
这个项目的硬件其实没想象中那么贵。我选了一套8通道的MOS(金属氧化物半导体)气体传感器阵列,具体型号不说了免得像打广告,大概就是TGS系列的几款组合——对硫化氢敏感的、对乙醇敏感的、对甲苯敏感的、对甲烷敏感的等等。每个传感器的响应范围不一样,有点像你请了8个”偏科生”,一个数学好、一个语文好,合起来能判断整体情况。
采集板用了一个STM32F407,通过I2C读取传感器数据,然后走串口发给上位的边缘计算设备。边缘计算我用的是Jetson Orin Nano,说实话有点性能浪费,但考虑到后面可能要跑更大的模型,留点余量。
💰 硬件成本清单(单套):
传感器阵列(8通道):860元
STM32采集板+外围:320元
Jetson Orin Nano(二手):1800元
防爆外壳+接线:600元
4G工业路由器:450元
总计:约4030元/套
我做了3套分布在不同区域,总共1万2出头。
🧠 软件:数据采集和模型训练
数据采集这块是最折腾的。传感器阵列不像普通变送器那样直接给你一个4-20mA的浓度值,它输出的是一组原始电阻值。温度和湿度对传感器响应影响很大,所以还必须同时采集温湿度做补偿。
我让STM32以1Hz的频率采集数据,每个样本是10个维度(8个传感器+温度+湿度),通过MQTT发到本地的InfluxDB。连续跑了两周,大概采集了120万个样本点。
然后最关键的一步:标注。我和厂里的老师傅一起,把两星期里每次”有气味事件”的时间和类型记下来。包括正常工艺排放(蒸馏塔放空、反应釜泄压这些)、异常情况(密封垫微漏、阀门滴漏)、还有外部异味(隔壁厂飘过来的)。一共标出了大概400多个有效事件,分了6类:正常排放、微量泄漏、显著泄漏、溶剂挥发、燃烧异味、外部干扰。
模型这块我试了两种方法。一开始用的随机森林,原因是简单——对于这种小样本分类问题,树模型其实很能打。但是效果一般,混淆矩阵显示”正常排放”和”微量泄漏”经常分不清楚。后来换了一个1D-CNN(一维卷积神经网络),把10维的时序数据当成一个”气味波形”来处理。准确率从随机森林的81%提到了93%。
⚙️ 和PLC联动:自动停机和报警
光监测不做事等于白搭。Jetson上跑的推理程序把结果通过Modbus TCP发给厂里的S7-1500。判定为”显著泄漏”时,PLC自动关闭对应区域的排风阀和反应釜加热,同时触发声光报警。判定为”微量泄漏”只在HMI上弹窗提示,让操作工去确认。
联动逻辑其实不复杂,但有一个细节我觉得值得说——为了防止误报导致停产,我加了一个”三次确认”机制:模型连续3次(每次间隔10秒)都判为”显著泄漏”,PLC才执行自动停机动作。如果只是单次误判,只会记录不动作。
📊 运行三个月的结果
| 指标 | 数值 |
|---|---|
| 总报警次数 | 47次 |
| 其中确认真实泄漏 | 31次(包括2次密封垫微漏) |
| 误报警 | 16次(多是温湿度突变导致) |
| 环保投诉(安装后) | 0次 |
| 提前发现的泄漏 | 2次密封垫微漏,在变严重前就处理了 |
最让我觉得值的一回是第三个月。系统凌晨3点报警”显著泄漏——含硫有机物”,定位在2号蒸馏塔。值班人员赶过去,发现一个法兰密封垫确实在缓慢渗漏。问题是在白班巡检时根本看不出来——渗漏量太小了,人眼看不见液滴,但我们的电子鼻闻到了。如果没有这个系统,等漏到肉眼可见,估计已经漏了几个小时了。
💡 踩过的坑和教训
坑1:传感器漂移。 MOS传感器用了一个月后基线会慢慢漂移。一开始没做自动校准,结果模型准确率从93%掉到了70%左右。后面加了一个每天凌晨3点(车间停产时段)的自动基线校准逻辑,用这时段的数据做归零处理。这才稳定下来。
坑2:温湿度影响比想象中大。 同样的气味,夏天30度、湿度80%的时候和冬天10度、干燥的时候,传感器响应完全不一样。后来在训练数据里加入了季节变化的数据,模型才学会了温度补偿。这也是为什么一开始误报率高的原因。
坑3:防爆认证。 化工厂区里装电子设备,防爆问题绕不过去。我买的传感器模组本身没有防爆认证,最后是装在了一个正压防爆箱里,额外花了不少钱。如果重新来,我会直接选有本安认证的传感器模组。
📝 总结
这个项目让我最大的感受是:AI在工控领域的落地,很多时候不是要搞多高大上的模型,而是解决”传统方法做不到”的问题。异味监测这事,传统的气体检测仪只能测浓度,但现场的真正需求是”分辨味道从哪来、正不正常”。一个不到万把块钱的电子鼻系统,能把这个问题解决七八成,我觉得已经很有价值了。
而且对于搞PLC的兄弟来说,边缘AI+PLC联动这个方向,未来肯定越来越多。你不需要成为AI专家,但懂一点传感器选型、知道Modbus TCP怎么和边缘设备通讯、能把推理结果接进PLC逻辑里——这几种能力组合起来,就是一个很有竞争力的方向。
👋 最后问一句: 你们有做过类似的边缘AI项目吗?或者遇到过什么”传统传感器搞不定,AI反而解决了”的问题?评论区聊聊,我一直在找这种接地气的AI+工控应用案例。