钻井模拟器压力控制模拟方法

文档序号:2570446阅读:193来源:国知局
专利名称:钻井模拟器压力控制模拟方法
技术领域
本发明涉及一种钻井模拟方法,特别是涉及一种钻井模拟器压力控制模拟方法。
背景技术
石油工业是一种技术密集型行业,钻井作业是石油工业拿储量、上产量的重要手 段之一。由于石油钻井生产条件的限制和井下情况的复杂性,使石油钻井作业面临极大的 风险。为了获得更好生产效率和经济效益,减少人为事故的发生,对钻井现场操作人员和工 程技术人员的技术技能培训就显得十分重要。压井的模拟处于钻井过程中的较为重要的一 部分,所以钻井模拟器压力控制模拟显得举足轻重。 目前,钻井操作培训主要在生产现场进行,由于各种条件和因素的制约,使培训内 容受到极大的限制,培训的系统性、培训效果及培训人员数量等都受到极大的影响。

发明内容
本发明的目的即在于克服现有技术的缺点,提供一种基于计算机仿真技术的钻井 模拟器压力控制模拟方法,该方法是参照钻井作业现场的实际操作流程,对钻井模拟器压 力控制的工作原理和操作方法进行逼真模拟,增强教学培训的现场感,縮短培训周期、提高 培训效果、降低培训成本。 本发明的目的通过以下技术方案来实现钻井模拟器压力控制模拟方法,专门针
对钻井模拟器压力控制的控制程序,按照以下步骤实现压力控制的模拟 (1)读取前端设备的状态参数和操作指令; (2)根据获得的设备状态参数和操作指令类别以及预先建立的钻井模拟器压力控 制的模型,计算出实现压力控制模拟动画的作业数据; (3)按照设定的数据格式与专门设置的图形处理单元通讯,交换初始化数据和作 业数据,图形处理单元根据此数据完成钻井模拟器压力控制的动画展现;
(4)按照设定的数据格式与图形处理单元通讯,交换动画状态信息;
(5)重复前述步骤(1) (4)。 钻井模拟器压力控制模拟控制程序必须持续不断的与前端设备进行通信,以获取
前端的设备状态以及获取培训学员的操作过程。这样做有以下几个原因 (1)实时获取前端硬件的设备状态后,经过压力控制模拟控制程序处理,可以驱动
图形处理单元产生与硬件设备操作同步的动画过程。比如在图形处理单元中,大钩的上升
和下降过程就是受前端绞车离合器,脚油门,刹把,离合器档位等部件的控制。
(2)实时获取的前端设备状态也是压力控制模拟控制程序中模拟数学模型的基础数据。 钻井模拟器压力控制模拟控制程序所计算出的压力控制参数也需要实时传输给 前端设备,所以钻井模拟器压力控制模拟控制程序和前端设备之间的通信具备双向、高速 和稳定的特性。
操作指令类别包括司钻法压井指令、工程师法压井指令和超重泥浆司钻法压井指令。 司钻法压井的操作过程为开始本次作业,设置泥浆泵冲数,排出受侵污泥浆,判断是否排完,如果没有排完则返回排出受侵污泥浆;如果已经排完,则加大泥浆密度,重泥浆压井,判断是否压井完毕,如果没有则返回继续压井,如果已经压井完毕则结束本次作业。 工程师法压井的操作过程为开始本次作业,设置泥浆泵冲数,加大泥浆密度,然后重泥浆压井,判断是否压井完毕,如果没有则返回继续压井,如果已经压井完毕则结束本次作业。 超重泥浆司钻法压井的操作过程为开始本次作业,准备超重泥浆,泵入超重泥浆,判断循环是否完毕,如果循环已完,然后调整泥浆密度,压井泥浆压井,判断是否压井完毕,如果没有则返回继续压井,如果已经压井完毕则结束本次作业。 本发明所述的压力控制模拟必须建立在严格的数学模型基础上,这样才能使钻井
模拟器压力控制模拟的各种参数符合实际现场的情况,才能达到良好的培训效果。 本发明所采用的钻井模拟器压力控制模型包括波动压力计算模型、井底压力平衡
判别模型、dc指数地层压力监测模型和井口可控最大套压值模型。模型使用的设备状态参
数包括初始状态参数和动态参数,初始状态参数包括运动管柱内径、运动管长度、雷诺数、
井眼直径、钻柱外径、钻柱内径、井深、起钻柱起出长度、井眼半径、钻杆外径和钻杆内径; 动态参数包括环空平均流速VT、考虑平衡安全的地层压力附加值P。环空压降P,、
流动摩阻系数f、稠度系数K、流性指数n、塑性粘度n、泥浆动切力T。、泥浆液柱压力Pm、钻
井液密度、正常地层压力当量泥浆密度Pm、实际使用的泥浆密度P 、钻压P、转速N、机械钻
速V、井底有效压力Pb和地层有效压力PP。 钻井模拟器压力控制模型条件的假设 (1)钻井液环空携岩能力Lc > 0. 5 ;环空钻屑浓度Ca < 0. 09 ;环空流态稳定参数值Z《井眼稳定值Z值。 (2)所用通用钻速方程是建立在地层统计可钻性的基础上的,它反映了不均质地层可钻性的宏观规律。只要按《钻井手册(甲方)》选出相应的钻头类型,建立准确的地层可钻性梯度公式,纳入设计的程序,即可得出符合实际的结果。 (3)波动压力的分析与计算是建立在刚性液柱(钻井液与井内管柱为不可压縮)理论基础上的。
(4)钻井中发生溢流时,单位时间内进入环空的泥浆和气体形成的混气泥浆是均匀混合的。在这种假设下,我们可以将单位体积的混和泥浆中的气体含量看成是相等的。
(5)发现溢流后,应及时停泵关井。在井内压力平衡前,地层气体仍然会不断地进入井内。因此,假设从停泵关井到关井稳定这段时间内,井内形成一段连续的纯气柱;且在压井过程中,此连续气柱不被破坏。
(6)气体从地层中进入井筒符合达西定律。 (7)若进入井内的溢流为气体,则假设气体溢流在环空内上升时要膨胀,其膨胀过程符合气体状态方程,且忽略气体滑脱现象。若进入井内的溢流为液体,则假设液体溢流在上升过程中不发生膨胀和滑脱现象。
(8)电动机的输出功率按恒定值考虑。
(9)假设井内的地温梯度为一常数,则
井底压力=地温梯度X井深+井口温度 (10)地层破裂压力梯度为一常数,则井内任一点的地层破裂压力为该点井深乘以地层破裂压力梯度。
(11)通用钻速方程式在假设影响钻速的钻压指数、转速指数、水力参数、钻井液密度差与地层宏观性等这些单因素是互不影响的独立变量的基础上建立起来的函数关系。
由于本模型主要用于模拟培训,因此,在计算时间、计算精度和和准确度发生冲突时,原则上以保时间为主,而将过分复杂的数学模型进行了适当简化,但保证定性方面的准确性。
建立的钻井模拟器压力控制的模型包括
( — )、波动压力计算模型;=n 。^ 式中P,—环空压降千帕 L—运动管长度米 P—泥浆密度克/厘米3 f—流动摩阻系数 层流时f = 24/Re 紊流时
0.3164 <formula>formula see original document page 5</formula>
<formula>formula see original document page 5</formula>
Re > 2000紊流(宾汉流体)
Re > 3470-1370n紊流(幂律流体)
K一稠度系数帕.秒n
n—流性指数无因次n —塑性粘度帕*秒
T。一泥桨动切力帕
对于复合钻具,应分别进行计算,然后相加。
(二) 、井底压力平衡判别模型
Pm-P地〉0
式中Pm—泥浆液柱压力(KPa)<formula>formula see original document page 6</formula>
H—井深(m)
L一起钻柱起出长度(m)
R, ri, r2-井眼半径,钻杆外径和钻杆内径(n
P 一钻井液密度(g/cm3)
(三) 、dc指数地层压力监测模型
lo g (-)
p , , 0 .0 6 4 8 P 、 式中p m—正常地层压力当量泥浆密度,克/厘米3 p —实际使用的泥浆密度,克/厘米3 P—钻压,千牛 N—转速,转/分 V—机械钻速,米/小时 D—钻头直径,毫米(四)、井口可控最大套压值模型 为确保压井安全,在压井过程中,控制最大井口压力不超过井口装置的最大承受能力,套管鞋处受力不超过套管鞋处地层的破裂压力以及套管的抗内压强度。关井稳定后的井底压力应等于或略大于地层压力。
即Pa。 = Pa隨。《min {Pa。, Paf , Pai}
Pb = Pp或Pb = Pp+Pe[OO79] 式中Pb—井底压力,千帕 钻井模拟器压力控制模拟控制程序与图形处理单元的通信通过广泛使用TCP/IP
协议进行。钻井模拟器压力控制模拟控制程序将通过数据处理得到的与图形有关的数据发
向图形处理单元,这样就能够把压力控制的各种动作以及钻井现场各种设备的状态、空间
位置等控制信号和数据准确的发给图形单元,使图形能迅速、准确地反映前端操作者的各
种动作。钻井模拟器压力控制的控制程序与图形处理单元通信的数据格式如下 (1)钻井模拟器压力控制的控制程序发送给图形处理单元的初始化及作业数据格
式<formula>formula see original document page 6</formula> {
<formula>formula see original document page 6</formula>
struct
unsigned short state ;〃0 :表示初始数据,l :表示作业数据unsigned short dl ;//表示动作指令float d2 ;〃在初始状态下表示吊环下平面离钻台平面高度,在作业状态下表示物体上下的速度(单位m/s,可正可负)
0088] float d3 ;〃在初始状态下表示井深,在作业状态下表示顶驱旋转速度(单
立r/min,可正可负)
:0089] unsigned short d4 ;〃在初始状态下表示井下钻杆数量(单位根),在作业
状态下表示吊环前/后倾斜角度(单位度,可正可负)
OOSO] 皿signed short d5 ;〃在初始状态下表示大钩下挂钻杆数量(注意如果d5
有值,则d4的值没有意义),在作业状态下表示吊环旋转角度(单位度,可正可负)
:0091]
0092] 0093] 0094] 0095] 0096] 0097] 0098] 0099] :0100] :0101] :0102] :0103]
:0104] :0105] :0106]
0107]
0108]
0109]
0110]
0111 ]
0112]
'乍业
0113]
:0114]
:0115] :0116] :o"7] :om] :o"9]
0120] 0121]
unsigned short d6 unsigned short d7 unsigned short d8 unsigned short d9 unsigned short dlO
}data ;
struct
在初始状态下表示立杆盒钻杆数量(单位柱) 在初始状态下表示井下钻挺数量(单位根) 在初始状态下表示立杆盒钻挺数量(单位柱) 在初始状态下表示本次作业是否为压井作业 /在初始状态下表示钻杆上是否有3根打捞线
float js ;〃井深 float gaslengthl float gasheightl float gaslength2 float gasheight2 float hkkillmudlength float hkkillmudheight float hkovermudlength float hkovermudheight float zzkillmudlength float zzkillmudheight float zzovermudlength float zzovermudheight
溢流气体长度 溢流气体底部距井底高度 在现有的作业中无用,保留 在现有的作业中无用,保留 v环空内压井泥浆长度 v环空内压井泥浆距井底高度 v环空内重泥浆长度 v环空内重泥浆距井底高度
'7钻柱内压井泥浆长度 '7钻柱内压井泥浆距井口高度 V钻柱内重泥浆长度 V钻柱内重泥桨距井口高度
unsigned short JingKongFlag ;〃在初始状态下表示本次作业是否为压井
undigned short, fireflag ;,
}jk;
点火标志
(2)图形处理单元发送给钻井模拟器压力控制的控制程序的数据格式 union JSRevTUData
struct
float dl ;〃大钩高度
float d2;〃大钩速度
unsignedshortd3〃每个动作绘制完成标记unsignedshortd4〃半封状态,O表示关,l表示中间状态,2表示开unsignedshortd5〃全封状态,0表示关,1表示中间状态,2表示开unsignedshortd6〃环形状态,0表示关,1表示中间状态,2表示开unsignedshortd7〃小鼠洞是否有杆,O表示无杆,1表示有杆unsignedshortd8〃吊环下挂物体是否在钻台平面下,o表示在下面,
1表示在上面 }data;
}; 由于系统规模较大,设计复杂,图形绘制程序的设计是基于面向对象的。鉴于在钻 井模拟器压力控制中涉及到的物体较多,并且各个物体在不同的方面有不同的特性,因此 在设计之前,应确定设计类的准则。对本发明而言,这里关心的是用物体如何展现压力控制 的过程,所以类的设计应该围绕物体的动画功能需要来进行,而所涉及到的图形处理单元 包括图形绘制程序和视景仿真控制程序。 其中,图形绘制程序主要包括设备类图形绘制、粒子类图形绘制、管理类图形绘制 和工艺动画绘制,视景仿真控制程序主要包括场景初始化、工艺动画控制、碰撞处理和特效渲染。 类的设计包括
(1)设备类 钻井模拟器压力控制模拟中涉及到动画的物体具有一些相同的特点,例如每个 物体都具有场景坐标、旋转角度等特点,就将各个类中的相同属性和方法抽象出来集成为 类Device。类Device是一个父类,它向子类提供了一些公共属性和方法。就属性而言,类 Device的属性中除了场景坐标、旋转角度、上升速度之外、还应有ID, Device, pre0bject、 Device, sub0bject等属性。其中ID是用来标志物体类型,由于本发明中动画涉及的物体类 型较多,利用ID可以方便查找物体的类型。而属性Device. pre0bject、Device. sub0bject 可以为查找某物体的前后物体带来便利。另外,类Device还应该具有公共方法,钻井中 的物体都具有旋转、移动等动作,因此方法中必定有移动方法MoveDevice()和旋转方法 RotateDevice()。鉴于所有物体都要以三维图形在计算机上显示出来,因此还应有物体的 绘制方法,即Draw()。
(2)粒子类 钻井模拟器压力控制模拟中模拟微观事物具有多样性,因此设计了粒子类,在系 统设计中把粒子系统抽象为一个类,命名为Particle。与Device相同Particle是为完成 粒子模拟功能中所设计的父类。父类Particle的属性有粒子分别在XYZ坐标轴上的位置 以及坐标轴上的位置增量,还有粒子生命状态。而Particle的子类有Fire类、Gas类和 Blowout类。Fire类主要用于火焰燃烧效果的模拟;Gas类主要用于正常钻进过程中钻到 气层时,气体溢出的模拟;Blowout类主要用于发生井喷时,井口泥浆喷涌的效果模拟。
(3)Shader管理类 Shader的使用是通过调用OpenGL API中的函数,这个函数让Shader的应用可以直接与0penGL驱动相连接,它是存储一个OpenGL着色片段不可缺少的数据结构。这 些数据结构被称为着色对象(Shader Object)。在一个着色对象创建好后,应用程序通过 调用glShaderSourceARB把着色代码提供给着色对象。为了有效的使用和管理编写好的 Shader,在设计过程中专门设计了 GLShader类。这个类主要用来设定Shader对象,读入编 写好的Vertex文件和Fragment文件,读入参数类型和参数值,读入纹理信息,Shader的使 用和删除等。GLShader类的设计能使Shader的使用更为有效,提高了 Shader使用的灵活 性和可重用性。 视景仿真控制程序主要完成以下工作
(1)场景初始化 —个新的作业开始前,图形处理单元在接收到钻井模拟器压力控制模拟控制程序 发出的作业指令后初始化当前场景,例如钻井平台上各操作部件当前的数量、状态以及位置。 (2)工艺动画控制 将与钻井模拟器压力控制的控制程序相互通信得到的参数及数据进行处理,体现 出钻台上各种控制系统的运动参数、具体动作、视图选择(包括上视角、井下视角、防喷器 视角、多视图显示等)等。 [OH5] (3)碰撞处理 在三维图形的运动仿真过程中是不允许有"穿墙而过"的状况发生的,因此要对运
动物体作碰撞检测的处理。为了遵循模型运动的真实感,视景仿真控制程序包括碰撞的检
测与处理部分。
(4)特效渲染 实现对火焰、气泡、液体喷涌效果的模拟,使用GLSL实现电影级的光照效果,可以
分别模拟白天,夜晚,探照灯等光照模式,大大地提高了图形效果和真实感。 本发明的有益效果是提供了钻井模拟器压力控制的模拟方法,即参照钻井作业
现场的实际操作流程,对压力控制的工作原理和操作方法进行逼真模拟,增强教学培训的
现场感,縮短培训周期、提高培训效果、降低培训成本。


图l钻井模拟器的组成结构2钻井模拟器压力控制模拟控制程序组成框3钻井模拟器压力控制模拟控制程序流程4钻井模拟器压力控制模拟控制程序与前端设备通信框5司钻法压井操作流程6工程师法压井操作流程7超重泥浆司钻法压井操作流程8图形处理单元的组成框9设备类及其部分子类的结构图10粒子类及其部分子类的结构图11Shader在0PENGL中的执行过程
9
图12设备类、粒子类和Shader管理类之间的调用关系
具体实施例方式
下面通过实施例进一步描述本发明的技术方案,本发明不限于所述实施例。
为了实施本发明所述的技术方案,构建了一个钻井模拟系统,如图l,它包括主控 计算机、图形处理计算机、前端设备和投影设备,主控计算机和图形处理单元通过TCP/IP 互联,前端设备与主控计算机通过Siemens PPI协议互联,图形处理计算机连接投影设备, 主控计算机上运行压力控制模拟控制程序,图形计算机运行图形处理单元,前端设备包括 节流管汇、高压管汇、防喷器控制台、阻流器控制台、远程控制台和司钻控制台,投影设备包 括两台投影仪和一个大尺寸屏幕。 如图2是钻井模拟器压力控制模拟控制程序的组成,钻井模拟器压力控制模拟控 制程序包括与前端硬件设备及图形处理单元通信的通信模块和压力控制模拟模块,与前端 硬件设备通信是为了实时获得硬件设备状态,然后在内部通过相关数学模型,模拟钻井模 拟器毅力控制,钻井模拟器压力控制模拟包括司钻法压井模拟、工程师法压井模拟和超重 泥桨司钻法压井模拟。进而通过TCP/IP协议向图形处理单元发送控制命令,驱动图形处理 单元产生与硬件设备操作同步的动画过程;并将信号反馈给前端硬件,使前端仪表参数的 显示符合现场情况。 如图3,钻井模拟器压力控制模拟方法,钻井模拟器压力控制模拟控制程序,按照 以下步骤实现压力控制模拟 (1)读取前端设备的状态参数和操作指令; (2)根据获得的设备状态参数和操作指令类别以及预先建立的钻井模拟器压力控 制模型,计算出实现压力控制模拟动画的作业数据; (3)按照设定的数据格式与专门设置的图形处理单元通讯,交换初始化数据和作
业数据,图形处理单元根据此数据完成压力控制的动画展现; (4)按照设定的数据格式与图形处理单元通讯,交换动画状态信息; (5)重复前述步骤(1) (4)。 由于前端设备采用PLC进行控制和处理,因此本发明采用通用的0PC技术实现通 信过程。 OPC服务器使用西门子公司提供的S7-200 0PC Server。并且在西门子公司提供 的PCAccess软件中建立0PC服务器和需要访问的PLC硬件系统存储单元的映射关系。
在钻井模拟器压力控制模拟的控制程序中实现OPC客户端功能。利用支持 C++Builder的I0C0MP组件能够轻松建立客户端和服务器的通信过程。
如图4是钻井模拟器压力控制模拟控制程序与前端设备通信框图。该通信框图包 括0PC客户机,0PC服务器和PLC系统,其中0PC客户机通过0PC接口与0PC服务器连接, 0PC服务器通过PPI电缆与PLC系统连接。 操作指令类别主要包括司钻法压井指令、工程师法压井指令和超重泥浆司钻法 压井指令。 如图5是司钻法压井操作流程图,其工作流程大致可描述为开始本次作业,设置 泥浆泵冲数,排出受侵污泥桨,判断是否排完,如果没有排完则返回排出受侵污泥浆;如果已经排完,则加大泥浆密度,重泥浆压井,判断是否压井完毕,如果没有则返回继续压井,如 果已经压井完毕则结束本次作业。 如图6是工程师法压井操作流程图,其工作流程大致可描述为开始本次作业,设 置泥浆泵冲数,加大泥浆密度,然后重泥浆压井,判断是否压井完毕,如果没有则返回继续 压井,如果已经压井完毕则结束本次作业。 如图7是超重泥浆司钻法压井操作流程图,其工作流程大致可描述为开始本次 作业,准备超重泥浆,泵入超重泥浆,判断循环是否完毕,如果循环已完,然后调整泥浆密 度,压井泥浆压井,判断是否压井完毕,如果没有则返回继续压井,如果已经压井完毕则结 束本次作业。 本发明所述的压力控制模拟必须建立在严格的数学模型基础上,这样才能使钻井
模拟器压力控制模拟的各种参数符合实际现场的情况,才能达到良好的培训效果。 本发明所采用的钻井模拟器压力控制模型包括波动压力计算模型、井底压力平衡
判别模型、dc指数地层压力监测模型和井口可控最大套压值模型。模型使用的设备状态参
数包括初始状态参数和动态参数,初始状态参数包括运动管柱内径、运动管长度、雷诺数、
井眼直径、钻柱外径、钻柱内径、井深、起钻柱起出长度、井眼半径、钻杆外径和钻杆内径;动
态参数包括环空平均流速^、考虑平衡安全的地层压力附加值P。环空压降P,、流动摩阻系
数f、稠度系数K、流性指数n、塑性粘度n、泥浆动切力T。、泥浆液柱压力Pm、钻井液密度、
正常地层压力当量泥浆密度Pm、钻井液密度、正常地层压力当量泥浆密度Pm、实际使用的
泥浆密度P 、钻压P、转速N、机械钻速V、井底有效压力Pb和地层有效压力PP。 如图8是图形处理单元的组成框图,它包括一个全三维实体模型库、图形绘制程
序和视景仿真控制程序。 建立一个完美的模型,是钻井模拟系统真实感体现最为重要的元素,钻井模拟系 统中虚拟环境的实现过程基本分为三步第一步是几何建模,主要包括用多边形或三角形 构成对象的立体外形;第二步是物理建模,主要包括对几何建模的结果进行纹理、颜色、光 照等处理;第三步是具体程序控制,主要通过运动建模的方法实现虚拟环境下的物体运动 模拟。前两步是虚拟场景的构建过程,第三步则是运动建模。 几何建模是开发虚拟现实系统中最基本、最重要的工作之一。虚拟环境中的几何 模型是物体几何信息的表示,涉及表示几何信息的数据结构、相关的构造与操纵该数据结 构的算法。虚拟环境中的每个物体包含形状和外观两个方面。物体的形状由构造物体的各 个多边形、三角形和顶点来确定,物体的外观则由表面纹理、颜色、光照系数等来决定。因 此,用于存储虚拟环境中几何模型的模型文件应该能够提供以上信息,同时还要满足虚拟 建模技术的三个常用指标交互显示能力、交互式操纵能力、易于构造的能力对虚拟对象模 型的要求。 几何建模技术分为体素和结构两个方面。体素用来构造物体的原子单位,体素的 选取决定了建模系统所能构造的对象范围。结构用来决定体素如何组成新的对象。
物理建模指的是虚拟对象的质量、重量、惯性、表面纹理、硬度、变形模式等特征的 建模,这些特征与几何建模和行为法则相融合,形成一个更具真实感的虚拟环境。物理建模 是虚拟现实系统中比较高层次的建模,它需要物理学与计算机图形学配合,涉及到力的反 馈问题,主要是重量建模、表面形变和软硬度等物体属性的体现。
在虚拟环境中,物体的特性还涉及到位置改变、碰撞、捕获、縮放和表面变形等,仅 仅建立静态三位几何体对虚拟现实系统是不够的。 对象位置包括对象的移动、旋转和縮放。在虚拟现实系统中,不仅要涉及到绝对的 坐标系统,还要涉及到每个对象相对的坐标系统。碰撞检测是VR技术的重要技术,它在运 动建模中经常使用,例如虚拟环境中,人不能穿墙而过。碰撞检测技术是虚拟环境中对象与 对象之间碰撞的一种识别技术。为了节省系统开销,本发明采用矩形边界检测方法。
本实施例中用三维建模工具3ds max建立所有设备的模型,将3ds max所绘制 的模型导入到实时3D环境虚拟实境编辑软件Virtools中,根据设备的物理特性配置 Virtools中模型的所有特性,使用Virtools控制模型的运动和显示,在初始状态下可以实 现全场景的漫游,搭建Cave环境实现全三维仿真。 图形绘制程序的设计是面向对象的,本发明将钻井模拟器压力控制中涉及到的对 象分为三类设备类图、粒子类和shader管理类。 系统中涉及到动画的物体具有一些相同的特点,例如每个物体都具有场景坐标、 旋转角度等特点,于是就可以将各个类中的相同属性和方法抽象出来集成为类Device。 类Device是一个父类,它向子类提供了一些公共属性和方法。就属性而言,类Device的 属性中除了场景坐标、旋转角度、上升速度之外、还应有ID, Device. preObject、 Device. sub0bject等属性。其中ID是用来标志物体类型,由于本发明中图形单元中动画涉及的 物体类型较多,利用ID可以方便查找物体的类型。而属性Device. preObject、 Device. subObject可以为查找某物体的前后物体带来便利。另外,类Device还应该具有公共方法, 起钻中的物体都具有旋转、移动等动作,因此方法中必定有移动方法MoveDevice()和旋转 方法RotateDevice()。鉴于所有物体都要以三维图形在计算机上显示出来,因此还应有物 体的绘制方法,即Draw()。根据分析,从父类派生下来的是大钩、液压大钳等子类,它们不仅 继承了父类的公有属性和方法,还具有自己的属性和方法。例如大钩就有SetState()这个 方法以设置大钩当前的状态。 图9是钻井模拟器压力控制过程中涉及到的设备类及其部分子类。 由于系统模拟微观事物的多样性,粒子系统的使用在整个系统中也有较高的重用
性,因此设计了粒子类。 图10展示了粒子类及其子类。在系统设计中把粒子系统抽象为一个类,命名为 Particle。与Device相同Particle是为完成粒子模拟功能中所设计的父类。父类Particle 的属性有粒子分别在XYZ坐标轴上的位置以及坐标轴上的位置增量,还有粒子生命状态。 而Particle的子类有Fire类、Gas类和Blowout类。Fire类主要用于火焰燃烧效果的模 拟;Gas类主要用于正常钻进过程中钻到气层时,气体溢出的模拟;Blowout类主要用于发 生井喷时,井口泥浆喷涌的效果模拟。这些子类还分别有自己的属性,例如粒子大小、大小 增量、颜色分量R/G/B等。 Particle类的方法主要是Init () 、 Draw(),用于对粒子的初始化和绘制,而子类 中引入了继承结构中的多态性概念。由于Fire、 Gas、 Blowout粒子系统采用的数学模型不 同,所以各自的绘制方法都不尽相同,每个子类都有自己的初始化状态和绘制方法。除了共 有的Init () 、 Draw()方法,每个子类有自己的私有方法,例如Fire类就有计算尾焰、向量 计算等方法。
OpenGL是目前跨平台最广泛的三维图形引擎,它在真实感图形制作上的优秀性能
使之成为诸大公司的图形标准,所以OpenGL成为新一代的三维图形工业标准。 图11说明了 Shader在0penGL中的执行过程,Shader的使用是通过调用OpenGL
API中的函数。OpenGL提供了一个新的函数glCreateShaderObjectARB,这个函数让Shader
的应用可以直接与OpenGL驱动相连接,它是存储一个OpenGL着色片段不可缺少的数据结
构。这些数据结构被称为着色对象(Shader Object)。在一个着色对象创建好后,应用程序
通过调用glShaderSourceARB把着色代码提供给着色对象。 为了有效的使用和管理编写好的Shader,在设计过程中专门设计了 GLShader类。 这个类主要用来设定Shader对象,读入编写好的Vertex文件和Fragment文件,读入参数 类型和参数值,读入纹理信息,Shader的使用和删除等。GLShader类的设计能使Shader的 使用更为有效,提高了 Shader使用的灵活性和可重用性。 由于父类Device和Particle所有的属性和方法都是公有的,因此子类可以调用 父类的所有方法。鉴于子类较多,这里只给出父类间的调用关系,如图12所示。面向对象 的设计方法非常灵活,系统可以根据需要方便的添加新的类、属性和方法,对程序的扩展是 非常有利的。 视景仿真控制程序主要负责与钻井模拟器压力控制模拟控制程序的通讯,获取实 时动画的指令和数据,对图形绘制程序发出作业指令完成实时动画的绘制,由于在三维图 形的运动仿真过程中是不允许有"穿墙而过"的状况发生的,所以视景仿真控制程序要对运 动物体作碰撞检测与处理,为了提高图形效果和真实感,采用渲染特效,模拟火焰、气泡、液 体喷涌效果,还使用GLSL实现电影级的光照效果,可以分别模拟白天,夜晚,探照灯等光照 模式。 在作业开始后,由钻井模拟器压力控制程序发出指令让视角固定,也可以通过钻 井模拟器压力控制模拟控制程序发出指令让图形分成三个部分进行分屏显示,钻井模拟器 压力控制模拟控制程序接收来自前端操作者发出的各种指令及参数信息,并行数据处理。 然后通过TCP/IP协议将数据处理后得到的与图形有关的数据发向图形处理单元,这些数 据包括起下钻速度、转盘转速、控制图形各种动作的信号;压井中的钻井液颜色、气柱长 度等,图形处理单元得到数据后,做出具体反映,体现出钻台上各种控制系统的运动参数、 具体动作、视图选择(包括上视角、井下视角、防喷器视角、多视图显示等)等,并将一些设
备状态参数和图形绘制完成标记反馈回压力控制模拟控制程序。
图形处理单元与钻井模拟器压力控制模拟控制程序之间通信的数据格式如下
A钻井模拟器压力控制程序发送给图形处理单元的初始化及作业数据格式
union JSSendTUData
{




unsigned short state ;〃0 :表示初始数据,l :表示作业数据
float d2 ;〃在初始状态下表示吊环下平面离钻台平面高度,在作业状
13态下表示物体上下的速度(单位m/s,可正可负) float d3 ;〃在初始状态下表示井深,在作业状态下表示顶驱旋转速度
(单位r/min,可正可负) unsigned short d4 ;〃在初始状态下表示井下钻杆数量(单位根),在
作业状态下表示吊环前/后倾斜角度(单位度,可正可负) unsigned short d5 ;〃在初始状态下表示大钩下挂钻杆数量(注意如
果d5有值,则d4的值没有意义),在作业状态下表示吊环旋转角度(单位度,可正可负)unsigned short d6 ;〃在初始状态下表示立杆盒钻杆数量(单位柱)
unsigned short d7 ;〃在初始状态下表示井下钻挺数量(单位根)
unsigned short d8 ;〃在初始状态下表示立杆盒钻挺数量(单位柱)
unsigned short d9 ;〃在初始状态下表示本次作业是否为压井作业
unsigned short d10 ;〃在初始状态下表示钻杆上是否有3根打捞线
}data ;structfloatJS ;〃井深floatgaslengthl ;〃溢流气体长度floatgasheightl ;〃溢流气体底部距井底高度floatgaslength2 ;〃在现有的作业中无用,保留floatgasheight2 ;〃在现有的作业中无用,保留floathkkillmudlength ;〃环空内压井泥浆长度floathkkillmudheight ;〃环空内压井泥浆距井底高度floathkovermudlength ;〃环空内重泥桨长度floathkovermudheight ;〃环空内重泥浆距井底高度floatzzkillmudlength ;〃钻柱内压井泥浆长度floatzzkillmudheight ;〃钻柱内压井泥浆距井口高度floatzzovermudlength ;〃钻柱内重泥桨长度floatzzovermudheight ;〃钻柱内重泥浆距井口高度unsigned short JingKongFlag ;〃在初始状态下表示本次作业是否为压井作业皿digned short fireflag 〃/点火标志
i;B图形处理单元发送给钻井模拟器压力控制程序的状态信息数据格式
union 了SRevTUData
unsigned char buff[20] 5
struct
float dl;〃大钩高度float d2;〃大钩速度unsignedshort d3 ;//每个动作绘制完成标记unsignedshort d4 ;//半封状态,O表示关,l表示中间状态,2表示开unsignedshort d5 ;//全封状态,0表示关,1表示中间状态,2表示开unsignedshort d6 ;//环形状态,O表示关,l表示中间状态,2表示开unsignedshort d7 ;//小鼠洞是否有杆,O表示无杆,1表示有杆unsignedshort d8 ;//吊环下挂物体是否在钻台平面下,o表示在下面,
1表示在上面}data ; }; 这样就把压力控制流程中的各种动作以及钻井现场各种设备的状态、空间位置等控制信号和数据准确的发给图形处理单元,使图形能迅速、准确地反映前端操作者的各种动作,完成全三维实时钻井模拟器压力控制的模拟。
权利要求
钻井模拟器压力控制模拟方法,其特征是专门针对钻井模拟器压力控制模拟的控制程序,按照以下步骤实现压力控制模拟(1)读取前端设备的状态参数和操作指令;(2)根据获得的设备状态参数和操作指令类别以及预先建立的钻井模拟器压力控制模型,计算出实现压力控制模拟动画的作业数据;(3)按照设定的数据格式与专门设置的图形处理单元通讯,交换初始化数据和作业数据,图形处理单元根据此数据完成钻井模拟器压力控制的动画展现;(4)按照设定的数据格式与图形处理单元通讯,交换动画状态信息;(5)重复前述步骤(1)~(4)。
2. 根据权利要求1所述的钻井模拟器压力控制模拟方法,其特征是所述的设备状态 参数包括初始状态参数和动态参数,其中,初始状态参数包括运动管柱内径、运动管长度、 雷诺数、井眼直径、钻柱外径、钻柱内径、井深、起钻柱起出长度、井眼半径、钻杆外径和钻杆 内径; _动态参数包括环空平均流速、、考虑平衡安全的地层压力附加值P。环空压降P,、流动 摩阻系数f、稠度系数K、流性指数n、塑性粘度n、泥浆动切力T。、泥浆液柱压力Pm、钻井液 密度、正常地层压力当量泥浆密度Pm、实际使用的泥浆密度P 、钻压P、转速N、机械钻速V、 井底有效压力Pb和地层有效压力PP。
3. 根据权利要求1所述的钻井模拟器压力控制模拟方法,其特征是所述的操作指令 包括司钻法压井指令、工程师法压井指令和超重泥浆司钻法压井指令。
4. 根据权利要求1所述的钻井模拟器压力控制模拟方法,其特征是所述的钻井模拟器压力控制模型包括波动压力计算模型、井底压力平衡判别模型、dc指数地层压力监测模 型和井口可控最大套压值模型。
5. 根据权利要求1所述的钻井模拟器压力控制模拟方法,其特征是所述的数据格式包括初始化数据格式、作业数据格式和动画状态信息格式。
6. 根据权利要求1所述的钻井模拟器压力控制模拟方法,其特征是所述的图形处理 单元包括图形绘制程序和视景仿真控制程序,其中,图形绘制程序包括设备类图形绘制、粒 子类图形绘制、管理类图形绘制和工艺动画绘制,视景仿真控制程序包括工艺动画控制、碰 撞处理、特效渲染和参数显示。
全文摘要
本发明公开的一种钻井模拟器压力控制模拟方法,包括以下步骤1)读取前端设备的状态参数和操作指令;2)根据设备状态参数和操作指令类别及预先建立的压力控制模型计算出实现压力控制模拟动画的作业数据;3)按照设定的数据格式与专门设置的图形处理单元通讯,交换初始化数据和作业数据;4)图形处理单元根据此数据完成压力控制的动画展现;5)按照设定的数据格式与图形处理单元通讯,交换动画状态信息。本发明基于计算机仿真技术并参照钻井作业现场的实际操作流程,对压力控制的原理和操作方法进行逼真模拟,用于钻井现场操作人员和在校学生的技术技能培训,增强了教学培训的现场感,缩短了培训周期,提高了培训效果,降低了培训成本。
文档编号G09B25/02GK101710468SQ20091026342
公开日2010年5月19日 申请日期2009年12月16日 优先权日2009年12月16日
发明者梅大成, 胡卫东, 赵刚, 郑巧, 陈利学, 陈秋实, 龚捷 申请人:西南石油大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1