# Patent

## Title
Method and system for optimizing downhole fluid production

## Abstract

A method and system for pumping unit with an elastic rod system is applied to maximize fluid production. The maximum stroke of the pump and the shortest cycle time are calculated based on all static and dynamic properties of downhole and surface components without a limitation to angular speed of the prime mover. Limitations of structural and fatigue strength are incorporated into the optimization calculation to ensure safe operation while maximizing pumped volume and minimizing energy consumption. Calculated optimal prime mover speed is applied to the sucker rod pump by means of beam pumping, long stroke or hydraulic pumping unit by controlling velocity, acceleration and torque of the electric prime mover or by controlling pressure and flow rate in hydraulically actuated sucker rod pumping system.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This is a continuation of U.S. patent application Ser. No. 12/090,250, filed Jun. 4, 2008, which is a U.S. National Stage Application of PCT/CA2005/001570, filed Oct. 13, 2005, both of which applications are hereby incorporated by reference.


FIELD OF THE INVENTION
This invention relates to methods and systems for maximizing downhole fluid pumping using a sucker rod pumping system, and more particularly to methods and systems for maximizing fluid production by optimizing the sucker rod prime mover speed.
BACKGROUND OF THE INVENTION
Reciprocating oil pumps are traditionally operated by a beam pumping unit, as illustrated in FIG. 1 and described below, with a sinusoidal characteristic of reciprocating motion of a polished rod as dictated by the fixed speed of an electrical or gas prime mover and the geometry of the beam pumping unit. Conventionally, a constant crank speed is employed in the operation of the beam pumping unit; as a result, the geometry of the beam pumping unit dictates a rod speed which follows a curve which is sinusoidal in nature. Other types of pumping units, such as long stroke or hydraulically actuated pumping units, operate at a first constant speed of the polished rod during upstroke motion and at a second constant speed during down-stroke motion, with additional speed variability only during change of the direction of the motion. Some of the pumping units utilize variable control of prime movers to allow for easier change in fixed speed of the prime mover or the ability to choose variable speed of the prime mover in any desired portion of the pumping cycle.
A conventional sucker rod pumping system comprises surface equipment (the beam pumping unit, or pump jack), and downhole equipment (the sucker rod and pump) which operates in a well bore drilled into an oil reservoir. The interaction of the movable and stationary elements of the well and dynamic interaction with fluids present in the well creates a complicated mechanical system that requires precise design and control to be able to work in an efficient way.
In order to increase oil production, analysis and optimization of all of the elements of the sucker rod pumping system must be performed. The design of the oil well system equipment is usually performed on the basis of mechanical laws and special methods, and certain established analytical standards are required to enable development of a beneficial design and desired operation of the oil well. Such an analysis generally involves:

    
    
        1. A dynamic analysis of the sucker rod system when the dynamic forces and stresses acting on the sucker rod are calculated (dynamic wave equation);
        2. a kinetic analysis of the surface equipment (pumping unit);
        3. analysis of the performance of the bottom-hole pump (well evaluation software); and
        4. analysis of the performance of the oil reservoir (inflow performance relation).
    
    


Such a system analysis presented in the prior art can provide correct and useful information on the original design of the well and on its performance, but only for the constant speed of the prime mover. Past attempts to increase well production have incorporated changing the components of the rod string and size of the pump, changing the overall rotational velocity of the crank, varying the speed within the stroke by choosing different constant crank speeds for upstroke and clown-stroke with a variable frequency drive, or by utilizing ultra high slip electric motors to slow down speed of the prime mover during peak torque periods within a single stroke. Prior art has taught allowing for speed change of the prime mover as a response to the need for controlling pump-off conditions (U.S. Pat. Nos. 4,490,094; 4,973,226; and 5,252,031; please note that U.S. Pat. No. 5,252,031 is based on calculation of the down-hole pump behaviour as originally presented in U.S. Pat. No. 3,343,409), limiting loads on the rod string connecting surface unit with reciprocating pump and other components (U.S. Pat. Nos. 4,102,394 and 5,246,076; PCT Application No. WO 03/048578), optimizing pumping conditions of the pumping unit (U.S. Pat. Nos. 4,102,394 and 4,490,094), or converting the sinusoidal speed characteristic of the polished rod powered by a beam pumping unit to a linear characteristic throughout most of the upstroke and down-stroke motion (U.S. Pat. No. 6,890,156) to mimic long stroke behaviour with a typical pump-jack unit.
Most of the prior art methods and systems are based on various analyses of loads or energy on the polished rod and indirect detection of various problems with pump performance or fluid inflow to the well. U.S. Pat. No. 4,102,394, for example, teaches setting a different constant speed for the prime mover during upstroke movement as opposed to down-stroke movement to match inflow of the oil from the reservoir and to avoid pump-off conditions. The method of U.S. Pat. No. 4,490,094 determines and modifies the instantaneous speed of the prime mover for a predetermined portion of the polished rod stroke, based on power output and work done by the prime, mover. PCT Application No. WO 03/048578 teaches the application of finite changes to the speed of the prime mover within one stroke, to limit the load acting on the polished rod within pre-established safe limits. U.S. Pat. No. 6,890,156 teaches finite changes to the speed of the prime mover so the speed of the polished rod reciprocated by the beam pumping unit remains constant for an extended period during upstroke and down-stroke periods. Speed changes are dictated by the geometry of the beam pumping unit and are resulting in shorter stroke time for the same maximum speed of the polished rod. No relation or effect on the effective stroke of the pump or impact on maximum or minimum force acting in the rod string is taken into consideration or intentionally changed.
For over a decade, various suppliers of variable frequency drives (VFD) for beam pumping provided an opportunity to change the speed of the crank and polished rod within a single stroke of the pump. Some of the drives, such as the ePAC Vector Flux Drive from eProduction Solutions or the Sucker-Rod Pump Drive from Unico, Inc., allow a user to incorporate variable speed of the crank and rod throughout a single stroke by means of an incorporated Programmable Logic Controller and industry standard ladder programming language.
In the prior art, the speed of the polished rod was altered in order to improve, but not optimize, certain aspects of pump operations, such as reducing loads in the rod string, and their teachings had focused on the kinematics of the pumping system by prescribing certain movements of the polished rod without analyzing the dynamics of the entire system, including the surface unit, rod string and downhole pump. The optimization process was limited to the design phase, where, based on the system requirements and the dynamic analysis of the entire pumping system, the physical parameters of the system (such as motor power, rod string materials and dimensions, etc.) were determined to meet the required production target and satisfy the limits on the loads on the system. However, the optimization of the design assumed a constant speed of the prime mover.
While trying to improve the design of a new pumping system or improve the operation of an existing system, there was no attempt to optimize its performance by optimizing the stroke period and the variation of the prime mover speed within a stroke. Implementing such an approach creates an opportunity to develop a method and a system that can address the highly nonlinear nature of the problem of oil production optimization, while at the same time reducing operating costs and providing for operation with safe loading factors.
SUMMARY OF THE INVENTION
The present invention seeks to provide a method and system for optimizing the sucker-rod pump prime mover speed in order to maximize oil production while at the same time reducing operating costs and providing for operation with safe loading factors. The optimization can be performed for existing pumping systems as well as during the design phase of a new system. The presented optimization process and system focuses on finding and applying the optimal variable speed of the prime mover; however, the resulting optimal prime mover angular speed determines the optimal polished rod linear velocity, therefore—after minor modifications within the competence of a person skilled in the relevant art—the present method can also be applied to optimization of the polished rod velocity instead of the prime mover angular speed.
The present invention also seeks to provide the ability to automatically monitor, analyze, test, optimize, control, and manage a given well from a remote central location. The proposed system performs kinetic and dynamic analysis of the oil well equipment, and using various experimental data and Mathematical modeling is able to optimize the well performance. Additional benefits include monitoring the pumping conditions and detecting unusual, deteriorating or detrimental operating conditions, and changing the pumping parameters in response to the detected changes.
According to a first aspect of the present invention, there is provided a method for controlling prime mover angular velocity and polished rod motion in a pumping system, the method comprising the steps of:

    
    
        a) developing a mathematical model of the pumping system based on system data;
        b) measuring physical conditions of the pumping system during operation;
        c) comparing the mathematical model and the physical conditions as measured;
        d) calculating optimal variable speed of the prime mover and new operating parameters to determine optimal polished rod, sucker rod and downhole pump motion; and
        e) applying the optimal variable speed of the prime mover and new operating parameters to the pumping system.
    
    


According to a second aspect of the present invention, there is provided a system for controlling polished rod motion in a pumping system, the polished rod motion determined by actuation of a prime mover, the system comprising:

    
    
        a) surface pumping components including the prime mover,
        b) a controller for controlling the prime mover, which controller allows for dynamic changes of speed, acceleration and torque within one cycle;
        c) downhole pumping components including a rod string and downhole pump;
        d) means for communicating motion of the prime mover to the downhole pumping components;
        e) measuring means on the surface pumping components for monitoring operational conditions;
        f) a local control unit;
        g) signal transmission means for transmitting signals from the measuring means and the controller to the local control unit, for determining optimal prime mover speed and required prime mover new operating parameters; and
        h) means for transmitting the new operating parameters to the controller.
    
    


In preferred embodiments of a method according to the present invention, the optimal variable speed of the prime mover is determined such that pump stroke length is maximized, stroke time is minimized, forces acting on components of the pumping system are minimized and energy consumption is minimized. Preferably, calculating new operating parameters comprises analysis of pumping system geometry and mechanical properties, the prime mover actuates the polished rod motion (wherein the new operating parameters are applied to the prime mover to achieve optimal polished rod motion), and the new operating parameters are applied to the prime mover by means of controlling velocity, acceleration and torque of the prime mover. Where the pumping system is an hydraulically actuated pumping system, the new operating parameters are preferably applied to the pumping system by means of controlling pressure and flow rate within an actuation system of the pumping system. The optimal variable speed of the prime mover may be achieved by an optimization method selected from the group consisting of theoretical techniques, experimental techniques, and a combination of theoretical and experimental techniques, which techniques would be known to one skilled in the art, and calculating the optimal variable speed of the prime mover may be performed as part of initial pumping system design using a predictive analysis method (without measuring physical conditions of the pumping system).
In preferred embodiments of a system according to the present invention, the measuring means are for measuring polished rod load, walking beam position, tubing pressure, and casing pressure, and the measuring means preferably comprise a transducer for measuring polished rod load, an optical encoder for measuring walking beam position, and pressure transducers for measuring tubing pressure and casing pressure. The controller may comprise one of a dynamic braking resistor and a regenerative module, but neither need be present. The system preferably comprises a remote computing station in communication with the local control unit. The local control unit preferably comprises programming incorporating mathematical modelling and numerical solution techniques capability, for analyzing the signals, determining the optimal prime mover speed, and determining the required prime mover new operating parameters.
In some preferred embodiments of the present invention, the pumping system has the ability to control the polished rod linear velocity according to a pre-programmed or self-adapting function of one of the following variables: time, polished rod position or crank rotation angle. A preferred embodiment of this invention uses a VFD for controlling the prime mover angular speed that produces the optimal polished rod linear variable velocity.
It is most efficient to assume that the angular velocity profile of the prime mover is controlled by a function Ω(s) of the polished rod position, although it can also be defined as a function Ω(t) of time or a function Ω(α) of crank angle. The position of the polished rod s ε(0,s0) is defined for the full cycle, including the upstroke and down-stroke movement, and therefore s0 corresponds to the double length of the polished rod stroke. The present invention seeks to provide a method and system for optimizing the angular velocity profile Ω of the prime mover for the entire stroke cycle in order to achieve one of the following goals:

    
    
        (I) maximize oil production
        
            or
        
        
        (II) achieve a pre-defined production target using a minimum energy consumption in the pumping unit,

while satisfying the following constraints for the duration of the entire stroke period T:

        (A) the maximum and minimum stress at any point x ε (0,L) along the entire length L of the rod string doesn't exceed the limits allowed by the modified Goodman diagram:
    
    





  
    
      
        σ
        
          m
          ⁢
          
            
          
          ⁢
          i
          ⁢
          
            
          
          ⁢
          n
        
      
      ⁡
      
        (
        
          Ω
          ,
          x
        
        )
      
    
    =
    
      
        
          Min
          
            i
            ∈
            
              (
              
                0
                ,
                T
              
              )
            
          
        
        ⁡
        
          (
          
            σ
            ⁡
            
              (
              
                Ω
                ,
                x
                ,
                t
              
              )
            
          
          )
        
      
      ≥
      0
    
  




  
    
      
        σ
        
          ma
          ⁢
          
            
          
          ⁢
          x
        
      
      ⁡
      
        (
        
          Ω
          ,
          x
        
        )
      
    
    =
    
      
        
          Max
          
            i
            ∈
            
              (
              
                0
                ,
                T
              
              )
            
          
        
        ⁡
        
          (
          
            σ
            ⁡
            
              (
              
                Ω
                ,
                x
                ,
                t
              
              )
            
          
          )
        
      
      ≤
      
        g
        ⁡
        
          (
          
            
              σ
              
                m
                ⁢
                
                  
                
                ⁢
                i
                ⁢
                
                  
                
                ⁢
                n
              
            
            ⁡
            
              (
              
                Ω
                ,
                x
              
              )
            
          
          )
        
      
    
  



    
    
        
        
            where g(σmin (x)) depends on the material properties of the rod segment at point x;
        
        
        (B) the motor speed variation is achievable for a given pumping unit, i.e. the torque M(Ω, s) doesn't exceed the allowable range (Mmin, Mmax) specified for the motor and the gear box:
    
    





  
    
      
        M
        
          m
          ⁢
          
            
          
          ⁢
          i
          ⁢
          
            
          
          ⁢
          n
        
      
      ⁡
      
        (
        Ω
        )
      
    
    =
    
      
        
          Min
          
            s
            ∈
            
              (
              
                0
                ,
                
                  s
                  o
                
              
              )
            
          
        
        ⁡
        
          (
          
            M
            ⁡
            
              (
              
                Ω
                ,
                s
              
              )
            
          
          )
        
      
      ≥
      
        M
        
          m
          ⁢
          
            
          
          ⁢
          i
          ⁢
          
            
          
          ⁢
          n
        
      
    
  




  
    
      
        M
        
          ma
          ⁢
          
            
          
          ⁢
          x
        
      
      ⁡
      
        (
        Ω
        )
      
    
    =
    
      
        
          Max
          
            s
            ∈
            
              (
              
                0
                ,
                
                  s
                  o
                
              
              )
            
          
        
        ⁡
        
          (
          
            M
            ⁡
            
              (
              
                Ω
                ,
                s
              
              )
            
          
          )
        
      
      ≤
      
        M
        
          m
          ⁢
          
            
          
          ⁢
          ax
        
      
    
  



    
    
        
        
            where Mmin<0 is the minimum allowable negative torque (can be equal to 0 in order to minimize the regenerative torque),
            as well as the motor angular speed doesn't exceed the specified limit:

Ω(s)<Ωmax for sε(0,s0)

        
        
        (C) the angular velocity Ω(s) is the same at the beginning and end of the stroke due to a cyclic character of the pumping operation:

Ω(0)=Ω(s0).

    
    


Because of an inherent time delay in the response of the motor angular velocity to the provided VFD input, the realized motor speed is not the same as the input design speed, therefore it is more efficient to optimize directly the input speed than to find first the optimal motor speed, and subsequently try to determine the input function that actually produces the required motor velocity. Therefore, the function Ω(s) describes rather the optimal design input speed for the VFD controller than the actual optimal motor speed. It needs to be noted that the effect of optimization of VFD input speed is equivalent to controlling the polished rod velocity in order to optimize the pump production and operation.
It has been observed that the optimal solution that maximizes the production usually has the following properties that are of additional benefit:

    
    
        The energy use and the maximum stresses in the entire pump system are smaller for the optimal velocity profile Ω(s) than for the movement with the same cycle period and a constant motor speed equal to the average motor speed of the variable speed cycle
        When optimizing the energy use to achieve the production target the stresses are reduced with respect to the movement with the same cycle period and a constant motor speed.
    
    


Once the optimal VFD input velocity is determined then a further reduction of the motor torque and energy use is achieved by re-adjusting the crank weights to the new operating conditions.
When the optimization is performed not on the existing pumping system, but during the design phase, then the design can be further improved based on the power and load requirements resulting from the prime mover speed determined from the optimization process. Making the design changes to improve the performance of the system powered by the prime mover optimal variable speed, e.g. increasing the diameter of the weakest segments of the rod string, will allow for further improvement of the system performance by applying the pumping system design and prime mover speed optimization processes iteratively.
It should be noted that the optimal prime mover speed and the resulting polished rod velocity determined by the present invention are different than those prescribed in the prior art. For example, U.S. Pat. No. 6,890,156 teaches adjusting the prime mover speed to obtain a constant speed of the polished rod during most of the stroke length (which doesn't necessary optimize the production and reduce loads), while the optimal movement of the polished rod obtained by the present method is not constant in general.
To overcome the limitations of the prior art, the present invention seeks to analyze current performance and calculate and apply the most advantageous variable speed of the prime mover to maximize fluid production for an existing sucker rod pumping system. Some prior art systems would require system components to be changed to achieve any increase in production volume, or otherwise would have to compromise safety conditions if higher fixed speed of the prime mover were to be attempted. Operating costs would also increase since larger components and higher energy consumption would be necessary.
As in the prior art, the measurements of the surface card provide the displacement and force in the polished rod that allow for calculation of the following values that are of importance from the perspective of optimization:

    
    
        Forces and stresses in the entire rod string that are used for checking condition (A) of the optimization process
        Effective plunger stroke length that is used for estimation of the oil output that needs to be maximized according to optimization problem (I), or needs to achieve the prescribed production target according to optimization problem (II)
    
    


The motor torque measurements provide means for controlling condition (B) of the optimization process. The angular velocity measurements can be used for modelling the delay between the VFD input and the actual motor velocity profile if mathematical modelling is used instead of the physical measurements for finding the response of the pump/well system to a given VFD input velocity. The calculations of the plunger stroke length and the stresses in the rod string based on the surface card measurements are performed using the methods described in literature that employ either the finite difference method or Fourier transformations (e.g. U.S. Pat. No. 3,343,409). The plunger stroke length and the stresses in the rod string, as well as the loads on the surface unit, including the motor torque, can alternatively be calculated without relying on the surface card measurements, by simulating the response of the rod string to the imposed movement of the polished rod using the improved predictive analysis based on original work of Gibbs as presented in the Journal of Petroleum Technology in July 1963. This approach might produce less accurate results, but it is necessary if the physical tests cannot be performed or the measurements cannot be collected, e.g. during the design phase, or the number of test must be limited In order to minimize the disruption of the well production.
The present invention is directed to controlling prime mover speed and, in doing so, polished rod motion so that the downhole pump is reciprocated with any stroke length required to maximize production within the fatigue load limits of the sucker rod. In addition, any desired speed of the downhole pump and behaviour pattern can be controlled to overcome excessive friction, gas lock, or other detrimental downhole conditions.
A detailed description of an exemplary embodiment of the present invention is given in the following. It is to be understood, however, that the invention is not to be construed as limited to this embodiment.



BRIEF DESCRIPTION OF THE DRAWINGS
In the accompanying drawings, which illustrate an exemplary embodiment of the present invention:
FIG. 1 is a schematic view of a system according to the present invention;
FIGS. 2a and 2b present a flowchart illustrating a preferred process for use in software development for an embodiment according to the present invention;
FIG. 3 is a chart illustrating prime mover angular velocity before and after optimization;
FIG. 4 is a chart illustrating polished rod linear velocity before and after optimization;
FIG. 5 is a chart illustrating polished rod forces vs. displacement and plunger pump forces vs. displacement during operation of a pump with constant prime mover velocity and with optimized speed of prime mover; and
FIG. 6 is a chart illustrating gearbox torque before and after optimization where optimal condition was prescribed as minimization of regenerative torque acting in the gearbox.



DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
Optimization Method
Referring now to the summary, of the present invention set out above, the optimization problem (I) is defined as finding the VFD input angular speed profile Ω(s) that maximizes the average fluid volume pumped per unit time. The volume pumped during one stroke as a result of the imposed VFD input speed Ω(s) is equal to:

Vol(Ω)=ApηUP(Ω)

where Ap—plunger cross-sectional area

    
    
        η—pumping efficiency coefficient
        UP(Ω)—plunger stroke length (the product ηUP is called an effective stroke length).
    
    


Therefore, the optimization goal of maximizing the production per unit time can be mathematically defined as finding the VFD input speed profile Ω(s) that maximizes the following functional V(Ω), while satisfying the constraints (A-C):




  
    
      
        
          V
          ⁡
          
            (
            Ω
            )
          
        
        =
        
          
            
              Vol
              ⁡
              
                (
                Ω
                )
              
            
            
              T
              ⁡
              
                (
                Ω
                )
              
            
          
          =
          
            
              
                
                  A
                  p
                
                ⁢
                η
                ⁢
                
                  
                
                ⁢
                
                  
                    U
                    p
                  
                  ⁡
                  
                    (
                    Ω
                    )
                  
                
              
              
                T
                ⁡
                
                  (
                  Ω
                  )
                
              
            
            =
            
              Maximum
              ⁡
              
                (
                Ω
                )
              
            
          
        
      
    
    
      
        (
        1
        )
      
    
  




    
    
        where T(Ω) is the stroke period resulting from applying the input velocity Ω(s).
    
    


Similarly, the optimization problem (II) can be defined as finding the VFD input speed profile Ω(s) that minimizes the motor power use P(Ω), while satisfying the conditions (A-C) together with the following additional constraint:




  
    
      
        
          V
          ⁡
          
            (
            Ω
            )
          
        
        =
        
          
            
              Vol
              ⁡
              
                (
                Ω
                )
              
            
            
              T
              ⁡
              
                (
                Ω
                )
              
            
          
          =
          
            
              
                
                  A
                  p
                
                ⁢
                η
                ⁢
                
                  
                
                ⁢
                
                  
                    U
                    p
                  
                  ⁡
                  
                    (
                    Ω
                    )
                  
                
              
              
                T
                ⁡
                
                  (
                  Ω
                  )
                
              
            
            =
            
              V
              o
            
          
        
      
    
    
      
        (
        D
        )
      
    
  




where V0 is a prescribed production target.

The power use P(Ω) can be measured directly by VFD or can be calculated as the work done by the motor per unit time, therefore the following functional needs to be minimized:




  
    
      
        
          P
          ⁡
          
            (
            Ω
            )
          
        
        =
        
          
            
              W
              ⁡
              
                (
                Ω
                )
              
            
            
              T
              ⁡
              
                (
                Ω
                )
              
            
          
          =
          
            Minimum
            ⁡
            
              (
              Ω
              )
            
          
        
      
    
    
      
        (
        2
        )
      
    
  




where W(Ω) is the work done by the positive motor torque during one stoke





  
    W
    ⁡
    
      (
      Ω
      )
    
  
  =
  
    
      ∫
      0
      T
    
    ⁢
    
      
        M
        ⁡
        
          (
          
            Ω
            ,
            t
          
          )
        
      
      ⁢
      
        ω
        ⁡
        
          (
          
            Ω
            ,
            t
          
          )
        
      
      ⁢
      
        d
        t
      
    
  




where W(Ω) is the work done by the positive motor torque during one stoke





  
    W
    ⁡
    
      (
      Ω
      )
    
  
  =
  
    
      ∫
      0
      T
    
    ⁢
    
      
        
          M
          +
        
        ⁡
        
          (
          
            Ω
            ,
            t
          
          )
        
      
      ⁢
      
        ω
        ⁡
        
          (
          
            Ω
            ,
            t
          
          )
        
      
      ⁢
      
        d
        t
      
    
  




where: ω(Ω,t) is the motor angular rate described as a function of time.

M+(Ω,t) is the positive motor torque defined as:





  
    
      M
      +
    
    ⁡
    
      (
      
        Ω
        ,
        t
      
      )
    
  
  =
  
    {
    
      
        
          0
        
        
          
            
              if
              ⁢
              
                
              
              ⁢
              
                M
                ⁡
                
                  (
                  
                    Ω
                    ,
                    t
                  
                  )
                
              
            
            ≤
            0
          
        
      
      
        
          
            M
            ⁡
            
              (
              
                Ω
                ,
                t
              
              )
            
          
        
        
          
            
              if
              ⁢
              
                
              
              ⁢
              
                M
                ⁡
                
                  (
                  
                    Ω
                    ,
                    t
                  
                  )
                
              
            
            >
            0.
          
        
      
    
  




In order to solve the above optimization problems, i.e. problem (I) with constraints (A-C) or problem (II) with constraints (A-D), we need the ability to obtain the following information in response to any input velocity Ω(s):

    
    
        production value V(Ω), or equivalently, plunger stroke length UP(Ω) and stroke period T(Ω)
        the distribution of stresses σ (Ω,x,t) for the entire rod string x ε (0,L) and stroke period t ε(0, T0), and based on this σmin (Ω,x) and σmax (Ω,x) as defined in Condition (A)
        the motor torque M (Ω, s) for the entire stroke length s ε(0,s0), and based on this Mmin(Ω) and Mmax(Ω) as defined in Condition (B)
        prime mover power use P(Ω), or equivalently, the work W(Ω) over a stroke period T(Ω)
    
    


The above information for a given input velocity Ω(s) can be obtained in a variety of ways, ranging from totally experimental to purely theoretical. In general, the experimental methods are more accurate, but at the same time require more effort in installing the instrumentation, performing tests and collecting data for each input function Ω(s). Usually, the most efficient approach is to combine both of these methods.
Following is a brief description of some possible approaches:

    
    
        The production can be measured directly in the experimental way, provided the necessary equipment is available, or can be calculated based on the plunger stroke length and stroke period, either measured or calculated.
        The stroke period T(Ω) for a given input velocity Ω(s) can be measured directly by applying this input to the VFD of a real pump/well system, or can be calculated theoretically, assuming the motor velocity follows the VFD input velocity with a constant time delay.
        The plunger stroke length can be measured experimentally, e.g. by installing accelerometers at the plunger, or can be calculated in two ways: 1) using the mathematical model of the plunger movement based on the surface card measurements, i.e. the polished rod displacement and force; 2) applying a purely theoretical method by calculating the polished rod movement as a function of the motor speed and using the predictive analysis to find the plunger response to this movement.
        The stresses along the rod string could be measured experimentally, e.g. by installing strain sensors at various locations (although it is rather impractical), or can be calculated in two ways: 1) using a mathematical model of the rod string displacements and forces based on the surface card measurements; 2) applying a purely theoretical method by calculating the polished rod movement as a function of the motor speed and using the predictive analysis to find the distributions of the stresses in the rod string.
        The motor torque can be measured directly from the VFD output by applying the desired VFD input velocity to the pump/well system or can be calculated, using the equations of dynamic equilibrium of the surface unit, based on the theoretically calculated force in the polished rod obtained from the rod string dynamic model.
        The motor power consumption can be measured directly from the VFD output by applying the desired VFD input velocity to the pump/well system, or can be calculated theoretically based on the work done by the theoretically calculated torque for the imposed motor angular velocity.
    
    


The optimization problems (I) and (II) are very similar from the mathematical point of view and can be solved using the same methods; therefore, a possible solution will be presented for case (I) only. The solution of problem (I) can be achieved by, but is not limited to, the following iterative approach that was chosen to address the highly nonlinear nature of this problem.
The function Ω[p](s) describing any allowable VFD input speed that meets the condition (C) can be presented in the following form of Fourier series:




  
    
      
        
          
            Ω
            ⁡
            
              [
              p
              ]
            
          
          ⁢
          
            (
            s
            )
          
        
        =
        
          β
          ⁢
          
            
          
          ⁢
          
            
              
                Ω
                _
              
              0
            
            ⁡
            
              [
              
                1
                +
                
                  
                    ∑
                    
                      i
                      -
                      1
                    
                    N
                  
                  ⁢
                  
                    (
                    
                      
                        
                          γ
                          i
                        
                        ⁢
                        
                          cos
                          ⁡
                          
                            (
                            
                              2
                              ⁢
                              π
                              ⁢
                              
                                
                              
                              ⁢
                              
                                is
                                /
                                
                                  s
                                  0
                                
                              
                            
                            )
                          
                        
                      
                      +
                      
                        
                          λ
                          i
                        
                        ⁢
                        
                          sin
                          ⁡
                          
                            (
                            
                              2
                              ⁢
                              π
                              ⁢
                              
                                
                              
                              ⁢
                              
                                is
                                /
                                
                                  s
                                  0
                                
                              
                            
                            )
                          
                        
                      
                    
                    )
                  
                
              
              ]
            
          
        
      
    
    
      
        (
        3
        )
      
    
  




where

    
    
        p=[p1, . . . , p2N+1]=[β, γ1, . . . , γN, λ1, . . . , λN] is the vector of optimization variables/parameters
         Ω0—prime mover typical constant operational speed for the specific well and pumping unit
        N—selected number of terms in the Fourier series, usually not exceeding 4
    
    


The purpose of optimization is to find the vector of parameters p for which the function Ω[p](s) maximizes the production V(Ω) defined by (1), while meeting the conditions (A) and (B). Due to the nonlinear nature of this problem, the optimal solution will be found using an iterative approach, starting from some initial set of parameters usually selected based on experience. The closer the initial values are to the optimum the faster the convergence to the optimal point will be achieved. Typically those initial parameters are assumed as follows:

    
    
        β=1
        λ1ε(−0.1, 0.1) depending on the sucker-rod material (fibreglass or steel)
        λ1=0 for i>1
        γ2=0.2, γ1=0(i=1 or i>2)
    
    


Now any operational parameters of the pumping system controlled directly or indirectly by the VFD input velocity Ω[p](s), such as the production V(Ω[p], prime mover torque M(Ω[p], s) and stresses in the rod string σ (Ω[p], x,t) can be treated as functions of the parameter vector p:

V[p]=V(Ω[p]))

M[p](s)=(M(Ω[p],s)sε(0,s0)

σ[p](x,t)=σ(Ω[p],x,t)xε(0,L);tε(0,T)  (4)

Using one of the methods described earlier, we can determine the values of all the above functions at the starting point p=p0. Then we will search for such a vector δp=[δp1, . . . , δp2N+1] for which the functions σ [p0+δp] and M[p0+δp] satisfy the constraints (A) and (B), and for which the maximum of the function V[p0+δp] is reached in the vicinity of point p0 

V[p0+δp]=Maximum(δp)  (5)

The functions V, M and Γ of parameters p are not available in analytical font and depend on those parameters in a highly nonlinear way; their determination can even involve physical tests. However, these functions can be approximated at point p0 by linear functions of δp using the first order Taylor series;




  
    
      
        
          
        
        ⁢
        
          
            V
            ⁡
            
              [
              
                
                  p
                  0
                
                +
                
                  δ
                  ⁢
                  
                    
                  
                  ⁢
                  p
                
              
              ]
            
          
          =
          
            
              V
              ⁡
              
                [
                
                  p
                  0
                
                ]
              
            
            +
            
              
                ∑
                
                  i
                  =
                  1
                
                
                  
                    2
                    ⁢
                    N
                  
                  +
                  1
                
              
              ⁢
              
                [
                
                  
                    
                      
                        
                          ∂
                          V
                        
                        
                          ∂
                          
                            p
                            i
                          
                        
                      
                      ⁡
                      
                        [
                        
                          p
                          0
                        
                        ]
                      
                    
                    ⁢
                    δ
                    ⁢
                    
                      
                    
                    ⁢
                    
                      p
                      i
                    
                  
                  +
                  
                    
                      
                        
                          
                            ∂
                            2
                          
                          ⁢
                          V
                        
                        
                          ∂
                          
                            p
                            i
                            2
                          
                        
                      
                      ⁡
                      
                        [
                        
                          p
                          0
                        
                        ]
                      
                    
                    ⁢
                    δ
                    ⁢
                    
                      
                    
                    ⁢
                    
                      p
                      i
                      2
                    
                  
                
                ]
              
            
          
        
      
    
    
      
        (
        
          6
          ⁢
          a
        
        )
      
    
  
  
    
      
        
          
            M
            ⁡
            
              [
              
                
                  p
                  0
                
                +
                
                  δ
                  ⁢
                  
                    
                  
                  ⁢
                  p
                
              
              ]
            
          
          ⁢
          
            (
            s
            )
          
        
        =
        
          
            
              M
              ⁡
              
                [
                
                  p
                  0
                
                ]
              
            
            ⁢
            
              (
              s
              )
            
          
          +
          
            
              ∑
              
                i
                =
                1
              
              
                
                  2
                  ⁢
                  N
                
                +
                1
              
            
            ⁢
            
              [
              
                
                  
                    
                      
                        ∂
                        M
                      
                      
                        ∂
                        
                          p
                          i
                        
                      
                    
                    ⁡
                    
                      [
                      
                        p
                        0
                      
                      ]
                    
                  
                  ⁢
                  
                    (
                    s
                    )
                  
                  ⁢
                  δ
                  ⁢
                  
                    
                  
                  ⁢
                  
                    p
                    i
                  
                
                +
                
                  
                    
                      
                        
                          ∂
                          2
                        
                        ⁢
                        M
                      
                      
                        ∂
                        
                          p
                          i
                          2
                        
                      
                    
                    ⁡
                    
                      [
                      
                        p
                        0
                      
                      ]
                    
                  
                  ⁢
                  
                    (
                    s
                    )
                  
                  ⁢
                  δ
                  ⁢
                  
                    
                  
                  ⁢
                  
                    p
                    i
                    2
                  
                
              
              ]
            
          
        
      
    
    
      
        (
        
          6
          ⁢
          b
        
        )
      
    
  
  
    
      
        
          
            σ
            ⁡
            
              [
              
                
                  p
                  0
                
                +
                
                  δ
                  ⁢
                  
                    
                  
                  ⁢
                  p
                
              
              ]
            
          
          ⁢
          
            (
            
              s
              ,
              t
            
            )
          
        
        =
        
          
            
              σ
              ⁡
              
                [
                
                  p
                  0
                
                ]
              
            
            ⁢
            
              (
              s
              )
            
          
          +
          
            
              ∑
              
                i
                =
                1
              
              
                
                  2
                  ⁢
                  N
                
                +
                1
              
            
            ⁢
            
              [
              
                
                  
                    
                      
                        ∂
                        σ
                      
                      
                        ∂
                        
                          p
                          i
                        
                      
                    
                    ⁡
                    
                      [
                      
                        p
                        0
                      
                      ]
                    
                  
                  ⁢
                  
                    (
                    
                      s
                      ,
                      t
                    
                    )
                  
                  ⁢
                  δ
                  ⁢
                  
                    
                  
                  ⁢
                  
                    p
                    i
                  
                
                +
                
                  
                    
                      
                        
                          ∂
                          2
                        
                        ⁢
                        σ
                      
                      
                        ∂
                        
                          p
                          i
                          2
                        
                      
                    
                    ⁡
                    
                      [
                      
                        p
                        0
                      
                      ]
                    
                  
                  ⁢
                  
                    (
                    
                      s
                      ,
                      t
                    
                    )
                  
                  ⁢
                  δ
                  ⁢
                  
                    
                  
                  ⁢
                  
                    p
                    i
                    2
                  
                
              
              ]
            
          
        
      
    
    
      
        (
        
          6
          ⁢
          c
        
        )
      
    
  




where the partial derivatives of functions V, M and σ are calculated from the finite differences for each i (i=1, . . . , 2N+1) using the following formulas:





  
    
      
        
          
            
              
                ∂
                V
              
              
                ∂
                
                  p
                  i
                
              
            
            ⁡
            
              [
              
                p
                0
              
              ]
            
          
          =
          
            
              
                V
                ⁡
                
                  [
                  
                    
                      p
                      0
                    
                    +
                    
                      Δ
                      ⁢
                      
                        
                      
                      ⁢
                      
                        p
                        i
                      
                    
                  
                  ]
                
              
              -
              
                V
                ⁡
                
                  [
                  
                    p
                    0
                  
                  ]
                
              
            
            
              Δ
              ⁢
              
                
              
              ⁢
              
                p
                i
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            
              
                
                  ∂
                  M
                
                
                  ∂
                  
                    p
                    i
                  
                
              
              ⁡
              
                [
                
                  p
                  0
                
                ]
              
            
            ⁢
            
              (
              s
              )
            
          
          =
          
            
              
                
                  M
                  ⁡
                  
                    [
                    
                      
                        p
                        0
                      
                      +
                      
                        Δ
                        ⁢
                        
                          
                        
                        ⁢
                        
                          p
                          1
                        
                      
                    
                    ]
                  
                
                ⁢
                
                  (
                  s
                  )
                
              
              -
              
                
                  M
                  ⁡
                  
                    [
                    
                      p
                      0
                    
                    ]
                  
                
                ⁢
                
                  (
                  s
                  )
                
              
            
            
              Δ
              ⁢
              
                
              
              ⁢
              
                p
                i
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            
              
                
                  ∂
                  σ
                
                
                  ∂
                  
                    p
                    i
                  
                
              
              ⁡
              
                [
                
                  p
                  0
                
                ]
              
            
            ⁢
            
              (
              
                s
                ,
                t
              
              )
            
          
          =
          
            
              
                
                  σ
                  ⁡
                  
                    [
                    
                      
                        p
                        0
                      
                      +
                      
                        Δ
                        ⁢
                        
                          
                        
                        ⁢
                        
                          p
                          i
                        
                      
                    
                    ]
                  
                
                ⁢
                
                  (
                  
                    s
                    ,
                    
                      t
                      +
                      i
                    
                  
                  )
                
              
              -
              
                
                  σ
                  ⁡
                  
                    [
                    
                      p
                      0
                    
                    ]
                  
                
                ⁢
                
                  (
                  
                    s
                    ,
                    t
                  
                  )
                
              
            
            
              Δ
              ⁢
              
                
              
              ⁢
              
                p
                
                  i
                  ⁢
                  
                    
                  
                
              
            
          
        
        ⁢
        
          

        
        ⁢
        where
        ⁢
        
          

        
        ⁢
        
          
            Δ
            ⁢
            
              
            
            ⁢
            
              p
              i
            
          
          =
          
            [
            
              0
              ,
              ...
              ⁢
              
                
              
              ,
              
                Δ
                ⁢
                
                  
                
                ⁢
                
                  p
                  i
                
              
              ,
              
                ...
                ⁢
                
                  
                
                ⁢
                0
              
            
            ]
          
        
        ⁢
        
          

        
        ⁢
        
          
            t
            +
            i
          
          =
          
            
              
                T
                ⁡
                
                  [
                  
                    p
                    0
                  
                  ]
                
              
              
                T
                ⁡
                
                  [
                  
                    
                      p
                      0
                    
                    +
                    
                      Δ
                      ⁢
                      
                        
                      
                      ⁢
                      
                        p
                        i
                      
                    
                  
                  ]
                
              
            
            ⁢
            t
          
        
        ⁢
        
          

        
        ⁢
        
          
            T
            ⁡
            
              [
              p
              ]
            
          
          =
          
            
              T
              ⁡
              
                (
                
                  Ω
                  ⁡
                  
                    [
                    p
                    ]
                  
                
                )
              
            
            .
          
        
      
    
    
      
        (
        7
        )
      
    
  




Different input parameters p=p0+Δpi (i=1, . . . , 2N+1) produce variations of the motor speed that can result in a slightly different stroke period T [p0+Δpi] than for p=p0. In order to be able to superimpose stresses σ (Ω[p], x,t) along the rod string for the same moment during the cycles with different periods the time t can be scaled to a constant reference period T [p0] e.g. time t defined for the period T [p0+Δpi] was converted to time t′+ defined for the period T [p0].
When calculating the partial derivatives using the finite difference method the values Δpi should be selected in a way that ensures a quick convergence to the optimal solution of the nonlinear problem. In order to keep under control the error resulting from the approximation of a nonlinear problem, the following additional constraints are imposed on the values δpi 

|δpi|<θΔp1(i=1, . . . ,2N+1)  (E)

where θ is initially set to 1, but needs to be reduced if convergence problems are encountered.

As can be see from Eqs. (6a-c) the highly nonlinear optimization problem (I) has been reduced to finding the minimum of a linear function V[p0+δp] of vector δp subject to linear constraints (A), (B) and (E). The solution of this problem can be obtained by those skilled in an using any of the known methods of linear programming.
Having calculated the optimal vector δp0 for the approximate optimization problem we can repeat the entire process starting from a new point p1=p0+δp0 that should be closer to the optimal solution of the original nonlinear problem man point p0. This process can be repeated until there is no change in the optimal vector p from the previous iteration, i.e.




  
    
      
        
          
          
            δ
            ⁢
            
              
            
            ⁢
            p
          
          
        
        =
        
          
            
              
                
                  ∑
                  i
                
                
                  
                    2
                    ⁢
                    N
                  
                  +
                  1
                
              
              ⁢
              
                δ
                ⁢
                
                  
                
                ⁢
                
                  p
                  i
                  2
                
              
            
          
          <
          ɛ
        
      
    
    
      
        (
        8
        )
      
    
  




where ε is a selected threshold for the convergence criterion.

The most efficient method is to perform the optimization process in two stages. In the first stage we would find the theoretical optimal solution based only on the predictive analysis without performing tests on the real pump/well system to determine its response to different input velocities (only the basic tests to determine the system parameters would be performed initially). In the second stage we would find the actual optimal solution starting from that theoretical solution by utilizing the responses of the real system to different input velocities required by the optimization algorithm. The transition between those two stages requires changing the optimization parameters from the motor speed to the VFD input velocity. This requires transforming the Fourier series parameters to reflect the time delay between the VFD input velocity and the motor response, which however is fairly straightforward. Adopting this two stage approach may limit the physical tests of the system to only one iteration.
Application Method
As one skilled in the art would appreciate, to calculate optimized prime mover spew, evaluation of current pumping system performance must be based an accurate feedback of the system behaviour. Accurate position of the polished to rod is preferably determined by utilization of an optical encoder, non-contact magneto-resistive rotary position sensor or similar high precision rotary position transducer mounted on the centre bearing of the beam pumping unit or crank. The present invention preferably continuously monitors and transfers all well operating conditions to a centrally-based computer that calculates optimal prime mover speed and corresponding prime mover operating parameters. New parameters are then transferred to a local well controller via wired or wireless means of data transfer. A closed feedback loop between a local controller and the centrally-based computer allows the mathematical model to correct and adjust its parameters to achieve the most accurate representation of the physical state of the downhole and surface components, and it also allows for detecting trends and changes in operating conditions. The controller also allows far detection of any detrimental condition outside of the preset range of loading factors on every component of the pumping system. The amount of rpm, acceleration and torque for every portion of the cycle is accordingly based on following optimal prime mover speed to maximize total volume production while maintaining safe working parameters.
Surface Equipment and Prime Mover
The surface equipment is used to provide the oscillating motion to the sucker rod and the pump at the bottom of the well. The pumping unit usually comprises:

    
    
        a walking beam with “Horsehead”;
        a base;
        a pitman;
        a crank with counterbalance weights; and
        a gearbox and motor.
    
    


By optimizing speed of the prime mover to properly apply motion of the polished rod to rod string and pump, efficiency of the pumping unit can be improved, power costs can be reduced, stresses in the rod string can be reduced and pumping unit balance can be improved.
Under the condition of variable motor speed, all of these elements rotate and move with variable velocity and acceleration. The effects of acceleration result in dynamic forces and moments that affect the performance of the pumping unit as a whole. For example, acceleration affects gearbox torque, motor power consumption, the strength of the walking beam and wearing of the gearbox, etc. Proper loading of the gearbox is of extreme importance, as an under-loaded unit operates at low mechanical efficiency. The overloaded unit can be easily damaged and then requires excessive maintenance. The calculation of the dynamic torque values and prediction/optimization of the performance of the pumping unit is possible only if the correct data about the weights and moments of the inertia of the moving and rotating elements of the pumping unit is known. This data is required for evaluation of the performance before any optimization can be performed. In accordance with the preferred embodiment, most of the information that is necessary to calculate torques, counterbalance loads, etc., is obtained automatically.
Sucker Rod and Pump Performance
A sucker rod is a long elastic rod consisting of several lengths of different cross-sections. The rod is attached at one end to the walking beam of the pumping unit by means of the horsehead and polished rod, and to the downhole pump at the other end. It is necessary to keep the stresses and safety factors of the rod within the recommended guidelines corresponding to the fatigue strength of the material of the rod. The estimation of the stresses in the rod is performed using a mathematical model of the rod string, based on one of the following:

    
    
        the loads in the polished rod measured at the surface (diagnostic analysis)
        estimation of the forces acting on the plunger at the bottom of the well (predictive analysis).
    
    


The calculation of the stresses in the rod string creates complex mechanical and mathematical problems due to the fact that:

    
    
        the elastic rod string is very long and undergoes nonlinear displacements and possibly buckling;
        the rod has complex three-dimensional geometry;
        the rod moves inside the tubing, not only along the tubing but also laterally;
        the rod is in contact with the tubing in unpredictable places along the rod; and
        the rod is submerged in a viscous fluid.
    
    


The mathematical model of the rod string requires detailed and precise information on many parameters to be able to precisely define the sucker rod loads and stresses. It is accordingly necessary to first establish an appropriate mathematical model of the rod string dynamics with correct values of the parameters, and then solve using available and effective mathematical methods. The additional information necessary for the optimization process is the available measured data obtained at the well. Instantaneous measurements of the flow from the well and the production rate, with pattern recognition tools being used for the identification of the bottom-hole diagrams, provide a large amount of the information that can be used. The system software replicates the dynamic behaviour of the system using the measured surface dynamometer card and the measured production rate. The software can automatically select best pumping conditions to reduce the rod loads and determine the profile of the motor speed within the pumping cycle as required for desirable pump motion. It can select the optimal value of the pumping speed, and determine the optimal prime mover speed. All of these changes can be made with minimum expenditure, and operating cost reduction can be achieved since no physical changes to the configuration of the surface unit, rod string or pump are necessary (as long as the unit contains all the required components of the present invention).
Applications
While numerous applications of the within techniques and methods for controlling the prime mover speed and, consequently, the polished rod motion will now be obvious to one skilled in the art, certain applications are seen as being of particular utility within the field of downhole fluid production.
Using the techniques and methods taught herein, for example, the performance and optimum operating parameters of the reciprocating pump located below the fluid level of the well and connected to a reciprocating mechanism on the surface with an elastic sucker rod system can be determined by:

    
    
        a) calculation of the performance of the elastic sucker rod and pump by any appropriate numerical method that would be known to one skilled in the art to accurately identify and calculate all variables in the mechanical system of the sucker rod, downhole pump and surface unit with dynamically changing velocities and accelerations of all the components that possess mass and inertia of such a system, changing mechanical and viscous friction, etc.; and
        b) calculation of the optimized performance and optimized behaviour of the surface unit such as, but not limited to, beam pumping, long stroke or hydraulically actuated unit with a prime mover operating with intentionally prescribed non-constant rotational velocity within a single reciprocating cycle to produce the desired optimized behaviour of the polished rod, rod string and downhole pump.
    
    


The methods and techniques taught herein can also provide the means for improving pumping performance of a sucker rod pumping system by controlling pumping system behaviour which comprise:

    
    
        a) a variable frequency drive and electric prime mover, with or without a braking or regenerative unit, to control reciprocating motion of the surface unit as per optimized parameters within a single cycle of the motion with non-constant rotational velocity, acceleration and torque;
        b) a local control unit that may be a programmable controller or digital processor based computer with single or multitasking operating system, separate or an integral part of the variable frequency drive, to input desired characteristics of reciprocating motion of the surface unit to the variable frequency drive at a minimum rate of 24 times within a single reciprocating cycle;
        c) a local data acquisition unit that may be a programmable controller or digital processor based computer with single or multitasking operating system, separate or an integral part of the variable frequency drive, to record time, angular velocity, acceleration and torque parameters of the variable frequency drive, load and position of the polished rod, tubing pressure and casing pressure, and optional flow rate within a single reciprocating cycle; and
        d) a remote computing station with closed feedback loop via a communication link to optimize and control the local control unit. The remote computing station may be remotely located or located locally and control one or any other number of local control units.
    
    


This system is discussed in further detail below.
The techniques and methods taught herein can also enable automatically changing operating parameters of the sucker rod pumping unit in response to changing conditions in the well or in surface components by:

    
    
        a) establishing real-time always-on communication with the pumping unit local controller via Internet network that may be wired or wireless via radio, wireless cell or satellite communication network;
        b) calculating optimized operating parameters using any appropriate numerical method that would be known to one skilled in the art and programming these into a local well controller alarm or shut-down detection means to detect within a single stroke step if operating conditions of the pumping unit are exceeding predetermined values;
        c) implementing corrective action as programmed into the local control unit, which corrective action may be an alarm condition, immediate shut-down, slow shut down within single cycle or switching to predetermined emergency operating conditions;
        d) initiating communication with a remote computing station immediately or within a predetermined time period;
        e) implementing a corrective action routine into the remote computing station to automatically analyze the new condition of the pumping unit that has exceeded previously calculated best operating conditions;
        f) automatically, or with assistance of personnel, downloading new operating parameters to the local control unit to correct behaviour of the pump in the new conditions; and
        g) automatically, or with assistance of personnel, downloading new operating parameters to the local control unit to change to distribution rate of chemical agents in response to increased friction in the well due to deposit of various substances.
    
    


As a final example of the utility of the present invention, the within techniques and methods can be employed to automatically prevent or remove gas lock condition at the pump, by:

    
    
        a) detecting gas lock condition from forces acting on the plunger during down-stroke motion;
        b) calculating bubble point pressure as occurring during flow of fluid that may be oil with or without water and gas through the narrowest section of the standing valve opening;
        c) calculating optimal motion of the plunger to minimize velocity of the plunger during upstroke motion in order to minimize velocity of the fluid and the pressure drop in the fluid at the standing valve and keep it above bubble point pressure; and
        d) controlling velocity and acceleration of the prime mover within calculated optimal motion to minimize or remove gas lock condition with precise polished rod movement.
    
    


These are only a few examples of how the present invention can be applied to address a number of practical operational situations experienced in the field of downhole fluid production, employing the methods and system taught herein.
System
Referring now in detail to the accompanying drawings, there is illustrated an exemplary embodiment of a system according to the present invention.
Referring to FIG. 1, a typical oil well beam pumping unit consists of many moving parts that will produce significant inertia forces if accelerated or decelerated on top of typical static forces. A horsehead 1 connects the rod system 9 and pump 10 with the walking beam 2 using bridle cables and rod hanger. A pitman arm 3 connects the walking beam 2 to the crank 5 with attached counterweights 6. The crank 5 is attached to a shaft of the gearbox 4 that is powered through a belt system by the prime mover 7.
The rod system 9 and pump 10 are subjected to mechanical friction (due to interaction of the pump 10 with the barrel and the rod 9 with tubing), fluid friction (due to the rod 9 moving in the viscous fluid and viscous fluid moving in the tubing and through the valves of the pump 1), and force clue to hydrostatic pressure and inertia of the fluid. The rod system 9 is an elastic connection between surface components and the downhole pump 10. The elastic behaviour is greatly influenced by the dimensions and material properties of each rod section and by the depth of the well. Due to the elasticity of the rod 9 and cyclic changes in the polished rod force, velocity, and acceleration, the sucker rod 9 is vibrating in longitudinal and transverse directions in the well.
Four measuring means or transducers are mounted on the pumping unit. Load measuring means or a transducer 11, which may be a strain gauge load cell, is connected to the polished rod and provides an output signal that is proportional to the load. A high accuracy, position measuring means, which may be an optical encoder 8, is mounted on the centre bearing and is anchored to the Samson post; it provides accurate position measurement of the walking beam 2 regardless of rotational speed or acceleration. Two pressure transducers are mounted on the wellhead, namely a tubing pressure transducer 12 and a casing pressure transducer 13; they provide an accurate pressure signal to properly evaluate pump behaviour during every cycle.
The beam pumping unit is driven by the prime mover 7, which may be a high efficiency Nema B motor, to reciprocate the polished rod in any required motion pattern. The polished rod is connected through various tapers of the sucker rod 9 with the downhole pump 10. The present invention is directed to controlling the polished rod motion so that the downhole pump 10 is reciprocated with any required stroke length to maximize production within the fatigue load limits of the sucker rod 9. In addition, any desired speed of the downhole pump 10 and behaviour pattern can be controlled to overcome excessive friction, gas lock and other detrimental downhole conditions.
As illustrated in FIG. 1, a position signal 17, a load signal 18, a tubing pressure signal 19 and a casing pressure signal 20 are transmitted to a local control unit 21 that converts, computes and stores this information by means of digital storage that may be, put is not limited to, a hard drive or solid state memory modules. Additional speed and torque signals 16 are transmitted to the control unit 21 from a typical variable frequency drive controller 14 that controls behaviour of the prime mover 7 through voltage, current and frequency of the power supplied to the electric prime mover 7. The prime mover 7 and variable frequency drive controller communicate by means of a signal 15. The variable frequency drive controller 14 may include a dynamic braking resistor and various other components, and may be of any appropriate type commercially available. The local control unit 21 transmits all gathered information via communication unit to a remote computing station 23 that may be a high computing power desktop computer with a multitasking operating system. Various means of communication 22 may be used such as wired radio, Internet, wireless cell network, telephone network or satellite communication. The communication link facilitates a closed loop feedback system between the local control unit 21 and the remote computing station 23. Downhole and surface operating conditions are analyzed and optimized by means of software based on the process summarized in FIGS. 2a and 2b, which includes both predictive and diagnostic analysis. Steps 30 to 44 are set out in FIG. 2a, with subsequent steps 46 to 60 in FIG. 2b. 
FIGS. 3 to 6 provide operational data from a 9,057 feet deep well that was one of four test sites employed for validation of the present invention. A conventional geometry pumping unit (640-365-168) was connected to a 1.75 inch diameter heavy wall rod pump by a steel sucker rod string assembled from five sections of different diameters. Data was obtained from a typical fixed speed and from optimized mode with optimal variable angular velocity of the prime mover. The downhole pump stroke length was verified by measurement of production volume over a 24 hour period. Fluid level measurement data was used to verify calculated forces on the plunger. Long-term data collection in excess of six months was performed to ensure sustainability of performance and to allow for further development of hardware, optimization technique, and software.
FIG. 3 provides a chart illustrating measured prime mover speed for two cases: a constant speed resulting in pumping rate of 6.3 strokes per minute (SPM) and the optimized variable prime mover speed that results in 7.6 SPM.
FIG. 4 provides a chart illustrating measured polished rod linear velocity before and after optimization. It is clear that the optimal speed is not constant at any portion of the stroke, as prescribed by some prior art, and is significantly different from the typical one resulting from a constant prime mover angular velocity.
FIG. 5 provides a chart illustrating measured polished rod and calculated plunger forces vs. displacement during operation of a pump with constant angular velocity and the optimal variable velocity of prime mover. The constant angular velocity corresponding to 6.3 SPM produces the pump stroke of 114 inches as calculated by evaluation software and confirmed by actual fluid flow measurements from the well on the surface. As a result of applying the optimal variable speed to the prime mover, the stroke period has reduced to the equivalent of 7.6 SPM, and the pump stroke length has increased to 143 inches as calculated by the evaluation software and confirmed by the actual fluid flow from the well on the surface. The resulting dramatic increase in production is due both to increase of the pump stroke length (25%) and reduction of the stroke time (20%). There was no increase in the forces acting on any component of the well, and due to utilizing inertia of the rotating weights the electric power demand was decreased by 27%. For those skilled in art it will be obvious that for any typical well, by increasing the constant speed of the prime mover in order to increase the pump stroke rate from 6.3 SPM to 7.6 SPM, a much smaller increase in the pump stroke would be realized, while electric power demand and forces acting on the system would significantly increase.
FIG. 6 provides a chart illustrating measured gearbox torque acting in the gearbox before and after optimization. As gearbox torque was significantly under the maximum rated torque, the objective was to lower the regenerative torque to its minimum in order to lower negative impact on longevity of the gearbox.
The optimal speed, acceleration, and torque of the prime mover, and the safe operating limits, are calculated and transferred together to the local control unit 21. The response of the unit after minimum one full cycle is then transferred via communication unit back and analyzed in the remote computing station 23. If the optimized parameters are satisfied (such as calculated pump stroke length, stroke time, power consumption, loads and stress level in the rod system and surface components, fluid velocity at the standing valve, maximum and minimum motor torque or any other), calculations are not performed anymore unless deterioration of the well performance is detected in the future. Periodically, for every predetermined time interval, the remote unit 23 or local unit 21 will initiate communication to check the status of the pumping unit. The local control unit 21 will provide the variable frequency drive 14 with the calculated rpm, and acceleration for a minimum 24 steps within each cycle, and will monitor behaviour of the pumping unit during each step according to safe operating parameters such as maximum and minimum load on polished rod, motor torque, gearbox torque, polished rod displacement, tubing pressure, casing pressure and stroke time.
If any of the safe operating parameters are outside of the prescribed values, the local unit 21 will initiate corrective action such as slow down or shut down of the unit and an alarm message will be generated and sent to the remote computing station 23 via the closed loop feedback system. Last operating conditions will be transferred to the remote computing station 23 and new optimized operating parameters will be computed and transferred to the local unit 21.
While a particular embodiment of the present invention has been described in the foregoing, it is to be understood that other embodiments are possible within the scope of the invention and are intended to be included herein. It will be clear to any person skilled in the art that modifications of and adjustments to this invention, not shown, are possible without departing from the spirit of the invention as demonstrated through the exemplary embodiment. The invention is therefore to be considered limited solely by the scope of the appended claims.

## Claims

1. A method for controlling a prime mover speed in a pumping system for a well, the prime mover being operable at a variable instantaneous speed and controlled by a controller, the pumping system comprising a downhole pump and a connecting assembly comprising a rod string movable at a variable linear velocity for operably connecting the prime mover and the downhole pump to provide reciprocal motive force to the downhole pump, the method comprising:
varying an instantaneous speed of the prime mover by applying a set of optimal prime mover speed values previously generated for an entire stroke cycle to the controller, wherein the set of optimal prime mover speed values is generated for the entire stroke cycle to satisfy an optimization goal of maximizing a pumping system output production rate, subject to a set of constraints comprising:
minimum and maximum stresses along the rod string over the entire stroke cycle;
an allowable force or torque range of the prime mover; and
a maximum prime mover speed,

such that the instantaneous speed of the prime mover is substantially varied throughout the entire stroke cycle,
wherein the set of optimal prime mover speed values was previously generated by a method comprising:
representing prime mover speed values over the entire stroke cycle using a function Ω[p](x) comprising a mathematical formula defined with coefficient vector p comprising a finite number of coefficients [p1, p2, . . . , pm], and variable x, wherein x denotes either a time value or a stroke position within an interval (0, x0) of the stroke cycle, the stroke cycle comprising an upstroke and a downstroke movement of a polished rod comprised in the rod string; and
determining the set of optimal values of p, such that the function Ω[p](x) satisfies the optimization goal and the set of constraints,
wherein Ω[p](x) comprises a Fourier series, the coefficient vector p comprises Fourier coefficients, and Ω[p](x) is defined as:





  
    
      Ω
      ⁡
      
        [
        p
        ]
      
    
    ⁢
    
      (
      x
      )
    
  
  =
  
    β
    ⁢
    
      
        
          Ω
          _
        
        0
      
      [
      
        1
        +
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            (
            
              
                
                  γ
                  i
                
                ⁢
                
                  cos
                  ⁡
                  
                    (
                    
                      2
                      ⁢
                      
                        
                      
                      ⁢
                      πi
                      ⁢
                      
                        
                      
                      ⁢
                      
                        x
                        /
                        
                          x
                          0
                        
                      
                    
                    )
                  
                
              
              +
              
                
                  λ
                  i
                
                ⁢
                
                  sin
                  ⁡
                  
                    (
                    
                      2
                      ⁢
                      
                        
                      
                      ⁢
                      πi
                      ⁢
                      
                        
                      
                      ⁢
                      
                        x
                        /
                        
                          x
                          0
                        
                      
                    
                    )
                  
                
              
            
            )
          
        
      
      ]
    
  



wherein p comprises the Fourier coefficients [β, γ1, . . . , γN, λ1, . . . , λN] and Ω0 is an operating constant prime mover speed defined for the pumping system, and determining the set of optimal values of the coefficient vector p comprises:
(i) selecting an initial vector p0 of the coefficient vector p, and m vectors Δpi, each vector comprising a prescribed incremental change Δpi of only one coefficient pi (i=1, . . . m);
(ii) calculating, using the model, output values comprising a production rate V[p], a prime mover torque M[p](t) and a stress distribution of the rod string σ[p](z, t) varying with distance z along the length of the rod string and time t in the stroke cycle, the said output values calculated for the prime mover speed varying over the entire stroke cycle according to Ω[p] having a stroke period T[p] and determined at p=p0 and p=p0+Δpi (i=1, . . . m);
(iii) calculating partial derivatives of the functions V[p], M[p](t), σ[p](z, t) and T[p] with respect to parameters pi (i=1, . . . m) using a finite difference method with the incremental values of the said functions calculated in step (ii) above;
(iv) linearizing the functions V[p], M[p](t), σ[p](z, t) and T[p] by approximating the said functions at point p0 using a first order Taylor series expansion and the partial derivatives obtained in step (iii), the linearized functions having arguments consisting of small changes δpi of parameters p;
(v) applying a linear programming method to find vector δp=[δp1, δp2, . . . , δpm,] that satisfies the optimization and the set of constraints;
(vi) replacing the initial vector p0 with p0+δp and repeating steps (iii)-(v) until δp is smaller than a selected threshold;
such that p is defined as p0 when δp is smaller than the selected threshold.

2. The method of claim 1, wherein the set of constraints further comprise at least one of:
a maximum energy consumption of the prime mover;
a maximum linear velocity of at least one point along the rod string; or
a maximum output power of the prime mover.

3. The method of claim 2, wherein the set of constraints further comprises a prime mover speed at a beginning of the stroke cycle of the pumping system matching a prime mover speed at an end of the stroke cycle; and wherein the set of optimal prime mover speed values is generated once for a plurality of consecutive stroke cycles.

4. The method of claim 3, further comprising the step of generating the set of optimal prime mover speed values using a model representing components of the pumping system for predicting a response of the pumping system relative to the optimization goal and the set of constraints for a given instantaneous prime mover speed, said response comprising at least one of the following:
pumping system output production rate;
stresses along the rod string;
a torque or force of the prime mover; or
energy consumption.

5. A method for controlling a prime mover speed in a pumping system for a well, the prime mover being operable at a variable instantaneous speed and controlled by a controller, the pumping system comprising a downhole pump and a connecting assembly comprising a rod string movable at a variable linear velocity for operably connecting the prime mover and the downhole pump to provide reciprocal motive force to the downhole pump, the method comprising:
varying an instantaneous speed of the prime mover by applying a set of optimal prime mover speed values previously generated for an entire stroke cycle to the controller, wherein the set of optimal prime mover speed values is generated for the entire stroke cycle to satisfy an optimization goal of minimizing a pumping system energy consumption for a predefined output production rate, subject to a set of constraints comprising:
minimum and maximum stresses along the rod string over the entire stroke cycle;
an allowable force or torque range of the prime mover; and
a maximum prime mover speed,

such that the instantaneous speed of the prime mover is substantially varied throughout the entire stroke cycle,
wherein the set of optimal prime mover speed values was previously generated by a method comprising:
representing prime mover speed values over the entire stroke cycle using a function Ω[p](x) comprising a mathematical formula defined with coefficient vector p comprising a finite number of coefficients [p1, p2, . . . , pm], and variable x, wherein x denotes either a time value or a stroke position within an interval (0, x0) of the stroke cycle, the stroke cycle comprising an upstroke and a downstroke movement of a polished rod comprised in the rod string; and
determining the set of optimal values of p, such that the function Ω[p](x) satisfies the optimization goal and the set of constraints,
wherein Ω[p](x) comprises a Fourier series, the coefficient vector p comprises Fourier coefficients, and Ω[p](x) is defined as:





  
    
      Ω
      ⁡
      
        [
        p
        ]
      
    
    ⁢
    
      (
      x
      )
    
  
  =
  
    β
    ⁢
    
      
        
          Ω
          _
        
        0
      
      [
      
        1
        +
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            (
            
              
                
                  γ
                  i
                
                ⁢
                
                  cos
                  ⁡
                  
                    (
                    
                      2
                      ⁢
                      
                        
                      
                      ⁢
                      πi
                      ⁢
                      
                        
                      
                      ⁢
                      
                        x
                        /
                        
                          x
                          0
                        
                      
                    
                    )
                  
                
              
              +
              
                
                  λ
                  i
                
                ⁢
                
                  sin
                  ⁡
                  
                    (
                    
                      2
                      ⁢
                      
                        
                      
                      ⁢
                      πi
                      ⁢
                      
                        
                      
                      ⁢
                      
                        x
                        /
                        
                          x
                          0
                        
                      
                    
                    )
                  
                
              
            
            )
          
        
      
      ]
    
  



wherein p comprises the Fourier coefficients [β, γ1, . . . , γN, λ1, . . . , λN] and Ω0 is an operating constant prime mover speed defined for the pumping system, and determining the set of optimal values of the coefficient vector p comprises:
(i) selecting an initial vector p0 of the coefficient vector p, and m vectors Δpi, each vector comprising a prescribed incremental change Δpi of only one coefficient pi (i=1, . . . m);
(ii) calculating, using the model, output values comprising a production rate V[p], a prime mover torque M[p](t) and a stress distribution of the rod string σ[p](z, t) varying with distance z along the length of the rod string and time t in the stroke cycle, the said output values calculated for the prime mover speed varying over the entire stroke cycle according to Ω[p] having a stroke period T[p] and determined at p=p0 and p=p0+Δpi (i=1, . . . m);
(iii) calculating partial derivatives of the functions V[p], M[p](t), σ[p](z, t) and T[p] with respect to parameters pi (i=1, . . . m) using a finite difference method with the incremental values of the said functions calculated in step (ii) above;
(iv) linearizing the functions V[p], M[p](t), σ[p](z, t) and T[p] by approximating the said functions at point p0 using a first order Taylor series expansion and the partial derivatives obtained in step (iii), the linearized functions having arguments consisting of small changes δpi of parameters p;
(v) applying a linear programming method to find vector δp=[δp1, δp2, . . . , δpm,] that satisfies the optimization and the set of constraints;
(vi) replacing the initial vector p0 with p0+δp and repeating steps (iii)-(v) until δp is smaller than a selected threshold;
such that p is defined as p0 when δp is smaller than the selected threshold.

6. The method of claim 5, wherein the set of constraints further comprise at least one of:
a maximum linear velocity of at least one point along the rod string; or
a maximum output power of the prime mover.

7. The method of claim 6, wherein the set of constraints further comprises a prime mover speed at a beginning of the stroke cycle of the pumping system matching a prime mover speed at an end of the stroke cycle; and wherein the set of optimal prime mover speed values is generated once for a plurality of consecutive stroke cycles.

8. The method of claim 7, further comprising the step of generating the set of optimal prime mover speed values using a model representing components of the pumping system for predicting a response of the pumping system relative to the optimization goal and the set of constraints for a given instantaneous prime mover speed, said response comprising at least one of the following:
pumping system output production rate;
stresses along the rod string;
a torque or force of the prime mover; or
energy consumption.

9. A method for controlling a prime mover speed in a pumping system for a well, the prime mover being operable at a variable instantaneous speed and controlled by a controller, the pumping system comprising a downhole pump and connecting assembly comprising a rod string movable at a variable linear velocity for operably connecting the prime mover and the downhole pump to provide reciprocal motive force to the downhole pump, the method comprising:
varying an instantaneous speed of the prime mover by applying a set of optimal prime mover speed values previously generated for an entire stroke cycle to the controller, wherein the set of optimal prime mover speed values is generated for the entire stroke cycle to satisfy an optimization goal of minimizing stresses along the rod string for a predefined output production rate, subject to a set of constraints comprising:
an allowable force or torque range of the prime mover; and
a maximum prime mover speed,

such that the instantaneous speed of the prime mover is substantially varied throughout the entire stroke cycle,
wherein the set of optimal prime mover speed values was previously generated by a method comprising:
representing prime mover speed values over the entire stroke cycle using a function Ω[p](x) comprising a mathematical formula defined with coefficient vector p comprising a finite number of coefficients [p1, p2, . . . , pm] and variable x, wherein x denotes either a time value or a stroke position within an interval (0, x0) of the stroke cycle, the stroke cycle comprising an upstroke and a downstroke movement of a polished rod comprised in the rod string; and
determining the set of optimal values of p, such that the function Ω[p](x) satisfies the optimization goal and the set of constraints,
wherein Ω[p](x) comprises a Fourier series, the coefficient vector p comprises Fourier coefficients, and Ω[p](x) is defined as:





  
    
      Ω
      ⁡
      
        [
        p
        ]
      
    
    ⁢
    
      (
      x
      )
    
  
  =
  
    β
    ⁢
    
      
        
          Ω
          _
        
        0
      
      [
      
        1
        +
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            (
            
              
                
                  γ
                  i
                
                ⁢
                
                  cos
                  ⁡
                  
                    (
                    
                      2
                      ⁢
                      
                        
                      
                      ⁢
                      πi
                      ⁢
                      
                        
                      
                      ⁢
                      
                        x
                        /
                        
                          x
                          0
                        
                      
                    
                    )
                  
                
              
              +
              
                
                  λ
                  i
                
                ⁢
                
                  sin
                  ⁡
                  
                    (
                    
                      2
                      ⁢
                      
                        
                      
                      ⁢
                      πi
                      ⁢
                      
                        
                      
                      ⁢
                      
                        x
                        /
                        
                          x
                          0
                        
                      
                    
                    )
                  
                
              
            
            )
          
        
      
      ]
    
  



wherein p comprises the Fourier coefficients [β, γ1, . . . , γN, λ1, . . . , λN] and Ω0 is an operating constant prime mover speed defined for the pumping system, and determining the set of optimal values of the coefficient vector p comprises:
(i) selecting an initial vector p0 of the coefficient vector p, and m vectors Δpi, each vector comprising a prescribed incremental change Δpi of only one coefficient pi (i=1, . . . m);
(ii) calculating, using the model, output values comprising a production rate V[p], a prime mover torque M[p](t) and a stress distribution of the rod string σ[p](z, t) varying with distance z along the length of the rod string and time t in the stroke cycle, the said output values calculated for the prime mover speed varying over the entire stroke cycle according to Ω[p] having a stroke period T[p] and determined at p=p0 and p=p0+Δpi (i=1, . . . m);
(iii) calculating partial derivatives of the functions V[p], M[p](t), σ[p](z, t) and T[p] with respect to parameters pi (i=1, . . . m) using a finite difference method with the incremental values of the said functions calculated in step (ii) above;
(iv) linearizing the functions V[p], M[p](t), σ[p](z, t) and T[p] by approximating the said functions at point p0 using a first order Taylor series expansion and the partial derivatives obtained in step (iii), the linearized functions having arguments consisting of small changes δpi of parameters p;
(v) applying a linear programming method to find vector δp=[δp1, δp2, . . . , δpm,] that satisfies the optimization and the set of constraints;
(vi) replacing the initial vector p0 with p0+δp and repeating steps (iii)-(v) until δp is smaller than a selected threshold;
such that p is defined as p0 when δp is smaller than the selected threshold.

10. The method of claim 9, wherein the set of constraints further comprise at least one of:
a maximum energy consumption of the prime mover;
a maximum linear velocity of at least one point along the rod string; or
a maximum output power of the prime mover.

11. The method of claim 10, wherein the set of constraints further comprises a prime mover speed at a beginning of the stroke cycle of the pumping system matching a prime mover speed at an end of the stroke cycle; and wherein the set of optimal prime mover speed values is generated once for a plurality of consecutive stroke cycles.

12. The method of claim 11, further comprising the step of generating the set of optimal prime mover speed values using a model representing components of the pumping system for predicting a response of the pumping system relative to the optimization goal and the set of constraints for a given instantaneous prime mover speed, said response comprising at least one of the following:
pumping system output production rate;
stresses along the rod string;
a torque or force of the prime mover; or
energy consumption.

13. The method of any one of claim 1, 5, or 9, wherein the generation of the set of optimal prime mover speed values further comprises calculating corresponding values of Ω[p](x) over an entire stroke cycle for a set of either predetermined time instances or predetermined stroke positions, using the set of optimal values of the coefficient vector p.

14. The method of any one of claim 1, 5, or 9, wherein the rod string comprises a polished rod, the generation of the set of optimal prime mover speed values comprises representing polished rod velocity values over the entire stroke cycle, and determining a set of optimal values for the polished rod velocity in satisfaction of the set of constraints.

15. The method of claim 14, wherein the rod string further comprises a sucker rod connected to the polished rod and to a plunger of the downhole pump, and at least a portion of the rod string operates inside a tubing filled with a fluid, and wherein the model further comprises at least one of:
a force acting on the plunger determined from at least a hydrostatic pressure from a fluid surrounding the plunger;
mechanical properties of the rod string;
characteristics of interactions between the rod string, the tubing, and the fluid filling the tubing; or
rod string displacements and velocities during the entire stroke cycle in response to a given polished rod movement.

16. The method of claim 14, wherein the connecting assembly further comprises a pumpjack and the model further comprises the prime mover force or torque being determined from at least one of:
a force in the polished rod;
inertial properties and distribution of masses in the pumpjack;
inertial properties of the prime mover;
inertial properties of a speed reduction mechanism in the pumpjack; or
an acceleration of the prime mover.

17. The method of any one of claim 1, 5, or 9, wherein the set of optimal prime mover speed values is provided as a set of predetermined time values and corresponding optimal prime mover speed values, and varying the instantaneous speed of the prime mover further comprises applying the corresponding optimal prime mover speed value to the controller at each said time value within the stroke cycle.

18. The method of any one of claim 1, 5, or 9, wherein the set of optimal prime mover speed values is provided as a set of predetermined stroke positions and corresponding optimal prime mover speed values, and varying the instantaneous speed of the prime mover further comprises applying the corresponding optimal prime mover speed value to the controller at each said stroke position within the stroke cycle.

19. The method of any one of claim 1, 5, or 9, wherein the stroke position comprises either a polished rod position or a position of another moving component equivalent to a position of the polished rod within the entire stroke cycle.

20. The method of any one of claim 1, 5, or 9, further comprising, after varying the instantaneous speed of the prime mover by applying the set of optimal prime mover speed values for the entire stroke cycle to the controller:
measuring physical conditions of the pumping system during operation;
adjusting parameters of the model of the pumping system based on a comparison of said model with the measured physical conditions;
generating a new set of optimal prime mover speed values using the model of the pumping system with the adjusted parameters; and
applying the new set of optimal prime mover speed values to the controller.

21. The method of claim 20, wherein the physical conditions comprise a stroke position and at least one of:
a polished rod load;
the prime mover torque or force; or
prime mover power usage.

22. The method of claim 21, wherein at least a portion of the rod string operates inside a tubing filled with a fluid and wherein the physical conditions further comprise at least one of:
pressure in the tubing;
pressure in a well casing; or
the output production rate.

23. Code stored on a non-transitory computer-readable medium which, when executed by at least one processor of a computing device, causes the computing device to carry out the method of any one of claim 1, 5, or 9.