首页 > 范文大全 > 正文

基于面相交的微地震裂缝模型剖切算法研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于面相交的微地震裂缝模型剖切算法研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: “微地震裂缝显示”可以帮助用户直观地了解压裂裂缝空间信息,查清应力方向,评价压裂效果,实时调整压裂改造措施,计算储层改造体积并估算产能。为了更好地观察裂缝的空间形态,采用基于相交的剖切算法实现了对裂缝模型任意方向剖切面的快速截取。算法通过将剖切面分别与裂缝模型的每个面逐一进行求交,并将相交部分进行追踪排序从而得到完整的剖面图。利用OpenGL实现了剖切的仿真,结果表明,该方法能够快速实现对裂缝模型的任意剖切面的截取,提供了更加直观的裂缝分析手段。

关键词: 微地震裂缝片; 剖切; OpenGL

中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2015)08-09-03

Computation method for sectioned of micro-seismic fracture based on surface intersection

Tang Dongyang, Pang Rui, Wang Haibo, Zhao Deming

(Sinopec Geophysical Research Institute, Nanjing, Jiangsu 211103, China)

Abstract: The display of micro-seismic fracture can help users intuitively understand spatial information of the fracture and identify the direction of stress, evaluate the effect of fracture, calculate and estimate the volume of reservoir stimulation capacity. In order to observe the spatial form of cracks better, we use the cut surface intersection algorithm to achieve a fast interception of any section of the fracture model. The algorithm will cut plane through surface cracks with each model separately one by one intersection, and track crossing portions sorting to obtain a complete cross-sectional view. Then we use OpenGL to realize the cut simulation. The results show that this method can quickly achieve the interception of any cracks in the cut plane model, provides a more intuitive means of crack analysis.

Key words: micro-seismic; fracture; sectioned; OpenGL

0 引言

微地震监测技术现在已成为致密储层油气田开发中一项常用的监测技术,通过对检测信号的处理,分析压裂和油气开发过程中裂缝的变化,从而对储层改造效果进行动态评价,为非常规油气开发提供技术支持。为了更好地分析微地震裂缝模型的空间形态,往往需要观察裂缝模型的多个剖切面形状,本文提出了一种快速求取裂缝体模型剖切面的图形算法

1 基本原理

为了清楚的在可视化软件中表达裂缝体的形态,我们在建模方法上选择了较为成熟的三角建模法,也就是用多个三角形面去逼近多种形态的裂缝体模型。如图1所示。

多面体与平面的剖切结果有三种可能,分别是点、边和多边形,如图2所示。但是当多面体为凹体时,剖切的结果就可能会是上述三种结果的任意组合,如图3所示,这里只是举例说明,结果可能会有三个甚至是更多这三个元素的组合。因为点和边对剖面的获取一般没有什么实际意义,所以算法中把结果为顶点和边的情况给予了舍弃,保留的剖面结果为一个或者多个任意的多边形。

图1 三角建模的裂缝体模型

图2 常见的三种剖切结果

图3 凹多面体的剖切结果

2 算法过程

本文针对上述可能出现的剖切结果,设计了一种基于面相交的多面体剖切算法,算法步骤包括以下两步:1.平面与空间多边形求交;2.线段的追踪排序[1]。

2.1 平面与空间多边形求交

这部分是该算法的关键部分,算法通过用剖切平面与多面体的每个面进行求交,将每次求得的相交结果归纳保存到新建的链表中,并排序来获得剖面信息。

由于在实际情况中,平面与大概一半的多面体面都是不相交的,所以为了提高求交的效率,在此处采用了快速判断顶点与平面的位置关系的方法,快速地排除掉多面体中明显不与剖切平面相交的面。如图4所示,设平面方程为ax+by+cz+d=0,平面的正法向量为N(a,b,c)。定义空间一点M(X,Y,Z),并定义距离D=aX+bY+cZ+d,则有:①若D>0,M点处在平面正法向一侧;②若D=0,M点处在平面上;③若D

图4 空间中点与面的位置关系判断

根据平面与多边形顶点的位置关系,可以把平面与空间多边形的位置关系归纳为三种情况:

⑴ 多边形所有顶点都在平面上,此时需要将整个多边形的每个边插入到相交结果链表中;

⑵ 多边形所有顶点都在平面的一侧,,此时无相交部分;

⑶ 多边形的顶点分布在剖切面的两侧,如图5所示,逐边求取多边形与平面的交点,交点包括两种情况:一是边的两个顶点的D值相反则这个边与平面有交点,如图5中的2和4两点;二是D值为零的顶点,如图5中的1和3两点。将求得的交点按照顺序排列,每次取两个点的中点,用射线法[3]判断中点是否在多边形内部,如果是,则将这两点组成的线段保存到链表中,如线段12和34,否则不予保存,如线段23。

图5 多边形与剖切面的空间位置关系

上面算法常常会需要求解空间平面与线段的交点,本文设计了一个巧妙的求交算法,如图6所示,先过线段作一个新平面,求出新建平面与原平面的交线,然后在新平面内求交线与原线段的交点,可以通过坐标变换将新平面变换到与Z轴垂直的平面上,这样平面上所有的点的Z坐标相同,可以把三维问题转换到二维平面解决,所以空间的求交问题就转换为二维线段求交。

图6 空间中线段与平面的交点求解

2.2 线段的追踪排序

求交完成之后,首先判断链表是否为空,如果为空,在表示无任何剖面信息;否则就根据两个边共用一个顶点的原则,对链表中的线段进行追踪排序,从而形成完整的剖面多边形[4]。

如图7所示,首先从链表的第一个节点开始,作为多边形的第一个边,并将其从链表中删除,然后以第一个边的终点为追踪点,在链表中遍历与之相同的点,将相同顶点所在边的另一个顶点作为新的追踪点,并把该边作为第二个边,同时从链表中删除,这样一直下去直到找到边的顶点与首节点起点相同为止,这样就追踪得到了一个完整的多边形,接着要判断此时的链表是否为空,如果为空,则结束追踪,否则继续追踪下一个多边形剖面,直到链表为空为止。

图7 线段的追踪排序

3 剖面显示

根据上述的多面体剖切算法,本文在微软Visual C++6.0开发平台下,使用C++语言编程,利用OpenGL三维显示库[5],实现了上述算法,并通过构建裂缝实例模型来检验了算法的正确性和有效性。

分别建立常用的凸多面体、凹多面体和多级数的球体的裂缝模型为测试对象,如图8所示,黄色图形为剖切平面,红色直线为剖切平面的法向量,右边绿色多边形为剖切的结果。

图8 剖切结果测试

通过以上分析可以看出,该算法在处理大量的数据时,效率上没有任何问题。本文还将代码集成到微地震监测软件中进一步测试,算法可以实现实时的人机交互剖切,算法正确快速,能够达到用户的要求。

4 结束语

本文分析了剖切算法的实现原理,以及对于裂缝解释的意义,设计并实现了该图形分析算法,并实践证明了该算法的正确性和有效性。目前该算法已经在微地震监测软件中得到应用,用户可以快速精确的得到剖切面的几何信息,为用户提供了多角度的分析裂缝片几何形态的手段。同时本文也存在着诸多不足之处,算法的计算效率还有很大的提升空间,接下来还会继续展开下一步的研究

参考文献:

[1] 何陈棋,陆国栋,谭建荣.基于编码与分类技术的任意多边形裁剪新

算法[J].计算机工程与应用,2003.39(21):56-59

[2] 孔德惠,尹宝才,刘媛嫒.对Cohen-Sutherland线段裁剪算法的改进[J].

北京工业大学学报,2002.28(4):483-486

[3] 陆国栋等.基于变窗口过滤技术的线段裁剪中点分割算法[J].计算机

辅助设计与图形学学报,2002.14(6):513-517

[4] 陈涛.适用于凹多边形的Cyrus-Beck改进算法[J].计算机科学,

2006.33(12):217-221

[5] 向世明.OpenGL编程与实例[M].电子工业出版社,2000.