徐衛(wèi)東,任小洪,周天鵬,樂英高
(四川理工學院 自動化與電子信息學院,四川 自貢643000)
隨著現(xiàn)代化機械制造業(yè)的不斷發(fā)展,提高數(shù)控加工精度尤為重要。對于數(shù)控機床而言,熱誤差是其最大的誤差源,可達機床總誤差的70%左右[1],因此熱誤差補償成為這項技術的重要支柱之一。目前,國內外許多專家學者主要在數(shù)控機床熱誤差補償建模方法和簡單的熱誤差補償軟件系統(tǒng)上作了大量的研究,如文獻[2]講述了基于神經網(wǎng)絡的數(shù)控機床熱誤差建模。文獻[3]提出了一種基于可編程多軸運動控制器(programmable multi-axis controller,PMAC)的軟件熱誤差補償系統(tǒng)。雖然在這些實驗研究中誤差都得以補償,但都存在許多問題,如補償實時性差、補償系統(tǒng)操作繁瑣等,并缺少一套系統(tǒng)化、明朗化的互交性熱誤差補償操作系統(tǒng)。GUI是一種以圖形化為統(tǒng)一的圖形操作系統(tǒng),如可移動的視窗、選項與鼠標,作為用戶與操作系統(tǒng)之間的中介[4]。GUI負責系統(tǒng)可視化界面的生成、管理以及系統(tǒng)與用戶之間的信息交換。本文以Matlab-GUI為基礎,結合BP神經網(wǎng)絡模型,對數(shù)控機床熱誤差補償仿真系統(tǒng)進行研究,使數(shù)控加工過程中的熱誤差補償更加具有實時性、高效性,且操作簡單明了。
研究以三軸聯(lián)動臥式加工中心X軸為例。用無紙記錄儀和激光干涉儀采集了X軸絲杠的定位誤差。具體方法:開機后以速度(6~14)m/min運行,間隔10 min采集定位精度數(shù)據(jù)(用檢測定位精度的程序每間隔100 mm,暫停5 s,行程1 000 mm,前后端各留有5 mm余量,共1 010 mm),定位誤差由-28.63μm~+35.7μm。另外,在此期間隨時采集溫度數(shù)據(jù)。溫度數(shù)據(jù)采集過程中還進行了降溫試驗。
該三軸聯(lián)動臥式加工中心的主要熱誤差源有左右光柵溫度、左右軸承座溫度、左右電機座溫度、工作臺溫度、環(huán)境溫度等。利用粗集理論方法[5],分析熱誤差與各變量之間的相關性,提取車床熱誤差補償重要特征參數(shù)。實際分析中,選取了右光柵尺溫度、右軸承座溫度、左電機座溫度、工作臺溫度等4個重要特征。
BP神經網(wǎng)絡是一種多層前饋神經網(wǎng)絡,該網(wǎng)絡的主要特點是信號前向傳遞,誤差反轉傳播[6]。神經網(wǎng)絡的神經元傳遞函數(shù)一般是s型。輸出層神經元傳遞函數(shù)可以是s型,也可以是線性。
結合4個關鍵的溫度點值作為網(wǎng)絡輸入。因此,神經網(wǎng)絡輸入層節(jié)點數(shù)為4,又通過kolmogorov定理[7],隱含層的節(jié)點數(shù)為(2N+1)=2×4+1=9,又由輸出節(jié)點為1個,因此所創(chuàng)建的BP網(wǎng)絡建模為4-9-1結構。BP神經網(wǎng)絡結構如圖1所示。
Matlab中圖形用戶界面(graphical user interfaces,GUI)是由窗口、光標、按鍵、菜單、文字說明等對象(objects)構成的一個用戶界面,用戶通過一定的方法(如鼠標或鍵盤)選擇并激活這些圖形對象,使計算機產生某種動作或變化,比如實現(xiàn)計算、繪圖等[8]。根據(jù)用戶需要,Matlab將所有GUI支持的用戶控件都集成在界面設計集(GUIDE)中,并提供界面外觀、屬性和行為相應方式的設置方法[9]。
在軟件設計中,以建立出符合實際應用需要的GUI,大體步驟為[10]:
1)建立figure對象以作為整個GUI的基礎窗口并設置相關屬性,接著建立的子對象就會依據(jù)這個figure對象的句柄值來不斷加入到窗口中。
2)設置需要建立的axes、uicontrol、uimenu、uicontextmenu等對象,并設置相關的屬性及Callback來實現(xiàn)相關的控制操作。
3)配合界面的人性化,可以加入坐標軸的子對象,如line、patch等。
在設計數(shù)控機床熱誤差補償仿真系統(tǒng)界面時,通過文本編輯框控件構建界面大體框架。該框架分為5個模塊:數(shù)據(jù)導入與顯示模塊、神經網(wǎng)絡參數(shù)設置模塊、控制按鍵模塊、熱誤差補償圖形顯示模塊、誤差補償數(shù)據(jù)分析與保存模塊。具體界面如圖2所示。
1)數(shù)據(jù)導入與顯示模塊。該部分完成對機床的溫度數(shù)據(jù)和誤差數(shù)據(jù)的導入,即實現(xiàn)神經網(wǎng)絡的輸入。該數(shù)據(jù)分為訓練組數(shù)據(jù)與測試組數(shù)據(jù)。
2)網(wǎng)絡參數(shù)設置模塊。根據(jù)神經網(wǎng)絡模型結夠設置好輸入層神經元個數(shù)、隱層神經元個數(shù)、輸出神經元個數(shù)。然后是訓練最大步數(shù)、訓練目標、學習率等參數(shù)的設置。
3)控制按鍵模塊。該模塊是整個仿真系統(tǒng)的核心,他將數(shù)據(jù)導入模塊與其他模塊聯(lián)系起來,構成一個統(tǒng)一的整體,并且完成各按鍵操作。
4)熱誤差補償圖形仿真顯示模塊。當神經網(wǎng)絡訓練好后,操作“預測仿真”和“殘差仿真”,該模塊對應地顯示預測補償圖和殘差圖。
5)誤差補償數(shù)據(jù)分析與保存模塊。在圖形仿真后,此模塊完成的是補償后數(shù)據(jù)的顯示與保存。

圖2 數(shù)控機床誤差補償仿真系統(tǒng)界面框架
當設定好界面布局后,GUIDE將圖形界面保存在一個FIG資源文件中,同時將自動生成包含圖形界面初始化和組件界面布局控制代碼的M文件,在該M文件中可以實現(xiàn)回調函數(shù)的編寫與修改。M文件中包含GUI設計、控件函數(shù)和控件回調函數(shù),主要用來對GUI展開時的各種特征進行控制。
實現(xiàn)上述界面功能,主要是完成數(shù)據(jù)導入與顯示模塊中控件下的回調函數(shù)的編寫,以及控制按鍵模塊中的“網(wǎng)絡訓練”、“預測仿真”、“殘差仿真”、“補償數(shù)據(jù)”、“保存數(shù)據(jù)”、“退出系統(tǒng)”等各個控件下的回調函數(shù)的編寫。這里由于篇幅的原因,下面以數(shù)據(jù)導入與顯示模塊與數(shù)據(jù)分析與保存模塊為例做簡單描述:
結合機床關鍵溫度點及關鍵溫度數(shù)據(jù)和誤差數(shù)據(jù),對導入數(shù)據(jù)控件“pushbutton”和歸一化“radio button”callback下的回調函數(shù)的編寫,同時對溫度數(shù)據(jù)和誤差數(shù)據(jù)顯示“l(fā)ist box”和“edit”callback下的回調函數(shù)的編寫,實現(xiàn)控件的功能,完成數(shù)據(jù)的導入和顯示。其導入數(shù)據(jù)程序片段為:


綜合機床實際情況完成與用戶互交。實現(xiàn)其各自的功能,使整個界面連貫統(tǒng)一。
根據(jù)上述機床關鍵點溫度數(shù)據(jù)和誤差數(shù)據(jù),再結合BP神經網(wǎng)絡模型完成界面上機床熱誤差補償?shù)姆抡妗J紫龋瑢刖W(wǎng)絡訓練的相關機床關鍵點溫度數(shù)據(jù)和誤差數(shù)據(jù),設置好網(wǎng)絡結構參數(shù)和訓練參數(shù),然后點擊“網(wǎng)絡訓練”控件進行網(wǎng)絡訓練。訓練好網(wǎng)絡后,接著導入測試數(shù)據(jù),點擊“預測仿真”控件,得出相應的預測補償圖。點擊“殘差仿真”控件,得出補償殘差圖。最后點擊“補償數(shù)據(jù)”和“保存數(shù)據(jù)”控件完成補償數(shù)據(jù)的分析和保存,補償數(shù)據(jù)分析中包括預測誤差數(shù)據(jù)、實測數(shù)據(jù)、殘余誤差數(shù)據(jù)。將這些數(shù)據(jù)保存后并反饋給CNC控制系統(tǒng),CNC控制系統(tǒng)做出誤差控制指令,進而做出相應的誤差補償。具體的補償實現(xiàn)可視化界面如圖3所示。

圖3 熱誤差補償實現(xiàn)后可視化界面
由圖3中預測補償和殘余差可知,經補償后,徑向熱漂移從28.63μm以上降到約7μm,熱誤差降低約75.6%。擬合性能也很好。因此表明,數(shù)控機床熱誤差得以補償,加工精度得以提高。同時結合界面中各個模塊的數(shù)據(jù)顯示與分析,使數(shù)控機床熱誤差補償更加系統(tǒng)化、可視化、明朗化。
通過基于Matlab-GUI數(shù)控機床熱誤差補償仿真系統(tǒng)的研究,進行可視化界面操作,完成網(wǎng)絡的訓練、預測仿真,最終得出誤差補償數(shù)據(jù)并保存。研究表明:在補償方面,補償精度得以明顯提高;在操作方面,基于Matlab-GUI的補償系統(tǒng)界面使整個操作過程變得連貫和統(tǒng)一,在通過視覺觀察仿真圖形的同時,還能實時地完成對補償數(shù)據(jù)的分析和處理。但如何將該課題研究與實際機床更完美地對接整合,將是下一步面臨的重要工作。
[1] 杜正春,楊建國.制造機床熱誤差研究現(xiàn)狀與思考[J].制造業(yè)自動化,2002,24(8):1-3.
[2] 劉國良,張宏濤.神經網(wǎng)絡理論在數(shù)控機床熱誤差建模中的應用[J].現(xiàn)代制造工程,2005(8):20-23.
[3] 潘淑微,賀永.基于PMAC的數(shù)控車床主軸熱誤差補償系統(tǒng)研究[J].機械制造,2007,45(5):40-42.
[4] 劉洲洲,肖軍.基于跨平臺下的嵌入式GUI人機界面系統(tǒng)研究與設計[J].現(xiàn)代電子技術,2010,14:34-36.
[5] 曾黃磷.智能計算[M].重慶:重慶大學出版社,2004:45-47.
[6]MATLAB中文論壇.MATLAB神經網(wǎng)絡30個案例分析[M].北京:北京航空航天大學出版社,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] 賈建科,韓團軍.基于Matlab GUI的模擬帶通濾波器的設計[J].現(xiàn)代電子技術,2010.10:58-62.
[9] 李海濤,鄧櫻.Matlab程序設計教程[M].北京:高等教育出版社,2002.
[10]李顯宏.MATLAB 7.X界面設計與編譯技巧[M].北京:電子工業(yè)出版,2006.