使用松弛变量确定网络中的有效约束的系统和方法转让专利

申请号 : CN200880118396.2

文献号 : CN102160050B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 詹姆斯·威廉·Ⅲ·沃茨格雷汉姆·弗莱明琴·陆

申请人 : 兰德马克绘图国际公司哈里伯顿公司

摘要 :

用于确定地面设施网络中的有效约束的系统和方法,其包括在系统方程中使用松弛变量和乘数,以消去无关(无效)约束。

权利要求 :

1.一种通过确定地面设施网络中有效约束来消除所述网络中的无关约束的方法,包括:选择所述网络中连接的至少一个表示所述连接处的约束的约束方程,每一个约束方程包括各自的松弛变量和各自的松弛变量乘数;

选择所述网络中每一个连接的基础方程,具有所述至少一个约束方程的所述网络连接的所述基础方程包括,每一个约束方程的所述各自的松弛变量和每一个约束方程的各自的松弛变量的另一个各自的松弛变量乘数;

使用计算机系统求解每一个各自的松弛变量;

根据每一个各自的松弛变量的解,对于每一个各自的松弛变量乘数和每一个各自的另一个松弛变量乘数,调整各自的参数;

重复求解每一个各自的松弛变量以及对于每一个各自的松弛变量乘数和每一个各自的另一个松弛变量乘数调整各自的参数的步骤,直至每一个各自的参数等于0或1;以及根据每一个约束方程各自的参数是否等于1,确定所述网络中的每一个约束方程是否有效。

2.如权利要求1所述的方法,还包括选择所述网络中每一个节点的质量平衡方程。

3.如权利要求1所述的方法,其中,具有所述至少一个约束方程的所述网络连接的所述基础方程是液压方程,并且所述至少一个约束方程是速率约束方程。

4.如权利要求1所述的方法,还包括选择所述网络中另一个连接的另一个约束方程。

5.如权利要求1所述的方法,其中,将每一个各自的参数初始设置为0.5,并且如果各自的松弛变量的所述解小于或等于零,将所述每一个各自的参数向0调整,并且如果所述各自的松弛变量的解大于零,将所述每一个各自的参数向1调整。

6.如权利要求5所述的方法,其中,通过将一减去所述各自的参数乘以减小因子,将每一个各自的参数向1调整,并且通过将所述参数乘以另一个减小因子,将每一个各自的参数向0调整。

7.如权利要求1所述的方法,还包括:

如果所述每一个约束方程的各自的参数等于1,将所述每一个约束方程的各自的松弛变量加至具有所述至少一个约束方程的所述网络连接的所述基础方程。

8.如权利要求2所述的方法,还包括:

求解所述网络中每一个有效约束方程;

求解所述网络中每一个质量平衡方程;以及

对于没有约束方程的每一个网络连接求解所述网络中每一个基础方程。

9.一种通过确定地面设施网络中有效约束来消除所述网络中的无关约束的计算机系统,包括:用于选择所述网络中连接的至少一个表示所述连接处的约束的约束方程的模块,每一个约束方程包括各自的松弛变量和各自的松弛变量乘数;

用于选择所述网络中每一个连接的基础方程的模块,具有所述至少一个约束方程的所述网络连接的所述基础方程包括,每一个约束方程的所述各自的松弛变量和每一个约束方程的各自的松弛变量的另一个各自的松弛变量乘数;

用于求解每一个各自的松弛变量的模块;

用于根据每一个各自的松弛变量的解为每一个各自的松弛变量乘数和每一个各自的另一个松弛变量乘数调整各自的参数的模块;

用于重复求解每一个各自的松弛变量以及对于每一个各自的松弛变量乘数和每一个各自的另一个松弛变量乘数调整各自的参数的步骤直至每一个各自的参数等于0或1的模块;以及用于根据每一个约束方程各自的参数是否等于1来确定所述网络中的每一个约束方程是否有效的模块。

10.如权利要求9所述的计算机系统,还包括用于选择所述网络中每一个节点的质量平衡方程的模块。

11.如权利要求9所述的计算机系统,其中,具有所述至少一个约束方程的所述网络连接的所述基础方程是液压方程,并且所述至少一个约束方程是速率约束方程。

12.如权利要求9所述的计算机系统,还包括用于选择所述网络中另一个连接的另一个约束方程的模块。

13.如权利要求9所述的计算机系统,其中,在用于求解的模块和用于调整的模块中,将每一个各自的参数初始设置为0.5,并且如果各自的松弛变量的所述解小于或等于零,将所述每一个各自的参数向0调整,并且如果所述各自的松弛变量的解大于零,将所述每一个各自的参数向1调整。

14.如权利要求13所述的计算机系统,其中,在用于求解的模块和用于调整的模块中,通过将一减去所述各自的参数乘以减小因子,将每一个各自的参数向1调整,并且通过将所述各自的参数乘以另一个减小因子,将每一个各自的参数向0调整。

15.如权利要求9所述的计算机系统,还包括:

用于在每一个约束方程的各自的参数等于1时将每一个约束方程的松弛变量加至具有所述至少一个约束方程的所述网络连接的所述基础方程的模块。

16.如权利要求10所述的计算机系统,还包括:

用于求解所述网络中每一个有效约束方程的模块;

用于求解所述网络中每一个质量平衡方程的模块;以及

用于对于没有约束方程的每一个网络连接求解所述网络中每一个基础方程的模块。

说明书 :

使用松弛变量确定网络中的有效约束的系统和方法

[0001] 相关申请的交叉引用
[0002] 在此要求于2007年11月28日提交的、第60/990,823号美国临时专利申请的优先权,并将其说明书以参考的方式并入本申请。
[0003] 关于联邦政府资助的研究声明
[0004] 不适用。

技术领域

[0005] 本发明通常涉及用于确定地面设施网络中的有效约束的系统和方法。本发明尤其涉及在系统方程中使用松弛变量和乘数值以消去无关(无效)约束。

背景技术

[0006] 在石油和天然气生产领域,可以将地面设施网络系统表示为节点、节点之间的连接、节点和油藏网格单元(射孔)之间的连接,以及节点和油库(开采)或源(喷射)之间的连接的组。图1说明了具有约束的示例性的地面设施网络。
[0007] 流程网络计算的主要难点是确定哪个可能的约束是有效的。例如,可能有数以百计或可能数以千计的以各种方式相互作用的约束。这最可能使制作简单的试验和误差策略过分昂贵,因为每个试验需要分解设施矩阵。此外,特定的约束可以互不兼容。例如,在单一的出油管线内不可以有两个有效的速率约束,因为这造成奇异矩阵。 [0008] 可以将不同种类的速率约束应用到连接,例如,地面条件的最大油相速率约束QOSMAX。同样,可以将不同种类的最小/最大压力约束(Pmin/Pmax)应用于节点。速率约束通常由在连接处的阀施加。节点处的Pmin约束由在节点的下游连接处的阀施加,并且Pmax约束由在 节点的上游连接处的阀施加。如果没有规定约束(或约束是无效的),可以将液压方程应用于连接处,以将流体成分速率和末端节点压力联系起来。
[0009] 必须建立方程组,以求解连接中的流体成分速率和节点处的压力。方程通常基于网络的性质和给定约束,并可以包括:
[0010] (a)节点处的流体成分质量平衡(mass balance)方程。
[0011] (b)连接处的连接方程,其可以是(i)液压方程,(ii)速率约束方程,(iii)节点下游连接处的具有Pmin约束的,或节点上游连接处的具有Pmax约束的压力约束方程,或(iv)其它种类的约束,诸如分离/分流约束方程。
[0012] (c)射孔处的射孔方程。
[0013] 将方程(a)和(c)固定,同时需要一种算法以为每一个连接选择仅一个可能的连接方程,每一个连接有不只一个可能的连接方程。该算法必须决定为给定的连接选择哪一个可能的连接方程,需记住不能求解过约束网络系统且每一个连接仅可以有一个连接方程。如果网络系统是过约束的,那么当使用牛顿法求解网络的非线性方程组时,建立不能在牛顿步通过线性解法(linear solver)求解的系统方程的奇异矩阵。牛顿法是求解非线性方程组的标准方法中的一种;其使用线性方程组的解,该解根据非线性方程的泰勒级数展开而得到以估计非线性方程的解。该线性化过程可以在多次迭代中重复,直至解收敛。将每一次迭代称作牛顿步。
[0014] 图2说明了过约束的地面-设施网络的示例性部分。在该示例中,假设流体只有一种成分,因此系统的未知数是分别为连接1处的速率、连接2处的速率和节点2处的压力的q1、q2和p2;而p1(节点1处的压力)和p3(节点3处的压力)是常数(p1=5000,p3=150)。对于该示例还假设,节点1和节点3之间的压降足够大,使得当连接1和连接2处的阀完全打开时,这两个速率约束被破坏。被选作连接1 和连接2处的连接方程的两个速率约束方程和在节点2处的质量平衡方程分别为:
[0015] q1=1000,………………………………………………………(1) [0016] q2=2000,………………………………………………………(2) [0017] q1-q2=0,………………………………………………………(3)很清楚,这三个方程是矛盾的,所以不能都被满足,并且节点2处的压力是不确定的,因为该压力没有出现在任何方程中。如果将未知数排序为q1、q2和p2,那么系统方程矩阵变为: [0018]
[0019] 该矩阵为奇异矩阵所以不能被求解。
[0020] 可以将连接2处的QMAX约束除去,因为其值大于连接1处的QMAX约束。换言之,速率必须等于或小于两个QMAX约束中较小的,该较小的是连接1处的QMAX=1000。连接2处的QMAX约束(方程(2))可以由液压方程替代:
[0021] -p2+p3+b2q2+c2=0, …………………………………………(5)其中,b2和c2是液压相关性(hydraulics correlation)确定的常数。现在可以求解网络系统,因为方程系统的矩阵:
[0022]
[0023] 不是奇异的。
[0024] 由兰德马克图形公司销售的商业-油藏-模拟应用Nexus ,通常以图3和图4说明的方式通过启发式地(heuristically)消去无关约束,做出完全连结的方式的油藏和地面设施网络系统(包括油井)的模型,因此,Nexus 只是与其它传统的确定有效约束的方法一样昂贵。图3 说明了Nexus 时间-步模拟的全部工作流程300。工作流程300的开始于第一个牛顿-也称作时间步的开端。在步骤304中,参考图4中更为详细的描述的方式,使用固定的油藏条件求解独立地面网络模型。在步骤306中,工作流程300确定独立-地面-网络模型牛顿步是否收敛。如果没有收敛,则工作流程300在步骤304重复下一个牛顿步。如果收敛,则工作流程300在步骤308求解连结的油藏/地面网络模型,并在步骤310确定独立-地面-网络模型牛顿步是否收敛。在步骤312,工作流程300继续至下一个时间步。
[0025] 图4中的方法400说明了求解图3中步骤304的独立-地面-网络模型的传统方法。方法400开始于独立-网络求解的第一个牛顿,并通过消去无关的约束启发式地确定有效约束。在步骤404中,在当前时间步对用户规定的网络配置和约束的任何变化进行检查。如果没有变化,那么方法400进行至步骤406;否则,网络在步骤404(b)重新初始化并且随后方法400继续至步骤406。
[0026] 在步骤406中,将每一个当前牛顿步的流体速率和节点压力的值与约束值作比较,从而确定每一个约束的破坏因子。换言之,分析每一个连接和节点,以确定是否有任何破坏的约束以及其被破坏的程度。选择每一个连接和节点的具有最大破坏因子的约束,作为有效约束的候选(candidate)。
[0027] 在步骤408中,将网络中所有的无关约束移除作为有效约束候选。所有保留的约束为有效约束。例如,在图1中,连接P-1和P-2的QOSMAX约束的总和小于集油1的QOSMAX约束。如果必须满足的P-1和P-2的约束被满足,集油1的约束也自动被满足。因此,集油1的约束是无关的,因而应该被移除。
[0028] 然而,当连接集油1被由数以百计或者可能数以千计的连接(其可能本身具有多种约束)组成的复杂网络从连接P-1和连接P-2分开,这种检查逻辑的方式会过分昂贵并且不可靠。例如,可能遗漏一些无 关的约束,这导致奇异矩阵,或者可能移除一些应该被保留的约束,这导致不准确的解。
[0029] 在步骤410中,将约束方程作为具有有效约束的每一个连接的连接方程。否则,将液压方程作为连接方程。在步骤412中,使用已知的线性解法求解线性化的网络系统方程。在步骤414中,线性解法确定网络系统方程是否产生奇异矩阵。如果矩阵是奇异的,方法继续至步骤420并确定网络是否已被重新初始化。如果网络已经被重新初始化,那么方法
400在步骤422提前终止。如果网络还没有被重新初始化,那么方法400在步骤404(b)重复并重新初始化网络。然而,如果矩阵不是奇异的,那么方法400确定在步骤416是否发生收敛。如果没有发生收敛,那么方法400在步骤406重复,这是下一个牛顿步。如果获得了收敛,那么方法400继续至步骤418的求解连结的油藏/地面网络模型求解。 [0030] 当使用方法400时,使用通过步骤304确定的有效约束组(具有固定的油藏条件),以建立网络方程。然而,如果油藏条件改变,这会导致有效约束组与步骤304的约束组不同,这意味着网络方程不正确。这迫使进行一个或更多的牛顿步。
[0031] 用于确定地面设施网络的有效约束的其它已知和公认的方法可能会一样昂贵,不可靠和/或效率低,例如,由R.Fletcher发表的“Practical Methods of Optimization”,第二版,Linear Programming中所描述的优化方法,当应用约束时,其需要待计算的一定目标函数的最大值。
[0032] 因此,需要比传统手段更加有效并可靠的系统化方法,以确定地面-设施网络中的有效约束。

发明内容

[0033] 本发明通过提供一种用于确定网络中的有效约束的系统和方法,克服了现有技术中的一个或更多的缺点。
[0034] 在一个实施例中,本发明包括一种用于确定网络中的有效约束方程的方法,其包括:i)选择至少一个所述网络中的连接的约束方程,每一个约束方程包括各自的松弛变量和各自的松弛变量乘数;ii)选择所述网络中的每一个连接的基础方程,具有所述至少一个约束方程的所述网络连接的所述基础方程包括,每个约束方程的各自的松弛变量和每一个约束方程的各自的松弛变量的另一个各自的松弛变量乘数;iii)使用计算机系统求解每一个各自的松弛变量;iv)根据每个各自的松弛变量的解,对于每个各自的松弛变量乘数和每个各自的另一个松弛变量乘数,调整各自的参数;v)重复求解每个各自的松弛变量以及对于每个各自的松弛变量乘数和每个各自的另一个松弛变量乘数调整各自的参数的步骤,直至每个各自的参数等于0或1;以及vi)根据每个约束方程各自的参数是否等于1,确定所述网络中的每个约束方程是否有效。
[0035] 在另一个实施例中,本发明包括一种用于确定网络中的有效约束方程的具有计算机可执行指令的计算机可读介质。指令是可执行的,以实现i)选择至少一个所述网络的连接的方程,每一个约束方程包括各自的松弛变量和各自的松弛变量乘数;ii)选择所述网络的每一个连接的基础方程,具有所述至少一个约束方程的所述网络连接的基础方程包括,每个约束方程的各自的松弛变量和每一个约束方程的各自的松弛变量的另一个各自的松弛变量乘数;iii)求解每一个各自的松弛变量;iv)根据每个各自的松弛变量的解,对于每个各自的松弛变量乘数和每个各自的另一个松弛变量乘数,调整各自的参数;v)重复求解每个各自的松弛变量以及对于每个各自的松弛变量乘数和每个各自的另一个松弛变量乘数调整各自参数的步骤,直至每个各自的参数等于0或1;以及vi)根据每个约束方程各自的参数是否等于1,确定所述网络中的每个约束方程是否有效。
[0036] 从下面的各种实施例和相关附图的描述,本发明的其它方面、 优点和实施例对本领域的技术人员将会变得显而易见。

附图说明

[0037] 下面将参考附图描述本发明,其中,相同的部分使用相同的参考标号,其中: [0038] 图1说明了示例性的具有约束的地面设施网络。
[0039] 图2说明了过约束地面-设施网络的示例性部分。
[0040] 图3为说明Nexus 工作流程的流程图。
[0041] 图4为说明传统的用于确定地面-设施网络中的有效约束的方法的流程图。 [0042] 图5为说明用于实现本发明并确定地面-设施网络中的有效约束的方法的流程图。
[0043] 图6为用于说明根据本发明的有效约束的确定的示例性的地面-设施网络。 [0044] 图7为说明用于实施本发明的系统的方框图。

具体实施方式

[0045] 下面具体地描述了本发明内容的主题,但描述本身并不限制本发明的范围。因而,结合现有或未来的技术,本发明的主题也可以以其它方式实施,以包括不同的步骤或类似于在此描述的步骤的结合。此外,虽然在此可以使用术语“步骤”以描述采用的方法的不同组成部分,但不应该将术语解释为暗示在此公开的各种步骤之间的任何特定的顺序,除非通过特定顺序的描述明确限制。
[0046] 松弛变量提供一种方式确保约束方程总是被满足。将松弛变量加入约束方程。然后,如果约束是无效的,松弛变量继续松弛-也就是,其变为不能用其满足原始写入的无效约束方程的量。
[0047] 通常在一组不等式约束方程中使用松弛变量,其中一些是有效的。然而,在本发明中方程典型地成对出现。存在基础方程,如果约 束无效,应用该基础方程,还存在约束方程,如果约束是有效的,应用该约束方程。这两个方程中有一个并且只有一个是有效的。因此将松弛变量加至无效的方程而不是有效的方程。为此,定义了两个乘数。将第一个乘数乘以松弛变量加至基础方程,并且第二个乘数乘以松弛变量加至约束方程。下面描述的过程用于确定两个乘数。逐渐地,过程导致一个乘数为零而另一个为一。乘数为零的方程不包含松弛变量,因此是有效的,乘数为一的方程包含松弛变量,因此是无效的。乘数作为参数(w)的函数计算。设置第一个乘数等于(w),并且设置第二个乘数等于(1-w)。可以使用其它函数的形式,例如, 以及 计算乘数,然而,在此使用(w)和(1-w)以说明各种示例。那么,如果w=1,将松弛变量加入基础方程,约束有效。如果w=0,则将松弛变量加入约束方程,约束为无效的。下面的方法论更详细地描述了该过程。 [0048] 速率约束
[0049] 对于两种成分,线性化的液压方程为:
[0050] -pi+po+a1q1+a2q2=d ……………………………………………(7) [0051] 并且线性化的速率约束为:
[0052] b1q1+b2q2=qmax …………………………………………………(8) [0053] 在给定的连接处,必须应用这些方程中的一个或另一个。将乘以乘数的松弛变量加入液压方程。方程(7)变为:
[0054] -pi+po+a1q1+a2q2+wcsc=d………………………………………(9) [0055] 其中wc是乘数,sc是松弛变量,并且c表示特定的约束。将乘以另一个乘数(1-wc)的相同的松弛变量加入约束方程。方程(8)变 为:
[0056] -b1q1-b2q2+(1-wc)sc=-qmax……………………………………(10) [0057] 方程中的符号发生变化,从而能够将松弛变量的贡献加入而不是将松弛变量的贡献减去,同时也构建了方程,以这样的方式,使负松弛变量是有效的而正松弛变量是无效的。
[0058] 需要0≤wc≤1并且对于解而言,wc等于零或者一。松弛变量出现在无效方程中而不出现在有效方程中。因此wc=1表明速率约束是有效的,而wc=0表明液压方程是有效的。
[0059] 就液压方程而言,计算的压降可以大于没有松弛变量计算的压降,但不能小于。因此,sc的正值在该方程中有效,但负值无效。所以,如果sc≤0,优选wc=0,使液压方程有效而速率约束无效。现在考虑速率约束,计算的速率可以小于但不能大于规定。sc的负值在该方程中可以有效,但正值无效。如果sc>0,优选wc=1,使速率约束方程有效而液压方程无效。
[0060] 如前面所述,可以将每一个约束的wc按照如下确定。开始,设置所有的wC=0.5,并求解网络。随后调整wc。如果sc≤0,通过减小因子(R)减小wc:
[0061]
[0062] 如果sc>0,那么增加wC,通过同样的减小因子(R)使数量(1-wC)减小: [0063]
[0064] 可以使用其它减小因子,例如,可以使用随着wC接近零或一大小变化的其它减小因子,但是在此使用常数R,以说明各种示例。同样,当s大于其小于或等于零时所使用的较小因子时,可以使用不同的减小因子,但在此使用相同的R。
[0065] 该过程继续至如果sc≤0,wCk+1小于公差,或如果sc>0, 小于公差。计算一般使用R=0.01以及公差=1.0e-8。采用一个另外的步骤。可以发生的是:当将其w设置为一后,松弛变量变为负的,当将其参数w设置为零后,松弛变量变为正的。当此发生时,将参数w重新设置为0.5,并继续进行迭代。
[0066] 优选地,需要包括sc而不是wC的方程。为此,将方程(10)加入方程(9)以获得结合的速率约束-液压方程:
[0067] -pi+po+(a1-b1)q1+(a2-b2)q2+sc=d-qmax……………………(13) [0068] 可以通过仅将方程(9)和方程(10)相加就可以获得不包含wC的方程,因为两个方程中的松弛变量乘数分别是wC和(1-wC),并且这两个乘数的和是一。本领域的技术人员将认识到,如果这两个乘数的总和不是一,可以以其它的方式结合这两个方程,以获得相同的结果。
[0069] 压力约束
[0070] 压力约束方程是:
[0071] pi=pmin …………………………………………………………(14) [0072] 使用类似上面描述的用于速率约束的过程,建议应该将该约束从液压方程(方程(7))中减去。但是,pi将被消去,这可能会在后面的解中产生问题。因此,在引入松弛变量之前将该方程分为两个。结果是:
[0073]
[0074] 将公式(9)加入公式(3)产生包含sc但不包含wC的方程:
[0075]
[0076] 分离器流出
[0077] 分离器至少有两个流出流。它们中的一个具有压力连续性,这会导致下面的方程 [0078] pi-po,j=0………………………………………………………(17) [0079] 在此,i表示分离器的入口节点,而o,j表示第j个分离器出口节点。 将第一个(j=1)出口方程作为基础方程,并且另一个出口方程作为约束。如果有三个出口,三个方程如下:
[0080] -pi-po,1+w2s2+w3s3=0……………………………………(18) [0081] pi-po,2+(1-w2)s2=0………………………………………(19) [0082] pi-po,3+(1-w3)s3=0………………………………………(20) [0083] 在此,s和w的下标2和3分别表示分别与流出2和3相关的松弛变量。将方程(18)至(20)相加得到:
[0084] pi+po,1-po,2-po,3+s2+s3=0 …………………………(21) [0085] 现在将处理导致具有s但没有w的方程的操作的阶段。一旦获得因子,分解网络矩阵比对其求解成本要高得多。如果每次w变化,必须重构网络矩阵,这发生在每次w迭代,则成本过高。该成本的大部分可以通过产生包括s但不包括w的方程(方程(13)、(16)和(21))而避免。将未知数排序,使s在最后,并将方程排序使约束方程(方程(10)、(15)、(19)和(20))在最后。结果是如下形式的分块矩阵:
[0086]
[0087] 未知向量x包括连接速率和节点压力;除了松弛变量这些是所有的未知数。未知向量s包括所有松弛变量。矩阵Axx和Axs定义节点质量平衡方程、液压方程、和结合的约束-液压方程,诸如方程(13)。矩阵Asx和Ass(w)定义约束方程。矩阵Axx,Axs,和Asx不包括任何乘数,因此不依赖于w。只有Ass(w)依赖w。这使得可能分解Axx,随后整个矩阵如下: [0088]
[0089] 进一步求解的第一步是计算:
[0090]
[0091] 然后更新rs:
[0092]
[0093] 留下具有s为未知数的矩阵方程为:
[0094]
[0095] 然后对矩阵方程求解s。必要时,使用方程(11)和(12)更新w,重新计算Ass(w),并重新计算方程(26)左侧的矩阵。再次求解s。该过程迭代重复直至所有的w为零或一。当w已经收敛时,返回求解x。基本矩阵方程为:
[0096]
[0097] 将其简化为:
[0098]
[0099] 建立上面显示的方程,使得wc=1表明约束c(可以是分离器流出流)是有效的,使得wc=0表明约束c是无效的,使得sc≤0表明wc应该朝零移动,并且使得sc>0表明wc应该朝一移动。这使得可能:在抽象的形式中处理松弛变量、乘数和其相应的参数(即,w)。也就是说,在不需要知晓其相关的哪些约束或约束的种类的情况下,可以求解约束变量并调整参数。
[0100] 因此,本发明的方法使得能够确定有效约束而不必且接整个网络。 [0101] 可替代地,如果约束的状态是明显的,可以仅将其设置为有效状态,而不是对其用松弛变量处理。
[0102] 方法描述
[0103] 现在参考图2,可以将本发明应用于示例性的使用松弛变量的过约束地面-设施网络,以确保总是满足正确的约束方程。将乘以乘数的松弛变量加入约束方程。那么如果约束是无效的,乘数为一,并且 乘以一的松弛变量继续松弛-也就是,其变为不能满足的无效约束的量。另一方面,如果约束是有效的,那么乘数为零,并且将松弛变量乘以零。结果,满足了最初写入的约束方程。将松弛变量s1和s2分别加入液压方程以及连接1和连接2的约束方程。松弛变量(s1和s2)分别与参数w1和w2相关。把这些原理应用于图2中的地面-设施网络,系统方程变为:
[0104] 连接1:-p1+p2+b1q1+c1+w1s1=0,…………………………(29) [0105] -q1+(1-w1)s1=-1000,………………………………………(30) [0106] 连接2:-p2+p3+b2q2+c2+w2s2=0,…………………………(31) [0107] -q2+(1-w2)s2=-2000,………………………………………(32) [0108] 节点2:q1-q2=0,……………………………………………(33) [0109] 其中,方程(29)和(30)分别是在连接1的液压方程(被称为基础方程)和速率约束方程(二者都具有松弛变量s1)。方程(31)和(32)分别是在连接2的液压方程和速率约束方程(二者都具有松弛变量s2)。方程(33)是在节点2的质量平衡方程。未知数组为q1、q2、p2、s1、和s2。
[0110] w1和w2的初始值是0和1之间的某值,优选0.5。一旦将这些参数是规定的,计算方程(29)-(33)中的系数并且求解所产生的方程组。如果松弛变量的解是负数,那么使用方程(11)将其相关参数(w)调整为接近0。如果松弛变量的解是正数,那么使用方程(12)将其相关参数(w)调整为接近1。可以将方程组的系数重新计算,然后可以对产生的方程求解,并且可以再次调整参数。可以将该程序重复,直至所有参数(w1和w2)为0或1。该条件等于是说所有的乘数为0或1。将方程(29)和(30)以及方程(31)和(32)相加,产生了不包含w的结合的约束-液压方程。那么,根据方程(22)到(28)所描述的,在过程开始时不能消去所有网络的未知数(速率和压力),这产生了松弛变量的子系统;仅松弛变量的子系统需要以这 种方式重复被求解,因为仅该子系统的方程受参数的影响。所有的w为零或一后,松弛变量为已知,并且网络的未知数可以通过回代法求解。当w1或w2的值为0,相应的连接的约束是无效的并且液压方程完全被满足。否则,w为一并且约束是有效的。通过在两个预定值(例如0到1)之间向上或向下逐渐地调整参数,直至每一个等于两个值中的一个,因此辨别出了有效的(即,正确的)约束。
[0111] 使用松弛变量使用户能够将未知数与相同数量的方程匹配,并且不需要计算传统优化方法所需的目标函数的最大值。
[0112] 现在参考图5,说明了实施本发明并使用松弛变量确定在地面-设施网络中的有效约束的方法500。因此,方法500可以用于以比图4中说明的传统方法400效率更高并更准确的方式,在图3的步骤304求解独立-地面-网络模型。方法500开始于独立网络求解的第一个牛顿。在步骤504中,对于在当前时间步用户规定的网络配置和约束的任何变化进行检查。如果没有变化,那么方法500继续到步骤506;否则,网络在步骤504(b)重新初始化并且随后方法500继续至步骤506。
[0113] 在步骤506,通过写入每一个连接的液压方程建立网络系统方程。在每一个可能被约束的连接处,有基础方程。通过写入可能被约束的连接的所有约束方程完成网络系统方程建立。每一个约束与松弛变量和乘数相关,同时乘数根据大于零并小于1的预定的参数(w)值计算,参数(w)值优选0.5。在步骤508中,网络系统方程根据给定的参数(w)值求解。例如,如果松弛变量的解是负数,将其相关的w调整接近0。但是,如果松弛变量的解是正数,将其相关的w调整接近1。在步骤510,再次检查所有w,以确定其是否为0或1。如果任何w不是0也不是1,方法500继续在步骤508重复。但是,如果所有w是0或1,那么方法500继续至确定收敛的步骤512。如果没有获得收敛,方法500在步骤506重复。如果获得收敛,方法500继续 至步骤514,在步骤514,求解连结的油藏/地面网络模型。 [0114] 现在参考图6,说明了根据方法500确定有效约束的示例性地面设施网络。在图6中,三个生产井(连接1,连接2和连接3)连接至集油中心(节点4),该集油中心最终连接至油库。此外,在连接1、连接2、连接3和连接4有四个QOSMAX(地面条件的最大油相速率约束),以及在节点3和节点5有两个Pmin(最小压力)约束。总共有六个约束。但是,因为在节点5的Pmin约束作为边界条件工作,并且其必须被满足,所以余下的五个约束只需要五个松弛变量,其每一个与w相关。
[0115] 网络中的流体流动用黑油模型制作模型,黑油包括石油、天然气和水的成分。在网络求解过程中,将油藏条件假设为常数。
[0116] 表1示出了每一个约束的松弛变量索引。
[0117]松弛变量索引 约束
1 连接1的QOSMAX约束
2 连接2的QOSMAX约束
3 连接3的QOSMAX约束
4 节点3的Pmin约束
5 节点4的QOSMAX约束
[0118] 表1.每一个约束的松弛变量索引
[0119] 表2示出了图5的步骤508和510说明的所有迭代的w值和相应的松弛变量(s)的解。
[0120]
[0121] 表2.网络牛顿步的所有线性解法迭代的
[0122] 参数(w)值和松弛变量(s)的解
[0123] 如图5中的方法500说明的,每一个w的初始值是0.5,并且在每一次迭代之后,根据每一个相应的松弛变量的解的值调整每一个w。在图5(步骤510)中,在每一次迭代的结束检查w值,并且如果w不是0也不是1,方法500在步骤508重复。在最后一次(第7次)迭代,所有w值为0或1。求解松弛变量以及网络未知数,并且完成网络求解的该牛顿步。随后在步骤512进行收敛检查。如果解仍没有收敛,继续下一个牛顿步并且方法在步骤506重复直至获得收敛。否则,方法继续至图5的步骤514的连结油藏/网络求解。根据本发明的松弛变量的使用也可以用于在图5的步骤514求解连结的油藏/地面网络模型。 [0124] 根据解,在连接1、连接2、和连接4的约束的w的值为1。因此,这些约束是有效的。在连接3和节点3的约束的w的值为0,这意味着连接3和连接5由其液压方程控制。如表3部分列出的,检查网络的相位速率和节点压力的解,确认已经恰当地满足了(没有被破坏)所有约束。
[0125]连接1的油相速率 2000STB/天 w=1 约束起作用
连接2的的油相速率 1000STB /天 w=1 约束起作用
连接3的油相速率 3000STB/天 w=0 约束不起作用
节点3的油相速率 2204.203psi w=0 约束不起作用
连接4的油相速率 6000STB/天 w=1 约束起作用
[0126] 表3.网络的相位速率和节点压力的解和相应的约束状态
[0127] 因此,图6中的示例明确了松弛变量方法为确定地面-设施网络中的有效约束提供了较传统方法的各种优点,其包括但不限于更高的可靠性、有效性高、准确性和仿真速度。
[0128] 系统描述
[0129] 本发明可以通过计算机可执行程序指令实现,诸如程序模块,一般称作由计算机执行的软件应用或应用程序。软件可以包括,例如,执行特定任务或实现特定抽象数据类型的例行程序、程序、对象、组件和数据结构。软件形成接口使计算机根据输入源而反应。兰德马克图形公司(Landmark Graphics Corporation)销售的商业软件Nexus 可以作为接口应用,以实现本发明。软件结合接收数据的源,也可以与其它代码段合作,以开始响应于所接收的数据的多种任务。可以将软件存储在任一种存储媒体上,诸如CD-ROM、磁盘、磁泡存储器和半导体存储器(例如,各种类型的RAM或ROM)上。而且,可以通过诸如光纤、金属线、自由空间的多种载体媒体和/或诸如互联网的多种网络传输软件及其结果。 [0130] 此外,本领域的技术人员将认识到本发明可以用多种计算机-系统配置实施,包括手持装置、多处理器系统、基于微处理器的或可编程消费类电子产品、微型计算机、大型计算机等任意数量的计算机-系统和计算机网络都可以使用本发明。可以在分布式计算环境中实施本发明,在分布式计算环境中,任务可以由通过通信网络链接的远程处理装置执行。在分布式计算环境中,程序模块可以位于本地和远程计算机-存储媒体中,包括记忆存储装置。因此,可以连同各种硬件、软件或其结合在计算机系统或其它处理系统中实施本发明。
[0131] 现在参考图7,说明了在计算机上实施本发明的系统的方框图。该系统包括计算单元,该计算单元有时称作计算系统,包括存储器,应用程序,用户接口和处理单元。计算单元只是一个适合的计算环境的示例并不限制本发明的用途或功能的范围。 [0132] 存储器主要存储由计算单元执行以实现在此描述的并在图5中说明的本发明的应用程序,也可描述为包括计算机可执行指令的程序模块。因此,存储器包括实现图5中说明的方法的油藏模拟模块和
[0133] 虽然所示计算单元具有广义存储器,该计算单元一般包括多种计算机可读媒体。通过举例的方式但不限制,计算机可读媒体可以包括计算机存储器媒体。计算系统存储器可以包括诸如只读存储器(ROM)和随机存储器(RAM)的形式为易失性存储器和/或非易失性存储器的计算机存储媒体。基本输入/输出系统(BIOS)一般存储在ROM中,BIOS包括帮助在计算单元内的组成部分(element)之间传送信息的基本例程,诸如在启动过程中。RAM一般包括数据和/或程序模块,其可以由处理单元立即访问和/或即将开动。通过举例的方式但不限制,计算单元包括操作系统、应用程序、其它程序模块和程序数据。 [0134] 存储器中示出的组件也可以包括在其它可擦除/不可擦除、易失性/非易失性计算机存储媒体中。仅例如,硬盘驱动器可以读不可擦除、非易失磁性媒体,或写不可擦除、非易失磁性媒体,磁盘驱动器可以读可擦除、非易失磁盘中,或写可擦除、非易失磁盘,以及光盘驱动器可以读诸如CD ROM或其它光学媒体的可擦除、非易失光盘,或写可擦除、非易失光盘。可以在示例性操作环境中使用的其它可擦除/不可擦除,易失性/非易失性计算机存储媒体可以包括但不限于盒式磁带、闪存卡、数字多用盘、数字视频磁带、固态RAM、固态ROM等等。上面讨论的驱动器和其相关的计算机存储媒体提供了计算单元 的计算机可读指令、数据结构、程序模块和其它数据的存储。
[0135] 用户可以通过用户接口将命令和信息输入计算单元,该用户接口可以是输入装置,诸如键盘和指点装置,其通常称作鼠标、轨迹球或触控板。输入装置可以包括麦克风、控制杆、卫星天线、扫描仪等等。
[0136] 通常这些和其它输入装置通过用户接口连接至处理单元,用户接口连结至系统总线,但是这些和其它输入装置也可以通过诸如并行端口或通用串行总线(USB)的其它接口和总线结构连接。监视器或其它类型的显示装置可以通过诸如视频接口的接口连接至系统。除了监视器以外,计算机也可以包括其它外围输出装置,诸如扬声器和打印机,其可以通过输出外围接口连接。
[0137] 虽然没有示出计算单元的很多其它内部组件,本领域的普通技术人员应认识到这些组件和互连是众所周知的。
[0138] 松弛变量方法是系统的和自动的-意味着,一旦系统方程已经建立,对于网络中的任何结构,系统可以被求解。相反,传统方法的实施依赖于逻辑检测网络中不同结构和约束的不同组合的程度如何,这可能遗漏或移除一些无关约束并造成仿真的提前终止。此外,如果增加了新类型的约束,松弛变量方法应该工作,而不需要新的代码以检查特定的约束是否是无关的。因此,本发明(1)通过消去处理每个可能的条件(网络配置和约束类型)的需要,克服了未被辨别的情况,(2)避免了修订情况的系统描述的需要,以及(3)如果连结的油藏/网络求解中的网络方程也使用松弛变量方法,提供了更快的求解方法,因为传统方法可以确定独立的网络求解和连结的油藏/网络求解之间的不同组有效约束,这造成该连结的油藏/网络求解的至少又一次牛顿步。
[0139] 虽然已经结合优选实施例描述了本发明,本领域的技术人员将理解本发明不限于这些实施例。因此,在不脱离所附权利要求及其等同的精神和范围的情况下,可以对公开的实施例作出各种替代实施例和 修改。例如,可以将本发明用于石油和天然气工业之外的应用,以确定其它类型网络中的有效约束。