APP下载

面向虚拟现实的水轮机与流体碰撞算法

2013-12-03孙浩鹏

吉林大学学报(理学版) 2013年6期
关键词:碰撞检测水轮机曲面

孙浩鹏,李 杨

(1.长春工程学院 计算机技术与工程学院,长春 130012;2.长春建筑学院 科研处,长春 130699)

水轮机是把水流的能量转换为旋转机械能的动力机械,属于流体机械中的透平机械.水轮机种类多、结构复杂且工作在水下,用传统的动画演示方法很难完整地描述其在水下的工作方式,因此采用虚拟现实技术将水下的各种工况表现出来.虚拟现实技术是一种多源信息交互式的三维动态视景和实体行为的系统仿真[1],采用该技术可将水轮机在水下的工作方式完整地展示,并进行人机交互,且不受物理和实验模型的限制.

在虚拟现实的实现过程中,碰撞检测算法耗费大量计算机CPU运算时间,所以选择合适的碰撞检测算法对仿真系统的运行速度具有决定性作用[2].目前,碰撞算法主要是包围盒算法[3],包括轴向AABB(axis-aligned bouning box)包围盒、OBB(oriented bouning box)方向包围盒和球形包围盒(简称包围球)等.

文献[4]基于图像空间的碰撞检测算法进行了研究,在基于图像空间算法上有效利用了图形硬件(GPU)的高性能计算能力,提出了用固定方向凸包作为包围盒进行碰撞检测的方法,证明了其适用于复杂环境中的精确碰撞检测.甚至开发了多个碰撞检测库,包括采用GPU的Occlusion query做精细检测.但目前对于固体和液体的碰撞,尤其是在水轮机虚拟仿真过程中的碰撞问题研究报道较少.本文通过对常用碰撞算法的分析和对比,水流和水轮机的碰撞采用实体空间碰撞检测方法[4].在选择过程中,考虑到水轮机运行时速度变化慢,属于无明显位移的匀速旋转运动,所以选择层次包围盒作为水轮机和水流的碰撞检测方法.

1 流体在水轮机运行过程的碰撞划分

虚拟现实中较难模拟的是水轮机与流体的相互关系,因为水轮机的形态复杂,不同的水轮机类型与流体的碰撞都不同,水轮机和水流在虚拟空间中的碰撞是整个展示系统的难点,如果方法错误,将使碰撞计算耗费大量时间[5].采用合理的碰撞检测方法可使碰撞既能合理地反映真实情况,又能在计算机的运算极限内,可保证系统稳定运行.在模拟水轮机运行的虚拟现实系统中,流体和水轮机碰撞的情况多种多样,必须根据实际工况选择不同的碰撞检测方式.按照水流和水轮机的接触类型可分为以下几种情况:

1) 流体和水工建筑物间的碰撞检测.如水流和尾水管间的碰撞,在虚拟现实中一般用粒子发射系统模拟水流,为保证客观真实性,不允许水流穿透水工建筑物,此时的粒子系统和水工建筑物可采用AABB包围盒将坝体或尾水管等进行包裹测试.

2) 流体和水轮机机体的碰撞检测.当水流冲向水轮机时,会与水轮机碰撞,水轮机可分解为叶片和机体两部分,以轴流动桨式水轮机为例,机体由于在中心部分,所以直接利用包围球处理,经测试速度快、效果良好.

3) 流体和水轮机叶片的碰撞检测.水流碰撞叶片会产生反向的推力,这与水流的速度、方向、层流和黏性等相关,不同流速对水轮机叶片的作用力也不同,所以根据水流动力学计算叶片的推力可使水轮机的转动运行更具真实性.碰撞包围盒的应用极大减少了相交固体和液体的检测面积和复杂度,在虚拟现实中得到了推广和应用.但经测试,在叶片上无法利用单一碰撞包围盒取得较好效果.

下面分别对上述3种情况的碰撞检测进行分析,使用适合的常用包围盒算法,对水轮机叶片与流体的碰撞算法进行改进,并给出相关数据.

2 流体和水工建筑物间的碰撞检测算法

水工建筑物包括进水闸门和大坝等,由于不涉及水轮机运行,在虚拟现实中可直接选用AABB包围盒算法,将闸门或大坝作为单一实心物体处理.AABB包围盒是与坐标轴对齐的包围盒[6],运算简单,适合于重叠测试刚性模型间的碰撞检测.AABB树是复杂模型进行变形碰撞检测的首选方法,与OBB模型相比,AABB模型可更快地构建存储空间,所以水工建筑物如大坝和钢闸门等,可直接利用体积函数得到AABB包围盒,与其碰撞的粒子系统可直接通过边界函数确定粒子的整个体积边界,这两种基于体积的AABB包围盒均通过投影将空间体积相交转换为一个平面上的求交,效率较高[7].

对于闸门或坝体很容易直接应用单一的AABB包围盒,即使是弧形钢闸门也可直接用水平的AABB包围盒包裹.而用于模拟流体的粒子-边界作用模型是粒子模拟中非常重要的一类边界条件,通常可通过偏Maxwell分布模拟符合粒子边界条件的粒子边界.粒子系统是由发射器发射后不断演化的过程产物,受初始条件和边界条件控制,边界的性质直接影响粒子和水工建筑物的碰撞过程.

模拟粒子边界的条件通常有3种:

1) 周期性(主要假设粒子的重复性);

2) 用粒子构造的边界模拟真实的边界;

3) 用几何体如面或边模拟真实边界.

如果已经确定在钢闸门和坝体上利用AABB包围盒,此时粒子系统直接用3)中求边界的作用方式模拟实际边界条件,即用多边形的边模拟粒子边界,此时的碰撞检测相当于两个多边形的包围盒碰撞,测试结果表明速度较快.

3 流体和水轮机机体的碰撞检测算法

水轮机的机体部分近似为一个椭圆,所以可直接求得机体的最大直线距离作为包围球的半径,水轮机的中心部分即镶嵌叶片的部分为包围球的球心坐标.碰撞包围球利用一个球体紧紧包围在物体上,其中球半径是物体边界条件中最大的直线距离,用公式表示为

R={(x,y,z)|(x-cx)2+(y-cy)2+(z-cz)2

其中:(cx,cy,cz)表示球心坐标;R表示球半径.当物体旋转后,由于碰撞包围球自身旋转并不影响包围球自身的体积,所以当水轮机旋转时选择包围球碰撞检测方法.

当水轮机机体部分直接应用碰撞包围球检测方法后,粒子边界为了达到真实的效果,必须选用粒子构造的边界测试碰撞.Mukherjee等[8]利用边界积分方程,通过在边界配置节点,改进了无网格方法的粒子边界确定方法,在利用粒子构造边界后,粒子边界与包围球碰撞时判断为已经碰撞,将粒子直接进行边界反弹,经测试运行速度快、效果较好.

4 流体和水轮机叶片的碰撞检测算法

图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.)

猜你喜欢

碰撞检测水轮机曲面
简单拓扑图及几乎交错链环补中的闭曲面
水轮机过流面非金属材料的修复及防护
基于动力学补偿的机器人电机力矩误差碰撞检测
基于MATLAB和PSD-BPA的水轮机及调速系统参数辨识研究
全新预测碰撞检测系统
水电站水轮机制造新工艺的探析
水轮机虚拟仿真动画制作的研究
基于BIM的铁路信号室外设备布置与碰撞检测方法
相交移动超曲面的亚纯映射的唯一性
关于第二类曲面积分的几个阐述