CN101719332A - 全三维实时钻井模拟的方法 - Google Patents
全三维实时钻井模拟的方法 Download PDFInfo
- Publication number
- CN101719332A CN101719332A CN200910216644A CN200910216644A CN101719332A CN 101719332 A CN101719332 A CN 101719332A CN 200910216644 A CN200910216644 A CN 200910216644A CN 200910216644 A CN200910216644 A CN 200910216644A CN 101719332 A CN101719332 A CN 101719332A
- Authority
- CN
- China
- Prior art keywords
- drilling
- dimensional
- control program
- simulation
- animation
- 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.)
- Pending
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种全三维实时钻井模拟的方法,它包括以下步骤:(1)采用三维动画建模方法建立三维钻井图形实体模型库;(2)专门设置一个图形处理器,所述图形处理器包括图形绘制程序和视景仿真控制程序;(3)视景仿真控制程序按照设定的数据格式与外部主控程序通讯,获取实时动画的指令和数据;(4)视景仿真控制程序对图形绘制程序发出作业指令,图形绘制程序实现钻井模拟动画绘制及展示。本发明基于计算机仿真技术并参照钻井作业现场的实际操作流程,对钻井工艺过程和操作方法进行逼真模拟,生成高质量图形动画,用于钻井现场操作人员和在校学生的技术技能培训,提高了培训效果、缩短了培训周期、降低了培训成本。
Description
技术领域
本发明涉及一种模拟钻井的方法,特别是涉及一种全三维实时钻井模拟的方法。
背景技术
石油工业是一种技术密集型行业,钻井作业是石油工业拿储量、上产能的重要手段之一。由于石油钻井生产条件的限制和井下情况的复杂性,使石油钻井作业面临极大的风险。为了获得更好生产效率和经济效益,减少人为事故的发生,对钻井现场操作人员和工程技术人员的技术技能培训就显得十分重要。
目前,钻井操作培训主要在生产现场进行,由于各种条件和因素的制约,使培训内容受到极大的限制,培训的系统性、培训效果及培训人员数量等都受到极大的影响。
发明内容
本发明的目的是提供一种基于计算机仿真技术的全三维实时钻井模拟的方法,该方法参照钻井作业现场的实际场景,采用高度仿真的顶部驱动方式,对钻井工艺过程进行逼真模拟,生成高质量的图形,实现实时的可控动画,图形的生成快速稳定,提供给用户多角度、多视图的工作窗口,方便用户定位观测,在操作过程中既能观察整个场景,又能集中观察工艺作业下重要部件的工作过程,从而提高培训效果、缩短培训周期、降低培训成本,提升司钻、队长的操作水平及对井下复杂情况的分析判断能力和处理的能力。
为了达到上述目的,本发明采取以下方案:全三维实时钻井模拟的方法,它包括以下步骤: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使用的灵活性和可重用性。视景仿真控制程序主要完成以下工作:
(1)场景初始化
一个新的作业开始前,视景仿真控制程序在接收到外部主控程序发出的作业指令后初始化当前场景,例如:钻井平台上各操作部件当前的数量、状态以及位置。
(2)工艺动画控制
将与主控机相互通信得到的参数及数据进行处理,体现出钻台上各种控制系统的运动参数、具体动作、视图选择(包括上视角、井下视角、防喷器视角、多视图显示等)等。
(3)与外部主控程序通信及参数显示
图形处理器与外部主控程序的通信通过广泛使用TCP/IP协议进行,它们之间通信的数据格式包括初始化数据格式、作业数据格式和状态信息格式。外部主控程序将通过处理后得到的与图形有关的数据发向图形处理器,这些数据包括:起下钻速度、转盘转速、控制图形各种动作的信号;压井中的钻井液颜色、气柱长度等。这样就能够把钻井工艺流程中的各种动作以及钻井现场各种设备的状态、空间位置等控制信号和数据准确的发给图形处理器,使图形动画能迅速、准确地反映前端操作者的各种动作。
用C/C++描述的数据格式如下:
外部主控程序发送给图形处理器的初始化及作业数据格式:
union JSSendTUData
{
unsigned char buff[100];
struct
{
unsigned short state;//0:表示初始数据,1:表示作业数据
unsigned short d1;//表示动作指令
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 d10;//在初始状态下表示钻杆上是否有3根打捞线
}data;
struct
{
float js;//井深
float gaslength1;//溢流气体长度
float gasheight1;//溢流气体底部距井底高度
float gaslength2;//在现有的作业中无用,保留
float gasheight2;//在现有的作业中无用,保留
float hkkillmudlength;//环空内压井泥浆长度
float hkkillmudheight;//环空内压井泥浆距井底高度
float hkovermudlength;//环空内重泥浆长度
float hkovermudheight;//环空内重泥浆距井底高度
float zzkillmudlength;//钻柱内压井泥浆长度
float zzkillmudheight;//钻柱内压井泥浆距井口高度
float zzovermudlength;//钻柱内重泥浆长度
float zzovermudheight;//钻柱内重泥浆距井口高度
unsigned short JingKongFlag;//在初始状态下表示本次作业是否为压井作业
undigned short fireflag;//点火标志
}jk;
};
图形处理器发送给外部主控程序的数据格式
union JSRevTUData
{
unsigned char buff[20];
struct
{
float d1;//大钩高度
float d2;//大钩速度
unsigned short d3;//每个动作绘制完成标记
unsigned short d4;//半封状态,0表示关,1表示中间状态,2表示开
unsigned short d5;//全封状态,0表示关,1表示中间状态,2表示开
unsigned short d6;//环形状态,0表示关,1表示中间状态,2表示开
unsigned short d7;//小鼠洞是否有杆,0表示无杆,1表示有杆
unsigned short d8;//吊环下挂物体是否在钻台平面下,0表示在下面,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在OPENGL中的执行过程
图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.subObject等属性。其中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在OpenGL中的执行过程,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];
struct
{
unsigned short state;//0:表示初始数据,1:表示作业数据
unsigned short d1;//表示动作指令
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 d10;//在初始状态下表示钻杆上是否有3根打捞线
}data;
struct
{
float js;//井深
float gaslength1;//溢流气体长度
float gasheight1;//溢流气体底部距井底高度
float gaslength2;//在现有的作业中无用,保留
float gasheight2;//在现有的作业中无用,保留
float hkkillmudlength;//环空内压井泥浆长度
float hkkillmudheight;//环空内压井泥浆距井底高度
float hkovermudlength;//环空内重泥浆长度
float hkovermudheight;//环空内重泥浆距井底高度
float zzkillmudlength;//钻柱内压井泥浆长度
float zzkillmudheight;//钻柱内压井泥浆距井口高度
float zzovermudlength;//钻柱内重泥浆长度
float zzovermudheight;//钻柱内重泥浆距井口高度
unsigned short JingKongFlag;//在初始状态下表示本次作业是否为压井作业
undigned short fireflag;//点火标志
}jk;
};
b图形处理器发送给外部主控程序的状态信息数据格式
union JSRevTUData
{
unsigned char buff[20];
struct
{
float d1;//大钩高度
float d2;//大钩速度
unsigned short d3;//每个动作绘制完成标记
unsigned short d4;//半封状态,0表示关,1表示中间状态,2表示开
unsigned short d5;//全封状态,0表示关,1表示中间状态,2表示开
unsigned short d6;//环形状态,0表示关,1表示中间状态,2表示开
unsigned short d7;//小鼠洞是否有杆,0表示无杆,1表示有杆
unsigned short d8;//吊环下挂物体是否在钻台平面下,0表示在下面,1表示在上面
}data;
};
这样就把钻井工艺流程中的各种动作以及钻井现场各种设备的状态、空间位置等控制信号和数据准确的发给图处理器,使图形能迅速、准确地反映前端操作者的各种动作,完成全三维实时钻井模拟。
Claims (7)
1.全三维实时钻井模拟的方法,其特征在于:它包括以下步骤:
(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所述的全三维实时钻井模拟的方法,其特征在于:所述的井架模型是基于顶部驱动模式的模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910216644A CN101719332A (zh) | 2009-12-08 | 2009-12-08 | 全三维实时钻井模拟的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910216644A CN101719332A (zh) | 2009-12-08 | 2009-12-08 | 全三维实时钻井模拟的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101719332A true CN101719332A (zh) | 2010-06-02 |
Family
ID=42433900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910216644A Pending CN101719332A (zh) | 2009-12-08 | 2009-12-08 | 全三维实时钻井模拟的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101719332A (zh) |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063541A (zh) * | 2010-12-30 | 2011-05-18 | 中国海洋石油总公司 | 一种旋转导向钻井系统多体动力学快速分析建模方法 |
CN102074142A (zh) * | 2011-01-14 | 2011-05-25 | 山东滕州辰龙能源集团有限公司 | 模拟煤矿安全作业过程的方法及系统 |
CN102221832A (zh) * | 2011-05-10 | 2011-10-19 | 江苏和光天地科技有限公司 | 一种煤矿无人工作面开发系统 |
CN102800224A (zh) * | 2012-07-20 | 2012-11-28 | 广州供电局有限公司 | 基于互联网的电力设备测试实验培训仿真方法 |
CN103413487A (zh) * | 2013-07-30 | 2013-11-27 | 国网电力科学研究院武汉南瑞有限责任公司 | 一种变压器装配工艺交互仿真系统及方法 |
CN103514620A (zh) * | 2012-09-29 | 2014-01-15 | 天津十彩动画科技有限公司 | 3d立体动画全流程制作云计算平台 |
CN104392044A (zh) * | 2014-11-25 | 2015-03-04 | 中国石油天然气集团公司 | 基于三维效果图元编辑的井场装置布置设计方法及系统 |
CN104575151A (zh) * | 2015-01-22 | 2015-04-29 | 中国石油技术开发公司 | 一种陆地钻机虚拟装配系统 |
CN104599080A (zh) * | 2015-02-04 | 2015-05-06 | 安徽理工大学 | 冻结法凿井工程冻结控制决策支持系统 |
CN104599543A (zh) * | 2015-01-22 | 2015-05-06 | 中国石油技术开发公司 | 一种陆地钻机虚拟装配系统及其操作方法 |
CN104616553A (zh) * | 2015-01-08 | 2015-05-13 | 西南石油大学 | 井下作业模拟系统及方法 |
CN104637362A (zh) * | 2015-01-08 | 2015-05-20 | 西南石油大学 | 基于无定序操作模式的钻井模拟系统及方法 |
CN104766522A (zh) * | 2015-01-22 | 2015-07-08 | 中国石油技术开发公司 | 一种钻井模拟设备的事故模拟方法 |
CN104851352A (zh) * | 2015-01-22 | 2015-08-19 | 中国石油技术开发公司 | 一种钻机安装模拟系统的plc控制系统 |
CN104851353A (zh) * | 2015-01-22 | 2015-08-19 | 中国石油技术开发公司 | 一种陆地钻机安装操作模拟系统的环幕投影显示系统 |
CN106169004A (zh) * | 2016-07-15 | 2016-11-30 | 西南石油大学 | 一种自动防碰钻井系统 |
CN106203855A (zh) * | 2016-07-15 | 2016-12-07 | 西南石油大学 | 一种钻井平台信息管理系统 |
CN108694258A (zh) * | 2017-04-10 | 2018-10-23 | 中国石油化工股份有限公司 | 用于施工方案预演优化的钻井井下虚拟仿真方法及系统 |
CN109697913A (zh) * | 2019-03-14 | 2019-04-30 | 中国铁建重工集团有限公司 | 一种基于虚拟现实的凿岩台车仿真培训系统 |
CN110111627A (zh) * | 2019-04-11 | 2019-08-09 | 西南石油大学 | 测井地面采集模拟系统 |
CN110136518A (zh) * | 2019-04-11 | 2019-08-16 | 西南石油大学 | 带压作业模拟系统 |
CN110136515A (zh) * | 2019-04-11 | 2019-08-16 | 西南石油大学 | 一种海洋钻井模拟软件平台系统 |
CN110232846A (zh) * | 2019-06-12 | 2019-09-13 | 广东电网有限责任公司 | 一种冲锋舟模拟驾驶方法、系统及相关装置 |
CN111259509A (zh) * | 2018-11-30 | 2020-06-09 | 中国石油化工股份有限公司 | 一种钻井过程仿真方法以及系统 |
CN111259508A (zh) * | 2018-11-30 | 2020-06-09 | 中国石油化工股份有限公司 | 一种钻井过程仿真方法以及系统 |
CN112306025A (zh) * | 2020-11-02 | 2021-02-02 | 中海石油(中国)有限公司 | 一种水下生产控制监控可视化监控方法及系统 |
CN113589989A (zh) * | 2020-08-21 | 2021-11-02 | 上海柯林布瑞信息技术有限公司 | 数据多维度下钻方法及装置、存储介质、终端 |
CN116956648A (zh) * | 2023-09-20 | 2023-10-27 | 四川天地宏华导航设备有限公司 | 一种钻井过程的ai模拟仿真系统及方法 |
-
2009
- 2009-12-08 CN CN200910216644A patent/CN101719332A/zh active Pending
Cited By (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063541B (zh) * | 2010-12-30 | 2012-11-14 | 中国海洋石油总公司 | 一种旋转导向钻井系统多体动力学快速分析建模方法 |
CN102063541A (zh) * | 2010-12-30 | 2011-05-18 | 中国海洋石油总公司 | 一种旋转导向钻井系统多体动力学快速分析建模方法 |
CN102074142A (zh) * | 2011-01-14 | 2011-05-25 | 山东滕州辰龙能源集团有限公司 | 模拟煤矿安全作业过程的方法及系统 |
CN102221832A (zh) * | 2011-05-10 | 2011-10-19 | 江苏和光天地科技有限公司 | 一种煤矿无人工作面开发系统 |
CN102800224B (zh) * | 2012-07-20 | 2015-05-13 | 广州供电局有限公司 | 基于互联网的电力设备测试实验培训仿真方法 |
CN102800224A (zh) * | 2012-07-20 | 2012-11-28 | 广州供电局有限公司 | 基于互联网的电力设备测试实验培训仿真方法 |
CN103514620A (zh) * | 2012-09-29 | 2014-01-15 | 天津十彩动画科技有限公司 | 3d立体动画全流程制作云计算平台 |
CN103514620B (zh) * | 2012-09-29 | 2016-12-21 | 天津十彩动画科技有限公司 | 3d立体动画全流程制作云计算平台 |
CN103413487B (zh) * | 2013-07-30 | 2015-12-09 | 广西电网公司电力科学研究院 | 一种变压器装配工艺仿真系统 |
CN103413487A (zh) * | 2013-07-30 | 2013-11-27 | 国网电力科学研究院武汉南瑞有限责任公司 | 一种变压器装配工艺交互仿真系统及方法 |
CN104392044A (zh) * | 2014-11-25 | 2015-03-04 | 中国石油天然气集团公司 | 基于三维效果图元编辑的井场装置布置设计方法及系统 |
CN104392044B (zh) * | 2014-11-25 | 2017-09-01 | 中国石油天然气集团公司 | 基于三维效果图元编辑的井场装置布置设计方法及系统 |
CN104637362B (zh) * | 2015-01-08 | 2017-06-13 | 西南石油大学 | 基于无定序操作模式的钻井模拟系统及方法 |
CN104616553A (zh) * | 2015-01-08 | 2015-05-13 | 西南石油大学 | 井下作业模拟系统及方法 |
CN104637362A (zh) * | 2015-01-08 | 2015-05-20 | 西南石油大学 | 基于无定序操作模式的钻井模拟系统及方法 |
CN104599543A (zh) * | 2015-01-22 | 2015-05-06 | 中国石油技术开发公司 | 一种陆地钻机虚拟装配系统及其操作方法 |
CN104851353A (zh) * | 2015-01-22 | 2015-08-19 | 中国石油技术开发公司 | 一种陆地钻机安装操作模拟系统的环幕投影显示系统 |
CN104851352A (zh) * | 2015-01-22 | 2015-08-19 | 中国石油技术开发公司 | 一种钻机安装模拟系统的plc控制系统 |
CN104766522A (zh) * | 2015-01-22 | 2015-07-08 | 中国石油技术开发公司 | 一种钻井模拟设备的事故模拟方法 |
CN104851353B (zh) * | 2015-01-22 | 2018-01-16 | 中国石油技术开发公司 | 一种陆地钻机安装操作模拟系统的环幕投影显示系统 |
CN104575151A (zh) * | 2015-01-22 | 2015-04-29 | 中国石油技术开发公司 | 一种陆地钻机虚拟装配系统 |
CN104599080A (zh) * | 2015-02-04 | 2015-05-06 | 安徽理工大学 | 冻结法凿井工程冻结控制决策支持系统 |
CN106169004A (zh) * | 2016-07-15 | 2016-11-30 | 西南石油大学 | 一种自动防碰钻井系统 |
CN106203855A (zh) * | 2016-07-15 | 2016-12-07 | 西南石油大学 | 一种钻井平台信息管理系统 |
CN108694258B (zh) * | 2017-04-10 | 2021-09-07 | 中国石油化工股份有限公司 | 用于施工方案预演优化的钻井井下虚拟仿真方法及系统 |
CN108694258A (zh) * | 2017-04-10 | 2018-10-23 | 中国石油化工股份有限公司 | 用于施工方案预演优化的钻井井下虚拟仿真方法及系统 |
CN111259509B (zh) * | 2018-11-30 | 2023-04-07 | 中国石油化工股份有限公司 | 一种钻井过程仿真方法以及系统 |
CN111259509A (zh) * | 2018-11-30 | 2020-06-09 | 中国石油化工股份有限公司 | 一种钻井过程仿真方法以及系统 |
CN111259508A (zh) * | 2018-11-30 | 2020-06-09 | 中国石油化工股份有限公司 | 一种钻井过程仿真方法以及系统 |
CN111259508B (zh) * | 2018-11-30 | 2023-04-11 | 中国石油化工股份有限公司 | 一种钻井过程仿真方法以及系统 |
CN109697913A (zh) * | 2019-03-14 | 2019-04-30 | 中国铁建重工集团有限公司 | 一种基于虚拟现实的凿岩台车仿真培训系统 |
CN110136518A (zh) * | 2019-04-11 | 2019-08-16 | 西南石油大学 | 带压作业模拟系统 |
CN110136515A (zh) * | 2019-04-11 | 2019-08-16 | 西南石油大学 | 一种海洋钻井模拟软件平台系统 |
CN110111627A (zh) * | 2019-04-11 | 2019-08-09 | 西南石油大学 | 测井地面采集模拟系统 |
CN110232846A (zh) * | 2019-06-12 | 2019-09-13 | 广东电网有限责任公司 | 一种冲锋舟模拟驾驶方法、系统及相关装置 |
CN113589989A (zh) * | 2020-08-21 | 2021-11-02 | 上海柯林布瑞信息技术有限公司 | 数据多维度下钻方法及装置、存储介质、终端 |
CN112306025A (zh) * | 2020-11-02 | 2021-02-02 | 中海石油(中国)有限公司 | 一种水下生产控制监控可视化监控方法及系统 |
CN116956648A (zh) * | 2023-09-20 | 2023-10-27 | 四川天地宏华导航设备有限公司 | 一种钻井过程的ai模拟仿真系统及方法 |
CN116956648B (zh) * | 2023-09-20 | 2024-01-12 | 四川天地宏华导航设备有限公司 | 一种钻井过程的ai模拟仿真系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101719332A (zh) | 全三维实时钻井模拟的方法 | |
CN101710465B (zh) | 钻井模拟器钻具提升模拟方法 | |
CN101710468B (zh) | 钻井模拟器压力控制模拟方法 | |
CN101710467A (zh) | 钻井模拟器溢流模拟方法 | |
CN101719331A (zh) | 钻井模拟器钻进工艺模拟方法 | |
CN108694258B (zh) | 用于施工方案预演优化的钻井井下虚拟仿真方法及系统 | |
CN104933943B (zh) | 一种陆地钻机安装操作模拟系统 | |
CN111583414A (zh) | 一种油气井动态井控vr系统的搭建方法 | |
CN104766522B (zh) | 一种钻井模拟设备的事故模拟方法 | |
CN101710466B (zh) | 钻井模拟器气体膨胀模拟方法 | |
CN104851352B (zh) | 一种钻机安装模拟系统的plc控制系统 | |
CN204808639U (zh) | 一种陆地钻机虚拟装配系统 | |
CN104933942A (zh) | 一种陆地钻机安装操作模拟系统的环幕投影系统及其图像处理方法 | |
CN104575151A (zh) | 一种陆地钻机虚拟装配系统 | |
CN104933922B (zh) | 一种钻机安装模拟系统 | |
CN204965807U (zh) | 一种钻机安装模拟系统 | |
Park et al. | Development of offshore drilling platform simulation for virtual onboard experience | |
CN104599543A (zh) | 一种陆地钻机虚拟装配系统及其操作方法 | |
CN104966454B (zh) | 一种陆地钻机的说明书演示系统 | |
CN204965892U (zh) | 一种陆地钻机安装操作模拟系统 | |
CN204965893U (zh) | 一种陆地钻机安装操作模拟系统的钻机模型 | |
CN104851353B (zh) | 一种陆地钻机安装操作模拟系统的环幕投影显示系统 | |
CN204965889U (zh) | 一种陆地钻机安装操作模拟系统的环幕投影显示系统 | |
CN204965891U (zh) | 一种陆地钻机安装操作模拟系统的前端司钻操作台 | |
CN104766524A (zh) | 一种钻机安装模拟系统的软件总体构造 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100602 |