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