金 奇,霍 澍,陳家欣,王欣悅,張 達
(中達電子(江蘇)有限公司,江蘇 蘇州 215200)
關(guān)鍵字:機器人錫焊;溫度;數(shù)據(jù)分析
在機器人錫焊技術(shù)得到廣泛應(yīng)用的背景下,各類電子產(chǎn)品在生產(chǎn)加工期間紛紛使用錫焊機器人,但由于批量自動化生產(chǎn),無法及時發(fā)現(xiàn)錫焊烙鐵的損耗變異,很容易出現(xiàn)錫焊品質(zhì)問題。而機器人錫焊溫度作為機器人錫焊作業(yè)的重要影響因素,在錫焊品質(zhì)中起到舉足輕重的作用[1]。因此,了解錫焊機器人的重要組成要素,并能精確采集到機器人錫焊溫度顯得尤為重要。另外,通過隨機森林數(shù)據(jù)分類算法充分挖掘錫焊溫度數(shù)據(jù),降低由錫焊問題引起的生產(chǎn)不良率,有利于現(xiàn)場找出錫焊品質(zhì)問題的根因,真正促進電子元件焊接質(zhì)量的提升。
數(shù)據(jù)分析是指通過適當(dāng)?shù)姆治龇椒▽Υ罅渴占貋淼臄?shù)據(jù)進行詳細研究和概括總結(jié),提取有效信息并得出結(jié)論。隨著智能制造的不斷發(fā)展,企業(yè)處理數(shù)據(jù)的能力不斷提升,數(shù)據(jù)量與日俱增。這需要將這些繁雜的數(shù)據(jù)進行提煉,以此探索數(shù)據(jù)的規(guī)律,進而幫助企業(yè)管理者做出正確決策。
數(shù)據(jù)分析已經(jīng)逐漸演變成一種解決問題的過程,甚至可以說是一種方法論。雖然每一種產(chǎn)品都會有一套適應(yīng)自身發(fā)展需求的數(shù)據(jù)分析流程,但是數(shù)據(jù)分析的核心流程都是一樣的,典型的數(shù)據(jù)分析流程如圖1所示。
圖1 數(shù)據(jù)分析流程
本文重點對機器人錫焊溫度數(shù)據(jù)分析方法進行研究。需求源于廠區(qū)的生產(chǎn)部門,對數(shù)據(jù)分析的實時性提出了較高的要求。因此,需要對數(shù)據(jù)獲取的硬件提出更高的要求,來保證數(shù)據(jù)源的可靠性。第一,需要充分了解錫焊機器人的硬件架構(gòu),熟悉各個硬件的數(shù)據(jù)傳輸方式,并且采集錫焊機器人溫度數(shù)據(jù)的硬件需要達到工業(yè)級的要求;第二,需要充分構(gòu)建采集與分析的軟件架構(gòu),在保證數(shù)據(jù)分析實時性的同時,確保系統(tǒng)高速且穩(wěn)定運行。
錫焊機器人硬件架構(gòu)如圖2所示,包括智能分析模組、顯示屏、烙鐵主機、機器人、可編程邏輯控制器(Programmable Logic Controller,PLC)、送錫模組、焊接模組、除渣模組。機器人負責(zé)整個錫焊作業(yè)流程,而智能分析模組負責(zé)采集并分析整個錫焊機器人硬件架構(gòu)中的數(shù)據(jù)源。
圖2 錫焊機器人硬件架構(gòu)
機器人錫焊主要是模仿手工焊的作業(yè)流程[2]。機器人模仿人的手臂,末端安裝送錫模組和焊接模組,完成焊點位置定位、送錫和焊接整個作業(yè)流程。PLC負責(zé)控制送錫量與除渣,并采集機器人的運動到位信號,主要經(jīng)過以下三個作業(yè)流程。
1)焊接模組固定安裝自動焊的電烙鐵及送錫模組的出錫導(dǎo)管,使烙鐵、出錫導(dǎo)管和臺達機器人成為一個運動整體,夾持機構(gòu)具備調(diào)節(jié)烙鐵焊接角度的功能。
2)送錫機構(gòu)是由錫卷支架、送錫器、步進電機、出錫軟管、出錫導(dǎo)管等組成,送錫過程是先將錫絲引入送錫器,控制步進電機來控制焊點的送錫量,然后經(jīng)過出錫軟管抵達烙鐵頭,最后烙鐵頭高溫熔化至焊點上。
3)除渣模組是通過在焊接區(qū)域外的附近位置安裝一個吹氣軟管、電磁閥、收集盒,采用吹氣式除渣的方式,去除烙鐵頭因連續(xù)焊接產(chǎn)生的錫渣和氧化物。當(dāng)烙鐵頭需要除渣時,機器人運動到除渣位置,通過PLC控制電磁閥將壓縮空氣從吹氣軟管中吹出,便于烙鐵頭部的氧化物和錫渣吹進收集盒。
智能分析模組采用低功耗中央處理器、高速固態(tài)硬盤、高速運行內(nèi)存和Linux操作系統(tǒng),可保證系統(tǒng)的高速采集、長期穩(wěn)定運行和節(jié)省能耗,并結(jié)合PLC采集的運動到位信號,精準完成烙鐵溫度數(shù)據(jù)的采集和分析任務(wù),實現(xiàn)焊點數(shù)量的統(tǒng)計與焊點品質(zhì)監(jiān)測,最終通過直觀的曲線顯示呈現(xiàn)給用戶。
智能分析模組中安裝Linux的發(fā)行版Centos7操作系統(tǒng),兼顧LabVIEW和Python兩種開發(fā)環(huán)境,分別用于數(shù)據(jù)的采集與分析。
本文基于LabVIEW 2020的數(shù)據(jù)采集開發(fā)環(huán)境,利用LabVIEW獨特的多線程、生產(chǎn)者消費者設(shè)計模式,完成錫焊溫度數(shù)據(jù)的采集、PLC信號監(jiān)控、數(shù)據(jù)存儲和界面UI的交互[3]。高速無遺漏的錫焊溫度數(shù)據(jù)采集采用生產(chǎn)者消費者(數(shù)據(jù))結(jié)構(gòu),通過隊列的方式傳輸采集與分析線程間數(shù)據(jù)。如圖3所示,生產(chǎn)者完成數(shù)據(jù)采集任務(wù),而消費者完成數(shù)據(jù)分析任務(wù),具體過程由以下四個方面來執(zhí)行。
圖3 生產(chǎn)者與消費者流程示意圖
1)讀取烙鐵主機及PLC的通信參數(shù),初始化智能分析模組的通信端口,通知生產(chǎn)者進行數(shù)據(jù)采集任務(wù)。
2)智能分析模組實時通訊烙鐵主機,讀取烙鐵頭的溫度數(shù)據(jù),并合并當(dāng)前采集時間數(shù)據(jù)和PLC監(jiān)測信號數(shù)據(jù)傳入生產(chǎn)者隊列(緩沖區(qū))。如果緩沖區(qū)溢出,即暫停數(shù)據(jù)采集(生產(chǎn)),否則持續(xù)采集溫度數(shù)據(jù)并喚醒消費者進行數(shù)據(jù)分析(消費)。
3)消費者接收到喚醒任務(wù)后,持續(xù)進行數(shù)據(jù)分析。如果緩沖區(qū)為空,說明數(shù)據(jù)采集(生產(chǎn))任務(wù)停止,待生產(chǎn)者重新喚醒后,即緩沖區(qū)不為空,重新進行數(shù)據(jù)分析(消費)。
4)因為烙鐵休眠狀態(tài)下的溫度數(shù)據(jù)不是本文錫焊溫度數(shù)據(jù)分析的樣本,所以需要實時判斷輪詢烙鐵是否進入休眠狀態(tài)。當(dāng)采集系統(tǒng)查詢到烙鐵休眠時就停止數(shù)據(jù)采集(生產(chǎn))直至烙鐵再次被使用。
本文基于Python的數(shù)據(jù)分析開發(fā)環(huán)境。Python具有豐富和強大的數(shù)據(jù)處理和分析任務(wù)的庫集,且開源、嚴謹、靈活和易于學(xué)習(xí),是最適合做數(shù)據(jù)分析的。本文通過Python的開發(fā)環(huán)境,實現(xiàn)機器人錫焊溫度數(shù)據(jù)的預(yù)處理、建模與分析。
另外,LabVIEW從2018版后增加了Python節(jié)點,擴展了LabVIEW和Python的交互功能,便于LabVIEW調(diào)用Python的功能,有利于整套軟件環(huán)境的集成開發(fā)。
機器人錫焊中沿用了手工焊常見的五步法:準備施焊、加熱焊件、融化焊料、移開焊錫、移開烙鐵,而這些錫焊溫度變化的過程數(shù)據(jù)也體現(xiàn)在了原始數(shù)據(jù)中。如圖4所示,首先在準備施焊階段,烙鐵接通電源,烙鐵溫度會逐漸升溫至設(shè)定溫度后等待作業(yè);其次在焊點作業(yè)過程中,加熱焊件與融化焊料都是傳導(dǎo)吸熱的過程,加上烙鐵自身加熱過程,兩者都會體現(xiàn)在烙鐵溫度變化中;最后作業(yè)結(jié)束后移開焊錫與烙鐵時,烙鐵會由于PID算法的緣故出現(xiàn)溫度小幅度波動的回溫現(xiàn)象。
本文重點研究圖4中作業(yè)溫度數(shù)據(jù)變化,而焊點溫度數(shù)據(jù)是以時間序列方式記錄變化的數(shù)據(jù)段。為了更好地研究每個焊點的錫焊品質(zhì),首先需要把焊點數(shù)據(jù)進行分段研究,即通過采集PLC記錄下來的機器人動作信號,對錫焊時序數(shù)據(jù)進行劃分,具體實現(xiàn)方法為以下三個方面。
1)記錄下機器人焊點移動點位信號,可以將實際錫焊作業(yè)時的溫度變化數(shù)據(jù)和其他過程數(shù)據(jù)分割開來,以此統(tǒng)計焊點數(shù)量。
2)根據(jù)上一步分割信號對錫焊溫度數(shù)據(jù)進行分組,每組中包含一個焊點作業(yè)溫度變化過程,以每0.5 s記錄時間及溫度,故每一焊點依其加工時間產(chǎn)生6~10筆溫度記錄。
3)分組后繼續(xù)篩選數(shù)據(jù),剔除記錄為0異常溫度數(shù)據(jù),最終篩選后的數(shù)據(jù)集記為一個樣本。
另外,目前實驗階段的錫焊機器人并不具備實時監(jiān)測焊點品質(zhì)的功能,需要人工記錄焊點的品質(zhì)結(jié)果。由于人工記錄的時間的遲延問題,需要在焊點品質(zhì)判定結(jié)論之后以標簽的形式合并記錄在每個焊點的樣本數(shù)據(jù)集中,加工檢測通過標記為0,不通過標記為1。錫焊采集數(shù)據(jù)說明如下三個方面。
1)時間戳:以實驗開始時間為0紀錄時間戳,如175 959.914;
2)溫度:依據(jù)加工時間,多筆溫度記錄對應(yīng)一個預(yù)測目標,如[452.4,449.5,450.3,451.8,449.5,451.3, …];
3)加工檢測結(jié)果:為模型預(yù)測目標,正常焊點為0,異常焊點為1。
錫焊溫度原始數(shù)據(jù)存在少量異常值,需先進行數(shù)據(jù)清洗后才能用于數(shù)據(jù)分析與建模,如采集數(shù)據(jù)組內(nèi)皆為0的溫度,將其以異常值方式剔除。數(shù)據(jù)集區(qū)分為訓(xùn)練數(shù)據(jù)集、測試數(shù)據(jù)集、驗證數(shù)據(jù)集,分別有420,120,200筆數(shù)據(jù),不通過率約為5%。
錫焊溫度數(shù)據(jù)為時間序列數(shù)據(jù)類型,在建模前需進行特征工程,以增加特征多樣性,提升數(shù)據(jù)豐富度。根據(jù)每一組時間序列數(shù)據(jù),增加多樣特征項后再進行關(guān)鍵因子特征提取,以提升后續(xù)模型整體穩(wěn)健度。特征提取方法以時域,頻域和時序特征角度分析溫度變化過程。常見的時域波形特征包括均值、方差、峰值、偏度、峭度、波形因子、脈沖因子;頻域特征包括絕對傅里葉變換的譜統(tǒng)計量,原始序列曲線經(jīng)過絕對傅里葉變換后轉(zhuǎn)到頻域,計算頻域的光譜質(zhì)心、方差、峰度、偏度等值。反映時序變化的特征包括一階差分絕對和,近似熵。一階差分絕對和,返回時序數(shù)據(jù)的一階差分結(jié)果的絕對值之和,計算公式為近似熵用來量化時序數(shù)據(jù)的周期性、不可預(yù)測性和波動性,時間序列越復(fù)雜對應(yīng)的近似熵越大。為了加快算法收斂速度,對提取完成后的特征進行特征歸一化。
整個模型是在Python3.7環(huán)境下搭建的,本文對錫焊樣本數(shù)據(jù)的分布、特征和智能分析模組處理器性能有了充分理解之后,將著重從以下三個分類算法模型進行分析對比,以獲得更好更穩(wěn)定的模型預(yù)測結(jié)果。
1)貝葉斯。貝葉斯法則[4]主要概念為,某屬性的事件發(fā)生次數(shù)越多,該屬性成立的可能性越大。A為概率模型的參數(shù),B為給定的數(shù)據(jù)集。在給定模型的先驗分布p(A)和似然函數(shù)p(B|A)的情況下,模型的后驗分布由貝葉斯定理獲得公式
式中,p(A)是模型的邊緣似然函數(shù)。
貝葉斯方法可作為預(yù)測及模型選擇。在預(yù)測方面,給定訓(xùn)練數(shù)據(jù),通過貝葉斯方法得到對未來數(shù)據(jù)的預(yù)測;而在模型選擇方面,貝葉斯模型選擇通過比較不同模型的似然函數(shù)來選取最優(yōu)的,可以避免過擬合現(xiàn)象。
2)支持向量機。支持向量機(Support Vector Machine,SVM)是用于分類和回歸的監(jiān)督學(xué)習(xí)方法,這些分類器基于風(fēng)險最小化原則和統(tǒng)計學(xué)習(xí)理論,最大化提升模型準確度。
針對線性問題,SVM 找到最優(yōu)超平面,該超平面被定義為兩個類之間的最大分離邊際,代表兩個類之間最大間隔或邊距,每邊最近的數(shù)據(jù)點與超平面的距離最大化,這被稱為最大邊距超平面,也被定義為最大邊距分類器。SVM 分類器將函數(shù)定義為
式中,w是超平面的法向量,b是偏置權(quán)重,假設(shè)標簽在{+1,-1} 內(nèi)。若為非線性的問題,解決方案是使用核函數(shù)。內(nèi)核模擬初始數(shù)據(jù)在更高維度的特征空間中的投影,將非線性空間轉(zhuǎn)換為線性空間。內(nèi)積 (xi,xj) 被核函數(shù) K(x,xi)=(?(x),?(xi))替換。對數(shù)據(jù)進行分類的新計算公式為
3)隨機森林。隨機森林(Random Forest,RF),是一種集成學(xué)習(xí)方法,其基本思想是先打包幾棵不同參數(shù)的決策樹,并對每棵決策樹進行單獨預(yù)測,然后計算所有決策樹投票的最終結(jié)果。隨機森林創(chuàng)建多個分類和回歸樹,使用 Gini 雜質(zhì)度量選擇每個節(jié)點的最低雜質(zhì),作為節(jié)點中的類標簽分布。Gini 雜質(zhì)的值在 [0, 1] 中,當(dāng)一個節(jié)點中的所有元素都屬于同一類時,得到0。變量x=x1,x2,…,xj在節(jié)點t的Gini雜質(zhì)度量,其中j是節(jié)點t的子節(jié)點數(shù),N是樣本數(shù),nci是樣本數(shù)x1值屬于c類,ai是節(jié)點t處具有值xi的樣本數(shù)。Gini 雜質(zhì)公式為
拆分的基尼指數(shù)是基尼度量對變量X的不同值的加權(quán)平均值,定義公式為
分裂標準的決定將基于m個變量中計算的最低基尼雜質(zhì)值。在隨機森林中,每棵樹使用一組不同的m個變量來構(gòu)造分裂規(guī)則。
相比于傳統(tǒng)的分類器,隨機森林對特征具有比較好的魯棒性。在處理較高維度(較多特征)數(shù)據(jù)時,不需要降維,也能實現(xiàn)較高的準確度和較快的訓(xùn)練速度。另外,由于隨機性的引入,減少了數(shù)據(jù)過擬合的問題。
對于二元分類器,通常使用準確性來評估模型性能,但在處理不平衡的數(shù)據(jù)時,準確性無法反映實際值。實驗選擇接收者操作特征曲線(Receiver Operating Characteristic,ROC)作為模型評估方式,以真實陽性率繪制為不同截止點的假陽性率的函數(shù),曲線下方面積(Area Under the Curve,AUC)量化ROC曲線性能,計算界于[0, 1]之間的數(shù)字,利于直觀的判別模型準確度。
另外,使用F1分數(shù)作為模型的評價指標,是測試精度和召回率的加權(quán)諧波平均值。Precision指被分類器判定為正例中的正樣本的比重,Recall指總的正樣本中被預(yù)測為正例的樣本比重,F(xiàn)1值越大,表示預(yù)測的結(jié)果越好。F1的計算公式為
經(jīng)過實驗驗證隨機森林在焊點分類數(shù)據(jù)集上表現(xiàn)效果良好,準確率高,且F1也達到了80%以上,故此實驗選擇隨機森林模型作為預(yù)測模型。建模過程選取6個特征因子,重要度排序見表1,透過剪枝使用10顆樹,深度為5。
表1 錫焊數(shù)據(jù)模型分析準確率
隨機森林作為焊點溫度數(shù)據(jù)分類實驗的主要分類模型,因其在大量且高維數(shù)據(jù)中亦能保持良好的指令周期,同時模型訓(xùn)練過程提供良好的隨機性,在生產(chǎn)中可提供關(guān)鍵參數(shù)監(jiān)控,實時用于質(zhì)量分析關(guān)注項目。
本文將數(shù)據(jù)采集系統(tǒng)與數(shù)據(jù)分析模型融合成一套數(shù)據(jù)分析方法,嵌入到智能分析模組并導(dǎo)入錫焊機器人現(xiàn)場生產(chǎn)。通過現(xiàn)場一千多片PCB板的試驗驗證,最終攔截了80%以上的PCB板焊點不良。
綜上所述,促進機器人錫焊品質(zhì)的提升,不僅需要深入了解整個錫焊機器人的作業(yè)流程,還需要充分保證錫焊溫度數(shù)據(jù)的來源,采用精確的錫焊溫度才能有利于保證后期數(shù)據(jù)分析效果。通過Python隨機森林分類算法得到最佳的數(shù)據(jù)分析模型,并融合數(shù)據(jù)采集系統(tǒng)形成一套完整的數(shù)據(jù)分析方法導(dǎo)入錫焊機器人現(xiàn)場,有利于降低PCB錫焊作業(yè)的不良率,提高生產(chǎn)系統(tǒng)的整體品質(zhì)。但是,本次實驗由于人為因素(焊點品質(zhì)人為判定)的介入,可能出現(xiàn)的人為誤判會直接影響數(shù)據(jù)分析模型的評估,后續(xù)可以加入視覺硬件及算法,增加焊點數(shù)據(jù)品質(zhì)判定的可信度,以此進一步優(yōu)化數(shù)據(jù)分析模型。另外,本次實驗數(shù)據(jù)模型是建立在同一批PCB相同大小焊點的數(shù)據(jù),對于不同大小的焊點數(shù)據(jù)后續(xù)還需要去做進一步的實驗驗證。