实用油藏软件的设计.docVIP

  • 5
  • 0
  • 约3.15千字
  • 约 11页
  • 2018-10-15 发布于福建
  • 举报
实用油藏软件的设计

实用油藏软件的设计    在油田的二次开发及多元部署中,剩余油研究是工作的核心。这需要通过搞清开发过程中井网、井距、生产层、井别的变化以分析油水运动规律。这就需要将变化情况按时间以图形方式体现出来,便于分析。目前,大型软件操作较为复杂,而且由于有时本身会自带数据管理系统,需要进行额外的数据整理,有时需要另存有备份文件;而较小的软件功能并不十分完善。大量的井数据和井别变动数据的整理需要花费工作人员很多精力和时间,而实用油藏软件通过较为简捷的处理,提高了工作效率。    1 程序设计1.1 流程设计    基本思路为,通过读取常用格式文件或数据库获得数据,采用J2EE技术进行开发。通过对业务流程与数据流程的详细分析,制定 本软件的程序流程图,如图1。    1.2 结构设计    1.2.1?程序结构设计    通过对需求进行分析,本软件共设计数据读取模块,处理模块,图形绘制模块及保存模块四个模块。    1.2.2?数据结构设计    就分析设计层面来说,面向对象技术提供了更高级的抽象能力以及更多的方法和工具,如设计模式;就实现维护层面来说,面向对象技术使代码重用更容易,且使代码具有可扩展性,便于软件的维护和升级更新。    因此,针对井的属性特点和用户需求,采用面向对象的设计思路,将“井”作为一个基本对象,存储生产数据和属性数据,封装绘制和计算方法。如图2所示。    2 数据获取    本软件支持Excel文件和SqlServer数据库两种不同形式的数据源,在应用中用户可根据实际情况随意指令。    2.1 Excel文件    Jxl.jar是通过java操作excle表格的类库。他支持目前的所有excel版本,所具有的功能均能很好的满足当前的需要。将jxl.jar放入classpath或放入指定的External JARs即可使用。    使用语句如下:    Workbook wb = Workbook.getWorkbook(new File(filename));    S h e e t s h e e t = w b . g e t S h e e t(sheetname);    Cell cell1=sheet.getCell(0,0);    通过读取Workbook,到读取sheet,最终得到各个单元格的数据。    为兼容文件中数据的无序性,本软件采用了以下步骤进行数据读取:    (1)建立二级生产数据集合,一级为存放整体数据,二级为存放单井数据    (2)建立生产属性类,比较井名加入二级集合,当井名不同后,将二级集合加入一级集合,依次循环2.2 SqlServer数据库    本软件通过J D B C数据接口连接到SQLServer数据库,建立一个数据库连接对象,利用此连接生产Statement对象,再利用此对象执行SQL语句,完成对数据库的查找和更新[1]。主要执行语句如下:    sqlConn = baseDataS.ConSqlServer(sqlConn,ip,user,passwd);    st = sqlConn.createStatement();    rs1 = st.executeQuery(sql语句 );rs1.next();    rs1.getString(“条件”);    利用SQL语句比较容易实现数据的排序和分类,只需在语句中给定排序条件和分组    3 数据处理3.1 井轨迹计算    斜度、大斜度井和水平井是目前油田开发的主要井型,在钻井实施过程中,要使实际轨迹完全符合设计是不可能的,因此有必要进行井斜的计算,以满足工程和地质对井眼轨道控制要求。通过对测量数据进行计算,可得到井的垂深及各测量深度的偏移量。    实钻轨迹计算的基本方法是:计算出各测段的坐标增量,然后从井口开始自上而下依次累加,得到各测点的坐标值。    程序中采用了其中较为常见的五种计算井轨迹的算法进行编写,包括平均角法、校正平均角法、曲率半径法和国内外最小曲率法的算法。具体算法参见《井眼轨道几何学》及《钻井工程理论与技术》中提供的十种计算方法。3.2 层位计算    由于井斜的存在,斜井在各个层位的具体位置都不相同,这直接关系到井间距离,和井的构造位置。因此在绘图时必须考虑到目的层的井位。取到分层数据后,通过线性方法计算分层深度所对应的斜深和方位角、井斜角,再通过井轨迹的计算方法计算相应垂深,绘图时,标在目标位置。    公式如下    pointY =(y2-y1)*(x-x1)/(x2-x1)    +y1 (式1)    其中,x是目标

文档评论(0)

1亿VIP精品文档

相关文档