孫浩鵬,李 楊
(1.長春工程學院 計算機技術與工程學院,長春 130012;2.長春建筑學院 科研處,長春 130699)
水輪機是把水流的能量轉換為旋轉機械能的動力機械,屬于流體機械中的透平機械.水輪機種類多、結構復雜且工作在水下,用傳統的動畫演示方法很難完整地描述其在水下的工作方式,因此采用虛擬現實技術將水下的各種工況表現出來.虛擬現實技術是一種多源信息交互式的三維動態視景和實體行為的系統仿真[1],采用該技術可將水輪機在水下的工作方式完整地展示,并進行人機交互,且不受物理和實驗模型的限制.
在虛擬現實的實現過程中,碰撞檢測算法耗費大量計算機CPU運算時間,所以選擇合適的碰撞檢測算法對仿真系統的運行速度具有決定性作用[2].目前,碰撞算法主要是包圍盒算法[3],包括軸向AABB(axis-aligned bouning box)包圍盒、OBB(oriented bouning box)方向包圍盒和球形包圍盒(簡稱包圍球)等.
文獻[4]基于圖像空間的碰撞檢測算法進行了研究,在基于圖像空間算法上有效利用了圖形硬件(GPU)的高性能計算能力,提出了用固定方向凸包作為包圍盒進行碰撞檢測的方法,證明了其適用于復雜環境中的精確碰撞檢測.甚至開發了多個碰撞檢測庫,包括采用GPU的Occlusion query做精細檢測.但目前對于固體和液體的碰撞,尤其是在水輪機虛擬仿真過程中的碰撞問題研究報道較少.本文通過對常用碰撞算法的分析和對比,水流和水輪機的碰撞采用實體空間碰撞檢測方法[4].在選擇過程中,考慮到水輪機運行時速度變化慢,屬于無明顯位移的勻速旋轉運動,所以選擇層次包圍盒作為水輪機和水流的碰撞檢測方法.
虛擬現實中較難模擬的是水輪機與流體的相互關系,因為水輪機的形態復雜,不同的水輪機類型與流體的碰撞都不同,水輪機和水流在虛擬空間中的碰撞是整個展示系統的難點,如果方法錯誤,將使碰撞計算耗費大量時間[5].采用合理的碰撞檢測方法可使碰撞既能合理地反映真實情況,又能在計算機的運算極限內,可保證系統穩定運行.在模擬水輪機運行的虛擬現實系統中,流體和水輪機碰撞的情況多種多樣,必須根據實際工況選擇不同的碰撞檢測方式.按照水流和水輪機的接觸類型可分為以下幾種情況:
1) 流體和水工建筑物間的碰撞檢測.如水流和尾水管間的碰撞,在虛擬現實中一般用粒子發射系統模擬水流,為保證客觀真實性,不允許水流穿透水工建筑物,此時的粒子系統和水工建筑物可采用AABB包圍盒將壩體或尾水管等進行包裹測試.
2) 流體和水輪機機體的碰撞檢測.當水流沖向水輪機時,會與水輪機碰撞,水輪機可分解為葉片和機體兩部分,以軸流動槳式水輪機為例,機體由于在中心部分,所以直接利用包圍球處理,經測試速度快、效果良好.
3) 流體和水輪機葉片的碰撞檢測.水流碰撞葉片會產生反向的推力,這與水流的速度、方向、層流和黏性等相關,不同流速對水輪機葉片的作用力也不同,所以根據水流動力學計算葉片的推力可使水輪機的轉動運行更具真實性.碰撞包圍盒的應用極大減少了相交固體和液體的檢測面積和復雜度,在虛擬現實中得到了推廣和應用.但經測試,在葉片上無法利用單一碰撞包圍盒取得較好效果.
下面分別對上述3種情況的碰撞檢測進行分析,使用適合的常用包圍盒算法,對水輪機葉片與流體的碰撞算法進行改進,并給出相關數據.
水工建筑物包括進水閘門和大壩等,由于不涉及水輪機運行,在虛擬現實中可直接選用AABB包圍盒算法,將閘門或大壩作為單一實心物體處理.AABB包圍盒是與坐標軸對齊的包圍盒[6],運算簡單,適合于重疊測試剛性模型間的碰撞檢測.AABB樹是復雜模型進行變形碰撞檢測的首選方法,與OBB模型相比,AABB模型可更快地構建存儲空間,所以水工建筑物如大壩和鋼閘門等,可直接利用體積函數得到AABB包圍盒,與其碰撞的粒子系統可直接通過邊界函數確定粒子的整個體積邊界,這兩種基于體積的AABB包圍盒均通過投影將空間體積相交轉換為一個平面上的求交,效率較高[7].
對于閘門或壩體很容易直接應用單一的AABB包圍盒,即使是弧形鋼閘門也可直接用水平的AABB包圍盒包裹.而用于模擬流體的粒子-邊界作用模型是粒子模擬中非常重要的一類邊界條件,通常可通過偏Maxwell分布模擬符合粒子邊界條件的粒子邊界.粒子系統是由發射器發射后不斷演化的過程產物,受初始條件和邊界條件控制,邊界的性質直接影響粒子和水工建筑物的碰撞過程.
模擬粒子邊界的條件通常有3種:
1) 周期性(主要假設粒子的重復性);
2) 用粒子構造的邊界模擬真實的邊界;
3) 用幾何體如面或邊模擬真實邊界.
如果已經確定在鋼閘門和壩體上利用AABB包圍盒,此時粒子系統直接用3)中求邊界的作用方式模擬實際邊界條件,即用多邊形的邊模擬粒子邊界,此時的碰撞檢測相當于兩個多邊形的包圍盒碰撞,測試結果表明速度較快.
水輪機的機體部分近似為一個橢圓,所以可直接求得機體的最大直線距離作為包圍球的半徑,水輪機的中心部分即鑲嵌葉片的部分為包圍球的球心坐標.碰撞包圍球利用一個球體緊緊包圍在物體上,其中球半徑是物體邊界條件中最大的直線距離,用公式表示為
R={(x,y,z)|(x-cx)2+(y-cy)2+(z-cz)2 其中:(cx,cy,cz)表示球心坐標;R表示球半徑.當物體旋轉后,由于碰撞包圍球自身旋轉并不影響包圍球自身的體積,所以當水輪機旋轉時選擇包圍球碰撞檢測方法. 當水輪機機體部分直接應用碰撞包圍球檢測方法后,粒子邊界為了達到真實的效果,必須選用粒子構造的邊界測試碰撞.Mukherjee等[8]利用邊界積分方程,通過在邊界配置節點,改進了無網格方法的粒子邊界確定方法,在利用粒子構造邊界后,粒子邊界與包圍球碰撞時判斷為已經碰撞,將粒子直接進行邊界反彈,經測試運行速度快、效果較好. 圖1 葉片重構流程Fig.1 Leaves reconstruction flowchart 水輪機葉片屬于迎水面,是水輪機中轉輪的主要組成部分,通常分為動槳式和定槳式兩種,位于上冠與下環間.葉片呈復雜的空間扭曲狀,斷面形狀為翼形,是水流能量轉換的主要部件.定槳式水輪機葉片在碰撞檢測時,由于不進行自身的角度變化,所以可忽略包圍盒的旋轉更新問題,但動槳式葉片不僅隨水輪機本身進行旋轉,也會自身旋轉,所以在選擇碰撞包圍盒過程中必須考慮葉片旋轉所消耗的時間.算法實現流程如圖1所示. OBB方向包圍[9]和其他包圍盒相比,能更緊密地包圍物體,但構建代價較大,對有變形的物體場景通常無法實時更新層次樹[10].AABB包圍盒速度較快,但包圍物體不夠緊密,且層次樹更新快,可用于變形的物體碰撞檢測.在水輪機葉片上應用兩種包圍盒,將AABB和OBB包圍盒在葉片測試后,對其精密度和時間進行對比,結果列于表1. 表1 葉片應用AABB和OBB包圍盒的比較Table 1 Comparison of AABB and OBB on the blade 由表1可見,在葉片的碰撞問題上,為了整體效果和葉片的緊密性,選擇OBB包圍盒最合適.OBB包圍盒最大的優點是方向的任意性[11].但單一OBB包圍盒效果和AABB包圍盒區別不大,結果如圖2所示. OBB算法如下:包圍盒的位置和方向利用模型對象頂點坐標的一階和二階特性計算.一般假設第i個多邊形三角面的頂點空間坐標為Pi,Qi,Ri,在包圍盒內部的三角面個數為n,則一階u和二階矩陣C計算如下: 其中:Pi=Pi-u;Qi=Qi-u;Ri=Ri-u.協方差矩陣C是一個對稱矩陣,根據對稱矩陣特征向量互相垂直的性質,用C的3個特征向量可確定OBB的方向軸.將葉片分解后每個子葉片的曲面法線即用于確定OBB的方向軸. 由于水輪機葉片表面的復雜性和多樣性,重建的曲面模型不可能由一個曲面擬合,而是由一些子曲面按一定的約束條件組成,構成完整的重建曲面模型[12],連續的曲面由脊線和截面線決定[13],曲面重構公式為 其中:Pi(P)為葉片曲面幾何模型;Tk為約束;Ck(P)為容許誤差. 水輪機葉片在虛擬環境中通常用Bezier曲面Tk構成,Bezier曲面由特征網格頂點控制,給定(n+1)×(m+1)個排成網格的控制頂點Pi,j(i=0,1,…,n;j=0,1,…,m),利用Bernstein函數Bi,n(u),Bj,m(v)可構成一張曲面,該曲面為n×m次Bezie曲面,可描述為 圖3 5個OBB碰撞包圍盒在葉片上的應用Fig.3 Five OBB collision bounding box on the blade 表2 葉片分解測試數據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].吉林大學學報:工學版,2011,41(2):509-513.) [2] 石教英.虛擬現實基礎及實用算法 [M].北京:科學出版社,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.(鄭延斌,郭凌云,劉晶晶.基于混合包圍盒的碰撞檢測優化算法 [J].計算機工程與科學,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.(張振華,周文理,仝富軍,等.虛擬場景中基于空間域的碰撞檢測算法研究 [J].計算機應用,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.(趙偉,何艷爽.一種快速的基于并行的碰撞檢測算法 [J].吉林大學學報:工學版,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樹的碰撞檢測算法 [J].計算機科學,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.(崔漢國,陳軍,王大宇.虛擬環境中優化的OBB碰撞檢測算法研究 [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.(蔡中義,李明哲,蘭英武,等.三維曲面零件連續成形的形狀控制 [J].吉林大學學報:工學版,2011,41(1):978-983.)4 流體和水輪機葉片的碰撞檢測算法




