CN111815762B - 一种页岩气压裂裂缝延展过程的三维仿真可视化方法 - Google Patents

一种页岩气压裂裂缝延展过程的三维仿真可视化方法 Download PDF

Info

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
Application number
CN202010683285.9A
Other languages
English (en)
Other versions
CN111815762A (zh
Inventor
朱红
孙圣波
寇俊霞
殷铭
李建新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China University of Mining and Technology Beijing CUMTB
SJS Ltd
Original Assignee
China University of Mining and Technology Beijing CUMTB
SJS Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China University of Mining and Technology Beijing CUMTB, SJS Ltd filed Critical China University of Mining and Technology Beijing CUMTB
Priority to CN202010683285.9A priority Critical patent/CN111815762B/zh
Publication of CN111815762A publication Critical patent/CN111815762A/zh
Application granted granted Critical
Publication of CN111815762B publication Critical patent/CN111815762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • EFIXED CONSTRUCTIONS
    • E21EARTH OR ROCK DRILLING; MINING
    • E21BEARTH OR ROCK DRILLING; OBTAINING OIL, GAS, WATER, SOLUBLE OR MELTABLE MATERIALS OR A SLURRY OF MINERALS FROM WELLS
    • E21B43/00Methods or apparatus for obtaining oil, gas, water, soluble or meltable materials or a slurry of minerals from wells
    • E21B43/25Methods for stimulating production
    • E21B43/26Methods for stimulating production by forming crevices or fractures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design 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簇的裂缝宽 度仿真数据为:
Figure BDA0002585031330000031
Ri为第i簇裂缝所属的三维有限空间。
更进一步地,步骤S5中,每个簇的主裂缝起点和终点的计算过 程为:
首先在簇空间中求解各坐标轴方向的最长轴起点坐标点
Figure BDA0002585031330000041
和终点坐标
Figure BDA0002585031330000042
分别表示该 簇空间在X轴方向、Y轴方向、Z轴方向上的起点坐标点,
Figure BDA0002585031330000043
分别表示该簇空间在X轴方向、Y轴方向、Z轴方向上 的终点坐标点;
其中:
Figure BDA0002585031330000044
Figure BDA0002585031330000045
分别表示点Xstart、Ystart、 Zstart处的裂缝宽度值,约束条件
Figure BDA0002585031330000046
Figure BDA0002585031330000047
分别表示点Xstart、Ystart、Zstart处的裂缝宽度值要大于0,
Figure BDA0002585031330000048
分别为符合
Figure BDA0002585031330000049
约束的x值最小的点、符 合
Figure BDA00025850313300000410
约束的y值最小的点、符合
Figure BDA00025850313300000411
约束的 z值最小的点;
Figure BDA00025850313300000412
分别表示点Xend、 Yend、Zend处的裂缝宽度值,约束条件
Figure BDA00025850313300000413
Figure BDA00025850313300000414
分别表示点Xend、Yend、Zend处的裂缝宽度值要大于0,
Figure BDA00025850313300000415
分别为符合
Figure BDA00025850313300000416
约束的x值最大的点、符 合
Figure BDA00025850313300000417
约束的y值最大的点、符合
Figure BDA00025850313300000418
约束的z 值最大的点;
各簇的主裂缝长度的目标函数为:
Figure BDA0002585031330000051
满足目标函数的节点对为该簇中主裂缝的起点坐标
Figure BDA0002585031330000052
和终点 坐标
Figure BDA0002585031330000053
更进一步地,步骤S6中,每个簇的主裂缝延展轨迹的具体计算 过程为:
各个簇的主裂缝延展轨迹L由主裂缝的起点
Figure BDA0002585031330000054
至终点
Figure BDA0002585031330000055
线段 上的全部点构成;
若任一节点p(x,y,z)∈L,则p的6邻域点集为:
Figure BDA0002585031330000056
定义主裂缝上的点p的有效域为:
PSetmajorDomain(p)={p}∪(PSet6-neighbour(p)-L);
则各个簇的主裂缝的延展轨迹节点构造过程为:
S6.1、构造主裂缝的起始pNode节点pnode:令
Figure BDA0002585031330000057
Figure BDA0002585031330000058
pnode.next=null,pnode.mark=false;pnode.p表示 节点pnode的坐标,pnode.width表示主裂缝在节点pnode处的宽度, pnode.next表示节点pnode的下一个节点,pnode.mark表示节点pnode是 否有被访问过;
Figure BDA0002585031330000059
表示主裂缝在起点处的裂缝宽度值;
S6.2、将节点pnode加入PSetmajorFrac(Ri);PSetmajorFrac(Ri)表示主裂缝 的点集,初始元素只有
Figure BDA0002585031330000061
之后会逐渐加入新的pnode;
S6.3、若pnode.p不等于
Figure BDA0002585031330000062
跳转至步骤S6.4,否则结束流程;
S6.4、在L上取pnode.p的后续相邻点
Figure BDA0002585031330000063
并计算节点pnode.p的 后续节点位置
Figure BDA0002585031330000064
widthp'表示裂 缝在点p'上的裂缝宽度值,
Figure BDA0002585031330000065
表示点
Figure BDA0002585031330000066
的有效域;
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
Figure BDA0002585031330000071
参数rTx、rTy、rTz为随机数,主裂缝方向 的rTx、rTy、rTz=[0,2],非主裂缝方向的rTx、rTy、rTz=[-2,2];
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
Figure BDA0002585031330000081
参数rTx、rTy、rTz为随机数,主裂缝方向 的rTx、rTy、rTz=[0,2],非主裂缝方向的rTx、rTy、rTz=[-2,2];
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中,首先求解裂缝宽度缩放系数
Figure BDA0002585031330000082
然后绘制主裂缝;绘制的具体过程如下:
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簇的裂缝宽 度仿真数据为:
Figure BDA0002585031330000121
Ri为第i簇裂缝所属的三维有限空间。
在本实施例中,步骤S5中,每个簇的主裂缝起点和终点的计算 过程为:
首先在簇空间中求解各坐标轴方向的最长轴起点坐标点
Figure BDA0002585031330000122
和终点坐标
Figure BDA0002585031330000123
分别表示该 簇空间在X轴方向、Y轴方向、Z轴方向上的起点坐标点,
Figure BDA0002585031330000124
分别表示该簇空间在X轴方向、Y轴方向、Z轴方向上 的终点坐标点;
其中:
Figure BDA0002585031330000131
Figure BDA0002585031330000132
分别表示点Xstart、Ystart、 Zstart处的裂缝宽度值,约束条件
Figure BDA0002585031330000133
Figure BDA0002585031330000134
分别表示点Xstart、Ystart、Zstart处的裂缝宽度值要大于0,
Figure BDA0002585031330000135
分别为符合
Figure BDA0002585031330000136
约束的x值最小的点、符 合
Figure BDA0002585031330000137
约束的y值最小的点、符合
Figure BDA0002585031330000138
约束的 z值最小的点;
Figure BDA0002585031330000139
分别表示点Xend、 Yend、Zend处的裂缝宽度值,约束条件
Figure BDA00025850313300001310
Figure BDA00025850313300001311
分别表示点Xend、Yend、Zend处的裂缝宽度值要大于0,
Figure BDA00025850313300001312
分别为符合
Figure BDA00025850313300001313
约束的x值最大的点、符 合
Figure BDA00025850313300001314
约束的y值最大的点、符合
Figure BDA00025850313300001315
约束的z 值最大的点;
各簇的主裂缝长度的目标函数为:
Figure BDA00025850313300001316
满足目标函数的节点对为该簇中主裂缝的起点坐标
Figure BDA00025850313300001317
和终点 坐标
Figure BDA00025850313300001318
在本实施例中,步骤S6中,每个簇的主裂缝延展轨迹的具体计 算过程为:
各个簇的主裂缝延展轨迹L由主裂缝的起点
Figure BDA00025850313300001319
至终点
Figure BDA00025850313300001320
线段 上的全部点构成;
若任一节点p(x,y,z)∈L,则p的6邻域点集为:
Figure BDA0002585031330000141
定义主裂缝上的点p的有效域为:
PSetmajorDomain(p)={p}∪(PSet6-neighbour(p)-L);
则各个簇的主裂缝的延展轨迹节点构造过程为:
S6.1、构造主裂缝的起始pNode节点pnode:令
Figure BDA0002585031330000142
Figure BDA0002585031330000143
pnode.next=null,pnode.mark=false;pnode.p表示 节点pnode的坐标,pnode.width表示主裂缝在节点pnode处的宽度, pnode.next表示节点pnode的下一个节点,pnode.mark表示节点pnode是 否有被访问过;
Figure BDA0002585031330000144
表示主裂缝在起点处的裂缝宽度值;
S6.2、将节点pnode加入PSetmajorFrac(Ri);PSetmajorFrac(Ri)表示主裂缝 的点集,初始元素只有
Figure BDA0002585031330000145
之后会逐渐加入新的pnode;
S6.3、若pnode.p不等于
Figure BDA0002585031330000146
跳转至步骤S6.4,否则结束流程;
S6.4、在L上取pnode.p的后续相邻点
Figure BDA0002585031330000147
并计算节点pnode.p的 后续节点位置
Figure BDA0002585031330000148
widthp'表示裂 缝在点p'上的裂缝宽度值,
Figure BDA0002585031330000149
表示点
Figure BDA00025850313300001410
的有效域;
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
Figure BDA0002585031330000151
参数rTx、rTy、rTz为随机数,主裂缝方向 的rTx、rTy、rTz=[0,2],非主裂缝方向的rTx、rTy、rTz=[-2,2];
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
Figure BDA0002585031330000161
参数rTx、rTy、rTz为随机数,主裂缝方向 的rTx、rTy、rTz=[0,2],非主裂缝方向的rTx、rTy、rTz=[-2,2];
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中,首先求解裂缝宽度缩放系数
Figure BDA0002585031330000171
然后绘制主裂缝;绘制的具体过程如下:
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中,每个簇的主裂缝起点和终点的计算过程为:
首先在簇空间中求解各坐标轴方向的最长轴起点坐标点
Figure FDA0004025491200000011
和终点坐标
Figure FDA0004025491200000012
分别表示该簇空间在X轴方向、Y轴方向、Z轴方向上的起点坐标点,
Figure FDA0004025491200000013
分别表示该簇空间在X轴方向、Y轴方向、Z轴方向上的终点坐标点;
其中:
Figure FDA0004025491200000021
Figure FDA0004025491200000022
分别表示点Xstart、Ystart、Zstart处的裂缝宽度值,约束条件
Figure FDA0004025491200000023
Figure FDA0004025491200000024
分别表示点Xstart、Ystart、Zstart处的裂缝宽度值要大于0,
Figure FDA0004025491200000025
分别为符合
Figure FDA0004025491200000026
约束的x值最小的点、符合
Figure FDA0004025491200000027
约束的y值最小的点、符合
Figure FDA0004025491200000028
约束的z值最小的点;
Figure FDA0004025491200000029
分别表示点Xend、Yend、Zend处的裂缝宽度值,约束条件
Figure FDA00040254912000000210
Figure FDA00040254912000000211
分别表示点Xend、Yend、Zend处的裂缝宽度值要大于0,
Figure FDA00040254912000000212
分别为符合
Figure FDA00040254912000000213
约束的x值最大的点、符合
Figure FDA00040254912000000214
约束的y值最大的点、符合
Figure FDA00040254912000000215
约束的z值最大的点;
各簇的主裂缝长度的目标函数为:
Figure FDA00040254912000000216
满足目标函数的节点对为该簇中主裂缝的起点坐标
Figure FDA00040254912000000217
和终点坐标
Figure FDA00040254912000000218
步骤S6中,每个簇的主裂缝延展轨迹的具体计算过程为:
各个簇的主裂缝延展轨迹L由主裂缝的起点
Figure FDA00040254912000000219
至终点
Figure FDA00040254912000000220
线段上的全部点构成;
若任一节点p(x,y,z)∈L,则p的6邻域点集为:
Figure FDA0004025491200000031
定义主裂缝上的点p的有效域为:
PSetmajorDomain(p)={p}U(PSet6-neighbour(p)-L);
则各个簇的主裂缝的延展轨迹节点构造过程为:
S6.1、构造主裂缝的起始pNode节点pnode:令
Figure FDA0004025491200000032
Figure FDA0004025491200000033
pnode.next=null,pnode.mark=false;pnode.p表示节点pnode的坐标,pnode.width表示主裂缝在节点pnode处的宽度,pnode.next表示节点pnode的下一个节点,pnode.mark表示节点pnode是否有被访问过;
Figure FDA0004025491200000034
表示主裂缝在起点处的裂缝宽度值;
S6.2、将节点pnode加入PSetmajorFrac(Ri);PSetmajorFrac(Ri)表示主裂缝的点集,初始元素只有
Figure FDA0004025491200000035
之后会逐渐加入新的pnode;
S6.3、若pnode.p不等于
Figure FDA0004025491200000036
跳转至步骤S6.4,否则结束流程;
S6.4、在L上取pnode.p的后续相邻点
Figure FDA0004025491200000037
并计算节点pnode.p的后续节点位置
Figure FDA0004025491200000038
widthp'表示裂缝在点p'上的裂缝宽度值,
Figure FDA0004025491200000039
表示点
Figure FDA00040254912000000310
的有效域;
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
Figure FDA0004025491200000041
参数rTx、rTy、rTz为随机数,主裂缝方向的rTx、rTy、rTz=[0,2],非主裂缝方向的rTx、rTy、rTz=[-2,2];
S7.6、若pnode.width>0,则根据p′next得到三维坐标pnext,构造
Figure FDA0004025491200000042
并跳转至步骤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
Figure FDA0004025491200000051
参数rTx、rTy、rTz为随机数,主裂缝方向的rTx、rTy、rTz=[0,2],非主裂缝方向的rTx、rTy、rTz=[-2,2];
S8.6、若pnode.width>0,则根据pnext得到三维坐标pnext,构造
Figure FDA0004025491200000052
并跳转至步骤S8.7;否则返回步骤S8.3;
S8.7、令pnode.next=pnodenext,将pnodenext加入PSetsubbranchFrac(Ri),以20%的概率,复制pnodenext并加入PSetsubbranchFrac(Ri),返回步骤S8.3;
步骤S9中,首先求解裂缝宽度缩放系数
Figure FDA0004025491200000061
然后绘制主裂缝;绘制的具体过程如下:
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)处的裂缝宽度值。
4.根据权利要求1所述的方法,其特征在于,步骤S4中,三维裂缝宽度仿真数据分为两种情况,第一种情况是簇间存在明显间隔,第二种情况是簇间无明显间隔;簇间存在明显间隔时,簇间存在大量裂缝宽度值为0的元素,则裂缝宽度值非零的连通区域同属一个簇,此时,将同属一个簇的裂缝宽度仿真数据分离出来即可;当簇间无明显间隔时,相邻簇的裂缝宽度值非零区域连通,此时,寻找三维空间中裂缝宽度值非零的鞍点处,沿其最快下降方向进行切分,实现对裂缝宽度仿真数据的分离;
分离得到的每簇裂缝宽度仿真数据单独存储,记第i簇的裂缝宽度仿真数据为:
Figure FDA0004025491200000081
Ri为第i簇裂缝所属的三维有限空间。
CN202010683285.9A 2020-07-15 2020-07-15 一种页岩气压裂裂缝延展过程的三维仿真可视化方法 Active CN111815762B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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