王春,李磊,劉剛
(中國石油化工股份有限公司青島安全工程研究院,山東 青島 266071)
石化企業(yè)大多數(shù)生產(chǎn)設(shè)備必須連續(xù)作業(yè),并具有高溫、高壓、易燃、易爆等特點,在很大程度上限制了人們對系統(tǒng)的研究和優(yōu)化,以及對操作人員和管理人員的培訓(xùn)。而虛擬現(xiàn)實技術(shù)(virtual reality,VR)作為一種新型的人機(jī)接口技術(shù),為使用者提供了與虛擬環(huán)境進(jìn)行自然交互的手段,利用先進(jìn)的硬件及軟件工具,使參與者能交互式地觀察和操縱虛擬環(huán)境。
虛擬培訓(xùn)是目前虛擬現(xiàn)實領(lǐng)域比較廣泛的一項應(yīng)用,易濤[1]、鄭云棟[2]等分別研究了石化企業(yè)虛擬現(xiàn)實仿真系統(tǒng),系統(tǒng)偏向于在三維場景中對工藝流程及生產(chǎn)數(shù)據(jù)進(jìn)行統(tǒng)計分析從而對員工進(jìn)行培訓(xùn)。韓冬等[3]研究了針對大型儲罐的虛擬救援場景。但是目前已有的虛擬現(xiàn)實系統(tǒng)大部分以三維場景瀏覽和視覺交互為主,缺少利用數(shù)據(jù)手套等硬件設(shè)備的交互,特別是在事故模擬方面,主要采用基于模型的粒子系統(tǒng)來描述,對事故的發(fā)生發(fā)展過程及后果無法形象的模擬。
本文利用數(shù)據(jù)手套等虛擬現(xiàn)實硬件設(shè)備作為人機(jī)交互工具,利用流體力學(xué)數(shù)值模擬技術(shù)對事故進(jìn)行仿真,采用圖形處理器(graphic processing unit,GPU)對事故場景進(jìn)行三維渲染,開發(fā)石化裝置虛擬培訓(xùn)系統(tǒng),為使用者與虛擬場景之間搭建一個實時交互的虛擬環(huán)境,在不破壞實際生產(chǎn)連續(xù)性的前提下,模擬各種工藝條件下的生產(chǎn)狀態(tài),使員工快速掌握裝置的工藝流程,并積累豐富的生產(chǎn)操作經(jīng)驗。
基于交互環(huán)境的石化裝置虛擬培訓(xùn)系統(tǒng)的總體設(shè)計目標(biāo)是利用虛擬現(xiàn)實軟硬件設(shè)備實現(xiàn)一套石化企業(yè)綜合虛擬培訓(xùn)系統(tǒng),在利用計算機(jī)生成的三維訓(xùn)練場景中實現(xiàn)對規(guī)定好的某種設(shè)備使用過程進(jìn)行培訓(xùn),通過培訓(xùn)系統(tǒng)的使用,實現(xiàn)石化企業(yè)“七化”管理,即抽象理論有形化、地下設(shè)施地面化、內(nèi)部構(gòu)成剖面化、工藝流程系統(tǒng)化、技能訓(xùn)練實戰(zhàn)化、隱性部件可視化、培訓(xùn)系統(tǒng)數(shù)字化。針對上述需求目標(biāo),系統(tǒng)集成教學(xué)演示、實操培訓(xùn)及培訓(xùn)評估 3個主要模塊。
(1)教學(xué)演示模塊 以視頻、音頻、動畫等多媒體形式實現(xiàn)操作過程演示、設(shè)備剖析、工藝流程等功能。
(2)實操培訓(xùn)模塊 系統(tǒng)的核心模塊,主要由人機(jī)交互功能組成,用戶使用數(shù)據(jù)手套、力反饋器等交互設(shè)備,按照一定的操作順序?qū)τ嬎銠C(jī)生成的三維場景下的裝置、設(shè)備進(jìn)行操作,完成各項任務(wù),主要包括打開/關(guān)閉閥門、使用消防器材、應(yīng)急救援行動、安裝和拆卸部件以及操作面板等功能。
(3)培訓(xùn)評估模塊 在操作后對關(guān)鍵操作行為進(jìn)行評估,得到培訓(xùn)成績,以加強(qiáng)培訓(xùn)效果。
圖1 石化裝置虛擬培訓(xùn)系統(tǒng)結(jié)構(gòu)圖
基于交互環(huán)境的石化裝置虛擬培訓(xùn)系統(tǒng)運(yùn)用虛擬現(xiàn)實技術(shù)、傳感器技術(shù)、網(wǎng)絡(luò)技術(shù)、流體力學(xué)數(shù)值模擬技術(shù)配合虛擬現(xiàn)實硬件設(shè)備在電腦終端和數(shù)據(jù)頭盔上為石化企業(yè)作業(yè)人員提供真實的虛擬場景,系統(tǒng)主要由3D驅(qū)動引擎、數(shù)據(jù)手套模塊、頭盔顯示器模塊、場景數(shù)據(jù)庫模塊、考核評估模塊及電腦終端等構(gòu)成。系統(tǒng)結(jié)構(gòu)如圖1所示。
(1)3D驅(qū)動引擎是該培訓(xùn)系統(tǒng)的核心部分,基于VC.NET和OpenGL(Open Graphics Library)開發(fā),負(fù)責(zé)顯示、組織和管理三維裝置虛擬場景的數(shù)據(jù)。用于表現(xiàn)渲染三維培訓(xùn)場景,實現(xiàn)石化裝置標(biāo)準(zhǔn)化培訓(xùn)的各種應(yīng)用,提供系統(tǒng)二次開發(fā)的接口與工具。
(2)數(shù)據(jù)手套模塊包括對閥門、消防設(shè)備等設(shè)備的虛擬操作識別、數(shù)據(jù)手套及與之相連的傳感器,通過虛擬手操作實現(xiàn)對虛擬場景中設(shè)備和物體的實時交互。
(3)頭盔顯示器模塊包括頭盔顯示器及與之相連的傳感器、耳機(jī),為使用者提供一個沉浸的虛擬環(huán)境,并感知受訓(xùn)人員頭部方位。
(4)裝置模型庫包括廠房、裝置及設(shè)備立體層次的三維數(shù)字化模型,模型與現(xiàn)實場景按照等比例構(gòu)建,另外還包括基礎(chǔ)信息數(shù)據(jù)、工藝流程數(shù)據(jù)、實時運(yùn)行參數(shù)等數(shù)據(jù)。
(5)災(zāi)害數(shù)據(jù)庫利用計算流體力學(xué)模擬泄漏、火災(zāi)等事故的發(fā)生發(fā)展過程,利用GPU三維災(zāi)害渲染算法在虛擬場景中進(jìn)行模擬,再現(xiàn)事故的發(fā)生過程及危害范圍。
(6)考核評估包括電子試卷、自動評分及情景考核等內(nèi)容。
虛擬手是虛擬現(xiàn)實技術(shù)的重要組成部分,為用戶提供了一種全新的人機(jī)交互方式,能夠使用戶更好地融入系統(tǒng)所構(gòu)建的虛擬場景中。虛擬手技術(shù)利用計算機(jī)技術(shù)使操作者通過虛擬外設(shè)將人手的操作信息傳遞給虛擬場景中的虛擬手模型,實現(xiàn)人手到虛擬手的動作映射,從而實現(xiàn)與虛擬環(huán)境的實時交互。
常用的數(shù)據(jù)手套采集得到的數(shù)據(jù)值是 0~255之間的整數(shù)值,數(shù)據(jù)之間的間隔太大,精度不高。如果直接使用該數(shù)據(jù)來計算手部各個關(guān)節(jié)的角度并驅(qū)動虛擬手的運(yùn)動,會產(chǎn)生明顯的跳躍而不連續(xù),因此需要對該原始數(shù)據(jù)進(jìn)行平滑處理。處理方法是采用線性插值,即當(dāng)前幀的數(shù)據(jù)是前幾幀數(shù)據(jù)的平均值,用式(1)表示。
工程計劃部門根據(jù)現(xiàn)場實際情況的反饋及時調(diào)整相應(yīng)的數(shù)值供財務(wù)部及物資部門改變原有的計劃,也就是將工程質(zhì)量管理的PDCA模式運(yùn)用到項目的物資供應(yīng)管理中。
式中,yt是t時刻采集的數(shù)據(jù)值;n為采集的幀數(shù)。
從虛擬手操作的實現(xiàn)過程來看,實現(xiàn)虛擬手操作需解決幾個關(guān)鍵問題:碰撞檢測[4]、待操作模型的運(yùn)動方式、虛擬手的姿態(tài)調(diào)整以及操作條件[5]。在利用數(shù)據(jù)手套對虛擬物體進(jìn)行操作時,手指的姿態(tài)是完成操作的關(guān)鍵,張鑫等[6]研究了利用循環(huán)坐標(biāo)下降逆運(yùn)動學(xué)(CCD IK)算法。本文將通過外設(shè)得到的手指姿態(tài)數(shù)據(jù)利用逆運(yùn)動學(xué)算法進(jìn)行計算,使虛擬環(huán)境中的手指模型始終保持在待操作模型的表面,根據(jù)虛擬手操作的特點,姿態(tài)調(diào)整的目標(biāo)主要包括:①調(diào)整后手指首先與模型接觸的位置始終保持在模型表面;②調(diào)整手指姿態(tài)的目標(biāo)是展開,即調(diào)整后手指的彎曲程度減小;③調(diào)整時手指各關(guān)節(jié)必須滿足特定的要求。虛擬手每根手指均包含DIP、PIP和MCP3個關(guān)節(jié),共有4個旋轉(zhuǎn)自由度,由 4 個關(guān)節(jié)角θDIP、θPIP、θMCP、θAbduction組成,如圖2所示[7-8]。虛擬手的各個關(guān)節(jié)通過數(shù)據(jù)手套采集的數(shù)據(jù)計算關(guān)節(jié)角度,每個關(guān)節(jié)角度通過改進(jìn)的CCD算法求解。手指的姿態(tài)調(diào)整受關(guān)節(jié)自由度的限制,對關(guān)節(jié)DIP與PIP,關(guān)節(jié)角度的調(diào)整受到θDIP和θPIP的限制,并且只能在其關(guān)節(jié)平面上進(jìn)行,因此,利用改進(jìn)的CCD算法,首先在調(diào)整DIP和PIP的角度時,將其目標(biāo)位置映射到關(guān)節(jié)平面上,然后通過調(diào)整接觸點、投影點和關(guān)節(jié)轉(zhuǎn)動軸的夾角來實現(xiàn)關(guān)節(jié)角度的調(diào)整。在三維系統(tǒng)中的效果如圖3所示。
圖2 手關(guān)節(jié)劃分
圖3 虛擬手控制閥門
虛擬手的整體位置和姿態(tài)通過位置追蹤器獲取,即用獲取手腕的值驅(qū)動手腕運(yùn)動。理論上當(dāng)位置追蹤器靜止時采集得到的數(shù)據(jù)是一個恒定值,但是在實際采集過程中由于受到信號噪聲的干擾會使采集得到的數(shù)據(jù)產(chǎn)生跳變,而如果直接使用跳變的數(shù)據(jù)驅(qū)動人體的運(yùn)動,從視覺上就會產(chǎn)生抖動,即動作不連續(xù),同時也會增加操作的難度。因此,對采集得到的數(shù)據(jù)也需要進(jìn)行平滑處理。本文主要借鑒維納濾波的方法消除信號噪聲,由式(2)計算。
式中,H'(u,v)為H(u,v)的共軛,k為一常數(shù),所有H、F、G均為矩陣。
對于石化裝置發(fā)生的典型事故如泄漏、火災(zāi)和爆炸事故,通過現(xiàn)場調(diào)研,了解裝置內(nèi)介質(zhì)分布情況、操作工況、介質(zhì)性質(zhì)、周邊環(huán)境等基本信息,根據(jù)危險性分析的結(jié)果,設(shè)定可能發(fā)生的介質(zhì)泄漏擴(kuò)散的場景,通過數(shù)值模擬分析來得出各種影響因素下不同泄漏工況的可燃?xì)怏w空間分布情況;同時根據(jù)蒸汽云空間爆炸的理論預(yù)先估計出裝置區(qū)內(nèi)最可能發(fā)生爆炸事故的主要位置以及爆炸造成危害最大的區(qū)域(最擁擠或受限制部位),評估爆炸區(qū)域劃分。危險性評估實施的主體原則為:定性分析(理論經(jīng)驗為主)→最危險狀況爆炸分析→真實情況模擬→爆炸概率分析。根據(jù)以上原則,利用氣體擴(kuò)散爆炸專業(yè)模擬軟件 FLACS計算出石化裝置泄漏、火災(zāi)及爆炸等事故的模擬結(jié)果,如圖4所示。本文利用虛擬現(xiàn)實技術(shù)對計算得到的模擬結(jié)果進(jìn)行三維展示,從而更加準(zhǔn)確地反映出各種事故的發(fā)生、發(fā)展過程及形態(tài),為虛擬培訓(xùn)系統(tǒng)中事故場景的真實性與準(zhǔn)確性提供支持。
本文采用的事故三維渲染方法基于面片疊加法[9],在GPU上實現(xiàn)事故的全部渲染工作,從面片的生成、排序和渲染全在GPU內(nèi)部完成,實現(xiàn)了虛擬培訓(xùn)系統(tǒng)中所需要的實時大規(guī)模泄漏、火災(zāi)等事故三維模擬。
2.2.1 事故紋理的管理與組織
圖4 不同時間燃料泄漏擴(kuò)散數(shù)值模擬
2.2.2 事故三維渲染
系統(tǒng)需要表現(xiàn)氣體泄漏等事故隨時間變化濃度及擴(kuò)散情況的變化,因此組成泄漏氣體的面片需要帶有一定透明度,所以必須按照面片距離攝像機(jī)的遠(yuǎn)近,采取由遠(yuǎn)及近的渲染順序進(jìn)行渲染,否則就會出現(xiàn)比較凌亂的渲染結(jié)果。由于GPU的工作方式是單指令多數(shù)據(jù)的方式,因此GPU上的排序是一種并行數(shù)據(jù)排序方法,本文采用了一種優(yōu)化的BITONIC算法[11]。系統(tǒng)采用的排序都在GPU中進(jìn)行,在排序結(jié)束時,幀緩存對象中存儲著排序的結(jié)果數(shù)據(jù)。OpenGL圖形引擎能夠?qū)ο笞x取到頂點緩存對象中,從而完成將紋理數(shù)據(jù)轉(zhuǎn)換為頂點緩存數(shù)據(jù)的工作,這樣,轉(zhuǎn)換的過程只需要在GPU中完成,而不需要由CPU到GPU的數(shù)據(jù)傳遞。為了實現(xiàn)在GPU中實時繪制氣體泄漏的三維效果,本文利用圖形引擎中的幾何著色器在 GPU內(nèi)生成新的幾何圖元[12]。幾何著色器定義了4種新的可調(diào)整圖元類型GL_LINES_ADJACENCY_ EXT、GL_LINE_STRIP_ADJACENCY_EXT、GL_TRIANGLES_ADJACENCY_EXT和GL_ TRIANGLE_STRIP_ADJACENCY_EXT。在鏈接程序之前必須告訴OpenGL其幾何著色器的輸入圖元類型并不一定對應(yīng) glBegin函數(shù)的參數(shù),因此需要設(shè)置輸入類型,實現(xiàn)過程如下。
圖5 GPU與CPU事故渲染幀速對比
由圖5可以看出,基于GPU的事故渲染效率遠(yuǎn)高于CPU的渲染效率,隨著面片的增加,兩者的效率差更加明顯,這表明本文所述的基于GPU的石化企業(yè)事故渲染方法能夠提高渲染效率,在虛擬現(xiàn)實系統(tǒng)中有較好的實用性。
本文選取中國石化某石化公司延遲焦化裝置作為模擬背景,延遲焦化裝置是石油化工企業(yè)主要的生產(chǎn)裝置,原料、中間產(chǎn)品及產(chǎn)品均為易燃、易爆及可燃性物質(zhì),這些性質(zhì)決定了在生產(chǎn)過程中存在較大的泄漏、火災(zāi)、爆炸等事故危險性;而且延遲焦化裝置是一個連續(xù)生產(chǎn)過程,參數(shù)多并且相互關(guān)聯(lián),生產(chǎn)中要求長周期穩(wěn)定運(yùn)行,因此對操作人員有著很高的要求;另外,由于延遲焦化裝置生產(chǎn)的持續(xù)性,很難在裝置上對操作人員進(jìn)行實際操作技能的培訓(xùn),尤其像開工、停工及事故處理等操作技能,在裝置穩(wěn)定生產(chǎn)正常運(yùn)行情況下無法得到有效的訓(xùn)練。
本文研發(fā)的虛擬培訓(xùn)系統(tǒng)在Core 2 Duo E8300處理器、2G內(nèi)存、專業(yè)級顯卡、操作系統(tǒng)選用Windows 7的電腦上,系統(tǒng)運(yùn)行流暢。系統(tǒng)操作界面如圖6所示,當(dāng)模擬事故場景時,幀速在50幀/s左右。虛擬培訓(xùn)系統(tǒng)主要實現(xiàn)的功能包括以下幾點。
(1)支持石化企業(yè)裝置三維漫游及設(shè)備屬性查詢和可視化管理等功能,受訓(xùn)者在三維環(huán)境中能夠更加真實的了解裝置及設(shè)備信息,身臨其境地體驗裝置的結(jié)構(gòu)。
(2)能夠利用數(shù)據(jù)手套、位置追蹤器等硬件設(shè)備模擬用戶操作,實現(xiàn)打開/關(guān)閉閥門、使用滅火器、消防炮等消防器材等操作,以交互、直觀的方式實現(xiàn)員工的標(biāo)準(zhǔn)化操作培訓(xùn)。
圖6 系統(tǒng)實現(xiàn)效果
(3)系統(tǒng)利用氣體擴(kuò)散爆炸專業(yè)模擬軟件FLACS計算得到的泄漏、火災(zāi)等事故數(shù)據(jù),采用GPU技術(shù)實現(xiàn)實時渲染,模擬事故的發(fā)生發(fā)展過程和擴(kuò)散范圍,為企業(yè)應(yīng)急預(yù)案編制、事故預(yù)防、虛擬演練和事故調(diào)查提供技術(shù)支持。
(4)基于多角色的協(xié)同事故應(yīng)急救援演練,能夠為受訓(xùn)者提供一個逼真的事故場景,提升受訓(xùn)者的事故處理能力,降低事故造成的損失,提高企業(yè)的應(yīng)急培訓(xùn)演練質(zhì)量和效率。
本文開發(fā)的基于交互環(huán)境的石化裝置虛擬培訓(xùn)系統(tǒng)以石化裝置為切入點,借助于數(shù)據(jù)手套、位置追蹤器等虛擬現(xiàn)實設(shè)備進(jìn)行數(shù)字化培訓(xùn)技術(shù)研究,為石化企業(yè)員工標(biāo)準(zhǔn)化操作培訓(xùn)、應(yīng)急演練等提供逼真的操作體驗,在不破壞實際生產(chǎn)連續(xù)性的前提下,模擬不同工藝條件下的生產(chǎn)狀態(tài),在虛擬環(huán)境中熟悉裝置的標(biāo)準(zhǔn)化操作和事故處理操作,使員工對操作環(huán)境、操作設(shè)備、操作順序、設(shè)備維護(hù)等有直觀的認(rèn)識,避免出現(xiàn)由于操作不當(dāng)而引起的損失和傷害。本系統(tǒng)能夠為石化企業(yè)提供一種新的培訓(xùn)方式和方法,提高員工的培訓(xùn)效率和培訓(xùn)質(zhì)量。
目前該系統(tǒng)已經(jīng)在中國石化某石化公司得到應(yīng)用,并取得了良好的使用效果。在使用過程中用戶提出了一些新的需求,下一步完善和研究工作將重點關(guān)注基于狀態(tài)驅(qū)動的智能體研究和人群逃散的數(shù)字化模擬。
[1]易濤,楊義.化工安全虛擬現(xiàn)實仿真系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)與應(yīng)用化學(xué),2006,23(1):49-54.
[2]鄭云棟,王欣捷,項曙光.高壓加氫裂化裝置仿真培訓(xùn)系統(tǒng)開發(fā)[J].計算機(jī)仿真,2010,12(4):320-323.
[3]韓東.基于虛擬現(xiàn)實技術(shù)的大型儲罐區(qū)滅火救援場景的構(gòu)建[J].防災(zāi)科技學(xué)院學(xué)報,2010,12(1):93-96.
[4]金鉞,侯文君.基于虛擬手簡化面法向距離的抓取碰撞檢測算法[J].中國機(jī)械工程,2008,19(4):1068-1071.
[5]張鑫,王章野,王作省.人體運(yùn)動建模的實時逆運(yùn)動學(xué)算法[J].計算機(jī)輔助設(shè)計與圖形學(xué)報,2009,21(6):853-860.
[6]韓流,劉振俠,呂亞國,等.基于虛擬現(xiàn)實技術(shù)的航空渦扇發(fā)動機(jī)仿真系統(tǒng)[J].計算機(jī)仿真,2009,26(12):57-61.
[7]陳學(xué)文,劉玉慶,朱秀慶,等.基于虛擬現(xiàn)實的太空操作仿真技術(shù)研究[J].系統(tǒng)仿真學(xué)報,2011,23(3):516-521.
[8]李澍,劉毅,王念東.虛擬環(huán)境中的多手指抓取操作技術(shù)[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2010,22(10):1728-1733.
[9]Wang Niniane.Realistic and fast cloud rendering[J].Journal of Graphics Tools,2004,9(3):21-40.
[10]李綱,李輝.GPU上的實時三維云仿真[J].系統(tǒng)仿真學(xué)報,2009,21(23):7511-7514.
[11]胡玥,高慶獅,劉宏嵐.一種優(yōu)化 BITONIC算法:“并行-優(yōu)化-串行”合并和分類向量算法[J].計算機(jī)研究與發(fā)展,2002,10(3):1307-1316.
[12]顧偉.OpenGL幾何著色器研究[J].中國科技信息,2008(20):113-115.