任兵,任小洪,李國志
(四川理工學(xué)院自動化與電子信息工程學(xué)院,四川自貢643000)
隨著精密加工技術(shù)的廣泛應(yīng)用,對數(shù)控機床加工精度的要求日益提高。大量研究表明,熱誤差是數(shù)控機床等精密加工機械的最大誤差源,占總誤差的40%~70%左右[1]。要減小熱誤差,提高加工精度,熱誤差補償是一種有效的措施。文獻[2]中指出數(shù)控機床熱誤差補償技術(shù)已經(jīng)成為以誤差補償技術(shù)為代表的現(xiàn)代精密工程的重要技術(shù)支柱之一。目前采用的熱誤差補償方法除了經(jīng)驗公式法、實驗法、回歸法等外,文獻[3]中介紹了一種基于BP神經(jīng)網(wǎng)絡(luò)的熱誤差補償方法,并分析了該方法的可行性。BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋型神經(jīng)網(wǎng)絡(luò),可以實現(xiàn)從輸入到輸出的任意非線性映射,但由于BP神經(jīng)網(wǎng)絡(luò)熱補償方法初始化網(wǎng)絡(luò)權(quán)值的隨機性,在實際應(yīng)用中,難以確定一組較好的初始權(quán)值,并且BP神經(jīng)網(wǎng)絡(luò)具有學(xué)習(xí)收斂速度慢、訓(xùn)練時間長、易陷于局部極小[4]等問題。
粒子群優(yōu)化算法 (Particle Swarm Optimization,PSO)是計算智能領(lǐng)域的一種群體智能的優(yōu)化算法,該算法最早由KENNEDY 和EBERHART 在1995年提出[5]。PSO算法具有收斂速度快、易于實現(xiàn)、不需要目標(biāo)函數(shù)的梯度信息、沒有許多參數(shù)需要調(diào)整等優(yōu)點。經(jīng)PSO算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò),充分利用神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力和PSO算法的優(yōu)點,既能提高神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,又能增強神經(jīng)網(wǎng)絡(luò)的泛化性能和預(yù)測能力。
作者將粒子群優(yōu)化算法與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,提出一種基于PSO算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)、建立熱補償模型的誤差補償方法,對數(shù)控加工中心的熱誤差進行實時補償。
PSO算法源于對鳥類捕食行為的研究。該算法首先初始化一群粒子,然后通過迭代尋優(yōu)找出最優(yōu)解。每一次迭代過程中,粒子通過跟蹤個體極值Pbest和群體極值Gbest更新自身的速度和位置。
假設(shè)在一個D維的搜索空間中,由n個粒子組成的種群X=(X1,X2,…,Xn)。其中第i個粒子表示為一個D維的向量Xi=(xi1,xi2,…,xiD)T,代表第i個粒子在D維搜索空間中的位置。根據(jù)目標(biāo)函數(shù)即可計算出每個粒子位置Xi對應(yīng)的適應(yīng)度值。第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為當(dāng)前迭代次數(shù);vid為粒子的速度;c1和c2為非負(fù)的常數(shù),稱為加速度因子;r1和r2為分布于[0,1]之間的隨機數(shù);ω為慣性權(quán)重。
為了更好地平衡算法的全局搜索能力,根據(jù)文獻[6],ω 按公式(3)進行更新:
式中:t為迭代次數(shù),tmax為最大迭代次數(shù);ωmin為最小慣性權(quán)重,ωmax為最大慣性權(quán)重。
用PSO算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的目的就是通過PSO算法得到更好的BP網(wǎng)絡(luò)初始權(quán)值和閾值。其基本思想就是用粒子群的位置向量代表網(wǎng)絡(luò)的全部初始權(quán)值和閾值,初始隨機產(chǎn)生N個微粒群,然后依照粒子群優(yōu)化算法步驟,通過迭代尋優(yōu)尋找全局最優(yōu)位置向量,即最優(yōu)的BP神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值,使式(4)的均方誤差指標(biāo)達(dá)到最小,即適應(yīng)值達(dá)到最小。將全局最優(yōu)位置向量作為BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,使用BP神經(jīng)網(wǎng)絡(luò)算法根據(jù)這些權(quán)值和閾值進一步尋優(yōu),從而得到網(wǎng)絡(luò)權(quán)值和閾值的最優(yōu)值。
PSO-BP神經(jīng)網(wǎng)絡(luò)算法流程如圖1所示。
圖1 PSO-BP算法流程
圖2是基于嵌入式的熱誤差補償系統(tǒng)總體框圖,該補償系統(tǒng)以三星公司設(shè)計的低功耗、高集成度、基于ARM920T 核的16/32位RISC 微處理器S3C2440A為核心,搭建外圍電路,構(gòu)成補償系統(tǒng)的硬件平臺,以嵌入式Linux操作系統(tǒng)為核心搭建軟件環(huán)境,在此基礎(chǔ)上開發(fā)應(yīng)用程序以及控制界面等。運用PSO算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)建立誤差補償模型,將誤差補償模型固化到ARM 存儲單元中。通過實時采集溫度數(shù)據(jù)和位置誤差數(shù)據(jù),然后根據(jù)建立的誤差模型計算出綜合誤差補償值,將誤差補償值通過通信接口送入機床數(shù)控系統(tǒng),數(shù)控系統(tǒng)根據(jù)補償值對刀架或工作臺進行附加運動來修正誤差以完成實時補償。熱補償系統(tǒng)需要實現(xiàn)PSO-BP神經(jīng)網(wǎng)絡(luò)建模、溫度數(shù)據(jù)實時采集、誤差數(shù)據(jù)采集、補償值計算、顯示溫度數(shù)據(jù)和溫度采集通道號以及補償器與數(shù)控系統(tǒng)通信等功能。
圖2 熱誤差補償系統(tǒng)總體框圖
基于神經(jīng)網(wǎng)絡(luò)建立誤差補償模型,首先需要獲得大量用于網(wǎng)絡(luò)訓(xùn)練和測試的實驗數(shù)據(jù)。以GMC4000H/2 五坐標(biāo)橫梁移動龍門加工中心y軸為研究對象,介紹實驗數(shù)據(jù)的檢測方法。數(shù)據(jù)檢測方法是:首先在引起熱誤差的關(guān)鍵溫度點安裝溫度傳感器,根據(jù)情況總共安裝了8個溫度傳感器,測量包括電機外殼、上軸承座、十字滑座右、環(huán)境溫度等8 路溫度數(shù)據(jù),然后安裝激光干涉儀用于檢測機床對應(yīng)時刻的位置誤差。機床開機起,首先測量一次溫度數(shù)據(jù)和熱誤差數(shù)據(jù),然后每行走170 mm 進行一次熱誤差測量,單向總行程為3 400 mm,熱誤差數(shù)據(jù)包括y軸正向和負(fù)向行走的數(shù)據(jù)。每間隔20 min 重復(fù)數(shù)據(jù)的采集??偣膊杉?1組溫度數(shù)據(jù)和誤差數(shù)據(jù),其中包括升溫和降溫的溫度數(shù)據(jù)和誤差數(shù)據(jù)。
采用經(jīng) PSO算法優(yōu)化后的BP模型對GMC4000H/2 五坐標(biāo)橫梁移動龍門加工中心熱補償進行研究。根據(jù)圖1的算法流程圖,首先需要確定BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),分析測量的溫度數(shù)據(jù),從中選擇溫度變化較大的電機外殼、上軸承座和十字滑座右溫度數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的輸入,另外將刀具當(dāng)前時刻位置距離刀具的初始時刻位置的距離也作為神經(jīng)網(wǎng)絡(luò)的輸入,因此神經(jīng)網(wǎng)絡(luò)輸入層的個數(shù)確定為4個,又通過定理[7]可計算隱含層的個數(shù)為(2N+1)=2×4+1=9個,最終確定BP神經(jīng)采用4-9-1 結(jié)構(gòu),即4個輸入層節(jié)點、9個隱含層節(jié)點、1個輸出層節(jié)點。BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖3所示。BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練時使用的輸入輸出數(shù)據(jù)是在機床運行時測量得到的溫度和誤差數(shù)據(jù),從測量的數(shù)據(jù)中抽取一部分用來訓(xùn)練網(wǎng)絡(luò),另一部分用來測試網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練參數(shù)設(shè)置如下:最大步數(shù)1 000,學(xué)習(xí)率0.1,學(xué)習(xí)目標(biāo)0.001。PSO算法參數(shù)初始化如下:迭代步數(shù)50,種群規(guī)模40,加速度因子c1=c2=2,由文獻[8]確定維數(shù)D=4×9+9×1+9+1=55。
圖3 BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
根據(jù)上述分析,將電機外殼、上軸承座和十字滑座右3個溫度點數(shù)值以及刀具當(dāng)前時刻位置距離初始時刻位置的距離的特征參數(shù)對應(yīng)的數(shù)據(jù)通過MATLAB仿真,得出數(shù)據(jù)擬合情況和誤差補償效果如圖4和圖5所示。
圖4 PSO-BP 補償效果
圖5 BP 補償效果
圖4為經(jīng)PSO算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)后得到的補償效果圖,可見:經(jīng)熱誤差補償后,殘余誤差范圍為:-6.442 1~11.152 4 μm,擬合性能好,預(yù)測能力強。圖5為普通BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練后得到的補償效果圖,其殘余誤差范圍為:-9.964 9~13.528 3 μm。對比圖4和圖5可知:經(jīng)PSO算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)殘余誤差范圍更小,補償效果更好。結(jié)果表明,采用基于PSO算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)的熱誤差補償方法大大提高了機床加工精度。
以GMC4000H/2 五坐標(biāo)橫梁移動龍門加工中心為對象,針對影響機床加工精度的熱誤差因素,提出了一種將粒子群算法與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合進行機床熱誤差補償?shù)姆椒?。在介紹熱誤差檢測方法和熱補償系統(tǒng)的基礎(chǔ)上,運用所檢測到的實驗數(shù)據(jù),建立誤差補償模型,進行MATLAB仿真,驗證方法的可行性。結(jié)果表明:該方法補償精度高,網(wǎng)絡(luò)學(xué)習(xí)收斂速度快,且補償效果明顯優(yōu)于普通BP神經(jīng)網(wǎng)絡(luò)。
【1】傅建中,姚鑫驊,賀永,等.數(shù)控機床熱誤差補償技術(shù)的發(fā)展?fàn)顩r[J].航空制造技術(shù),2010(4):64-66.
【2】杜正春,楊建國,關(guān)賀,等.制造機床熱誤差研究現(xiàn)狀與思考[J].制造業(yè)自動化,2002(10):1-3.
【3】孫勇,曾黃磷.一種新的數(shù)控機床熱誤差實時補償方法[J].機械設(shè)計與制造,2010(1):244-245.
【4】高峰.PSO-BP組合人工神經(jīng)網(wǎng)絡(luò)算法研究[J].山西大同大學(xué)學(xué)報:自然科學(xué)版,2010(3):66-69.
【5】MATLAB 中文論壇.MATLAB神經(jīng)網(wǎng)絡(luò)30個案例分析[M].北京:北京航空航天大學(xué)出版社,2010:236-242.
【6】杜華英.基于PSO算法的BP神經(jīng)網(wǎng)絡(luò)研究[J].現(xiàn)代計算機,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算法優(yōu)化BP網(wǎng)絡(luò)的新方法及仿真實驗[J].電子學(xué)報,2008(11):2224-2228.