全三维实时钻井模拟的方法

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

发明内容
本发明的目的是提供一种基于计算机仿真技术的全三维实时钻井模拟的方法,该方法参照钻井作业现场的实际场景,采用高度仿真的顶部驱动方式,对钻井工艺过程进行逼真模拟,生成高质量的图形,实现实时的可控动画,图形的生成快速稳定,提供给用户多角度、多视图的工作窗口 ,方便用户定位观测,在操作过程中既能观察整个场景,又能集中观察工艺作业下重要部件的工作过程,从而提高培训效果、縮短培训周期、降低培训成本,提升司钻、队长的操作水平及对井下复杂情况的分析判断能力和处理的能力。
为了达到上述目的,本发明采取以下方案全三维实时钻井模拟的方法,它包括以下步骤1)采用三维动画的建模方法建立三给钻井图形实体模型库;2)专门设置一个图形处理器,所述图形处理器包括图形绘制程序和视景仿真控制程序;3)视景仿真控制程序按照设定的数据格式与外部主控程序通讯,获取实时动画的指令和数据;(4)视景仿真控制程序对图形绘制程序发出作业指令,由图形绘制程序实现钻井模拟动画的绘制及展示;(5)重复步骤(3) (4)。 其中,所述的三维钻井动画图形的建模方法包括以下步骤 (1)几何建模对现场设备进行三个方向拍照,构建现场设备的立体外形; (2)物理建模对几何建模的结果进行纹理、颜色、光照处理; (3)运动建模对物体位置改变、碰撞、捕获、縮放和表面变形进行处理。
几何建模是开发虚拟现实系统中最基本、最重要的工作之一。虚拟环境中的几何
模型是物体几何信息的表示,涉及表示几何信息的数据结构、相关的构造与操纵该数据结
构的算法。虚拟环境中的每个物体包含形状和外观两个方面。物体的形状由构造物体的各
个多边形、三角形和顶点来确定,物体的外观则由表面纹理、颜色、光照系数等来决定。因
此,用于存储虚拟环境中几何模型的模型文件应该能够提供以上信息,同时还要满足虚拟
建模技术的三个常用指标交互显示能力、交互式操纵能力、易于构造的能力对虚拟对象模
型的要求。
几何建模技术分为体素和结构两个方面。体素用来构造物体的原子单位,体素的选取决定了建模系统所能构造的对象范围。结构用来决定体素如何组成新的对象。
物理建模指的是虚拟对象的质量、重量、惯性、表面纹理、硬度、变形模式等特征的建模,这些特征与几何建模和行为法则相融合,形成一个更具真实感的虚拟环境。物理建模是虚拟现实系统中比较高层次的建模,它需要物理学与计算机图形学配合,涉及到力的反馈问题,主要是重量建模、表面形变和软硬度等物体属性的体现。 在虚拟环境中,物体的特性还涉及到位置改变、碰撞、捕获、縮放和表面变形等,仅仅建立静态三位几何体对虚拟现实系统是不够的。 对象位置包括对象的移动、旋转和縮放。在虚拟现实系统中,不仅要涉及到绝对的坐标系统,还要涉及到每个对象相对的坐标系统。碰撞检测是VR技术的重要技术,它在运动建模中经常使用,例如虚拟环境中,人不能穿墙而过。碰撞检测技术是虚拟环境中对象与对象之间碰撞的一种识别技术。为了节省系统开销,本发明采用矩形边界检测方法。
其中,所述的三维图形实体模型库包括井架、井场和环境的模型,其中,井架模型包括绞车、防喷器、顶驱、猫头、立管管汇、液压大钳、节流控制箱、立杆盒、井架房间、安全卡瓦、钻杆、方钻杆、短接、钻铤、回压反尔、吊卡、单向阀、卡瓦和司控房的模型;井场模型包括发电机组系统、泥浆泵、泥浆池、节流管汇、分离器、远程控制台和压井管汇的模型;环境模型包括三维人物模型和背景模型。 顶部驱动钻井是旋转钻井技术的一项重大突破。传统的转盘钻井方法是通过转盘和方钻杆驱动钻具进行钻进,而顶部驱动钻井取消了转盘和方钻杆,由顶部马达直接驱动钻杆旋转,有关起下钻作业则通过钻杆操作装置实现,可接立根及起下钻、划眼等,大大提高了钻井效率,故本发明所述的井架模型是基于顶部驱动模式的模型。 模型建立的好坏与否将直接影响整个虚拟现实系统的质量,评价虚拟环境建模的技术指标有 (1)精确度。它是衡量模型表现现实物体精确程度的指标。 (2)显示速度。许多应用对显示时间有较大的限制。在交互式应用中,希望响应的时间越短越好,响应时间太长将大大影响系统的可用性。
(3)易用性。创建有效的模型是一个十分复杂的工作,创建者必须尽可能精确的表
现物体的几何和行为模型,建模技术应尽可能容易的创造和开发一个好的模型。
(4)广泛性。建模技术的广泛性是指它所能表示的物体的范围。好的建模技术可
以广泛地提供物体的几何建模和行为建模。 (5)操作效率。在实际运用过程中,模型的显示,运动模型的行为,在有多个运动物体的虚拟环境中进行碰撞检测等都是频度很高的操作,必须高效实现。 (6)实时显示。在虚拟环境中,模型的显示必须在某个最低帧率以上,这往往要求快速显示方法和模型简化算法。 图形处理器由图形绘制程序和视景仿真控制程序两部分组成。
由于系统规模较大,设计复杂,图形绘制程序的设计是基于面向对象的。鉴于在钻井工艺中涉及到的物体较多,并且各个物体在不同的方面有不同的特性,因此在设计之前,应确定设计类的准则。对本发明而言,这里关心的是用物体如何展现工艺流程,所以类的设计应该围绕物体的动画功能需要来进行,这些类包括
(1)设备类
全三维实时钻井模拟过程中涉及到动画的物体具有一些相同的特点,例如每个物体都具有场景坐标、旋转角度等特点,就将各个类中的相同属性和方法抽象出来集成为类Device。类Device是一个父类,它向子类提供了一些公共属性和方法。就属性而言,类Device的属性中除了场景坐标、旋转角度、上升速度之外、还应有ID, Device. preObject、Device. subObject等属性。其中ID是用来标志物体类型,由于钻井模拟器图形程序中动画涉及的物体类型较多,利用ID可以方便查找物体的类型。而属性Device. preObject、Device. subObject可以为查找某物体的前后物体带来便利。另外,类Device还应该具有公共方法,起钻中的物体都具有旋转、移动等动作,因此方法中必定有移动方法MoveDevice()和旋转方法RotateDevice()。鉴于所有物体都要以三维图形在计算机上显示出来,因此还应有物体的绘制方法,即Draw()。
(2)粒子类 鉴于全三维实时钻井模拟过程中模拟微观事物具有多样性,因此设计了粒子类,在系统设计中把粒子系统抽象为一个类,命名为Particle。与Device相同Particle是为完成粒子模拟功能中所设计的父类。父类Particle的属性有粒子分别在XYZ坐标轴上的位置以及坐标轴上的位置增量,还有粒子生命状态。而Particle的子类有Fire类、Gas类和Blowout类。Fire类主要用于火焰燃烧效果的模拟;Gas类主要用于正常钻进过程中钻到气层时,气体溢出的模拟;Blowout类主要用于发生井喷时,井口泥浆喷涌的效果模拟。
(3) Shader管理类 Shader的使用是通过调用OpenGL API中的函数,这个函数让Shader的应用可以直接与OpenGL驱动相连接,它是存储一个OpenGL着色片段不可缺少的数据结构。这些数据结构被称为着色对象(Shader Object)。在一个着色对象创建好后,应用程序通过调用glShaderSourceARB把着色代码提供给着色对象。为了有效的使用和管理编写好的Shader,在设计过程中专门设计了 GLShader类。这个类主要用来设定Shader对象,读入编写好的Vertex文件和Fragment文件,读入参数类型和参数值,读入纹理信息,Shader的使用和删除等。GLShader类的设计能使Shader的使用更为有效,提高了 Shader使用的灵活性和可重用性。视景仿真控制程序主要完成以下工作[OO32] (1)场景初始化 —个新的作业开始前,视景仿真控制程序在接收到外部主控程序发出的作业指令后初始化当前场景,例如钻井平台上各操作部件当前的数量、状态以及位置。[OO34] (2)工艺动画控制 将与主控机相互通信得到的参数及数据进行处理,体现出钻台上各种控制系统的运动参数、具体动作、视图选择(包括上视角、井下视角、防喷器视角、多视图显示等)等。
(3)与外部主控程序通信及参数显示 图形处理器与外部主控程序的通信通过广泛使用TCP/IP协议进行,它们之间通信的数据格式包括初始化数据格式、作业数据格式和状态信息格式。外部主控程序将通过处理后得到的与图形有关的数据发向图形处理器,这些数据包括起下钻速度、转盘转速、控制图形各种动作的信号;压井中的钻井液颜色、气柱长度等。这样就能够把钻井工艺流程中的各种动作以及钻井现场各种设备的状态、空间位置等控制信号和数据准确的发给图形处理器,使图形动画能迅速、准确地反映前端操作者的各种动作。
用C/C++描述的数据格式如下 外部主控程序发送给图形处理器的初始化及作业数据格式
union JSSendTUData
{ unsigned char buff[100]; struct
{ unsigned short state ;〃0 :表示初始数据,1 :表示作业数据 unsigned short dl ;〃表示云力作指令 float d2 ;〃在初始状态下表示吊环下平面离钻台平面高度,在作业状
态下表示物体上下的速度(单位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 dlO;〃在初始状态下表示钻杆上是否有3根打捞线}data ;structfloatjs ;〃井深floatgaslengthl ^//溢流气体长度
floatgasheightl ^//溢流气体底部距井底高度
floatgaslength2 ^//在现有的作业中无用,保留
floatgasheight2 ^//在现有的作业中无用,保留
floathkkillmudlength〃环空内压井泥浆长度floathkkillmudheight〃环空内压井泥浆距井底高度floathkovermudlength〃环空内重泥浆长度floathkovermudheight〃环空内重泥浆距井底高度floatzzkillmudlength〃钻柱内压井泥浆长度floatzzkillmudheight〃钻柱内压井泥浆距井口高度floatzzovermudlength〃钻柱内重泥浆长度floatzzovermudheight〃钻柱内重泥浆距井口高度unsigned short JingKongFlag ;〃在初始状态下表示本次作业是否为压井作业 皿digned short fireflag ;//点火标志 } jk ; }; 图形处理器发送给外部主控程序的数据格式
union JSRevTUData { unsigned char buff[20]; struct { float dl ;〃大钩高度 float d2 ;〃大钩速度 unsigned short d3 ;〃每个动作绘制完成标记 unsigned short d4 ;〃半封状态,O表示关,1表示中间状态,2表示开 unsigned short d5 ;〃全封状态,O表示关,1表示中间状态,2表示开 unsigned short d6 ;〃环形状态,0表示关,1表示中间状态,2表示开 unsigned short d7 ;〃小鼠洞是否有杆,0表示无杆,1表示有杆 unsigned short d8 ;〃吊环下挂物体是否在钻台平面下,O表示在下面, 1表示在上面 } data ; }; (4)碰撞处理 在三维图形的运动仿真过程中是不允许有"穿墙而过"的状况发生的,因此要对运
动物体作碰撞检测的处理。为了遵循模型运动的真实感,视景仿真控制程序包括碰撞的检
测与处理部分。
(5)特效渲染 实现对火焰、气泡、液体喷涌效果的模拟,使用GLSL实现电影级的光照效果,可以
分别模拟白天,夜晚,探照灯等光照模式,大大地提高了图形效果和真实感。 外部主控程序实时通过TCP/IP协议向图形处理器发送控制命令包括 (1)下钻 a正常下钻 b下钻遇阻情况下钻 c控制波动压力的下钻 (2)起钻 a正常起钻 b起钻遇卡情况下的起钻 C控制波动压力的起钻 (3)钻进 a正常钻进及接立柱
b不同地层可钻性条件下钻进 C正常钻进及蹩跳下的钻进 d高压地层钻进及接单根 e低压地层钻进及接单根 (4)井下事故及复杂情况判断和处理 a粘附卡钻的判断及处理 b沉砂卡钻的判断及处理 C泥包卡钻的判断及处理 d公锥打捞 e井下落物磨铣 (5)关井 a钻进过程中发生溢流的关井
b起钻过程中发生溢流的关井
C起钻铤时发生溢流的关井
d空井发生溢流的关井
(5)压井
a司钻法压井
b工程师法压井
c超重司钻法压井 全三维实时钻井模拟的工作流程大致为在一个新的作业开始前,图形处理器在 接收到外部主控程序发出的作业指令后初始化当前场景,例如钻井平台上各操作部件当 前的数量、状态以及位置,然后完成规定工艺作业。在完成规定工艺作业的过程中,前端操 作者做出的每一个动作都将传递给外部主控程序,再由外部主控程序发送协议数据给图形 处理器,图形处理器得到参数后,做出具体反映,体现出钻台上各种控制系统的运动参数、 具体动作、视图选择(包括上视角、井下视角、防喷器视角、多视图显示等)等,并将一些设
备状态参数和图形绘制完成标记反馈回外部主控程序。 本发明的有益效果是1)建立模型细致、真实,宏观模型和微观模型通过软件和 程序分别建模,真实感程度高;2)实现了高度仿真的顶部驱动模拟,更能适应技术的变化, 满足市场的需求;3)全三维动画实时、可控、清晰、流畅、与操作状态同步,使操作者能根据 图形反映的位置及状态进行钻井操作,更具真实感;4)实现了对钻井现场操作流程的逼真 模拟,让学员有身临其境的感受,有效提高了司钻、队长对节流管汇分析判断能力和处理的 能力,縮短培训周期、提高培训效果、降低培训成本。


图1全三维实时钻井模拟系统结构框图
图2全三维实时钻井模拟的工作流程示意图
图3图形处理器的组成框图
图4设备类及其部分子类的结构
图5粒子类及其部分子类的结构
图6Shader在0PENGL中的执行过程 图7设备类、粒子类和Shader管理类之间的调用关系
具体实施例方式
下面通过实施例进一步描述本发明的技术方案,本发明不限于所述实施例如图 1,为了实施本发明所述的技术方案,构建了一个钻井模拟系统,它包括主控计算机、图形处 理计算机和投影装置,主控计算机和图形处理计算机通过TCP/IP互联,图形处理计算机连 接投影装置,主控计算机上运行外部主控程序,图形处理计算机运行图形处理程序(即所 述的图形处理器),投影装置将实时全三维钻井模拟动画投影至大屏幕上。
如图2,全三维实时钻井模拟的方法,它包括如下步骤1)采用三维动画的建模方 法建立三维钻井图形实体模型库;2)专门设置一个图形处理器,所述图形处理器包括图形 绘制程序和视景仿真控制程序;3)视景仿真控制程序按照设定的数据格式与外部主控程 序通讯,获取关于起下钻速度、转盘速度、控制图形各种运动的信号、压井中的钻井液颜色、 刹把状态、泥浆排量、泥浆密度和气柱长度。4)视景仿真控制程序对图形绘制程序发出作业 指令,进行场景初始化、工艺动画控制、碰撞处理和特效渲染,最终完成钻井模拟的动画的 绘制及展示。 图3是图形处理器的组成框图,它包括一个全三维实体模型库、图形绘制程序和 视景仿真控制程序。建立一个完美的模型,是钻井模拟系统真实感体现最为重要的元素,钻 井模拟系统中虚拟环境的实现过程基本分为三步第一步是几何建模,主要包括用多边形 或三角形构成对象的立体外形;第二步是物理建模,主要包括对几何建模的结果进行纹理、 颜色、光照等处理;第三步是具体程序控制,主要通过运动建模的方法实现虚拟环境下的物 体运动模拟。前两步是虚拟场景的构建过程,第三步则是运动建模。 几何建模是开发虚拟现实系统中最基本、最重要的工作之一。虚拟环境中的几何 模型是物体几何信息的表示,涉及表示几何信息的数据结构、相关的构造与操纵该数据结 构的算法。虚拟环境中的每个物体包含形状和外观两个方面。物体的形状由构造物体的各 个多边形、三角形和顶点来确定,物体的外观则由表面纹理、颜色、光照系数等来决定。因 此,用于存储虚拟环境中几何模型的模型文件应该能够提供以上信息,同时还要满足虚拟 建模技术的三个常用指标交互显示能力、交互式操纵能力、易于构造的能力对虚拟对象模 型的要求。 几何建模技术分为体素和结构两个方面。体素用来构造物体的原子单位,体素的 选取决定了建模系统所能构造的对象范围。结构用来决定体素如何组成新的对象。
物理建模指的是虚拟对象的质量、重量、惯性、表面纹理、硬度、变形模式等特征的 建模,这些特征与几何建模和行为法则相融合,形成一个更具真实感的虚拟环境。物理建模 是虚拟现实系统中比较高层次的建模,它需要物理学与计算机图形学配合,涉及到力的反 馈问题,主要是重量建模、表面形变和软硬度等物体属性的体现。分形技术和粒子系统就是 典型的物理建模方法。
(1)分形技术 分形技术可以描述具有自相似特征的数据集。自相似结构可用于复杂的不规则外 形物体的建模。该技术首先被用于河流和山体的地理特征建模。
分形技术的优点是用简单的操作就可以完成复杂的不规则物体建模,缺点是计算 量太大,不利于实时性。因此,在虚拟现实中一般仅用于静态远景的建模。
(2)粒子系统 粒子系统是一种典型的物理建模系统,粒子系统是用简单的体素完成复杂运动的 建模。粒子系统有大量称为粒子的简单体素构成,每个粒子具有位置、速度、颜色和生命期 等属性,这些属性可以根据动力学计算和随机周期得到。在虚拟现实中,粒子系统常用于描 述火焰、水流、雨雪、旋风、喷泉等现象。在虚拟现实中粒子系统用于动态的、运动的物体建 模。 在虚拟环境中,物体的特性还涉及到位置改变、碰撞、捕获、縮放和表面变形等,仅 仅建立静态三位几何体对虚拟现实系统是不够的。 对象位置包括对象的移动、旋转和縮放。在虚拟现实系统中,不仅要涉及到绝对的 坐标系统,还要涉及到每个对象相对的坐标系统。碰撞检测是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()这个 方法以设置大钩当前的状态。 图4是起钻工艺过程中涉及到的设备类。起钻工艺只是众多工艺流程中的一个, 当然在模拟钻井过程中还有其它流程,涉及到其它许多设备,这些设备被抽象为类,也都是 Device的子类。 由于系统模拟微观事物的多样性,粒子系统的使用在整个系统中也有较高的重用 性,因此设计了粒子类。 图5展示了粒子类的类图。在系统设计中把粒子系统抽象为一个类,命名为 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成为新一代的三维图形工业标准。 图6说明了 Shader在0penGL中的执行过程,Shader的使用是通过调用OpenGL
API中的函数。OpenGL提供了一个新的函数glCreateShaderObjectARB,这个函数让Shader
的应用可以直接与OpenGL驱动相连接,它是存储一个OpenGL着色片段不可缺少的数据结
构。这些数据结构被称为着色对象(Shader Object)。在一个着色对象创建好后,应用程序
通过调用glShaderSourceARB把着色代码提供给着色对象。 为了有效的使用和管理编写好的Shader,在设计过程中专门设计了 GLShader类。 这个类主要用来设定Shader对象,读入编写好的Vertex文件和Fragment文件,读入参数 类型和参数值,读入纹理信息,Shader的使用和删除等。GLShader类的设计能使Shader的 使用更为有效,提高了 Shader使用的灵活性和可重用性。 由于父类Device和Particle所有的属性和方法都是公有的,因此子类可以调用 父类的所有方法。鉴于子类较多,这里只给出父类间的调用关系,如图7所示。面向对象的 设计方法非常灵活,系统可以根据需要方便的添加新的类、属性和方法,对程序的扩展是非 常有利的。 视景仿真控制程序主要负责与外部主控程序通讯,获取实时动画的指令和数据,
对图形绘制程序发出作业指令完成实时动画的绘制,由于在三维图形的运动仿真过程中是
不允许有"穿墙而过"的状况发生的,所以视景仿真控制程序要对运动物体作碰撞检测与
处理,为了提高图形效果和真实感,采用渲染特效,模拟火焰、气泡、液体喷涌效果,还使用
GLSL实现电影级的光照效果,可以分别模拟白天,夜晚,探照灯等光照模式。 在作业开始后,由外部主控程序发出指令让视角固定,也可以通过外部主控程序
发出指令让图形分成三个部分进行分屏显示,外部主控程序接收来自前端操作者发出的各
种指令及参数信息,并行数据处理。然后通过TCP/IP协议将数据处理后得到的与图形有关
的数据发向图形处理器,这些数据包括起下钻速度、转盘转速、控制图形各种动作的信号;
压井中的钻井液颜色、气柱长度等,图形处理器得到数据后,做出具体反映,体现出钻台上
各种控制系统的运动参数、具体动作、视图选择(包括上视角、井下视角、防喷器视角、多视
图显示等)等,并将一些设备状态参数和图形绘制完成标记反馈回外部主控程序。 图形处理器与外部主控程序之间通信的数据格式如下 a外部主控程序发送给图形处理器的初始化及作业数据格式
union JSSendTUData
{ unsigned char buff[100] 5 struct
{ unsigned short state ;〃0 :表示初始数据,1 :表示作业数据 unsigned short dl ;〃表示云力作指令 float d2 ;〃在初始状态下表示吊环下平面离钻台平面高度,在作业状
态下表示物体上下的速度(单位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 dlO;〃在初始状态下表示钻杆上是否有3根打捞线}data 5structfloatjs ;〃井深floatgaslengthl ^//溢流气体长度floatgasheightl ^//溢流气体底部距井底高度floatgaslength2 ^//在现有的作业中无用,保留floatgasheight2 ^//在现有的作业中无用,保留floathkkillmudlength;〃环空内压井泥浆长度floathkkillmudheight ;〃环空内压井泥浆距井底高度floathkovermudlength;〃环空内重泥浆长度floathkovermudheight ;〃环空内重泥浆距井底高度floatzzkillmudlength;〃钻柱内压井泥浆长度floatzzkillmudheight ;〃钻柱内压井泥浆距井口高度floatzzovermudlength;〃钻柱内重泥浆长度floatzzovermudheight ;〃钻柱内重泥浆距井口高度unsigned short JingKongFlag ;〃在初始状态下表示本次作业是否为压井作业皿digned short fireflag 〃/点火标志
}jk; }; b图形处理器发送给外部主控程序的状态信息数据格式 union JSRevTUData { unsigned char buff[20]; struct { float dl ;〃大钩高度 float d2 ;〃大钩速度 unsigned short d3 ;〃每个动作绘制完成标记 unsigned short d4 ;〃半封状态,O表示关,1表示中间状态,2表示开 unsigned short d5 ;〃全封状态,O表示关,1表示中间状态,2表示开 unsigned short d6 ;〃环形状态,0表示关,1表示中间状态,2表示开 unsigned short d7 ;〃小鼠洞是否有杆,0表示无杆,1表示有杆 unsigned short d8 ;〃吊环下挂物体是否在钻台平面下,O表示在下面, 1表示在上面 }data; }; 这样就把钻井工艺流程中的各种动作以及钻井现场各种设备的状态、空间位置等 控制信号和数据准确的发给图处理器,使图形能迅速、准确地反映前端操作者的各种动作, 完成全三维实时钻井模拟。
权利要求
全三维实时钻井模拟的方法,其特征在于它包括以下步骤(1)采用三维动画的建模方法建立三维钻井图形实体模型库;(2)专门设置一个图形处理器,所述图形处理器包括图形绘制程序和视景仿真控制程序;(3)视景仿真控制程序按照设定的数据格式与外部主控程序通讯,获取实时动画的指令和数据;(4)视景仿真控制程序对图形绘制程序发出作业指令,由图形绘制程序实现钻井模拟动画的绘制及展示;(5)重复步骤(3)~(4)。
2. 根据权利要求1所述的全三维实时钻井模拟的方法,其特征在于所述的三维图形 实体模型库包括井架、井场和环境的模型。
3. 根据权利要求1所述的全三维实时钻井模拟的方法,其特征在于所述的三维动画 的建模方法包括以下步骤(1) 几何建模对现场设备进行三个方向拍照,构建现场设备的立体外形;(2) 物理建模对几何建模的结果进行纹理、颜色、光照处理;(3) 运动建模对物体位置改变、碰撞、捕获、縮放和表面变形进行处理。
4. 根据权利要求1所述的全三维实时钻井模拟的方法,其特征在于所述的视景仿真 控制程序包括以下单元模块(1) 与外部主控程序通讯,获取实时动画的指令和数据;(2) 场景初始化;(3) 工艺动画控制;(4) 碰撞处理;(5) 特效渲染;(6) 参数显示。
5. 根据权利要求1所述的全三维实时钻井模拟的方法,其特征在于所述的图形绘制 程序包括以下单元模块(1) 设备类图形绘制;(2) 粒子类图形绘制;(3) 管理类图形绘制;(4) 工艺动画绘制。
6. 根据权利要求1所述的全三维实时钻井模拟的方法,其特征在于所述的数据格式 包括初始化数据格式、作业数据格式和状态信息格式。
7. 根据权利要求1和2所述的全三维实时钻井模拟的方法,其特征在于所述的井架 模型是基于顶部驱动模式的模型。
全文摘要
本发明公开了一种全三维实时钻井模拟的方法,它包括以下步骤(1)采用三维动画建模方法建立三维钻井图形实体模型库;(2)专门设置一个图形处理器,所述图形处理器包括图形绘制程序和视景仿真控制程序;(3)视景仿真控制程序按照设定的数据格式与外部主控程序通讯,获取实时动画的指令和数据;(4)视景仿真控制程序对图形绘制程序发出作业指令,图形绘制程序实现钻井模拟动画绘制及展示。本发明基于计算机仿真技术并参照钻井作业现场的实际操作流程,对钻井工艺过程和操作方法进行逼真模拟,生成高质量图形动画,用于钻井现场操作人员和在校学生的技术技能培训,提高了培训效果、缩短了培训周期、降低了培训成本。
文档编号G09B25/00GK101719332SQ20091021664
公开日2010年6月2日 申请日期2009年12月8日 优先权日2009年12月8日
发明者梅大成, 胡卫东, 赵刚, 郑巧, 陈利学, 陈秋实, 龚捷 申请人:西南石油大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1