常添淵,黃曉華
(南京理工大學機械工程學院,江蘇 南京 210094)
根據研究,在高速精密加工領域,機床熱變形所引起的熱誤差約占機床總誤差的40%~70%,是制約數控機床精度水平的重要原因[1]。而高速電主軸是機床的核心部件,電主軸的熱誤差將直接影響機床的加工精度,為了減少電主軸的熱誤差對機床加工精度的影響,國內外學者提出了幾種比較具有代表性的方法:溫度控制法、熱態性能優化以及熱誤差補償法[2]。其中熱誤差補償方法是通過實驗、分析、測試過程建立一個熱誤差補償模型,并將其輸入數控系統,在加工時將溫度數據輸入熱誤差補償模型預測熱誤差并進行實時補償,以減小加工誤差。這種方法無需改變電主軸結構,而且應用成本較低,因此如何建立精度較高實用性較好的熱誤差補償模型,成為了國內外學者關注研究的重點。
近年來,國內外學者研究出許多建立熱誤差模型的方法。謝杰等[3]提出了一種基于思維進化算法優化BP神經網絡建立電主軸熱誤差模型的方法,其最低補償率高達95.29%。馬馳等[4]以精密鏜床主軸為研究對象,建立了基于PSO-BP網絡的熱誤差模型,并驗證了建模的有效性。代貴松[5]建立了基于因子分析的熱誤差建模方法。Abdulshahe等[6]將人工神經網絡以及模糊邏輯理論進行結合,提出了一種自適應神經模糊推理系統建模技術。
本文基于當前工業應用性較強的BP神經網絡,使用免疫粒子群算法對其權值和閾值進行優化,以達到提高熱誤差預測精度和神經網絡收斂性的目的,并通過測試數據檢驗優化后的模型熱誤差補償能力。
BP神經網絡是當前應用最廣泛的人工神經網絡,它是一種多層前饋型神經網絡,具有較強的非線性映射能力,很適合對熱誤差進行建模。BP神經網絡結構模仿生物神經元模型,由輸入層、隱含層和輸出層構成,每一層的神經元之間都不互相連接,而相鄰層的神經元點之間則互相連接,其網絡結構如圖1所示。

圖1 三層BP神經網絡結構
本文中BP神經網絡以電主軸上關鍵測點的溫度為輸入,電主軸前端各測點的熱誤差值為輸出,因此輸入層神經元數目為關鍵溫度測點數,輸出層神經元數目為熱誤差測點數,隱含層神經元個數可以根據Kolmogorov定理確定。確定神經網絡結構后,應當確定該神經網絡的激活函數、學習率、訓練誤差、迭代次數以及權值和閾值的初始值,完成神經網絡的初始化。然后將獲取到的溫度和熱誤差樣本數據劃分為測試集和訓練集,并進行歸一化處理,隨后,對初始化的BP神經網絡進行訓練,神經網絡通過反向誤差傳播過程修改權值和閾值,使得BP神經網絡不斷逼近電主軸熱誤差關于溫度變化的真實模型。
當完成訓練后,可以使用測試集對該神經網絡進行測試,確定該神經網絡的精確度是否符合要求,評價標準一般可用均方誤差MSE,簡稱M。
(1)
yn為預測值的第n維;tn為實際值的第n維;N為樣本總數。
由于BP神經網絡存在學習效率較低、收斂速度較慢的缺陷,單一使用BP神經網絡對電主軸熱誤差進行建模效率較低,效果也不好,容易陷入局部極小問題中。近年來,逐漸有人將PSO的思想引入神經網絡的優化中,用粒子群算法對權值和閾值的全局尋優來替代BP神經網絡的梯度修正,這種策略可以有效避免BP神經網絡陷入局部最小值,也能縮短網絡的訓練時間,加快算法的收斂。
經典粒子群算法是一種模擬鳥類覓食的啟發式算法,其基本思想是:初始化一個種群數量為N存在于m維搜索空間中的粒子群,設定粒子群初始位置、初始速度、迭代次數以及誤差標準等,每個粒子所在的坐標即可視作對神經網絡權值閾值的一個解,搜索空間的維度由權值和閾值數量決定。
完成粒子群的初始化后,調用BP算法的前向傳播計算每個粒子的適應度值,粒子xi的適應度值f(xi)定義為
(2)
M(xi)為粒子xi對應的BP神經網絡均方誤差。然后更新粒子的個體極值和全局極值。根據個體極值和全局極值可以更新粒子的飛行速度,這種步長更新方式意味著種群中的粒子通過不斷地向自身和種群的歷史信息進行學習,從而找到最優解,飛行速度公式為[7]
vi(t+1)=w·vi(t)+c1·r1·(pi-xi(t))+
c2·r2·(pg-xi(t))
(3)
vi為粒子i的更新步長;w為慣性因子;c1為認知因子;c2為社會因子;r1和r2為一定范圍內的隨機數,會隨機降低學習因子的比例;xi為粒子i在當前迭代過程中的位置;pi為粒子i的歷史最優點位置;pg為粒子的全局最優點位置。
設定粒子在每一維度中的飛行速度不超過設定的最大速度vmax,設vij為第i個粒子的第j維速度,若vij(t+1)>vmax,則vij(t+1)=vmax,且若vij(t+1)<-vmax,則vij(t+1)=-vmax,vmax越大則全局搜索能力越強,vmax越小則局部搜索能力越強,然后進行粒子群位置更新,公式為
xi(t+1)=xi(t)+vi(t+1)
(4)
不斷迭代重復粒子速度和位置的更新,直到達到指定的迭代次數或者滿足設定的誤差標準即結束迭代。
由于PSO算法對于多維復雜問題,往往存在早熟收斂現象,導致種群多樣性迅速降低,最終陷入局部最優。為了避免早熟現象,需要對粒子群算法進行一些改進,本文在粒子群算法的基本框架下,結合了免疫算法的濃度機制和免疫,對粒子群算法進行優化改進,回避早熟現象。
1.3.1 濃度機制
向粒子群算法中引入免疫算法的抗體濃度概念,抗體濃度可以表征種群的多樣性程度,濃度過高則表示種群中有大量類似個體,這種情況下就很容易陷入局部極小值,不利于全局尋優,為了保證種群個體的多樣性,需要抑制濃度過高個體[8]。粒子xi和粒子xj之間的親和度a(xi,xj)可以用歐氏距離定義為
(5)
xik為第i個粒子的第k維;m為粒子群所在空間維度;粒子xi和xj之間相似度S(xi,xj)定義為
(6)
t為相似度閾值??贵wxi的濃度d(xi)定義為
(7)
ε為一個較小常數。
1.3.2 免疫過程
定義粒子個體的激勵度,激勵度是由粒子個體的適應度和濃度共同決定的,粒子濃度越低,適應度越大則激勵度越高,激勵度為
(8)
I(i)為粒子i的激勵度值;d(i)為粒子i的濃度值;dava為當前所有粒子的濃度均值;p為控制濃度在激勵度函數中比例的系數;f(i)為粒子i在當前迭代的適應度值;fava為所有粒子在當前迭代中的適應度均值。
取適應度最高的個體放入疫苗庫,疫苗庫有a個位置,若疫苗庫滿了則用適應度較大的個體替代適應度較小的個體,用輪盤賭的方式從疫苗庫中選出1支疫苗,適應度越高的個體被選中的概率越大,疫苗xi的被選擇概率p(xi)為
(9)
克隆種群中激勵度最低的b個個體,將克隆體與選出的疫苗進行交叉,隨后進行變異,這是為了讓濃度高且適應度低的粒子能夠通過交叉和變異得到適應度和濃度的改善。
其中,變異公式為
(10)
N(0,σ)為正態分布;γ為自適應變異因子;η為調節因子,可見適應度越大,變異程度越小。比較克隆體和原本粒子的激勵度,選擇較高激勵度的保留。算法總體流程如圖2所示。

圖2 IA-PSO-BP算法流程
以某型號銑削式高速電主軸為研究對象,研究其基本結構及可能產生熱誤差的因素,在主要熱源處布置若干Pt100電阻溫度傳感器,同時記錄機床所在車間環境溫度,如表1所示。采用國家標準規定的5點法,將標準芯棒結合電渦流傳感器測量主軸x、y、z向熱變形,測點位置如圖3所示,其中,X1和X2分別為測棒前端和后端水平方向形變值,Y1和Y2為測棒前端和后端豎直方向形變值,Z為測棒前端軸向形變值。主軸轉速初始為靜止,采用遞進式提速方式,當在該轉速下達到熱平衡和熱位移的相對穩定,提高轉速,最后提速至最高轉速為止。

表1 溫度傳感器分布

圖3 主軸熱位移關鍵測點
實驗可得圖4以及圖5數據,圖4為關鍵測點的溫度隨時間變化圖,圖5為關鍵測點的熱位移隨時間變化圖。

圖4 關鍵測點溫度變化

圖5 關鍵測點熱位移變化
取等間隔的n個時間點依次排列組成時間序列記為s=[s1,s2,…,sn],以時間序列s的時間點對各測點的溫度值進行測量取樣并記錄,測點x的溫度序列記為ux=[tx1,tx2,tx3,…,txn],其中x=1,2,3,4。則可將所有測點的溫度記錄值記為溫度矩陣T1。同樣,以時間序列s的時間點使用位移傳感器對電主軸5個測點的熱位移進行測量取樣并記錄,測點y的熱位移序列記為uy=[ty1,ty2,ty3,…,tyn],其中y=1,2,3,4,5。則可將所有測點的熱位移記錄值記為位移矩陣R1。
同一時間點所有溫度測點的溫度值和所有熱位移測點的熱位移值組成了一組樣本,共計有300組樣本點。
以下編程過程均由MATLAB完成,步驟如下:
a.確定神經網絡模型輸入層節點數為3,隱含層為單層,節點數為10,輸出層節點數為5,神經網絡激活函數選Sigmod函數,經過測試調整,設定學習率為0.01,迭代次數為1 000次,訓練誤差為1×10-3,隨機將250個樣本劃分為訓練集,50個樣本劃分為測試集,完成訓練樣本歸一化。
b.設定抗體粒子群種群數量為100、最大迭代次數為100次,粒子維度為95,對應BP神經網絡權值和閾值總數,算法常數c1=c2=1.49,w=0.6,初始化抗體位置以及速度。
c.運行BP神經網絡求解粒子群適應度,更新粒子群全局最優和個體最優值。
d.求解粒子群飛行速度以及位移。
e.求解粒子濃度以及激勵度。
f.取適應度最高的個體構建疫苗庫,根據疫苗的適應度以輪盤賭方式選擇疫苗,克隆種群中激勵度最差的5個個體,克隆體與疫苗進行交叉,并進行高斯變異形成小范圍搜索。
g.比較克隆體和原本粒子的激勵度,選擇較高激勵度的保留,隨后返回步驟b,重復循環,直到達到迭代次數停止算法。
根據以上算法使用訓練樣本訓練神經網絡后,對測試樣本進行預測,得到機床主軸熱誤差預測值,可以據此評價預測模型的準確度。圖6為BP神經網絡熱誤差預測模型和IA-PSO-BP神經網絡熱誤差預測模型對測試集預測結果和測試集實測值的對比曲線,由圖6數據計算得出,IA-PSO-BP神經網絡熱誤差補償能力高達98.4%。BP神經網絡熱誤差預測模型和IA-PSO-BP神經網絡熱誤差預測模型對測試集的預測結果殘差對比情況如圖7所示。

圖6 BP和IA-PSO-BP預測結果對比

圖7 BP和IA-PSO-BP預測殘差對比
由圖6可知,經過免疫粒子群優化的BP神經網絡的預測結果明顯與測試樣本的實際曲線更加貼合,而BP神經網絡的預測結果經常會有較大誤差。由圖7可知,本文采用的算法和工程常用的BP神經網絡相比,熱誤差補償效果提高了2.8%,平均預測誤差下降了62.6%,預測誤差的均方差下降了66.4%,且收斂速度提高了25%,可知IA-PSO-BP神經網絡預測模型的預測精度和穩定性都要明顯高于BP神經網絡預測模型。
本文以MATLAB為平臺,通過免疫粒子群算法優化BP神經網絡,以達到避免陷入局部最小值,提高神經網絡的收斂性以及收斂速度的目的,同時還提高了模型的預測精度以及魯棒性。基于優化后的神經網絡,以高速電主軸關鍵測點溫度、熱誤差數據建立電主軸熱誤差預測模型,通過與BP神經網絡算法對比可知,優化后的BP神經網絡的熱誤差預測更加精準和穩定。