基于有限元的桥梁垮塌场景模拟初探

2010-06-07 05:58任爱珠陆新征
土木建筑工程信息技术 2010年4期
关键词:漫游顶点虚拟现实

许 镇 任爱珠 陆新征

(清华大学土木工程系,防灾减灾研究所,北京 100084)

基于有限元的桥梁垮塌场景模拟初探

许 镇 任爱珠 陆新征

(清华大学土木工程系,防灾减灾研究所,北京 100084)

为了科学而逼真地还原桥梁垮塌过程,辅助桥梁垮塌事故鉴定,本文在虚拟现实平台上对基于有限元数据的桥梁垮塌过程场景模拟进行了研究。基于桥梁垮塌过程的有限元模拟数据,本文在三维图形引擎OSG上实现了桥梁场景建模和垮塌动画模拟,并基于桥梁垮塌模型构建了具有一定真实感的场景漫游系统。通过场景模拟与有限元模拟的结果对比,证明了本文基于有限元的桥梁场景建模和垮塌动画控制方法的有效性。本文将有限元技术与虚拟现实技术相结合,为桥梁垮塌事故鉴定提供了科学而真实的虚拟场景。

桥梁垮塌;场景模拟;有限元;虚拟现实;OSG

近些年来,国内外发生了多起桥梁垮塌事故[1-2],如2006年5月16日,甘肃岷县北门洮河大桥(双曲石拱桥)突然全部垮塌;2007年8月,在建的湖南凤凰大桥发生坍塌,造成62人死亡;2007年8月1日,美国密西西比河I-35W钢桁架拱桥在交通晚高峰时发生垮塌,造成13人死亡,145人受伤。这些事故造成了重大的人员伤亡和财产损失,同时也引起了广大工程人员的关注与思考。科学、高效、准确的桥梁垮塌事故鉴定,对国家建设、经济运行、社会安定,具有非常重要的意义。

美国“911”事件中世贸大厦及Khobar Towers的事故鉴定过程中使用了大量计算机模拟技术[3-4],已经表明基于计算机模拟技术的结构垮塌事故鉴定调查具有可行性强、高效、准确等优点。在桥梁垮塌事故中,美国国家交通安全委员会对美国明尼苏达州密西西比河I-35W桥事故进行有限元建模分析,并根据影像资料和检测资料修正有限元模型,再现了桥梁倒塌过程,准确而高效地确定了桥梁垮塌的原因[5]。I-35W事故的准确鉴定表明了计算机模拟技术在桥梁垮塌事故鉴定中的具有重要的应用价值。

桥梁事故鉴定需要通过计算机模拟技术科学而真实的再现桥梁垮塌过程。有限元技术已经在桥梁垮塌力学模拟上已经有不少成功的案例[6-8],有限元技术可以保证垮塌模拟具有科学性,但是有限元模拟结果较为抽象,缺乏真实感,特别是非力学专业的人员理解有一定困难。因此,有必要将虚拟现实技术与有限元结合,实现具有科学性和真实感的桥梁垮塌场景模拟,以更加准确而逼真地还原桥梁垮塌过程,用于桥梁垮塌事故分析与结果展示。

目前,有限元与虚拟现实结合主要用于虚拟制造和虚拟医学手术等方面等[9-10],主要侧重于基于有限元提高虚拟现实系统的交互性能。在土木建筑领域,Igor等人研究了实时虚拟环境下弹性体的模拟,提升了具有大量结点的有限元模型的渲染效率[11]。此外,对有限元的可视化后处理技术研究较多[12],如陈俊涛等开发的地下结构的有限元图形系统,来表现应力云图等有限元计算结果[13]。以上研究在提高虚拟现实系统交互性、模型渲染效率和有限元模型的表现技术上都有一定突破,但都不侧重于提高有限元模拟结果的真实感。

本文基于MSC.Marc有限元软件进行了桥梁垮塌力学模拟。在此基础上,在图形平台OSG中实现了基于MSC.Marc数据的桥梁垮塌过程的场景动画,使桥梁垮塌场景模拟与科学的有限元模拟结果保持一致。同时开发了桥梁垮塌场景漫游系统,构建了具有真实感和科学性的桥梁垮塌场景,以还原桥梁垮塌过程,用于桥梁垮塌事故鉴定。

1 系统介绍

桥梁垮塌事故鉴定不仅需要逼真的桥梁垮塌过程的场景模拟,而且还需要一定的场景交互操作功能,因此一个完整的桥梁垮塌场景模拟系统应该具有良好的模拟效果和交互性能。对于场景模拟,一方面需要有限元数据的支持,作为科学模拟的保证,另一方面由于真实感的需要,模拟场景也需要具有地形模型、纹理数据、垮塌特效等多种要素,并根据桥梁事故鉴定需要开发相应的漫游操作和交互操作。为此,本文将桥梁垮塌场景模拟系统分为界面层、功能层、实现层、模型层、数据层、支撑层及外部层,其架构见图1。其中,有限元模拟作为外部层,模拟的结果数据和模型数据将应用到该系统中。有限元数据来源于有限元软件MSC.Marc力学模拟得到的桥梁倒塌计算结果,包括节点坐标和单元拓扑关系以及节点的位移时程。将节点坐标和单元拓扑在OSG中建立桥梁模型,再利用节点位移时程数据实现桥梁垮塌动画,最后在利用桥梁的垮塌模型建立基于OSG的桥梁场景漫游系统,更具真实感的表现桥梁垮塌场景。

2 桥梁垮塌有限元模拟

某钢筋混凝土大桥全长191.6m,主桥上部结构为混凝土组合桁架拱桥,跨径138m,用途为公路桥,如图2。

在MSC.Marc软件中建立桥梁的非线性有限元模型,为模拟该钢筋混凝土桥因超载工况导致垮塌的过程,特意将模型中的标准车(55吨)后四轴轴重增加近一倍,形成总轴重为107吨的特重车,并由5辆特重车组成的车队驶上桥梁,构成超载工况,得到的有限元模型如图3所示。

有限元方法适用于连续体,在垮塌过程中,对于破碎、分离等非连续力学行为一般采用“生死单元法”进行处理。在垮塌模拟过程中,当混凝土达到压碎应变或钢筋被拉断,则相应的有限元单元会被“杀死”。在MSC.Marc的桥梁垮塌模拟完成后,MSC.Marc软件可以输出四种文件,用于虚拟现实模块进行场景真实度模拟,见表1。

3 桥梁垮塌场景动画

图1 桥梁垮塌场景模拟系统架构图

图2 某钢筋混凝土桥梁立面示意图

本文的桥梁垮塌场景模拟一方面要结合有限元数据,这就要求要进行大量开发以实现基于有限元数据对场景模拟中的模型、动画等场景要素的控制;另一方面场景模拟是基于虚拟现实技术的,这就要求场景过程要使用纹理技术、场景特效等高级图形功能。所以本文场景模拟所需要的图形引擎一方面需要是较大的开发权限,最好是开源,以便于最大程度地控制场景要素;另一方面要有很多高级图形功能,避免从底层进行开发,降低开发效率。

OSG(Open Scene Graph)是一个基于OpenGL的开源的三维图形引擎,提供了一套C++的API,具有较完整的高级三维图形功能和丰富的功能插件,满足本文场景模拟的要求。为了精确地表现MSC.Marc计算的桥梁垮塌过程,OSG中的桥梁场景模型根据MSC.Marc中的有限元模型建立,并在垮塌动画实现过程中引入MSC.Marc的位移数据和“杀死”单元数据,以实现有限元数据对垮塌动画的控制。

3.1 桥梁场景建模

桥梁场景建模的是根据MSC.Marc的文件在OSG中建立桥梁的场景模型,需要保证两模型的一致性,才能实现精确的桥梁垮塌场景动画。合理的桥梁场景模型是实现模拟过程有效控制垮塌的基础。因此,建模过程中要充分考虑桥梁场景模型的控制要素。

(1)场景层次

在OSG中,场景管理是分层次的,所有的场景数据都会加入到一个Group当中,Group内可以包含很多Node。其中,几何图元作为一种需要绘制的对象有一个专门的Geode节点。绘制几何体的一般层次是,设置Geometry类,添加到Geode,然后在Geometry设置顶点坐标、法线、纹理等属性[14]。

由于在桥梁场景模拟过程中,一些有限元的单元会被“杀死”,所以在OSG中每个单元都设为一个Geometry,整个桥梁模型为一个Geode。在场景模型中,可以通过Geode.getDrawable(unsigned int i)来获得Geometry的指针。其中,getDrawable(i)中的参数i表示在Geode中第i个Geometry,与绘制顺序有关。因此,为了控制每个单元,Geometry的绘制顺序应该与Geometry代表的单元编号一致。

(2)建模方法

在本系统中,Node文件中包含的是单元顶点的坐标都要储存在OSG中三维向量osg::Vec3的数组中,然后根据Elem文件获得单元顶点编号,在三维向量数组中调用相应的向量构成单元的顶点向量数组VertexArray,并储存在Geometry中,最后通过DrawArrays()进行图形绘制。

有限元模型中,包括长方体、面、线三种不同类型的单元。在绘制线和面时,通过DrawArrays()进行绘制并不造成Geometry顶点重复,因为面和线的顶点和绘制所需要的顶点数量相同。但是在绘制体单元时,DrawArrays()无法直接绘制长方体,需要依次画出6个面,共需24个顶点。事实上,长方体只需要8个顶点。为了避免重复,节省内存,同时也为在模拟过程中控制体单元变形,在绘制体单元时,采用引索数组方式DrawElementsUInt()进行图形绘制。采用引索数组后,每个体单元只储存8个顶点坐标,而且改变某一个顶点时,该顶点相关的面都会改变。由于MSC.Marc中未能提供法线信息,法线向量需要根据顶点坐标计算。为了避免由于法线错误造成的单元不可见,需要获取面单元的渲染状态集StateSet,在StateSet中关闭背面剔除,并且通过setTwoSided()设置双面光源。

图3 MSC.Marc中的桥梁有限元模型

表1 MSC.M arc软件提供的数据类型

图4 基于MSC.Marc数据的OSG桥梁场景模型

(3)场景模型

在MSC.Marc的桥梁和车辆有限元模型中,包括体、面、线三种不同类型单元,共计2万多个单元。根据上述方法,在OSG中建立桥梁的场景模型如图4所示。通过图3和图4进行对比,OSG的桥梁场景模型和MSC.Marc中桥梁有限元模型是一致的。

3.2 桥梁垮塌动画

在OSG的桥梁垮塌动画的实现过程中,主要包括两部分工作:通过MSC.Marc的DispOut文件实现桥梁垮塌变形控制和根据DelElem文件实现对特定单元的“杀死”模拟。

图5 桥梁垮塌动画实现流程

(1)垮塌动画控制

在OSG中,有专门用于制作动画Animation类,但是,Animation类一般不适合单元数量巨大的有限元模型的变形动画。因此,本文利用OSG的更新回调机制来实现桥梁变形动画。

OSG通过回调(CallBack)完成每一帧的系统中所需工作。在OSG中,设有节点(Node)、几何体(Drawable)、镜头(Camera)等多种回调机制,在几何体回调中有一种几何体更新遍历(DrawableUpdateCallback)可以通过重载函数update(),实现几何体的内容更新[16]。

继承DrawableUpdateCallback类,建立新的DisplaceUpdate类。在DisplaceUpdate类中重载update()函数,在每一步回调中,通过getVertexArray()函数获得Geometry的顶点数组,然后将有限元的顶点位移数据在顶点数组中更新,最后通过dirty()函数更新顶点数组,经过回调后,每个Geometry的变形就实现了。

通过Geode的getDrawable()函数可以获得每一个Geometry的指针,然后可以通过setUpdateCallback()可以将每个Geometry关联到重载的update()函数,可以实现整个桥梁模型的变形动画。在update()可以通过osg::Timer::instance()->tick()获取开始执行时时间和更新完成时间,以实现动画的时间控制,见图5。此外,为了动态调用顶点的内存,桥梁场景模型建模时,要使用VBO(Vertex Buffer Object)模式,关闭默认的显示列表模式。

(2)“杀死”单元模拟

在有限元模拟中,在某些时间点上一些单元会因为变形过大而被“杀死”,在场景模拟中表现为单元不可见。在OSG中,有很多方法可以实现图形的不可见,比如设置透明色或不使物体进入渲染通道等。本文采用的方法是将“杀死”单元的坐标都设为零。置零后的单元都形成了点,OSG中有微小剔除功能,所以这些点将不可见。需要指出的是,在更细致的场景模拟中,这些“杀死”单元并不是在图形上消失了,而应为破碎或者脱离的碎块。因此,关于“生死单元”的模拟还有待进一步研究。

图6 MSC.M arc模拟结果和OSG桥梁垮塌动画(2.3 s)

图7 MSC.M arc模拟结果和OSG桥梁垮塌动画(7.8 s)

图8 MSC.M arc模拟结果和OSG桥梁垮塌动画(9.4 s)

3.3 垮塌动画实现

根据本文的方法,使用MSC.Marc模型文件在OSG中建立桥梁场景模型,通过MSC.Marc模拟数据实现了桥梁垮塌过程的场景模拟动画。本文将桥梁垮塌的MSC.Marc模拟结果和OSG桥梁垮塌动画进行对照,整个倒塌过程持续时间为9.4 s,三种不同时刻的垮塌情况如图6~图8。

从图6~图8可以看出,基于OSG的桥梁垮塌动画与MSC.Marc有限元的模拟结果是一致的。基于OSG的桥梁垮塌动画具有科学性,同时,在OSG场景中桥梁垮塌动画具有场景模拟的优势。在场景模型中,可以通过纹理、光照技术等增加桥梁模型的真实感,还可以加入垮塌过程中桥梁破碎、烟尘等特效,同时还可以加入地形、周边环境等场景,形成更为逼真的桥梁垮塌场景模拟。

图9 基于OSG的桥梁垮塌漫游场景

4 桥梁垮塌场景漫游

桥梁垮塌事故鉴定及桥梁力学研究都需要对桥梁垮塌过程进行详细的了解,因此要求在虚拟场景中充分地观察桥梁垮塌情况。本文开发了桥梁垮塌场景漫游系统,可以任意路径、任意角度对桥梁垮塌情况进行观察。

漫游系统首先需要定义漫游操作,如按“W”键前进、按“A”键左移等。漫游的过程可以简单描述为触发事件、事件响应和场景改变三个步骤,在OSG中对应的三个类,管理触发事件类osgGA::GUIEventHandler,管理事件响应并联系场景控制的类osgGA::CameraManipulator,场景管理的核心类是osg::Viewer。在OSG中,采用osgGA::Camera-Manipulator作为基类定义Walkthrough类,在类中定义场景控制要素和与场景管理类osg::Viewer的接口,并且重载osgGA::GUIEventHandler中的handle()函数来定义触发事件,如鼠标移动、按键盘等。最终,利用viewer.setCameraManipulator(new Walkthrough())载入Walkthrough类一个实例就可以实现场景漫游操作了。在漫游系统中,还需要设置碰撞检测,以增加漫游的真实感。

本文对基于MSC.Marc数据生产的桥梁垮塌模型赋予简单材质,并且加入水面、地形、天空等环境要素,构成具有一定真实感的场景。将该场景载入到本文开发的桥梁垮塌场景漫游系统,系统中不同的漫游场景见图9。

通过图9可以看出桥梁场景漫游系统可以实现对垮塌桥梁多角度、多方位的观察,同时构建了一个具有真实感和科学性的桥梁垮塌场景,为桥梁垮塌事故鉴定和事故结果展示提供了技术支持。但是,桥梁垮塌模型纹理技术和垮塌特效技术还有待于进一步研究。

5 结论

本文通过MSC.Marc对某钢筋混凝土桥梁垮塌过程进行了模拟,基于Marc数据在OSG平台上实现了桥梁垮塌场景动画,并开发了具有一定真实感的桥梁垮塌场景漫游系统。桥梁场景动画与Marc模拟结果一致,表明文中基于OSG的桥梁垮塌场景动画方法的有效性。基于文中桥梁垮塌漫游系统构建的桥梁垮塌虚拟现实场景,更加科学、真实的还原了桥梁垮塌场景,为准确的桥梁垮塌事故鉴定提供技术支持。

[1]陈明宪.从凤凰堤溪大桥事故谈石拱桥[J].公路工程.2008.06,33(3):1-9.

[2]Zhu,S.,Levinson,D.,Liu,H.and Harder,K.The traffic and behavioral effects of the I-35W Mississippi river bridge collapse[C].Transportation Research Board Annual Meeting 2009 Paper#09-2164,2009.

[3]NIST.Final report on the collapse of world trade centre building 7[R].2008,11.

[4]Baylot,JT.Numerical Simulation of Alternate Scenario for Khobar Towers[C].Proceedings of 68th Shock and Vibration Symposium(Limited Distribution),Hunt Valley MD,1997.

[5]National Transportation Safety Board.Highway Accident Report-Collapse of Interstate 35W Highway Bridge[EB/OL].http://www.ntsb.gov/events/2008/minneapolismn/presentations.htm,2010-8-19.

[6]D.Isobe,M.Tsuda.Seismic collapse analysis of reinforced concrete framed structures using the finite element method[J].Earthquake Engineering and Structural Dynamics,2003,32(13):2027-2046.

[7]陆新征,叶列平,江见鲸等.考虑地震行波效应大型高架桥梁破坏模拟[J].工程抗震与改造加固,2007,29(3):1-5.

[8]Kumar P and Bhandari NM.Non-linear Finite Element A-nalysis of Masonry Arches for Prediction of Collapse Load[J].Structural Engineering International,2005,15(3):166-175.

[9]吴祚宝,肖田元.虚拟制造环境下有限元分析的应用[J].清华大学学报(自然科学版),2000,40(7):66-69.

[10]吴鹏,赵龙,王勇军等.一种于基于有限元的形变模型算法[J].系统仿真学报,2001,13(5):674-677.

[11]Igor N.et al..Real-time simulation of elastic objects in virtual environments using finite element method and precomputed Green's functions,Proceedings of the workshop on virtual environments 2002(Wolfgang S.and Stefan M.,editors),Barcelona,Spain,2002,47-52.

[12]于巍,吴炜煜.三维可视化仿真技术与灾害虚拟表现[J].中国体视学与图像分析,2001,6(2)122-127.

[13]陈俊涛,肖明,郑永兰.用OpenGL开发地下结构工程三维有限元图形系统[J].岩石力学与工程学报,2006,25(5):1015-1020.

[14]肖鹏,刘更代,徐明亮.OpenSceneGraph三维渲染引擎编程指南[M].北京:清华大学出版社,2010.

[15]王锐,钱学雷.OpenSceneGraph三维渲染引擎设计与实践[M].北京:清华大学出版社,2009.

Preliminary Study on Scene Simulation of Bridge Collapse Based on FEM

Xu Zhen,Ren Aizhu,Lu Xinzheng
(Institute of Disaster Prevention and Relief,Department of Civil Engineering,Tsinghua University,Beijing 100084,China)

To replay the process of bridge collapse scientifically and realistically and assist the technical appraisals for bridge collapse accidents,the scene simulation of bridge collapse on VR platform based on FEM is studied in this paper.By the data of FEM simulation of bridge collapse,the bridge scene model and the animation of bridge collapse are realized in 3D graphic engine OSG.Based on the model of bridge collapse,a scene walkthrough system with realistic graphics is developed in this paper.By comparing the animation of bridge collapse in OSG with the FEM simulation of bridge collapse,the methods of creating bridge scene model and realizing the animation of bridge collapse prove to be operative.This paper combines FEM simulation and VR simulation to provide a scientific and realistic virtual scene for the technical appraisals of bridge collapse accidents.

Bridge collapse;Scene simulation;FEM;VR;OSG

TP391.9

A

1674-7461(2010)04-0014-07

交通部西部交通建设科技项目(编号:2008-318-223-43)

许镇(1986-)男,博士生。主要从事虚拟现实技术与结构仿真方面的研究。E-mail:martin31567@gmail.com

猜你喜欢
漫游顶点虚拟现实
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
霹雳漫游堂
REALITY BITES
风口上的虚拟现实
NASA漫游记
虚拟现实技术向科幻小说借灵感
浅谈虚拟现实
边走边看:漫游海底 梦想成真
数学问答