CN101203862A - 用于油井管理编程的高级图形编程语言和工具 - Google Patents

用于油井管理编程的高级图形编程语言和工具 Download PDF

Info

Publication number
CN101203862A
CN101203862A CNA2006800226590A CN200680022659A CN101203862A CN 101203862 A CN101203862 A CN 101203862A CN A2006800226590 A CNA2006800226590 A CN A2006800226590A CN 200680022659 A CN200680022659 A CN 200680022659A CN 101203862 A CN101203862 A CN 101203862A
Authority
CN
China
Prior art keywords
assembly
facility
programming code
wildcard
logical diagram
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.)
Granted
Application number
CNA2006800226590A
Other languages
English (en)
Other versions
CN101203862B (zh
Inventor
L·N·杜
J·W·密特谢
A·R·凯施林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ExxonMobil Upstream Research Co
Original Assignee
Exxon Production Research Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Exxon Production Research Co filed Critical Exxon Production Research Co
Publication of CN101203862A publication Critical patent/CN101203862A/zh
Application granted granted Critical
Publication of CN101203862B publication Critical patent/CN101203862B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E21EARTH OR ROCK DRILLING; MINING
    • E21BEARTH OR ROCK DRILLING; OBTAINING OIL, GAS, WATER, SOLUBLE OR MELTABLE MATERIALS OR A SLURRY OF MINERALS FROM WELLS
    • E21B49/00Testing the nature of borehole walls; Formation testing; Methods or apparatus for obtaining samples of soil or well fluids, specially adapted to earth drilling or wells
    • EFIXED CONSTRUCTIONS
    • E21EARTH OR ROCK DRILLING; MINING
    • E21BEARTH OR ROCK DRILLING; OBTAINING OIL, GAS, WATER, SOLUBLE OR MELTABLE MATERIALS OR A SLURRY OF MINERALS FROM WELLS
    • E21B43/00Methods or apparatus for obtaining oil, gas, water, soluble or meltable materials or a slurry of minerals from wells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Mining & Mineral Resources (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Geology (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Geochemistry & Mineralogy (AREA)
  • General Life Sciences & Earth Sciences (AREA)
  • Fluid Mechanics (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Geophysics And Detection Of Objects (AREA)

Abstract

一种油藏模拟方法,其包括构建具有一个或更多个组件的分级逻辑图(10)。每个组件表示一组编程代码。该方法进一步包括转换分级逻辑图为编程代码(20),该代码被配置为管理油藏(40)的模拟。

Description

用于油井管理编程的高级图形编程语言和工具
相关申请的交叉参考
【0001】本申请要求2005年6月28日申请的美国临时申请60/694738号的权益。
技术领域
【0002】本发明的实施例一般涉及油藏模拟,例如油井管理计算机程序,其可与用来解油藏方程的油藏模拟计算机程序结合使用。
背景技术
【0003】本部分打算向读者介绍本领域的各个方面,它们可能与本发明的示例性实施例关联并在下面进行描述和/或要求保护。相信这个论述有助于向读者提供促进对本发明特殊技术的更好理解的信息。因此,应该理解,这些陈述应从这个角度理解而非对现有技术的介绍。
【0004】油藏模拟是从油藏模型的动态推断实际油藏状态的过程。因为石油油藏中质量转移和流体流动过程如此复杂,所以油藏模拟都是用计算机完成的。执行计算从而模拟油藏的计算机程序被称为油藏模拟器。油藏模拟的目的是理解出现在石油油藏中的复杂的化学、物理和流体流动过程,从而预测油藏的未来状态,并增加碳氢化合物的采收率。油藏模拟器可解决通常不能以其他方式解决的油藏问题。例如,油藏模拟器可预测油藏管理决定的后果。油藏模拟通常被称为油藏内流动的流体动力学,但在更大的意义上,也可称为总石油系统,该系统包括油藏、地表设施以及任何相互关联的重要活动。
【0005】用于判断每个时间点的油藏情况的方程系统的求解受边界条件约束,如源汇项(sink and source term)。例如,源汇项描述了模拟模型中多少流体被注入到不同位置的油井中或从其中抽出。这些源汇项被规定为时间的函数,从而控制方程的解。而且,它们表示根据如何操作油井和管理油藏选择的操作限制。
【0006】在进行模拟研究时,表示油井开工率或作业率(operatingrate)的源汇项可被不同地设置。根据模拟模型的大小和复杂度和模拟研究的目的,选择这些源汇项作为时间函数的过程可能是非常错综复杂的并可能涉及编写复杂的算法和程序。为模拟模型设置这些油井产量和边界条件所编写的程序通常被称为油井管理逻辑或油井管理程序。同样地,油井管理程序可经配置来判断关于在预测周期的持续时间油井的各种方面,如哪些油井生产;产量多少;如何满足不同地表设备的多个限制;何时关闭油井和何时再开采油井;何时安排油井维修或新井钻探;以及在不同位置注入多少气或水来帮助保持油藏压力。
【0007】油井管理程序通常是经训练的程序员以标准编程语言,如FORTRAN,C或C++编写的,这些程序通常很大,即,一般生成数千行代码。因此,通常需要相当量的时间来设计、实施、测试和让最终用户接受油井管理程序。因为程序是以低级语言编写的,因此对于最终用户不易读。进一步地,调查在预测研究过程中出现的许多情景的需求可能涉及在短时间内频繁修改程序。因为程序是以低级语言编写的,所以最终用户也必须依靠程序员修改程序,这进一步延迟了该过程。
【0008】因此,现有技术需要改进的方法和系统来生成使得最终用户能够频繁修改程序的油井管理程序。
发明内容
【0009】本发明的实施例针对油藏模拟方法,其包括构建具有一个或更多个组件的分级逻辑图。每个组件表示一组编程代码。该方法进一步包括转换分级的逻辑图为编程代码,该代码被配置为管理油藏模拟。
【0010】在一个实施例中,该方法进一步包括(即,包含)在图形用户界面上显示分级的逻辑图。
【0011】在另一个实施例中,编程代码是C++和FORTRAN中的一种。
【0012】在又一个实施例中,分级的逻辑图提供管理油藏模拟的编程代码的高级结构化的视图。
【0013】在又一个实施例中,每个组件可扩展成一个或更多个子组件。
【0014】在又一个实施例中,该方法进一步包括在分级逻辑图转换为编程代码的过程中生成调试代码。
【0015】在又一个实施例中,该方法进一步包括为每个组件生成文档资料。
【0016】在又一个实施例中,该方法进一步包括执行编程代码从而生成模拟的油藏。
【0017】在又一个实施例中,该方法进一步包括使用模拟的油藏来预测油藏的动态。
【0018】在又一个实施例中,该方法进一步包括使用模拟的油藏来从油藏生产碳氢化合物。
【0019】在又一个实施例中,组件包括经配置来描述或定义设施的设施组件。
【0020】在又一个实施例中,设施包括油井、钻井平台和油田之一。
【0021】在又一个实施例中,设施组件包括一个或更多个次序组件(sequence components),每个次序组件经配置来标记编程代码中主逻辑部分的开始。
【0022】在再一个实施例中,每个次序组件包括一个或更多个通配组件(generic component),每个通配组件经配置来执行一个或更多个逻辑步骤以管理油藏的模拟。
【0023】在又一个实施例中,每个通配组件包括经配置来规定逻辑条件的if_test(是否测试)组件。
【0024】在又一个实施例中,转换分级逻辑图包括转化是否测试if_test组件的逻辑条件为编程代码。
【0025】在又一个实施例中,转换分级逻辑图包括为逻辑条件解析编程代码中设施的引用(reference)。
【0026】在又一个实施例中,为逻辑条件解析编程代码中设施的引用包括,如果是否测试if_test组件所属的通配组件是set_loop(set循环)组件的一部分,则将设施的引用设置为由set循环set_loop组件定义的设施。
【0027】在又一个实施例中,为逻辑条件解析编程代码中对设施的引用进一步包括,如果是否测试if_test组件所属的通配组件是至少一个次序组件的一部分,则将设施的引用设置为由设施组件描述(facility component description)定义的设施。
【0028】在又一个实施例中,为逻辑条件解析编程代码中设施的引用进一步包括,如果是否测试if_test组件所属的通配组件没有嵌套在任何set循环set_loop组件中,且如果通配组件是配置为子程序(subroutine)的次序组件的一部分,则将设施的引用设置为调用次序组件的设施,这个逻辑条件是次序组件的一部分。
【0029】在又一个实施例中,每个通配组件包括经配置来执行循环结构的循环组件。
【0030】在又一个实施例中,循环结构是while循环、for循环和set循环(set_loop)之一。
【0031】在又一个实施例中,每个通配组件包括退出循环条件quit_loop_condition,其经配置来判断循环结构的结束。
【0032】在又一个实施例中,转换分级逻辑图包括转化退出循环条件quit_loop_condition为编程代码。
【0033】在又一个实施例中,转换分级逻辑图包括为退出循环条件quit_loop_condition解析编程代码中设施的引用。
【0034】在又一个实施例中,为退出循环条件quit_loop_condition解析编程代码中设施的引用包括设置设施的引用为是否测试if_test组件定义的逻辑条件。
【0035】在又一个实施例中,循环组件包括经配置来规定逻辑条件的是否测试if_test组件。
【0036】在又一个实施例中,转换分级逻辑图包括转化循环组件的过滤条件为编程代码。
【0037】在又一个实施例中,每个通配组件包括经配置执行命令的执行动作execute_action组件。
【0038】在又一个实施例中,转换分级逻辑图包括转化执行动作execute_action组件的命令为编程代码。
【0039】在又一个实施例中,转换分级逻辑图包括为命令解析编程代码中设施和/或流体相的引用。
【0040】在又一个实施例中,为命令解析编程代码中设施和/或流体相的引用包括为是否测试if_test组件引用条件,是否测试if_test组件定义执行动作execute_action组件所属的每个通配组件。
【0041】在又一个实施例中,为命令解析编程代码中设施和/或流体相的引用包括,如果执行动作execute_action组件是set循环set_loop组件的一部分,则设置设施的引用为由set循环set_loop组件定义的设施。
【0042】在又一个实施例中,执行动作execute_action组件引用函数。
【0043】在又一个实施例中,执行动作execute_action组件包括嵌套通配nested_generic组件,其经配置来执行一个或更多个逻辑操作从而管理油藏的模拟。
【0044】在又一个实施例中,转换分级逻辑图包括转化执行动作execute_action组件为编程代码。
【0045】在又一个实施例中,转换分级逻辑图包括转化通配组件为编程代码。
【0046】在又一个实施例中,每个通配组件包括嵌套通配(nested_generic)组件,其经配置来执行管理油藏模拟的一个或更多个逻辑操作。
【0047】在又一个实施例中,转换分级逻辑图包括转化次序组件为编程代码。
【0048】在又一个实施例中,组件包括设施组件,其经配置来描述或定义设施,且转换分级逻辑图为编程代码包括存储设施名称。
【0049】在又一个实施例中,转换分级逻辑图包括为过滤条件解析编程代码中设施的引用。
【0050】在又一个实施例中,为过滤条件解析编程代码中设施的引用包括,如果循环组件是set循环set_loop结构,则设置设施的引用为由循环组件定义的设施。
【0051】在又一个实施例中,组件被分组成一个或更多个容器(container)组件。
【0052】本发明的实施例也针对计算机系统,其包含处理器和包括程序指令的存储器,所述指令可由处理器执行从而构造具有一个或更多个组件的分级逻辑图,其中每个组件表示一组编程代码;并转换分级逻辑图为被配置用来管理油藏的模拟的编程代码。
【0053】在又一个实施例中,存储器进一步包括在图形用户界面上显示分级逻辑图的程序指令。
【0054】在另一个实施例中,编程代码是C++和FORTRAN之一。
【0055】在又一个实施例中,分级逻辑图提供管理油藏模拟的编程代码的高级结构化视图。
【0056】本发明的实施例也针对预测油藏动态(performance of areservoir)的方法。该方法包括用图形用户界面构建分级逻辑图。分级逻辑图包括一个或更多个组件,且每个组件表示一组编程代码。该方法进一步包括通过图形用户界面显示分级逻辑图,转换分级逻辑图为被配置用来模拟油藏动态的编程代码,并执行编程代码从而生成模拟的油藏。
【0057】在一个实施例中,该方法进一步包括使用模拟的油藏来预测油藏的动态。
【0058】在另一个实施例中,该方法进一步包括使用模拟的油藏来从油藏生产碳氢化合物。
【0059】在再一个实施例中,分级逻辑图是可调整的。
【0060】本发明的实施例也针对用来执行油藏模拟的计算机实施的方法或模拟系统。该方法进一步包括构建表示油井管理程序的分级逻辑图,其中分级逻辑图包括一个或更多个组件,每个组件都表示一组编程代码;将该分级逻辑图解码为低级编程代码;编译低级编程代码;将低级编程代码链接为油藏模拟程序;从油藏模拟程序生成油藏模拟模型;和存储来自油藏模拟模型的结果。
【0061】此外,本方法可包括其他方面。例如,该方法可包括根据油藏模拟模型评估油藏或生成评估报告。而且,该分级逻辑图可被配置为设置油井产量和油藏模拟模型的边界条件。油藏模拟器模型可包括油藏和设施,其中设施表示油藏和输送位置之间流动路径上的物理设备,其中设施是钻井平台、歧管、泵、压缩机、分离器、管路和钻塔之一。此外,油藏模拟模型的模拟可用来对油藏中发生的化学,物理和流体流动过程进行建模,从而预测油藏的未来状态和提高来自油藏的碳氢化合物开采量。
附图说明
【0062】本技术的前面和其他优点可在阅读下面的详细说明并参考附图后而变得明显。
【0063】图1A示出按照本发明一个或多个实施例预测油藏动态的方法的示例性流程图。
【0064】图1B示出按照本发明一个或多个实施例构建分级逻辑图的示例性流程图。
【0065】图2示出按照本发明一个或多个实施例的具有FAC图标和S图标的占位符号的示例性显示。
【0066】图3示出按照本发明一个或多个实施例的分级逻辑图的示例性开端视图(preliminary view)。
【0067】图4示出按照本发明一个或多个实施例的分级逻辑图的第二示例性开端视图。
【0068】图5示出按照本发明一个或多个实施例的OMAX,其作为用在油井管理编程环境中的预定义条件的例子。
【0069】图6示出按照本发明一个或多个实施例的分级逻辑图的第三示例性开端视图。
【0070】图7示出按照本发明一个或多个实施例的示例性数据窗口,其提示用户选择循环类型。
【0071】图8示出按照本发明一个或多个实施例的预定义条件的示例性列表。
【0072】图9示出按照本发明一个或多个实施例的示例性次序组件,其具有带三个独立通配组件的容器组件。
【0073】图10示出按照本发明一个或多个实施例的分级逻辑图的第四示例性开端视图。
【0074】图11示出按照本发明一个实施例的示例性预定义条件“无违反(NoViolation)”。
【0075】图12示出按照本发明一个或多个实施例的分级逻辑图的第五示例性开端视图。
【0076】图13示出按照本发明一个或多个实施例的预定义命令“每次减少一个”(Decrease ONE_AT_A_TIME)的示例性选择。
【0077】图14示出按照本发明一个或多个实施例的分级逻辑图的第六示例性开端视图。
【0078】图15示出按照本发明一个或多个实施例的示例性最终形式的分级逻辑图,其中没有移去未选择的组件或未定义的组件。
【0079】图16示出按照本发明一个或多个实施例的示例性的执行动作execute_action组件,其具有经配置来调用被显示出来的函数的次序组件。
【0080】图17示出按照本发明一个或多个实施例的用于解码分级逻辑图的方法的示例性流程图。
【0081】图18A和18B示出按照本发明一个或多个实施例的解码通配组件的方法的示例性流程图。
【0082】图19示出示例性计算机网络,本发明实施例可在其中实施。
【0083】图20示出按照本发明一个或多个实施例的具有嵌套通配nested_generic组件的示例性分级逻辑图。
具体实施方式
【0084】下面给出了详细的说明。每个所附的权利要求定义一个独立发明,为了侵权用途,独立发明被当作包括权利要求中限定的多种元素或限制的等价物。根据上下文内容,下面所说的“发明”在某些情形中仅指某些特定实施例。在其他情形中,应该认识到,对“发明”的引用指在一个或多个,但不必是所有权利要求中陈述的主题。下面更详细地描述每个发明,包括具体实施例、形式和例子,但本发明不局限于这些实施例、形式或例子,它们都包括在此,从而使得在该专利中的信息与可用信息和技术结合时,本领域技术人员能够做出和使用本发明。下面定义这里使用的各种术语。就权利要求中所使用的术语在下面没有定义来说,其应给予本领域技术人员已经给予该术语的最广定义,如一个或多个印刷出版物或授权的专利给出的那样。
附图中的特定实施例
【0085】本发明的各种实施例涉及油藏模拟,油藏模拟是多孔和可渗透岩石中一个、两个或三个流体相的三维(3D)流动数值模拟。三个流体相是碳氢化合物液体(油)、碳氢化合物蒸汽(气体)和水相(水)。
【0086】计算机程序被用来构建油藏模拟模型,该模型适当地表征岩石和流体特性,且该计算机程序也用来响应规划的油井作业而计算模拟模型随时间的演化,从而除去可销售流体,并在某些情形中取代这些价值较低的流体来维持压力。
【0087】油藏模拟模型是通过将感兴趣体积细分(离散化或网格化)为许多多边形单元。单元的数目通常在几万到几十万。感兴趣体积是以油和气累积的范围和与油及气体压力连通的水的范围区域性地且垂直地定义的。其面积可以是几个平方英里,且厚度可以是几百,甚至几千英尺。
【0088】模拟单元的状态是其由压力及其内容定义的,即,单元内的油、气和水的量。模拟的目标是计算单元状态随时间的演化。演化由初始状态并由通过油井从系统时间相关地移出(生产)流体或将流体加入系统(注入)控制。
【0089】单元状态由于在成对的相邻单元之间或单元与井之间的流体流动而随时间变化。流体从高压流到低压。压力梯度是通过井筒从油藏移出流体(生产)或将流体加入油藏(注入)而导致产生的,井筒穿过多孔和渗透性岩石。在油藏内,流体汇聚(流向)生产井筒并从注入井筒分散(流出)。
【0090】在有限差油藏模拟模型的背景中,流体流动是在邻近单元对之间计算的,且对于井筒穿过的单元,是在单元和井筒之间计算的。为了将流体流动模型化,相关方程的近似形式是为每个单元建立的,从而表达质量转换和相流速和压力差之间的关系。单元集合的这些方程的联立(近似)解可得到在单个时间每个单元的压力和内容物。可求解这些方程来确定边界条件控制下每个时间点的油藏状态,如源汇项,其说明多少流体被注入到模拟模型中不同位置的油井中或从其中排出。
【0091】表示油井作业率的源汇项可在进行模拟研究时作不同设定。开始时,历史匹配过程可用来验证模拟模型。为了确保模拟模型是实际油藏的优良表示,用历史动态数据校准该模拟模型,该数据通常包括在规则间隔的生产的流体容积的测量值和油井中压力的周期性测量值。在该相中,用为油井产量收集的数据规定源汇项。然后,执行模拟模型并调整油藏特性从而与从油田观察的数据对应。
【0092】在验证模拟模型后,模拟模型可用来提供预报未来油藏和油井动态的预测。在该操作模式中,即使对于未来日期的油井产量数据是不可知的,也可规定源汇项。模拟模型可用来研究许多可能的预测情形。对于每个情形,可为边界条件集选择某些设定,从而研究操作油藏的可能策略并与不同操作限制一致。
【0093】无论在历史匹配还是预测模式中,选择和规定边界条件来操作模拟模型可能都不是简单的过程,且在很多情形中,可能涉及大量的编程。在预测模式中,编程通常被用来设定油井产量和边界条件。编写成设定模拟模型的油井产量和边界条件的程序通常也称为油井管理逻辑或油井管理程序。照此,油井管理程序是增加到油藏模拟程序的组件,该模拟程序被用来求解油藏方程。
【0094】油井管理程序通常被设计成灵活的并解决许多类型的油藏要求。该程序通常包括许多步骤或代码块,它们是以预定义的次序可执行,从而分析对设施强加的限制和要求。如果任何限制被违反或破坏,则程序可执行一系列调整从而修改油井作业条件直到限制不再被违反。对于每个限制违反,可做出大量调整,且大量不同的井可以是调整的候选。在开发并编码油井管理程序后,通常该程序被编译并与其余油藏模拟器代码链接,且最终组合的软件包被用于油藏的预测研究。
【0095】因此,本发明的不同实施例根据开发一层由图形界面支持的组件提出了一种编程解决方案,从而创建高级编程方法。该程序是用特殊高级语言通过图形环境创建的。最终的程序然后被转换为低级编程语言,如C++、FORTRAN等等。
【0096】在构建计算机程序方面,本发明的实施例给出一个范例性转化,因为用户通过使用组件作为图形环境中的构建块来组装逻辑分支而构建程序,而非在文本编辑器环境中编写低级C++指令。因此,该实施例以分级形式显示高级逻辑组件的分支,而非显示数千行低级编程代码。这些逻辑组件的分支经配置转化为数千行低级编程代码。为了使组装程序的任务更容易,可开发预造(pre-fabricated)逻辑分支库,且其可作为额外的预定义构建块利用。
【0097】图1A示出按照本发明一个或多个实施例预测油藏动态的方法1的示例性流程图。在方块10,构建表示油井管理程序的分级逻辑图。本发明的多种实施例针对构造构建分级逻辑图的方法,其在下文中参考图1B更详细地描述。在方块20,分级逻辑图被解码为低级编程代码。本发明的各种实施例针对解码过程,其在下面参考图17-18描述。在方块30,低级编程代码可被编译并和油藏模拟程序链接。低级编程代码可通过本领域人员公知的传统方法编译和链接。在方块40,油藏模拟程序被执行,以生成油藏模拟模型。在方块50,油藏模拟模型被用来预测油藏动态。该油藏模拟模型可生成报告,这些报告被用来从油藏生产碳氢化合物,如方块60所示。油藏模拟模型可包括油藏和/或设施,其中设施表示油藏和输送位置之间流动路径中的物理设备。设施可包括平台、歧管、泵、压缩机、分离器、管路、钻塔和其他合适设施中的一个或更多个。进一步,油藏模拟模型的模拟可用来模拟油藏中发生的化学、物理和流体流动过程,从而预测油藏的未来行为和提高来自所述油藏的碳氢化合物开采量。
【0098】图1B示出按照本发明一个或多个实施例构建分级逻辑图的方法100的示例性流程图。分级逻辑图可转化为计算机语言,如C++、FORTRAN等。解码和转化过程在下面参考图17-18描述。图形用户界面可与构建分级逻辑图结合使用,从而促进用户和本发明软件应用实施例之间的交流。如此,图2-4、6、10、12、14和15示出示例性分级逻辑图,如同它们是按照本发明一个或多个实施例构建的。此外,图5、7-8、11和13示出可显示的各种示例性数据窗口,以构建分级逻辑图。
【0099】参考图1B中方块110,具有FAC图标的占位符号和具有S图标的占位符号显示在计算机显示屏上。FAC图标表示分级体系内最高级组件,而S图标表示分级体系内的次最高级组件。图2示出按照本发明一个或多个实施例的示例性分级逻辑图200,其具有FAC图标210的占位符号和S图标220的占位符号。S图标220的占位符号向内首行缩排地显示在FAC图标210的占位符号下面。
【00100】这里所用的组件被定义为用于构建分级逻辑图的对象或元素。每个组件表示一组编程代码,其可在分级逻辑图转化为低级编程代码时生成。转化过程下面参考图18A和18B更详细地说明。每个组件可通过输入数据定义,输入数据可转化为低级编程代码的一部分。
【00101】在方块120,FAC图标的描述是从用户接收的。该描述可以是设施的名称,如油井、钻井平台、油田等。FAC图标的描述也可以是正在构建的分级逻辑图的分支名称。类似地,FAC图标表示设施组件,其经配置来开始分级逻辑图的新分支和/或引入设施。回去参考示例性分级图200,设施组件的描述是钻井平台ABC,如图3所示。在接收设施组件的描述后,该描述显示给用户。分级逻辑图中可表示一个以上的设施组件。
【00102】在方块120,S图标的描述也是从用户接收的。S图标表示一连串的通配组件(“次序组件”),其中通配组件是主要组件,其经配置来执行分级逻辑图中的某些逻辑步骤。通配组件在下面更详细地说明。次序组件标记分级逻辑图中逻辑部分的开始。逻辑部分可以是主程序的一部分,或次序组件可引入新子程序。每个设施组件可具有一个或更多个次序组件。回去参考示例性分级图200,次序组件的描述是钻井平台处理逻辑(Platform_Processing_Logic),如图3所示。
【00103】在方块130,在接收到次序组件的描述后,该描述被显示给用户且具有G图标的占位符号被显示在S图标下面。回去参考示例性分级图200,G图标230的占位符号显示在S图标220的占位符号下面,如图3所示。G图标表示次最高级组件,该组件为通配组件。每个次序组件可以由一个或更多个通配组件定义。
【00104】在方块140,在接收到通配组件描述后,显示该描述且通配组件的可能子组件的一个或更多个占位符号显示在G图标下面。回去参考示例性分级图200,通配组件的描述是应用钻井平台最大产油量约束(Apply_Platform_MaximumOilRate_Constraint),如图4所示。可能的子组件包括是否测试if_test组件、循环组件、退出循环条件quit_loop_condition组件、执行动作execute_action组件和嵌套通配nested_generic组件。在一个实施例中,可能的子组件以其被处理的次序显示。这些子组件中的每个都可用来定义通配组件。回去参考示例性分级图200,是否测试if_test组件可由C图标410表示,循环组件可由循环图标420表示,执行动作execute_action组件可由EA图标430表示,且嵌套通配nested_generic组件可由G图标440表示,它们都显示在图4中。然而,应该注意虽然用户可定义子组件的任何顺序,但显示和最终处理子组件的顺序遵从预定次序。
【00105】开始,是否测试if_test组件允许用户规定一个或更多个逻辑限制或条件。如果通过接收其描述来选择是否测试if_test组件,则可提示用户从预定义条件的列表中选择,如方块150中所示。用在油井管理编程环境中的预定义条件的例子可包括测试是否违反设施的油产量、气产量、水产量、气油比率、水油比率等的最大或最小限制。图5示出显示OMAX 510的示例性数据窗口,作为用在油井管理编程环境中预定义条件的例子。OMAX 510的低级编程代码是TestCondition=CurrentFacility.OilRate>CurrentFacility.MaximumOilRate(测试条件=当前设施的油产量>当前设施的最大油产量)。OMAX经配置来对照设施的最大地表相油产量测试设施的地表相油产量。可替换地,用户可在方块150中构建或规定他/她自己的条件。一旦预定义条件确定,预定义条件的描述邻近对应于是否测试if_test组件的C图标显示,如方块155所示。回去参考示例性分级图200,OMAX邻近C图标600显示,如图6所示。一个以上的是否测试if_test条件可由“AND”或“OR”运算符接合规定,从而定义通配组件的复杂测试条件。
【00106】循环组件允许用户在所需计算机程序中建模循环结构。循环结构通常被用来以重复方式执行某个逻辑块,直到满足某些条件或限制。循环结构的例子包括while_loop(while循环),for_loop(for循环)和set_loop(set循环)。在油井管理编程中,set_loop循环结构通常被用来重复一组设施的元素。例如,set_loop循环结构可用来为预定义油井集合中的候选油井重复某些调整。如上所述,可通过接收循环组件的描述选择循环组件。基于该选择,可提示用户从列表中选择循环类型,如方块160所示。为了示例目的,图7示出示例性数据窗口,其显示按照本发明一个或多个实施例的设置定义参数列表730和循环类型列表720。SetType(设置类型)740和UserSet(用户设置)710已经被选择用来指示set_loop循环结构作为循环类型。
【00107】一旦选择特定的循环类型,可提示用户为循环组件规定一个或更多个条件。循环组件的条件通常可称为过滤条件。对于set_loop循环结构,过滤条件定义要穷尽循环的设施集合应包括或应排除哪个设施。用在油井管理编程中的过滤条件的例子包括以超过某个规定值的气产量过滤油井子集。可提示用户从预定义条件列表810中选择,如图8所示。在该示例性数据窗口中,图8示出用户已经选择预定义条件ACTIVE(活动的)ANDFACILITY_DESCRIPTOR_PRODUCER(设施_描述符_生产者)。应用到油井的条件ACTIVE(活动的)指没有关闭的油井。
条件FACILITY_DESCRIPTOR_PRODUCER(设施_描述符_生产者)指是生产井(不是注入井)的油井。条件AND显然是逻辑运算符。可替换地,用户也可规定他/她自己的条件。一旦选择或规定条件,如方块166所示,为每个规定的条件显示C图标,如方块168所示。回去参考示例性分级图200,图10示出循环图标1000和3个C图标1010,描述Active_Producers(活动的_生产者)显示在循环图标上面,ACTIVEAND FACILITY_DESCRIPTOR_PRODUCER(活动的AND设施_描述符_生产者)显示在C图标上面。
【00108】定义循环组件的条件后,用户可定义一个或更多个退出循环条件quit_loop_condition组件,它们与循环组件关联。退出循环条件quit_loop_condition组件通常由决定循环何时结束或退出的条件或限制定义。这样,退出循环条件quit_loop_condition组件通常被称为“何时停止(stop when)”条件。可提示用户从预定义条件列表中选择,类似于以是否测试if_test组件的预定义条件列表提示用户的方式。图11示出示例性数据窗口1100,其显示NoViolation(无违反)1110作为退出循环条件quit_loop_condition组件的所选的预定义条件。NoViolation条件被配置为当是否测试if_test组件定义的条件(如OMAX)不再被违反时,停止循环操作。可替换地,用户也可定义另一个条件。在接收退出循环条件quit_loop_condition组件的描述和退出循环条件quit_loop_condition组件的条件后,如方块170所示,一个或更多个对应于这些条件的C图标可以邻近它的描述显示,如方块172所示。回去参考示例性分级图200,图12示出其上方有NoViolation的C图标1200。
【00109】用户也可定义一个或更多个执行动作execute_action组件,其经配置来执行某个命令或函数。在接收执行动作execute_action组件的描述后,可提示用户从预定义命令列表中选择,如方块180所示。油井管理编程环境中命令的例子包括对油井执行某些调整,关闭油井,钻探油井,改变油井产量,减小油井产量等。用户可提供额外的数据,以进一步定义所选命令。图13示出示例性数据窗口1300,其中的Decrease_Type(减小类型)1310和ONE_AT_A_TIME(每次一个)1320被选择作为执行动作execute_action组件的预定义命令。在方块185,一旦执行动作execute_action组件已经描述和定义,则显示EA图标,描述邻近其显示。回去参考示例性分级图200,图14示出EA图标1400,描述Reduce_wells_1×1(减少_油井_1×1)邻近其显示。已经除去未选择或未定义组件的最终形式的分级逻辑图200在图15中示出。
【00110】进一步,执行动作execute_action组件也可由次序组件定义,该次序组件被配置成调用另一个实施例中的函数或子程序。以该方式,执行动作execute_action组件可经配置来调用特定的子程序。作为例子,图16示出具有次序组件1620的执行动作execute_action组件1610,其经配置来调用函数或子程序。此外,执行动作execute_action组件可包括嵌套通配nested_generic组件1630。
【00111】嵌套通配nested_generic组件被定义为另一个通配组件内的通配组件(或在执行动作execute_action组件内)。嵌套通配nested_generic组件也可由G图标表示。在接收到嵌套通配nested_generic组件的描述后,如方块190所示,该嵌套通配nested_generic组件可能的子组件的占位符号显示在G图标下面,如方块195所示。这些子组件包括是否测试if_test组件、循环组件、退出循环条件quit_loop_condition组件、执行动作execute_action组件和嵌套通配nested_generic组件。然后用户可选择这些组件中的任一个来定义嵌套通配nested_generic组件。进一步,每个通配组件可具有一个以上的嵌套通配nested_generic组件。使用该嵌套能力,可以用许多层嵌套的逻辑构建复杂的逻辑链,其中每个层都以一个或更多个通配组件模型化。以该方式,嵌套通配nested_generic组件提供通配组件,其具有建模复杂逻辑结构的灵活性。
【00112】如果嵌套通配nested_generic组件被选择来定义执行动作execute_action组件,则嵌套通配nested_generic组件可在执行动作execute_action组件被处理后立即被处理。以一个或更多个嵌套通配nested_generic组件定义的执行动作execute_action组件可用来处理取决于执行动作execute_action组件中定义的命令的成败的逻辑。例如,如果命令被首先执行,然后检查其成败从而判断是否执行另一个命令。例如,可检查维修油井的命令来判断其是否成功。如果维修不成功,则关闭油井。
【00113】虽然本发明的实施例是参考一个设施组件、一个次序组件、一个通配组件和一个执行动作execute_action组件描述的,但其他实施例可包括具有一个或更多个设施组件、次序组件、通配组件和/或执行动作execute_action组件的分级逻辑图。设施组件、次序组件、通配组件和执行动作execute_action组件可以它们自顶向下显示的顺序被处理。
【00114】一旦分级逻辑图建立,则分级逻辑图被解码为低级可编译代码,如C++,FORTRAN等。解码过程可通过执行“输出步骤”进行,在该步骤中分级逻辑图的所有组件被转化为低级代码。用户也可在完成分级逻辑图之前的任意时刻查看任意组件的低级代码。图17示出按照本发明一个或多个实施例的方法1700的示例性流程图,其用于解码以方法100构建的分级逻辑图。在方块1710,设施组件和次序组件的描述存储在存储器中。回去参考图15所示的示例性分级逻辑图200,钻井平台ABC是作为设施组件的描述存储的,Platform_Processing_Logic(钻井平台处理逻辑)是作为次序组件的描述存储的。在方块1720,每个次序组件被解码。在方块1725,次序组件的每个通配组件以它们出现在分级逻辑图中自顶向下的顺序被解码。通配组件的解码过程在下面参考图18A和18B更详细地说明。在方块1730,判断设施组件是否包括任何其他次序组件。如果还有更多的次序组件,那么下一个次序组件如方块1720所示那样处理。次序组件可以以分级逻辑图规定的顺序被处理。然而,如果没有更多次序组件,则判断分级逻辑图是否含有任何更多的设施组件,如方块1740所示。设施组件也可以以分级逻辑图中规定的顺序被处理。如果有更多的设施组件,则下一设施组件和相关的次序组件的描述被存储到存储器中,如方块1710所示。然而,如果没有更多设施组件,则处理结束。以该方式,所有设施和次序组件被解码。
【00115】图18A和18B示出按照本发明一个或多个实施例解码通配组件方法的示例性流程图。在方块1805,判断待解码通配组件是否具有是否测试if_test组件。如果有是否测试if_test组件,则是否测试if_test组件的条件或限制被转化为低级编程代码,如方块1810所示。如果条件是预定义的,则从存储在存储器的库中检索对应于这些条件的低级编程代码。回去参考分级逻辑图200,结合参考图5说明的OMAX的选择,OMAX的低级编程代码是TestCondition=CurrentFacility.OilRate>CurrentFacility.MaximumOilRate。然后,在方块1815,设施引用得以解析。也就是,低级代码条件中的任何设施引用被解析。如果与是否测试if_test组件关联的通配组件嵌入到set循环set_loop组件定义的循环中,则CurrentFacility(当前设施)的引用被设定为由循环定义的设施。可替换地,如果与是否测试if_test组件关联的通配组件没有嵌入到循环中,则CurrentFacility的引用被设定为由设施组件描述定义的设施。继续上面引用的例子,CurrentFacility是引用是否测试if_test条件OMAX中设施的代码变量,而含OMAX的通配组件不是set循环set_loop组件的一部分。因此,CurrentFacility被设定为Platform ABC(钻井平台ABC),其是设施组件的设施名称。如果没有是否测试if_test组件出现,则处理继续到方块1820,其在下面的段落详细说明。
【00116】在方块1820,判断通配组件是否具有循环组件。如果有循环组件,则循环组件被转化为低级代码。作为该转化的一部分,基于循环组件下面的组件上下文中规定的内容,循环组件可以判断是否需要循环结构。如果需要循环结构,则转化可建立循环结构并创建变量从而用作访问单个元素的循环计数器变量。然而,如果没有通配组件具有循环组件,则判断通配组件是否包括执行动作组件,如下面在方块1850中描述的那样。
【00117】在方块1825,判断循环组件是否具有过滤条件。如果没有过滤条件,循环组件的循环类型在方块1838中被解码。然而,如果过滤条件存在,则过滤条件转化为低级编程代码,如方块1830所示。如上所述,如果过滤条件是预定义的,那么对应于过滤条件的低级编程代码可从存储在存储器的库中获取。回去参考分级逻辑图200,并结合参考图8说明的ACTIVE ANDFACILITY_DESCRIPTOR_PRODUCER的选择,预定义条件ACTIVE(活动的)的低级编程代码可以是candidate.get_is_active(),且预定义条件FACILITY_DESCRIPTOR_PRODUCER(设施_描述符_生产者)的低级编程代码可以是candidate.facility_descriptor=“Producer”。在方块1835,解析过滤条件中的设施的引用。例如,如果循环组件是set循环set_loop组件,则由set循环set_loop组件定义的设施可用作供该set循环set_loop组件下面的组件使用的引用设施。结合参考图10说明的Active_Producers(活动的生产者)的选择,回去参考分级逻辑图200,Active_Producers是set循环set_loop组件,其被配置为对油井集合执行循环。同样地,set循环set_loop组件下面的逻辑的引用设施被设定为当前被Acitve_Producers的set循环set_loop组件处理的油井。和set循环set_loop组件过滤条件有关的术语“候选者(candidate)”指为该集合所考虑的设施类型。称为“候选者”的设施类型由set循环set_loop组件的数据定义。在该情形中,Active_Producers是set循环set_loop组件,其经配置来对油井集合执行循环,且因此,术语“候选者”指油井。一旦设施引用被解析,循环组件的循环类型在方块1838被解码。循环类型可以是while循环、for循环或set循环。
【00118】一旦循环组件被解码,则判断通配组件是否具有退出循环条件quit_loop_condition组件,如方块1840所示。如果存在退出循环条件quit_loop_condition组件,则条件转化为低级编程代码,如方块1845所示。然而,如果没有退出循环条件quit_loop_condition组件存在,则处理进入到方块1850,其在下面的段落详细说明。如上所述,如果条件是预定义的,那么对应于该条件的低级编程代码可从存储在存储器的库中获取。在一个实施例中,如果退出循环条件quit_loop_condition是预定义条件“无违反”NoViolation,则该条件被配置成在是否测试if_test组件定义的条件不再有效时停止循环。因此,在这类实施例中,引用为是否测试if_test组件定义的条件。回去参考分级逻辑图200并参考图15,退出循环条件quit_loop_condition是预定义条件“无违反”NoViolation,其参考预定义条件OMAX,该条件被配置为对照最大油产量测试钻井平台的油产量。
【00119】在方块1850,判断通配组件是否具有执行动作execute_action组件。如果存在执行动作execute_action组件,则执行动作execute_action组件的命令被转化为低级编程代码,如方块1855所示。如果没有执行动作execute_action组件存在,则处理进入到方块1880,其在下面的段落详细说明。如上所述,如果命令是预定义的,则对应于预定义命令的低级编程代码可从存储在存储器的库中获取。回去参考分级逻辑图200,并参考图13,Decrease ONE_AT_A_TIME(每次减少一个)的低级编程代码是调用预定义函数,从而一次减少一个油井的油井产量。
【00120】在方块1860,解析执行动作execute_action组件中任何设施引用和/或流体相引用。在一个实施例中,流体相引用可通过参考是否测试if_test组件的条件来解析,该条件定义执行动作execute_action组件所属的通配组件。在另一个实施例中,如果执行动作execute_action组件在set循环set_loop组件创建的循环内,那么CurrentFacility的任意引用被设定为由set循环set_loop组件定义的设施。可替换地,如果执行动作execute_action组件不是set循环set_loop组件的一部分,则任何CurrentFacility引用可被设定为:1)如果当前通配组件是嵌套在某些前面通配组件中的组件,则是前面的set循环set_loop组件中定义的设施,或2)设施组件描述中定义的设施。回去参考分级逻辑图200,并参考图15,执行动作execute_action组件1510与Active_Procedures set循环(set_loop)组件1520成对,并因此,Decrease ONE_AT_A_TIME(每次减少一个)的低级代码中CurrentFacility的任何引用由Active_Producers set循环组件正在处理的当前油井定义。此外,流体相的引用指回OMAX,它是是否测试if_test组件的条件。减少每个油井的量是在每次减少调整之前和之后从限制OMAX和油井产量确定的,该限制OMAX引用钻井平台的当前油产量。
【00121】在方块1865,判断执行动作execute_action组件是否有任何嵌套通配nested_generic组件。如果嵌套通配nested_generic组件存在,则按照这里所述的方法1800中说明的方块解码属于执行动作组件的嵌套通配组件。回去参考分级逻辑图200并参考图15,执行动作execute_action组件1510,即Reduce_wells_1x1,没有嵌套通配nested_generic组件。因此,在方块1860解析设施引用和/或流体相引用后,对第一通配组件的处理结束。回去参考在方块1865的查询,如果没有嵌套通配nested_generic组件存在,则处理进入方块1880,其将在下面的段落详细说明。
【00122】图20示出按照本发明一个或多个实施例的具有嵌套通配nested_generic组件的分级逻辑图。该实施例包括通配组件,其具有循环组件set_of_all_wells(所有油井集)和第一嵌套通配(nested_generic)组件check_water_cut_try_workover_then_if_not_successful_shut_in_well(检查含水量,然后尝试油井维修,如果不成功就关闭油井)。第一嵌套通配nested_generic组件包括是否测试if_test组件Check_if_water_cut_exceeds_maximum_value(检查含水量是否超过最大值),其已经被预定义为TestCondition=CurrentFacility.water_cut>CurrentFacility.water_cut_maximum,这里water_cut(含水量)=生产的液体中水的部分。第一嵌套通配nested_generic组件进一步包括执行动作execute_action组件Perform_workover_then_test_result_if_not_successful_shut_in_well(进行油井维修,然后测试结果如果不成功就关闭油井),其被配置为关闭油井穿孔从而减少油井中的水产量。执行动作execute_action组件包括第二嵌套通配nested_generic组件If_adjustment_fails_shut_in_well(如果调整失败就关闭油井),其包括是否测试if_test组件Execution_of_command_not_successful(执行命令不成功),该组件已经被预定义,以判断当前命令是否成功。当前命令指在执行动作execute_action组件中定义的命令,执行动作execute_action组件是嵌套的通配组件最靠近的父层嵌套,在这里是否测试if_test组件被调用。在该实施例中,如果油井维修执行动作(execute_action)不成功(即条件为真),那么油井可用执行动作execute_action组件Shut_in_well(关闭油井)关闭。
【00123】在方块1875,判断通配组件是否具有任何其他执行动作execute_action组件。如果执行动作execute_action组件存在,那么处理返回到方块1855,在这里下一执行动作execute_action组件的命令被转化为低级编程代码。如果没有执行动作execute_action组件存在,则判断通配组件是否具有任何嵌套通配nested_generic组件,如方块1880所示。如果嵌套通配nested_generic组件存在,那么每个嵌套通配nested_generic组件是按照方法1800中描述的方块解码的,解码顺序是分级逻辑图上显示的顺序,如方块1885所示。如果嵌套通配nested_generic组件不存在,则处理结束。
【00124】除了条件和命令,其他组件,如通配组件、执行动作execute_action组件和set循环set_loop组件也可转化为编程代码。例如,通配组件可被配置成检查其子组件并要求子组件将其自身转化为编程代码片段。那么,通配组件可被配置成采用最终的代码片段,注意可能需要的变量声明,并将片段组合到一起完成转化任务。类似地,执行动作execute_action组件可被配置成检查其子组件,决定其是否应调用函数(如果次序子组件存在)或执行某个标准命令。执行动作execute_action组件也可被配置成检查是否定义任何嵌套通配nested_generic子组件,且如果定义了,则激活每个嵌套通配nested_generic子组件的转化。类似地,set循环set_loop组件可被配置成判断是否建立循环结构,且如果建立,则创建循环结构所需的变量并生成处理循环结构的代码。组件转化为低级代码也可用面向对象的编程方法执行且不必以线性的自顶向下(top-down)次序执行。
【00125】可按照这里所述的本发明实施例创建并解码的另一类组件是容器组件,其可用来将其他组件,如次序组件、通配组件或执行动作execute_action组件分组到单个容器即组件中。用户可定义仅在容器内使用的局部变量。虽然许多变量是程序按需要自动建立的,但是用户总需要能够规定他/她自己的局部变量。在图形用户界面环境中,容器组件可扩展或收缩。例如,可建立包括二十个通配组件的次序组件,通配组件被分到4个容器组件中,每个容器组件具有5个通配组件。当次序组件被扩展时,用户可仅看到在次序组件下面的4个容器组件。当容器组件扩展时,用户可看到5个通配组件,其构成扩展的容器组件。图9示出次序组件的例子,其具有带有3个独立通配组件的容器组件。
【00126】虽然本发明的多个实施例是参考为油井管理的目的而创建的计算机程序描述的,这些实施例也可以用于为其他应用创建计算机程序。而且,其他实施例考虑各种组件组合从而创建更适于其他应用的组件集合。
【00127】这里所述的各种实施例可结合硬件或软件实施,如果合适,也可两者都结合。因此,本发明的该方法和设备,或某些方面或其部分可采取程序代码(即指令)的形式,程序代码包括在有形的介质中,如软盘、CD-ROM(光盘只读存储器)、硬盘驱动器或任何其他机器可读的存储介质,其中当程序代码被加载到机器中并被机器如计算机执行时,机器就成为实践本发明的设备。在可编程计算机上的程序代码执行的情形中,计算装置通常可包括处理器、处理器可读的存储介质(包括易失性存储器和非易失性存储器和/或存储元件)、至少一个输入装置、至少一个输出装置。一个或多个程序可利用本发明的领域专用编程模型的创建和/或实现,如通过使用数据处理API等,该一个或多个程序优选以高级过程或面向对象的编程语言实现,从而与计算机系统通信。然而,如果需要,(多个)程序可以汇编语言或机器语言实现。在任何情形下,语言可以是编译或解释型的语言,并可与硬件实现结合。
【00128】图19示出计算机网络1900,本发明实施例可在其中实施。计算机网络1900包括系统计算机1930,其可以实施为任何传统个人计算机或工作站。系统计算机1930可与一个或多个硬盘存储装置1950通信,其可以是外部硬盘存储器装置。设想硬盘存储装置1950是传统的硬盘驱动器,且类似地,可以通过局域网或远程访问的方式实施。硬盘存储装置1950可用来存储任何和/或全部程序指令、测量数据和所需结果。
【00129】在一个实施例中,系统计算机1930可从硬盘存储器装置1950检索适当的数据从而构建分级逻辑图,并按照对应于这里所述方法的程序指令将该图解码或转化为低级编程代码。程序指令可以计算机编程语言,如C++、Java等编写。程序指令可存储在计算机可读存储器中,如程序盘存储器装置1960。当然,存储程序指令的存储介质可以是用于存储计算机程序的任何传统类型,包括硬盘驱动器、软盘、CD-ROM和其他光学介质、磁带等。
【00130】按照优选实施例,系统计算机1930主要将输出呈现在图形显示器1927上,或可替换地经打印机1928输出。系统计算机1930可在硬盘存储介质上存储上述方法的结果供以后使用和进一步分析。键盘1926和指向装置(如鼠标、轨迹球等)1925可提供给计算机系统1930,使得能够进行交互操作。
【00131】按照本发明的一个实施例,程序盘存储装置1960包括图形用户界面1970,其允许用户通过查看、编辑和操纵图形环境中的逻辑分支而编程。图形用户界面1970被配置成和集成的开发环境(IDE)一起工作。IDE可包括编辑器,其和文本和图形模式的逻辑、交叉引用和搜索能力、扩展/折叠(collapse)特征一起工作,从而控制逻辑分支的显示和用来比较不同逻辑分支的比较工具。IDE和在图形环境中工作的能力使得构建程序和维护程序的任务更容易并更有效。
【00132】图形用户界面1970提供不同控件来创建组件和构建树分支。界面实现利用了多级组件架构,从而促进自顶向下设计和构建程序的实现。以该方式,程序可自顶向下逐层构建。
【00133】使用分级逻辑图方法来编程的许多优点中的一个是它自动强加程序的高度结构化设计和视图。程序被分成逻辑部分,每个逻辑部分由独立的逻辑分支表示。每个逻辑分支是高度结构化的,从具有固定架构的一组构建方块(即,组件)构建。每个分支是用IDE中内置的图形界面强加的自顶向下过程构建的。本发明实施例的另一个优点是分级逻辑图提供高级、紧凑形式的完整计算机程序。
【00134】以低级代码,如C++编写的复杂程序可能难于阅读和理解,即使它是良好结构化的。代码趋向于以多次函数调用展开,函数可嵌套几层深。使用程序的分级表示提供管理荧屏上的逻辑显示的简易方式。分级结构的分支可折叠或扩展,从而帮助阅读和管理逻辑,特别是在处理复杂分支时。分支可折叠从而隐藏细节并显示逻辑的高级视图,或它们可扩展从而示出任意所选层的详细信息。分支可在同一窗口中串联展开,或可扩展到新窗口中从而帮助查看和管理荧屏显示。当因为质量控制要对程序执行代码走查时,查看图形化逻辑的能力表示显著优势。通过隐藏/扩展树的各个层或分支,诸如审阅程序设计,执行代码的详细分析和检查逻辑的任务可更容易并更有效地执行。代码走查可以顾客参与审阅的方式执行从而确保所有用户规范都满足。审阅和检查逻辑的能力导致更好质量的程序。
【00135】当需要快速改变时,为了帮助维护程序,树结构的每个分支可以是活动的或非活动的,以便尝试不同逻辑形式。在最终的程序转化为低级代码时,非活动分支可忽略。用户界面实现允许分支被临时去激活且随后再激活。特殊符号(如“X”)可用在图形界面上从而标记分支为非活动的。这个功能允许用户查看和比较不同的逻辑实施。不同编程解决方案可在同一程序文件内保持并评注。
【00136】本发明实施例的另一个优点涉及调试。编写帮助测试、调试和验证C++程序的调试指令可能是单调并费时的工作。本发明实施例的一个重要益处是能够实施自动调试技术,从而使得验证块更自动化和高效。在转化为低级代码时可产生分级结构的每个分支,以生成其自己的调试代码。此外,分级逻辑图可被用作帮助跟踪由调试代码生成的不同级输出的精确路标。可产生调试代码的每个部分,以自动引用分级结构中的精确位置,在这里调试代码被配置成创建某些中间输出。因为调试代码仅在转化为低级代码时生成,所以其不和分级逻辑图一起显示也不妨碍读取图的能力。在转化块中可启用或关闭自动调试代码生成。对于程序的生产发行,当不再需要调试代码时,关闭调试代码可将其从交付的程序中除去,从而避免与执行嵌入的调试代码关联的任何计算开销处罚。
【00137】本发明实施例的另一个优点针对评注。组件可被分配唯一的描述,其有助于读取和理解每个分支及分级逻辑图的每个层的过程。这进而使执行代码走查更容易,如前面的讨论。此外,描述可用来评注由组件实现的逻辑。描述可以是高级伪代码,其清楚说明可由组件执行的(多个)指令。例如,是否测试if_test组件的描述可以是check_if_maximum_gas_rate_is_exceeded(检查是否超过最大的气产量),且通配组件的描述可以是check_minimum_oil_production_rate_and_if_violated_drill_more_wells(检查最小的油生产率,并且如果违反了它就钻更多的油井)。给组件分配清楚并有意义的描述可导致为代码创建即时评注,这有助于对程序的后续维护。此外,每个组件便于用户存储额外的评注,包括假设、解释、方法、经验/学习等,从而帮助理解逻辑并辅助程序的维护。
【00138】本发明实施例的另一个益处是在分级逻辑程序内删除、拷贝或粘贴逻辑分支的功能。为了使得这些操作安全,在每次操作之后对分级逻辑程序执行验证检查。规则可被编程到待检查和分解的组件中。内建在组件设计中的通信模型允许组件访问分级结构上上下下的所有层中的数据从而分解具有上下文依赖(context dependency)的规则。例如,当拷贝分支到新位置时,检查可能无效的上下文。新位置可能没有使拷贝分支的执行有效所需的限制违反测试的类型。可替换的,拷贝的分支可能需要访问设施(例如,钻井平台)的数据,该设施没有在目的地节点定义。另一个常见问题包括未声明的局部变量。在拷贝分支后,检查需要声明并在目的地节点插入的局部变量。
【00139】本发明实施例的另一个优点是能够创建高度通配并高度可再利用的逻辑。通配代码可用逻辑段或分支编程,该逻辑段或分支是上下文敏感的并含最少量的硬编码数据。每个逻辑分支适配在分级树的特定位置并可从周围树提取信息从而分解上下文敏感指令。这使逻辑对程序其他部分或其他程序容易地“可即插即用”。编写通配、可即插即用代码的能力使得可能构建可再用逻辑的模板库,其可提供给用户从而帮助建立他们的油井管理程序。
【00140】在组合分级逻辑图的过程中执行的另一个常见操作是再使用内建在其他程序中或来自模板库的逻辑分支。在该情形中,操纵涉及跨不同逻辑“容器”拷贝逻辑分支。可能要执行额外的检查来使该拷贝操作安全。组件名称、数据和定义的冲突,以及用在逻辑中的变量的冲突可能需要检测和解决。组件可被编程从而检查这些冲突,并要么自动解决冲突要么警告用户从而在需要是采取行动。例如,当从外部源拷贝分支时,所拷贝分支的某些子分支可能具有已经存在于目标树中的描述。可检查具有相同描述的组件是否具有相同的数据/定义。如果组件是复合或混合组件,则检查可包括详细研究和比较属于该组件的每个节点。如果定义同意,则不执行校正块。否则,拷贝的具有描述冲突的节点可能自动被再次描述从而解决冲突,且可发出警告从而警告用户。这些内部检查使得从外部源拷贝逻辑分支更容易也更安全。
【00141】虽然本发明的技术易受各种修改和变化的形式影响,但是上面讨论的示例性实施例已经作为例子示出。然而,应该再次理解,本发明不局限于这里公开的特定实施例。实际上,本发明的技术涵盖落在所附权利要求限定的本发明精神和范围内的所有修改、等价物和可替换方案。

Claims (93)

1.一种油藏模拟方法,其包括:
构建具有一个或更多个组件的分级逻辑图,其中每个组件表示一组编程代码;以及
转换所述分级逻辑图为编程代码,该编程代码被配置成管理油藏的模拟。
2.如权利要求1所述的方法,进一步包括在图形用户界面上显示所述分级逻辑图。
3.如权利要求1所述的方法,其中所述编程代码是C++和FORTRAN之一。
4.如权利要求1所述的方法,其中所述分级逻辑图提供用于管理所述油藏的模拟的高级结构化视图。
5.如权利要求1所述的方法,其中每个组件可扩展成一个或更多个子组件。
6.如权利要求1所述的方法,进一步包括在转换所述分级逻辑图为编程代码的过程中生成调试代码。
7.如权利要求1所述的方法,进一步包括生成每个组件的文档资料。
8.如权利要求1所述的方法,进一步包括执行所述编程代码从而生成模拟油藏。
9.如权利要求8所述的方法,进一步包括使用所述模拟油藏来预测油藏动态。
10.如权利要求8所述的方法,进一步包括用所述模拟油藏来从所述油藏生产碳氢化合物。
11.如权利要求1所述的方法,其中所述组件包括被配置成描述或定义设施的设施组件。
12.如权利要求11所述的方法,其中所述设施包括油井、钻井平台和油田之一。
13.如权利要求11所述的方法,其中所述设施组件包括一个或更多个次序组件,每个次序组件被配置成标记所述编程代码中主逻辑部分的开始。
14.如权利要求13所述的方法,其中每个次序组件包括一个或更多个通配组件,每个通配组件被配置成执行一个或更多个逻辑操作从而管理所述油藏的模拟。
15.如权利要求14所述的方法,其中每个通配组件包括被配置成规定逻辑条件的“是否测试”组件。
16.如权利要求15所述的方法,其中转换所述分级逻辑图包括转化所述“是否测试”组件的逻辑条件为编程代码。
17.如权利要求16所述的方法,其中转换所述分级逻辑图包括为所述逻辑条件解析所述编程代码中设施的引用。
18.如权利要求17所述的方法,其中为所述逻辑条件解析所述编程代码中所述设施的引用包括,如果所述“是否测试”组件所属的通配组件是set循环组件的一部分,就设置所述设施的引用为由所述set循环组件定义的设施。
19.如权利要求17所述的方法,其中为所述逻辑条件解析所述编程代码中所述设施的引用包括,如果所述“是否测试”组件所属的通配组件是至少一个所述次序组件的一部分,则设置所述设施的引用为由所述设施组件描述定义的设施。
20.如权利要求17所述的方法,其中为所述逻辑条件解析所述编程代码中所述设施的引用进一步包括,如果所述“是否测试”组件所属的所述通配组件没有嵌套在任何set循环组件下,且如果所述通配组件是被配置为子程序的次序组件的一部分,则设置所述设施的引用为调用所述逻辑条件是其一部分的次序组件的设施。
21.如权利要求14所述的方法,其中每个通配组件包括被配置成执行循环结构的循环组件。
22.如权利要求21所述的方法,其中所述循环结构是while循环,for循环和set循环的之一。
23.如权利要求21所述的方法,其中每个通配组件包括“退出循环条件”,该“退出循环条件”被配置成判断所述循环结构的结束。
24.如权利要求23所述的方法,其中转换所述分级逻辑图包括转化所述“退出循环条件”为编程代码。
25.如权利要求24所述的方法,其中转换所述分级逻辑图包括为所述“退出循环条件”解析所述编程代码中设施的引用。
26.如权利要求25所述的方法,其中为所述“退出循环条件”解析所述编程代码中所述设施的引用包括设置所述设施的引用为“是否测试”组件定义的逻辑条件。
27.如权利要求21所述的方法,其中所述循环组件包括被配置成规定逻辑条件的“是否测试”组件。
28.如权利要求14所述的方法,其中转换所述分级逻辑图包括转化所述循环组件的过滤条件为编程代码。
29.如权利要求14所述的方法,其中每个通配组件包括被配置成执行命令的“执行动作”组件。
30.如权利要求29所述的方法,其中转换所述分级逻辑图包括转化所述“执行动作”组件的命令为编程代码。
31.如权利要求30所述的方法,其中转换所述分级逻辑图包括为所述命令解析所述编程代码中设施和/或流体相的引用。
32.如权利要求31所述的方法,其中为所述命令解析所述编程代码中设施和/或流体相的引用包括为“是否测试”组件引用条件,该“是否测试”组件定义所述“执行动作”组件所属的每个通配组件。
33.如权利要求31所述的方法,其中为所述命令解析所述编程代码中设施和/或流体相的引用包括,如果所述“执行动作”组件是set循环组件的一部分,则设置所述设施的引用为由所述set循环组件定义的设施。
34.如权利要求29所述的方法,其中所述“执行动作”组件引用函数。
35.如权利要求29所述的方法,其中所述“执行动作”组件包括嵌套通配组件,其被配置成执行一个或更多个逻辑操作从而管理所述油藏的模拟。
36.如权利要求29所述的方法,其中转换所述分级逻辑图包括转化所述“执行动作”组件为编程代码。
37.如权利要求14所述的方法,其中转换所述分级逻辑图包括转化所述通配组件为编程代码。
38.如权利要求14所述的方法,其中每个通配组件包括嵌套通配组件,其被配置成执行一个或更多个逻辑操作以管理所述油藏的模拟。
39.如权利要求13所述的方法,其中转换所述分级逻辑图包括转化所述次序组件为编程代码。
40.如权利要求1所述的方法,其中所述组件包括设施组件,其被配置成描述或定义设施,且其中转换所述分级逻辑图为编程代码包括存储所述设施的名称。
41.如权利要求28所述的方法,其中转换所述分级逻辑图包括为所述过滤条件解析所述编程代码中设施的引用。
42.如权利要求41所述的方法,其中为所述过滤条件解析所述编程代码中所述设施的引用包括,如果所述循环组件是set循环结构,则设置所述设施的引用为由所述循环组件定义的设施。
43.如权利要求1所述的方法,其中所述组件被分组成一个或更多个容器组件。
44.一种计算机系统,其包括:
处理器;以及
存储器,其包括可由所述处理器执行的指令,从而:
建立具有一个或更多个组件的分级逻辑图,其中每个组件表示一组编程代码;以及
转换所述分级逻辑图为编程代码,该编程代码被配置成管理油藏的模拟。
45.如权利要求44所述的计算机系统,其中所述存储器进一步包括在图形用户界面上显示所述分级逻辑图的程序指令。
46.如权利要求44所述的计算机系统,其中所述编程代码是C++和FORTRAN之一。
47.如权利要求44所述的计算机系统,其中所述分级逻辑图提供所述编程代码的高级结构化视图,用于管理所述油藏的模拟。
48.一种预测油藏动态的方法,其包括:
用图形用户界面构建分级逻辑图,其中所述分级逻辑图包括一个或更多个组件,其中每个组件表示一组编程代码;
通过所述图形用户界面显示所述分级逻辑图;
转换所述分级逻辑图为编程代码,该编程代码被配置成管理油藏的模拟;以及
执行该编程代码从而生成模拟的油藏模型。
49.如权利要求48所述的方法,进一步包括用模拟的油藏来预测所述油藏动态。
50.如权利要求48所述的方法,进一步包括用模拟的油藏来从所述油藏生产碳氢化合物。
51.如权利要求48所述的方法,其中所述分级逻辑图是可调整的。
52.如权利要求48所述的方法,其中所述编程代码是C++和FORTRAN之一。
53.如权利要求48所述的方法,其中所述分级逻辑图提供所述编程代码的高级结构化视图,用于管理所述油藏的模拟。
54.如权利要求48所述的方法,进一步包括在转换所述分级逻辑图为所述编程代码的过程中生成调试代码。
55.如权利要求48所述的方法,其中所述组件包括设施组件,其被配置成描述或定义设施。
56.如权利要求55所述的方法,其中所述设施包括油井、钻井平台和油田之一。
57.如权利要求55所述的方法,其中所述设施组件包括一个或更多个次序组件,每个次序组件被配置成标记所述编程代码中主逻辑部分的开始。
58.如权利要求13所述的方法,其中每个次序组件包括一个或更多个通配组件,每个通配组件被配置成执行一个或更多个逻辑操作从而管理所述油藏的模拟。
59.如权利要求58所述的方法,其中每个通配组件包括被配置成规定逻辑条件的“是否测试”组件。
60.如权利要求59所述的方法,其中转换所述分级逻辑图包括转化所述“是否测试”组件的所述逻辑条件为编程代码。
61.如权利要求60所述的方法,其中转换所述分级逻辑图包括为所述逻辑条件解析所述编程代码中设施的引用。
62.如权利要求61所述的方法,其中为所述逻辑条件解析所述编程代码中所述设施的引用包括,如果所述“是否测试”组件所属的所述通配组件是set循环组件的一部分,则设置所述设施的引用为由所述set循环组件定义的设施。
63.如权利要求61所述的方法,其中为所述逻辑条件解析所述编程代码中所述设施的引用进一步包括,如果所述“是否测试”组件所属的所述通配组件是至少一个所述次序组件的一部分,则设置所述设施的引用为由所述设施组件描述定义的设施。
64.如权利要求61所述的方法,其中为所述逻辑条件解析所述编程代码中所述设施的引用进一步包括,如果所述“是否测试”组件所属的所述通配组件没有嵌套在任何set循环组件下,且如果所述通配组件是被配置为子程序的次序组件的一部分,则设置所述设施的引用为调用所述逻辑条件是其一部分的次序组件的设施。
65.如权利要求59所述的方法,其中每个通配组件包括被配置成执行循环结构的循环组件。
66.如权利要求65所述的方法,其中所述循环结构是while循环,for循环和set循环之一。
67.如权利要求65所述的方法,其中每个通配组件包括“退出循环条件”,该“退出循环条件”被配置成判断所述循环结构的结束。
68.如权利要求67所述的方法,其中转换所述分级逻辑图包括转化所述“退出循环条件”为编程代码。
69.如权利要求68所述的方法,其中转换所述分级逻辑图包括为所述“退出循环条件”解析所述编程代码中设施的引用。
70.如权利要求69所述的方法,其中为所述“退出循环条件”解析所述编程代码中所述设施的引用包括设置所述设施的引用为由所述“是否测试”组件定义的逻辑条件。
71.如权利要求65所述的方法,其中所述循环组件包括被配置成规定逻辑条件的“是否测试”组件。
72.如权利要求58所述的方法,其中转换所述分级逻辑图包括转化所述循环组件的过滤条件为编程代码。
73.如权利要求58所述的方法,其中每个通配组件包括被配置成执行命令的“执行动作”组件。
74.如权利要求73所述的方法,其中转换所述分级逻辑图包括转化所述“执行动作”组件的命令为编程代码。
75.如权利要求75所述的方法,其中转换所述分级逻辑图包括为所述命令解析所述编程代码中设施和/或流体相的引用。
76.如权利要求75所述的方法,其中为所述命令解析所述编程代码中设施和/或流体相的引用包括为“是否测试”组件引用条件,该“是否测试”组件定义所述“执行动作”组件所属的每个通配组件。
77.如权利要求75所述的方法,其中为所述命令解析所述编程代码中设施和/或流体相的引用包括,如果所述“执行动作”组件是set循环组件的一部分,则设置所述设施的引用为由所述set循环组件定义的设施。
78.如权利要求73所述的方法,其中所述“执行动作”组件引用函数。
79.如权利要求73所述的方法,其中所述“执行动作”组件包括嵌套通配组件,该嵌套通配组件被配置成执行一个或更多个逻辑操作从而管理所述油藏的模拟。
80.如权利要求73所述的方法,其中转换所述分级逻辑图包括转化所述“执行动作”组件为编程代码。
81.如权利要求58所述的方法,其中转换所述分级逻辑图包括转化所述通配组件为编程代码。
82.如权利要求58所述的方法,其中每个通配组件包括嵌套通配组件,该嵌套通配组件被配置成执行一个或更多个逻辑操作,用于管理所述油藏的模拟。
83.如权利要求57所述的方法,其中转换所述分级逻辑图包括转化所述次序组件为编程代码。
84.如权利要求48所述的方法,其中所述组件包括被配置成描述或定义设施的设施组件,且其中转换所述分级逻辑图为编程代码包括存储所述设施的名称。
85.如权利要求84所述的方法,其中转换所述分级逻辑图包括为所述过滤条件解析所述编程代码中设施的引用。
86.如权利要求85所述的方法,其中为所述过滤条件解析所述编程代码中所述设施的引用包括,如果所述循环组件是set循环结构,则设置所述设施的引用为由所述循环组件定义的设施。
87.一种用于油藏模拟的计算机实施的方法,其包括:
构建表示油井管理程序的分级逻辑图,其中所述分级逻辑图包括一个或更多个组件,每个组件表示一组编程代码;
解码所述分级逻辑图为低级编程代码;
编译低级编程代码;
链接低级编程代码到油藏模拟程序;
从所述油藏模拟程序生成油藏模拟模型;和
存储来自所述油藏模拟模型的结果。
88.如权利要求87所述的方法,进一步包括根据所述油藏模拟模型评估油藏。
89.如权利要求87所述的方法,进一步包括生成关于评估的报告。
90.如权利要求87所述的方法,其中所述分级逻辑图被配置成为所述油藏模拟模型设置油井产量和边界条件。
91.如权利要求87所述的方法,其中所述油藏模拟器模型包括油藏和设施,其中所述设施表示油藏和输送位置之间的流动路径中的物理设备。
92.如权利要求91所述的方法,其中所述设施是钻井平台、歧管、泵、压缩机、分离器、管路和钻塔中的一个或更多个。
93.如权利要求87所述的方法,其中模拟被用来建模发生在油藏中的化学、物理和流体流动过程,从而预测所述油藏的未来行为并提高来自所述油藏的碳氢化合物开采量。
CN2006800226590A 2005-06-28 2006-04-25 用于油井管理编程的高级图形编程语言和工具 Expired - Fee Related CN101203862B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US69473805P 2005-06-28 2005-06-28
US60/694,738 2005-06-28
PCT/US2006/015385 WO2007001604A2 (en) 2005-06-28 2006-04-25 High-level graphical programming language and tool for well management programming

Publications (2)

Publication Number Publication Date
CN101203862A true CN101203862A (zh) 2008-06-18
CN101203862B CN101203862B (zh) 2011-03-23

Family

ID=35457311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800226590A Expired - Fee Related CN101203862B (zh) 2005-06-28 2006-04-25 用于油井管理编程的高级图形编程语言和工具

Country Status (7)

Country Link
US (1) US20090222246A1 (zh)
EP (1) EP1915721A4 (zh)
CN (1) CN101203862B (zh)
CA (1) CA2608659A1 (zh)
NO (1) NO20075741L (zh)
RU (1) RU2008102937A (zh)
WO (1) WO2007001604A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092813A (zh) * 2011-10-31 2013-05-08 鸿富锦精密工业(深圳)有限公司 三次元程序显示系统及方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2247820A4 (en) 2007-12-13 2016-02-24 Exxonmobil Upstream Res Co PARALLEL ADAPTIVE DATA DISTRIBUTION IN A STORAGE SIMULATION USING AN UN-STRUCTURED GRID
CN102165413A (zh) * 2008-09-30 2011-08-24 埃克森美孚上游研究公司 自适应迭代求解器
BRPI0919457A2 (pt) * 2008-09-30 2015-12-01 Exxonmobil Upstream Res Co método para simular escoamento de fluido em um reservatório de hidrocarboneto
US20120130696A1 (en) * 2009-08-12 2012-05-24 Exxonmobil Upstream Research Company Optimizing Well Management Policy
US9176979B2 (en) 2010-08-10 2015-11-03 X Systems, Llc System and method for analyzing data
US9652726B2 (en) 2010-08-10 2017-05-16 X Systems, Llc System and method for analyzing data
US8849638B2 (en) 2010-08-10 2014-09-30 X Systems, Llc System and method for analyzing data
US9665836B2 (en) 2010-08-10 2017-05-30 X Systems, Llc System and method for analyzing data
US9665916B2 (en) 2010-08-10 2017-05-30 X Systems, Llc System and method for analyzing data
WO2015078992A1 (en) * 2013-11-27 2015-06-04 Engino.Net Ltd. System and method for teaching programming of devices

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4315315A (en) * 1971-03-09 1982-02-09 The Johns Hopkins University Graphical automatic programming
US4546435A (en) * 1980-06-24 1985-10-08 Herbert Frank P Graphic computer system and keyboard
US4813013A (en) * 1984-03-01 1989-03-14 The Cadware Group, Ltd. Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications icons
US5291587A (en) * 1986-04-14 1994-03-01 National Instruments, Inc. Graphical system for executing a process and for programming a computer to execute a process, including graphical variable inputs and variable outputs
US4827404A (en) * 1986-04-14 1989-05-02 Schlumberger Technology Corporation Method and system for computer programming
US5566294A (en) * 1989-09-29 1996-10-15 Hitachi, Ltd. Method for visual programming with aid of animation
US5187788A (en) * 1989-05-01 1993-02-16 The United States Of America As Represented By The Secretary Of The Air Force Graphics system for automatic computer code generation
JP3302011B2 (ja) * 1990-06-11 2002-07-15 キヤノン株式会社 図形編集方法及びその装置
US5313575A (en) * 1990-06-13 1994-05-17 Hewlett-Packard Company Processing method for an iconic programming system
US5313574A (en) * 1990-06-13 1994-05-17 Hewlett-Packard Company Method for starting processing of an iconic programming system
US5551041A (en) * 1990-06-13 1996-08-27 Hewlett-Packard Company Wait for service request in an iconic programming system
DE69126391T2 (de) * 1990-09-12 1997-10-30 Toshiba Kawasaki Kk Verfahren zur Funktionenerzeugung durch Bildsymbolanwendung
US5301301A (en) * 1991-01-30 1994-04-05 National Instruments Corporation Polymorphic dataflow block diagram system and method for programming a computer
US5293476A (en) * 1991-03-12 1994-03-08 Hewlett-Packard Co. System for entering and modifying variable names for terminals of icons in an iconic programming system
US5261043A (en) * 1991-03-12 1993-11-09 Hewlett-Packard Company Input and output data constraints on iconic devices in an iconic programming system
US5325481A (en) * 1991-04-12 1994-06-28 Hewlett-Packard Company Method for creating dynamic user panels in an iconic programming system
US5437007A (en) * 1992-11-10 1995-07-25 Hewlett-Packard Company Control sequencer in an iconic programming system
US5517663A (en) * 1993-03-22 1996-05-14 Kahn; Kenneth M. Animated user interface for computer program creation, control and execution
US5742848A (en) * 1993-11-16 1998-04-21 Microsoft Corp. System for passing messages between source object and target object utilizing generic code in source object to invoke any member function of target object by executing the same instructions
JP3660366B2 (ja) * 1993-12-28 2005-06-15 富士通株式会社 図形を用いたプログラミングシステム
US5566295A (en) * 1994-01-25 1996-10-15 Apple Computer, Inc. Extensible simulation system and graphical programming method
US5546519A (en) * 1994-02-28 1996-08-13 International Business Machines Corporation System and method for visually programming iteration
US5623592A (en) * 1994-10-18 1997-04-22 Molecular Dynamics Method and apparatus for constructing an iconic sequence to operate external devices
US5850548A (en) * 1994-11-14 1998-12-15 Borland International, Inc. System and methods for visual programming based on a high-level hierarchical data flow model
US5537630A (en) * 1994-12-05 1996-07-16 International Business Machines Corporation Method and system for specifying method parameters in a visual programming system
US5946485A (en) * 1996-02-09 1999-08-31 Intervoice Limited Partnership Enhanced graphical development environment for controlling program flow
US6437805B1 (en) * 1996-09-23 2002-08-20 National Instruments Corporation System and method for accessing object capabilities in a graphical program
JP4044169B2 (ja) * 1997-02-26 2008-02-06 株式会社アマダ 工程の流れに沿った情報設定画面の表示方法及びその機能を有するマルチウィンドウ方式のnc装置
DE19880536B4 (de) * 1997-03-11 2004-08-05 Mitsubishi Denki K.K. Visuelles Programmierverfahren und dieses Verfahren anwendendes Pogrammiersystem
WO1999057418A1 (en) * 1998-05-04 1999-11-11 Schlumberger Evaluation & Production (Uk) Services Near wellbore modeling method and apparatus
US6564368B1 (en) * 1998-10-01 2003-05-13 Call Center Technology, Inc. System and method for visual application development without programming
US6714219B2 (en) * 1998-12-31 2004-03-30 Microsoft Corporation Drag and drop creation and editing of a page incorporating scripts
US6738964B1 (en) * 1999-03-11 2004-05-18 Texas Instruments Incorporated Graphical development system and method
US6658404B1 (en) * 1999-09-20 2003-12-02 Libera, Inc. Single graphical approach for representing and merging boolean logic and mathematical relationship operators
US6750884B1 (en) * 1999-10-26 2004-06-15 Red Oak Knowledge Systems, Inc. Instruction presentation apparatus
US6928399B1 (en) * 1999-12-03 2005-08-09 Exxonmobil Upstream Research Company Method and program for simulating a physical system using object-oriented programming
IL133451A0 (en) * 1999-12-10 2001-04-30 Dspc Tech Ltd Programmable convolver
US6684385B1 (en) * 2000-01-14 2004-01-27 Softwire Technology, Llc Program object for use in generating application programs
US6425120B1 (en) * 2000-01-14 2002-07-23 Softwire Technology Llc Repeating program object for use with a graphical program-development system
US6425121B1 (en) * 2000-01-14 2002-07-23 Softwire Technology, Llp Method and apparatus for resolving divergent paths in graphical programming environments
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
US6763515B1 (en) * 2000-06-05 2004-07-13 National Instruments Corporation System and method for automatically generating a graphical program to perform an image processing algorithm
JP2004501464A (ja) * 2000-06-22 2004-01-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ パラメータ制御システム
WO2002003262A2 (en) * 2000-06-29 2002-01-10 Object Reservoir, Inc. System and method for defining and displaying a reservoir model
US6751787B1 (en) * 2000-10-13 2004-06-15 Intervoice Limited Partnership Graphical programming language for representations of concurrent operations
US7761270B2 (en) * 2000-12-29 2010-07-20 Exxonmobil Upstream Research Co. Computer system and method having a facility management logic architecture
US7720656B2 (en) * 2001-05-14 2010-05-18 The Math Works, Inc. Graphical functions
JP2003256203A (ja) * 2002-03-01 2003-09-10 Mitsubishi Electric Corp 自動機アプリケーションプログラム開発システム、プログラム開発方法、この方法を実行するプログラム、及びこのプログラムを記憶した記憶媒体
US6704656B1 (en) * 2002-10-18 2004-03-09 Schlumberger Technology Corporation Method, apparatus and computer program product to allow automatic product composition
US20050086635A1 (en) * 2003-10-20 2005-04-21 Pegasus Technologies, Inc. Visual programming system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092813A (zh) * 2011-10-31 2013-05-08 鸿富锦精密工业(深圳)有限公司 三次元程序显示系统及方法

Also Published As

Publication number Publication date
EP1915721A2 (en) 2008-04-30
EP1915721A4 (en) 2010-09-22
WO2007001604A2 (en) 2007-01-04
NO20075741L (no) 2008-01-28
CN101203862B (zh) 2011-03-23
US20090222246A1 (en) 2009-09-03
WO2007001604A3 (en) 2007-04-26
RU2008102937A (ru) 2009-08-10
CA2608659A1 (en) 2007-01-04

Similar Documents

Publication Publication Date Title
CN101203862B (zh) 用于油井管理编程的高级图形编程语言和工具
David et al. Reliability study of complex physical systems using SysML
US8849623B2 (en) Systems and methods for reservoir development and management optimization
Campos et al. Interaction engineering using the IVY tool
US10961826B2 (en) Subsurface modeler workflow and tool
Jiang et al. Automated rule-based constructability checking: Case study of formwork
WO2012032890A1 (ja) ソースコード変換方法およびソースコード変換プログラム
US20120130696A1 (en) Optimizing Well Management Policy
McBroom et al. A survey of automated programming hint generation: The hints framework
EA025473B1 (ru) Способ и система для определения подходящих вариантов гидроразрыва формации
Baumann et al. FieldOpt: A powerful and effective programming framework tailored for field development optimization
US7958073B2 (en) Software and methods for task method knowledge hierarchies
Brinkgreve et al. Validation of geotechnical finite element analysis
CN103065000A (zh) 一种基于模型驱动工程进行SysML状态机图分析验证的方法
US10402727B2 (en) Methods for evaluating and simulating data
CN115080448B (zh) 一种软件代码不可达路径自动检测的方法和装置
Victorino et al. Analysis of the production of a pre-salt-based carbonate reservoir through integrated simulation of reservoir and production system
CN109308381A (zh) 一种确定原油体积系数的方法、装置及系统
Papakonstantinou et al. A model-driven approach for incorporating human reliability analysis in early emergency operating procedure development
US20210340858A1 (en) Systems and Methods for Dynamic Real-Time Hydrocarbon Well Placement
Bello et al. Selective Perforation and Design of Multi-Pattern Infill Wells in Field Development Planning and Optimization Under Geological Uncertainty
Zhang Modeling uncertainty and risk in carbon capture and storage
Martín et al. A KDM-Based Approach for Architecture Conformance Checking in Adaptive Systems
You Re-engineering the Legacy Software Systems by using Object-Oriented Technologies
Pan User information for WinGridder version 3.0

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110323

Termination date: 20150425

EXPY Termination of patent right or utility model