去年接了一个东莞电子代工厂的项目。他们8条SMT线,每天出3000多片PCBA板,功能测试良率在92-94%之间波动。乍一看这个数字还行,但算一笔账:每100片板里有6-8片到功能测试才发现有问题——返工成本(人工检测、拆焊、重焊、重新测试)单板约40-60元,一个月下来就是几万块的浪费。

更让人头疼的是,良率波动的原因很难定位。同一个产品昨天良率94%,今天就掉到88%,换班、换料、换程序——哪个环节出了问题?没人说得清。

这篇文章记录我们是怎么用边缘AI网关采集SMT产线的过程参数,通过AI模型预测良率走势的。不是科普,是完全真实的过程。

一、现场情况摸底

先说说工厂的现状。8条SMT线,主要生产消费电子和车载类PCBA。每条线配置:

问题在于:这些设备各自有数据输出(锡膏厚度、贴装偏移量、各温区实际温度曲线、AOI检出率),但数据互相独立。工程师看良率的时候,只能在功能测试站看到结果——"这批板不行"——但具体是锡膏太薄、回流焊温区3温度偏低、还是贴片偏移过大?没人知道。

工厂做过一些尝试:

老板的想法很直接:"能不能在产线还在跑的时候就告诉我这批板有问题?别等到测试站才发现。"

二、方案设计

目标很明确:采集SMT产线各设备的过程参数,用AI模型建立过程参数 → 良率的预测关系,在功能测试之前就给出预警。

整体架构分为四层:

数据采集层:边缘AI网关统一接入

每条线部署一台边缘AI网关,负责采集以下数据:

每条线每块板的数据汇总成一条"过程参数记录",包含约50个特征字段。

注意:市面上有MES系统能做到数据汇总,但我们选的边缘网关方案主要是因为现场IT基础薄弱——每条线的设备品牌不同、通讯协议不同,MES对接周期长、成本高。边缘网关可以逐个设备适配协议,逐步接入。

边缘计算层:本地预处理和特征工程

边缘网关不只是在透传数据,而是在本地完成了关键计算:

预处理后的数据以批次为单位上传到云端。

AI模型层:梯度提升模型做良率预测

模型选型上我们经历了反复。最开始试了LSTM(因为过程参数是时间序列),但实际效果不如XGBoost。原因很简单:良率受单批次参数影响更大,时间序列的长程依赖关系不明显。

最终使用的模型:

反馈层:看板 + 告警推送

预测结果通过Web看板展示:

三、实施过程

第一周:设备对接和协议适配

用的时间远超预期。虽然设备厂商都说"支持数据导出",但实际上:

一条线8台设备,每台设备协议不同。一周内能接入4条线已经算效率高了。

这里踩了一个比较大的坑:SPI检测仪的数据输出周期和回流焊不是同步的。SPI每块板都检测,回流焊每10秒输出一次温度数据,但一片板在回流焊里要走4-5分钟。如何把这两个数据关联到同一块板上?

解决方案是用"板号 + 时间窗口"来关联。机器会在每块板上打印二维码,扫描站扫到板号后,取前后4-5分钟的SPI数据和回流焊数据作为这块板的关联参数。

第二周:数据质量问题和清洗

数据接进来了,但质量堪忧。最常见的问题:

解决这些问题的代价比想象中大。大约花了一周半的时间写清洗脚本和校验规则。规则本身不复杂,难在每种异常都要写对应的处理逻辑。

教训:做数据分析的项目,百分之六十以上的时间花在数据准备上,不是模型上。这个比例在工厂场景只会更高。如果一开始就低估数据清洗的工作量,项目一定会延期。

第三周:基线模型和特征工程

用3个月历史数据跑了一个基线模型。初始效果比较差,准确率只有约65%。分析后发现几个问题:

数据不平衡:1200个批次中,真正的不良批次(良率<85%)只有约90个,占比不到8%。直接用原始数据训练,模型倾向于把所有批次都预测为良品。

解决办法:SMOTE过采样 + 对不良批次加权,把不良批次的权重提高到正常批次的3倍。

特征太多反而不好:50个特征中有不少是高度相关的。比如回流焊温区3和温区4的实际温度高度相关(两个温区挨着,互相影响),同时保留反而增加了噪声。

解决办法:用特征重要性排序 + 人工审核保留了28个特征。一些"直觉上重要但数据上表现不佳"的特征也被剔除了——比如ESD数据,理论上静电影响良率,但该工厂的ESD控制一直做得比较好,这个特征几乎没有区分度。

最意外的发现:最重要的特征不是回流焊温度、也不是锡膏厚度,而是SPI检测的锡膏面积比标准差——也就是同一批板子之间锡膏面积的一致性。一致性越差,良率越低。这个发现反过来指导了产线改进——把锡膏印刷机的参数(刮刀压力、脱模速度)调稳后,良率确实有提升。

第四周:模型上线和联调

模型上线后第一周就遇到了问题:预测值和实际良率偏差较大。排查后发现,我们用的训练数据是冬季的(12月-2月),而现在是6月份。车间温度变化导致回流焊的热补偿和冬天不一样,同样的温度设置在夏天实际板温会偏高。

解决办法:每两周用小批量最新数据微调模型(在线学习),让模型适应季节性变化。

另外一个问题:产线工程师一开始不信任模型。"电脑算出来的良率,跟我测出来的不一样。"我们做了一件事让信任建立起来——在产线入口放了一个大屏幕,屏幕上显示:模型预测良率、实际良率、以及每批次的风险参数Top 3。当预测准了几次之后,工程师开始接受这个工具。

四、实际效果

良率:从92-94%提升到约97%
模型上线运行3个月后,8条线的平均良率稳定在约97%。不是模型直接提升了良率,而是模型提供的预警让工程师能提前干预:发现某批次风险高 → 检查对应的参数 → 调整设备 → 后续批次改善。
高风险批次提前预警:累计32次
其中有18次模型给出了明确的风险参数来源,工程师根据提示快速定位了问题(锡膏偏薄、炉温偏移、贴片偏移增大等),调整后后续批次恢复正常。
返工成本降低
不良批次从平均每月40-50批降到约15-20批。每批次平均返工成本约300-500元,月度节省约万元级别。更重要的是,不良品被更早发现(在功能测试前),返工难度和成本都更低。

还有一些意料之外的收获:

五、遇到的问题和解决办法

问题1:产品切换频繁,模型需要频繁重新训练

这家工厂的产品种类多(约20种不同型号的PCBA),每种产品的工艺参数差异大。统一模型的效果远不如按产品建模型好。

解决办法:改为按产品分组建模型。产量大的5个产品各建一个独立模型,产量小的产品统一用一个"其他"模型。前端自动识别产品型号后调用对应的模型。

问题2:回流焊温度数据滞后

回流焊的温度数据是10秒一个点,但整片板过完炉要4-5分钟。等温度数据全部出来,板已经到AOI甚至ICT了。"预警"变成了"事后验证",失去了实时性。

解决办法:改为用各温区的设定温度 + 前5块板的实际温度均值来预测。虽然精度有所下降,但做到了"板还没出炉就预警"。

问题3:操作人员抵触

一些经验丰富的产线师傅觉得模型"乱说"——模型说这批板风险高,但凭经验觉得没问题。这种不信任在一次实际验证后开始瓦解:模型预判风险高的一个批次,功能测试确实挂了6块板(正常是1-2块)。

问题4:模型过拟合

早期模型在训练集上表现很好(准确率95%+),但上线后实际上有很大偏差。原因是训练数据量太少(只有90个不良批次),模型记住了特定模式。

解决办法:随着运行天数增加,每个新发现的不良批次都被加入训练集。运行3个月后,不良批次数据量增加到约200批,模型泛化能力明显改善。

六、我的思考

这个项目做完之后,我对"AI提升良率"这件事有了不同的理解。

做好质量预测的关键不是AI算法,而是数据基建。这个项目最花时间的是设备对接、协议解析、数据清洗——不是调参。如果工厂没有好的数据基础(设备互联、数据标准化、时序对齐),再好的算法也没用。

预测的目的不是替代人,而是帮人缩小排查范围。模型不能直接告诉工程师"你去调温区3的加热丝",而是说"温区3温度异常和良率下降相关"。最终的判断和操作还是靠人。但从检查50个参数变成看Top 3风险参数,效率提升很明显。

产线上的AI落地最大的障碍不是技术,是信任。产线师傅不信任黑盒预测,是人之常情。最好的方式不是解释算法原理,而是让他看到预测对了——连续准了几次,信任自然建立。

产品切换频繁的工厂,按产品建模比通用模型靠谱得多。这个经验在后来的项目中也反复验证了——工业场景里,做特化的成本比做通用的低,效果反而好。

七、给你的建议

如果你也在考虑用AI做良率预测,几点个人经验:

  1. 先做数据摸底,再做模型——花至少一半的时间搞清楚你的设备能输出什么数据、数据质量怎么样、怎么把不同设备的数据关联起来。数据底子清楚了,模型就是顺水推舟的事
  2. 从一条线开始试点——别上来就想把所有产线全覆盖。先选一条线上跑通流程,验证效果再复制
  3. 给工程师看的预测结果要可解释——不要只给一个分,"良率92%→预测88%"没用。要告诉他"预测低是因为SPI锡膏面积比标准差超出正常范围"
  4. 行业经验比数据科学重要——团队里最好有懂SMT工艺的人。我们一开始把回流焊各温区温度全当作独立特征,后来工艺工程师告诉我们温区之间有热耦合,相邻温区温度关联性强。这个知识直接帮我们减了5个冗余特征
  5. 拥抱数据的不完美——工厂数据永远是脏的。不要等到数据完美了再开始,从能用的数据开始跑,边跑边改进
  6. 模型要持续更新——季节变化、设备老化、产品换代都会影响参数和良率的关系。把模型更新做成一个自动化流程,而不是一次性工作