史浩楠,李子恒,陳保國,胡瀚文,胡貴華
(1.華東理工大學,上海 200237;2.青海大學,青海 西寧 810016)
流體催化裂化(Fluid Catalytic Cracking,FCC)是我國煉油工業實現重質油輕質化的最重要手段。而多產異構烷烴(Maximizing Iso-Paraffins,MIP) 的催化裂化新技術則是降低催化裂化汽油烯烴含量的工藝。在工業MIP 反應器內,各反應發生的同時會伴隨著復雜流體的運動,這使得現場操作人員對于MIP 催化裂化反應過程信息缺乏了解。
計算流體力學(Computational Fluid Dynamics,CFD)是隨著計算機的出現以及迅速普及應用,在數學、流體力學和計算機之間出現的一個多方交叉的學科。其利用計算機以及數值方法對流體力學的控制方程進行求解,進而模擬和分析流體力學問題[1]。近年來,CFD 逐步成為解決各種流體流動與傳熱等問題的強有力工具。然而在復雜的流動和傳熱現象下,采用內部有限位置矢量圖或者流線來描述與此相關的物理化學過程會遺漏很多重要的信息[2]。近年逐漸興起的虛擬現實技術對解決這些問題有顯著的幫助,通過計算機生成的模擬環境能夠直接實現用戶與該環境之間的自然交互[3-6]。
虛擬現實技術與數值計算交互在某些領域已有成果。如利用CFD 技術優化設計空氣自動化凈化器濾芯的過程中構建CFD 模擬分析模型[7];在氫燃料電池研制中,文獻[8]提出了一種多相、多組分、非等溫的三維CFD 模型;文獻[9]提出了紅外誘餌干擾條件下的目標紅外特征和紅外圖像對于抗干擾目標的識別。
文中以MIP 反應器為研究對象,使用3D 軟件對外部建筑及反應器和內部管道進行建模[10-11]。利用CFD 模擬的流速、溫度等數據建立數學模型并通過ANSYS、Matlab 等軟件對數據進行處理分析,經數據的篩選處理使之在流動箭頭的長度、方向以及運動速度上得以體現。最后結合Unity3D,搭建MIP 反應器平臺,實現了器內流速的數據可視化[12]。文中不僅實現了第一人稱在工廠中的漫游,還采用用戶與計算機模擬虛擬環境交互的方法,對工業MIP 反應器的內外環境進行仿真,實現了真正意義上的數據可視化,為實現反應器的優化和控制提供了基礎[2]。
在MIP 反應器的虛擬仿真設計之前,需要進行一些預備工作,如對MIP 反應器的熱流場數據進行三維建模并處理以及搭建虛擬工廠場景等。這是項目不可或缺的一部分,任何功能的實現以及可視化的展示都是在此基礎上進行的,其重要程度可見一斑。
MIP 反應器數據處理主要步驟如圖1 所示。首先根據MIP 反應器的結構參數構建模型,軟件可用3DMAX、CAD 等,建立一個三維的MIP 反應器模型并進行區域劃分,這一模型將作為后續可視化過程的主體結構。將工廠實際MIP 反應器各個部分的原始熱流場數據以及各種工業參數進行測量,得到所需要的氣液混合物的原始虛擬數據,以便進行可視化模擬。將含有大量原始數據的反應器數據文件通過計算流體力學軟件,如ANSYS,對數據進行初步的分析和篩選以及相關數值的轉化和計算,完成預處理過程。在預處理之后,將含有反應器各個區域的數據文件以CONVERGENCE 類型文件導出。

圖1 數據處理主要步驟
在對流場的可視化中,流體速度的模被賦值給箭頭單位時間內移動的距離變量,而箭頭方向則由流體的流向矢量控制;在熱場的可視化過程中,采用數據的降維和溫度區域化的方法來表示。在熱流場數據的可視化過程中,如果顯示所有數據,則會造成數據顯示冗雜,減弱可視化的效果。故選取具有普遍性或一定特性的數據來顯示。
運用Python 程序軟件,分別對流場和熱場的數據進行再次處理。對流場和熱場分別建立數學模型程序,此模型可以修改權重參數,以便在不同的區域可以根據不同的要求進行工作。流場模型程序可以讀取各個區域速度數據并進行篩選工作,把多余的數據刪除,處理篩選后的數據量要求能夠足夠且不冗余地顯示出流場的特定規律,如速度平緩的位置所需數據少,變化較大的位置所取數據較為密集。熱場模型按照特定的規則,把熱場數據由三維變成二維,以便進行溫度區域塊的可視化,同時還要能夠反向轉化為三維數據,保證空間熱場可視化的準確性。最后將數據文件導出,與Unity3D 軟件相結合,進行熱流場溫度速度的虛擬可視化。
一個項目的仿真設計離不開虛擬場景的搭建,優秀的場景搭建不僅能夠在環境方面優化用戶的體驗,還能夠更加清晰地展示項目內容,該項目虛擬工廠的場景搭建流程如圖2 所示。在虛擬環境搭建上,Unity3D 有著強大的虛擬仿真功能,其配備了完善的天空盒系統。為了盡可能還原MIP 反應器工廠周圍的環境,需要事先以實地考察、網上搜索等手段收集圖片素材,并用Photoshop 等圖片處理軟件對素材進行美化生成紋理庫存入Unity3D,最后在Unity3D 中更改圖片格式,制成天空盒。此外,在工廠地面的設計上,考慮到內存節省的問題,該項目以一張面片代替3D 模型實現地面的效果。為了保證效果的真實性,需要利用事先準備好的紋理庫對面片進行貼圖,同時Unity3D 配備了強大的編寫材質和陰影的語言工具(Shader Lab),該工具類似于Cg FX 和Direct3D 的語法,它不僅紀錄基本的端點或者映像點(vertex∕pixel)的屬性,也描述了材質所必要的一切屬性[13-14]。通過代碼的編寫可以使貼圖按照圖3(a)中平鋪一欄XY 的設定值進行橫向和縱向的重復顯示,以達到圖3(b)的效果。

圖2 虛擬工廠場景搭建流程

圖3 虛擬地面設計
此外,Unity3D 引擎是搭建虛擬漫游世界的一個平臺,在該平臺下可以完成對場景元素的編輯、匯總和整合,但對于場景模型、貼圖、動畫等元素的基礎和細節卻無能為力,因此必須借助于其他軟件,實現三維模型的建立、材質渲染、格式轉換、模型構造以及材質應用[15-16]。將3DMAX 中做好的三維立體模型以FBX 模型導出,并與之前實現的溫度場與速度場數據可視化內容相結合,放入Unity3D 場景中,整合之前的內容,按照地理位置擺放模型,由此完成虛擬工廠場景的搭建。
Unity3D 提供了完善的粒子效果功能,通過對此功能的應用可以使用戶更直觀地觀察反應器與再生塔等罐組之間的物料聯系。同時,為了進一步方便用戶觀察,該項目通過腳本編寫的方式控制反應器與罐組之間管道的材質,實現當按下E 鍵時材質的顏色改變導致管道透明化,按下R 鍵還原。這種做法使得用戶能夠更清晰地觀察催化劑、生成物的流向,其效果如圖4 所示。

圖4 物料可視化展示
通過數據處理獲得數據,在Unity 中實現速度的可視化。首先創建多個空數組,存儲從外部導入的數據信息,包括相關的坐標信息和速度矢量信息。其中速度矢量數據包括各方向上的分速度大小和總速度的矢量大小。然后創建數據文件的讀取函數,用來將外部文件中的數據導入腳本中。在數據文件中,用空格分隔數據,導入后再分割開來,并依照順序放入數組中。箭頭生成函數從數據數組中獲取相應的位置信息,生成預設好的箭頭模型,同時生成半透明和實體兩個箭頭。在更新函數中,導入運動函數。運動函數包括計時器和箭頭的速度信息,在每一幀獲得當前時間和箭頭的速度,計算箭頭的位移,更改實體箭頭的位置數據,達到箭頭根據自身速度獲得不同位移的效果??梢暬瘜崿F流程如圖5所示。

圖5 可視化流程
對于反應器內部流體的速度,采取立體、直觀、多角度的方式展現給軟件使用人員。采用立體箭頭作為流體速度的指示物。箭頭方向代表流體速度方向,箭頭移動的快慢代表速度大小??紤]到視角限制,為了避免觀看視角中產生過多不同平面的箭頭影響視覺效果,采用水平分層的方式收集流體的速度。不同平面的速度差異也能更加凸顯。效果圖如圖6 所示。

圖6 速度可視化展示圖
通過ANSYS 分析計算,輸入反應器內部的流體溫度,在Unity 中創建相關網格(mesh),再通過著色器(shader)語言將溫度數據和位置數據關聯,同時設置溫度圖示,用漸變色來表示不同的溫度。最后根據溫度變化函數,通過著色器(shader)實現云圖動態效果。溫度可視化流程如圖7 所示。

圖7 溫度可視化流程
在獲得溫度數據后,經過分析,去除一定區域內大量重復的相同溫度,用區域平均溫度代替,從而獲得溫度平面的數據。建立平面后,運用Dotween 插件,在Unity 中給建立好的平面上色。上色完成后獲得靜態平面溫度云圖,此時添加著色器,使溫度云圖動態化。
UI 交互界面是虛擬仿真項目中不可或缺的一部分,Unity3D 提供了全面的UI 界面設計系統,可以直接生成各種UI 元件,并能夠通過拖拽或設置數值的方式更改元件位置及屬性。為了豐富用戶體驗效果,該項目設置了兩個UI界面,分別為開始界面和漫游過程觸發的觀看界面,并在相應的UI 界面中放置了各種功能按鈕,如圖8 所示。增添的按鈕使用戶在開始界面中點擊相應按鈕會彈出相應界面,在觀看界面中選擇不同平面按鈕則會彈出該平面的速度或溫度可視化內容,并通過對攝像機的應用及相應代碼控制可以實現鼠標對可視化內容進行放大縮小的操作。

圖8 UI交互界面設計
值得一提的是,跳轉按鈕是UI 界面的主要元素,需要統一風格,區分主菜單、返回、幫助、關閉等按鈕,所有界面在同一個PSD 文件中制作完成,需要注意分組[17]。此外,該項目按鈕的設置結合Unity3D的動畫和音頻功能,能夠使用戶鼠標移至按鈕時,按鈕以設置比例放大,并在點擊按鈕時產生清脆的聲音,以優化系統功能。
交互功能的設計直接影響用戶在虛擬平臺上的漫游體驗[18],除了UI 交互界面外,該項目還實現了場景漫游功能。為了優化用戶體驗,該項目使用第一人稱視角進行場景漫游。將控制角色移動的代碼賦給角色本身,除了基本的WASD 控制前后左右移動外,程序中還增添了跳躍功能并調整跳躍速度以及降落速度以高度還原現實生活,具體代碼如下:

將控制角色轉動的代碼賦給攝像機,攝像機是角色的子物體,代碼中以獲取角色的Transform 屬性實現攝像機與角色轉動的連接。同時,由于該系統除場景漫游外還有UI 界面等交互方式,直接以鼠標的移動控制視角的轉動會影響用戶體驗,故在程序中加入條件語句,實現按下鼠標右鍵后,視角才會跟著鼠標移動。具體代碼如下:


執行程序由Unity3D 開發,在多平臺上都可以運行,如Windows平臺、網頁端。其主要運用于Windows平臺的exe 可執行文件,它具有方便快捷的特點并且有很好的擴展性,對提高軟件的測試效率和虛擬仿真的穩定性有很好的作用。
文中以MIP 反應器為研究對象,結合CFD 和Unity3D 平臺,建立了一個虛擬的MIP 反應器工廠,形象地展示了多產異構烷烴催化裂化反應過程中反應器內流體速度及溫度的動態變化,為提高MIP 催化裂化技術操作與優化控制水平提供了技術支撐。此沉浸式漫游交互程序可適用于多個平臺,適應性較強。另外,文中所展示可視化方法對催化裂化行業等存在較為復雜反應過程的領域起到參考作用,為指導正常生產中參數調節、方案優化以及科研教學提供了一條解決問題的新思路。該項目還只是以MIP 反應器為對象的對計算流體力學與虛擬現實技術相結合的嘗試和探索,對于更為豐富的數據顯示以及更為便捷的交互系統,還需更深入研究。