張紅欣
(昌吉學(xué)院,新疆 昌吉 831100)
現(xiàn)代機(jī)械制造中,精密和超精密加工技術(shù)已成為制造強(qiáng)國的關(guān)注點(diǎn),機(jī)床在加工過程中,各部件受到環(huán)境溫度、切削過程、冷卻液、電機(jī)等熱源的影響而產(chǎn)生熱變形[1]。大量研究顯示[2],機(jī)床因受熱而形成的熱誤差占機(jī)床總誤差的40%~70%。因此,減小機(jī)床熱誤差對提高機(jī)床加工精度至關(guān)重要。若采用誤差防止法(即利用設(shè)計(jì)和制造途徑減少或消除可能的熱誤差源,或通過控制溫度因素來滿足加工精度要求)會形成昂貴的系統(tǒng)成本,不僅易受外界環(huán)境干擾引起誤差,而且現(xiàn)有的加工能力將遭到限制。誤差補(bǔ)償法是采用某種控制策略,利用計(jì)算機(jī)技術(shù)和傳感器技術(shù),由執(zhí)行機(jī)構(gòu)對誤差源進(jìn)行分析、建立數(shù)學(xué)模型,快速計(jì)算補(bǔ)償量,并反饋到控制系統(tǒng)中,實(shí)現(xiàn)驅(qū)動量的修正,最后實(shí)現(xiàn)減小加工誤差的目的[3-4]。
為使被加工件可能獲得比“母機(jī)”更高的加工精度,本文采用螢火蟲優(yōu)化算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),使得BP神經(jīng)網(wǎng)絡(luò)具有最優(yōu)的網(wǎng)絡(luò)初始值和閾值,通過傳感器技術(shù)實(shí)時檢測關(guān)鍵點(diǎn)溫度,通過各進(jìn)給軸熱誤差模型實(shí)時推斷和預(yù)測熱變形誤差的情況,并將預(yù)測所得的熱誤差補(bǔ)償量輸出至PMC,可在一定程度上提高熱誤差補(bǔ)償?shù)木龋沟脭?shù)控機(jī)床實(shí)時補(bǔ)償更有效。
螢火蟲算法(Glowworm Swarm Optimization, GSO)是一種基于螢火蟲群體隨機(jī)搜索而形成聚集在少數(shù)位置現(xiàn)象的一種智能優(yōu)化算法[5]。分布在目標(biāo)函數(shù)定義區(qū)間內(nèi)的每只人工螢火蟲各自攜帶自身的螢光素,并擁有各自的活動區(qū)間,該區(qū)域稱為決策范圍。各螢火蟲的亮度與各自所在位置的目標(biāo)函數(shù)適應(yīng)度值有關(guān),越亮的螢火蟲表示它成為目標(biāo)值的可能性更大。GSO算法主要由初始化螢火蟲信息、更新熒光素、更新螢火蟲位置、更新決策域四階段構(gòu)成。
該算法模擬螢火蟲通過個體發(fā)光來吸引同伴或獵物,從而實(shí)現(xiàn)絕大多數(shù)個體最終聚集在若干個具有較優(yōu)目標(biāo)函數(shù)值位置的目的。
假設(shè)目標(biāo)群體中共有N只螢火蟲,其中(xi, yi)表示第i只螢火蟲所在的位置,對應(yīng)目標(biāo)函數(shù)為f(xi, yi),Ti為該處螢火蟲熒光素的值,每只螢火蟲的決策半徑采用式(1)實(shí)現(xiàn)更新:
式中:||x||為x的范數(shù);xj(t)為第j只螢火蟲在第t代的位置;lj(t)為第j只螢火蟲在第t代所具有的熒光素值。
第i只螢火蟲向其鄰域的螢火蟲j移動的概率表示為Pij:
第i只螢火蟲的位置更新公式為:
式中,s為螢火蟲移動的步長。
第i只螢火蟲的熒光素值的更新公式為:
式中:li(t)為第i只螢火蟲經(jīng)t次迭代后的熒光素值;ρ∈(0, 1),為熒光素所占的權(quán)重;γ為熒光素的更新頻率;f(xi(t))為適應(yīng)度函數(shù)值。
螢火蟲算法在具體迭代運(yùn)算中進(jìn)行數(shù)據(jù)處理的流程如圖1所示。
圖1 螢火蟲算法工作流程
BP神經(jīng)網(wǎng)絡(luò)[6]應(yīng)用廣泛,具有非線性映射等特點(diǎn),其學(xué)習(xí)過程由正向數(shù)據(jù)傳播和反向誤差傳播組成。
數(shù)控機(jī)床各進(jìn)給軸在運(yùn)動過程中所需的補(bǔ)償量應(yīng)在較短時間內(nèi)進(jìn)行預(yù)測,本文考慮到原始BP神經(jīng)網(wǎng)絡(luò)算法在訓(xùn)練過程中收斂較慢,為滿足控制系統(tǒng)的實(shí)時應(yīng)用,結(jié)合共軛梯度學(xué)習(xí)算法對傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行了改良。
通過解析BP算法的推演過程可知[7],原始算法利用梯度下降法實(shí)現(xiàn)逐步逼近,但該方法在具體仿真時所耗費(fèi)的仿真時間較長,不能滿足系統(tǒng)要求的實(shí)時性。因此本文在原有基礎(chǔ)上加入了共軛梯度學(xué)習(xí)算法,這種方法可以在更少迭代次數(shù)的情況下達(dá)到收斂。它帶來的額外代價是迭代計(jì)算的工作量有所增加。盡管如此,許多應(yīng)用已表明,共軛梯度學(xué)習(xí)算法總的收斂速度相比常規(guī)BP算法提高了數(shù)十倍甚至更多。
共軛梯度學(xué)習(xí)算法原先應(yīng)用于求解非線性多變量函數(shù)的極值,共軛梯度求解的計(jì)算流程如圖2所示。
圖2 共軛梯度學(xué)習(xí)算法求解過程
BP神經(jīng)網(wǎng)絡(luò)算法隨著訓(xùn)練樣本維數(shù)的不斷增加,其收斂速度將變慢,網(wǎng)絡(luò)性能降低,若網(wǎng)絡(luò)的初始值和閾值選擇不當(dāng),將導(dǎo)致網(wǎng)絡(luò)難以收斂[8]。因此,通過螢火蟲優(yōu)化算法為改良后的BP神經(jīng)網(wǎng)絡(luò)提供最優(yōu)的初始值和閾值,可使整個網(wǎng)絡(luò)得到較為準(zhǔn)確的預(yù)測值,為各進(jìn)給軸提供較精確的補(bǔ)償,從而實(shí)現(xiàn)在熱因素環(huán)境下的誤差補(bǔ)償。
對于神經(jīng)網(wǎng)絡(luò)而言,若把神經(jīng)網(wǎng)絡(luò)看成是一個預(yù)測函數(shù),螢火蟲算法優(yōu)化網(wǎng)絡(luò)中得到的最優(yōu)預(yù)測值為BP神經(jīng)網(wǎng)絡(luò)提供最優(yōu)初始權(quán)值和閾值,優(yōu)化后網(wǎng)絡(luò)的預(yù)測效果明顯優(yōu)于未優(yōu)化的網(wǎng)絡(luò)。網(wǎng)絡(luò)經(jīng)訓(xùn)練后輸出的預(yù)測值更準(zhǔn)確,系統(tǒng)實(shí)時性更強(qiáng)。將螢火蟲算法與BP神經(jīng)網(wǎng)絡(luò)算法相結(jié)合進(jìn)行運(yùn)算的工作流程如圖3所示。
圖3 GSO-BP網(wǎng)絡(luò)工作流程
GSO-BP神經(jīng)網(wǎng)絡(luò)有6個輸入?yún)?shù)、1個輸出參數(shù),所以設(shè)置的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為6-12-1,即輸入層有6個節(jié)點(diǎn),隱含層有12個節(jié)點(diǎn),輸出層有個1節(jié)點(diǎn),共有84個權(quán)值,13個閾值,所以螢火蟲算法個體編碼長度為97。其他參數(shù)設(shè)置見表1所列。
表1 GSO參數(shù)設(shè)置表
螢火蟲算法優(yōu)化過程中最優(yōu)個體適應(yīng)度值變化如4圖所示。可以看出,螢火蟲算法在種群為10的情況下,經(jīng)過70次進(jìn)化即收斂于最佳適應(yīng)度值0.26,說明螢火蟲算法僅需要很小的代價,就能尋找到最優(yōu)BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值。采用螢火蟲算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值可行且高效。
圖4 GSO算法進(jìn)化過程
通過上述建模分析,建立了在不同溫度條件下各進(jìn)給軸的定位誤差模型,并結(jié)合PMC端口[9]利用CNC系統(tǒng)中的D地址進(jìn)行存儲,調(diào)用R地址中的數(shù)值實(shí)現(xiàn)誤差補(bǔ)償控制。在VDM-75型機(jī)床上進(jìn)行各進(jìn)給軸補(bǔ)償?shù)脑囼?yàn)取得了不錯的補(bǔ)償效果,波動幅度較小。熱誤差補(bǔ)償實(shí)驗(yàn)對比結(jié)果如圖5所示。
圖5 熱誤差補(bǔ)償實(shí)驗(yàn)結(jié)果對比
本文結(jié)合螢火蟲算法和優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò),建立了基于GSO-BP神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)模型,該模型在VDM-75型機(jī)床試驗(yàn)中證明,即使受到熱誤差環(huán)境的影響,誤差波動范圍最低也可減少43.6%。該方法具有概念簡單、運(yùn)算速度快、預(yù)測結(jié)果較準(zhǔn)確等特點(diǎn),具有一定的工程應(yīng)用價值。