一种基于可视化技术的油井灌浆过程实时展示方法
本发明涉及一种基于可视化技术的油井灌浆过程实时展示方法,属于计算机应用领域,特别是计算机图形学与可视化技术领域。
技术背景
油井灌浆是油气开采过程中的一项重要工作,灌浆过程中所涉及到的流体种类多,对于灌浆过程的准确描述也非常复杂。但到目前为止,对于油井灌浆的过程展示,仍然局限于数据的展示或静态状态的展示。其不足之处为:不能实时、直观的还原油井灌浆的过程。
随着自动控制、计算机仿真需求的提高,对油井灌浆过程实时展示方法的探讨,成为一个急需解决的问题。
发明内容
本发明提出的目的是针对当前油井灌浆过程中,灌浆过程描述困难、灌浆流程表达不清晰的问题,提供一种基于可视化技术的油井灌浆过程实时展示方法。
本发明的目的是通过下述技术方案实现的。
一种基于可视化技术的油井灌浆过程实时展示方法,包含如下步骤:
步骤1:建立二维直角坐标系,具体为:以油井井口中心点为坐标原点(用符号O表示);过井底中心点作一条竖直向上的直线(用符号LL表示);以过坐标原点O,并与直线LL垂直相交的方向为X轴;以过坐标原点O垂直向下的方向为Y轴。
步骤2:油井由多个井段组成,井段两端端面的中心点称为定位点。获取油井各定位点坐标,连接各定位点建立油井中心线。
步骤3:根据步骤2所述各定位点坐标计算各定位点井深。第1个定位点(即井口位置)井深为Depth1=0;第n个定位点的井深根据公式(1)计算得到,n≥2。
Depthn=Depthn-1+Distn-1 (1)
其中,Depthn-1为第n-1个定位点的井深,Distn-1为第n个定位点与第n-1个定位点的距离,可使用公式(2)计算得到。
其中,(xn,yn,zn)和(xn-1,yn-1,zn-1)分别为第n个和第n-1个定位点坐标。
步骤4:建立定位点信息表,包括:定位点唯一编号、定位点X轴坐标、定位点Y轴坐标和定位点井深。所述定位点井深的值是由步骤3计算得到,第n个定位点井深的值即为Depthn。将每一个定位点生成一条记录,添加至定位点信息表中。
步骤5:建立井段信息表,包括:井段唯一编号、井段尾深点坐标、井段头深点坐标、井段尾深、井段头深和井段长度。所述井段头深和井段尾深即为井段两端的定位点井深,其中井段头深>井段尾深。所述井段长度的值是由步骤3计算得到,第n个和第n-1个定位点之间的井段称为第n-1个井段,其值为Distn-1。将油井的每一个井段生成一条记录,添加至井段信息表中。
步骤6:为井筒、石油套管以及油井灌浆过程中涉及到的每一种流体类别设计一种纹理图片,并为每一种纹理图片编排唯一编号。所述流体类别包括钻井液、先导浆、冲洗液、隔离液、领浆、尾浆、重泥浆、原泥浆;所述井筒、石油套管及各种流体与纹理图片一一对应。
步骤7:加载井筒和石油套管形状数据,所述井筒形状数据包括:井筒内径;所述石油套管形状数据包括:石油套管内径和石油套管外径。为井筒、石油套管及各种流体类别加载与之对应的纹理图片。为井筒设置展示结果中的井筒壁厚。
步骤8:根据步骤4中建立的定位点信息表,建立井筒绘制信息表,包括:井筒定位点路径、井筒纹理编号、井筒内径和井筒壁厚。所述井筒定位点路径是由定位点信息表中的定位点,按井深值从小至大的顺序连接而成。所述井筒纹理编号为步骤6中为井筒对应的纹理图片编排的唯一编号。
步骤9:根据步骤4中建立的定位点信息表,建立石油套管绘制信息表,包括:石油套管定位点路径、石油套管纹理编号、石油套管外径。所述石油套管定位点路径是由定位点信息表中的定位点,按井深值从小至大的顺序连接而成。所述石油套管纹理编号为步骤6中为石油套管对应的纹理图片编排的唯一编号。
步骤10:实时采集灌浆过程中各流体类型的状态数据;所述状态数据包含流体形状、流体类别、流体段头深和流体段尾深。所述流体形状包括内管型和环空型。在内管型流体和环空型流体中,每一种流体对应一个流体段,流体段两端端面中心点的井深称为流体段的头深和尾深,对于内管型流体,其头深>尾深;对于环空型流体,其头深<尾深。
步骤11:针对步骤10采集到的灌浆过程中每一时刻的各流体类型的状态数据,执行步骤12至步骤14,获得当前时刻的灌浆过程展示结果,直至灌浆过程结束。
步骤12:根据当前时刻的各流体类型的状态数据建立流体段信息表,包括:流体段唯一编号、流体形状、流体类别、流体段头深、流体段尾深、流体段头深点、流体段尾深点和流体段所包含的所有定位点。每一种流体形状的流体类型对应一条记录。
其中每一个流体段的流体段头深点、流体段尾深点和流体段所包含的所有定位点,可通过执行步骤12.1至步骤12.5的操作得到。
步骤12.1:针对当前流体段,根据步骤5得到的井段信息表查询当前流体段头深所在的井段,并使用公式(3)计算当前流体段头深在当前井段中的深度比例(用符号μ表示)。
其中,为当前流体段头深,DH和DT分别为当前井段头深和井段尾深。
步骤12.2:针对当前流体段,根据步骤5得到的井段信息表,使用公式(4)计算当前流体段头深的深度比例μ在油井中心线上对应的坐标点,该坐标点称为流体段头深点。
其中,(xH,yH)和(xT,yT)分别是当前井段头深点坐标和尾深点坐标。(xμ,yμ)为当前流体段头深点坐标。
步骤12.3:针对当前流体段,根据步骤5得到的井段信息表查询当前流体段尾深所在的井段,并使用公式(5)计算当前流体段尾深在当前井段中的深度比例(用符号μ′表示)。
其中,为当前流体段尾深,DH和DT分别为当前井段头深和井段尾深。
步骤12.4:针对当前流体段,根据步骤5得到的井段信息表,使用公式(6)计算当前流体段尾深的深度比例μ′在油井中心线上对应的坐标点,该坐标点称为流体段尾深点。
其中,(xH,yH)和(xT,yT)分别是当前井段头深点坐标和尾深点坐标。(x′μ,y′μ)为当前流体段尾深点坐标。
步骤12.5:根据步骤4中建立的定位点信息表,查找井深在当前流体段尾深和头深之间的定位点,即得到当前流体段所包含的所有定位点。
步骤13:为当前时刻的各流体类型的状态数据建立流体段绘制信息表,包括:流体段唯一编号、流体段纹理编号、流体段定位点路径。每一种流体形状的流体类型对应一条记录。其中,所述流体段纹理编号为步骤6中为当前流体段的流体类型对应的纹理图片编排的唯一编号;每一个流体段定位点路径可通过如下操作得到:
对于内管型流体段定位点路径,由流体段头深点、流体段所包含的所有定位点以及流体段尾深点,按井深值从大至小的顺序连接而成;
对于环空型流体段定位点路径,由流体段头深点、流体段所包含的所有定位点以及流体段尾深点,按井深值从小至大的顺序连接而成。
步骤14:针对当前时刻的灌浆过程各流体类型的状态数据,执行绘制过程,获得当前时刻的灌浆过程展示结果。具体操作为:
步骤14.1:根据井筒绘制信息表,选择井筒纹理编号所对应的纹理,使用井筒内径与2倍井筒壁厚之和作为画笔宽度,按照井筒定位点路径绘制井筒展示结果;
步骤14.2:根据流体段绘制信息表,针对所有流体形状为环空型流体段,选择流体段纹理编号所对应的纹理,使用井筒内径作为画笔宽度,按照流体段定位点路径绘制流体段展示结果;
步骤14.3:根据石油套管绘制信息表,选择石油套管纹理编号所对应的纹理,使用石油套管外径作为画笔宽度,按照石油套管定位点路径绘制石油套管展示结果;
步骤14.4:根据流体段绘制信息表,针对所有流体形状为内管型流体段,选择流体段纹理编号所对应的纹理,使用石油套管内径作为画笔宽度,按照流体段定位点路径绘制流体段展示结果。
有益效果
本发明提出的一种基于可视化技术油井灌浆过程实时展示方法,与已有技术相比较具有直观、有效、操作简单,并能够实现灌浆过程中各种流体类型的状态实时展示等优点。
附图说明
图1为本发明具体实施方式中第12000时刻的灌浆过程展示结果图;
图2为本发明具体实施方式中第5400时刻的灌浆过程展示结果图;
图3为本发明具体实施方式中第17250时刻的灌浆过程展示结果图;
图4为本发明具体实施方式中第19650时刻的灌浆过程展示结果图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
本实施例使用本发明方法对油井灌浆过程进行可视化。具体实施步骤如下:
步骤1:建立二维直角坐标系,具体为:以油井井口中心点为坐标原点O;过井底中心点作一条竖直向上的直线LL;以过坐标原点O,并与直线LL垂直相交的方向为X轴;以过坐标原点O垂直向下的方向为Y轴。
步骤2:油井由多个井段组成,井段两端端面的中心点称为定位点。获取油井各定位点坐标。在实施例中,各定位点的坐标如下:(0,0,0)、(0,2055,0)、(69.08,2274.09,40.87)、(84.77,2296.50,41.30)、(380.00,2446.00,-54.89)、(391.69,2445.66,-54.89)和(1379.98,2410.00,-54.89),共7个定位点。连接各定位点建立油井中心线。
步骤3:根据步骤2所述各定位点坐标计算各定位点井深。第1个定位点(即井口位置)井深为Depth1=0;第2个定位点的井深根据公式(7)计算得到。
Depth2=Depth1+Dist1 (7)
其中Depth1为第1个定位点的井深,Dist1为第2个定位点与第1个定位点的距离,可使用公式(8)计算得到。
其中(x2,y2,z2)和(x1,y1,z1)分别为第2个和第1个定位点坐标。
根据公式(7)和公式(8)计算可得,第3至7个定位点的井深依次为:2288.33、2315.69、2660.31、2672.01和3660.95。
步骤4:建立定位点信息表,包括:定位点唯一编号、定位点X轴坐标、定位点Y轴坐标和定位点井深。所述定位点井深的值是由步骤3计算得到,第n个定位点井深的值即为Depthn。将每一个定位点生成一条记录,添加至定位点信息表中。
步骤5:建立井段信息表,包括:井段唯一编号、井段尾深点坐标、井段头深点坐标、井段尾深、井段头深和井段长度。所述井段头深和井段尾深即为井段两端的定位点井深,其中井段头深>井段尾深。所述井段长度的值是由步骤3计算得到,第n个和第n-1个定位点之间的井段称为第n-1个井段,其值为Distn-1。
在实施例中,7个定位点间共有6个井段,第1至6井段的井段长度的值依次为:2055、233.33、27.36、344.62、11.7和997.94。
将本实施例中的每一个井段生成一条记录添加至井段信息表中,信息如表1所示。
表1实施例中的井段信息表
唯一编号 |
井段尾深点坐标 |
井段头深点坐标 |
井段尾深 |
井段头深 |
井段长度 |
1 |
(0,0) |
(0,2055) |
0 |
2055 |
2055 |
2 |
(0,2055) |
(69.08,2274.09) |
2055 |
2288.33 |
233.33 |
3 |
(69.08,2274.09) |
(84.77,2296.50) |
2288.33 |
2315.69 |
27.36 |
4 |
(84.77,2296.50) |
(380.00,2446.00) |
2315.69 |
2660.31 |
344.62 |
5 |
(380.00,2446.00) |
(391.69,2445.66) |
2660.31 |
2672.01 |
11.7 |
6 |
(391.69,2445.66) |
(1379.98,2410.00) |
2672.01 |
3660.95 |
997.94 |
步骤6:为井筒、石油套管以及油井灌浆过程中涉及到的每一种流体类别设计一种纹理图片,并为每一种纹理图片编排唯一编号。所述流体类别包括钻井液、先导浆、冲洗液、隔离液、领浆、尾浆、重泥浆、原泥浆;所述井筒、石油套管及各种流体与纹理图片一一对应。本实施例的纹理图片名称与纹理编号的对应表如表2所示,纹理图片名称与具体的纹理图片如图1中的图例所示。
表2纹理图片名称与纹理编号的对应表
表述物体 |
纹理图片名称 |
纹理编号 |
井筒 |
井筒 |
001 |
石油套管 |
石油套管 |
002 |
钻井液 |
钻井液 |
003 |
先导浆 |
先导浆 |
004 |
冲洗液 |
冲洗液 |
005 |
隔离液 |
隔离液 |
006 |
领浆 |
领浆 |
007 |
尾桨 |
尾桨 |
008 |
重泥浆 |
重泥浆 |
009 |
原泥浆 |
原泥浆 |
010 |
步骤7:加载井筒和石油套管形状数据,所述井筒形状数据包括:井筒内径;所述石油套管形状数据包括:石油套管内径和石油套管外径。为井筒、石油套管及各种流体类别加载与之对应的纹理图片。为井筒设置展示结果中的井筒壁厚。
在本实施例中,井筒内径为0.3268,石油套管内径为0.2479,石油套管外径为0.2731。设置展示结果中的井筒壁厚为0.2。
步骤8:根据步骤4中建立的定位点信息表,建立井筒绘制信息表,包括:井筒定位点路径、井筒纹理编号、井筒内径和井筒壁厚。所述井筒定位点路径是由定位点信息表中的定位点,按井深值从小至大的顺序连接而成。所述井筒纹理编号为步骤6中为井筒对应的纹理图片编排的唯一编号。
步骤9:根据步骤4中建立的定位点信息表,建立石油套管绘制信息表,包括:石油套管定位点路径、石油套管纹理编号、石油套管外径。所述石油套管定位点路径是由定位点信息表中的定位点,按井深值从小至大的顺序连接而成。所述石油套管纹理编号为步骤6中为石油套管对应的纹理图片编排的唯一编号。
步骤10:实时采集灌浆过程中各流体类型的状态数据;所述状态数据包含流体形状、流体类别、流体段头深和流体段尾深。所述流体形状包括内管型和环空型。在内管型流体和环空型流体中,每一种流体对应一个流体段,流体段两端端面中心点的井深称为流体段的头深和尾深,对于内管型流体,其头深>尾深;对于环空型流体,其头深<尾深。
步骤11:针对步骤10采集到的灌浆过程中每一时刻的各流体类型的状态数据,执行步骤12至步骤14,获得当前时刻的灌浆过程展示结果,直至灌浆过程结束。
本实施例中,当前时刻(第12000时刻)的各流体类型的状态数据如表3所示。
表3当前时刻各流体类型状态数据
流体形状 |
流体类别 |
流体头深 |
流体尾深 |
环空型 |
钻井液 |
0 |
2345.86 |
环空型 |
先导浆 |
2345.86 |
2862.76 |
环空型 |
冲洗液 |
2862.76 |
3200.29 |
环空型 |
隔离液 |
3200.29 |
3844.67 |
环空型 |
领浆 |
3844.67 |
3660.95 |
内管型 |
领浆 |
3660.95 |
2568.31 |
内管型 |
尾浆 |
2568.31 |
1812.46 |
内管型 |
重泥浆 |
1812.46 |
531.21 |
步骤12:根据当前时刻的各流体类型的状态数据建立流体段信息表,包括:流体段唯一编号、流体形状、流体类别、流体段头深、流体段尾深、流体段头深点、流体段尾深点和流体段所包含的所有定位点。每一种流体形状的流体类型对应一条记录。
其中每一个流体段的流体段头深点、流体段尾深点和流体段所包含的所有定位点,可通过执行步骤12.1至步骤12.5的操作得到。本实施例中以当前时刻(第12000时刻)的其中一个流体段为例,说明流体段头深点、流体段尾深点和流体段所包含的所有定位点的计算步骤。
当前流体段的状态数据为:
流体形状:环空型;
流体类别:先导浆;
流体段头深:2345.86;
流体段尾深:2862.76;
步骤12.1:针对当前流体段,流体段头深为:2345.86,根据步骤5得到的井段信息表查询当前流体段头深所在的井段为第4井段,该井段头深为2315.69,尾深为2660.31。
使用公式(9)计算当前流体段头深在当前井段中的深度比例μ。
其中为当前流体段头深2345.86,DH和DT分别为当前井段头深2315.69和井段尾深2660.31。
步骤12.2:针对当前流体段,根据步骤5得到的井段信息表,使用公式(10)计算当前流体段头深的深度比例μ在油井中心线上对应的坐标点,该坐标点称为流体段头深点。
其中,(380.00,2446.00)和(84.77,2296.50)分别是当前井段头深定位点坐标和尾深定位点坐标。(110.60,2309.63)为当前流体段头深点坐标。
步骤12.3:针对当前流体段,流体段尾深为2862.76,根据步骤5得到的井段信息表查询当前流体段尾深所在的井段为第6井段,该井段头深为3660.95,尾深为2672.01。
使用公式(11)计算当前流体段尾深在当前井段中的深度比例μ′。
其中,为当前流体段尾深2862.76,DH和DT分别为当前井段头深3660.95和井段尾深2672.01。
步骤12.4:针对当前流体段,根据步骤5得到的井段信息表,使用公式(12)计算当前流体段尾深的深度比例μ′在油井中心线上对应的坐标点,该坐标点称为流体段尾深点。
其中,(1379.98,2410.00)和(391.69,2445.66)分别是当前井段头深点坐标和尾深点坐标。(582.43,2438.78)为当前流体段尾深点坐标。
步骤12.5:根据步骤4中建立的定位点信息表,查找井深在当前流体段尾深和头深之间的定位点,即得到当前流体段所包含的所有定位点,包括:
第5定位点:井深2660.31,坐标(380.00,2446.00);
第6定位点:井深2672.01,坐标(391.69,2445.66)。
步骤13:为当前时刻的各流体类型的状态数据建立流体段绘制信息表,包括:流体段唯一编号、流体段纹理编号、流体段定位点路径。每一种流体形状的流体类型对应一条记录。
本实施例中,仍以当前时刻(第12000时刻)的先导浆流体段为例,其对应的记录建立步骤如下:
步骤6中为先导浆对应的纹理图片编排的唯一编号为006;
当前流体形状为环空型,流体段定位点路径由流体段头深点、流体段所包含的所有定位点以及流体段尾深点,按井深值从小至大的顺序连接而成,路径为:(110.60,2309.63)、(380.00,2446.00)、(391.69,2445.66)和(582.43,2438.78)。
步骤14:针对当前时刻的灌浆过程各流体类型的状态数据,执行绘制过程,获得当前时刻的灌浆过程展示结果。具体操作为:
步骤14.1:根据井筒绘制信息表,选择井筒纹理编号所对应的纹理,使用井筒内径与2倍井筒壁厚之和(0.3268+2*0.2=0.7268)作为画笔宽度,按照井筒定位点路径绘制井筒展示结果;
步骤14.2:根据流体段绘制信息表,针对所有流体形状为环空型流体段,选择流体段纹理编号所对应的纹理,使用井筒内径(0.3268)作为画笔宽度,按照流体段定位点路径绘制流体段展示结果;
步骤14.3:根据石油套管绘制信息表,选择石油套管纹理编号所对应的纹理,使用石油套管外径(0.2731)作为画笔宽度,按照石油套管定位点路径绘制石油套管展示结果;
步骤14.4:根据流体段绘制信息表,针对所有流体形状为内管型流体段,选择流体段纹理编号所对应的纹理,使用石油套管内径(0.2479)作为画笔宽度,按照流体段定位点路径绘制流体段展示结果。当前时刻12000的灌浆过程展示结果如图1所示。
为了说明本发明的效果,同时给出第5400时刻、第17250时刻和第19650时刻的灌浆过程展示结果,分别如图2至图4所示。