关于井下泵卡的流体载荷曲线计算、凹度测试以及迭代阻尼因子的制作方法

文档序号:5494952阅读:226来源:国知局
关于井下泵卡的流体载荷曲线计算、凹度测试以及迭代阻尼因子的制作方法
【专利摘要】一种泵设备具有布置在井筒中的井下泵并且具有位于表面处的马达,并且通过由马达操作性地移动的杆柱使井下泵在井筒中往复运动。通过使用表面测量值和具有上行程阻尼因子和下行程阻尼因子的波动方程模型生成指示井下泵的载荷和位置的井下卡。实际的流体载荷曲线根据关于井下泵的上行程和下行程的井下卡确定,并且关于行程的计算的流体载荷曲线根据分布在井下卡上的载荷值确定。
【专利说明】关于井下泵卡的流体载荷曲线计算、凹度测试以及迭代阻尼因子
[0001]相关申请的交叉引用
[0002]本申请要求下列专利的优先权:于2011年10月28日提交的美国专利申请序列号N0.61/552,812、标题为“带有阻尼因子的双迭代并通过包括库伦摩擦适应斜井的修正的 Everitt-Jennings 算法,,(“Modified Everitt-Jannings With Dual Iterat1n onthe Damping Factors and Adaptat1n to Deviated Wells by Including CoulombsFrict1n”)”;于2012年2月14日提交的序列号为N0.61/598,438、标题为“带有阻尼因子的双迭代的修正的 Everitt-Jennings”( “Modified Everitt-Jennings With DualIterat1n on the Damping Factors”);于2012年3月 I 日提交的序列号为N0.61/605,325标题为“为斜井中的井下卡的计算实施库伦摩擦”(“Implementing Coulombs Frict1n forthe Calculat1n of Downhole Cards in Deviated Wells”);以及于 2012 年 9 月 27 日提交的序列号为N0.61/706,489、标题为“在解波动方程和计算流体载荷曲线和凹度测试时迭代阻尼,,(“Iterating on Damping when Solving the Wave Equat1n and Computat1nof Fluid Load Lines and Concavity Testing”),这些专利申请中的每一个申请的全部内容通过参引并入本文。
技术背景
[0003]A.吸杆泵系统
[0004]往复运动泵系统比如吸杆泵系统将流体从井中抽出并且采用连接至位于表面处的驱动源的井下泵。杆柱将表面驱动力连接至井中的井下泵。当操作时,驱动源使井下泵周期性地上升和下降,并且井下泵通过每个行程将井流体朝向表面提升。
[0005]例如,图1示出了用于从井中生产流体的吸杆泵系统10。井下泵14具有筒16,该筒16具有位于底部的固定阀24。固定阀24允许流体从井筒进入,但不允许流体流出。在泵筒16内部,活塞20具有位于顶部的游动阀22。游动阀22允许流体从活塞20下方移动至生产管道18上方,但不允许流体从管道18返回至活塞20下方的泵筒16。位于表面处的驱动源(例如,泵驱动器11)通过杆柱12连接至活塞20并且使活塞20以上行程和下行程周期性地上下移动。
[0006]在上行程期间,游动阀22关闭,并且生产管道18中的活塞20上方的任何流体被朝向表面提升。同时,固定阀24打开并且允许流体从井筒进入泵筒16。活塞的运动的最高点通常被称为“行程的顶点”(TOS),而泵活塞的运动的最低点通常被称为“行程的底点” (BOS)。
[0007]在TOS处,固定阀24关闭并且保持在已经进入泵筒16内的流体中。此外,在TOS处,生产管道18中的流体的重量由活塞20中的游动阀22支承并且因此也通过杆柱12支承,这导致杆柱12伸展。
[0008]在下行程期间,游动阀22最初仍关闭,直至活塞20到达筒16中的流体的表面为止。在游动阀22下方的流体中积累了充足的压力以平衡压力。在泵筒16中积累压力使杆柱12上的载荷减少从而使杆柱12松弛。
[0009]该过程发生在当活塞20停留在流体上时的有限时间内,并且表面处的泵驱动器11允许杆柱12的顶部向下移动。此时,泵活塞20的位置由于生产管道18中的液柱的载荷从游动阀22转移至固定阀24而被称为“转换点”。这在转移期间引起杆柱12上的载荷快速下降。
[0010]在压力平衡之后,游动阀22打开并且活塞20继续向下移动至其最低位置(即,B0S)。活塞20从转换点至BOS的移动被称为“流体行程”并且是在每个行程由泵14提升的流体的量的测量值。换句话说,泵行程的在转换点下方的部分可以视为包含流体的泵行程的百分比,并且该百分比对应于泵的填充率。因而,该转换点可以通过使用泵填充率计算结果来计算。
[0011]如果井筒中存在充足的流体,那么泵筒16可以在上行程期间被完全地填充。然而,在某些情况下,泵14在上行程时可以不是完全被流体填充,因此当其继续上升时流体与活塞20之间可能留有空隙。用仅部分填充的泵筒16操作泵系统10的是低效率的并且因此是不理想的。在该情况下,井可以称为“抽空”并且该情况被称为“液击”,这样会损坏栗系统的各种部件。对于空抽井,转换点最可能出现在在活塞20的TOS之后。
[0012]通常,不存在对可以位于地下数千英尺的井下泵14处的状况进行测量的传感器。反而,许多方法用于根据关于杆柱12的在位于表面的泵驱动器11处的位置和载荷的测量值来计算泵活塞20的位置和作用在活塞20上的载荷。这些测量值通常在光杆28的顶部处获得,光杆28是杆柱12的穿过位于井口装置处的填料箱13的一部分。泵控制器26用于监测及控制泵系统10。
[0013]为了有效控制往复泵系统10并且避免昂贵的维护,杆式泵控制器26可以收集系统数据并且相应地调整系统10的操作参数。通常,杆式泵控制器26收集系统数据比如载荷和杆柱位移通过测量表面处的这些性能来进行。尽管这些表面测量数据提供有用的诊断信息,但是这些数据不能提供井下在泵处观察的相同性能的准确表示。由于这些井下性能不能够容易地直接测量,所以其通常根据表面测量的性能而计算得出。
[0014]用于确定井下泵20的操作特性的方法需要使用井下数据的图形化表示的形状来计算各种细节。例如,Gibbs的、标题为“通过井下泵卡进行监测和抽空控制”(“Monitoringand Pump-Off control with Downhole Pump Cards”)的美国专利 N0.5,252,031 教不了通过利用在表面处获得的测量值生成井下泵卡来监测泵驱动器井以检测各种泵问题的方法。图形化表示的井下泵卡则可以用于检测各种泵问题并控制泵送单元。美国专利公开N0.2011/0091332和N0.2011/0091335公开了用于确定操作特性的其他技术,这些专利公开均通过参引全部并入本文。B.Everitt-Jennings方法
[0015]在如上所指出的确定吸杆泵系统10的操作特性的技术中,软件分析通过使用在表面处测量的位置和载荷数据计算井下数据(即,泵卡(pump card))。这些方法中最精确和普遍的是根据表面数据通过对一维阻尼波动方程进行求解来计算井下卡,该方法使用了如在表面处记录的表面位置和表面载荷。
[0016]存在用于解波动方程的多种算法。Snyder通过使用特性的方法解波动方程。参见Snyder1W.E.的“一种用于计算通过吸杆进行泵送的油井中的井下力和位移的方法”(“AMethod for Computing Down-Hole Forces and Displacements in Oil Wells PumpedWith Sucker Rods”)第 851-37-K页,1963 年。Gibbs 在可以被称为“Gibb 的方法”(“Gibb’smethod”)中采用变量分离和傅里叶级数。参见Gibbs,S.G.等人的“吸杆泵送井中的井下情况的计算机诊断”(“Computer Diagnosis of Down-Hole Condit1ns in Sucker RodPumping Wells”)JPT (1996 年 I 月)91-98 ;Trans., AIME237 ;Gibbs, S.G.的“用于杆式泵送装置的设计和分析的方法的综述”(“A Review of Methods for Design and Analysisof Rod Pumping Installat1ns, ” ) SPE9980, 1982 年;以及美国专利 N0.3,343,409。
[0017]在1969年,Knapp引入有限差分来解波动方程。参见Knapp, R.M.,在托皮卡的堪萨斯大学的硕士学位论文“吸杆泵送的动力学研究”(“A Dynamic Investigat1n ofSucker-Rod PumpinglS thesis U of Kansas, Topeka) (1969 年 I 月)。这也是 Everitt 和Jennings使用的方法。参见Everitt, T.A.和Jennings, J.W.的“用于吸杆泵的井下示功图的改进的有限差分计算” (“An improved Finite-Difference Calculat1n of DownholeDynamometer Cards for Sucker-Rod Pumps”)SPE18189,1992年;以及Pons-Ehimeakhe, V.在2012年的西南石油短期课程的“带有阻尼因子的双迭代的修正的Everitt-Jennings算法,,(“Modified Everitt-Jennings Algorithm With Dual Iterat1n on the DampingFactors,,2012SouthWestern Petroleum Short Course)。Everitt-Jennings 方法也已经通过威德福国际(Weatherford Internat1nal)实施并修改。参见Ehimeakhe, V.在2010年的西南石油短期课程的“使用修正的Everitt-Jennings方法和Gibbs方法的井下卡对比石开究” (“Comparative Study of Downhole Cards Using Modified Everitt-JenningsMethod and Gibbs Method,,Southwestern Petroleum Short Course2010)。
[0018]为解一维波动方程,Everitt-Jennings方法使用有限差分。杆柱划分成具有长度Li (ft)、密度PiQbm/ft3)和面积Ai (in2)的M个有限差分节点。如果令u = u(x, t)等于在吸杆泵系统中在时间t时的位置X的位移,那么缩聚的一维波动方程读作:
Γηηι Ql,-?2 ^ 11 _ ^ u i rj /1 \
_9」ν⑴
[0020]其中,声速由V =给出并且D表示阻尼因子。
[0021]关于时间的一阶导数和二阶导数由一阶校正前向差分和一阶校正中心差分所替代。关于位置的二阶导数由略微重新调整的二阶校正中心差分所替代。
[0022]在该方法中,阻尼因子D通过使用系统的净行程(NS)和阻尼因子D的迭代而自动选择。阻尼因子D可以通过下式计算:
—(550)(144g) (Hpr^Hh)T2
[0023]D —(Ip.AtL.)s2W





?
[0024]其中,Hpr是光杆马力(hp), S是净行程(in), τ是一个行程的周期(sec.),而Hhyd是根据以下得到的液压马力(hp):
[0025]Hhyd = (7.36.1(T6) QyF1 (3),
[0026]其中,Q是泵生产率(B/D),Y是流体相对密度,而F1是流体高度(ft)。泵生产率由下式给出:
[0027]Q = (0.1166) (SPM) Sd2 (4),
[0028]其中,SPM是泵单元的在行程/分钟中的速率,且d是活塞的直径。
[0029]在Everitt, Τ.A.和Jennings, J.W.的“用于吸杆泵的井下示功图的改进的修正有限差分计算,,(“An Improved Finite-Difference Calculat1n of Downhole DynamometerCards for Sucker-Rod Pumps”)SPE18189,1992 年中提供了关于方程(2)中的阻尼因子 D的求导以及净行程和阻尼因子算法的原始迭代的其他细节。
[0030]修正的Everitt-Jennings方法还使用有限差分来解波动方程。如上所述,杆柱离散成M个有限差分元素,并且计算井筒下每个增量处的位置和载荷(包括应力)。然后,如图2所示,对净行程和阻尼因子进行迭代,该迭代自动地为每个行程选择阻尼因子。
[0031]动方程最初被求解以通过使用表面测量值和设置为0.5的初始阻尼因子D来计算井下卡(块42)。初始净行程Stl由计算的卡确定,并且计算井中的流体高度(块44)。此时,根据方程(2)计算新阻尼因子D(块46)等,并且用新阻尼因子D再次计算井下卡(块48)。基于重新计算的井下卡,确定新净行程S (块50)。
[0032]此时,进行检查以判断新确定的净行程S是否接近初始或先前的净行程的一些公差€的范围内(判定52)。如果否,则需要另一迭代,并且过程40回到计算阻尼因子D (块46)。如果新确定的净行程接近先前确定的净行程(在判定52处为是),那么用于确定净行程的迭代可以停止,并且过程40继续以通过使用收敛的净行程S迭代阻尼因子D (块54)。然后,通过使用新计算的阻尼因子D计算井下数据(块56),并且之后计算泵马力Hpmip(块58)。
[0033]此时,进行检查以核实泵马力%_是否接近液压马力!1_的公差内(判定60)。如果是,那么随着用收敛的净行程和阻尼因子D成功地计算井下泵卡,过程40结束(块62)。如果泵马力Hp_和液压马力Hhyd并非足够接近(判定60处为否),那么过程40通过泵马力HP_和液压马力Hllyd之比调整当前阻尼因子D (块64)。重复进行用调整过的阻尼因子D计算泵卡的过程40,直到关于泵马力HPump和液压马力Hhyd的值接近特定公差内为止(块56至块64)。
[0034]如上所述的自动迭代净行程和阻尼因子D的优点在于阻尼因子D在不需要人为干涉的情况下而被自动地调整。因而,管理中量井组至大量井组的使用者不需要如其他方法所需要的那样花费时间人工地调整阻尼因子D。
[0035]C.井下卡和阻尼
[0036]图3A示出了在井的表面处获得的示例性表面数据50。以曲线图示出了关于位置(X轴)的如通过测力计系统等在表面处的测量的载荷(y轴)。通过使用先前讨论的技术,测量的表面数据50可以被以数学方式转换成井下数据或泵卡60,这在该图中理想地示出。
[0037]泵卡60具有上行程流体载荷曲线62 (FOup)和下行程流体载荷曲线(F0d_)。泵卡60的高63被称为流体行程H),其中H)=上行程流体载荷曲线62 (FOup)-下行程流体载荷曲线 64(F0d_)。
[0038]泵或井下行程(PS)涉及在泵的位置处获得的杆的极限行程的测量值。因此,“泵行程”涉及最大位移减去最小位移,并且与井下泵卡60的水平跨距或宽度相对应。
[0039]然而,净行程68 (NS)涉及泵行程(PS)的下述部分的测量:在泵行程(PS)的该部分期间,流体载荷被泵的固定阀支承。对于如图3B中所示的抽空卡60’,净行程68(NS)相对于转换点66而被测量,净行程68 (NS)为在泵行程中载荷从泵的游动阀转移至固定阀时的位移。(转换点可以使用泵填充率计算来计算)。因为在泵筒中的压力已经超过活塞中的压力所以出现转换点66。行程的在转换点66下方(具有比转换点更低的位移)的部分为净行程NS,并且其被解释为泵行程(PS)的实际包含液体的部分。
[0040]位移和载荷数据可以用于确定井下泵的操作的一个或更多个特征,比如,最小泵行程、最大泵行程、以及井下行程中的转换点。进而,泵卡60或60’的面积A给出了井下泵
(20)的泵马力。
[0041]通过使用如前述提到的波动方程,根据表面数据50计算井下泵卡60。计算需要将在波动方程中使用的阻尼因子D将能量加到计算中或将能连从计算移除。如果计算值如图3C中所示是过阻尼的,那么井下卡60A将被计算成具有如示意性示出的形状。相反,如果计算值是欠阻尼的,那么井下卡60B将被计算成具有如图3D中示意性示出的形状。
[0042]当分析表面数据50并且计算井下卡60时,流体载荷曲线62和64表示基于当前流体高度由泵(20)施加至杆柱(12)的最大载荷和最小载荷。当气体测量值可获得时,流体载荷曲线62和64可以通过使用泵的进气压力和泵的排气压力而被容易地计算。然而,在缺乏这些测量值时,流体载荷曲线62和64必须通过其他方法计算。
[0043]通常,由于流体载荷62和64通常可以在视觉上被识别,因此流体载荷曲线62和64可以被画在井下卡60的图形化表示上。然而,当处理一大组井时,流体载荷曲线62和64的任何类型的视觉确定是非常不切实际的。因此,由于流体载荷曲线62和64确定了用于计算泵(20)的体积位移以及井的流体高度的流体载荷,因此,能够基于测量的和计算的数据确定流体载荷曲线62和64对于操作和诊断吸杆泵系统可以是非常有用的。


【发明内容】

[0044]泵设备具有布置在井筒中的井下泵并且具有在井筒的表面处的马达,并且井下泵通过由马达操作性地移动杆柱在井筒中往复运动。通过使用表面测量值和具有阻尼因子或双阻尼因子的波动方程模型生成了表示井下泵的载荷和位置的卡(card)。根据用于井下泵的上行程和下行程的井下卡确定了实际的流体载荷曲线,并且根据井下数据的载荷分布确定了计算的流体载荷曲线。实际的流体载荷曲线与计算的流体载荷曲线进行比较,因此泵设备的至少一个参数可以基于该比较而被修正。例如,可以调整波动方程模型的阻尼使得能够生成另一井下卡。
[0045]泵设备具有布置在井筒中的井下泵并且具有位于表面处的马达,并且通过马达操作性地移动的杆柱使井下泵在井筒中往复运动。通过使用表面测量值和具有阻尼因子的波动方程模型生成了指示井下泵的载荷和位置的井下数据。实际的流体载荷曲线根据关于井下泵上行程和下行程的井下数据而确定,并且关于行程的计算的流体载荷曲线根据分布在井下数据上的载荷值而确定。实际的流体载荷曲线与计算的流体载荷曲线进行比较来判断井下数据是过阻尼还是欠阻尼。然后,可以调整波动方程模型的阻尼因子从而可以通过适当的阻尼生成新的井下数据。
[0046]泵设备具有布置在井筒中的井下泵并且具有位于表面处的马达,并且通过马达操作性地移动的杆柱使井下泵在井筒中往复运动。通过使用表面测量值和具有上行程阻尼因子和下行程阻尼因子的波动方程模型生成了指示井下泵的载荷和位置的井下数据。实际的流体载荷曲线根据关于井下泵的上行程和下行程的井下卡而确定,并且关于行程的计算的流体载荷曲线根据分布在井下数据上的载荷值而确定。实际的流体载荷曲线与计算的流体载荷曲线进行比较以判断井下数据为过阻尼还是欠阻尼。然后,波动方程模型的上行程阻尼因子或下行程阻尼因子中的至少一者被调整从而通过适当的阻尼生成的新的井下数据。

【专利附图】

【附图说明】
[0047]图1说明了吸杆泵系统。
[0048]图2示出了根据现有技术的关于的修正Everitt-Jennings算法的净行程和阻尼因子的迭代以计算泵卡。
[0049]图3A示出了在井的表面处获得的表面数据与用于泵的井下数据之间的相互关系O
[0050]图3B示出了关于抽空卡的净行程。
[0051 ] 图3C示出了过阻尼的井下卡。
[0052]图3D示出了欠阻尼的井下卡。
[0053]图4为根据本公开的用于确定流体载荷曲线并且确定流体载荷曲线凹度的流程图。
[0054]图5A示出了关于过阻尼的井下卡确定的流体载荷曲线。
[0055]图5B示出了关于欠阻尼的井下卡确定的流体载荷曲线。
[0056]图6A为根据本公开的一项技术的通过迭代单阻尼因子计算井下卡的流程图。
[0057]图6B为用于确定关于图6A中的单阻尼因子的迭代的阻尼变化的流程图。
[0058]图7A为根据本公开的另一技术的用于通过迭代双阻尼因子来计算井下卡的流程图。
[0059]图7B为用于确定关于在图7A中的双阻尼因子的迭代的阻尼变化的流程图。
[0060]图8A至图8J示出了关于多个数据示例的迭代单阻尼因子与迭代双阻尼因子的比较。
[0061]图9A示出了根据本公开的用于吸杆泵系统的泵控制器。
[0062]图9B示出了根据本公开的用于控制/诊断吸杆泵系统的泵控制器的示意图。
[0063]图1OA至图1OH示出了根据井下卡的多种示例确定的流体载荷曲线。
[0064]本公开的详细说明
[0065]A.流体载荷曲线的计算和凹度测试
[0066]如上所提到的,吸杆泵系统中的井下数据或者是在井下泵处测量的或者是通过使用波动方程根据表面测量数据来计算的。对井下情况的了解对于有效地诊断和控制往复运动系统而言很重要。例如,井下数据可以帮助诊断井下情况、计算体积位移、以及计算泵系统的效率。
[0067]本公开的教示提供了一种用于确定关于井下泵卡的实际的流体载荷曲线以及计算的(代表性地)流体载荷曲线的方法。该实际的流体载荷曲线指的是图3A-3D中的曲线,而计算的流体载荷曲线取决于泵卡的载荷分布。通过使用这两种曲线,凹度测试可以判断所讨论的井下卡是欠阻尼还是过阻尼。
[0068]转至图4,过程100确定井下泵卡的流体载荷曲线(例如,图5A-图5B的60A和60B)并且确定流体载荷曲线的凹度。进而,这些确定值可以用于本文中公开的多种目的。
[0069]过程100首先使用可利用的技术或更优选地本文公开的技术计算井下卡(例如,图5A至图5B的60A和60B)(块102)。然后根据井下卡确定上行程和下行程实际的流体载荷曲线(块104)。
[0070]图5A和图5B示出了井下卡的图示一出于说明的目的,一个卡60A为过阻尼而另一卡60B为欠阻尼。为了本公开的目的,实际的流体载荷曲线72和74为通常可能被使用者选择的载荷曲线。这些流体载荷曲线72和74分别地对应于忽略了任何上行程程摩擦或下行程摩擦的流体载荷值并且并且对应于泵进气压力和泵排气压力。上行程实际的流体载荷曲线72被称为H)upactual,而下行程实际的流体载荷曲线74被称为R)d_actual。
[0071]找到上行程和下行程实际的流体载荷曲线72和74涉及定位井下卡60A或60B的图示的右边拐角。尽管其可以以可视化方式完成,但是其当通过如本文中公开的泵控制器或其他处理装置处理时以数学方式完成。例如,上行程实际的流体载荷曲线72对应于行程的顶点,该行程的顶点通过找到泵的井下位置的一阶导数为零(即,在泵的运动的速度为零时求得)来定位。
[0072]下行程实际的流体载荷曲线74与右下拐角相对应。找到右下拐角与找到转换点之后的上凹点相对应,转换点为下述点:在井下泵中,流体载荷在该点处从固定阀转移至游动阀处。因此,上凹点可以通过求得泵的井下位置的二阶导数的绝对最小值而被找到(即,求得在转换点之后的最小加速度)。图5A-5B示出了理想化的井下卡,但是本文中公开的附图示出了根据示例数据计算的实际的流体载荷曲线。
[0073]通过在图4的过程100中确定的实际的流体载荷曲线72和74 (块104),过程100之后确定计算的(代表性地)流体载荷曲线(块106)。计算的流体载荷曲线——在本文也被称作代表性流体载荷曲线——表示与在井下数据中的上行程载荷和下行程载荷的分布相对应的载荷值。
[0074]确定计算的流体载荷曲线可以以统计学方式完成,但也可以使用其他数学方法。如图5A-5B中所示,上行程载荷82沿井下卡60A-B的上行程流体载荷曲线62分布,并且同样地,下行程载荷84沿井下卡60A-B的下行程流体载荷曲线64分布。
[0075]上行程载荷和下行程载荷82和84按照载荷范围以统计学方式排序以产生概率密度函数。概率函数的最大值产生一组载荷范围,大部分上行程和下行程载荷分别存在于该组载荷范围中。换句话说,关于上行程载荷的概率密度函数的最大值被称为上行程计算的流体载荷曲线F0upcalc,而关于下行程载荷的概率密度函数的最大值被称为下行程计算的流体载荷曲线H)d_calc。
[0076]例如,上行程载荷和下行程载荷82和84以统计学方式排序使得载荷82和84以载荷范围分组,比如O至100,101至200,201至300等,但也可使用任何区段或范围。以该方式划分,在上行程中行程的顶点之前具有最大载荷值82的载荷范围与上行程计算的流体载荷曲线73 (FOupCalC)相对应。类似地,在下行程中的转换点之后具有最大载荷值84的载荷范围与下行程计算的流体载荷曲线75(F0d_calc)相对应。
[0077]因此,这些载荷曲线73和75在某种意义上分别代表上行程载荷72和下行程载荷74的中间值。虽然已经在此处对范围中的载荷值的统计分析进行了描述以找到计算的流体载荷曲线73和74,但是也可以使用任何其他数值方法,比如最优拟合线或线性插值。然而,此处优选地,使用的技术是稳健的并且对泵控制器或其他处理装置不要求大量的计算能力。
[0078]通过了解实际的和计算的流体载荷72&73和74&75,与井下泵卡60A-B的计算相关联和与泵系统(10)的诊断和控制相关联的参数可以被改变。这可以实现本文中公开的多种目的中的任何目的,这些目的包括调整阻尼因子、周期性地停止泵系统10以允许更多流体进入井筒,或控制泵系统10的速度使得其不泵送更多的进入井筒的流体。
[0079]特别地,通过使用实际的和计算的流体载荷曲线72&73和74&75两者,图4的过程100也可以确定卡的上行程载荷曲线62的凹度(块108)和卡的下行程载荷曲线64的凹度(块110)。通过了解载荷曲线62和64的凹度,与井下卡60A-B的计算相关联的以及与泵系统10的诊断和控制相关联的参数可以被改变以实现本文中公开的多种目的中的任意目的。
[0080]例如,实际的和计算出的计算的流体载荷曲线72&73和74&75可以指示井下卡是过阻尼(例如,60A)还是欠阻尼(例如,60B)。如上所述,实际的流体载荷曲线72和74是理论值,卡60A-B的流体载荷曲线应在此。因此,在计算的流体载荷曲线73和75相对于实际的流体载荷曲线72和74定位的情况下给出了用于计算井下卡的波动方程中的阻尼状态的指示。理想地,相应的实际的流体载荷曲线72和74与计算的流体载荷曲线73和75相等,因为这可能意味着泵马力(即,井下泵卡的面积)等于液压马力(即,提升的流体)。
[0081]通过比较实际的和计算的流体载荷曲线72&73和74&75,井下数据60A-B中的载荷值的凹度可以被确定为使得可以相应地调整在波动方程中使用的阻尼,或者使得可以实现一些其他目的,如本领域普通技术人员将理解的。
[0082]如图5A中所示,在上行程计算的流体载荷曲线73(R)upcalc)小于上行程实际的流体载荷曲线72(R)upactual)的情况下,可以确定井下数据为过阻尼。同样在图5A中,在下行程计算流体载荷曲线75 (F0downcalc)大于下行程实际的流体载荷曲线74 (F0downactual)的情况下,可以确定井下数据为过阻尼。可在流体载荷曲线的值的比较中使用可以取决于具体实施的公差。此外,根据所使用的过程,上行程计算的流体载荷曲线73小于上行程实际的流体载荷曲线72以及下行程计算的流体载荷曲线75大于下行程实际的流体载荷曲线74这两种情况对于待确定为过阻尼的井下数据而言都需要是真实的。
[0083]相比之下,如图5B中所示,在上行程计算的流体载荷曲线73(R)upcalc)大于上行程实际的流体载荷曲线72(F0upactual)的情况下,井下数据可确定为欠阻尼。同样在图5B中,在下行程计算的流体载荷曲线75(R)d_calc)小于下行程实际的流体载荷曲线74(F0downactual)的情况下,井下数据可确定为欠阻尼。再次,根据所使用的过程,上行程计算的流体载荷曲线73大于上行程实际的流体载荷曲线72以及下行程计算的流体载荷曲线75小于下行程实际的流体载荷曲线74这两种情况对于待确定为欠阻尼的井下数据而言都需要是真实的。
[0084]了解实际的和计算的流体载荷曲线72&73和74&75的关系以及数据为过阻尼还是欠阻尼,用于表面数据的波动方程计算中的任何阻尼因子可以适当地调整成使得井下卡60将更恰当地表示井下实际情况。此外,了解实际的和计算的流体载荷曲线72&73和74&75的关系可以用于其他目的。
[0085]为了进一步说明,图1OA至图1OH示出了从根据示例井数据计算的井下卡61A-61H的多种示例确定的流体载荷曲线。在图1OA中,上行程实际的载荷曲线72(F0upactual)为4856,并且上行程计算的流体载荷曲线73 (R)upcalc)为3982。下行程实际的载荷曲线74(F0downactual)为372,并且下行程计算的流体载荷曲线75 (FOd_calc)为875。这指示过阻尼。
[0086]在图1OB中,上行程实际的载荷曲线72(R)upactual)为1951,并且上行程计算的流体载荷曲线73 (FOupCalC)为2320。下行程实际的载荷曲线74 (F0d_actual)为229,并且下行程计算的流体载荷曲线75(F0d_calc)为216。这指示practically至少在上行程中为欠阻尼,因为下行程流体载荷曲线可指示为大体上相等。
[0087]在图1OC中,上行程实际的载荷曲线72(F0upactual)为2256,并且上行程计算的流体载荷曲线73 (FOupCalC)为2455。下行程实际的载荷曲线74 (F0d_actual)为313,并且下行程计算的流体载荷曲线75(F0d_calc)为261。这指示至少在上行程中为欠阻尼,因为下行程流体载荷曲线可指示为大体上相等。
[0088]在图1OD中,上行程实际的载荷曲线72(F0upactual)为3072,并且上行程计算的流体载荷曲线73 (FOupCalC)为3028。下行程实际的载荷曲线74 (F0d_actual)为454,并且下行程计算的流体载荷曲线75(R)d_calc)为67。这指示至少在下行程中为欠阻尼,因为上行程流体载荷曲线可表示为大体上相等。
[0089]在图1OE中,上行程实际的载荷曲线72(F0upactual)为2375,并且上行程计算的流体载荷曲线73 (FOupCalC)为2478。下行程实际的载荷曲线74 (F0d_actual)为334,并且下行程计算的流体载荷曲线75(F0d_calc)为53。这指示欠阻尼。
[0090]在图1OF中,上行程实际的载荷曲线72(F0upactual)为1717,并且上行程计算的流体载荷曲线73 (FOupCalC)为2293。下行程实际的载荷曲线74 (F0d_actual)为260,并且下行程计算的流体载荷曲线75(F0d_calc)为156。这指示欠阻尼。
[0091]在图1OG中,上行程实际的载荷曲线72(F0upactual)为5032,并且上行程计算的流体载荷曲线73 (FOupCalC)为7301。下行程实际的载荷曲线74 (F0d_actual)为591,并且下行程计算的流体载荷曲线75(F0d_calc)为725。这指示至少在上行程中为欠阻尼。
[0092]在图1OH中,上行程实际的载荷曲线72(R)upactual)为2340,并且上行程计算的流体载荷曲线73 (FOupCalC)为2763。下行程实际的载荷曲线74 (F0d_actual)为824,并且下行程计算的流体载荷曲线75(F0d_calc)为56。这表示欠阻尼。
[0093]B.具有阻尼因子的迭代的修正Everitt-Jennings
[0094]本公开的教示在通过将流体高度计算与流体载荷曲线计算和凹度测试结合来解波动方程并计算井下泵卡时修正了 Everitt-Jennings算法,以改进Everitt-Jennings算法的精确性和收敛性。
[0095]当使用波动方程计算井下数据时,重要的是适当地处理阻尼。在修正的Everitt-Jennings方法中,使用有限差分来解波动方程,并且在井筒下的每个增量处计算位置和载荷,该载荷包括应力。波动方程中的阻尼因子D依赖净行程和液压马力,净行程和液压马力两者在计算之初都是未知的或估计的。液压马力是流体高度的一个因子,该因子反应了井筒环中流体的量。因此,除非对该特定的行程进行计算,否则流体高度也会非常地不准确。
[0096]在本技术中,修正了净行程和阻尼因子的迭代以结合流体高度计算并且包括迭代所需变量的初始化步骤。阻尼的迭代被进一步修正成或者处理或者一个阻尼因子或者分开的上行程阻尼因子和下行程阻尼因子。
[0097]在一个实施方式中,在解波动方程并且计算井下数据时执行单阻尼因子迭代。迭代计算了实际的流体载荷曲线和计算的(代表性的)流体载荷曲线,并且执行了井下数据的凹度测试。如上详细描述的,实际的流体载荷曲线通过使用微积分和井下位置数据的一阶导数和二阶导数而计算。计算的流体载荷曲线通过使用井下载荷数据的统计学分析而计算。凹度测试为该两组曲线的逐步比较。当通过设置更好的收敛判别准则来迭代阻尼因子时,凹度测试的增加改进了收敛的速率和准确性。
[0098]在另一实施方式中,当解波动方程并且计算井下数据时执行双阻尼因子迭代。双阻尼因子包括分开的上行程阻尼因子和下行程阻尼因子。上行程和下行程之间的情况可以非常不同,这主要是由于流体随着杆流动的方向或流体逆着杆流动的方向。因此,过程拆分并且分别迭代上行程阻尼因子和下行程阻尼因子。双阻尼因子的迭代构成用于阻尼因子修正的两步过程。
[0099]1.迭代单阻尼因子
[0100]转至图6A,根据本公开的一项技术的过程200通过首先迭代净行程并且然后迭代单阻尼因子来计算井下卡。在过程200中,执行一些初始计算和步骤(块202)。选择初始净行程(NStl)和行程顶点(!OS)。这样允许计算日生产率(Q)和液压马力(Hhyd)。然后将阻尼因子D设定为初始值,例如D = 0.5。
[0101]具有这些初始值后,执行多个后续计算(块204)。特别地,通过使用本文中公开的波动方程模型基于设定的阻尼因子D和推测的净行程(NStl)和行程顶点(TOS)来计算表面数据以产生初始的井下泵卡。根据井下卡,获得实际的流体载荷曲线(F0upactual,F0downactual)和净行程(NS),并且根据方程(2)计算出流体高度(FL)和新阻尼因子D。
[0102]在这一点上,在初始假设已经被校正并且计算出新阻尼因子D之后,进行检查以判断所计算的净行程(NS)相对于初始推测的净行程(NStl)是否在给定的公差内。特别地,过程200判断推测的净行程(NStl)与计算的净行程(NS)之间的差的绝对值是否在公差€内(判定206)。(关于差的实际公差€可以变化并且可以取决于特定的实施、井、载荷高度、泵的类型等等。)如果净行程已经收敛,那么过程200继续进行至迭代新阻尼因子D (块212)。否则,过程200继续迭代净行程(NS)(块208)。
[0103]为了继续迭代净行程(NS),过程200再次通过使用计算的净行程(NS)来计算日生产率(Q)、液压马力(Hhyd)、新阻尼因子(D)和井下卡(块208)。再次,检查先前的净行程(NSw)与新净行程(NS1)之间的差的绝对值是否在公差€内(判定210),并且过程200或者返回至净行程(NS)的迭代(块208)或者继续进行至阻尼因子D的迭代(块212)。
[0104]为了迭代阻尼因子D,一旦净行程(NS)已经收敛,则过程200基于计算出的净行程(NS)计算日生产率(Q)、液压马力(Hhyd)和新阻尼因子(D)(块212)。然后,使用如本文公开的波动方程模型计算井下泵卡,并且计算计算的流体载荷曲线(F0upcalc, F0downcalc)和泵马力(Hpimp)(块212)。通过使用以上讨论的技术来计算计算的流体载荷曲线(F0upcalc,F0downcalc) ο泵马力(Hpump)根据井下泵卡的面积来计算。
[0105]此时,过程200进入阻尼变化算法250 (图6B),该阻尼变化算法250将液压马力(Hhyd)与泵马力(Hpump)进行比较。如果比较250成功,则在成功地迭代阻尼因子D以表征泵的操作时退出过程(块216);否则,过程200再次计算井下卡(块214),因此可以完成阻尼因子D的另一迭代。
[0106]更详细地转向阻尼变化算法,图6B中的比较过程250确定了关于图6A中的单阻尼因子D的迭代的阻尼变化。该比较过程250用作井下泵卡中的流体载荷曲线的凹度的测试,其指示出井下泵卡是过阻尼还是欠阻尼。
[0107]在比较过程250中,通过泵马力(Hpump)与液压马力(Hhyd)之间的差的信号确定阻尼因子D的变化的方向。如果泵马力(Hpump)大于液压马力(Hhyd),则井下卡被认为是欠阻尼。因此,需要增大阻尼因子D。类似地,如果泵马力(Hpump)小于液压马力(Hhyd),则井下卡被认为是过阻尼,并且需要减小阻尼因子D。
[0108]为了判断阻尼因子D是否有改变以及阻尼因子D的改变程度,图6B中的比较过程250首先判断泵马力(Hpump)是否在液压马力(Hhyd)的公差内(判定252)。如果是,迭代成功并且退出(块254),因为用于井下泵卡的计算中的阻尼的量是充分的。
[0109]然而,如果这些马力不在公差内,则过程250继续第二次比较(判定256)。此处,过程250判断计算的下行程流体载荷曲线(F0d_calc)是否在实际的下行程流体载荷曲线(F0downactual)的给定范围内以及计算的上行程流体载荷曲线(F0upcalc)是否在实际的上行程流体载荷曲线(F0upactual)的给定范围内。该范围可以变化并且可以取决于特定的实施,比如流体载荷高度、井下泵的类型等。通常,选择给定的范围以判断关于上行程和下行程的实际的流体载荷曲线与计算的流体载荷曲线是否彼此大体上相等。
[0110]如果关于上行程和下行程的实际的流体载荷曲线和计算的流体载荷曲线两者大体上相等,则迭代成功并且退出(块254),因为不需要阻尼因子D的调整。如果否,那么过程250根据泵马力(Hpimp)是大于还是小于液压马力(Hhyd)而继续进行至一个阶段(块260)或另一阶段(块270)。
[0111]如上所提到的,一组实际的流体载荷曲线(F0upactual和F0d_actual)通过找到井下泵卡的右拐角来计算。使用如本文公开的统计学或其他技术计算该组计算的流体载荷曲线(F0upcalc和F0d_calc)。当比较这些流体载荷曲线的位置时,能够确定所需阻尼的大小。因此,以上公开的流体载荷曲线计算和凹度测试为关于阻尼因子D的收敛性判别准则的一部分,如下文将详细描述的。
[0112]如果泵马力(Hpimp)大于液压马力(Hhyd)指示欠阻尼(块260),则进行两个分析:(1)计算的上行程流体载荷曲线(FOupCalC)是否大于实际的上行程流体载荷曲线(F0upactual) ?以及⑵计算的下行程流体载荷曲线(F0d_calc)是否小于实际的下行程流体载荷曲线(F0d_actual) ?(判定262)如果两个分析为真,那么过程250更新阻尼因子D因为井下泵卡大体上是欠阻尼的(参见例如图5B)(块250)。如果分析不为真,则不需要更新,因为井下泵卡的任何过阻尼或欠阻尼可以是不确定的,但可以执行阻尼因子D的额外调整(块264)。
[0113]类似地,如果泵马力(Hpump)小于液压马力(Hhyd)(块270),则也进行两个分析:(I)计算的上行程流体载荷曲线(FOupCalC)是否小于实际的上行程流体载荷(F0upactual) ?以及(2)计算的下行程流体载荷曲线(F0d_calc)是否大于实际的下行程流体载荷曲线(F0downactual) ?(判定272)。如果该两个分析均为真,那么过程250更新阻尼因子,因为井下泵卡大体上为过阻尼(参见例如图5A)(块280)。如果否,则不需要更新,因为井下泵卡的任何过阻尼或欠阻尼是不确定的,但可以执行阻尼因子D的额外调整(块274)。
[0114]如此处所示,阻尼因子D的更新(块280)基于泵马力(Hpimp)与液压马力(Hhyd)的比值,该比值衡量用于计算井下泵卡的阻尼因子D先前值。当不需要更新时(块264&274),阻尼变化算法250返回至图6A中的迭代过程200,其中,现有的阻尼因子未调整,因此过程200成功地结束(块216 ;图6A)。当必需更新时(块280),阻尼变化算法250返回至图6A中的迭代过程200,其中,现有的阻尼因子通过马力比值而被调整,因此,过程200用已调整的阻尼因子进行另一迭代(块214 ;图6A)。
[0115]2.迭代双阻尼因子
[0116]如以上所公开的,有限差分和阻尼系数D的迭代用于解一维阻尼波动方程以计算井下泵卡。该过程假设由于黏性力引起的摩擦对于上行程和下行程可以集合成仅一个公共系数D。然而,如本文所提到的,上行程与下行程之间的阻尼可能是不同的。因此,优选地使用的分开的上行程阻尼因子和下行程阻尼因子,如下文详细描述的。
[0117]在当前技术中,上行程阻尼因子和下行程阻尼因子Dup和Dd_被拆分并且被分别迭代。双阻尼因子Dup和Dd_的迭代构成用于阻尼因子修正的两步过程以准确地选择阻尼因子的值。因为上行程和下行程阻尼可以非常不同,原始阻尼因子优选地拆分成上行程阻尼因子和下行程阻尼因子Dup和Dd_。例如,在下行程,杆柱的杆逆着井中的流体移动,而在上行程,杆随着流体移动。因此,配置用于上行程和下行程的分开的阻尼因子Dup和Dd_可以将这些差异考虑进来。
[0118]对于每个行程,计算行程的顶点(TOS)。如所定义的,行程的顶点为转折点,在该转折点处,泵系统的向上移动停止并且开始下行程,从而使其成为下行程与上行程之间的划界因子。通过计算位移u = u(x,t)的一阶导数为零——即,速度为O时的点——计算行程顶点。行程顶点(TOS)的计算上的更多细节以及其他有用的计算(例如,转换点、泵填充率等)可以在美国专利公开N0.2011/0091332和N0.2011/0091335中找到,其全部内容通过参引合并入本文。
[0119]了解行程的顶点(TOS),修正的Eceritt-Jennings有限差分算法变化为如下处理两个阻尼因子Dui^P Dd_:
[0120].初始化:对于时间步数j = I,..., N,初始节点O处的表面位移给定为j =
gpR,j °
[0121].根据胡克定律:当时间步数j = 1,…,N时,相邻节点I处的表面位移给定为:UiJ = + U^,其中,fpE为动力学光杆载荷(即,表面-记录的载荷减去杆的浮重)。
[0122].对于沿杆柱的后续节点i = 2,…,M:
[0123]对于上行程时间步数j = 1,...,T0S,对于沿杆柱的上行程位移的有限差分模拟给定为:
[0124]
= "1^.[la(l +' ?1./ * I —卜(2 + DupM) —— (^) * UiJ + α '
ImI
Uy—I —(芒)"(5)
[0125]对于下行程时间步数j = T0S+1, , N,对于沿杆柱的下行程位移的有限差分模拟给定为:
[0126]
就 1+1,1 =^{[?(! + DaomlAt)] ■ uit|+1 - |α(2 + ?)_-ηΔ?)—(苦)一(替)|.uLj + a.uij-1 - (^)卿
[0127]其中,or=和'I Δζ = -(Δχ+ + Δχ—).At*22
[0128]?在井下泵处:
[0129]对于上行程时间步数j = 1,...,T0S,给定的泵位移为:
[0130]Upump, j = (I+Dup Δ t).Um^1j J+1-Dup Δ t.Ush, ,Ush,⑵
[0131]对于下行程时间步数j = T0S+1, , N,泵位移给定为:
[0132]Upump, j = (I+Ddown Δ t).UMu1-Ddown Δ t.Ush, j+Uh, H-Ush, j, (8)
[0133]对于整体行程时间步数j = 1,...,N,基于胡克定律的泵载荷给定为:

EA
[0134]FpumpJ = 2^: uMJ ~ 4 ILm.....hj + UM....2,/J.
[0135]在方程(5-8)中,上行程阻尼因子Dup用于时间步数j = 1,...,T0S,而下行程阻尼因子Ddwn用于时间步数j = T0S+1,...,N。
[0136]通过了解上行程阻尼因子和下行程阻尼因子Dup和Dd_之间的拆分,我们现在转向过程300以迭代双阻尼因子直至如图7A中所示的收敛为止。
[0137]迭代双阻尼因子Dui^PDdwn由两部分组成。与单阻尼因子的修正的迭代类似,迭代净行程(NS)和迭代双阻尼因子Duj^PDdmm被分别地处理。因为净行程(NS)相对于阻尼因子Dui^PDdwn的变化仅很小变化,首先完成净行程(NS)的迭代。一旦净行程(NS)收敛,双阻尼因子Dup和Dd_的迭代开始。
[0138]在图7A中的过程300首先执行一些初始计算(块302)。选择初始净行程(NS。)和行程顶点(TOS)。这允许计算日生产率(Q)和液压马力(Hhyd)。然后,将阻尼因子Dui^PDdown设成初始值,例如,将Dup设为0.25并且将Dd_设为0.5。该选择可以基于经验数据或其他因素。
[0139]具有这些初始值后,执行多个后续计算(块304)。特别地,基于设定的阻尼因子
(015)和0(1_)和推测的净行程(NStl)和行程顶点(TOS)来计算表面数据以产生初始的井下泵卡。根据井下泵卡,获得实际的流体载荷曲线(F0upactual,F0d_actual)和净行程(NS),并且根据分为两部分形式的方程(2)计算流体高度(FL)以及新上行程阻尼因子和新下行程阻尼因子(Dup和Dd_)。
[0140]在这一点上,在初始假设已经被校正并且计算新阻尼因子(Dup和Dd_)之后,进行检查以判断计算的净行程(NS)相对于推测的净行程(NStl)是否在给定的公差内。特别地,过程300判断推测的净行程(NStl)与计算的净行程(NS)之间的差的绝对值是否在公差€内,其中,该公差€如之前所提到的可根据实施而变化(判定306)。如果计算的净行程(NS)已经收敛,过程300继续进行至将双阻尼因子(Dup和Dd_)迭代至收敛(块312)。否则,过程300继续迭代净行程(NS)直至其收敛为止(块308)。
[0141]为了继续迭代净行程(NS),过程300通过使用计算的净行程(NS)再次计算日生产率(Q)、液压马力(Hhyd)、阻尼因子(Dup、Dd_)和井下泵卡(块308)。再次,检查先前的净行程(NSw)与新净行程(NS1)之间的差的绝对值是否在公差€内(判定310),并且过程300或者返回或者继续进行至迭代阻尼因子(Dup和Dd_)。
[0142]为了迭代阻尼因子(DUI^PDd_),一旦净行程(NS)已经收敛,则过程300通过使用收敛的净行程(NS)计算日生产率(Q)、液压马力(Hhyd)和阻尼因子(Dup、Dd_)(块312)。然后,计算井下泵卡、计算的流体载荷曲线(F0upCalc,F0d_calc)和泵马力(Hpump)(块312)。
[0143]此时,过程300进入阻尼变化算法350 (图7B),该阻尼变化算法350将液压马力(Hhyd)与泵马力(Hpimp)进行比较,并且如果需要的话,调整阻尼因子(Dui^PDdmm)。如果比较350成功或阻尼因子(Dui^PDdmm)不需要调整,则随着用适合的阻尼因子(Dui^PDdmm)计算井下泵卡,过程200成功地退出(块316);否则,过程300再次计算井下泵卡(块314),那么可以完成阻尼因子(Dui^PDdmm)的另一迭代。
[0144]更详细地转至阻尼变化算法,图7B中的比较过程350确定关于图7A中的双阻尼因子(Dui^PDdmm)的迭代的阻尼变化。该比较过程350用作流体载荷曲线的凹度的测试,其指示出给定的阻尼因子(Dup和Dd_)是过阻尼还是欠阻尼。
[0145]再次,在比较过程350中,通过泵马力(Hpimp)与液压马力(Hhyd)之间的差的信号确定阻尼因子的变化的方向。如果泵马力(Hpimp)大于液压马力(Hhyd),则数据被认为是欠阻尼。因此,需要增大阻尼因子Dui^P Dd_。类似地,如果泵马力(Hpump)小于液压马力(Hhyd),则数据被认为是过阻尼,并且需要减小阻尼因子Dup和Dd_。
[0146]与迭代单阻尼因子类似,密切地监测泵马力(Hpimp)与液压马力(Hhyd)之间的差的绝对值。理想地,泵马力(Hpimp)应该等于液压马力(Hhyd)。因此,确定泵马力(Hpimp)与液压马力之间的差。如果该差小于特定公差,则阻尼因子(0_和0(1_)假设为正确,并且阻尼因子(Dui^PDdmm)的迭代被认为收敛。
[0147]此外,如果泵马力(Hpimp)和液压马力(Hhyd)不在设定的公差内,并且如果泵马力(Hpump)大于液压马力(Hhyd),则假设为意味着当解波动方程时存在不足的阻尼。类似地,如果泵马力(Hpimp)小于液压马力(Hhyd),则假设当解波动方程时存在太大的阻尼。
[0148]理想地,上行程和下行程的图示应该是水平线。如果井下卡是凹形的,则是当解一维阻尼波动方程时使用了太大的阻尼。类似地,如果井下卡是凸形的,则是当解一维阻尼波动方程时使用了太小的阻尼。
[0149]为了确定阻尼因子Dup和Dd_中的所需改变,图7B中的比较过程350首先判断泵马力(Hpimp)是否在液压马力(Hhyd)的公差内(判定352)。如果在公差内,迭代成功并且退出(块354),因为阻尼系数Dui^PDdmJ的迭代收敛。如果否,过程350继续第二次比较(判定 356)ο
[0150]在泵马力(Hpump)和液压马力(Hhyd)不在公差内并且阻尼需要调整的情况下,第二组测试设置就位(判定356)。这些测试对上行程点和下行程点的统计学分布与实际的流体载荷曲线的计算的值比较,因此测试了上行程线和下行程线的凹度。
[0151]此处,过程350判断计算的下行程流体载荷曲线(F0d_calc)是否在实际的下行程流体载荷曲线(FOd_actual)的给定范围内以及计算的上行程流体载荷曲线(FOupcalc)是否在实际的上行程流体载荷曲线(FOupactual)的范围内。如果上述两者为真,则迭代成功并且退出(块354),因为大体上不需要阻尼因子Dui^PDdwn的调整。如果为否,那么过程350根据泵马力(Hpimp)是否大于液压马力(Hhyd)而继续进行至一个阶段(块360)或另一阶段(块370)。
[0152]如以上所提到的,通过使用位置的一阶导数和二阶导数确定实际的流体载荷曲线。该组被称作FOupactual和FOdownactual的实际的流体载荷曲线通过找到井下卡的右边拐角来计算。当载荷对应于行程顶点时计算上行程实际的流体载荷曲线Hkipactual。通过找到井下位置数据的一阶导数为零计算该行程顶点。为了计算下行程实际的流体载荷曲线FOdownactual,计算转换点的位置,该转换点为下述点:在该点处,载荷从游动阀转移至固定阀。通过使用泵填充率(Pump tillage)计算值来计算转换点。实际的流体载荷曲线FOdownactual为在转换点——即,井下卡的右下角——之后的井下位置数据的二阶导数的绝对最小值的载荷。
[0153]同样如以上所指出的,通过使用统计学或如本文公开的其他技术计算该组计算的流体载荷曲线(H)Upcalc和RMowncalc)。上行程数据和下行程数据以载荷在统计学上排序以产生概率密度函数。概率函数的最大值产生一组载荷范围,大部分上行程和下行程属于该组载荷范围内。关于上行程数据的概率密度函数的最大值被称为计算的流体载荷曲线(Hkipcalc),而关于下行程数据的概率密度函数的最大值被称为计算的流体载荷曲线(FOdowncalc)。
[0154]当比较这些流体载荷曲线的位置时,能够确定所需阻尼的大小。因此,流体载荷曲线计算和凹度测试为收敛性判别准则的一部分,如下文详细描述的。
[0155]如果泵马力(Hpump)大于液压马力(HHYD)表示欠阻尼(块360),则进行两个单独的分析:(1)计算的上行程流体载荷曲线(FOupCalC)是否大于实际的上行程流体载荷曲线(FOupactual) ?以及⑵计算的下行程流体载荷曲线(FOd_calc)是否小于实际的下行程流体载荷曲线(FOd_actual) ?(判定362)如果任意一个分析为真,那么过程350更新所需的阻尼因子(Dup或Dd_)(块380或块382)。如果否,则不需要更新(块364)。
[0156]类似地,如果泵马力(Hpump)小于液压马力(Hhyd)(块370),则进行两个单独的分析:(1)计算的上行程流体载荷曲线(H)upcalc)是否小于实际的上行程流体载荷曲线(F0upactual) ?以及(2)计算的下行程流体载荷曲线(F0d_calc)是否大于实际的下行程流体载荷曲线(F0d_actual) ?(判定372)。如果任意一个分析为真,那么过程350更新所需的阻尼因子Dup *Dd_(块384或块386)。如果分析不为真,则不需要更新(块374)。
[0157]如此处所示,所需的阻尼因子Dup *Dd_的更新基于泵马力(Hpump)与液压马力(Hhyd)的比值,该比值衡量在计算井下泵卡中用于阻尼因子Dup和Dd_的先前值。
[0158]阻尼因子的迭代结果在图8A至图8J中示出。该结果示出了井下卡,其中,比较了关于示例井数据的单阻尼因子D的迭代与双阻尼因子Dui^PDdwn的迭代。关于单阻尼因子与双阻尼因子的结果也与来自现有技术中可利用的Delta程序的结果比较,Delta程序使用了在LOWIS?软件(井的寿命信息软件)中编码的Gibbs方法,L0WIS?软件是可从Weatherford国际公司(Weatherford Internat1nal)购买的基于网络的井管理程序。
[0159]在图8A至图8J的左上角,示出了由双阻尼因子Dui^PDdmm的迭代产生的井下卡。在右侧,示出了由单阻尼因子的迭代产生的井下卡。最后,在左下侧,示出了由Delta程序产生的井下卡。作为结果呈现的所有井下卡已经移位至零线以提供方法之间更好的比较。
[0160]进一步如右下角所示,提供了关于迭代的细节。这些关于双阻尼因子的迭代的细节包括实际的流体载荷曲线和计算的流体载荷曲线、光杆马力、液压马力、泵马力、阻尼因子Dup和Dd_以及迭代次数。关于单阻尼因子D的迭代,细节包括光杆马力、液压马力、泵马力、阻尼因子以及迭代次数。
[0161]也如描述的,两个数字的组表示迭代次数。第一个数字为用于迭代净行程的迭代次数,而第二个数字为用于阻尼因子的迭代的次数。对于两种方法而言用于迭代净行程的计算机编码相同。
[0162]由于阻尼因子为设计成移除和增加“噪声”至波动方程的值,所以阻尼因子的范围为从O至I。预防起见,阻尼因子是被校正使得其不超过值I或降至O以下。因此,对于范围的每一端的极限值设定就位,其中Dmax = 0.99而Dmin = 0.01。
[0163]对于所示的示例,用于Delta程序的阻尼的数值与用于修正的Everitt-Jennings算法的阻尼不具有可比性。这是因为用于Delta程序的阻尼是使用由杆制造商提供的杆信息计算的并且需要手动调节。
[0164]在图8A中所示的第一示例中,井具有原始行程长度100英寸。净行程的迭代在2次迭代中收敛至值61.78英寸。光杆马力为2.52hp,而液压马力为2.04hp。对于迭代双阻尼因子和迭代单阻尼因子两者而言,泵马力为2.22hp。F0upactual和F0d_actual分别为23111b 和 261b,而 F0upcalc 和 F0downcalc 分别为 22651b 和 1631b。
[0165]由于F0upactual>F0upcalc 并且 F0d_actual〈F0d_calc,双阻尼因子的迭代在仅 I次迭代之后退出,即使|HP_-Hhyd| > 0.1亦是如此。相应的阻尼因子为Dup = 0.25和Dd_= 0.5。由于Hp_>Hhyd,单阻尼因子的迭代也停止在第一迭代处,其中阻尼因子为0.5。通过Delta程序获得的卡示出为过阻尼。
[0166]在图8B所示的第二示例中,另一井具有144.05的原始行程长度144.05英寸。净行程的迭代在2次迭代中收敛至119.44英寸的值。光杆马力为7.98hp,而液压马力为6.9hp。对于阻尼因子的双迭代,泵马力为7.23hp,而对于阻尼因子的单迭代,泵马力为
6.96hp。F0upactual 和 F0d_actual 分别为 47341b 和 101b,而 F0upcalc 和 F0d_calc 分别为 47461b 和-161b。
[0167]由于Hpump>Hhyd,并且 F0upactual 和 F0d_actual 在 F0upcalc 和 F0d_calc 的值的公差内,双阻尼因子的迭代在I次迭代之后退出。相应的阻尼因子为0.25和0.5。
[0168]由,单阻尼因子的迭代也在I次迭代中退出,结果是阻尼因子为0.5。通过Delta程序获得的卡在右侧显示为环。
[0169]在图SC所示的第三示例中,第三井具有对于井的原始行程长度64.00英寸。净行程的迭代在2次迭代中收敛至值37.56英寸。光杆马力为2.38hp,而液压马力为1.56hp。对于双阻尼因子的迭代,泵马力为1.6hp,而对于阻尼因子的单迭代,泵马力为L47hp。F0upactual 和 F0d_actual 分别为 15021b 和-7531b,而 R)upcalc 和 R)d_calc 分别为 16031b和-6241b。
[0170]双阻尼因子的迭代在4次迭代中收敛,其中IHpump-HhydI < 0.1,其中,迭代因子Dup和Ddwn分别等于0.1和0.2。此外,实际的流体载荷曲线在计算的流体载荷曲线的公差内,这样进一步确认了:选择了合适的阻尼因子。
[0171]对于单阻尼因子的迭代,迭代在2次迭代之后收敛,其中,阻尼因子为0.88。然而,根据当前的井下卡,该卡清楚地为过阻尼。通过Delta程序获得的井下卡也显示“环”。
[0172]在图8D中所示的第四示例中,第四井具有对于井的原始行程长度86.3英寸。净行程的迭代在2次迭代中收敛至10.06英寸的值。光杆马力为L 26hp,而液压马力1.19hp。对于双阻尼因子的迭代,泵马力为1.16hp,而对于单阻尼因子的迭代,泵马力为l.0lhp。实际的流体载荷曲线为26121b和01b,而计算的流体载荷曲线为26131b和671b。
[0173]双阻尼因子的迭代在7次迭代中收敛,从而满足|Hp_-Hhyd| <0.1,其中,阻尼因子Dup = 0.1并且Dd_ = 0.5。对于该示例,实际的流体载荷曲线的值在计算的流体载荷曲线的值的公差内。
[0174]单阻尼因子的迭代在I次迭代中收敛,从而也满足IHpump-HhydI < 0.1,其中,阻尼因子为0.5。通过Delta程序获得的井下卡示出“环”,暗示着过阻尼。
[0175]在图SE所示的第五示例中,第五井具有关于井的123.2英寸的原始行程长度。净行程的迭代在2次迭代中收敛至值59.84英寸。光杆马力为5.37hp,而液压马力为3.Shp0对于阻尼因子的双迭代,泵马力为4.45hp,而对于阻尼因子的单迭代,泵马力为3.72hp。关于实际的流体载荷曲线的值分别为57831b和3431b,而对于计算的流体载荷曲线为56261b和-3711b。
[0176]由于F0upactual>F0upcalc 并且 F0d_actual>F0d_calc,双迭代阻尼因子在 4 次迭代之后退出,即使IHpump-HhydI >0.1亦是如此,其中,阻尼因子分别等于0.1和0.4。
[0177]对于阻尼因子的单迭代,算法在5次迭代中收敛,从而满足IHpump-HhydI < 0.1,其中,阻尼因子为0.41。根据带有阻尼因数的单迭代的修正的Everitt-Jennings的井下卡和通过Delta程序获得的井下卡两者都示出为“环”。
[0178]在图8F所示的第六示例中,井具对于井具有原始行程长度120.00英寸。净行程的迭代在2次迭代中收敛至值85.21英寸。光杆马力为8.45hp,而液压马力为5.35hp。对于阻尼因子的双迭代,泵马力为6.65hp,而对于阻尼因子的单迭代,泵马力为7.0hp0F0upactual 和 F0d_actual 分别为 32681b 和-11131b,而 F0upcalc 和 H)d_calc 分别为32101b 和-10861b。
[0179]阻尼因子的双迭代在6次迭代中退出,其中Hpump>Hhyd,FOupactual?F0upcalc并且F0downactual < F0downcalCo 相应的阻尼因子为 Dup = 0.75 和 Ddmm = 0.5。
[0180]对于阻尼因子的单迭代,由于Hp_>Hhyd,算法在I次迭代之后退出,其中阻尼因子为0.5。与Delta程序相关联的井下卡示出为欠阻尼。
[0181]在图SG中所示的第七示例中,井具有对于井的原始行程长度86.1英寸。净行程的迭代在2次迭代中收敛至值75.91英寸。光杆马力8.55hp,而液压马力4.38hp。对于阻尼因子的双迭代,泵马力为6.59hp,,而对于阻尼因子的单迭代,泵马力为5.84hp。实际的流体载荷曲线的值分别为24241b和-11971b,而计算的流体载荷曲线的值分别为27321b和-9721b。
[0182]由于Hpump>Hhyd, F0upactual〈F0upcalc 但是 Dup = Dmax = 0.99 并且R)d_aCtual〈R)d_CalC,双阻尼因子的迭代在9次迭代之后退出。相应的阻尼因子为Dup =0.99以及Dd_ = 0.5。对于单阻尼因子的迭代,由于Hpump>Hhyd,算法在I次迭代之后退出,其中,阻尼因子为0.99。然而,相关联的井下卡示出为过阻尼。与Delta程序相关联的井下卡示出为欠阻尼。
[0183]在图8H中所示的第八示例中,井具有原始行程长度57.10英寸。净行程的迭代在2次迭代中收敛至值13.05英尺。光杆马力0.74hp,而液压马力0.6hp。对于双阻尼因子的迭代,泵马力为0.67hp,而对于单阻尼因子的迭代,泵马力为0.56hp。实际的流体载荷曲线的值分别为22341b和3111b,而计算的流体载荷曲线的值分别为19091b和3381b。
[0184]双阻尼因子的迭代在4次迭代中收敛,其中IHpump-HhydI < 0.1,其中,阻尼因子Dup=0.01 并且 Ddown = 0.2。此外,F0upactual>F0upcalc 并且 F0d_actual ^ FOdownCalC。单阻尼因子的迭代在I次迭代中收敛至阻尼因子0.99。通过Delta程序获得的井下卡示出了过阻尼。
[0185]在图81所示的第九示例中,井具有原始行程长度119.90英寸。净行程的迭代在2次迭代中收敛至95.92英寸的值。光杆马力为17.04hp,而液压马力为10.44hp。对于阻尼因子的双迭代,泵马力为11.6hp,而对于阻尼因子的单迭代,泵马力为10.87hp。实际的流体载荷曲线的值分别为48311b和6761b,而计算的流体载荷曲线的值分别为48321b和-10341b。
[0186]阻尼因子的双迭代在7次迭代之后退出,其中,F0upactual 乂 F0upcalc并且Dup =
0.75,而 F0d_actual>F0d_calc,其中 Dd_ = Dmax = 0.99,即使 Hpump>Hhyd 亦是如此。
[0187]对于阻尼因子的单迭代,由于Hp_>Hhyd,算法在I次迭代之后退出,其中阻尼因子为0.9。与Delta程序相关联的井下卡示出为欠阻尼。
[0188]在图8J所示的第十示例中,井具有原始行程长度144.00英寸。净行程的迭代在2次迭代中收敛至值123.33英寸。光杆马力为24.001^,而液压马力为16.201^。对于阻尼因子的双迭代,泵马力为15.13hp,而对于阻尼因子的单迭代,泵马力为16.15hp。实际的流体载荷曲线的值分别为72201b和22231b,而计算的流体载荷曲线的值分别为73461b和23291b。
[0189]对于双阻尼因子的迭代,算法在7次迭代之后退出其中F0upactual〈F0upcalc,F0downactual<F0downcalc 并且 Hpump〈Hhyd,其中阻尼因子值分别为 0.75 和 0.8。
[0190]对于单阻尼因子的迭代,算法在6次迭代中收敛,其中,阻尼因子为0.6845,以满足IHpump-HhydI < 0.1。与Delta程序相关联的井下卡暗不为欠阻尼。
[0191]对于在图8A、8B、8D、8H和81中的示例,来自双阻尼因子的迭代和单阻尼因子的迭代的结果非常类似。事实上,对于两种方法,井下卡示出了适合的阻尼。然而,在这些示例上,通过Delta程序获得的井下卡示出了不合适的阻尼。在图81中,例如,通过Delta程序获得的井下卡显示不充分的阻尼,如通过卡的“胖”的外观所看到的,而例如在图8A、8B、8D和8H中,通过Delta程序获得的井下卡示出为过多阻尼,因为卡在其本身上成环。
[0192]对于图SC和SE中的示例,来自阻尼因子的双迭代和阻尼因子的单迭代的结果是不同的。在两种情况下,阻尼的单迭代收敛;然而,由于井下卡在其本身上成环,因此阻尼因子是不适合的。相同的“成环”现象也被观察以用于通过Delta程序获得的井下卡,其为过阻尼的信号。对于两个示例,通过马力测试双迭代阻尼因子不收敛,但是相反,通过根据本公开流体载荷曲线的凹度测试则收敛。
[0193]对于图8F、8G和8J中的示例,通过全部三种方法获得在“厚度”上变化的每个井下卡。即使对于每个示例,表现出的是与“更胖的”Delata卡相比,通过双或单迭代获得的井下卡示出了更适合的阻尼,但难以确定哪个阻尼更准确。由于多种阻尼不意味着克服机械摩擦,上述示例中的一些清楚地源自具有会使阻尼的选择变复杂的机械摩擦的井。因此,可以使用额外的技术,比如在共同待审的申请N0.—/—(205-0322US1)题目为“为斜井中的井下卡的计算实施库伦摩擦”(“ Implementing Coulombs Frict1n for the Calculat1nof Downhole Cards in Deviated Wells”)中公开的,其全部内容通过参引并入本文。
[0194]处理一维阻尼波动方程的阻尼可以通过使用单阻尼因子或通过使用上行程阻尼因子和下行程阻尼因子来完成。如通过上述结果可以看出,在大多数情况下,两种方法的结果之间的差非常小。然而,在某些情况下,单迭代阻尼因子不足以克服在井中出现的井下情况使得迭代单阻尼因子甚至在收敛时也会选择不适当的阻尼因子。
[0195]然而,一致地,任一迭代阻尼的结果都证明比存在于Delta程序中的阻尼因子的计算更好。Delta程序中的阻尼因子必须手动地调整以匹配来自双迭代阻尼因子或单迭代阻尼因子的结果。此外,增加的流体载荷曲线计算值与凹度测试改进了算法收敛的速率和结果。
[0196]如应理解的是,本公开的教示可以在数字电子电路、计算机硬件、计算机固件、计算机软件或其任何组合中实施。本公开的教示可以以数字电路、计算机硬件、计算机固件、计算机软件或其任意结合实施。本公开的教示可以以有形地实施在机器可读存储装置中以通过可编程处理器执行的计算机程序产品来实施,使得执行程序指令的可编程处理器可以执行本公开的功能。
[0197]为此,本公开的教示可以以远程处理装置或泵控制器实施。例如,图9A示出安装在吸杆泵系统10上的泵控制器400的实施方式,比如通常用于从井中生产流体的泵驱动器。泵系统10包括连接至框架15的活动梁11。活动梁11以可操作的方式连接至光杆12,光杆12通过杆柱(未示出)连接至井下泵(未示出),该井下泵可以是如本文中所讨论的任意井下往复式泵。马达控制面板19控制马达17以移动活动梁11并且使光杆12往复运动,这样进而操作井下泵。尽管示出了泵驱动器,但是也可以使用其他吸杆泵系统,例如,带式驱动器(strap jack)或通过使用线缆、带、链以及液压和气动动力系统使杆柱往复运动的任何其他系统。
[0198]通常,传感器402和404测量位于表面处的泵系统10的载荷和位置数据,并且来自传感器402和404的测量数据转发至控制器400。控制器400在处理该信息之后将信号发送至马达控制面板19以操作泵系统10。美国专利N0.7,032,659中公开了控制器400以及传感器402和404的特定设置,该专利通过参引并入本文。
[0199]如所示,控制器400使用载荷传感器402来检测在泵系统100的操作期间生产管道中的流体的重量,并且使用位置传感器404测量泵系统10在每个行程周期的位置。该位置传感器404可以是用于测量相对于行程的顶点或底点的位置的任何位置测量装置。例如,位置传感器404可以是双位置传感器,该双位置传感器产生连续位置测量值和在光杆12的预设位置处关闭和打开的尚散开关输出。
[0200]替代性地,泵系统的曲臂的旋转程度可以提供位移数据。例如,传感器可以确定系统的曲臂何时经过特定位置,并且模拟的光杆的位移与时间所产生的图形可以调整成间或提供在这些曲臂指示点之间的光杆位置的估算值。在另一可替代方案中,活动梁11的倾斜程度可以提供位移数据。例如,活动梁11可以附接有测量泵单元的倾斜程度的装置。
[0201]系统10的载荷数据可以使用插在光杆夹持器与承载梁之间的测力元件而被直接测量。可替代地,活动梁11上的应变可以提供载荷数据。例如,通过使用载荷传感器402,控制器400可以测量光杆12上的应变并且因而可以基于所测量的应变控制泵系统10。载荷传感器402可以使用本领域技术人员已知的各种应变测量装置中的任一种。例如,载荷传感器402可以是用于泵系统10上的载荷测量装置,该载荷测量装置包括安装在泵杆12上的或安装在活动梁11上的测力元件。载荷传感器402可以测量光杆12中的应变并且可以使用焊接至活动梁11的顶部凸缘的应变计变换器。
[0202]可替代地,载荷传感器402可以是夹在活动梁11的承载表面上的或如美国专利N0.5,423,224中公开的任何方便位置上的应变测量装置。在另一示例中,载荷传感器402可以使用与美国专利N0.7,032,659中公开的组件相似的组件,该专利全部内容通过参引并入本文。
[0203]最后,施加至马达17的电力信号的幅值和频率可以用于确定马达旋转(即,位移数据)和马达转矩(即,载荷数据)。以这种方式,马达速率和光杆的位移可以提供沿光杆的多个位移处的一系列马达速率和位移数据对。表示泵系统10的完整行程的位移数据则可以转换为杆柱的在沿光杆的多个位移处的位移和杆柱上的载荷,如美国专利N0.4,490,094中描述的。
[0204]图9B示意性示出了泵控制器400的细节。通常,控制器400包括一个或更多个传感器接口 412,该一个或更多个传感器接口 412接收来自载荷传感器402和位置传感器404的测量值。控制器400的附加输入可以连接至提供可以被记录以用于压力累积分析和对流体高度控制的实时校准的实时数据的其他装置,比如红外线的含水率仪、声学的回声探深仪(ASD)。该控制器400也包括如常规设置的电源系统(未示出)。
[0205]控制器400可以具有储存在存储器420中的软件422和数据424。存储器420可以是电池备份的易失存储器或非易失存储器,例如一次性可编程存储器或闪速存储器。此夕卜,存储器420可以是合适的外部存储器和内部存储器的任意组合。
[0206]软件422可以包括马达控制软件和泵诊断软件,并且存储的数据424可以是由多个载荷传感器402和位置传感器404记录的测量值和计算结果。存储器420中的数据424储存井的包括深度、位置角和沿井的点的倾斜的特征,这些特征可以根据钻孔和测量数据获得。由于杆柱有时可以为锥形,所以存储器420中的数据424也可以储存抽吸杆锥形的特征,比如杆各个部段的深度、直径、重量和长度。
[0207]具有一个或更多个处理器的处理单元410则通过将测量值作为数据424储存在存储器420中并且通过运行软件422以进行如本文详细说明的各种计算来处理测量值。例如,处理单元410获得来自表面传感器的输出,比如来自传感器402和404的载荷测量值和位置测量值。进而,处理单元410将来自载荷传感器402的输出与光杆12的位置相互关联并且确定光杆12在行程循环期间所经受的载荷。然后,处理单元210通过使用软件412计算指示井下泵的载荷和位置的井下卡。
[0208]为了控制泵系统10,泵控制器400优选地使用带有有限差分的未经缩写的Everitt-Jennings算法来解波动方程。控制器400计算泵的填充率并且优化每个行程上的生产。该信息用于通过使处于指定泵填充率设定的泵系统10停止或减速而将流体撞击减至最小。泵控制器400还可以分析井下泵卡并且确定与泵及其操作相关联的潜在问题。之所以这样是因为与井下泵卡有关的形状、形式和其他特征表示泵及其操作的多种情况。
[0209]在处理测量值之后,控制器400将信号发送至马达控制面板19以操作泵系统10。例如,一个或更多个通信接口 414与马达控制面板19通信以控制泵系统10的操作,比如关闭马达17以防止泵抽空等。通信接口 414具有适当的通信形式,并且通信接口 414还可以通过使用任何适当的通信方法将数据和计算结果发送至远程站点。
[0210]优选实施方式和其他实施方式的以上描述并非意在限制或约束由本 申请人:设想的发明构思的范围或适用性。通过本公开的益处将理解的是:以上根据所公开的主题事物的任何实施方式或方面描述的特征可以或者单独使用或者与所公开的主题事物的任何其他实施方式或方面中的任何其他描述的特征组合使用。
[0211]作为对公开包含在本文中的发明构思的交换,本 申请人:要求由所附权利要求提供的所有专利权。因此,所附权利要求意在以下述最大程度包括所有修改和改变:这些修改和改变落入所附权利要求和其等同替代的范围内。
【权利要求】
1.一种由用于诊断泵设备的处理装置执行的方法,所述泵设备具有布置在井筒中的井下泵并且具有位于所述井筒的表面处的马达,所述井下泵通过由所述马达操作性地移动的杆柱而在所述井筒中往复运动,所述方法包括: 通过使用表面测量值和具有上行程阻尼因子和下行程阻尼因子的波动方程模型生成指示所述井下泵的井下载荷和井下位置的井下卡; 根据所述井下卡确定关于所述井下泵的上行程和下行程中的每一者的实际的流体载荷曲线; 根据分布在所述井下卡上的载荷值确定关于所述井下泵的所述上行程和所述下行程中的每一者的计算的流体载荷曲线; 比较所述实际的流体载荷曲线与所述计算的流体载荷曲线; 基于所述比较调整所述波动方程模型的所述上行程阻尼因子和所述下行程阻尼因子中的至少一者;以及 基于其中至少一者被调整的所述上行程阻尼因子和所述下行程阻尼因子生成另一井下卡。
2.一种由用于诊断泵设备的处理装置执行的方法,所述泵设备具有布置在井筒中的井下泵并且具有位于所述井筒的表面处的马达,所述井下泵通过由所述马达操作性地移动的杆柱而在所述井筒中往复运动,所述方法包括: 通过使用表面测量值和具有阻尼因子的波动方程模型生成指示所述井下泵的井下载荷和井下位置的井下卡; 根据所述井下卡确定关于所述井下泵的上行程和下行程中的每一者的实际的流体载荷曲线; 根据分布在所述井下卡上的载荷值确定关于所述井下泵的所述上行程和所述下行程中的每一者的计算的流体载荷曲线; 比较所述实际的流体载荷曲线与所述计算的流体载荷曲线; 基于所述比较调整所述波动方程模型的所述阻尼因子;以及 基于所述经调整的所述阻尼因子生成另一井下卡。
3.一种由用于诊断泵设备的处理装置执行的方法,所述泵设备具有布置在井筒中的井下泵并且具有位于所述井筒的表面处的马达,所述井下泵通过由所述马达操作性地移动的杆柱而在所述井筒中往复运动,所述方法包括: 通过使用表面测量值和具有阻尼的波动方程模型生成指示所述井下泵的井下载荷和井下位置的井下卡; 根据所述井下卡确定关于所述井下泵的上行程和下行程中的每一者的实际的流体载荷曲线; 根据分布在所述井下卡上的载荷值确定关于所述井下泵的所述上行程和所述下行程中的每一者的计算的流体载荷曲线; 比较所述实际的流体载荷曲线与所述计算的流体载荷曲线;以及 基于所述比较修正所述泵设备的至少一个参数。
4.根据权利要求1、2或3所述的方法,包括:首先获得指示所述杆柱在所述表面处的表面载荷和表面位置的表面测量值。
5.根据权利要求4所述的方法,其中,获得所述表面测量值包括测量所述杆柱在所述表面处的所述表面载荷和所述表面位置。
6.根据权利要求4所述的方法,其中,获得所述表面测量值包括从存储器获得所述表面测量值。
7.根据权利要求1、2或3所述的方法,其中,根据所述井下卡确定关于所述井下泵的所述上行程的所述实际的流体载荷曲线包括计算所述井下卡的所述上行程中的所述井下位置的一阶导数为零。
8.根据权利要求1、2或3所述的方法,其中,根据所述井下卡确定关于所述井下泵的所述下行程的所述实际的流体载荷曲线包括计算在所述井下卡的所述下行程中的转换点之后的上凹点。
9.根据权利要求8所述的方法,其中,计算所述上凹点包括计算所述井下卡的所述下行程中的所述转换点之后的所述井下位置的二阶导数的绝对最小值。
10.根据权利要求1、2或3所述的方法,其中,根据分布在所述井下卡上的所述载荷值确定关于所述井下泵的所述上行程和所述下行程中的每一者的所述计算的流体载荷曲线包括计算在统计学上作为关于所述上行程载荷值和所述下行程载荷值的中间值的所述计算的流体载荷曲线。
11.根据权利要求1、2或3所述的方法,其中,比较所述实际的流体载荷曲线与所述计算的流体载荷曲线包括判断所述井下卡是过阻尼还是欠阻尼。
12.根据权利要求11所述的方法,其中,判断所述井下卡是过阻尼还是欠阻尼包括通过确定至少(a)所述上行程计算的流体载荷曲线小于所述上行程实际的流体载荷曲线,(b)所述下行程计算的流体载荷曲线大于所述下行程实际的流体载荷曲线;或者(c)为(a)和(b) 二者,来确定所述井下卡为过阻尼。
13.根据权利要求11所述的方法,其中,确定所述井下卡是过阻尼还是欠阻尼包括通过确定至少(a)所述上行程计算的流体载荷曲线大于所述上行程实际的流体载荷曲线,(b)所述下行程计算的流体载荷曲线小于所述下行程实际的流体载荷曲线;或(C)为(a)和(b) 二者,来确定所述井下卡为欠阻尼。
14.根据权利要求11所述的方法,其中,判断所述井下卡是否为欠阻尼包括确定泵马力大于液压马力。
15.根据权利要求14所述的方法,其中,判断所述井下卡至少对于所述上行程阻尼因子是否为欠阻尼包括确定所述上行程计算的流体载荷曲线大于所述上行程实际的流体载荷曲线。
16.根据权利要求14所述的方法,其中,判断所述井下卡至少对于所述下行程阻尼因子是否为欠阻尼包括确定所述下行程计算的流体载荷曲线小于所述下行程实际的流体载荷曲线。
17.根据权利要求11所述的方法,其中,判断所述井下卡是否为过阻尼包括确定泵马力小于液压马力。
18.根据权利要求17所述的方法,其中,判断所述井下卡至少对于所述上行程阻尼因子是否为过阻尼包括确定所述上行程计算的流体载荷曲线小于所述上行程实际的流体载荷曲线。
19.根据权利要求17所述的方法,其中,判断所述井下卡至少对于所述下行程阻尼因子是否为过阻尼包括确定所述下行程计算的流体载荷曲线大于所述下行程实际的流体载荷曲线。
20.根据权利要求1或2所述的方法,其中,基于所述比较调整所述波动方程模型的至少一个所述阻尼因子包括通过泵马力与液压马力的比值调整所述至少一个阻尼因子。
21.根据权利要求1或2所述的方法,还包括基于所述生成的井下卡修正所述泵设备的至少一个参数。
22.根据权利要求3或21所述的方法,其中,基于所述生成的井下泵数据修正所述泵设备的至少一个参数包括停止所述马达或调整所述马达的速率。
23.根据权利要求3所述方法,其中,基于所述比较修正所述泵设备的至少一个参数包括: 基于所述比较调整所述波动方程模型的所述阻尼;以及 基于所述调整的阻尼因子生成另一井下卡。
24.一种程序储存装置,所述程序储存装置具有存储于所述程序储存装置上的程序指令,用于引起可编程的控制装置执行根据权利要求1、2或3所述的方法。
25.一种用于泵设备的控制器,所述泵设备具有布置在井筒中的井下泵并且具有位于所述井筒的表面处的马达,所述井下泵通过由所述马达操作性地移动的杆柱在所述井筒中往复运动,所述控制器包括: 一个或更多个接口,所述一个或更多个接口获得指示所述杆柱在所述表面处的表面载荷和表面位置的表面测量值; 存储器,所述存储器与所述一个或更多个接口通信并且储存具有上行程阻尼因子和下行程阻尼因子的波动方程模型;以及 处理单元,所述处理单元与所述一个或更多个接口和所述存储器通信,并且构造成执行根据权利要求1、2或3所述的步骤。
【文档编号】F04B43/12GK104185735SQ201280065229
【公开日】2014年12月3日 申请日期:2012年10月29日 优先权日:2011年10月28日
【发明者】维多利亚·M·庞斯 申请人:韦特福特/兰姆有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1