CN111815762B - 一种页岩气压裂裂缝延展过程的三维仿真可视化方法 - Google Patents
一种页岩气压裂裂缝延展过程的三维仿真可视化方法 Download PDFInfo
- Publication number
- CN111815762B CN111815762B CN202010683285.9A CN202010683285A CN111815762B CN 111815762 B CN111815762 B CN 111815762B CN 202010683285 A CN202010683285 A CN 202010683285A CN 111815762 B CN111815762 B CN 111815762B
- Authority
- CN
- China
- Prior art keywords
- pnode
- crack
- width
- node
- pset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000004088 simulation Methods 0.000 title claims abstract description 48
- 238000007794 visualization technique Methods 0.000 title claims abstract description 8
- 238000012800 visualization Methods 0.000 claims abstract description 12
- 206010017076 Fracture Diseases 0.000 claims description 87
- 208000010392 Bone Fractures Diseases 0.000 claims description 76
- 238000010276 construction Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000000926 separation method Methods 0.000 claims description 5
- 230000009191 jumping Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- E—FIXED CONSTRUCTIONS
- E21—EARTH OR ROCK DRILLING; MINING
- E21B—EARTH OR ROCK DRILLING; OBTAINING OIL, GAS, WATER, SOLUBLE OR MELTABLE MATERIALS OR A SLURRY OF MINERALS FROM WELLS
- E21B43/00—Methods or apparatus for obtaining oil, gas, water, soluble or meltable materials or a slurry of minerals from wells
- E21B43/25—Methods for stimulating production
- E21B43/26—Methods for stimulating production by forming crevices or fractures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Geology (AREA)
- Mining & Mineral Resources (AREA)
- Geometry (AREA)
- Geochemistry & Mineralogy (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Fluid Mechanics (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种页岩气压裂裂缝延展过程的三维仿真可视化方法,包括如下步骤:S1、设计裂缝三维可视化模型,该模型由主裂缝、分支裂缝和次生裂缝构成;S2、存储裂缝延展模型计算得到的三维裂缝宽度仿真数据;S3、定义节点数据结构;S4、检测并分离出各簇的裂缝宽度仿真数据;S5、计算每个簇的主裂缝起点和终点;S6、计算每个簇的主裂缝延展轨迹;S7、计算每个簇的分支裂缝延展轨迹;S8、计算每个簇的次生裂缝延展轨迹;S9、绘制各簇主裂缝;S10、绘制各簇分支裂缝和次生裂缝。通过本发明方法来仿真裂缝几何形态,可以展现裂缝逐渐延展的生成过程,从而可以解决裂缝密度分布不均衡问题。
Description
技术领域
本发明涉及数据可视化领域,具体涉及一种页岩气压裂裂缝延展 过程的三维仿真可视化方法。
背景技术
目前,油气开采可视化技术为开采施工过程优化提供有效判定依 据。由于页岩气开采常采用水力压裂技术,压裂过程发生在地下4000 米左右的页岩层,页岩的人工裂缝生成及延展过程不可见。现有数值 仿真技术对人工裂缝进行开度计算,并主要以热力图的形式对裂缝区 域及其宽度进行图形化展示。目前比较常用的展示方法主要是二维热 力图和三维网格热力图,前者仅能体现压裂裂缝部分剖面信息,后者 虽然可以体现压裂裂缝的整体信息,但存在网格区域部分遮挡问题, 难以进行全局观察。而且,热力图无法模拟裂缝几何形态,无法动态 呈现裂缝的延展过程。
发明内容
针对现有技术的不足,本发明旨在提供一种页岩气压裂裂缝延展 过程的三维仿真可视化方法,用以仿真裂缝几何形态,展现裂缝逐渐 延展的生成过程,可解决裂缝密度分布不均衡问题。
为了实现上述目的,本发明采用如下技术方案:
一种页岩气压裂裂缝延展过程的三维仿真可视化方法,包括如下 步骤:
S1、设计裂缝三维可视化模型,该模型由主裂缝、分支裂缝和次 生裂缝构成;
S2、存储裂缝延展模型计算得到的三维裂缝宽度仿真数据;
S3、定义节点数据结构;
S4、检测并分离出各簇的裂缝宽度仿真数据;
S5、计算每个簇的主裂缝起点和终点;
S6、计算每个簇的主裂缝延展轨迹;
S7、计算每个簇的分支裂缝延展轨迹;
S8、计算每个簇的次生裂缝延展轨迹;
S9、绘制各簇主裂缝;
S10、绘制各簇分支裂缝和次生裂缝。
进一步地,步骤S1中,所述裂缝三维可视化模型,由主裂缝、 分支裂缝和次生裂缝构成,每个簇只有一个主裂缝,主裂缝起始于 模拟井筒工作段射孔坐标位置,沿三维裂缝宽度仿真数据的主裂缝 方向延展至裂缝宽度仿真数据中裂缝宽度为0的位置;分支裂缝从主裂缝上生成,每条分支裂缝起始于主裂缝轨迹,与主裂缝成一定 夹角,并延伸至裂缝宽度值为0的位置;次生裂缝从分支裂缝上生 成,每条次生裂缝起始于分支裂缝轨迹,与分支裂缝成一定夹角, 并延伸至裂缝宽度值为0的位置。
进一步地,步骤S2中,三维裂缝宽度仿真数据的存储规则为: 将每条裂缝的宽度值记入三维数组PSetR={width(x,y,z)|(x,y,z)∈R};其中, R是裂缝所属的三维有限空间,width(x,y,z)表示裂缝在(x,y,z)处的裂缝 宽度值。
进一步地,步骤S3中,所述节点数据结构为:
Typedef struct pNode{
P p;
real width;
struct pNode*next;
boolean mark;
}
其中,p表示节点三维坐标,width表示该节点的裂缝宽度值, next指向下一个pNode节点,mark表示该节点是否被访问过。
进一步地,步骤S4中,三维裂缝宽度仿真数据分为两种情况, 第一种情况是簇间存在明显间隔,第二种情况是簇间无明显间隔;簇 间存在明显间隔时,簇间存在大量裂缝宽度值为0的元素,则裂缝宽 度值非零的连通区域同属一个簇,此时,将同属一个簇的裂缝宽度仿 真数据分离出来即可;当簇间无明显间隔时,相邻簇的裂缝宽度值非 零区域连通,此时,寻找三维空间中裂缝宽度值非零的鞍点处,沿其 最快下降方向进行切分,实现对裂缝宽度仿真数据的分离;
分离得到的每簇裂缝宽度仿真数据单独存储,记第i簇的裂缝宽 度仿真数据为:
Ri为第i簇裂缝所属的三维有限空间。
更进一步地,步骤S5中,每个簇的主裂缝起点和终点的计算过 程为:
其中:
分别表示点Xstart、Ystart、 Zstart处的裂缝宽度值,约束条件 分别表示点Xstart、Ystart、Zstart处的裂缝宽度值要大于0, 分别为符合约束的x值最小的点、符 合约束的y值最小的点、符合约束的 z值最小的点;分别表示点Xend、 Yend、Zend处的裂缝宽度值,约束条件 分别表示点Xend、Yend、Zend处的裂缝宽度值要大于0, 分别为符合约束的x值最大的点、符 合约束的y值最大的点、符合约束的z 值最大的点;
各簇的主裂缝长度的目标函数为:
更进一步地,步骤S6中,每个簇的主裂缝延展轨迹的具体计算 过程为:
若任一节点p(x,y,z)∈L,则p的6邻域点集为:
定义主裂缝上的点p的有效域为:
PSetmajorDomain(p)={p}∪(PSet6-neighbour(p)-L);
则各个簇的主裂缝的延展轨迹节点构造过程为:
S6.1、构造主裂缝的起始pNode节点pnode:令 pnode.next=null,pnode.mark=false;pnode.p表示 节点pnode的坐标,pnode.width表示主裂缝在节点pnode处的宽度, pnode.next表示节点pnode的下一个节点,pnode.mark表示节点pnode是 否有被访问过;表示主裂缝在起点处的裂缝宽度值;
S6.5、令pnodenext.p=p′next,pnodenext.next=null,pnodenext.mark=false;pnodenext.p表示节点pnodenext的坐标,pnodenext.next表示节点pnodenext的下 一个节点,pnodenext.mark表示节点pnodenext是否被访问过;
S6.6、令pnode.next=pnodenext,pnode=pnodenext,返回步骤S6.2。
更进一步地,步骤S7的具体过程为:
S7.1、从PSetmajorFrac(Ri)中以概率probbranch=0.7选取分支裂缝节点的 首节点并加入PSetbranchFrac(Ri)中:
PSetbranchFrac(Ri)={pnodej|(pnodej∈PSetmajorFrac(Ri))∧(randomj≤probbranch)};
其中PSetbranchFrac(Ri)表示分支裂缝的点集;randomj∈[0,1]表示第j 个随机数;probbranch表示将节点pnodej选为分支裂缝首节点的概率值;
S7.2、遍历PSetbranchFrac(Ri)的每一个节点pnode,令pnode.next=null, 再生成随机数randomnum∈[1,4],复制randomnum个pnode加入 PSetbranchFrac(Ri);
S7.3、若PSetbranchFrac(Ri)中存在mark值为false的节点元素,则读 取该节点pnode并继续S7.4,否则流程结束;
S7.4、令pnode.mark=true;
S7.5、记p′为节点pnode的规范化齐次坐标,计算下一节点的齐 次坐标p′next=p′·Tt;
S7.6、若pnode.width>0,则根据p′next得到三维坐标pnext,构造 pnodenext=(pnext,widthpnext,null,false)并跳转至步骤S7.7;否则返回S7.3;
S7.7、将pnodenext加入PSetbranchFrac(Ri),令pnode.next=pnodenext,返回 步骤S7.3。
更进一步地,步骤S8的具体过程为:
S8.1、从PSetbranchFrac(Ri)中以概率probsubbranch=0.5选取次生裂缝节点 的首节点并加入PSetsubbranchFrac(Ri)中:
PSetsubbranchFrac(Ri)={pnodej|(pnodej∈PSetbranchFrac(Ri))∧(randomj≤probsubbranch)};
其中,PSetsubbranchFrac(Ri)表示次生裂缝节点的点集,randomj∈[0,1]表 示第j个随机数;probsubbranch表示将节点pnodej选为次生裂缝首节点 的概率值;
S8.2、遍历PSetsubbranchFrac(Ri)的每一个节点pnode,令pnode.next=null, 再生成随机数randomnum∈[1,3],复制randomnum个pnode加入 PSetsubbranchFrac(Ri);
S8.3、若PSetsubbranchFrac(Ri)中存在mark值为false的节点元素,则 读取该节点pnode并继续步骤S8.4,否则该流程结束;
S8.4、令pnode.mark=true;
S8.5、记p′为pnode的规范化齐次坐标,计算下一节点的齐次坐 标p′next=p′·Tt;
S8.6、若pnode.width>0,则根据p′next得到三维坐标pnext,构造 pnodenext=(pnext,widthpnext,null,false)并跳转至步骤S8.7;否则返回步骤 S8.3;
S8.7、令pnode.next=pnodenext,将pnodenext加入PSetsubbranchFrac(Ri),以 20%的概率,复制pnodenext并加入PSetsubbranchFrac(Ri),返回步骤S8.3。
S9.1、若PSetmajorFrac(Ri)中存在mark值为false的节点元素,则读 取该节点pnode并继续S9.2,否则本绘制流程结束;
S9.2、令pnode.mark=true;
S9.3、若pnode.next为null,则返回S9.1,否则继续S9.4;
S9.4、连线pnode.p与pnodenext.p,pnode.p处的显示宽度为 k×pnode.width,pnodenext.p处显示宽度为k×pnodenext.width,两点间线宽 均匀渐变,返回S9.1;pnodenext.width表示裂缝在点pnodenext处的裂缝宽 度;
所述步骤S10中,首先将PSetbranchFrac(Ri)和PSetsubbranchFrac(Ri)中每个 元素的mark赋值为false;
先绘制分支裂缝;绘制的具体过程如下:
S10.1、若PSetbranchFrac(Ri)中存在mark值为false的节点元素,则 读取该节点pnode并继续S10.2,否则分支裂缝绘制流程结束;
S10.2、令pnode.mark=true;
S10.3、若pnode.next为null,则返回S10.1,否则继续S10.4;
S10.4、连线pnode.p与pnodenext.p,pnode.p处的显示宽度为 k×pnode.width,pnodenext.p处显示宽度为k×pnodenext.width,两点间线宽 均匀渐变,返回S10.1;
再绘制次生裂缝,绘制的具体过程为:
S11.1、若PSetsubbranchFrac(Ri)中存在mark值为false的节点元素, 则读取该节点pnode并继续S11.1,否则次生裂缝绘制流程结束;
S11.2:令pnode.mark=true;
S11.3:若pnode.next为null,则返回Step 1,否则继续S11.4;
S11.4:连线pnode.p与pnodenext.p,pnode.p处的显示宽度为 k×pnode.width,pnodenext.p处显示宽度为k×pnodenext.width,两点间线宽 均匀渐变,返回S11.1。
本发明的有益效果在于:通过本发明方法来仿真裂缝几何形态, 可以展现裂缝逐渐延展的生成过程,从而可以解决裂缝密度分布不均 衡问题。
附图说明
图1为本发明实施例中裂缝三维可视化模型的示意图;
图2为本发明实施例中第一种情况的裂缝宽度仿真数据的示例;
图3为本发明实施例中第二种情况的裂缝宽度仿真数据的示例;
图4为利用本发明实施例方法得到的一个三维仿真可视化效果 实例图;
图5为利用本发明实施例方法得到的另一个三维仿真可视化效 果实例图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,本实 施例以本技术方案为前提,给出了详细的实施方式和具体的操作过 程,但本发明的保护范围并不限于本实施例。
本实施例提供一种页岩气压裂裂缝延展过程的三维仿真可视化 方法,包括如下步骤:
S1、设计裂缝三维可视化模型,该模型由主裂缝、分支裂缝和次 生裂缝构成;
S2、存储裂缝延展模型计算得到的三维裂缝宽度仿真数据;
S3、定义节点数据结构;
S4、检测并分离出各簇的裂缝宽度仿真数据;
S5、计算每个簇的主裂缝起点和终点;
S6、计算每个簇的主裂缝延展轨迹;
S7、计算每个簇的分支裂缝延展轨迹;
S8、计算每个簇的次生裂缝延展轨迹;
S9、绘制各簇主裂缝;
S10、绘制各簇分支裂缝和次生裂缝。
进一步地,在本实施例中,步骤S1中,所述裂缝三维可视化模 型,由主裂缝、分支裂缝和次生裂缝构成,模型结构示意图参见附 图1。每个簇只有一个主裂缝,主裂缝起始于模拟井筒工作段射孔坐 标位置,沿三维裂缝宽度仿真数据的主裂缝方向延展至裂缝宽度仿 真数据中裂缝宽度为0的位置;分支裂缝从主裂缝上生成,每条分 支裂缝起始于主裂缝轨迹,与主裂缝成一定夹角,并延伸至裂缝宽 度值为0的位置;次生裂缝从分支裂缝上生成,每条次生裂缝起始 于分支裂缝轨迹,与分支裂缝成一定夹角,并延伸至裂缝宽度值为0的位置。
在本实施例中,步骤S2中,三维裂缝宽度仿真数据的存储规则 为:将每条裂缝的宽度值记入三维数组PSetR={width(x,y,z)|(x,y,z)∈R}; 其中,R是裂缝所属的三维有限空间,width(x,y,z)表示裂缝在(x,y,z)处 的裂缝宽度值。
在本实施例中,步骤S3中,所述节点数据结构为:
Typedef struct pNode{
P p;
real width;
struct pNode*next;
boolean mark;
}
其中,p表示节点三维坐标,width表示该节点的裂缝宽度值, next指向下一个pNode节点,mark表示该节点是否被访问过。
在本实施例中,步骤S4中,三维裂缝宽度仿真数据分为两种情 况,第一种情况是簇间存在明显间隔,第二种情况是簇间无明显间隔; 簇间存在明显间隔时,簇间存在大量裂缝宽度值为0的元素,则裂缝 宽度值非零的连通区域同属一个簇,此时,将同属一个簇的裂缝宽度 仿真数据分离出来即可;当簇间无明显间隔时,相邻簇的裂缝宽度值 非零区域连通,此时,寻找三维空间中裂缝宽度值非零的鞍点处,沿 其最快下降方向进行切分,实现对裂缝宽度仿真数据的分离;
本实施例给出第一种情况的示例如图2所示,可见,对于第一种 情况的裂缝宽度仿真数据,两簇数据(用不同深浅的颜色区分)之间 的间隔是十分明显的。
本实施例给出第二种情况的示例如图3所示,可见,对于第一种 情况的裂缝宽度仿真数据,两簇数据(用不同深浅的颜色区分)之间 无明显间隔。
分离得到的每簇裂缝宽度仿真数据单独存储,记第i簇的裂缝宽 度仿真数据为:
Ri为第i簇裂缝所属的三维有限空间。
在本实施例中,步骤S5中,每个簇的主裂缝起点和终点的计算 过程为:
其中:
分别表示点Xstart、Ystart、 Zstart处的裂缝宽度值,约束条件 分别表示点Xstart、Ystart、Zstart处的裂缝宽度值要大于0, 分别为符合约束的x值最小的点、符 合约束的y值最小的点、符合约束的 z值最小的点;分别表示点Xend、 Yend、Zend处的裂缝宽度值,约束条件 分别表示点Xend、Yend、Zend处的裂缝宽度值要大于0, 分别为符合约束的x值最大的点、符 合约束的y值最大的点、符合约束的z 值最大的点;
各簇的主裂缝长度的目标函数为:
在本实施例中,步骤S6中,每个簇的主裂缝延展轨迹的具体计 算过程为:
若任一节点p(x,y,z)∈L,则p的6邻域点集为:
定义主裂缝上的点p的有效域为:
PSetmajorDomain(p)={p}∪(PSet6-neighbour(p)-L);
则各个簇的主裂缝的延展轨迹节点构造过程为:
S6.1、构造主裂缝的起始pNode节点pnode:令 pnode.next=null,pnode.mark=false;pnode.p表示 节点pnode的坐标,pnode.width表示主裂缝在节点pnode处的宽度, pnode.next表示节点pnode的下一个节点,pnode.mark表示节点pnode是 否有被访问过;表示主裂缝在起点处的裂缝宽度值;
S6.5、令pnodenext.p=p′next,pnodenext.next=null,pnodenext.mark=false;pnodenext.p表示节点pnodenext的坐标,pnodenext.next表示节点pnodenext的下 一个节点,pnodenext.mark表示节点pnodenext是否被访问过;
S6.6、令pnode.next=pnodenext,pnode=pnodenext,返回步骤S6.2。
在本实施例中,步骤S7的具体过程为:
S7.1、从PSetmajorFrac(Ri)中以概率probbranch=0.7选取分支裂缝节点的 首节点并加入PSetbranchFrac(Ri)中:
PSetbranchFrac(Ri)={pnodej|(pnodej∈PSetmajorFrac(Ri))∧(randomj≤probbranch)};
其中PSetbranchFrac(Ri)表示分支裂缝的点集;randomj∈[0,1]表示第j 个随机数;probbranch表示将节点pnodej选为分支裂缝首节点的概率值;
S7.2、遍历PSetbranchFrac(Ri)的每一个节点pnode,令pnode.next=null, 再生成随机数randomnum∈[1,4],复制randomnum个pnode加入 PSetbranchFrac(Ri);
S7.3、若PSetbranchFrac(Ri)中存在mark值为false的节点元素,则读 取该节点pnode并继续S7.4,否则流程结束;
S7.4、令pnode.mark=true;
S7.5、记p′为节点pnode的规范化齐次坐标(x,y,z,1),计算下 一节点的齐次坐标p′next=p′·Tt;
S7.6、若pnode.width>0,则根据p′next(xnext,ynext,znext,1)得到三维坐标 pnext(xnext,ynext,znext),构造pnodenext=(pnext,widthpnext,null,false)并跳转至步骤 S7.7;否则返回S7.3;
S7.7、将pnodenext加入PSetbranchFrac(Ri),令pnode.next=pnodenext,返回 步骤S7.3。
在本实施例中,步骤S8的具体过程为:
S8.1、从PSetbranchFrac(Ri)中以概率probsubbranch=0.5选取次生裂缝节点 的首节点并加入PSetsubbranchFrac(Ri)中:
PSetsubbranchFrac(Ri)={pnodej|(pnodej∈PSetbranchFrac(Ri))∧(randomj≤probsubbranch)};
其中,PSetsubbranchFrac(Ri)表示次生裂缝节点的点集,randomj∈[0,1]表 示第j个随机数;probsubbranch表示将节点pnodej选为次生裂缝首节点 的概率值;
S8.2、遍历PSetsubbranchFrac(Ri)的每一个节点pnode,令pnode.next=null, 再生成随机数randomnum∈[1,3],复制randomnum个pnode加入 PSetsubbranchFrac(Ri);
S8.3、若PSetsubbranchFrac(Ri)中存在mark值为false的节点元素,则 读取该节点pnode并继续步骤S8.4,否则该流程结束;
S8.4、令pnode.mark=true;
S8.5、记p′为pnode的规范化齐次坐标,计算下一节点的齐次坐 标p′next=p′·Tt;
S8.6、若pnode.width>0,则根据p′next得到三维坐标pnext,构造 pnodenext=(pnext,widthpnext,null,false)并跳转至步骤S8.7;否则返回步骤 S8.3;
S8.7、令pnode.next=pnodenext,将pnodenext加入PSetsubbranchFrac(Ri),以20%的概率,复制pnodenext并加入PSetsubbranchFrac(Ri),返回步骤S8.3。
S9.1、若PSetmajorFrac(Ri)中存在mark值为false的节点元素,则读 取该节点pnode并继续S9.2,否则本绘制流程结束;
S9.2、令pnode.mark=true;
S9.3、若pnode.next为null,则返回S9.1,否则继续S9.4;
S9.4、连线pnode.p与pnodenext.p,pnode.p处的显示宽度为 k×pnode.width,pnodenext.p处显示宽度为k×pnodenext.width,两点间线宽 均匀渐变,返回S9.1;pnodenext.width表示裂缝在点pnodenext处的裂缝宽 度。
在本实施例中,所述步骤S10中,首先将PSetbranchFrac(Ri)和 PSetsubbranchFrac(Ri)中每个元素的mark赋值为false;
先绘制分支裂缝;绘制的具体过程如下:
S10.1、若PSetbranchFrac(Ri)中存在mark值为false的节点元素,则 读取该节点pnode并继续S10.2,否则分支裂缝绘制流程结束;
S10.2、令pnode.mark=true;
S10.3、若pnode.next为null,则返回S10.1,否则继续S10.4;
S10.4、连线pnode.p与pnodenext.p,pnode.p处的显示宽度为 k×pnode.width,pnodenext.p处显示宽度为k×pnodenext.width,两点间线宽 均匀渐变,返回S10.1。
再绘制次生裂缝,绘制的具体过程为:
S11.1、若PSetsubbranchFrac(Ri)中存在mark值为false的节点元素, 则读取该节点pnode并继续S11.1,否则次生裂缝绘制流程结束;
S11.2:令pnode.mark=true;
S11.3:若pnode.next为null,则返回Step 1,否则继续S11.4;
S11.4:连线pnode.p与pnodenext.p,pnode.p处的显示宽度为 k×pnode.width,pnodenext.p处显示宽度为k×pnodenext.width,两点间线宽 均匀渐变,返回S11.1。
图4和图5为利用上述实施例方法得到的两个三维仿真可视化效 果实例图。
对于本领域的技术人员来说,可以根据以上的技术方案和构思, 给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括 在本发明权利要求的保护范围之内。
Claims (4)
1.一种页岩气压裂裂缝延展过程的三维仿真可视化方法,其特征在于,包括如下步骤:
S1、设计裂缝三维可视化模型,该模型由主裂缝、分支裂缝和次生裂缝构成;
S2、存储裂缝延展模型计算得到的三维裂缝宽度仿真数据;
S3、定义节点数据结构;
S4、检测并分离出各簇的裂缝宽度仿真数据;
S5、计算每个簇的主裂缝起点和终点;
S6、计算每个簇的主裂缝延展轨迹;
S7、计算每个簇的分支裂缝延展轨迹;
S8、计算每个簇的次生裂缝延展轨迹;
S9、绘制各簇主裂缝;
S10、绘制各簇分支裂缝和次生裂缝;
步骤S5中,每个簇的主裂缝起点和终点的计算过程为:
其中:
分别表示点Xstart、Ystart、Zstart处的裂缝宽度值,约束条件 分别表示点Xstart、Ystart、Zstart处的裂缝宽度值要大于0,分别为符合约束的x值最小的点、符合约束的y值最小的点、符合约束的z值最小的点;分别表示点Xend、Yend、Zend处的裂缝宽度值,约束条件 分别表示点Xend、Yend、Zend处的裂缝宽度值要大于0,分别为符合约束的x值最大的点、符合约束的y值最大的点、符合约束的z值最大的点;
各簇的主裂缝长度的目标函数为:
步骤S6中,每个簇的主裂缝延展轨迹的具体计算过程为:
若任一节点p(x,y,z)∈L,则p的6邻域点集为:
定义主裂缝上的点p的有效域为:
PSetmajorDomain(p)={p}U(PSet6-neighbour(p)-L);
则各个簇的主裂缝的延展轨迹节点构造过程为:
S6.1、构造主裂缝的起始pNode节点pnode:令 pnode.next=null,pnode.mark=false;pnode.p表示节点pnode的坐标,pnode.width表示主裂缝在节点pnode处的宽度,pnode.next表示节点pnode的下一个节点,pnode.mark表示节点pnode是否有被访问过;表示主裂缝在起点处的裂缝宽度值;
S6.5、令pnodenext.p=p′next,pnodenext.next=null,pnodenext.mark=false;pnodenext.p表示节点pnodenext的坐标,pnodenext.next表示节点pnodenext的下一个节点,pnodenext.mark表示节点pnodenext是否被访问过;
S6.6、令pnode.next=pnodenext,pnode=pnodenext,返回步骤S6.2;
步骤S7的具体过程为:
S7.1、从PSetmajorFrac(Ri)中以概率probbranch=0.7选取分支裂缝节点的首节点并加入PSetbranchFrac(Ri)中:
PSetbranchFrac(Ri)={pnodej|(pnodej∈PSetmajorFrac(Ri))∧(randomj≤probbranch)};
其中PSetbranchFrac(Ri)表示分支裂缝的点集;randomj∈[0,1]表示第j个随机数;probbranch表示将节点pnodej选为分支裂缝首节点的概率值;
S7.2、遍历PSetbranchFrac(Ri)的每一个节点pnode,令pnode.next=null,再生成随机数randomnum∈[1,4],复制randomnum个pnode加入PSetbranchFrac(Ri);
S7.3、若PSetbranchFrac(Ri)中存在mark值为false的节点元素,则读取该节点pnode并继续S7.4,否则流程结束;
S7.4、令pnode.mark=true;
S7.5、记p′为节点pnode的规范化齐次坐标,计算下一节点的齐次坐标p′next=p′·Tt;
S7.7、将pnodenext加入PSetbranchFrac(Ri),令pnode.next=pnodenext,返回步骤S7.3;
步骤S8的具体过程为:
S8.1、从PSetbranchFrac(Ri)中以概率probsubbranch=0.5选取次生裂缝节点的首节点并加入PSetsubbranchFrac(Ri)中:
PSetsubbranchFrac(Ri)={pnodej|(pnodej∈PSetbranchFrac(Ri))∧(randomj≤probsubbranch)};
其中,PSetsubbranchFrac(Ri)表示次生裂缝节点的点集,randomj∈[0,1]表示第j个随机数;probsubbranch表示将节点pnodej选为次生裂缝首节点的概率值;
S8.2、遍历PSetsubbranchFrac(Ri)的每一个节点pnode,令pnode.next=null,再生成随机数randomnum∈[1,3],复制randomnum个pnode加入PSetsubbranchFrac(Ri);
S8.3、若PSetsubbranchFrac(Ri)中存在mark值为false的节点元素,则读取该节点pnode并继续步骤S8.4,否则该流程结束;
S8.4、令pnode.mark=true;
S8.5、记p′为pnode的规范化齐次坐标,计算下一节点的齐次坐标p′next=p′·Tt;
S8.7、令pnode.next=pnodenext,将pnodenext加入PSetsubbranchFrac(Ri),以20%的概率,复制pnodenext并加入PSetsubbranchFrac(Ri),返回步骤S8.3;
S9.1、若PSetmajorFrac(Ri)中存在mark值为false的节点元素,则读取该节点pnode并继续S9.2,否则本绘制流程结束;
S9.2、令pnode.mark=true;
S9.3、若pnode.next为null,则返回S9.1,否则继续S9.4;
S9.4、连线pnode.p与pnodenext.p,pnode.p处的显示宽度为k×pnode.width,pnodenext.p处显示宽度为k×pnodenext.width,两点间线宽均匀渐变,返回S9.1;pnodenext.width表示裂缝在点pnodenext处的裂缝宽度;
所述步骤S10中,首先将PSetbranchFrac(Ri)和PSetsubbranchFrac(Ri)中每个元素的mark赋值为false;
先绘制分支裂缝;绘制的具体过程如下:
S10.1、若PSetbranchFrac(Ri)中存在mark值为false的节点元素,则读取该节点pnode并继续S10.2,否则分支裂缝绘制流程结束;
S10.2、令pnode.mark=true;
S10.3、若pnode.next为null,则返回S10.1,否则继续S10.4;
S10.4、连线pnode.p与pnodenext.p,pnode.p处的显示宽度为k×pnode.width,pnodenext.p处显示宽度为k×pnodenext.width,两点间线宽均匀渐变,返回S10.1;
再绘制次生裂缝,绘制的具体过程为:
S11.1、若PSetsubbranchFrac(Ri)中存在mark值为false的节点元素,则读取该节点pnode并继续S11.1,否则次生裂缝绘制流程结束;
S11.2:令pnode.mark=true;
S11.3:若pnode.next为null,则返回Step 1,否则继续S11.4;
S11.4:连线pnode.p与pnodenext.p,pnode.p处的显示宽度为k×pnode.width,pnodenext.p处显示宽度为k×pnodenext.width,两点间线宽均匀渐变,返回S11.1。
2.根据权利要求1所述的方法,其特征在于,步骤S1中,所述裂缝三维可视化模型,由主裂缝、分支裂缝和次生裂缝构成,每个簇只有一个主裂缝,主裂缝起始于模拟井筒工作段射孔坐标位置,沿三维裂缝宽度仿真数据的主裂缝方向延展至裂缝宽度仿真数据中裂缝宽度为0的位置;分支裂缝从主裂缝上生成,每条分支裂缝起始于主裂缝轨迹,与主裂缝成一定夹角,并延伸至裂缝宽度值为0的位置;次生裂缝从分支裂缝上生成,每条次生裂缝起始于分支裂缝轨迹,与分支裂缝成一定夹角,并延伸至裂缝宽度值为0的位置。
3.根据权利要求1所述的方法,其特征在于,步骤S2中,三维裂缝宽度仿真数据的存储规则为:将每条裂缝的宽度值记入三维数组PSetR={width(x,y,z)|(x,y,z)∈R};其中,R是裂缝所属的三维有限空间,width(x,y,z)表示裂缝在(x,y,z)处的裂缝宽度值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010683285.9A CN111815762B (zh) | 2020-07-15 | 2020-07-15 | 一种页岩气压裂裂缝延展过程的三维仿真可视化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010683285.9A CN111815762B (zh) | 2020-07-15 | 2020-07-15 | 一种页岩气压裂裂缝延展过程的三维仿真可视化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111815762A CN111815762A (zh) | 2020-10-23 |
CN111815762B true CN111815762B (zh) | 2023-03-03 |
Family
ID=72866425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010683285.9A Active CN111815762B (zh) | 2020-07-15 | 2020-07-15 | 一种页岩气压裂裂缝延展过程的三维仿真可视化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111815762B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220493A (zh) * | 2017-05-24 | 2017-09-29 | 王欣 | 基于微地震事件的页岩气水平井网络裂缝建模方法 |
US10677961B1 (en) * | 2019-07-08 | 2020-06-09 | Southwest Petroleum University | Method for optimizing perforation parameters to maintain uniform fracture growth in multi-stage hydraulic fracturing of horizontal well |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3020545A1 (en) * | 2017-10-13 | 2019-04-13 | Uti Limited Partnership | Completions for inducing fracture network complexity |
-
2020
- 2020-07-15 CN CN202010683285.9A patent/CN111815762B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220493A (zh) * | 2017-05-24 | 2017-09-29 | 王欣 | 基于微地震事件的页岩气水平井网络裂缝建模方法 |
US10677961B1 (en) * | 2019-07-08 | 2020-06-09 | Southwest Petroleum University | Method for optimizing perforation parameters to maintain uniform fracture growth in multi-stage hydraulic fracturing of horizontal well |
Non-Patent Citations (1)
Title |
---|
页岩水力压裂裂缝形态与延伸扩展规律的宏细观研究;钮彬炜;<中国优秀硕士学位论文全文数据库 (工程科技Ⅰ辑)>;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111815762A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang | Advances in three-dimensional block cutting analysis and its applications | |
CN110163965B (zh) | 一种单斜岩层构造地貌的实体三维模型构建方法 | |
CN102393926B (zh) | 井下应急撤人安全路线智能决策方法 | |
CN105630988A (zh) | 一种快速检测空间数据变化并更新的方法及系统 | |
CN102982500B (zh) | 基于虚拟网格的矢量地图水印嵌入方法及检测方法 | |
CN102609982A (zh) | 空间地质数据非结构化模式的拓扑发现方法 | |
CN112446956B (zh) | 一种基于钻孔数据的地质三维模型构建方法 | |
CN113902872B (zh) | 一种非结构基质网格与裂缝连接性的检测方法 | |
CN105335478B (zh) | 构建城市土地空间立体调查数据语义关联的方法和装置 | |
CN108257384A (zh) | 一种路网对偶模型的鲁棒性确定方法及系统 | |
CN105205865B (zh) | 一种适用于岩体的建模方法 | |
CN107506513A (zh) | 一种基于a*算法的兵棋六角格地图路径规划方法 | |
CN106294915A (zh) | 基于井组平台开发的滩浅海油田井位设计方法 | |
Bast et al. | Efficient generation of geographically accurate transit maps | |
CN110197013B (zh) | 基于Morphing的河床基岩面建模方法 | |
CN109087009B (zh) | 基于社会网络动态攻击的历史文化名镇保护分析方法 | |
CN111815762B (zh) | 一种页岩气压裂裂缝延展过程的三维仿真可视化方法 | |
Huang et al. | Spatio-temporal evolution and distribution of cultural heritage sites along the Suzhou canal of China | |
Fu et al. | 3D rock mass geometrical modeling with arbitrary discontinuities | |
CN111953651A (zh) | 一种城市路网级联失效节点识别方法 | |
Wang et al. | An efficient and robust fracture-grid and fracture-fracture intersection detection method for polygon fractures in unstructured polyhedral grids | |
CN111914039A (zh) | 道路网更新方法及装置 | |
Wang et al. | Use of retrospective optimization for placement of oil wells under uncertainty | |
CN111894545B (zh) | 一种支撑剂泵注方案确定方法 | |
CN118036838B (zh) | 一种稠密约束环境铁路线路优化方法、存储介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |