林永勇,劉文濤,周法權,韋葉,張華德
(1.上海航天設備制造總廠,上海200245;2.哈爾濱工業(yè)大學機電工程學院,黑龍江哈爾濱150001)
對于一些具有復雜結構的數控機床,以及一些重要零件的加工應用場合,進行加工過程的實體運動仿真 (虛擬加工)是非常必要的。通過這種仿真,可以預先觀察加工時機床各運動構件之間,以及機床運動構件與工件之間的干涉情況,從而避免加工過程中的意外發(fā)生。
目前,對加工過程的實體運動仿真通常是借助一些離線的第三方仿真軟件進行的,如UG、Vericut等[1-2]。但這類離線仿真方法存在一些不足之處:首先是操作者使用不太方便,離線仿真時的坐標系與加工時的坐標系也不容易完全一致,仿真情況會有差異;更重要的是這類軟件不支持對并聯機床等具有復雜結構數控機床的仿真。
理想的仿真方案是在數控系統(tǒng)中加入實體仿真功能,比較典型的如瑞典EXECHON公司在西門子840d的基礎上開發(fā)的在線仿真模塊ILP(In Line Production),與該公司的TRIPOD型并聯機床匹配使用,可實現離線或在線仿真[3]。但類似功能在其他數控系統(tǒng)中并不多見,主要原因在于其他數控系統(tǒng)并不具備840d那樣良好的開放性。在我國也有一些在自行開發(fā)的數控系統(tǒng)中加入3維仿真功能的案例[4],但其功能還較為簡單,通常只能進行一些示意性的仿真。
本文作者針對所設計的一種基于3prs并聯機構的攪拌摩擦焊機床,在開放式數控系統(tǒng)PA基礎上,開發(fā)了具有虛擬加工仿真功能的數控系統(tǒng)。其中仿真過程使用的實體模型與機床真實模型完全一致,而仿真數據則來自于數控系統(tǒng)的插補數據或位置反饋數據,因而能夠準確而同步地反映機床的實際運行情況。
攪拌摩擦焊機床采用龍門架+3PRS并聯機構的結構形式 (圖1)。其中3PRS并聯機構 (圖2)由3個并聯布置的驅動支路共同控制1個動平臺的運動,每個驅動支路又由1個滑塊和1個支臂構成;滑塊與支臂之間通過回轉副連接,支臂與動平臺之間通過萬向節(jié) (或球面副)連接。該機構具有3個自由度,可以實現Z軸運動以及A、B軸的轉動,而X軸和Y軸的運動則由龍門架的運動實現。
圖1 五軸并聯摩擦焊機床
圖2 3PRS并聯機構結構
采用3PRS并聯機構的原因在于該結構具有較高的承載能力,能夠承受厚板材料攪拌摩擦焊過程所產生的較大工作載荷。從圖2中可以看出,主軸與滑塊及支臂之間的安裝較為緊湊,因而當加工過程中主軸擺角較大時,需要注意各構件之間的干涉情況[5]。
攪拌摩擦焊并聯機床數控系統(tǒng)是在PA系統(tǒng)基礎上開發(fā)的,PA系列數控系統(tǒng)是德國Power Automation公司開發(fā)的一種基于PC的全軟件數控系統(tǒng),最大的特點是其全面的開放性。其結構框架如圖3所示,包含HMI、CNC和PLC 3個相對獨立的模塊,互相之間可以通訊,均可進行不同程度的開發(fā),以得到所需要的功能[6]。
PA的HMI采用基于瀏覽器的結構框架,用戶不僅可以使用PA系統(tǒng)提供的可編輯功能插件設計其獨特的人機交互界面,還可以在HMI中嵌入自定義JAVA插件及ActiveX控件,將使用高級語言編寫的插件加入人機界面。
圖3 數控系統(tǒng)結構
PA的CNC采用與西門子840d相同的開發(fā)方式,系統(tǒng)為用戶提供了一種可編輯循環(huán) (Compile Cycles),通過一些開放的入口點以及相關的綁定函數,用戶可以參與CNC解釋器以及CNC插補器的工作。
PA的PLC為符合IEC1131-3標準的軟PLC系統(tǒng),支持用戶使用梯形圖、功能塊圖、指令表、流程圖及結構化文本等多種方式進行編程,完成各種復雜的機床邏輯控制。
在攪拌摩擦焊機床數控系統(tǒng)開發(fā)過程中對HMI和CNC兩方面都進行了開發(fā):在CNC中利用PA提供的編譯循環(huán)功能 (compile cycle)加入了3PRS機構的運動學算法;在HMI中通過嵌入自定義ActiveX控件的方法,加入了在線仿真功能模塊。
仿真過程所采用的三維模型直接取自機床零件的SolidWorks實體模型,為減小仿真時的計算量,需要對零件的形狀進行簡化處理,去掉一些對干涉分析影響不大的局部結構,同時,對相互連接并具有相同運動的構件組合成組件形式,具體包括:床身、龍門架、并聯機構機架、支路1滑塊、支路1支臂、支路1萬向節(jié)、支路2滑塊、支路2支臂、支路2萬向節(jié)、支路3滑塊、支路3支臂、支路3萬向節(jié)、主軸及動平臺、攪拌頭、以及工件等15個組件。這些組件中攪拌頭和工件組件由于會經常改變,將作為需要單獨造型的可替換組件,其他組件則為固定結構組件。
三維運動仿真采用MFC中調用OpenGL庫的方式進行開發(fā),在MFC中直接讀取SolidWorks的零件文件比較困難,文中采用的是通過3DS MAX軟件進行轉換的方法。即在SolidWorks中將零件的實體造型文件存成.wrl格式,導入到3DS MAX中進行模型網格的細化和材質的渲染,再保存為3DS文件,即可為MFC程序所讀取。
3DS文件為二進制代碼,包含了非常豐富的物理信息數據和幾何信息數據,如網格信息、材質信息、紋理信息、組件名稱等等。這些信息是以塊的方式存儲的,塊的層次結構較為復雜,每個子塊下又包含了更多的子塊。在用OpenGL進行數控加工仿真時,由于重點在于驗證構件之間干涉情況,因此除了面的節(jié)點信息外,一般只需再用到材質信息即可。在MFC中讀取3DS文件時依次讀取ID號和塊的長度,對不需要該塊的信息可以直接跳過 (圖4)[7]。
圖4 3DS文件讀取流程
為了實現機床運動的仿真,需要根據當前的數據對機床模型零件的位姿進行重新繪制。在并聯機床數控系統(tǒng)中,存在虛軸和實軸兩種運動軸數據,其中虛軸是指模擬傳統(tǒng)結構機床定義的運動軸,即X、Y、Z、A、B等運動軸,用于描述機床主軸在笛卡爾坐標下的位置和姿態(tài);實軸是指機床的實際驅動軸,即圖2中3PRS機構3個豎直驅動軸的實際伸長量,也即滑塊在驅動軸上的位置。根據虛軸數據求解實軸數據稱為運動學逆解,根據實軸數據求解虛軸數據稱為運動學正解。PA數控系統(tǒng)中插補過程是在虛軸下進行的,通過嵌入Compile Cycle循環(huán),在插補過程之后加入3PRS機構的逆解運算,將虛軸數據轉化為了實軸數據,從而控制機床的運動 (圖5)。
圖5 機床運動構件位置計算
在HMI中對CNC中機床實軸數據的訪問以Client/Server方式進行,CNC作為Server,HMI作為Client通過定時器定時獲取實軸數據。根據實軸數據可以直接確定滑塊的位置,而主軸及動平臺的位置和姿態(tài)則需要根據實軸數據通過正解運算得到,由于用解析法求解比較困難,系統(tǒng)中采用牛頓-拉夫森方法,即先對動平臺位位置取一個初值 (通常取上一周期中的動平臺位置),計算出虛軸 (Z、A、B)和實軸 (l1、l2、l3)之間的雅克比矩陣,根據圖6所示過程進行反復迭代直至到達要求的求解精度。動平臺的位置求出后,3PRS機構的其他活動構件如支臂、萬向節(jié)等的位置就比較容易確定了,文中將不贅述[8]。
圖6 主軸及動平臺位置的迭代計算
控件的開發(fā)過程如圖7所示,首先需要在MFC中創(chuàng)建項目控件,并添加OpenGL相關的函數庫,主要包括:opengl32.lib、glu32.lib以及glaux.lib。
圖7 ActiveX控件的開發(fā)過程
在仿真程序中,在WM_CREATE消息的OnCreate()函數中需要對圖形進行初始化設置;。在WM_SIZE消息的OnSize()函數中對視點,投影變換方式,以及場景進行設定;在OnDraw()函數中添加模型繪制的代碼,進行圖形繪制,并用glFlush()顯示圖像。繪制完成之后,在接收到WM_DESTROY消息時刪除RC以釋放Windows系統(tǒng)資源。
仿真圖形的繪制流程如圖8所示,繪制運動物體時是通過更改旋轉矩陣以及平移向量實現的,為避免之后繪制的其他圖元也會產生相同的運動,OpenGL中設置了矩陣堆棧,將其他零件的坐標矩陣壓入棧中進行保存,待變換結束后再將堆棧中的矩陣彈出,恢復其他零件的位置。
圖8 仿真圖形的繪制流程
為能更細致地觀察構件之間的干涉情況,界面中還設置了對機床構件消隱、放大、平移及旋轉等操作功能 (圖9)。
圖9 仿真圖形操作菜單
所開發(fā)的帶在線仿真功能的HMI界面運行情況如圖10所示,由于仿真時的位置數據來自于CNC中驅動軸的數據,因而系統(tǒng)即可以進行離線仿真也可以實現加工過程的同步仿真。數控系統(tǒng)的運行測試表明,所開發(fā)的仿真模塊更夠準確反映機床加工過程中各構件的實際運動情況,從而可以降低操作過程出現意外的可能性。
圖10 攪拌摩擦焊數控系統(tǒng)主界面
利用PA系統(tǒng)所提供的開放環(huán)境,在該系統(tǒng)中開發(fā)了基于機床部件3維實體模型的虛擬加工仿真功能,有利于操作者更直觀地了解機床的實際動作,并避免干涉、碰撞等意外的發(fā)生。
[1]楊曉京,傅中裕,史孝文.數控機床虛擬樣機的虛擬加工實現[J].機床與液壓,2007(1):45-47.
[2]劉錫勝.基于SolidWorks和VERICUT的虛擬數控系統(tǒng)研究[J].制造業(yè)自動化,2011(21):57-59.
[3]譚光恒.哈量新一代并聯機床 LINKS-EXE700[J].世界制造技術與裝備市場,2007(1):90-94.
[4]王順利,吳洪濤,繆群華.6-3平臺并聯機床數控系統(tǒng)軟件設計[J].機械制造,2010(1):10-12
[5]周法權,廖佳音,林永勇,等.基于并聯機構的五軸攪拌摩擦焊接機床設計[J].電焊機,2014(4):10-13.
[6]劉鵬.PA數控系統(tǒng)中Hexpod型并聯機床控制模塊開發(fā)[D].哈爾濱:哈爾濱工業(yè)大學,2009.
[7]殷素峰,楊勝強.基于OpenGL的3DS圖形文件中模型數據的獲取[J].機械工程與自動化,2005(3):68-70.
[8]胡溥瑞.具有在線仿真功能的并聯拋光機床數控系統(tǒng)的開發(fā)[D].哈爾濱:哈爾濱工業(yè)大學,2012.