徐衛(wèi)東,任小洪,周天鵬,樂(lè)英高
(四川理工學(xué)院 自動(dòng)化與電子信息學(xué)院,四川 自貢643000)
隨著現(xiàn)代化機(jī)械制造業(yè)的不斷發(fā)展,提高數(shù)控加工精度尤為重要。對(duì)于數(shù)控機(jī)床而言,熱誤差是其最大的誤差源,可達(dá)機(jī)床總誤差的70%左右[1],因此熱誤差補(bǔ)償成為這項(xiàng)技術(shù)的重要支柱之一。目前,國(guó)內(nèi)外許多專(zhuān)家學(xué)者主要在數(shù)控機(jī)床熱誤差補(bǔ)償建模方法和簡(jiǎn)單的熱誤差補(bǔ)償軟件系統(tǒng)上作了大量的研究,如文獻(xiàn)[2]講述了基于神經(jīng)網(wǎng)絡(luò)的數(shù)控機(jī)床熱誤差建模。文獻(xiàn)[3]提出了一種基于可編程多軸運(yùn)動(dòng)控制器(programmable multi-axis controller,PMAC)的軟件熱誤差補(bǔ)償系統(tǒng)。雖然在這些實(shí)驗(yàn)研究中誤差都得以補(bǔ)償,但都存在許多問(wèn)題,如補(bǔ)償實(shí)時(shí)性差、補(bǔ)償系統(tǒng)操作繁瑣等,并缺少一套系統(tǒng)化、明朗化的互交性熱誤差補(bǔ)償操作系統(tǒng)。GUI是一種以圖形化為統(tǒng)一的圖形操作系統(tǒng),如可移動(dòng)的視窗、選項(xiàng)與鼠標(biāo),作為用戶(hù)與操作系統(tǒng)之間的中介[4]。GUI負(fù)責(zé)系統(tǒng)可視化界面的生成、管理以及系統(tǒng)與用戶(hù)之間的信息交換。本文以Matlab-GUI為基礎(chǔ),結(jié)合BP神經(jīng)網(wǎng)絡(luò)模型,對(duì)數(shù)控機(jī)床熱誤差補(bǔ)償仿真系統(tǒng)進(jìn)行研究,使數(shù)控加工過(guò)程中的熱誤差補(bǔ)償更加具有實(shí)時(shí)性、高效性,且操作簡(jiǎn)單明了。
研究以三軸聯(lián)動(dòng)臥式加工中心X軸為例。用無(wú)紙記錄儀和激光干涉儀采集了X軸絲杠的定位誤差。具體方法:開(kāi)機(jī)后以速度(6~14)m/min運(yùn)行,間隔10 min采集定位精度數(shù)據(jù)(用檢測(cè)定位精度的程序每間隔100 mm,暫停5 s,行程1 000 mm,前后端各留有5 mm余量,共1 010 mm),定位誤差由-28.63μm~+35.7μm。另外,在此期間隨時(shí)采集溫度數(shù)據(jù)。溫度數(shù)據(jù)采集過(guò)程中還進(jìn)行了降溫試驗(yàn)。
該三軸聯(lián)動(dòng)臥式加工中心的主要熱誤差源有左右光柵溫度、左右軸承座溫度、左右電機(jī)座溫度、工作臺(tái)溫度、環(huán)境溫度等。利用粗集理論方法[5],分析熱誤差與各變量之間的相關(guān)性,提取車(chē)床熱誤差補(bǔ)償重要特征參數(shù)。實(shí)際分析中,選取了右光柵尺溫度、右軸承座溫度、左電機(jī)座溫度、工作臺(tái)溫度等4個(gè)重要特征。
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)的主要特點(diǎn)是信號(hào)前向傳遞,誤差反轉(zhuǎn)傳播[6]。神經(jīng)網(wǎng)絡(luò)的神經(jīng)元傳遞函數(shù)一般是s型。輸出層神經(jīng)元傳遞函數(shù)可以是s型,也可以是線(xiàn)性。
結(jié)合4個(gè)關(guān)鍵的溫度點(diǎn)值作為網(wǎng)絡(luò)輸入。因此,神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點(diǎn)數(shù)為4,又通過(guò)kolmogorov定理[7],隱含層的節(jié)點(diǎn)數(shù)為(2N+1)=2×4+1=9,又由輸出節(jié)點(diǎn)為1個(gè),因此所創(chuàng)建的BP網(wǎng)絡(luò)建模為4-9-1結(jié)構(gòu)。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
Matlab中圖形用戶(hù)界面(graphical user interfaces,GUI)是由窗口、光標(biāo)、按鍵、菜單、文字說(shuō)明等對(duì)象(objects)構(gòu)成的一個(gè)用戶(hù)界面,用戶(hù)通過(guò)一定的方法(如鼠標(biāo)或鍵盤(pán))選擇并激活這些圖形對(duì)象,使計(jì)算機(jī)產(chǎn)生某種動(dòng)作或變化,比如實(shí)現(xiàn)計(jì)算、繪圖等[8]。根據(jù)用戶(hù)需要,Matlab將所有GUI支持的用戶(hù)控件都集成在界面設(shè)計(jì)集(GUIDE)中,并提供界面外觀(guān)、屬性和行為相應(yīng)方式的設(shè)置方法[9]。
在軟件設(shè)計(jì)中,以建立出符合實(shí)際應(yīng)用需要的GUI,大體步驟為[10]:
1)建立figure對(duì)象以作為整個(gè)GUI的基礎(chǔ)窗口并設(shè)置相關(guān)屬性,接著建立的子對(duì)象就會(huì)依據(jù)這個(gè)figure對(duì)象的句柄值來(lái)不斷加入到窗口中。
2)設(shè)置需要建立的axes、uicontrol、uimenu、uicontextmenu等對(duì)象,并設(shè)置相關(guān)的屬性及Callback來(lái)實(shí)現(xiàn)相關(guān)的控制操作。
3)配合界面的人性化,可以加入坐標(biāo)軸的子對(duì)象,如line、patch等。
在設(shè)計(jì)數(shù)控機(jī)床熱誤差補(bǔ)償仿真系統(tǒng)界面時(shí),通過(guò)文本編輯框控件構(gòu)建界面大體框架。該框架分為5個(gè)模塊:數(shù)據(jù)導(dǎo)入與顯示模塊、神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置模塊、控制按鍵模塊、熱誤差補(bǔ)償圖形顯示模塊、誤差補(bǔ)償數(shù)據(jù)分析與保存模塊。具體界面如圖2所示。
1)數(shù)據(jù)導(dǎo)入與顯示模塊。該部分完成對(duì)機(jī)床的溫度數(shù)據(jù)和誤差數(shù)據(jù)的導(dǎo)入,即實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的輸入。該數(shù)據(jù)分為訓(xùn)練組數(shù)據(jù)與測(cè)試組數(shù)據(jù)。
2)網(wǎng)絡(luò)參數(shù)設(shè)置模塊。根據(jù)神經(jīng)網(wǎng)絡(luò)模型結(jié)夠設(shè)置好輸入層神經(jīng)元個(gè)數(shù)、隱層神經(jīng)元個(gè)數(shù)、輸出神經(jīng)元個(gè)數(shù)。然后是訓(xùn)練最大步數(shù)、訓(xùn)練目標(biāo)、學(xué)習(xí)率等參數(shù)的設(shè)置。
3)控制按鍵模塊。該模塊是整個(gè)仿真系統(tǒng)的核心,他將數(shù)據(jù)導(dǎo)入模塊與其他模塊聯(lián)系起來(lái),構(gòu)成一個(gè)統(tǒng)一的整體,并且完成各按鍵操作。
4)熱誤差補(bǔ)償圖形仿真顯示模塊。當(dāng)神經(jīng)網(wǎng)絡(luò)訓(xùn)練好后,操作“預(yù)測(cè)仿真”和“殘差仿真”,該模塊對(duì)應(yīng)地顯示預(yù)測(cè)補(bǔ)償圖和殘差圖。
5)誤差補(bǔ)償數(shù)據(jù)分析與保存模塊。在圖形仿真后,此模塊完成的是補(bǔ)償后數(shù)據(jù)的顯示與保存。
圖2 數(shù)控機(jī)床誤差補(bǔ)償仿真系統(tǒng)界面框架
當(dāng)設(shè)定好界面布局后,GUIDE將圖形界面保存在一個(gè)FIG資源文件中,同時(shí)將自動(dòng)生成包含圖形界面初始化和組件界面布局控制代碼的M文件,在該M文件中可以實(shí)現(xiàn)回調(diào)函數(shù)的編寫(xiě)與修改。M文件中包含GUI設(shè)計(jì)、控件函數(shù)和控件回調(diào)函數(shù),主要用來(lái)對(duì)GUI展開(kāi)時(shí)的各種特征進(jìn)行控制。
實(shí)現(xiàn)上述界面功能,主要是完成數(shù)據(jù)導(dǎo)入與顯示模塊中控件下的回調(diào)函數(shù)的編寫(xiě),以及控制按鍵模塊中的“網(wǎng)絡(luò)訓(xùn)練”、“預(yù)測(cè)仿真”、“殘差仿真”、“補(bǔ)償數(shù)據(jù)”、“保存數(shù)據(jù)”、“退出系統(tǒng)”等各個(gè)控件下的回調(diào)函數(shù)的編寫(xiě)。這里由于篇幅的原因,下面以數(shù)據(jù)導(dǎo)入與顯示模塊與數(shù)據(jù)分析與保存模塊為例做簡(jiǎn)單描述:
結(jié)合機(jī)床關(guān)鍵溫度點(diǎn)及關(guān)鍵溫度數(shù)據(jù)和誤差數(shù)據(jù),對(duì)導(dǎo)入數(shù)據(jù)控件“pushbutton”和歸一化“radio button”callback下的回調(diào)函數(shù)的編寫(xiě),同時(shí)對(duì)溫度數(shù)據(jù)和誤差數(shù)據(jù)顯示“l(fā)ist box”和“edit”callback下的回調(diào)函數(shù)的編寫(xiě),實(shí)現(xiàn)控件的功能,完成數(shù)據(jù)的導(dǎo)入和顯示。其導(dǎo)入數(shù)據(jù)程序片段為:
綜合機(jī)床實(shí)際情況完成與用戶(hù)互交。實(shí)現(xiàn)其各自的功能,使整個(gè)界面連貫統(tǒng)一。
根據(jù)上述機(jī)床關(guān)鍵點(diǎn)溫度數(shù)據(jù)和誤差數(shù)據(jù),再結(jié)合BP神經(jīng)網(wǎng)絡(luò)模型完成界面上機(jī)床熱誤差補(bǔ)償?shù)姆抡?。首先,?dǎo)入網(wǎng)絡(luò)訓(xùn)練的相關(guān)機(jī)床關(guān)鍵點(diǎn)溫度數(shù)據(jù)和誤差數(shù)據(jù),設(shè)置好網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)和訓(xùn)練參數(shù),然后點(diǎn)擊“網(wǎng)絡(luò)訓(xùn)練”控件進(jìn)行網(wǎng)絡(luò)訓(xùn)練。訓(xùn)練好網(wǎng)絡(luò)后,接著導(dǎo)入測(cè)試數(shù)據(jù),點(diǎn)擊“預(yù)測(cè)仿真”控件,得出相應(yīng)的預(yù)測(cè)補(bǔ)償圖。點(diǎn)擊“殘差仿真”控件,得出補(bǔ)償殘差圖。最后點(diǎn)擊“補(bǔ)償數(shù)據(jù)”和“保存數(shù)據(jù)”控件完成補(bǔ)償數(shù)據(jù)的分析和保存,補(bǔ)償數(shù)據(jù)分析中包括預(yù)測(cè)誤差數(shù)據(jù)、實(shí)測(cè)數(shù)據(jù)、殘余誤差數(shù)據(jù)。將這些數(shù)據(jù)保存后并反饋給CNC控制系統(tǒng),CNC控制系統(tǒng)做出誤差控制指令,進(jìn)而做出相應(yīng)的誤差補(bǔ)償。具體的補(bǔ)償實(shí)現(xiàn)可視化界面如圖3所示。
圖3 熱誤差補(bǔ)償實(shí)現(xiàn)后可視化界面
由圖3中預(yù)測(cè)補(bǔ)償和殘余差可知,經(jīng)補(bǔ)償后,徑向熱漂移從28.63μm以上降到約7μm,熱誤差降低約75.6%。擬合性能也很好。因此表明,數(shù)控機(jī)床熱誤差得以補(bǔ)償,加工精度得以提高。同時(shí)結(jié)合界面中各個(gè)模塊的數(shù)據(jù)顯示與分析,使數(shù)控機(jī)床熱誤差補(bǔ)償更加系統(tǒng)化、可視化、明朗化。
通過(guò)基于Matlab-GUI數(shù)控機(jī)床熱誤差補(bǔ)償仿真系統(tǒng)的研究,進(jìn)行可視化界面操作,完成網(wǎng)絡(luò)的訓(xùn)練、預(yù)測(cè)仿真,最終得出誤差補(bǔ)償數(shù)據(jù)并保存。研究表明:在補(bǔ)償方面,補(bǔ)償精度得以明顯提高;在操作方面,基于Matlab-GUI的補(bǔ)償系統(tǒng)界面使整個(gè)操作過(guò)程變得連貫和統(tǒng)一,在通過(guò)視覺(jué)觀(guān)察仿真圖形的同時(shí),還能實(shí)時(shí)地完成對(duì)補(bǔ)償數(shù)據(jù)的分析和處理。但如何將該課題研究與實(shí)際機(jī)床更完美地對(duì)接整合,將是下一步面臨的重要工作。
[1] 杜正春,楊建國(guó).制造機(jī)床熱誤差研究現(xiàn)狀與思考[J].制造業(yè)自動(dòng)化,2002,24(8):1-3.
[2] 劉國(guó)良,張宏濤.神經(jīng)網(wǎng)絡(luò)理論在數(shù)控機(jī)床熱誤差建模中的應(yīng)用[J].現(xiàn)代制造工程,2005(8):20-23.
[3] 潘淑微,賀永.基于PMAC的數(shù)控車(chē)床主軸熱誤差補(bǔ)償系統(tǒng)研究[J].機(jī)械制造,2007,45(5):40-42.
[4] 劉洲洲,肖軍.基于跨平臺(tái)下的嵌入式GUI人機(jī)界面系統(tǒng)研究與設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010,14:34-36.
[5] 曾黃磷.智能計(jì)算[M].重慶:重慶大學(xué)出版社,2004:45-47.
[6]MATLAB中文論壇.MATLAB神經(jīng)網(wǎng)絡(luò)30個(gè)案例分析[M].北京:北京航空航天大學(xué)出版社,2010.
[7]Hecht-Nielsen R.Kolmogorov’s mapping neural network existence theorem[C]//IEEE First International-Conference on Neural Networks.New York:[s.n.],1987:11-14.
[8] 賈建科,韓團(tuán)軍.基于Matlab GUI的模擬帶通濾波器的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010.10:58-62.
[9] 李海濤,鄧櫻.Matlab程序設(shè)計(jì)教程[M].北京:高等教育出版社,2002.
[10]李顯宏.MATLAB 7.X界面設(shè)計(jì)與編譯技巧[M].北京:電子工業(yè)出版,2006.