(山東核電有限公司,山東 煙臺 264000)
虛擬現(xiàn)實技術(shù)(Virtual Reality,VR)是近年來興起的以計算機技術(shù)為核心的研究熱點之一[1],包括計算機圖形學(xué)、計算機仿真技術(shù)、人機接口技術(shù)、傳感器技術(shù)和高度并行的實時計算機技術(shù),VR技術(shù)在多維信息空間上創(chuàng)建一個虛擬信息環(huán)境,能使用戶具有身臨其境的沉浸感,具有與環(huán)境完善的交互能力。目前VR技術(shù)已在軍事、醫(yī)學(xué)、設(shè)計、娛樂等眾多領(lǐng)域得到了廣泛應(yīng)用,并成為最熱點的研究方向之一。
目前,核電站由于其生產(chǎn)對象和生產(chǎn)手段的特殊性,其安全運行要求核電站工作人員必須熟悉電站各設(shè)備布置,熟練掌握電站運行原理,維修人員具備拆解、維修、回裝設(shè)備的能力,但目前大量核電設(shè)備結(jié)構(gòu)復(fù)雜、安裝位置不易操作、部分區(qū)域由于高溫、高壓、高放射性等原因?qū)е码娬竟ぷ魅藛T無法直接觀察和操作設(shè)備,特別是以AP1000為代表的第三代先進核電技術(shù),與傳統(tǒng)的二代及二代加核電相比,其設(shè)計、系統(tǒng)和設(shè)備都有較大改動,更需要從業(yè)人員快速掌握AP1000三代核電技術(shù)。當前只能通過書籍、技術(shù)規(guī)范書、運維手冊、設(shè)備圖紙、拆解模擬體、現(xiàn)場操作實體設(shè)備等途徑學(xué)習(xí)了解設(shè)備的知識,但是這種學(xué)習(xí)途徑,不僅不夠直觀,且受制于廠房區(qū)域控制授權(quán)管理、設(shè)備資料提交進度、設(shè)備交付安裝進度等制約,因此無法全面的保證電站工作人員及時掌握崗位所需的技術(shù)和知識。因而虛擬現(xiàn)實技術(shù)對于具有放射性環(huán)境核電站,尤其是新型的第三代AP1000核電站更具有應(yīng)用價值。
當前,虛擬現(xiàn)實技術(shù)在核電站的應(yīng)用,國內(nèi)外已進行了一些研究,如O. Fridtjov 研究了虛擬現(xiàn)實在核電站事故管理中的應(yīng)用[2];歐洲核能機構(gòu)(ENEA)啟動了退役中的虛擬現(xiàn)實工程,比利時開發(fā)了工作前培訓(xùn)三維可視化系統(tǒng);日本開發(fā)了核電站檢修期間輻射劑量的計算機虛擬仿真系統(tǒng)[3];美國西屋公司開發(fā)了輻射場三維空間分布可視化軟件,主要用于形象的顯示輻射源和屏蔽體結(jié)構(gòu)變化時空間輻射劑量分布的變化[4];劉鵬飛研究了虛擬現(xiàn)實技術(shù)在核電站仿真中的應(yīng)用[5]。此外,國內(nèi)核電站也進行了對應(yīng)的研究,中廣核工程公司設(shè)計院已正式成立“虛擬現(xiàn)實工程應(yīng)用實驗室”,正式將虛擬現(xiàn)實技術(shù)引入設(shè)計過程,將以“華龍一號”項目建設(shè)為契機,在輔助建筑設(shè)計、客戶體驗、核電智能電站三個方面開展虛擬現(xiàn)實技術(shù)應(yīng)用嘗試[6],海陽核電站也開發(fā)了AP000電站地理漫游系統(tǒng)。但當前核電站虛擬現(xiàn)實技術(shù)的應(yīng)用受制于海量幾何模型數(shù)據(jù),僅能簡單繪制地理漫游和展示,無法全面模擬工藝、設(shè)備運行狀態(tài),實時逼真的展示電站全貌,使用戶難以獲得沉浸感,因而如何有效的簡化模型數(shù)據(jù)使模型實時顯示就成為核電站虛擬現(xiàn)實技術(shù)應(yīng)用的關(guān)鍵之一。
考慮同一模型由于視點遠近對于模型精度要求不同,本文基于QEM簡化算法建立不同精度的層次AP1000設(shè)備模型,并在場景的實時動態(tài)顯示中,利用連續(xù)細節(jié)層次現(xiàn)實技術(shù),對于近距離觀察時,采用精細的模型進行繪制;反之,遠距離觀察時,則選擇粗糙的模型進行表示,提高顯示效率與實時性,最后對AP1000設(shè)備模型進行了簡化效果驗證。
MicroStation、CAD、Pro/E等三維軟件系統(tǒng)建立的模型雖然能精確的表示模型的幾何信息,但包含模型信息過多導(dǎo)致數(shù)據(jù)量巨大,無法實現(xiàn)模型快速導(dǎo)入導(dǎo)出,不能滿足虛擬現(xiàn)實技術(shù)的實時性與真實感要求,因此目前虛擬現(xiàn)實技術(shù)一般采用網(wǎng)格格式表示。而在網(wǎng)格面片格式如SLP格式、STL格式、WRL格式、PLY格式等文件中,STL三角網(wǎng)格文件格式,是利用三角面片擬合表示模型外形結(jié)構(gòu)[7],具有數(shù)據(jù)結(jié)構(gòu)簡單,數(shù)據(jù)較少,容易讀取,可以直接導(dǎo)入到虛擬環(huán)境中,便于模型的顯示與快速渲染操作等優(yōu)點,而且作為一種中性格式,常用的三維CAD系統(tǒng)造型軟件如MicroStation、CAD、Pro/E等都能直接輸出這種格式模型,因而現(xiàn)在已經(jīng)成為三維制圖系統(tǒng)與快速成型系統(tǒng)進行數(shù)據(jù)傳遞的較為普遍的文件格式與事實上的接口標準。
圖1分別展示了模型幾種格式的顯示效果,圖1(a)為MicroStation建立的AP1000堆內(nèi)構(gòu)件RVI 半環(huán)板模型,圖1(b) MicroStation模型轉(zhuǎn)化后的STL網(wǎng)格填充效果圖,通過對比不難發(fā)現(xiàn)STL模型保持了原始模型的幾何外形。
STL三角網(wǎng)格文件中,模型幾何位置信息都由離散的三角面片的集合記錄。每一個三角面片都是由組成三角形的3個頂點的坐標和1個法向量來描述的。STL文件有兩種表示類型,一類是文本文件(ASCII),另一類則是二進制文件(Binary),STL文件的兩種格式各有優(yōu)缺點,二進制格式的文件占用的存儲空間較小,一般為同文件ASCII格式的20%[8],能夠節(jié)省存儲空間,但是ASCII格式的文件能用記事本打開,易于直觀識別,本文采用ASCII格式。
圖1 模型不同格式表示效果Fig.1 Display of different model type
讀取STL文件時,只需要按行讀入每個三角面片單位法矢與定點的坐標數(shù)據(jù)即可。當STL文件讀入之后,借助于OpenGL來進行STL三角網(wǎng)格的繪制和顯示,在OpenGL函數(shù)庫中,直接提供了渲染與繪制三角面片的函數(shù)glBegin(GL_TRIANGLES),能夠方便快捷的實現(xiàn)STL網(wǎng)格文件的繪制與顯示。讀取與顯示STL網(wǎng)格文件的流程圖如圖2所示。
圖2 讀取與顯示STL網(wǎng)格文件流程圖Fig.2 Flow chart for reading and displaying STL mesh
本文建立不同細節(jié)層次簡化模型采用通用的基于“二次誤差度量” (Quadric Error Metrics,簡稱QEM)的簡化算法,其中基于QEM的簡化算法以邊折疊為基礎(chǔ),引入了點到三角網(wǎng)格平面距離的平方作為誤差度量[9],同時本文利用雙向鏈表記錄了簡化序列,可以實時獲得相應(yīng)連續(xù)細節(jié)層次的模型。
邊折疊簡化基本思想是:首先選取一組誤差準則,選取出一條邊上的兩個頂點,然后根據(jù)相應(yīng)準則把此邊上兩點合并為一個點,即邊轉(zhuǎn)化為一點,然后更新三角面片頂點與法向量信息。
圖3 邊折疊算法原理圖Fig.3 Schematic of edge folding algorithm
如圖3所示,假定{g,h}兩頂點所確定的邊作為折疊邊,{h}為折疊后保留點,即邊{g,h} 折疊為點{h}[10]。
2.2.1二次誤差矩陣Q計算
基于QEM簡化算法的邊折疊簡化,模型的每一個頂點都被給予一個誤差值,鑒于模型中各個頂點又為一組三角面片的交點,故考慮頂點時應(yīng)關(guān)聯(lián)頂點相鄰的三角面片,為了計算誤差值,假定三角面片所在平面的方程為:
ax+by+cz+d=0
(1)
根據(jù)平面方程定義可知向量(a,b,c)為平面ax+by+cz+d=0的法向量,STL網(wǎng)格模型中三角面片法向量為單位法矢,故a2+b2+c2=1,由此可計算平面外一頂點v(x,y,z,1)T與ax+by+cz+d=0平面距離平方:
D(v)=|ax+by+cz+d|2
(2)
現(xiàn)將平面方程各項系數(shù)假定成為一個一維矩陣p=[a,b,c,d]T,則平面外一頂點與平面距離的平方D(v),則可以表示成為:
D(v)=|ax+by+cz+d|2=(pTv)2
=(vTp)(pTv)=vT(ppT)v
(3)
對于公式(3)中的(ppT)一項,為簡化表示,可以設(shè)定為Kp,則公式(3)可以簡單的表示為:
D(v)=vTKpv
(4)
公式(4)中Kp定義為平面ax+by+cz+d=0的二次矩陣,由矩陣定義可以計算出Kp的表達式為:
(5)
依此方法可以求得模型中頂點v距離其所有相鄰平面的平方和,首先假設(shè)頂點v相鄰平面集合為:
TriPlane(v)=(TriPlane1,TriPlane2,……TriPlanen)
(6)
根據(jù)Kp定義可知,模型中頂點v到所有鄰近平面距離之平方和為KTriPlane1+KTriPlane2+……KTriPlanein,為簡便表示可以令:
(7)
根據(jù)二次誤差定義可以求得出v(x,y,z,1)T點的二次誤差值:
(8)
(9)
由Kp定義可以得出二次誤差矩陣Q所表示的意義,即與點v(x,y,z,1)T鄰近所有三角面片二次誤差矩陣之和。
2.2.2折疊頂點計算選取
由二次誤差定義假設(shè)網(wǎng)格模型一頂點對為v1與v2由公式(9)可以分別計算出其二次誤差矩陣Q1與Q2,則將頂點v1與v2折疊的二次誤差矩陣可以認為二者之和:
Q=Q1+Q2
(10)
計算網(wǎng)格模型中所有相鄰兩頂點的二次誤差值,從中選取二次誤差值最小的頂點對進行邊折疊簡化,設(shè)折疊后的頂點為v(x,y,z,1)T,由公式(8)與公式(9)可知折疊操作后,得到點v(x,y,z,1)T的二次誤差為:
Δ(v)=vTQv=vT(Q1+Q2)v
(11)
理論上折疊后選取的頂點v(x,y,z,1)T應(yīng)當使得二次誤差值Δ(v)最小,即求取Δ(v)=vTQv的最小值。
(12)
然而考慮到算法的復(fù)雜程度及誤差影響大小,本文選取折疊頂點對v1于v2的幾何中點v=(v1+v2)/2作為二次誤差代價最小的極值點作為折疊后頂點,即邊{v1,v2}折疊為點{(v1+v2)/2}。
三角網(wǎng)格模型的細節(jié)層次(Level of Detail)表示是由原始網(wǎng)格模型與其不同精度層次簡化模型組成[11]。細節(jié)層次通常對一個原始的網(wǎng)格模型建立不同精度的層次模型,在不影響視覺的前提下,根據(jù)視點的遠近有條件的選取不用層次的模型,即當模型據(jù)視點較近時,選擇精細的模型繪制,以便于觀察模型的細節(jié);當模型距離視點較遠時,模型細節(jié)部分觀測到的概率較小且占據(jù)屏幕區(qū)域減少,故選擇較粗糙的模型來繪制在相應(yīng)環(huán)境中選取特定精度的層次模型,不同細節(jié)層次模型如圖4所示。從而,在AP1000電站虛擬現(xiàn)實實時場景顯示時,通過減少過多的細節(jié)繪制,既能縮短計算時間又不會減低場景的逼真程度,從而提高顯示效率[12]。
圖4 軸承不同層次細節(jié)模型Fig.4 Different levels of detail for bearing model
本文利用MicroStation建立了設(shè)備模型,建立的模型為AP1000堆內(nèi)構(gòu)件RVI堆芯圍筒,包含:堆芯底板、4組C板組件、4組W版組件、4個下部半環(huán)板垂直支撐、20個中部半環(huán)板垂直支撐、4個上部半環(huán)板垂直支撐、半環(huán)板、頂板、4個上部C板組件、4個上部W板組件、4個鑲嵌塊等部件。原始模型如圖5所示,其對應(yīng)的STL網(wǎng)格填充圖如圖6(a)所示,STL網(wǎng)格圖如圖6(b)所示。
圖5 RVI堆芯圍筒原始模型Fig.5 Original model of RVI Shroud
本文軟件系統(tǒng)開發(fā)環(huán)境如表1所示:
表1 系統(tǒng)開發(fā)環(huán)境
對于圖6RVI原始模型采用QEM算法簡化后,不同精度的模型如圖7所示。
圖6 RVI 堆芯圍筒STL模型Fig.6 STL model for RVI Shroud
本文系統(tǒng)主要實現(xiàn)的功能有:
1)STL網(wǎng)格模型讀取與繪制;
2)三角面片數(shù)統(tǒng)計;
3)網(wǎng)格數(shù)據(jù)及模型更新;
4)模型QEM簡化算法實現(xiàn);
5)模型旋轉(zhuǎn)與遠近大小的改變;
6)模型連續(xù)細節(jié)層次顯示的建立
通過對比圖6與圖7簡化前后模型網(wǎng)格拓撲結(jié)構(gòu)可以發(fā)現(xiàn),當采用基于QEM算法簡化模型到14977個面片即簡化率為74.03%時,模型大部分細節(jié)能得以保留,繼續(xù)簡化到3446面片時即簡化率為94.02%時,模型基本細節(jié)可以保留,簡化率見表2。
圖7 RVI堆芯圍筒STL簡化模型Fig.7 Simplification of STL model for RVI shroud
RVI簡化前STL模型面片數(shù)57 672RVI簡化后STL模型面片數(shù)3 446簡化率94.02%
圖8展示了利用簡化后建立的模型連續(xù)細節(jié)層次效果,結(jié)果顯示細節(jié)層次表示視覺效果較好,沒有視覺上大的跳躍感。
圖8 簡化后建立的連續(xù)層次模型顯示效果Fig.8 Continuous level of detail for simplification models
本文通過利用基于QEM簡化算法建立了不同精度的AP1000核電站設(shè)備層次模型,分析且驗證了基于QEM簡化算法的簡化效果,與此同時利用雙向鏈表記錄了簡化的順序,實現(xiàn)了邊折疊與點分裂互逆操作,實現(xiàn)了模型連續(xù)細節(jié)層次表示,為解決虛擬現(xiàn)實技術(shù)模型復(fù)雜性和顯示實時性提供了一種方案,有利于虛擬現(xiàn)實技術(shù)在AP1000核電站中的進一步應(yīng)用。