基于ArcEngine的过断层巷道开拓角度三维模拟研究及应用1
- 格式:doc
- 大小:238.00 KB
- 文档页数:10
基于ArcEngine的过断层巷道开拓角度三维模拟方法研究及应用 我国煤矿资源极为丰富,但适于露天开采的煤炭资源比例较少,约占总存量的7%左右。巷道开拓作为井下开采的重要环节,直接影响着我国煤矿的安全水平及生产能力。在煤矿井下巷道开拓中,地质构造是影响巷道掘进的首要因素,而断层则是一种常见的地质构造。当巷道开拓遇到断层时,选择一个合理的开拓角度,对于安全生产,提高开拓效率,减小生产困难程度及制定合适的工作计划,都有非常实际的意义。
(现在的决策方式)ArcEngine是用于构建制定应用的一个完整的嵌入式的GIS组件库。使用ArcEngine可以对区域地质及巷道三维信息进行模拟并对相关巷道开拓数据信息进行计算,使得工程人员对区域三维空间概况的理解更加直观和形象,这将对生产技术的决策更加准确和方便。本文探讨了如何使用C#语言开发基于ArcEngine的过断层巷道角度三维模拟的软件,并使用该软件对生产中的一个实例进行了决策。
1 工程需求分析 断层是构造运动中广泛发育的构造形态。在地壳运动中由于强大的压力和张力超过岩层本身强度,从而对岩层产生破坏作用形成微隙,许多微隙连在一起就形成一个断层面。断层面两侧会产生滑动,根据滑动的方向,可以分为正断层和逆断层。上盘下降,下盘相对上升的断层称为正断层。反之,上盘上升,下盘相对下降的断层称为逆断层。 过断层一般要遵循以下几个原则:看顶板的状况,如顶板较好时,不破坏顶板,而以卧底为宜;如果断层以外不宜采取,就改造断层;挑顶与卧底的坡度还应要与辅助运输、皮带运输以及综掘机的使用等相协调适应;最后还要注意顶底板的坚硬程度等。(《煤矿掘进迎头过断层技术探析》)
由于断层两盘的相对运动,相互挤压,使附近的岩石破碎,会形成与断层面大致平行的破碎带,也称断层破碎带。断层破碎带的宽度有大有小,小者仅几厘米,大者达数公里,甚至更宽,与断层的规模和力学性质有关。(《构造地质学教程》 陆克政 P139)因此在断层附近,煤层会变软,淋水增大,顶板往往比较差,破碎带极易冒落。所以在巷道掘进遇到断层时要在设想顶板状况差,加强支护的前提下,综合考虑其它因素来选择一个最合适的角度进行开拓掘进。
在选择最合适的开拓角度时,要考虑以下几个因素:1.断层产状;2.辅助运输、生产运输及综掘机的使用;3.过断层巷道的开拓距离。在实际生产中,角度越小对于辅助运输、生产运输及综掘机的使用越有利,而过断层巷道的距离则会相应增大,顶板破碎带冒落的概率也会相应增加,这对安全生产、巷道支护及开拓进度都是非常不利的。因此在制定合理的开拓角度前,要对断层产状、开拓后巷道的状况、巷道支护方式等有充分的认识和准备。在过断层前使用一定的工具对巷道开拓进行模拟,使工程人员直观、形象的对巷道状况进行了解从而确定开拓角度是非常实际和必要的。
2 ArcEngine三维模拟研究 目前,用于三维可视化模拟的技术有很多,其中常用的有使用通用的三维建模软件建模、自主开发三维建模系统建模及基于组件技术进行三维模拟的二次开发。在现有的三维建模软件中,3DMAX和SketchUp是常见的两种建模工具。使用这些软件可以建立较为逼真的三维场景,但是由于其固有的设计模式,使得这种建模方式缺少灵活性,编辑能力差,不能使用已知数据来准确的描述区域三维概况,而且不便于更新,更难于进行三维拓扑信息的分析。常用德尔自主开发三维建模系统软件包括OpenGL、Direct3D、Java3D等,这类技术是一项底层开发技术,对开发者的数学基础及计算机图形学技术有较高的要求,而且此类技术开发周期较长、容错率较低,不适合工程生产中变化较多的实际情况。基于组件的三维模拟二次开发技术是将大部分复杂的数学运算都封装在函数库中,开发者只需使用组件库中的函数即可实现复杂的三维可视化及分析功能。由于这些组件使用了模块化设计的开发理念,开发者只需理解接口函数的如何使用既可以迅速和高效的开发出适合工程应用的三维模拟软件,这也是二次开发技术近年来迅速发展的重要原因。在组件二次开发技术中,最常见的就是ESRI公司的ArcEngine。ArcEngine具备丰富的GIS空间分析功能,同时提供了用于许多编程语言进行二次开发的接口。
现在我们探讨如何使用C#语言开发基于ArcEngine的过断层巷道开拓角度三维模拟及相关开拓数据的计算方法,从而实现区域地质概况及巷道自动建模和三维模拟显示。
建模 在三维场景实现上,首先要对现实场景进行建模,建模是对被处理的对象进行设计、分析、模拟和研究的基础。ArcEngine提供了MultiPatch元素类型,用于对三维物体的表面进行描述。它包括四种三维表面类型:
TriangleStrip(三角带) TriangleStrip是按照集合中的三维点顺序生成的一个三角带,如图1所示,按照顺序有(0,1,2,),(1,2,3),(2,3,4),(3,4,5)四个三角形集合构成的一个三维表面。
图1 TriangleFan(三角形扇面)
0 1 2 5 4 3 X Y
Z TriangleFan是以三角形集合中第一个点作为所有三角形的起点,然后按照三角形的点位顺序依次构成三角形扇面。如图2所示,按照顺序有(0,1,2),(0,2,3),(0,3,1)构成的三维表面。
图2 Triangles(三角形) Triangles是由单个的或相互连接的多个三角形构成的集合,每个三角形必须有它单独的拓扑信息。如图3所示,由(0,1,2),(3,4,5),(3,5,7)构成的三维表面。
图3 Ring(环组)
3 2 1
0
X Y
Z
Y X Z
7 5 4 3 2 1 0 Ring也是由三维点组成的集合,它常用于构建三维对象特殊的元素,如建筑物的窗体等。如图4所示,为环组构成的三维图形,其中区域A为外部环组集合,区域B为内部环组集合。
图4 在工程生产中,我们只需模拟出小区域内断层地质概况拟及巷道状况,因此将场景简化为只由直线构成的规则图形即可。要将场景展示出来,只需将场景表面的、供使用者观察的那部分表现出来即可,而有些地方需要不连续或需要单独表现的元素,因此我们选择使用灵活性强大的Triangles类型来对场景进行建模,这样,建模的过程其实就是将物体表面栅格化的过程。在实际操作中,由于很多区域由四边形构成,所以我们先分析构成每个区域四边形的信息。
现以下盘开拓时过断层巷道角度模拟为例进行建模。
A B 图5 如图5所示,这是下盘沿底板施工中遇到正断层,向上施工寻找上盘底板的示例。其中,构成各区域的四边形集合如下表所示。
分析完构成每个区域四边形拓扑信息后,需要将这些信息组织存储起来,对于空间中每个坐标点的空间信息可以使用图6所示的结构体进行储存,对于分析出的四边形拓扑信息可以使用图7所示的结构体进行储存。
图6 图7 由于Triangles类型支持的是由多个三角形构成的集合,因此还要将划分的四边形区域进行栅格化,即将一个四边形按照特定的规则划分为两个三角形。因为Triangles类型中每个三角形要使用它自己的索引,因此栅格化完毕后还要将三角形的每个点的索引按照顺序重新命名。栅格化分代码如图8所示,索引重命名代码如图9所示。 图8
图9 栅格化完毕后,建模即完成,使用栅格化形成的三角形集合就可以表现示例中的场景。
渲染与实体创建 要将建模的场景形象、逼真的展现出来,还需要对不同区域进行不同颜色的渲染。在本工程中,我们将岩层使用黄颜色来渲染,煤层为使用黑颜色来渲染,巷道顶板、底板、两帮我们使用红色来渲染。
ArcEngine提供了IGeneralMultiPatchCreator接口来实体定义法向、材质和属性信息从而创建一个有纹理贴图的MultiPatch对象。其中,IGeometryMaterial函数用于构建渲染的材质,在工程中我们使用了外部图片作为材质引用对象,创建方法如图所示。
材质创建完成后,需要将IGeometryMaterial对象设置为Triangles属性。然后将上一步建模中生成的TIN信息赋予到IGeometryMaterial对象中。最后使用CreateMautipatch方法进行创建实体对象即可。在此过程中要注意将每个三角网格区域的渲染颜色分别设置。
场景模拟 当场景创建完毕后,我们使用ArcEngine提供的ArcSenceControl控件来进行显示。最终效果如图所示。
开拓信息计算 当开拓角度模拟完毕后,还要将相关的开拓数据计算出来,以供工程人员进行开拓角度的合理行评定。在生产中通常要考虑巷道穿层开拓距离、穿层开拓土方量的信息。
如图所示,ecdf为巷道中线,ab为断层地层断距,β为模拟的巷道开拓角度,则巷道穿层距离cd有:
·tan()cdabβ
巷道为等腰梯形,横向剖面如上图所示。则穿层巷道土方量有: ()?·2fgihfiVcd+
3 工程应用 (结果表明,在断层信息正确的前提下,本软件可以准确的模拟出过断层时的工程概况,计算出的开拓数据与实际工程基本相符,效果较好。(放到结论))
e f a
c
d
γ β
α
j i h
g f b