任兵,任小洪,李國志
(四川理工學院自動化與電子信息工程學院,四川自貢643000)
隨著精密加工技術的廣泛應用,對數控機床加工精度的要求日益提高。大量研究表明,熱誤差是數控機床等精密加工機械的最大誤差源,占總誤差的40%~70%左右[1]。要減小熱誤差,提高加工精度,熱誤差補償是一種有效的措施。文獻[2]中指出數控機床熱誤差補償技術已經成為以誤差補償技術為代表的現代精密工程的重要技術支柱之一。目前采用的熱誤差補償方法除了經驗公式法、實驗法、回歸法等外,文獻[3]中介紹了一種基于BP神經網絡的熱誤差補償方法,并分析了該方法的可行性。BP神經網絡是一種多層前饋型神經網絡,可以實現從輸入到輸出的任意非線性映射,但由于BP神經網絡熱補償方法初始化網絡權值的隨機性,在實際應用中,難以確定一組較好的初始權值,并且BP神經網絡具有學習收斂速度慢、訓練時間長、易陷于局部極小[4]等問題。
粒子群優化算法 (Particle Swarm Optimization,PSO)是計算智能領域的一種群體智能的優化算法,該算法最早由KENNEDY 和EBERHART 在1995年提出[5]。PSO算法具有收斂速度快、易于實現、不需要目標函數的梯度信息、沒有許多參數需要調整等優點。經PSO算法優化后的BP神經網絡,充分利用神經網絡的學習能力和PSO算法的優點,既能提高神經網絡的學習能力,又能增強神經網絡的泛化性能和預測能力。
作者將粒子群優化算法與BP神經網絡相結合,提出一種基于PSO算法優化BP神經網絡、建立熱補償模型的誤差補償方法,對數控加工中心的熱誤差進行實時補償。
PSO算法源于對鳥類捕食行為的研究。該算法首先初始化一群粒子,然后通過迭代尋優找出最優解。每一次迭代過程中,粒子通過跟蹤個體極值Pbest和群體極值Gbest更新自身的速度和位置。
假設在一個D維的搜索空間中,由n個粒子組成的種群X=(X1,X2,…,Xn)。其中第i個粒子表示為一個D維的向量Xi=(xi1,xi2,…,xiD)T,代表第i個粒子在D維搜索空間中的位置。根據目標函數即可計算出每個粒子位置Xi對應的適應度值。第i個粒子的速度為vi=(vi1,vi2,…,viD)T,其個體極值為Pi=(Pi1,Pi2,…,PiD)T,種群的全局極值為Pg=(Pg1,Pg2,…,PgD)T。
在每一次迭代過程中,粒子通過個體極值和全局極值更新自身的速度和位置,更新公式如下[5]:

式中:d=1,2,…,D;i=1,2,,…,n;k為當前迭代次數;vid為粒子的速度;c1和c2為非負的常數,稱為加速度因子;r1和r2為分布于[0,1]之間的隨機數;ω為慣性權重。
為了更好地平衡算法的全局搜索能力,根據文獻[6],ω 按公式(3)進行更新:

式中:t為迭代次數,tmax為最大迭代次數;ωmin為最小慣性權重,ωmax為最大慣性權重。
用PSO算法優化BP神經網絡的目的就是通過PSO算法得到更好的BP網絡初始權值和閾值。其基本思想就是用粒子群的位置向量代表網絡的全部初始權值和閾值,初始隨機產生N個微粒群,然后依照粒子群優化算法步驟,通過迭代尋優尋找全局最優位置向量,即最優的BP神經網絡初始權值和閾值,使式(4)的均方誤差指標達到最小,即適應值達到最小。將全局最優位置向量作為BP神經網絡的初始權值和閾值,使用BP神經網絡算法根據這些權值和閾值進一步尋優,從而得到網絡權值和閾值的最優值。

PSO-BP神經網絡算法流程如圖1所示。

圖1 PSO-BP算法流程
圖2是基于嵌入式的熱誤差補償系統總體框圖,該補償系統以三星公司設計的低功耗、高集成度、基于ARM920T 核的16/32位RISC 微處理器S3C2440A為核心,搭建外圍電路,構成補償系統的硬件平臺,以嵌入式Linux操作系統為核心搭建軟件環境,在此基礎上開發應用程序以及控制界面等。運用PSO算法優化后的BP神經網絡建立誤差補償模型,將誤差補償模型固化到ARM 存儲單元中。通過實時采集溫度數據和位置誤差數據,然后根據建立的誤差模型計算出綜合誤差補償值,將誤差補償值通過通信接口送入機床數控系統,數控系統根據補償值對刀架或工作臺進行附加運動來修正誤差以完成實時補償。熱補償系統需要實現PSO-BP神經網絡建模、溫度數據實時采集、誤差數據采集、補償值計算、顯示溫度數據和溫度采集通道號以及補償器與數控系統通信等功能。

圖2 熱誤差補償系統總體框圖
基于神經網絡建立誤差補償模型,首先需要獲得大量用于網絡訓練和測試的實驗數據。以GMC4000H/2 五坐標橫梁移動龍門加工中心y軸為研究對象,介紹實驗數據的檢測方法。數據檢測方法是:首先在引起熱誤差的關鍵溫度點安裝溫度傳感器,根據情況總共安裝了8個溫度傳感器,測量包括電機外殼、上軸承座、十字滑座右、環境溫度等8 路溫度數據,然后安裝激光干涉儀用于檢測機床對應時刻的位置誤差。機床開機起,首先測量一次溫度數據和熱誤差數據,然后每行走170 mm 進行一次熱誤差測量,單向總行程為3 400 mm,熱誤差數據包括y軸正向和負向行走的數據。每間隔20 min 重復數據的采集??偣膊杉?1組溫度數據和誤差數據,其中包括升溫和降溫的溫度數據和誤差數據。
采用經 PSO算法優化后的BP模型對GMC4000H/2 五坐標橫梁移動龍門加工中心熱補償進行研究。根據圖1的算法流程圖,首先需要確定BP神經網絡的結構,分析測量的溫度數據,從中選擇溫度變化較大的電機外殼、上軸承座和十字滑座右溫度數據作為神經網絡的輸入,另外將刀具當前時刻位置距離刀具的初始時刻位置的距離也作為神經網絡的輸入,因此神經網絡輸入層的個數確定為4個,又通過定理[7]可計算隱含層的個數為(2N+1)=2×4+1=9個,最終確定BP神經采用4-9-1 結構,即4個輸入層節點、9個隱含層節點、1個輸出層節點。BP神經網絡拓撲結構如圖3所示。BP神經網絡訓練時使用的輸入輸出數據是在機床運行時測量得到的溫度和誤差數據,從測量的數據中抽取一部分用來訓練網絡,另一部分用來測試網絡。BP神經網絡訓練參數設置如下:最大步數1 000,學習率0.1,學習目標0.001。PSO算法參數初始化如下:迭代步數50,種群規模40,加速度因子c1=c2=2,由文獻[8]確定維數D=4×9+9×1+9+1=55。

圖3 BP神經網絡拓撲結構
根據上述分析,將電機外殼、上軸承座和十字滑座右3個溫度點數值以及刀具當前時刻位置距離初始時刻位置的距離的特征參數對應的數據通過MATLAB仿真,得出數據擬合情況和誤差補償效果如圖4和圖5所示。

圖4 PSO-BP 補償效果

圖5 BP 補償效果
圖4為經PSO算法優化后的BP神經網絡訓練數據后得到的補償效果圖,可見:經熱誤差補償后,殘余誤差范圍為:-6.442 1~11.152 4 μm,擬合性能好,預測能力強。圖5為普通BP神經網絡訓練后得到的補償效果圖,其殘余誤差范圍為:-9.964 9~13.528 3 μm。對比圖4和圖5可知:經PSO算法優化后的BP神經網絡殘余誤差范圍更小,補償效果更好。結果表明,采用基于PSO算法優化后的BP神經網絡的熱誤差補償方法大大提高了機床加工精度。
以GMC4000H/2 五坐標橫梁移動龍門加工中心為對象,針對影響機床加工精度的熱誤差因素,提出了一種將粒子群算法與BP神經網絡相結合進行機床熱誤差補償的方法。在介紹熱誤差檢測方法和熱補償系統的基礎上,運用所檢測到的實驗數據,建立誤差補償模型,進行MATLAB仿真,驗證方法的可行性。結果表明:該方法補償精度高,網絡學習收斂速度快,且補償效果明顯優于普通BP神經網絡。
【1】傅建中,姚鑫驊,賀永,等.數控機床熱誤差補償技術的發展狀況[J].航空制造技術,2010(4):64-66.
【2】杜正春,楊建國,關賀,等.制造機床熱誤差研究現狀與思考[J].制造業自動化,2002(10):1-3.
【3】孫勇,曾黃磷.一種新的數控機床熱誤差實時補償方法[J].機械設計與制造,2010(1):244-245.
【4】高峰.PSO-BP組合人工神經網絡算法研究[J].山西大同大學學報:自然科學版,2010(3):66-69.
【5】MATLAB 中文論壇.MATLAB神經網絡30個案例分析[M].北京:北京航空航天大學出版社,2010:236-242.
【6】杜華英.基于PSO算法的BP神經網絡研究[J].現代計算機,2009(2):28-29.
【7】HECHT-NIELSEN R.Kolmogorov's mapping neural network existence theorem[C]//IEEE First International Conference on Neural Networks,New York:[s.n.],1987.
【8】李祚泳,汪嘉楊,郭淳.PSO算法優化BP網絡的新方法及仿真實驗[J].電子學報,2008(11):2224-2228.