机器人锡焊温度数据分析方法
2022-12-27陈家欣王欣悦
金 奇,霍 澍,陈家欣,王欣悦,张 达
(中达电子(江苏)有限公司,江苏 苏州 215200)
关键字:机器人锡焊;温度;数据分析
1 引言
在机器人锡焊技术得到广泛应用的背景下,各类电子产品在生产加工期间纷纷使用锡焊机器人,但由于批量自动化生产,无法及时发现锡焊烙铁的损耗变异,很容易出现锡焊品质问题。而机器人锡焊温度作为机器人锡焊作业的重要影响因素,在锡焊品质中起到举足轻重的作用[1]。因此,了解锡焊机器人的重要组成要素,并能精确采集到机器人锡焊温度显得尤为重要。另外,通过随机森林数据分类算法充分挖掘锡焊温度数据,降低由锡焊问题引起的生产不良率,有利于现场找出锡焊品质问题的根因,真正促进电子元件焊接质量的提升。
2 数据分析方法
数据分析是指通过适当的分析方法对大量收集回来的数据进行详细研究和概括总结,提取有效信息并得出结论。随着智能制造的不断发展,企业处理数据的能力不断提升,数据量与日俱增。这需要将这些繁杂的数据进行提炼,以此探索数据的规律,进而帮助企业管理者做出正确决策。
数据分析已经逐渐演变成一种解决问题的过程,甚至可以说是一种方法论。虽然每一种产品都会有一套适应自身发展需求的数据分析流程,但是数据分析的核心流程都是一样的,典型的数据分析流程如图1所示。
图1 数据分析流程
本文重点对机器人锡焊温度数据分析方法进行研究。需求源于厂区的生产部门,对数据分析的实时性提出了较高的要求。因此,需要对数据获取的硬件提出更高的要求,来保证数据源的可靠性。第一,需要充分了解锡焊机器人的硬件架构,熟悉各个硬件的数据传输方式,并且采集锡焊机器人温度数据的硬件需要达到工业级的要求;第二,需要充分构建采集与分析的软件架构,在保证数据分析实时性的同时,确保系统高速且稳定运行。
3 硬件架构
锡焊机器人硬件架构如图2所示,包括智能分析模组、显示屏、烙铁主机、机器人、可编程逻辑控制器(Programmable Logic Controller,PLC)、送锡模组、焊接模组、除渣模组。机器人负责整个锡焊作业流程,而智能分析模组负责采集并分析整个锡焊机器人硬件架构中的数据源。
图2 锡焊机器人硬件架构
3.1 机器人锡焊作业流程
机器人锡焊主要是模仿手工焊的作业流程[2]。机器人模仿人的手臂,末端安装送锡模组和焊接模组,完成焊点位置定位、送锡和焊接整个作业流程。PLC负责控制送锡量与除渣,并采集机器人的运动到位信号,主要经过以下三个作业流程。
1)焊接模组固定安装自动焊的电烙铁及送锡模组的出锡导管,使烙铁、出锡导管和台达机器人成为一个运动整体,夹持机构具备调节烙铁焊接角度的功能。
2)送锡机构是由锡卷支架、送锡器、步进电机、出锡软管、出锡导管等组成,送锡过程是先将锡丝引入送锡器,控制步进电机来控制焊点的送锡量,然后经过出锡软管抵达烙铁头,最后烙铁头高温熔化至焊点上。
3)除渣模组是通过在焊接区域外的附近位置安装一个吹气软管、电磁阀、收集盒,采用吹气式除渣的方式,去除烙铁头因连续焊接产生的锡渣和氧化物。当烙铁头需要除渣时,机器人运动到除渣位置,通过PLC控制电磁阀将压缩空气从吹气软管中吹出,便于烙铁头部的氧化物和锡渣吹进收集盒。
3.2 智能分析模组
智能分析模组采用低功耗中央处理器、高速固态硬盘、高速运行内存和Linux操作系统,可保证系统的高速采集、长期稳定运行和节省能耗,并结合PLC采集的运动到位信号,精准完成烙铁温度数据的采集和分析任务,实现焊点数量的统计与焊点品质监测,最终通过直观的曲线显示呈现给用户。
4 软件架构
智能分析模组中安装Linux的发行版Centos7操作系统,兼顾LabVIEW和Python两种开发环境,分别用于数据的采集与分析。
4.1 数据采集环境
本文基于LabVIEW 2020的数据采集开发环境,利用LabVIEW独特的多线程、生产者消费者设计模式,完成锡焊温度数据的采集、PLC信号监控、数据存储和界面UI的交互[3]。高速无遗漏的锡焊温度数据采集采用生产者消费者(数据)结构,通过队列的方式传输采集与分析线程间数据。如图3所示,生产者完成数据采集任务,而消费者完成数据分析任务,具体过程由以下四个方面来执行。
图3 生产者与消费者流程示意图
1)读取烙铁主机及PLC的通信参数,初始化智能分析模组的通信端口,通知生产者进行数据采集任务。
2)智能分析模组实时通讯烙铁主机,读取烙铁头的温度数据,并合并当前采集时间数据和PLC监测信号数据传入生产者队列(缓冲区)。如果缓冲区溢出,即暂停数据采集(生产),否则持续采集温度数据并唤醒消费者进行数据分析(消费)。
3)消费者接收到唤醒任务后,持续进行数据分析。如果缓冲区为空,说明数据采集(生产)任务停止,待生产者重新唤醒后,即缓冲区不为空,重新进行数据分析(消费)。
4)因为烙铁休眠状态下的温度数据不是本文锡焊温度数据分析的样本,所以需要实时判断轮询烙铁是否进入休眠状态。当采集系统查询到烙铁休眠时就停止数据采集(生产)直至烙铁再次被使用。
4.2 数据分析环境
本文基于Python的数据分析开发环境。Python具有丰富和强大的数据处理和分析任务的库集,且开源、严谨、灵活和易于学习,是最适合做数据分析的。本文通过Python的开发环境,实现机器人锡焊温度数据的预处理、建模与分析。
另外,LabVIEW从2018版后增加了Python节点,扩展了LabVIEW和Python的交互功能,便于LabVIEW调用Python的功能,有利于整套软件环境的集成开发。
5 数据分析
5.1 数据集介绍
机器人锡焊中沿用了手工焊常见的五步法:准备施焊、加热焊件、融化焊料、移开焊锡、移开烙铁,而这些锡焊温度变化的过程数据也体现在了原始数据中。如图4所示,首先在准备施焊阶段,烙铁接通电源,烙铁温度会逐渐升温至设定温度后等待作业;其次在焊点作业过程中,加热焊件与融化焊料都是传导吸热的过程,加上烙铁自身加热过程,两者都会体现在烙铁温度变化中;最后作业结束后移开焊锡与烙铁时,烙铁会由于PID算法的缘故出现温度小幅度波动的回温现象。
本文重点研究图4中作业温度数据变化,而焊点温度数据是以时间序列方式记录变化的数据段。为了更好地研究每个焊点的锡焊品质,首先需要把焊点数据进行分段研究,即通过采集PLC记录下来的机器人动作信号,对锡焊时序数据进行划分,具体实现方法为以下三个方面。
1)记录下机器人焊点移动点位信号,可以将实际锡焊作业时的温度变化数据和其他过程数据分割开来,以此统计焊点数量。
2)根据上一步分割信号对锡焊温度数据进行分组,每组中包含一个焊点作业温度变化过程,以每0.5 s记录时间及温度,故每一焊点依其加工时间产生6~10笔温度记录。
3)分组后继续筛选数据,剔除记录为0异常温度数据,最终筛选后的数据集记为一个样本。
另外,目前实验阶段的锡焊机器人并不具备实时监测焊点品质的功能,需要人工记录焊点的品质结果。由于人工记录的时间的迟延问题,需要在焊点品质判定结论之后以标签的形式合并记录在每个焊点的样本数据集中,加工检测通过标记为0,不通过标记为1。锡焊采集数据说明如下三个方面。
1)时间戳:以实验开始时间为0纪录时间戳,如175 959.914;
2)温度:依据加工时间,多笔温度记录对应一个预测目标,如[452.4,449.5,450.3,451.8,449.5,451.3, …];
3)加工检测结果:为模型预测目标,正常焊点为0,异常焊点为1。
锡焊温度原始数据存在少量异常值,需先进行数据清洗后才能用于数据分析与建模,如采集数据组内皆为0的温度,将其以异常值方式剔除。数据集区分为训练数据集、测试数据集、验证数据集,分别有420,120,200笔数据,不通过率约为5%。
5.2 特征工程
锡焊温度数据为时间序列数据类型,在建模前需进行特征工程,以增加特征多样性,提升数据丰富度。根据每一组时间序列数据,增加多样特征项后再进行关键因子特征提取,以提升后续模型整体稳健度。特征提取方法以时域,频域和时序特征角度分析温度变化过程。常见的时域波形特征包括均值、方差、峰值、偏度、峭度、波形因子、脉冲因子;频域特征包括绝对傅里叶变换的谱统计量,原始序列曲线经过绝对傅里叶变换后转到频域,计算频域的光谱质心、方差、峰度、偏度等值。反映时序变化的特征包括一阶差分绝对和,近似熵。一阶差分绝对和,返回时序数据的一阶差分结果的绝对值之和,计算公式为近似熵用来量化时序数据的周期性、不可预测性和波动性,时间序列越复杂对应的近似熵越大。为了加快算法收敛速度,对提取完成后的特征进行特征归一化。
5.3 分类模型方法
整个模型是在Python3.7环境下搭建的,本文对锡焊样本数据的分布、特征和智能分析模组处理器性能有了充分理解之后,将着重从以下三个分类算法模型进行分析对比,以获得更好更稳定的模型预测结果。
1)贝叶斯。贝叶斯法则[4]主要概念为,某属性的事件发生次数越多,该属性成立的可能性越大。A为概率模型的参数,B为给定的数据集。在给定模型的先验分布p(A)和似然函数p(B|A)的情况下,模型的后验分布由贝叶斯定理获得公式
式中,p(A)是模型的边缘似然函数。
贝叶斯方法可作为预测及模型选择。在预测方面,给定训练数据,通过贝叶斯方法得到对未来数据的预测;而在模型选择方面,贝叶斯模型选择通过比较不同模型的似然函数来选取最优的,可以避免过拟合现象。
2)支持向量机。支持向量机(Support Vector Machine,SVM)是用于分类和回归的监督学习方法,这些分类器基于风险最小化原则和统计学习理论,最大化提升模型准确度。
针对线性问题,SVM 找到最优超平面,该超平面被定义为两个类之间的最大分离边际,代表两个类之间最大间隔或边距,每边最近的数据点与超平面的距离最大化,这被称为最大边距超平面,也被定义为最大边距分类器。SVM 分类器将函数定义为
式中,w是超平面的法向量,b是偏置权重,假设标签在{+1,-1} 内。若为非线性的问题,解决方案是使用核函数。内核模拟初始数据在更高维度的特征空间中的投影,将非线性空间转换为线性空间。内积 (xi,xj) 被核函数 K(x,xi)=(ϕ(x),ϕ(xi))替换。对数据进行分类的新计算公式为
3)随机森林。随机森林(Random Forest,RF),是一种集成学习方法,其基本思想是先打包几棵不同参数的决策树,并对每棵决策树进行单独预测,然后计算所有决策树投票的最终结果。随机森林创建多个分类和回归树,使用 Gini 杂质度量选择每个节点的最低杂质,作为节点中的类标签分布。Gini 杂质的值在 [0, 1] 中,当一个节点中的所有元素都属于同一类时,得到0。变量x=x1,x2,…,xj在节点t的Gini杂质度量,其中j是节点t的子节点数,N是样本数,nci是样本数x1值属于c类,ai是节点t处具有值xi的样本数。Gini 杂质公式为
拆分的基尼指数是基尼度量对变量X的不同值的加权平均值,定义公式为
分裂标准的决定将基于m个变量中计算的最低基尼杂质值。在随机森林中,每棵树使用一组不同的m个变量来构造分裂规则。
相比于传统的分类器,随机森林对特征具有比较好的鲁棒性。在处理较高维度(较多特征)数据时,不需要降维,也能实现较高的准确度和较快的训练速度。另外,由于随机性的引入,减少了数据过拟合的问题。
5.4 模型结果与评估
对于二元分类器,通常使用准确性来评估模型性能,但在处理不平衡的数据时,准确性无法反映实际值。实验选择接收者操作特征曲线(Receiver Operating Characteristic,ROC)作为模型评估方式,以真实阳性率绘制为不同截止点的假阳性率的函数,曲线下方面积(Area Under the Curve,AUC)量化ROC曲线性能,计算界于[0, 1]之间的数字,利于直观的判别模型准确度。
另外,使用F1分数作为模型的评价指标,是测试精度和召回率的加权谐波平均值。Precision指被分类器判定为正例中的正样本的比重,Recall指总的正样本中被预测为正例的样本比重,F1值越大,表示预测的结果越好。F1的计算公式为
经过实验验证随机森林在焊点分类数据集上表现效果良好,准确率高,且F1也达到了80%以上,故此实验选择随机森林模型作为预测模型。建模过程选取6个特征因子,重要度排序见表1,透过剪枝使用10颗树,深度为5。
表1 锡焊数据模型分析准确率
随机森林作为焊点温度数据分类实验的主要分类模型,因其在大量且高维数据中亦能保持良好的指令周期,同时模型训练过程提供良好的随机性,在生产中可提供关键参数监控,实时用于质量分析关注项目。
5.5 现场部署
本文将数据采集系统与数据分析模型融合成一套数据分析方法,嵌入到智能分析模组并导入锡焊机器人现场生产。通过现场一千多片PCB板的试验验证,最终拦截了80%以上的PCB板焊点不良。
6 结束语
综上所述,促进机器人锡焊品质的提升,不仅需要深入了解整个锡焊机器人的作业流程,还需要充分保证锡焊温度数据的来源,采用精确的锡焊温度才能有利于保证后期数据分析效果。通过Python随机森林分类算法得到最佳的数据分析模型,并融合数据采集系统形成一套完整的数据分析方法导入锡焊机器人现场,有利于降低PCB锡焊作业的不良率,提高生产系统的整体品质。但是,本次实验由于人为因素(焊点品质人为判定)的介入,可能出现的人为误判会直接影响数据分析模型的评估,后续可以加入视觉硬件及算法,增加焊点数据品质判定的可信度,以此进一步优化数据分析模型。另外,本次实验数据模型是建立在同一批PCB相同大小焊点的数据,对于不同大小的焊点数据后续还需要去做进一步的实验验证。