方 圓,劉 江,呂瑞強(qiáng),王明陽
(1.中國航空制造技術(shù)研究院,北京 100024;2.北京科技大學(xué)機(jī)械工程學(xué)院,北京 100083)
近年來,隨著網(wǎng)絡(luò)技術(shù)和信息技術(shù)的迅速發(fā)展,數(shù)字化技術(shù)已深入到制造業(yè)各個領(lǐng)域,由此形成的智能制造概念也成為了戰(zhàn)略制高點(diǎn)。在《中國制造2025》中也明確指出在重點(diǎn)領(lǐng)域試點(diǎn)建設(shè)智能工廠/數(shù)字化車間的計劃。在智能制造的實(shí)踐過程中,始終面臨一個瓶頸問題:信息空間與物理空間如何交互與融合的問題,為此提出了數(shù)字孿生(Digital Twin,DT)的解決方法[1]。
數(shù)字孿生的概念最早誕生于2003年,由美國密歇根大學(xué)的Grieves 教授在講授產(chǎn)品全生命周期管理課程(PLM)時提出來[2]。數(shù)字孿生是以數(shù)字化方式創(chuàng)建物理實(shí)體的虛擬模型,借助數(shù)據(jù)模擬物理實(shí)體在現(xiàn)實(shí)環(huán)境中的行為,通過虛實(shí)交互反饋、數(shù)據(jù)融合分析、決策迭代優(yōu)化等手段,為物理實(shí)體增加或擴(kuò)展新的能力[3]。
在由數(shù)字孿生理論所進(jìn)行的實(shí)際應(yīng)用探索方面,國內(nèi)學(xué)者進(jìn)行了眾多的試驗(yàn)。陳振等[4]對物理裝配車間數(shù)據(jù)的實(shí)時感知與采集、虛擬裝配車間建模與仿真運(yùn)行等關(guān)鍵技術(shù)進(jìn)行了研究,提出了飛機(jī)數(shù)字孿生裝配車間架構(gòu),但只是在理論層面探索了數(shù)字孿生技術(shù)在飛機(jī)裝配車間中的應(yīng)用模式,未進(jìn)行實(shí)際應(yīng)用功能的開發(fā)。魯壯等[5]開發(fā)了車間多機(jī)床實(shí)時監(jiān)測系統(tǒng)并進(jìn)行了實(shí)際測試,能有效采集多機(jī)床實(shí)時加工數(shù)據(jù),但由于系統(tǒng)是二維監(jiān)控界面,不能將機(jī)床與車間信息情況可視化。趙浩然等[6]提出了一種基于實(shí)時信息的生產(chǎn)車間三維可視化監(jiān)控方法,設(shè)計出基于實(shí)時信息的生產(chǎn)車間三維可視化監(jiān)控方法并開發(fā)出原型系統(tǒng),但該系統(tǒng)人機(jī)交互功能不強(qiáng),系統(tǒng)功能較為單一。姜康等[7]構(gòu)建了數(shù)字化車間的虛擬監(jiān)控系統(tǒng),實(shí)現(xiàn)了車間信息的可視化與實(shí)時人機(jī)交互,但他們只是對生產(chǎn)線的生產(chǎn)信息進(jìn)行展示,對于具體設(shè)備的實(shí)時運(yùn)動狀態(tài)未進(jìn)行實(shí)時仿真,且數(shù)字化程度不高。文國軍等[8]設(shè)計了基于Unity3D的水平定向鉆機(jī)虛擬實(shí)訓(xùn)系統(tǒng),具有良好的可操作性,提高了培訓(xùn)效率,但該系統(tǒng)只能進(jìn)行人員單向地控制模型,未實(shí)現(xiàn)模型的實(shí)時仿真與信息顯示的功能。周光源等[9]設(shè)計開發(fā)了生產(chǎn)車間可視化實(shí)時監(jiān)控平臺,能對生產(chǎn)過程進(jìn)行實(shí)時動態(tài)監(jiān)控,在實(shí)時數(shù)據(jù)的驅(qū)動下監(jiān)測運(yùn)行狀態(tài),但他們在模型實(shí)時仿真方面未進(jìn)行深入研究。
因此,提升加工設(shè)備數(shù)字化水平和對仿真分析功能進(jìn)行深入研究成為需要解決的問題。針對設(shè)備實(shí)際運(yùn)行過程中數(shù)據(jù)無法有效獲取和顯示、缺乏有效的人機(jī)交互手段來實(shí)現(xiàn)規(guī)范化和提高效率等實(shí)際問題,首先需要對加工設(shè)備進(jìn)行建模處理工作,這是實(shí)現(xiàn)設(shè)備模型可視化功能和提升加工設(shè)備數(shù)字化水平的基礎(chǔ)。研究仿真分析功能可以在產(chǎn)品生產(chǎn)之前,就能通過虛擬生產(chǎn)的方式來模擬在不同條件下的生產(chǎn)過程,實(shí)現(xiàn)對產(chǎn)能、效率以及可能出現(xiàn)的生產(chǎn)問題的提前預(yù)判,而實(shí)時仿真可以細(xì)致地顯示加工狀態(tài)以及為之后的設(shè)備檢測維護(hù)提供數(shù)據(jù)支持。數(shù)字孿生技術(shù)是以虛擬模型為核心,以數(shù)據(jù)為驅(qū)動,可以在虛擬模型上進(jìn)行仿真分析和實(shí)時反映設(shè)備的運(yùn)行狀態(tài),實(shí)現(xiàn)虛實(shí)融合。
本文基于數(shù)字孿生理論,采用構(gòu)建實(shí)際物體的數(shù)字孿生體的方式來對設(shè)備進(jìn)行映射,提出了一種加工設(shè)備加工過程可視化與仿真分析技術(shù)方案,該方案包括虛擬模型與場景搭建、NC程序解析與仿真、現(xiàn)場設(shè)備與模型間數(shù)據(jù)傳輸、整合生產(chǎn)信息并顯示等步驟。設(shè)備與軟件建立通訊后以實(shí)時數(shù)據(jù)驅(qū)動虛擬模型運(yùn)動實(shí)現(xiàn)設(shè)備實(shí)時運(yùn)行狀態(tài)的三維可視化,生產(chǎn)信息的整合和展示功能,再以數(shù)據(jù)為支撐來進(jìn)行設(shè)備運(yùn)行狀態(tài)和加工質(zhì)量的分析和優(yōu)化。最終實(shí)現(xiàn)NC程序解析與模型仿真功能、產(chǎn)線設(shè)備運(yùn)行狀態(tài)在線監(jiān)測功能信息顯示、設(shè)備實(shí)時三維仿真、NC程序解析仿真功能。
生產(chǎn)線及設(shè)備可視化與仿真分析技術(shù)分為產(chǎn)線級孿生和設(shè)備級孿生兩大部分,有用戶界面功能和場景交互功能。在數(shù)據(jù)通信方面,技術(shù)方案可以連接服務(wù)器端的實(shí)時數(shù)據(jù)庫或者連接現(xiàn)場的工控機(jī)獲取實(shí)時數(shù)據(jù)和控制。技術(shù)方案的設(shè)計步驟可分為以下4步:(1)對生產(chǎn)線中的各個設(shè)備進(jìn)行建模;(2)模型前處理,包括在模型優(yōu)化軟件中對模型的坐標(biāo)系、尺寸等進(jìn)行處理和渲染優(yōu)化;(3)在軟件開發(fā)平臺中進(jìn)行仿真程序功能開發(fā);(4)建立硬件通信連接與搭建軟件測試平臺。
總體框架架構(gòu)如圖1所示。硬件部分包括實(shí)際生產(chǎn)線、數(shù)據(jù)庫服務(wù)器、顯示客戶端。生產(chǎn)線上的數(shù)據(jù)由采集系統(tǒng)提取,將各類傳感器采集的外部數(shù)據(jù)和設(shè)備PLC提供的內(nèi)部數(shù)據(jù)上傳到生產(chǎn)線服務(wù)器端的實(shí)時數(shù)據(jù)庫中,在數(shù)據(jù)庫中進(jìn)行識別、分類和存儲[10],最終由客戶端連接數(shù)據(jù)庫提取數(shù)據(jù)并提供生產(chǎn)信息實(shí)時顯示數(shù)據(jù)管理,模型實(shí)時仿真,交互查詢動態(tài)圖表顯示等功能。
系統(tǒng)技術(shù)架構(gòu)如圖2所示。系統(tǒng)的3D模型在建模軟件中構(gòu)建,經(jīng)過模型優(yōu)化軟件中處理加工后導(dǎo)入系統(tǒng)開發(fā)工具中;生產(chǎn)線的實(shí)時數(shù)據(jù)庫提供生產(chǎn)數(shù)據(jù)如主軸轉(zhuǎn)速、功率、溫度、各軸速度及位置數(shù)據(jù)等;由關(guān)系型數(shù)據(jù)庫(如MYSQL 數(shù)據(jù)庫)對產(chǎn)線的數(shù)據(jù)進(jìn)行存儲和分析;由運(yùn)動控制等眾多腳本進(jìn)行數(shù)據(jù)驅(qū)動模型的運(yùn)動功能和其他功能設(shè)計。
裝配生產(chǎn)線設(shè)備仿真分析功能分為NC程序解析與加工仿真功能、連接工控機(jī)與實(shí)時仿真功能和運(yùn)動數(shù)據(jù)分析與圖表展示功能3 部分。其中由NC程序解析的數(shù)據(jù)所驅(qū)動的加工仿真功能為執(zhí)行機(jī)構(gòu)運(yùn)動的幾何軌跡仿真,暫未考慮動力學(xué)仿真。為實(shí)現(xiàn)設(shè)備的模擬仿真和實(shí)時仿真功能,需要對設(shè)備的各個運(yùn)動部位進(jìn)行細(xì)致劃分和聯(lián)合運(yùn)動控制,利用開發(fā)工具的輔助功能實(shí)現(xiàn)各個運(yùn)動部位的獨(dú)立運(yùn)動。
在未執(zhí)行要加工的NC程序之前,設(shè)備模型在系統(tǒng)中需進(jìn)行NC程序解析,模型執(zhí)行解析后的數(shù)據(jù)驅(qū)動模型運(yùn)動從而實(shí)現(xiàn)預(yù)加工仿真功能。用戶選擇好NC程序文件后模型各部件會按照NC程序中指定的路徑和速度運(yùn)動,實(shí)現(xiàn)完整的預(yù)加工仿真過程。預(yù)加工仿真中涉及的關(guān)鍵技術(shù)包括NC代碼解析、模型驅(qū)動和碰撞檢測。
2.1.1 NC代碼解析
NC代碼解析腳本程序在系統(tǒng)開發(fā)工具所支持的開發(fā)環(huán)境中進(jìn)行,程序開發(fā)語言也隨著開發(fā)工具的不同而改變。在NC程序解析的腳本中使用微軟正則模板類庫,這是微軟研究院推出的一個正則表達(dá)式模板類庫,其中主要的正則表達(dá)式通常被用來檢索、替換符合某個模式(規(guī)則)的文本。
圖1 總體框架架構(gòu)Fig.1 Overall functional architecture of system
其利用基于數(shù)控代碼的文法規(guī)則建立起來的正則表達(dá)式,構(gòu)建關(guān)鍵字符集,完成數(shù)控代碼的語義分析的匹配工作。該解析工作需要構(gòu)建關(guān)鍵字符表來對字符(NC 數(shù)控代碼)完成匹配,并且使用正則表達(dá)式格式存儲各關(guān)鍵字符。語義分析中關(guān)鍵字符表具體如下:
按照設(shè)置好的關(guān)鍵字符集對當(dāng)前讀取到的該行數(shù)控代碼進(jìn)行逐字符匹配,如匹配到相應(yīng)的字符,對其字符后的數(shù)據(jù)進(jìn)行記錄和存儲。
設(shè)置鍵值對集合Dictionary 存儲每一行數(shù)控代碼解析出來的各軸位置速度數(shù)據(jù)、計算得到的時間、鉆頭開始運(yùn)動代碼段等數(shù)據(jù)類型,其中的鍵為當(dāng)前數(shù)據(jù)在NC代碼中的程序行號N,值為存儲的數(shù)據(jù),如圖3所示。
圖2 系統(tǒng)技術(shù)架構(gòu)Fig.2 System technical architecture
圖3 鍵值對Dictionary存儲解析數(shù)據(jù)類型Fig.3 Parsed data type for Dictionary stores
2.1.2 模型驅(qū)動
選取合適的運(yùn)動控制腳本將物體開始與結(jié)束位置變量和運(yùn)動時間轉(zhuǎn)化為模型移動或旋轉(zhuǎn),從而達(dá)到驅(qū)動模型的目的。使用解析數(shù)據(jù)驅(qū)動模型運(yùn)動時,將Dictionary 中存儲的值賦給運(yùn)動控制腳本中的移動最終位置變量,再獲取上一步位置與此次位置的距離,從代碼中讀取的速度設(shè)定值F存入F_value 中,便可計算出運(yùn)動時間,計算公式如下:
式中,S為起點(diǎn)與終點(diǎn)間距離;x1,x2,y1,y2,z1,z2為各軸起點(diǎn)與終點(diǎn)位置坐標(biāo);Ti為起點(diǎn)到終點(diǎn)的時間;fi為從起點(diǎn)到終點(diǎn)的速度F_value值。
將Ti中求得的時間賦給運(yùn)動控制腳本中的時間變量,即可實(shí)現(xiàn)該段NC代碼所對應(yīng)的模型運(yùn)動動畫效果。運(yùn)用開發(fā)工具中的多線程技術(shù)實(shí)現(xiàn)NC程序中一行代碼的各個軸同時運(yùn)動,逐行執(zhí)行NC代碼。設(shè)備模型即會按照NC程序順序執(zhí)行實(shí)現(xiàn)設(shè)定的運(yùn)動。
2.1.3 碰撞檢測
在虛擬模型層面運(yùn)用物理引擎(如PhysX 物理引擎)檢測物體的接觸情況。物理引擎通過內(nèi)置的算法可以使虛擬世界中的物體運(yùn)動符合真實(shí)世界的物理定律,如重力作用、碰撞效果等,應(yīng)用物理引擎可實(shí)現(xiàn)設(shè)備刀具與工件的碰撞檢測功能。
在設(shè)備的刀具和工件部分添加網(wǎng)格渲染器(Mesh renderer)和網(wǎng)格包圍盒組件(Mesh Collider),物理引擎組件能以模型自帶的三角面網(wǎng)格形成包圍盒,利用兩個包圍盒接觸時觸發(fā)碰撞報警功能,實(shí)現(xiàn)碰撞檢測。圖4中模型綠色線條為碰撞體包圍盒結(jié)構(gòu),在模型對象中添加檢測碰撞的代碼腳本,當(dāng)兩個運(yùn)動部件接觸時會觸發(fā)碰撞警告提示框。
為實(shí)現(xiàn)實(shí)時仿真效果,需要從設(shè)備處獲取實(shí)時運(yùn)動數(shù)據(jù)并傳輸?shù)娇蛻舳诉M(jìn)行解析和驅(qū)動仿真??蛻舳丝膳c設(shè)備的工控機(jī)軟件建立通信連接從而獲取數(shù)據(jù),通過現(xiàn)場PC的工控機(jī)軟件的IP 地址和端口號,客戶端與工控機(jī)軟件建立連接。建立通信連接與數(shù)據(jù)傳輸?shù)倪^程如下:(1)客戶端軟件與現(xiàn)場設(shè)備工控機(jī)軟件通過IP地址與端口號建立通信連接;(2)在客戶端腳本中創(chuàng)建通信句柄(Handle),上位機(jī)(即設(shè)備工控機(jī)軟件)把數(shù)據(jù)傳給句柄;(3)句柄將數(shù)據(jù)賦值給下位機(jī)(即客戶端程序),再將數(shù)據(jù)賦值給運(yùn)動控制腳本驅(qū)動模型各部分的運(yùn)動,整個過程在腳本的自動更新函數(shù)中執(zhí)行,自動更新函數(shù)會每20ms 自動刷新一次,從而保證每20ms 機(jī)床的實(shí)時運(yùn)動狀態(tài)能被客戶端的模型仿真出來,最終實(shí)現(xiàn)孿生模型對機(jī)床的實(shí)時仿真功能,連接與傳輸數(shù)據(jù)流程圖如圖5所示。
在從現(xiàn)場工控機(jī)獲取到實(shí)時數(shù)據(jù)的同時,還可以將實(shí)時數(shù)據(jù)賦值給圖表顯示插件(如二維圖形顯示插件GraphMaker),通過更改插件腳本將實(shí)時數(shù)據(jù)顯示為折線圖的Y軸坐標(biāo),以時間戳變化為X軸坐標(biāo),圖表刷新時間設(shè)定為1s,最終形成設(shè)備數(shù)據(jù)二維折線圖的動態(tài)監(jiān)測效果。
在繪制好實(shí)時數(shù)據(jù)折線圖后,通過匹配當(dāng)前執(zhí)行的程序段號得到NC代碼中的編程值,并將其繪制在實(shí)時折線圖的同一圖表上,如圖6所示。通過該對比兩折線圖可以直觀地觀察到運(yùn)動誤差,便于加工精度評估,運(yùn)動補(bǔ)償控制等。
圖4 模型碰撞體包圍盒Fig.4 Model collider bounding box
圖5 ADS通信連接與傳輸數(shù)據(jù)流程圖Fig.5 Flow chart of ADS communication connection and transfer data
為記錄和傳輸歷史加工數(shù)據(jù),可采用數(shù)據(jù)庫數(shù)據(jù)傳輸支持的文件格式存儲歷史加工數(shù)據(jù)。JSON 格式是一種較為通用的輕量級的數(shù)據(jù)交換格式,具有便捷的數(shù)據(jù)訪問途徑和非冗長性特點(diǎn),因此本文采用JSON 格式進(jìn)行加工數(shù)據(jù)傳輸和存儲。首先定義要生成的加工數(shù)據(jù)文件存儲位置,然后確定采集時間區(qū)段,最終按照預(yù)設(shè)的通信句柄連接并獲取現(xiàn)場工控機(jī)軟件中的時間戳、當(dāng)前執(zhí)行程序段號、各個軸位置速度、主軸轉(zhuǎn)速、功率等信息生成一個加工數(shù)據(jù)文件。將生成的加工數(shù)據(jù)文件導(dǎo)入數(shù)據(jù)庫(如MySQL)中可顯示出表結(jié)構(gòu)數(shù)據(jù),如圖7所示。生成的歷史加工數(shù)據(jù)可在現(xiàn)場通信條件不佳的情況下通過外部存儲設(shè)備進(jìn)行拷貝和異地分析。
由于本次外涵道生產(chǎn)線數(shù)字孿生課題是在完善實(shí)際外涵機(jī)匣生產(chǎn)線的可視化和生產(chǎn)信息數(shù)據(jù)化功能的基礎(chǔ)上所提出,因此實(shí)際的操作平臺為該條飛機(jī)發(fā)動機(jī)外涵道機(jī)匣生產(chǎn)線,其中包含6個站位,分別為1站位自動切邊制排孔、2站位手工預(yù)裝、3站位自動制孔、4站位手工預(yù)裝、5站位自動鉚接和6站位無損檢測;其中2、4站位為人工站位,5、6站位為機(jī)器人站位,4個自動站位都安裝有德國倍福自動化公司(BECKHOFF)的基于PC的工業(yè)控制軟件TwinCAT(The windows control and automation technology)實(shí)現(xiàn)設(shè)備控制與數(shù)據(jù)傳輸。TwinCAT 在整個系統(tǒng)中扮演雙重角色:一是接收用戶輸入的指令,經(jīng)過解碼轉(zhuǎn)換為機(jī)器能識別的指令,進(jìn)而控制機(jī)床的運(yùn)動;二是以—定的周期讀取機(jī)床的狀態(tài)并反饋給用戶。
選擇Unity3D 引擎開發(fā)生產(chǎn)線及設(shè)備仿真分析系統(tǒng),Unity3D 是一個全面整合的專業(yè)游戲引擎,利用交互的圖形化開發(fā)環(huán)境為首要方式的軟件。系統(tǒng)代碼部分采用微軟公司的VS(Visual studio)集成開發(fā)環(huán)境進(jìn)行開發(fā),開發(fā)語言為C#語言。Unity3D 與TwinCAT之間的數(shù)據(jù)通信通過ADS (Automation device specification)通信協(xié)議進(jìn)行。在TwinCAT 系統(tǒng)中的各個軟件模塊之間的信息交換通過TwinCAT ADS 完成。系統(tǒng)仿真所使用的模型來自實(shí)際設(shè)備的設(shè)計三維模型,能精確地反映真實(shí)設(shè)備的尺寸、安裝位置等數(shù)據(jù)。
圖6 NC指令與實(shí)時數(shù)據(jù)對比顯示界面功能Fig.6 Comparison display interface of NC commands and real-time data
圖7 數(shù)據(jù)庫中顯示存儲的現(xiàn)場數(shù)據(jù)Fig.7 Stored factory data in database
在實(shí)際生產(chǎn)中,生產(chǎn)線上的各個站位的生產(chǎn)狀態(tài)信息都需要進(jìn)行監(jiān)控,為了能直觀、全面地展示整條生產(chǎn)線上所有設(shè)備的實(shí)時信息,系統(tǒng)的生產(chǎn)線界面內(nèi)整合了全部站位的設(shè)備模型、用戶界面和信息顯示窗口。最終實(shí)現(xiàn)各設(shè)備實(shí)時信息三維顯示,具體設(shè)備孿生界面切換功能。生產(chǎn)線界面如圖8所示,采用現(xiàn)場設(shè)備照片作為貼圖,使得模型與現(xiàn)場設(shè)備更加逼真,增加使用者的沉浸感,設(shè)備仿真界面如圖9所示。
系統(tǒng)的主要測試指標(biāo)為系統(tǒng)各部分功能的完整性、系統(tǒng)畫面的流暢度、系統(tǒng)的人機(jī)交互性和系統(tǒng)與現(xiàn)場設(shè)備通信的同步性。測試結(jié)果表明,系統(tǒng)的生產(chǎn)線孿生界面與設(shè)備孿生界面功能均達(dá)到預(yù)期效果,三維視角查看模式下,畫面流暢,模型運(yùn)動畫面平滑無停頓感,模型界面能響應(yīng)用戶鍵鼠指令,人機(jī)交互性較強(qiáng),連接現(xiàn)場設(shè)備進(jìn)行實(shí)時仿真時的數(shù)據(jù)傳輸間隔為20ms,模型與實(shí)際機(jī)床運(yùn)行步調(diào)一致,通信同步性良好,系統(tǒng)穩(wěn)定,如圖10所示。
圖8 外涵道機(jī)匣裝配生產(chǎn)線孿生界面Fig.8 Digital twin interface of outer duct casing assembly line
圖9 自動鉆孔設(shè)備孿生界面Fig.9 Digital twin interface of automatic drilling equipment
圖10 自動鉆孔機(jī)導(dǎo)入NC文件并運(yùn)行仿真界面Fig.10 Interface of automatic drilling machine importing NC file and running
本文針對典型航空產(chǎn)品裝配生產(chǎn)線的生產(chǎn)過程中可視化程度低、人機(jī)交互性差等問題,以數(shù)字孿生技術(shù)為理論指導(dǎo),實(shí)現(xiàn)了加工設(shè)備可視化與仿真分析技術(shù)的方案構(gòu)建,并以實(shí)際飛機(jī)發(fā)動機(jī)外涵道機(jī)匣生產(chǎn)線為對象,采用Unity3D 開發(fā)引擎設(shè)計了數(shù)字孿生設(shè)備加工仿真系統(tǒng),分別開發(fā)生產(chǎn)線孿生界面和設(shè)備孿生界面,驗(yàn)證了所提出的加工設(shè)備可視化與仿真分析技術(shù)的可行性,最終實(shí)現(xiàn)了生產(chǎn)線狀態(tài)信息顯示與交互、設(shè)備NC程序解析仿真、設(shè)備實(shí)時仿真的功能,為之后的設(shè)備加工數(shù)據(jù)分析和優(yōu)化、提高設(shè)備加工精度和效率、提升生產(chǎn)線的智能化水平提供了平臺。