发明名称 一种基于可视化技术的油井灌浆过程实时展示方法
摘要 本发明涉及计算机应用领域,针对当前油井灌浆过程中,灌浆过程描述困难、灌浆流程表达不清晰的问题,提供一种基于可视化技术的油井灌浆过程实时展示方法。与已有技术相比较具有直观、有效、操作简单,并能够实现灌浆过程中各种流体类型的状态实时展示等优点。
申请公布号 CN104268908A 申请公布日期 2015.01.07
申请号 CN201410441297.5 申请日期 2014.09.02
申请人 北京工商大学 发明人 陈红倩;陈谊;侯堃;蔡强
分类号 G06T11/00(2006.01)I;G06F17/50(2006.01)I 主分类号 G06T11/00(2006.01)I
代理机构 代理人
主权项 一种基于可视化技术的油井灌浆过程实时展示方法,其特征在于:其包含如下步骤:步骤1:建立二维直角坐标系,具体为:以油井井口中心点为坐标原点O;过井底中心点作一条竖直向上的直线LL;以过坐标原点O,并与直线LL垂直相交的方向为X轴;以过坐标原点O垂直向下的方向为Y轴;步骤2:油井由多个井段组成,井段两端端面的中心点称为定位点;获取油井各定位点坐标,连接各定位点建立油井中心线;步骤3:根据步骤2所述各定位点坐标计算各定位点井深;第1个定位点(即井口位置)井深为Depth<sub>1</sub>=0;第n个定位点的井深根据公式(1)计算得到,n≥2;Depth<sub>n</sub>=Depth<sub>n‑1</sub>+Dist<sub>n‑1</sub>  (1)其中Depth<sub>n‑1</sub>为第n‑1个定位点的井深,Dist<sub>n‑1</sub>为第n个定位点与第n‑1个定位点的距离,可使用公式(2)计算得到;<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>Dist</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>=</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>-</mo><msub><mi>x</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><msub><mi>y</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mi>n</mi></msub><mo>-</mo><msub><mi>z</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000107822910000011.GIF" wi="1827" he="78" /></maths>其中(x<sub>n</sub>,y<sub>n</sub>,z<sub>n</sub>)和(x<sub>n‑1</sub>,y<sub>n‑1</sub>,z<sub>n‑1</sub>)分别为第n个和第n‑1个定位点坐标;步骤4:建立定位点信息表,包括:定位点唯一编号、定位点X轴坐标、定位点Y轴坐标和定位点井深;所述定位点井深的值是由步骤3计算得到,第n个定位点井深的值即为Depth<sub>n</sub>;将每一个定位点生成一条记录,添加至定位点信息表中;步骤5:建立井段信息表,包括:井段唯一编号、井段尾深点坐标、井段头深点坐标、井段尾深、井段头深和井段长度;所述井段头深和井段尾深即为井段两端的定位点井深,其中井段头深>井段尾深;所述井段长度的值是由步骤3计算得到,第n个和第n‑1个定位点之间的井段称为第n‑1个井段,其值为Dist<sub>n‑1</sub>;将油井的每一个井段生成一条记录,添加至井段信息表中;步骤6:为井筒、石油套管以及油井灌浆过程中涉及到的每一种流体类别设计一种纹理图片,并为每一种纹理图片编排唯一编号;所述流体类别包括钻井液、先导浆、冲洗液、隔离液、领浆、尾浆、重泥浆、原泥浆;所述井筒、石油套管及各种流体与纹理图片一一对应;步骤7:加载井筒和石油套管形状数据,所述井筒形状数据包括:井筒内径,所述石油套管形状数据包括:石油套管内径和石油套管外径;为井筒、石油套管及各种流体类别加载与之对应的纹理图片;为井筒设置展示结果中的井筒壁厚;步骤8:根据步骤4中建立的定位点信息表,建立井筒绘制信息表,包括:井筒定位点路径、井筒纹理编号、井筒内径和井筒壁厚;所述井筒定位点路径是由定位点信息表中的定位点,按井深值从小至大的顺序连接而成;所述井筒纹理编号为步骤6中为井筒对应的纹理图片编排的唯一编号;步骤9:根据步骤4中建立的定位点信息表,建立石油套管绘制信息表,包括:石油套管定位点路径、石油套管纹理编号、石油套管外径;所述石油套管定位点路径是由定位点信息表中的定位点,按井深值从小至大的顺序连接而成;所述石油套管纹理编号为步骤6中为石油套管对应的纹理图片编排的唯一编号;步骤10:实时采集灌浆过程中各流体类型的状态数据;所述状态数据包含流体形状、流体类别、流体段头深和流体段尾深;所述流体形状包括内管型和环空型;在内管型流体和环空型流体中,每一种流体对应一个流体段,流体段两端端面中心点的井深称为流体段的头深和尾深,对于内管型流体,其头深>尾深;对于环空型流体,其头深<尾深;步骤11:针对步骤10采集到的灌浆过程中每一时刻的各流体类型的状态数据,执行步骤12至步骤14,获得当前时刻的灌浆过程展示结果,直至灌浆过程结束;步骤12:根据当前时刻的各流体类型的状态数据建立流体段信息表,包括:流体段唯一编号、流体形状、流体类别、流体段头深、流体段尾深、流体段头深点、流体段尾深点和流体段所包含的所有定位点;每一种流体形状的流体类型对应一条记录;其中每一个流体段的流体段头深点、流体段尾深点和流体段所包含的所有定位点,可通过执行步骤12.1至步骤12.5的操作得到;步骤12.1:针对当前流体段,根据步骤5得到的井段信息表查询当前流体段头深所在的井段,并使用公式(3)计算当前流体段头深在当前井段中的深度比例μ;<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>&mu;</mi><mo>=</mo><mrow><mo>(</mo><msubsup><mi>D</mi><mi>H</mi><mi>L</mi></msubsup><mo>-</mo><msub><mi>D</mi><mi>T</mi></msub><mo>)</mo></mrow><mo>/</mo><mrow><mo>(</mo><msub><mi>D</mi><mi>H</mi></msub><mo>-</mo><msub><mi>D</mi><mi>T</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000107822910000021.GIF" wi="1830" he="61" /></maths>其中<img file="FSA0000107822910000022.GIF" wi="62" he="59" />为当前流体段头深,D<sub>H</sub>和D<sub>T</sub>分别为当前井段头深和井段尾深;步骤12.2:针对当前流体段,根据步骤5得到的井段信息表,使用公式(4)计算当前流体段头深的深度比例μ在油井中心线上对应的坐标点,该坐标点称为流体段头深点;<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>x</mi><mi>&mu;</mi></msub><mo>=</mo><msub><mi>x</mi><mi>T</mi></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>H</mi></msub><mo>-</mo><msub><mi>x</mi><mi>T</mi></msub><mo>)</mo></mrow><mo>*</mo><mi>&mu;</mi></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>&mu;</mi></msub><mo>=</mo><msub><mi>y</mi><mi>T</mi></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>y</mi><mi>H</mi></msub><mo>-</mo><msub><mi>y</mi><mi>T</mi></msub><mo>)</mo></mrow><mo>*</mo><mi>&mu;</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000107822910000031.GIF" wi="1832" he="138" /></maths>其中,(x<sub>H</sub>,y<sub>H</sub>)和(x<sub>T</sub>,y<sub>T</sub>)分别是当前井段头深点坐标和尾深点坐标;(x<sub>μ</sub>,y<sub>μ</sub>)为当前流体段头深点坐标;步骤12.3:针对当前流体段,根据步骤5得到的井段信息表查询当前流体段尾深所在的井段,并使用公式(5)计算当前流体段尾深在当前井段中的深度比例μ′;<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msup><mi>&mu;</mi><mo>&prime;</mo></msup><mo>=</mo><mrow><mo>(</mo><msubsup><mi>D</mi><mi>T</mi><mi>L</mi></msubsup><mo>-</mo><msub><mi>D</mi><mi>T</mi></msub><mo>)</mo></mrow><mo>/</mo><mrow><mo>(</mo><msub><mi>D</mi><mi>H</mi></msub><mo>-</mo><msub><mi>D</mi><mi>T</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000107822910000032.GIF" wi="1831" he="58" /></maths>其中<img file="FSA0000107822910000033.GIF" wi="58" he="58" />为当前流体段尾深,D<sub>H</sub>和D<sub>T</sub>分别为当前井段头深和井段尾深;步骤12.4:针对当前流体段,根据步骤5得到的井段信息表,使用公式(6)计算当前流体段尾深的深度比例μ′在油井中心线上对应的坐标点,该坐标点称为流体段尾深点;<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>x</mi><mi>&mu;</mi><mo>&prime;</mo></msubsup><mo>=</mo><msub><mi>x</mi><mi>T</mi></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>H</mi></msub><mo>-</mo><msub><mi>x</mi><mi>T</mi></msub><mo>)</mo></mrow><mo>*</mo><msup><mi>&mu;</mi><mo>&prime;</mo></msup></mtd></mtr><mtr><mtd><msubsup><mi>y</mi><mi>&mu;</mi><mo>&prime;</mo></msubsup><mo>=</mo><msub><mi>y</mi><mi>T</mi></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>y</mi><mi>H</mi></msub><mo>-</mo><msub><mi>y</mi><mi>T</mi></msub><mo>)</mo></mrow><mo>*</mo><msup><mi>&mu;</mi><mo>&prime;</mo></msup></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000107822910000034.GIF" wi="1831" he="140" /></maths>其中,(x<sub>H</sub>,y<sub>H</sub>)和(x<sub>T</sub>,y<sub>T</sub>)分别是当前井段头深点坐标和尾深点坐标;(x′<sub>μ</sub>,y′<sub>μ</sub>)为当前流体段尾深点坐标;步骤12.5:根据步骤4中建立的定位点信息表,查找井深在当前流体段尾深和头深之间的定位点,即得到当前流体段所包含的所有定位点;步骤13:为当前时刻的各流体类型的状态数据建立流体段绘制信息表,包括:流体段唯一编号、流体段纹理编号、流体段定位点路径;每一种流体形状的流体类型对应一条记录;其中,所述流体段纹理编号为步骤6中为当前流体段的流体类型对应的纹理图片编排的唯一编号;每一个流体段定位点路径可通过如下操作得到:对于内管型流体段定位点路径,由流体段头深点、流体段所包含的所有定位点以及流体段尾深点,按井深值从大至小的顺序连接而成;对于环空型流体段定位点路径,由流体段头深点、流体段所包含的所有定位点以及流体段尾深点,按井深值从小至大的顺序连接而成;步骤14:针对当前时刻的灌浆过程各流体类型的状态数据,执行绘制过程,获得当前时刻的灌浆过程展示结果;具体操作为:步骤14.1:根据井筒绘制信息表,选择井筒纹理编号所对应的纹理,使用井筒内径与2倍井筒壁厚之和作为画笔宽度,按照井筒定位点路径绘制井筒展示结果;步骤14.2:根据流体段绘制信息表,针对所有流体形状为环空型流体段,选择流体段纹理编号所对应的纹理,使用井筒内径作为画笔宽度,按照流体段定位点路径绘制流体段展示结果;步骤14.3:根据石油套管绘制信息表,选择石油套管纹理编号所对应的纹理,使用石油套管外径作为画笔宽度,按照石油套管定位点路径绘制石油套管展示结果;步骤14.4:根据流体段绘制信息表,针对所有流体形状为内管型流体段,选择流体段纹理编号所对应的纹理,使用石油套管内径作为画笔宽度,按照流体段定位点路径绘制流体段展示结果。
地址 100037 北京市海淀区阜成路33号