孫浩鵬,李 楊
(1.長(zhǎng)春工程學(xué)院 計(jì)算機(jī)技術(shù)與工程學(xué)院,長(zhǎng)春 130012;2.長(zhǎng)春建筑學(xué)院 科研處,長(zhǎng)春 130699)
水輪機(jī)是把水流的能量轉(zhuǎn)換為旋轉(zhuǎn)機(jī)械能的動(dòng)力機(jī)械,屬于流體機(jī)械中的透平機(jī)械.水輪機(jī)種類多、結(jié)構(gòu)復(fù)雜且工作在水下,用傳統(tǒng)的動(dòng)畫演示方法很難完整地描述其在水下的工作方式,因此采用虛擬現(xiàn)實(shí)技術(shù)將水下的各種工況表現(xiàn)出來(lái).虛擬現(xiàn)實(shí)技術(shù)是一種多源信息交互式的三維動(dòng)態(tài)視景和實(shí)體行為的系統(tǒng)仿真[1],采用該技術(shù)可將水輪機(jī)在水下的工作方式完整地展示,并進(jìn)行人機(jī)交互,且不受物理和實(shí)驗(yàn)?zāi)P偷南拗?
在虛擬現(xiàn)實(shí)的實(shí)現(xiàn)過(guò)程中,碰撞檢測(cè)算法耗費(fèi)大量計(jì)算機(jī)CPU運(yùn)算時(shí)間,所以選擇合適的碰撞檢測(cè)算法對(duì)仿真系統(tǒng)的運(yùn)行速度具有決定性作用[2].目前,碰撞算法主要是包圍盒算法[3],包括軸向AABB(axis-aligned bouning box)包圍盒、OBB(oriented bouning box)方向包圍盒和球形包圍盒(簡(jiǎn)稱包圍球)等.
文獻(xiàn)[4]基于圖像空間的碰撞檢測(cè)算法進(jìn)行了研究,在基于圖像空間算法上有效利用了圖形硬件(GPU)的高性能計(jì)算能力,提出了用固定方向凸包作為包圍盒進(jìn)行碰撞檢測(cè)的方法,證明了其適用于復(fù)雜環(huán)境中的精確碰撞檢測(cè).甚至開(kāi)發(fā)了多個(gè)碰撞檢測(cè)庫(kù),包括采用GPU的Occlusion query做精細(xì)檢測(cè).但目前對(duì)于固體和液體的碰撞,尤其是在水輪機(jī)虛擬仿真過(guò)程中的碰撞問(wèn)題研究報(bào)道較少.本文通過(guò)對(duì)常用碰撞算法的分析和對(duì)比,水流和水輪機(jī)的碰撞采用實(shí)體空間碰撞檢測(cè)方法[4].在選擇過(guò)程中,考慮到水輪機(jī)運(yùn)行時(shí)速度變化慢,屬于無(wú)明顯位移的勻速旋轉(zhuǎn)運(yùn)動(dòng),所以選擇層次包圍盒作為水輪機(jī)和水流的碰撞檢測(cè)方法.
虛擬現(xiàn)實(shí)中較難模擬的是水輪機(jī)與流體的相互關(guān)系,因?yàn)樗啓C(jī)的形態(tài)復(fù)雜,不同的水輪機(jī)類型與流體的碰撞都不同,水輪機(jī)和水流在虛擬空間中的碰撞是整個(gè)展示系統(tǒng)的難點(diǎn),如果方法錯(cuò)誤,將使碰撞計(jì)算耗費(fèi)大量時(shí)間[5].采用合理的碰撞檢測(cè)方法可使碰撞既能合理地反映真實(shí)情況,又能在計(jì)算機(jī)的運(yùn)算極限內(nèi),可保證系統(tǒng)穩(wěn)定運(yùn)行.在模擬水輪機(jī)運(yùn)行的虛擬現(xiàn)實(shí)系統(tǒng)中,流體和水輪機(jī)碰撞的情況多種多樣,必須根據(jù)實(shí)際工況選擇不同的碰撞檢測(cè)方式.按照水流和水輪機(jī)的接觸類型可分為以下幾種情況:
1) 流體和水工建筑物間的碰撞檢測(cè).如水流和尾水管間的碰撞,在虛擬現(xiàn)實(shí)中一般用粒子發(fā)射系統(tǒng)模擬水流,為保證客觀真實(shí)性,不允許水流穿透水工建筑物,此時(shí)的粒子系統(tǒng)和水工建筑物可采用AABB包圍盒將壩體或尾水管等進(jìn)行包裹測(cè)試.
2) 流體和水輪機(jī)機(jī)體的碰撞檢測(cè).當(dāng)水流沖向水輪機(jī)時(shí),會(huì)與水輪機(jī)碰撞,水輪機(jī)可分解為葉片和機(jī)體兩部分,以軸流動(dòng)槳式水輪機(jī)為例,機(jī)體由于在中心部分,所以直接利用包圍球處理,經(jīng)測(cè)試速度快、效果良好.
3) 流體和水輪機(jī)葉片的碰撞檢測(cè).水流碰撞葉片會(huì)產(chǎn)生反向的推力,這與水流的速度、方向、層流和黏性等相關(guān),不同流速對(duì)水輪機(jī)葉片的作用力也不同,所以根據(jù)水流動(dòng)力學(xué)計(jì)算葉片的推力可使水輪機(jī)的轉(zhuǎn)動(dòng)運(yùn)行更具真實(shí)性.碰撞包圍盒的應(yīng)用極大減少了相交固體和液體的檢測(cè)面積和復(fù)雜度,在虛擬現(xiàn)實(shí)中得到了推廣和應(yīng)用.但經(jīng)測(cè)試,在葉片上無(wú)法利用單一碰撞包圍盒取得較好效果.
下面分別對(duì)上述3種情況的碰撞檢測(cè)進(jìn)行分析,使用適合的常用包圍盒算法,對(duì)水輪機(jī)葉片與流體的碰撞算法進(jìn)行改進(jìn),并給出相關(guān)數(shù)據(jù).
水工建筑物包括進(jìn)水閘門和大壩等,由于不涉及水輪機(jī)運(yùn)行,在虛擬現(xiàn)實(shí)中可直接選用AABB包圍盒算法,將閘門或大壩作為單一實(shí)心物體處理.AABB包圍盒是與坐標(biāo)軸對(duì)齊的包圍盒[6],運(yùn)算簡(jiǎn)單,適合于重疊測(cè)試剛性模型間的碰撞檢測(cè).AABB樹(shù)是復(fù)雜模型進(jìn)行變形碰撞檢測(cè)的首選方法,與OBB模型相比,AABB模型可更快地構(gòu)建存儲(chǔ)空間,所以水工建筑物如大壩和鋼閘門等,可直接利用體積函數(shù)得到AABB包圍盒,與其碰撞的粒子系統(tǒng)可直接通過(guò)邊界函數(shù)確定粒子的整個(gè)體積邊界,這兩種基于體積的AABB包圍盒均通過(guò)投影將空間體積相交轉(zhuǎn)換為一個(gè)平面上的求交,效率較高[7].
對(duì)于閘門或壩體很容易直接應(yīng)用單一的AABB包圍盒,即使是弧形鋼閘門也可直接用水平的AABB包圍盒包裹.而用于模擬流體的粒子-邊界作用模型是粒子模擬中非常重要的一類邊界條件,通??赏ㄟ^(guò)偏Maxwell分布模擬符合粒子邊界條件的粒子邊界.粒子系統(tǒng)是由發(fā)射器發(fā)射后不斷演化的過(guò)程產(chǎn)物,受初始條件和邊界條件控制,邊界的性質(zhì)直接影響粒子和水工建筑物的碰撞過(guò)程.
模擬粒子邊界的條件通常有3種:
1) 周期性(主要假設(shè)粒子的重復(fù)性);
2) 用粒子構(gòu)造的邊界模擬真實(shí)的邊界;
3) 用幾何體如面或邊模擬真實(shí)邊界.
如果已經(jīng)確定在鋼閘門和壩體上利用AABB包圍盒,此時(shí)粒子系統(tǒng)直接用3)中求邊界的作用方式模擬實(shí)際邊界條件,即用多邊形的邊模擬粒子邊界,此時(shí)的碰撞檢測(cè)相當(dāng)于兩個(gè)多邊形的包圍盒碰撞,測(cè)試結(jié)果表明速度較快.
水輪機(jī)的機(jī)體部分近似為一個(gè)橢圓,所以可直接求得機(jī)體的最大直線距離作為包圍球的半徑,水輪機(jī)的中心部分即鑲嵌葉片的部分為包圍球的球心坐標(biāo).碰撞包圍球利用一個(gè)球體緊緊包圍在物體上,其中球半徑是物體邊界條件中最大的直線距離,用公式表示為
R={(x,y,z)|(x-cx)2+(y-cy)2+(z-cz)2 其中:(cx,cy,cz)表示球心坐標(biāo);R表示球半徑.當(dāng)物體旋轉(zhuǎn)后,由于碰撞包圍球自身旋轉(zhuǎn)并不影響包圍球自身的體積,所以當(dāng)水輪機(jī)旋轉(zhuǎn)時(shí)選擇包圍球碰撞檢測(cè)方法. 當(dāng)水輪機(jī)機(jī)體部分直接應(yīng)用碰撞包圍球檢測(cè)方法后,粒子邊界為了達(dá)到真實(shí)的效果,必須選用粒子構(gòu)造的邊界測(cè)試碰撞.Mukherjee等[8]利用邊界積分方程,通過(guò)在邊界配置節(jié)點(diǎn),改進(jìn)了無(wú)網(wǎng)格方法的粒子邊界確定方法,在利用粒子構(gòu)造邊界后,粒子邊界與包圍球碰撞時(shí)判斷為已經(jīng)碰撞,將粒子直接進(jìn)行邊界反彈,經(jīng)測(cè)試運(yùn)行速度快、效果較好. 圖1 葉片重構(gòu)流程Fig.1 Leaves reconstruction flowchart 水輪機(jī)葉片屬于迎水面,是水輪機(jī)中轉(zhuǎn)輪的主要組成部分,通常分為動(dòng)槳式和定槳式兩種,位于上冠與下環(huán)間.葉片呈復(fù)雜的空間扭曲狀,斷面形狀為翼形,是水流能量轉(zhuǎn)換的主要部件.定槳式水輪機(jī)葉片在碰撞檢測(cè)時(shí),由于不進(jìn)行自身的角度變化,所以可忽略包圍盒的旋轉(zhuǎn)更新問(wèn)題,但動(dòng)槳式葉片不僅隨水輪機(jī)本身進(jìn)行旋轉(zhuǎn),也會(huì)自身旋轉(zhuǎn),所以在選擇碰撞包圍盒過(guò)程中必須考慮葉片旋轉(zhuǎn)所消耗的時(shí)間.算法實(shí)現(xiàn)流程如圖1所示. OBB方向包圍[9]和其他包圍盒相比,能更緊密地包圍物體,但構(gòu)建代價(jià)較大,對(duì)有變形的物體場(chǎng)景通常無(wú)法實(shí)時(shí)更新層次樹(shù)[10].AABB包圍盒速度較快,但包圍物體不夠緊密,且層次樹(shù)更新快,可用于變形的物體碰撞檢測(cè).在水輪機(jī)葉片上應(yīng)用兩種包圍盒,將AABB和OBB包圍盒在葉片測(cè)試后,對(duì)其精密度和時(shí)間進(jìn)行對(duì)比,結(jié)果列于表1. 表1 葉片應(yīng)用AABB和OBB包圍盒的比較Table 1 Comparison of AABB and OBB on the blade 由表1可見(jiàn),在葉片的碰撞問(wèn)題上,為了整體效果和葉片的緊密性,選擇OBB包圍盒最合適.OBB包圍盒最大的優(yōu)點(diǎn)是方向的任意性[11].但單一OBB包圍盒效果和AABB包圍盒區(qū)別不大,結(jié)果如圖2所示. OBB算法如下:包圍盒的位置和方向利用模型對(duì)象頂點(diǎn)坐標(biāo)的一階和二階特性計(jì)算.一般假設(shè)第i個(gè)多邊形三角面的頂點(diǎn)空間坐標(biāo)為Pi,Qi,Ri,在包圍盒內(nèi)部的三角面?zhèn)€數(shù)為n,則一階u和二階矩陣C計(jì)算如下: 其中:Pi=Pi-u;Qi=Qi-u;Ri=Ri-u.協(xié)方差矩陣C是一個(gè)對(duì)稱矩陣,根據(jù)對(duì)稱矩陣特征向量互相垂直的性質(zhì),用C的3個(gè)特征向量可確定OBB的方向軸.將葉片分解后每個(gè)子葉片的曲面法線即用于確定OBB的方向軸. 由于水輪機(jī)葉片表面的復(fù)雜性和多樣性,重建的曲面模型不可能由一個(gè)曲面擬合,而是由一些子曲面按一定的約束條件組成,構(gòu)成完整的重建曲面模型[12],連續(xù)的曲面由脊線和截面線決定[13],曲面重構(gòu)公式為 其中:Pi(P)為葉片曲面幾何模型;Tk為約束;Ck(P)為容許誤差. 水輪機(jī)葉片在虛擬環(huán)境中通常用Bezier曲面Tk構(gòu)成,Bezier曲面由特征網(wǎng)格頂點(diǎn)控制,給定(n+1)×(m+1)個(gè)排成網(wǎng)格的控制頂點(diǎn)Pi,j(i=0,1,…,n;j=0,1,…,m),利用Bernstein函數(shù)Bi,n(u),Bj,m(v)可構(gòu)成一張曲面,該曲面為n×m次Bezie曲面,可描述為 圖3 5個(gè)OBB碰撞包圍盒在葉片上的應(yīng)用Fig.3 Five OBB collision bounding box on the blade 表2 葉片分解測(cè)試數(shù)據(jù)Table 2 Testing data of the number of decomposition on blade [1] YU Zheng-lin,TAN Wei,JIANG Tao.Training Simulator for Photoelectric Theodolite Based on Visual Emulation [J].Journal of Jilin University:Engineering and Technology Edition,2011,41(2):509-513.(于正林,譚微,姜濤.基于視景仿真的光電經(jīng)緯儀模擬訓(xùn)練器 [J].吉林大學(xué)學(xué)報(bào):工學(xué)版,2011,41(2):509-513.) [2] 石教英.虛擬現(xiàn)實(shí)基礎(chǔ)及實(shí)用算法 [M].北京:科學(xué)出版社,2002. [3] ZHENG Yan-bin,GUO Ling-yun,LIU Jing-jing.Collision Detection Optimization Algorithm Based on Mixed Bounding Volumes [J].Computer Engineering &Science,2013,35(4):87-92.(鄭延斌,郭凌云,劉晶晶.基于混合包圍盒的碰撞檢測(cè)優(yōu)化算法 [J].計(jì)算機(jī)工程與科學(xué),2013,35(4):87-92.) [4] ZHANG Zhen-hua,ZHOU Wen-li,TONG Fu-jun,et al.Collision Detection Algorithm Research Based on Spatial Domain in Virtual Scene [J].Journal of Computer Applications,2012,32(Suppl 2):151-153.(張振華,周文理,仝富軍,等.虛擬場(chǎng)景中基于空間域的碰撞檢測(cè)算法研究 [J].計(jì)算機(jī)應(yīng)用,2012,32(增刊2):151-153.) [5] ZHAO Wei,HE Yan-shuang.Rapid Algorithm for Parallel Collision Detection [J].Journal of Jilin University:Engineering and Technology Edition,2008,38(1):152-157.(趙偉,何艷爽.一種快速的基于并行的碰撞檢測(cè)算法 [J].吉林大學(xué)學(xué)報(bào):工學(xué)版,2008,38(1):152-157.) [6] Bergen G,Van Den.Efficient Collision Detection of Complex Deformable Models Using AABB Trees [J].Journal of Graphics Tools,1999,4(2):1-13. [7] PAN Zhen-kuan,LI Jian-bo.The Collision Detection Algorithm Based on Compressed AABB Trees [J].Computer Science,2005,32(2):213-215.(潘振寬,李建波.基于壓縮的AABB樹(shù)的碰撞檢測(cè)算法 [J].計(jì)算機(jī)科學(xué),2005,32(2):213-215.) [8] Mukherjee Y X,Mukherjee S.The Boundary Node Method for Potential Problems [J].International Journal for Numerical Methods in Engineering,1997,40(5):797-815. [9] Gottschalk S,Lin M C,Manocha D.OBB-Tree:A Hierarchicalstructure for Rapid Interference Detection [C]//Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques.New York:ACM,1996:171-180. [10] CUI Han-guo,CHEN Jun,WANG Da-yu.Study of Optimal OBB Collision Test Algorithm in Virtual Environlment [J].Computer Engineering and Design,2007,28(11):2524-2526.(崔漢國(guó),陳軍,王大宇.虛擬環(huán)境中優(yōu)化的OBB碰撞檢測(cè)算法研究 [J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(11):2524-2526.) [11] Geiger B.Real-Time Collision Detection and Response for Complex Environments [C]//Proceedings of the International Conference on Computer Graphics.Washington DC:IEEE Computer Society,2000:105-113. [12] Brujic D,Ainsworth I,Ristic M.Fast and Accurate NURBS Fitting for Reverse Engineering [J].International Journal of Advanced Manufacturing Technology,2011,54(5/6/7/8):691-700. [13] CAI Zhong-yi,LI Ming-zhe,LAN Ying-wu,et al.Shape Control of 3-Dimensional Curved Surface Part in Continuous Forming [J].Journal of Jilin University:Engineering and Technology Edition,2011,41(1):978-983.(蔡中義,李明哲,蘭英武,等.三維曲面零件連續(xù)成形的形狀控制 [J].吉林大學(xué)學(xué)報(bào):工學(xué)版,2011,41(1):978-983.)4 流體和水輪機(jī)葉片的碰撞檢測(cè)算法