田 源,杨哲飚,许 镇,陆新征
(1.土木工程安全与耐久教育部重点实验室,清华大学 土木工程系,北京 100084;2.北京科技大学 土木与资源工程学院,北京 100083)
地震通常会引起建筑倒塌并造成大量人员伤亡与不良社会影响。为提升城市建筑群的抗震能力,降低地震灾害损失,提高应急救援效率,城市尺度的建筑震害分析在近年来得到迅速发展[1-7]。城市建筑群震害分析不仅面向土木工程及相关领域的研究人员,也可以为城市规划、管理、应急等相关部门的人员提供重要的决策参考与技术支撑,具有重要的科学价值与工程意义。但是,由于城市管理者并非都具备足够的土木工程专业知识,通常难以直观理解相对专业的分析结果。因此,有必要研发真实、直观、有效的城市建筑群震害情境可视化技术,构建高真实感的城市震害情境,为管理部门制定救援队伍和物资的调配决策等提供支撑与依据,进而提升震后救灾效率。
目前,已有一些学者基于成熟的软件平台开展城市建筑震害三维场景可视化研究[8-12]。例如,杨泽等[11]基于ArcGIS和三维建模软件,在3ds Max等软件中建立三维破坏模型,并结合GIS建筑位置信息,实现了区域建筑震害三维可视化;孙柏涛等[12]在建筑GIS数据的基础上,利用3ds Max建立了各震害状态的建筑模型,生成了城市中单栋建筑破坏场景。
为提高建筑震害可视化的效果并实现功能扩展,一些学者自主研发了各类城市建筑震害三维场景可视化方法[13-17]。例如,Yamashita等[13]将2D 建筑平面资料进行竖向拉伸获得三维模型,并对不同损伤程度建筑赋予不同颜色,实现城市建筑群的震害场景可视化;Xu等[17]利用无人机航拍建立了城市建筑倾斜摄影测量模型,并提出了建筑震害场景动态更新方法,避免了普通3D GIS模型获取难、建筑表面纹理缺失等问题,为高真实感城市震害场景的建立提供了参考。
上述研究均在城市震害场景高真实感可视化中取得了显著进展,但是很少能够在区域尺度上实现建筑地震倒塌过程的动态展示。而实际的城市区域内,建筑众多且功能各异,新老建筑混杂,繁荣商业区、老旧建筑区等处建筑的动力特性各不相同,部分建筑由于设计不合理等多方面原因会在地震中发生倒塌。建筑的倒塌一方面会影响建筑最终的废墟分布形式与道路通行能力判断,另一方面会引起大量烟尘,进而严重干扰道路的可见性。因此,建筑地震倒塌的可视化对震前救援演习和救援预案制定等都具有十分重要的意义,有必要开展考虑建筑倒塌行为的城市建筑震害场景可视化。
Xu等[17]的研究表明,倾斜摄影模型的应用可以显著提升城市建筑震害场景的真实感。因此,本文将基于Xu等[17]提出的基于倾斜摄影模型的城市建筑群震害可视化框架,研究城市建筑群地震倒塌过程与倒塌烟尘的动态可视化方法,并对深圳市宝安区开展案例分析,进而阐述所提出方法的实际效果。
结合Xu等[17]的研究,本文采用如图1所示的城市建筑震害可视化框架,主要包括轻量化建模、建筑单体识别以及动态响应可视化。以下将首先针对Xu等[17]在轻量化建模、建筑单体识别及未倒塌建筑动态响应可视化方面的已有工作进行简单概括,以便读者对该框架有更全面的了解。倒塌建筑的动态响应可视化将在第2、3节进行详细阐述。
图1 基于倾斜摄影的城市建筑群震害场景可视化框架Fig.1 Framework for the visualization of seismic damage of urban building clusters based on oblique aerial photography
此环节主要是利用无人机开展城市的倾斜摄影测量,并对获取的数据进行轻量化建模。具体地,在实际的操作中,无人机采用S形飞行路线从不同角度获取的城市图片会有较多的重叠区域。为了降低后续处理的数据运算量,需要首先对倾斜摄影数据进行稀疏化,然后采用ContextCapture等软件开展3D城市模型的集群并行建模。建模过程中,可以根据实际需要,选取合适的精细程度,提高场景渲染效率。
轻量化建模得到的是整个城市的模型,包含了建筑、道路、树木等各类元素,需要进一步从中识别与提取每栋建筑的模型。具体实现方法为:首先将GIS数据与3D城市模型进行关联,实现空间位置的对应;然后,根据城市GIS数据确定建筑底部轮廓,并结合建筑高度生成建筑的外包络面;采用布尔运算,将位于外包络面内的建筑模型从3D城市模型中提取出来。
区域建筑震害的分析结果可以通过多种方式获得,但最终都需要提出建筑响应与3D建筑模型的数据映射方法。对于当前时刻尚未发生倒塌的建筑,可以采用Lu and Guan[2]提出的非线性多自由度(MDOF)模型开展时程分析,获取每栋建筑的楼层位移时程。对于每层楼面高度处的所有点,其位移可直接采用MDOF分析输出的结果;对于两层楼面之间的点,其位移可采用相邻两层楼面位移的插值结果。
在拥有每栋建筑的动态模型后,利用开源图形引擎OpenSceneGraph(OSG)实现建筑群地震响应动态可视化。OSG提供了回调机制(callback),可以在每一帧渲染的时候,对图形进行一系列操作,使场景根据时间或事件进行调整。因此,根据上述建筑模型与时程分析结果的时空映射关系,采用OSG回调机制逐帧更新建筑倾斜摄影测量模型,即可实现城市建筑震害的动态展示。
建立城市尺度地震倒塌情境的主要目的是为救援队伍和物资的调配决策提供依据。由于倒塌建筑可能埋压大量人员,而倒塌的类型又影响救援人员数量和设备类型,因此在情境模拟中需要给出特定地震下发生倒塌建筑所处的位置以及倒塌类型。结构的倒塌模式受到地面运动时程、结构类型等诸多因素影响,倒塌部位可能出现在楼层局部或楼层整体。但是,由于城市尺度模拟无法获得每栋建筑的详细信息,难以进行构件层次的精细化倒塌模拟。因此,本文基于MDOF模型的分析结果,结合历史震害资料,估计每栋建筑可能发生的倒塌类型。需要说明的是,由于采用了MDOF模型,所以本方法只能考虑楼层整体破坏的模式,而无法考虑楼层局部破坏的形态,后者需要采用构件级别的精细模型开展分析与可视化。
(1)框架结构
一般而言,框架结构的抗震性能较好,地震中主体结构的破坏一般较为轻微,而填充墙等非结构构件的破坏较为严重[18]。部分框架由于地震强度过大或者结构设计不合理,会发生底部一层倒塌、底部数层倒塌或者中间层倒塌等(如图2)。
图2 框架结构典型地震倒塌模式Fig.2 Typical seismic collapse modes of frame structures
(2)砌体结构
砌体结构通常在发震区域内数量最多,震害也较为严重[18]。在地震中发生倒塌的砌体结构大多抗震体系单薄,部分砌体结构未设置圈梁和构造柱,或者未拉结预制楼板[21]。砌体结构倒塌一般有2种情况(如图3):1)竖向完全垮塌形成松散型废墟;2)底部楼层倒塌。
图3 砌体结构典型地震倒塌模式Fig.3 Typical seismic collapse modes of masonry structures
(3)剪力墙结构
剪力墙结构的抗侧刚度和承载力较大,在地震中表现出了良好的抗震性能。部分剪力墙结构由于设计不合理,在较大的地震作用下会发生整体倾斜倒塌。图4所示分别是2010年智利地震和2018年花莲地震中出现整体倾斜倒塌的剪力墙结构[23]。
图4 剪力墙结构整体倾斜倒塌Fig.4 The overturning collapse mode of shear wall structures
通过总结历史震害情况,文中主要考虑地震中建筑可能发生的5种倒塌类型,分别是底部一层倒塌、底部数层倒塌、中间层倒塌、竖向垮塌以及整体倾斜倒塌。其中,中间层倒塌一般发生于框架结构,竖向垮塌一般发生于砌体结构,整体倾斜倒塌一般发生于剪力墙结构,框架结构和砌体结构均可能发生底部一层或数层倒塌。
本节将针对上述5种典型倒塌类型,提供一种用于可视化的建筑倒塌过程的坐标变化计算方法。需要说明的是,在本研究中,具体倒塌楼层根据MDOF模型计算结果来确定;建筑的倒塌方向则根据位移响应和倒塌时刻来确定。
以下假设建筑底部z坐标为0,初始倒塌时刻为0。设一栋建筑物共有n层,第i层层高为hi,第i层顶部标高为Hi,并取H0= 0。设建筑倒塌过程共涵盖m个时间步,单位时间间隔(即每帧动画的时间间隔)为Δt。以下将给出从建筑倒塌开始第j个时间步的模型坐标。
对建筑中任一点P,设其初始位置坐标为(xP,yP,zP),在任意时刻t的位置坐标为(xP(t),yP(t),zP(t)),速度为vP(t) = (vP,x(t),vP,y(t),vP,z(t))。则点P在第j个时间步的位置坐标可表示为:
(1)
基于式(1)及1.3中的数据映射方法和OSG回调机制,即可逐帧更新建筑倾斜摄影测量模型,实现城市建筑震害的动态展示。以下将基于一定的假设,提供若干可用于实际可视化操作的位置坐标计算方法。在将来,若对于建筑的倒塌过程具有更为精准、简单的表达形式,也可直接替换式(1)中的vP进行每帧位置坐标求解。
(1)底部一层倒塌
对于底部一层发生倒塌的建筑,假设建筑模型各几何点的x坐标和y坐标不发生变化,只有z坐标发生变化,即vP,x(t) = 0,vP,y(t) = 0。
若认为不同高度处坠落速度相等且不随时间变化,则
(2)
若认为不同高度处坠落速度相等且随时间线性增长,则
(3)
该种倒塌类别在倒塌初始和结束时刻的可视化效果如图5所示。
图5 建筑底部一层倒塌可视化Fig.5 Visualization of the collapse of the first story
(2)底部数层倒塌或竖向垮塌
对于底部数层倒塌或竖向垮塌,仍假设建筑模型各几何点的x坐标和y坐标不发生变化,只有z坐标发生变化。将倒塌楼层数记作r(2 ≤r≤n)。
若认为每层相继倒塌、坠落速度相等且不随时间变化,则
(4)
若认为每层相继倒塌、不同高度处坠落速度相等且随时间线性增长,则
(5)
以建筑底部数层倒塌为例,该种倒塌类别在倒塌初始和结束时刻的可视化效果如图6所示。
图6 建筑底部数层倒塌可视化Fig.6 Visualization of the collapse of multiple stories at the bottom
(3)中间层倒塌
中间层倒塌一般发生于框架结构,假设建筑中间第k层发生倒塌 (1 若认为倒塌楼层及以上部位的坠落速度相同且不随时间变化,则 (6) 若认为不同高度处坠落速度相等且随时间线性增长,则 (7) 该种倒塌类别在倒塌初始和结束时刻的可视化效果如图7所示。 图7 建筑中间层倒塌可视化Fig.7 Visualization of the collapse of the story at the middle of the building (4)整体倾斜倒塌 整体倾斜倒塌一般发生于剪力墙结构,该类型倒塌发生时,建筑模型围绕旋转轴倾斜,模型所有几何点的坐标均会发生变化。假设建筑绕轴Q的转动角速度大小为ω(t)(绕轴Q沿右手螺旋方向为正),在第j个时间步时转过的角度为θj,倒塌结束时倾斜角度为θm(可取为π/2)。若轴Q的单位方向向量为q(qx,qy,qz),并任取轴上一点T(tx,ty,tz)。则有如下关系: (8) (xP(jΔt),yP(jΔt),zP(jΔt), 1)=(xP,yP,zP,1)A[M(q,θj)]TA-1. (9) 其中, (10) (11) 特别地,若轴Q的方向与x轴平行且方向一致,即q= (1, 0, 0),则 (12) (13) 若认为转动角速度ω(t)为常数,则 (14) 若认为转动角速度随时间线性增长,则 (15) 该种倒塌类别在倒塌初始和结束时刻的可视化效果如图8所示。 图8 建筑整体倾斜倒塌可视化Fig.8 Visualization of the overturning of the building 建筑在地震倒塌过程中会产生烟尘,OSG提供的粒子系统可以用于模拟倒塌烟尘效果[26],在以往桥梁倒塌研究中实现了良好的可视化效果[27]。本研究的烟尘建模分为2个步骤,分别是粒子系统状态设置以及粒子系统动态更新。 粒子系统提供了自定义的状态设置函数,主要包括3个部分:(1)粒子模板(osgParticle∷Particle),用于控制场景中每个粒子的特性,如粒子大小、颜色、生命周期等;(2)粒子系统放射器(osgParticle∷ModularEmitter),用于控制场景中粒子的状态,包括粒子放射器的位置、形状、方向等;(3)粒子系统编程器(osgParticle∷Program),用于控制粒子在生命周期内的运动,包括osgParticle∷AccelOperator模拟重力加速度以及osgParticle∷FluidFrictionOperator模拟空气阻力等。 具体地,1)在粒子模板方面,根据已有研究,将粒子半径设置为0.05 m[26],将粒子生命周期设置为70 s[27],能够较好地模拟烟尘效果。由于烟尘是灰色的,因此粒子颜色应采用灰度值,通过在OSG中的调试,灰度值取0.3~0.4较合适。 2)在粒子系统放射器方面,放射器需要沿建筑发生倒塌的楼层附近布置,因此需要设置osgParticle∷MultiSegmentPlacer,间隔布置粒子放射器。由于场景中重力的存在,粒子在发射后会逐渐向下(z轴负向)运动,因此将粒子发射方向设置为z轴正向,利用重力实现烟尘弥漫的效果。 3)在粒子系统编程器方面,首先创建重力模拟对象,粒子系统默认取值9.8 m/s2的重力加速度。此外,参考肖鹏等[26]提出的方法模拟空气阻力,其中空气黏度(Fluid Viscosity)设置为1.8×10-5Pa·s,空气密度(FluidDensity)设置为1.29 kg/m3。为降低计算资源消耗,本文未考虑不同粒子之间的碰撞与相互影响,所生成的情境是不同粒子直接叠加的效果。 需要说明的是,为更加真实的反映实际烟尘情况,对于不同的建筑倒塌形式,其粒子系统参数应有所不同。由于倒塌方式的不同,所产生的烟尘大小和形式会在设定的参数中得到反映。但是目前由于缺乏相应的数据支撑,本文对各类倒塌形式均采用了相同的粒子系统参数设定(烟气出现的时间除外,该参数需要根据实际的倒塌时刻判定)。但文中提出的框架与实现方法仍然适用,在有相关的深入研究和支撑后,仅需做出相应更改即可。 烟尘伴随建筑倒塌出现和消失,本研究采用粒子系统动态更新方法模拟该过程。与建筑倾斜摄影测量模型动态更新的方式不同,粒子系统是直接设置参数建模并添加到osg∷Node中。粒子系统的更新是在建筑倒塌渲染过程中执行的,因此必须采用OSG提供的节点回调机制(NodeCallback)。本研究基于计算得到的建筑倒塌起止时刻,在回调函数中对场景的帧进行计数,在对应时刻显示和隐藏粒子系统。 具体地,在倒塌发生时所在的帧显示粒子系统,在倒塌结束时所在的帧隐藏粒子系统。需要注意的是,由于建筑范围较大,单个粒子系统难以实现良好的可视化效果,因此需要将多个粒子系统组成一个OSG节点。由于城市中建筑数量众多,倒塌可视化时也会使用大量的粒子系统,这会消耗大量的计算机内存。因此本研究采用setAllChildrenOff()和setAllChildrenOn()函数完成粒子系统节点的隐藏和显示[26],这两个函数属于osg∷Switch管理类,类似于控制节点的开关。在倒塌开始前以及结束后,粒子系统需要被隐藏,采用osg∷Switch来管理节点,隐藏时不耗费内存,相比于节点(osg∷Node)自带的SetNodeMask()函数具有明显的优势。原因在于,SetNodeMask()函数只是隐藏了节点,粒子系统节点仍然会在场景中绘制,隐藏时会继续消耗计算机内存。 图9是结合烟尘效果的建筑底部数层倒塌过程展示。在建筑未发生倒塌时,无烟尘存在(图9(a));建筑开始发生倒塌时,烟尘逐渐出现(图9(b));建筑倒塌过程中,底部楼层烟尘弥漫(图9(c));建筑底部数层倒塌结束后,烟尘逐渐消失(图9(d))。 图9 建筑倒塌烟尘可视化Fig.9 Visualization of the collapse-induced smoke 本节以深圳市宝安区为例,具体展示本文提出的城市地震灾害情境模拟方法。该区域内建筑的抗震设防烈度为7度[28],区内人员密集,住宅区、工业区、商业区、老旧建筑区等各类建筑群混杂,存在严重的地震灾害风险。本研究选取宝安区广深公路沿线的建筑和环境倾斜摄影测量模型(总面积约2 km2),开展城市区域地震灾害场景的可视化。 首先,根据城市GIS数据建立建筑非线性MDOF模型。然后,选用被广泛采用的El Centro波作为地面运动输入。为展示城市建筑群地震倒塌场景,本节将地面运动峰值加速度调幅至800 cm/s2。基于上述建筑模型与地面运动输入,采用非线性时程分析可以获得城市建筑群的地震响应时程结果,并确定发生倒塌的建筑及其对应的倒塌时刻。最后,采用本文提出的方法开展了该区域所有建筑的地震动态响应可视化。 图10为该区域在某一时刻的城市震害场景,图11给出了局部视角的建筑群震害情况及倒塌过程(建筑水平位移放大200倍)。从图中可以发现,该可视化结果可以很好地展示城市建筑群在地震作用下的变形行为,例如图中的建筑A,可以很明显的展示其动力响应。另外,该方法还可以对倒塌建筑所伴随的烟尘效果进行高真实感展示。该案例研究表明了本研究方法的实用性,可以在城市防灾方面为城市管理者提供良好的参考依据和技术支撑。本方法计算结果的精度仍需进一步探索有效手段开展深入研究。 图10 地震灾害场景(全局视角)Fig.10 Sesimic damage scenario (global view) 图11 地震灾害场景(局部视角)Fig.11 Seismic damage scenario (local view) 本研究基于倾斜摄影的城市建筑群震害可视化框架,重点针对城市建筑群地震倒塌的情境构建开展了研究,主要包括: (1)基于历史震害资料,归纳总结了5种典型的城市建筑倒塌类型,进而提出了其倒塌运动轨迹数据映射方法; (2)基于OSG提供的粒子系统提出了倒塌建筑的烟尘效果可视化方法; (3)以深圳宝安区为例开展了案例分析,结果表明,本研究提出的可视化方法可以实现城市建筑群地震倒塌情境的高真实感可视化,能够为城市防灾管理提供重要参考与技术支撑。3 倒塌建筑的烟尘效果
3.1 粒子系统状态设置
3.2 粒子系统动态更新
4 案例研究
5 结论