王進峰,問叢川,花廣如,丁海民
(1.華北電力大學 能源動力與機械工程學院,河北 保定 071003; 2.保定市先進設計與智能制造重點實驗室,河北 保定 071003)
數字孿生(digital twin,DT),也稱為數字映射、數字鏡像,是虛擬空間中對物理對象的高保真鏡像與實時映射,反映了相應物理實體產品的全生命周期的過程[1]。數控加工作為機械制造中的先進加工技術,為機械制造行業的發展帶來了巨大的影響。隨著信息技術和制造業的發展,人們開始意識到數字孿生技術在生產制造領域有著廣泛的應用前景,如今國內外學者都加緊了對數控機床數字孿生系統的研究。數控機床相比普通機加工機床操作更為復雜,對使用者專業水平要求更高,由于數控機床造價昂貴,很難滿足對操作者的培訓需求,數字孿生技術的發展有效解決了這一難題[2]。
北京航空航天大學陶飛等[3]提出了數字孿生五維模型,對國內數字孿生技術的研究起到重要指導作用。孫惠斌等[4]在數字孿生理念的基礎上,提出面向切削過程的刀具數字孿生模型。張南等[5]提出基于數字孿生的車間作業監控及可視化方法,實現了車間生產作業過程的三維虛擬可視化及實時動態交互功能。駱偉超[6]研究了基于數字孿生的數控機床預測性維護的體系結構,并進行了數控機床預測性維護應用與驗證,解決了系統級體系結構的制定、高保真模型構建、機床智能場景感知、融合型預測性維護算法等關鍵問題。李聰波等[7]提出一種數字孿生驅動的刀具磨損在線監測方法,開發了面向刀具磨損的數控銑削數字孿生系統,實現了刀具磨損的精確預測。
本文選擇LG Mazak 數控機床作為研究對象,利用SolidWorks 軟件完成模型構建,并以Uniyt3D環境來搭建數控機床數字孿生系統,通過完成數據存儲及調用,建立可視化服務系統,實現了車間漫游、數據可視化、切削過程仿真、刀具碰撞預警、數據查詢等功能。
數控機床數字孿生系統是對實體機床的實時映射,在多維度建模技術、數據庫、通信技術、傳感技術的支持下完成搭建。通過建立物理機床與虛擬機床之間網絡通信協議,來實現數字孿生系統的雙向數據傳輸與融合;通過采集到的孿生數據,驅動機床運動仿真、數據可視化、加工狀態監測、刀具碰撞檢測及預警、歷史加工數據查詢等功能的實現。本文數控機床數字孿生系統架構如圖1所示,系統主要由物理實體、虛擬實體、服務層、數據層和連接層5 個層級構成。其中,物理實體指現實中真實存在的數控機床,通過傳感技術將物理機床的運行狀態及行為映射到虛擬空間;虛擬實體是通過三維建模技術對物理實體多維特性的數字化呈現,包括幾何形狀、行為方式等在內的高保真模型,并能對物理機床的運行進行指導;數據層是孿生系統的核心,負責虛擬實體與物理實體之間數據的采集、處理及數據可視化;服務層指系統的操作與展示單元,包括車間漫游、數據可視化、切削過程仿真、刀具碰撞預警和數據查詢系統在內的服務平臺;鏈接層是實現系統互聯互通和實時交互的橋梁,各層級間通過建立鏈接可實現數據雙向傳遞。
根據上述對系統整體設計規劃,本節將介紹虛擬模型構建方法。目前機械行業主流建模軟件有SolidWorks、UG、ProE 等,其中SolidWorks 用戶界面清晰直觀,有強大的零件建模及裝配功能,本系統將使用SolidWorks 進行白模構建,由于Unity3D 軟件模型導入格式有限,需將建立的數控機床三維模型以IGS 格式輸出,通過3DMax 轉化為FPX 格式并導入Unity3D 軟件中。3DMax 有強大的渲染及優化功能,格式轉化過程中可通過3DMax 對模型進行材質和貼圖處理,可增加模型真實性,隨后進行優化處理,會有效地降低模型多邊形數量,模型得以精簡化[8]。模型構建流程如圖2所示。

圖2 模型構建流程Fig.2 Model construction process schematic
用戶界面(user interface,UI)是服務層建立的基礎,Unity3D 提供了多樣化UI 組件,隨著版本的不斷更新,UI 系統也存在著不同版本,其中UGUI 系統是公認的性能最好的UI 系統。本文數控機床數字孿生系統重點使用的UGUI 組件見表1。

表1 系統構建重點UGUI組件Tab.1 System construction key UGUI components
表1 中,RawImage 組件在本系統搭建中起到重要作用,用于多相機視角展示,在使用過程中需要建立第二相機,調整相機視角為理想視角,在project 里創建Renderer Texture 并將其綁定在攝像機Target Texture 中獲取視角畫面,隨后以Canvas 組件為父級建立子組件RawImage 并將創建好的Renderer Texture 拖入RawImage 中,操作完成后可同時顯示第二相機視角。
數控機床數字孿生系統存在多源異構數據,主要分為靜態數據和動態數據兩種。靜態數據主要包括機床參數數據、刀具參數數據、工件材料數據等,靜態數據是固定不變的,需要在未加工前的準備階段完成輸入。動態數據主要是由傳感器采集到的時變數據,此外還包括機床自身運行狀態數據。由于時變數據會受到空間及傳輸環境影響,采集到的動態數據需要進行數據清洗后才可以使用,保證數據的可靠性。各類數據完成采集后存入MySQL 數據庫,下載好相關配置文件,打開Visual Studio在視圖下找到服務器資源管理器。右鍵“數據連接”選擇“添加連接”,選擇MySQL Database點擊“確定”,在Unity3D 中利用C#語言編寫的腳本調用相關SQL語句與MySQL數據庫進行交互連接。由于Unity3D 中數據表格制作過程繁瑣,為方便系統搭建,本系統使用XCharts 插件繪制可視化圖表[9]。XCharts 是一款基于UGUI 的功能強大、易用、參數可配置的數據可視化圖表插件,支持的圖表類型有折線圖、柱狀圖、餅圖、散點圖、熱力圖等。對數據進行可視化處理可方便使用者查看數據并做出精準決策。
車間漫游功能基于腳本實現,通過C#語言編寫腳本,然后將腳本掛在場景主攝像機,使用者即可通過鍵盤與鼠標控制攝像機在場景中移動。該功能模塊主要包含方向移動、旋轉視角和相機移動速度的控制。腳本主要改變Transform 類,Transform 是對象的位置、旋轉和縮放,旋轉采用四元數計算,由于歐拉角十分直觀,只需要3 個float 型變量(pitch、yaw 和roll),所需參數少,腳本中需要將四元數顯示為三維向量-歐拉角,使用Rotate 方法以歐拉角作為輸入,歐拉角參數如圖3所示。方向移動采用向量計算方法,使用Vector類成員變量進行計算,例如按下鍵盤W鍵控制相機向前移動,則需要使用Vector3.forward 成員變量,本質是Vector3(0,0,1)的簡碼。此外腳本中還需要對運動速度進行設定。實現效果如圖4所示。

圖3 歐拉角參數Fig.3 Euler angle parameter indication

圖4 車間漫游效果Fig.4 Workshop roaming effect
系統的切削過程仿真模塊主要是對切削加工時機床運動組件的運動仿真,包括主軸、卡盤、刀具、刀塔、進給箱等,這些運動主要涉及移動與旋轉,需對各運動零部件的Transform 組件進行處理。本系統模塊使用Unity3D 插件Prespective 進行仿真設計,Prespective 是應用于Unity3D 的工業數字孿生插件,插件提供了豐富的運動處理器、力學模擬器、邏輯編輯器等功能并以組件的形式封裝。移動的組件例如刀具、卡爪等,首先需要新建父級空對象并添加插件提供的運動控制器組件,只有運動控制器下的子集才能完成響應運動;隨后創建Spline(樣條)組件建立運動路徑,在零部件中添加Prismatic Joint 組件并將樣條線分配給Prismatic Joint;對于主軸、三爪卡盤以及零件等需要旋轉的零部件運動仿真,需要通過插件建立模擬電機類型包括:直流電機、連續伺服電機、驅動步進電機,將Motors 組件分配給正方體,并與主軸建立連接,設置相關參數;通過設置Button組件中Onclick 可實現對運動的交互控制,以主軸及卡爪加緊運動為例,實現原理示意圖如圖5 所示。切削運動仿真效果如圖6 所示。

圖5 運動仿真原理Fig.5 Motion simulation principle schematic

圖6 切削運動仿真效果Fig.6 Simulation effect of cutting motion
在加工過程中,由于機床的不斷運動,在實際加工過程中可能引起機床刀具與工作臺、夾具之間發生碰撞,從而導致加工過程不能正常實現[10]。數控機床數字孿生系統碰撞檢測模塊可以在加工準備階段對機床零部件運動路徑進行運動仿真,對發生碰撞情況發出警報,可有效降低機床加工過程中危險情況發生。
Unity 中的兩物體要想發生碰撞,必須依賴于自身的碰撞器組件(Collider),并且至少其中一個物體必須附有剛體組件(Rigidbody),其中附帶碰撞檢測腳本的物體必須有剛體組件。Unity中的碰撞檢測主要有2 種:碰撞信息檢測,在使用碰撞器類型檢測時,兩個物體是不能進入相互內部的,并且兩個物體的碰撞器接觸時,在附有剛體組件的物體是會受到力的反饋作用的;觸發信息檢測,兩個物體是可以進入內部的,附有剛體組件的物體并不會受到力的反饋作用。本系統功能模塊主要用于檢測加工過程中是否發生撞刀情況,將采用碰撞信息檢測方式實現。首先需要對所有碰撞情況涉及的零部件添加碰撞器,考慮到精準性問題,選擇網格碰撞器(Mesh Collider),檢測類型包括刀具與三爪卡盤碰撞、刀塔與三爪卡盤碰撞、刀塔與零件碰撞3 類,檢測分為3 種情況:發生碰撞、碰撞持續進行、碰撞消失。例如當刀具碰撞器與三抓卡盤發生碰撞,則調用MonoBehaviour.OnCollisionEnter 方法,通過編寫腳本對碰撞事件做出響應并彈出警報窗口,如圖7所示。

圖7 刀具與卡盤碰撞檢測Fig.7 Tool and chuck collision detection
數據查詢系統主要通過機床工作時刀尖圓弧半徑r、切削深度ap、進給量f、切削速度v、主偏角Kr5 組參數數據的整理與輸入,實現表面粗糙度Ra(平均值)、切削溫度T(最大值)、切削功率P(平均值)、切削力F(平均值)數據的查詢與輸出。查詢系統與MySQL 數據庫建立連接,并設置刷新頻率。
用戶界面設計時遵循簡潔、實用的原則,界面設計分為2 個部分。界面上半部分為數據輸入,點擊箭頭出現機床刀具工作數據,可以進行數據的選擇。同時,下半部分為上方選定數據組下的機床運行數據,并且以表格的形式出現。此系統的特點是用表格的形式非常直觀地表現了機床運行的所有數據,便于查看,同時在查詢過程中,并不需要5 組刀具數據全部輸入,輸入多少組,便會直接展現符合輸入條件的所有數據,此時稱作輸入數據不完全狀態。如果出現多組輸入數據并沒有符合條件的情況,則不會顯示任何數據。系統主界面如圖8所示。

圖8 數據查詢系統Fig.8 Data query system
在完成系統各功能模塊的搭建后,遵循簡潔、人性化的原則對系統主界面進行了優化設計,系統主界面效果如圖9 所示。界面設置賬號訪問功能,方便內部管理;主界面另外設置系統功能介紹,以離線文本和操作視頻相結合的形式呈現,用戶可在登錄系統前對各功能模塊進行初步了解,例如點擊安全教育按鈕,即可以彈窗形式展示數控機床操作過程中的注意事項及操作準則,起到警示教育的作用;在用戶完成登錄后,系統自動跳轉內部功能界面,并設有UI按鈕實現各功能場景間的切換。

圖9 系統主界面效果Fig.9 System main interface effect
為滿足機械加工數字化智能化的發展趨勢,通過對數控機床數字孿生系統整體架構的研究,開發了基于Unity3D 的數控機床數字孿生系統,以通過使用SolidWorks 軟件對LG Mazak 數控機床進行三維模型構建,使用3DMax 軟件對模型進行處理及格式轉化并導入到Unity3D 場景中;通過數據的存儲及調用,實現了數據可視化、數據查詢等功能;通過相關腳本和GUI控件相結合,實現了加工過程仿真交互、碰撞檢測預警等功能;最后建立了系統主界面及登錄系統并對系統各功能模塊進行集成。系統各功能運行流暢,可為數控機床數字孿生相關系統的開發提供一定借鑒。