谷學靜,張彥鵬,郭宇承,劉海望
(1. 華北理工大學 電氣工程學院,河北 唐山 063210;2. 唐山市數字媒體工程技術研究中心,河北 唐山 063000;3. 華北理工大學 機械工程學院,河北 唐山 063210;4. 華北理工大學輕工學院 電氣信息學院,河北 唐山 063000)
連鑄工藝是鋼鐵企業十分重要的生產工藝,該工藝過程是將成分合格的鋼水連續鑄成鋼坯。連鑄工藝在縮短生產時間、節約能源以及提高鋼坯質量等方面具有顯著的優勢。2017 年全世界采用連鑄工藝生產的鋼坯已占到總產鋼量的 90%[1]。高校培養的連鑄技術人才不僅需要理論知識,更需要對連鑄生產過程的實際認識。然而連鑄生產的實踐教學往往受到時間、經費、安全等[2]因素的影響。本文以連鑄車間為對象,將連鑄生產過程與虛擬現實技術相結合,通過 3ds Max 軟件、Unity3D 引擎搭建連鑄生產虛擬仿真系統,以滿足連鑄生產實踐教學的需求[3]。
虛擬現實技術是通過搭建高度逼真的三維立體環境,實現以虛代實、人機交互的用戶體驗。連鑄生產虛擬仿真系統以某鋼鐵企業的連鑄車間為對象,結合實際教學以及培訓過程中的關鍵問題進行設計,是一個自主性高且具有沉浸感[4]、交互性、想象性的學習平臺,有助于提高學習者對于連鑄工藝的認知水平,加快學習者對操作技能的掌握。
連鑄生產工藝的實踐教學遵循循序漸進的原則,將連鑄生產虛擬仿真教學過程分為認知篇、實踐篇、診斷篇、仿真篇等4 個篇章。
認知篇:通過三維模型動畫展示以及音頻講解和用戶界面(UI),使學習者能夠清晰、直觀地認識連鑄的生產設備和工藝流程。
實踐篇:通過對連鑄生產操作的虛擬化設計,以虛實結合的控制形式實現連鑄生產過程的規范操作實踐訓練。
診斷篇:通過問答的方式,隨機考查學習者對連鑄生產中常見問題的診斷和處理能力。
仿真篇:利用Matlab 軟件對連鑄生產工藝參數進行仿真設置,使學習者深入了解各工藝參數對連鑄生產過程的影響。
根據系統的功能和篇目,連鑄生產虛擬仿真系統的開發過程分為以下5 個步驟:
(1)收集連鑄車間的各種素材,包括設備和場景圖片、設備運行的視頻、車間布置圖紙資料等,通過對連鑄生產中的素材整理分析,對連鑄生產虛擬仿真系統的環境模型和工藝仿真進行設計;
(2)對連鑄車間環境以及主體設備和輔助設備等素材使用3ds Max 進行三維建模,通過模型的搭建實現虛擬連鑄車間的三維仿真,利用3ds Max 的動畫制作功能對連鑄生產過程進行表達;
(3)將3ds Max 軟件中的資源導入Unity3D 引擎中,通過Unity3D 對虛擬現實的內容進行開發,使用編程語言C#編寫相關運行程序,實現系統中設備運行仿真和人機交互;
(4)使用Visual Studio 開發工具創建主控程序及Winform 控件,通過 Winform 控件實現 Matlab 數學軟件與 Unity3D 引擎結合,實現虛擬場景中的數據仿真;
(5)添加外部控制系統,增加連鑄仿真系統的控制方式,調試優化后對系統進行集成發布。
系統的開發過程如圖1 所示。
虛擬連鑄車間環境主要是由虛擬場景的設計與建模實現的,構建虛擬環境的重點是連鑄設備的三維模型設計與制作。連鑄車間所用的設備通常可以分為主體設備及輔助設備[5]。

圖1 系統開發過程
主體設備包括:鋼包回轉臺、中間罐及其運載小車、結晶器及其振動裝置、二次冷卻支導裝置、拉坯矯直設備、引錠桿、脫錠及引錠桿存放裝置、切割設備。
輔助設備包括:(1)出坯及精整設備——輥道、拉(推)鋼機、翻鋼機、火焰清理機;(2)工藝性設備——中間罐烘烤裝置、吹氬裝置、脫氣裝置、保護渣供給與結晶器潤滑裝置、電磁攪拌裝置;(3)自動控制和測量儀表——過程控制計算機、測溫、測壓、側重、測長等儀表。
在保證視覺效果的前提下,使用建模技巧優化場景效果是三維場景制作的重點之一。
在使用三維模型搭建虛擬場景時,需要按照實際場景和教學需求對虛擬場景中各個模型進行結構分析,然后用3ds Max 軟件制作虛擬場景中的模型。
制作3ds Max 模型,需要在保證模型真實度的情況下對模型進行優化,主要是對場景中的模型的大小和形狀進行處理,其難點在于減少模型的點面結構。在模型制作過程中,可以使用多種方法(例如剔除不可見的面、以拉伸替代堆砌、合理切分模型等)對點面進行精簡,然后通過材質處理增強模型的逼真度。材質處理主要是展UV 貼圖以及烘培。3ds Max 中的模型 UV 貼圖的處理需要使用 Photoshop 進行細節勾畫;烘焙是指植入燈光效果后對場景進行渲染。烘焙渲染既增加虛擬場景真實感,又減少了后期場景中的實時光照,從而達到節約系統資源的效果。為了方便系統的搭建,建模的后期處理采用了組場景和動畫制作同步進行的方式完成連鑄場景的整體布局和設備模型動畫的制作[6]。三維模型示例如圖2 所示。

圖2 系統中三維模型
將 3ds Max 中創建好的模型以 FBX 格式導入Unity3D 中,使用Unity3D 引擎對連鑄生產虛擬仿真系統4 個篇目的內容進行開發。認知篇與診斷篇的開發方式比較相近,在開發過程中使用了大量的UI 元素;實踐篇的開發重點在于腳本的編寫,通過腳本邏輯實現系統的漫游、虛擬操作以及連鑄生產過程的仿真;仿真篇的開發則需要將 Matlab 引入連鑄系統進行參數的仿真。本文僅描述實踐篇和仿真篇的開發過程。
3.1.1 交互功能的開發
連鑄生產虛擬仿真系統交互功能的開發,主要包括控制場景中漫游功能和操作臺控制功能的設計與實現。虛擬漫游是指直接或間接控制虛擬攝像機觀察虛擬場景的信息。虛擬攝像機是跟隨目標物體而移動的,通過差值計算對攝像機角度進行調節,相關代碼(以x軸為例)為:
tempXAngle = Mathf.LerpAngle (fromXAngle, toXAngle,deltaChangeValue);
當操作者點擊場景中虛擬操作臺上的按鈕或旋鈕時,系統會反饋給操作者操作信號,并在反饋過程中改變按鈕或旋鈕的亮度、發出聲音效果。通過對交互過程進行優化,增加了虛擬操作過程的真實性,有助于學習者對仿真虛擬系統的操作。在交互時,系統根據操作臺的信號給出虛擬連鑄生產的動作指令,通過系統中模型在動作指令下進行生產過程的三維仿真。
3.1.2 連鑄生產過程的三維仿真開發
連鑄生產過程是一個多步驟操作的復雜生產過程,連鑄生產虛擬仿真系統涉及多道生產工序。按照連鑄生產工藝,鋼水首先經冷卻裝置凝固為鑄坯,然后鑄坯經定尺切割和精整操作,生成方便鋼鐵生產輸出和存放的鑄坯產品[7]。根據連鑄生產的操作實踐,本系統的實踐篇包括連鑄設備及操作工藝中的準備工作操作、澆注操作、鑄坯切割和精整操作等。
以鑄坯切割工藝過程為例,火焰切割機定尺切割過程的仿真可以使用 Unity3D 設置動畫效果實現[8]。但是,由于動畫不滿足實踐操作實時性的特點,因此本過程采用了實時監測的方法,使用Unity3D 組件和代碼進行開發。整個過程包括:使用粒子系統對火焰、水流、氣體的模擬;通過調整模型的 Transform 組件實現切割設備的移動[9];使用 Unity 內置的 NVIDIA PhysX 物理引擎檢測鑄坯的切割過程。
3.1.3 鑄坯的生成
為仿真鑄坯的實時生成過程,可以考慮以一定的速度增加模型的數量。但增加模型的數量會增加系統的運行負荷,并且在一定程度上對虛擬拉坯的速度有所限制,不利于系統的穩定運行和仿真。本系統對鑄坯生成的過程采用模型變換的方式進行仿真,即通過幀調用的方法,首先增加鑄坯模型沿Z軸的尺寸系數,然后調整鑄坯的位置,保證鑄坯的生成位置不變,從而實現鑄坯從鑄機中連續被拉出來的仿真效果,避免了增加模型導致的負載增大的問題,并且可以根據培訓需求調節虛擬拉坯的速度。
程序運行時,通過調用MonoBehaviour 類中的幀調用函數 Update(),對鑄坯模型的生成進行控制的相關代碼如下:
transform.localScale+ = new Vector3(0, 0, change *Time.deltaTime*c);
transform.Translate (Vector3.forward * change/2 *Time.deltaTime*c);
3.1.4 鑄坯的準備
切割鑄坯的過程是在鑄坯的側面先切開一個小缺口,然后缺口逐漸擴大直至鑄坯完全切斷。在仿真系統中,需要在虛擬切割前對鑄坯模型進行細化,即在保證整體鑄坯橫向尺寸不變的情況下將鑄坯分為數量足夠多的條形子物體,通過條形子物體的逐個斷開實現鑄坯的切割過程。采用生成預制體(Prefab)的形式,先把整塊鑄坯在x軸上分解為91 條(piece),并將每一條用數組的形式進行編碼,按順序可以從piece[0]到 piece[90]。
3.1.5 鑄坯的切割
設鑄坯沿Z軸正向拉出(Unity3D 場景中的世界坐標系為左手坐標系),虛擬連鑄生產中鑄坯的切割過程主要有2 種:(1)切割槍運動方向與鑄坯運動方向垂直進行切割(見圖3);(2)切割槍運動方向與鑄坯運動方向平行進行切割(見圖4)。在圖3 所示鑄坯模型中,a段表示切割下的鑄坯長度,b段表示鑄坯的切口長度,c段表示切割后的鑄坯長度,S1 為坯頭位置,S2 為切下的鑄坯(a)的尾端,S3 為切割位置,S4 為切割后的鑄坯(c)的前端。

圖3 第一種切割過程

圖4 第二種切割過程
根據圖 3 對虛擬切割的相關參數進行求解,以確定切割過程中三維模型的變化。已知條件包括切割位置 S3 以及切口長度(b),未切割鑄坯的位置以及大小。

虛擬切割是根據切割位置的變化,改變模型的大小以及位置來表現切割的效果。第一種切割情況進行切割時:相關代碼如下:


以上兩種切割方法可以實現連鑄生產過程中對鑄坯切割的仿真。
在連鑄生產過程中應用到很多監測設備和計算終端,通過對連鑄生產中的數據采集實現對生產過程的控制。在連鑄生產虛擬仿真系統中,仿真篇的作用是通過 Matlab 數據仿真[10]讓學習者能夠對連鑄生產有深入的理解。仿真篇的開發難點在于 Matlab 與Unity3D 的信息傳輸。本系統使用 Winform 控件和UnityWebPlayer 插件實現了兩者之間的信息交流(見圖5)。其過程是:(1)在Visual Studio 中創建和編輯Winform(窗口應用程序);(2)Winform 中引用 Matlab相關動態鏈接庫(.dll)并在腳本編寫時引用相應的命名空間,實現 C#代碼對 Matlab 函數的調用;(3)安裝UnityWebPlayer,并在 Unity3D 的開發程序中引入UnityWebPlayer 的動態鏈接庫。

圖 5 Winform 與Unity3D 通信過程
根據實際連鑄生產中通過控制臺控制連鑄生產和 PLC 對連鑄電氣系統的控制方式[11],本系統開發了外部控制系統對仿真控制過程進行優化。通過外接真實的操作臺以及 PLC 和數據轉接箱的控制形式,實現了虛擬仿真的人機交互[12],實現了虛實結合的控制仿真系統。系統加入外部控制后的通信過程如圖 6所示。

圖6 系統的通信過程
連鑄生產虛擬仿真系統的開發過程包括內容設計、虛擬場景的搭建和系統運行的腳本編寫,以及在Visual Studio 開發工具中集成調試并發布。利用三維建模技術、Unity3D 引擎、Visual Studio 開發工具、Matlab 軟件等實現了系統集成與發布。該系統可以進行連鑄生產的全過程模擬,為學習連鑄生產設備、環境、工藝知識和實操提供平臺支持。該系統的開發過程也可為其他虛擬仿真系統的構建提供參考。