This disclosure relates generally to controllers and, more particularly, to methods and apparatus for calibrating controllers for use with wells.
Pumping units are used to operate downhole pumps that pump oil from an oil well. In some instances, data is collected to generate dynamometer cards that assist in determining the performance of the pumping units and its associated components. To ensure accuracy of the generated dynamometer cards, the collected data must also be accurate.
The figures are not to scale. Wherever possible, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts.
The examples disclosed herein relate to example rod pump controllers and related methods to precisely identify a position of a polished rod of a pumping unit throughout a stroke of a corresponding pump. The data obtained via the examples disclosed herein can be used to determine the velocity of the polished rod, the acceleration of the polished rod and/or to generate a rod pump dynamometer card, a surface dynamometer card, a pump dynamometer card, etc.
To enable the position of a polished rod to be accurately determined during normal and/or continuous operation, in some disclosed examples, an example calibration process is performed prior to initiating the normal and/or continuous operation of the pumping unit. In some examples, the calibration process includes monitoring a position of the polished rod, a position of a crank arm and an angular position of a shaft of a motor used to move the polished rod. Based on this monitoring, a relationship and/or correlation between the positions is established. Once the pumping unit is calibrated, a relatively accurate position of the polished rod throughout its stroke and/or cycle may be determined by monitoring the rotations of the motor and/or shaft and crank arm in combination with the calibration data.
In contrast to some known examples, the examples disclosed herein improve the accuracy of determining the polished rod position while also reducing the amount of time and effort associated with configuration. Specifically, some known rod pump controllers involve a time consuming configuration for which a technician has to accurately determine a pump stroke offset value that may be different for each pumping unit. The pump stroke offset value may be defined between a position reset signal and an indication that the polished rod has reached the top or bottom of a stroke. The position reset signal may indicate that the crank arm has reached a specific location.
The position of the polished rod throughout its stroke in combination with other parameters (e.g., polished rod load, polished rod tension) may be used to generate corresponding dynamometer card(s). As a result, inaccuracies in the pump stroke offset value may result in errors or inaccuracies in the generated dynamometer card(s). In contrast to known examples that require technicians to determine the pump stroke offset value and the dimensions of each pumping unit assembly, the examples disclosed herein automatically determine pump stoke offset values and incorporate these values into the process of accurately determining polished rod position without technician involvement.
The pumping unit 100 includes a motor or engine 114 that drives a belt and sheave system 116 to rotate a gear box 118 and, in turn, rotate a crank arm 120 and a counterweight 121. A pitman 122 is coupled between the crank arm 120 and the walking beam 108 such that rotation of the crank arm 120 moves the pitman 122 and the walking beam 108. As the walking beam 108 pivots about a pivot point and/or saddle bearing 124, the walking beam 108 moves a horse head 126 and the polished rod 110.
To detect when the crank arm 120 completes a cycle and/or passes a particular angular position, a first sensor 128 is coupled adjacent to the crank arm 120. To detect and/or monitor a number of revolutions of the motor 114, a second sensor 130 is coupled adjacent the motor 114. In the example of
Data obtained from the first sensor 128 and/or the second sensor 130 may be used to determine a position of the crank arm 120 versus time for each stroke of the pumping unit 100. Additionally or alternatively, based on the measurements of the pumping unit 100, a pumping unit specific four-bar-linkage calculation can be performed that relates the position of the crank arm 120 to the position of the polished rod 110 throughout the stroke of the pumping unit 100. The measurements of the pumping unit 100 are specific to the pumping unit 100. Thus, a lengthy process of hand measuring components of the pumping unit 100 may be undertaken for the four-bar-linkage calculation. However, hand measuring the components of the pumping unit 100 is an expensive undertaking that is prone to error.
In operation, the polished rod 110 reaches its extreme positions (e.g., a top position, a bottom position) at different angles of the crank arm 120 depending on the characteristics of the pumping unit 100. To more accurately define the relationship of the crank arm 120 and polished rod 110 in the four-bar-linkage equation, an offset is determined between a particular angular position of the crank arm 120 and a corresponding position of the polished rod 110. The offset is determined based on an angle of the crank arm 120 when the first sensor 128 senses the crank arm 120 and a corresponding position of the polished rod 110. However, because this offset is determined manually and the sample rate of the rod pump controller 129 is approximately 20-times per second, accurately defining the offset is difficult and prone to error.
The four-bar-linkage calculation used to relate the position of the crank arm 120 to the position of the polished rod 110 throughout the stroke of the pumping unit 100 assumes that the couplings (e.g., the belt and sheeve system 116, the gear box 118, etc.) between the motor 114 and the crank arm 120 is rigid and that the pitman 122, the walking beam 108 and the bridle 112 are rigid throughout the stroke of the pumping unit 100. However, this is not the case. Instead, the pitman 122, the walking beam 108 and the bridle 112 vary in length, shape, etc. based on the loads that are imparted thereon. Additionally, flexibility in the belt and sheeve system 116, cyclical loading of the polished rod 110 and the impact on the counterweights 121, 126 cyclically loads the gear box 118, which causes deviations in the relationship between the revolutions of the motor 114, the position of the crank arm 120 and, in turn, the determined position of the polished rod 110. While adjusting the counterweights 121 and/or 126 may minimize the cyclical loading, the deviation in the relationship between the revolutions of the motor 114 and the position of the crank arm 120 cannot be eliminated. Thus, because the four-bar-linkage calculation fails to take into account the non-rigid nature of components of the pumping unit 100, some inaccuracies exist in the corresponding polished rod 110 position determination.
In some examples, to calibrate the rod pump controller 129 of
In some examples, the processor 208 generates a reference and/or calibration table 300 (
Once the calibration process has completed and the corresponding reference table 300 has been generated, the third sensor 200 can be removed from the pumping unit 100 and/or the polished rod 110 and the normal operation and/or continuous operation of the pumping unit 100 can begin. In some examples, during normal operation, based on the crank pulse count obtained from the first sensor 128 and the motor pulse count obtained from the second sensor 130, the processor 208 can use the reference table 300 to determine and/or correlate the particular pulse count within a cycle of the crank arm 120 to the position of the polished rod 110. In some examples, Equation 1 may be used to determine and/or interpolate the position of the polished rod 110 if, for example, a particular pulse count of the motor 114 is not listed in the reference table. Referring to Equation 1, i corresponds to the index of the identified point in the calibration table where the table pulse count is greater than or equal to the motor pulse count, Position relates to the position of the polished rod 110, pos relates to the position entry in the reference table, ΔPulses relates to the number of pulses of the motor 114 measured by the second sensor 130 since a crank pulse indication was received from the first sensor 128 and pulses relates to the pulse count entry of the motor 114 in the calibration table.
As the position of the polished rod 110 is determined, the determined position data (e.g., position versus time data) is saved in the memory 206 and/or used by the processor 208 to generate a dynamometer card such as, for example, a rod pump dynamometer card, a surface dynamometer card, a pump dynamometer card, etc.
Reference number 406 relates to when the polished rod 110 begins its upward motion to begin to lift a column of fluid. Between reference numbers 406 and 408, the increase in tension on the polished rod 110 as the rods are stretched and the fluid column is lifted is shown. Reference number 408 relates to when the pumping unit 100 is supporting the weight of a sucker rod string and the weight of the accelerating fluid column. Between reference numbers 408 and 410, force waves arrive at the surface as the upstroke continues, which causes the load on the polished rod 210 to fluctuate. Reference number 410 relates to when the polished rod 110 has reached its maximum upward displacement. Between reference numbers 410 and 412, the fluid load is transferred from the sucker rod string to a tubing string, which causes the tension in the polished rod 110 to decrease. Reference number 412 relates to when the load has substantially and/or completely transferred to the tubing string. Between reference numbers 412 and 406, force waves reflect to the surface as the downstroke continues, which causes irregular loading on the polished rod 110 until the polished rod 110 reaches its lowest point and begins another stroke.
While an example manner of implementing the apparatus 205 is illustrated in
Flowcharts representative of example methods for implementing the apparatus 205 of
As mentioned above, the example methods of
The method of
If the pulse count of the crank arm 120 is equal to zero, based on data from the first sensor 128, the processor 208 again initializes the timer 210 (block 602). However, if the pulse count difference is greater than zero, the calibration process is initiated (block 612). At block 614, the second sensor 130 determines a first pulse count of the motor 114 (block 614). In other examples, immediately after the calibration process is initiated, the pulse count of the motor is not obtained. At block 616, based on data from the third sensor 200, the processor 208 determines a first position of the polished rod 110 (block 616). The processor 208 then associates a value of zero pulses with the first position of the polished rod 110 and stores this data in the memory 206 (block 618). For example, the pulse count may be stored in a first entry 308 of the second column 304 of the reference table 300 and the first position of the polished rod 110 may be stored in a first entry 310 of the third column 306 of the reference table 300.
At block 620, the processor 208 again initiates and/or initializes the timer 210 (block 620). At block 622, the processor 208 determines, via the timer 210, the amount of time elapsed since the timer 210 was initialized (block 622). At block 624, the processor 208 determines if the elapsed time is at or after a predetermined time such as, for example, fifty milliseconds (block 624). If the processor 208 determines that the elapsed time is at or after the predetermined time, based on data from the second sensor 130, the processor 208 determines a second and/or next pulse count of the motor 114 (block 626).
At block 628, the processor 208 determines the difference between the second and/or next pulse count and the first pulse count (block 628). At block 630, based on data from the third sensor 200, the processor 208 determines a second and/or next position of the polished rod 110 (block 630). At block 632, the processor 208 associates the difference between the first and second pulse counts with the second position and/or next position of the polished rod 110 and stores the data in the memory 206. For example, the pulse count difference may be stored in a second entry 312 of the second column 304 of the reference table 300 and the second position of the polished rod 110 may be stored in a second entry 314 of the third column 306 of the reference table 300.
At block 634, based on data from the first sensor 128, the processor 208 determines the pulse count of the crank arm 120 (block 634). At block 636, the processor 208 determines if the difference between the current pulse count of the crank arm 120 and the initial pulse count of the crank arm 120 is greater than one (block 636). In some examples, the pulse count of the crank arm 120 changes if the crank arm 120 has completed a cycle. At block 638, the collected data, the generated reference table 300 and/or the processed data are stored in the memory 206 (block 638). The generated reference table 300 can be used in combination with data from the first and/or second sensors 128, 130 to determine the position of the polished rod 120 when the pumping unit 100 operates continuously.
The operations of
Based on data from the first sensor 128, the processor 208 determines the pulse count of the crank arm 120 (block 710). At block 712, based on data from the first sensor 128, the processor 208 determines if the difference between current pulse count of the crank arm 120 and the initial pulse count of the crank arm 120 is greater than zero (block 712). In some examples, the pulse count of the crank arm 120 changes once a cycle of the crank arm 120 has completed.
If the difference is greater than zero, the processor 208 sets the current pulse count to the first pulse count (block 714). The processor 208 may also set the initial pulse count of the crank arm 120 to the current pulse count of the crank arm 120 (block 715). At block 716, the processor 208 determines the difference between the current motor pulse count and the first pulse count (block 716). At block 718, the processor 208 references the reference table 300 to identify an entry in the reference table 300 that corresponds to the difference in the motor counts (block 718). For example, if the difference in the pulse counts is zero, the corresponding entry in the reference table 300 corresponds to entry 308.
At block 720, the processor 208 uses the reference table 300 and/or Equation 1 to determine a corresponding position of the polished rod 110 (block 720). For example, if the difference in the pulse counts is zero, the corresponding entry for the position of the polished rod 110 in the reference table 300 corresponds to entry 310. In some examples, Equation 1 may be used to determine and/or interpolate the position of the polished rod 110 if, for example, a particular pulse count of the motor 114 is not listed in the reference table 300. At block 722, the data that has been obtained and/or determined is stored in the memory 206 (block 722). The stored data can be used by the processor 208 to determine the velocity of the polished rod 110, the acceleration of the polished rod 110 and/or to generate a rod pump dynamometer card, a surface dynamometer card, a pump dynamometer card, etc.
The processor platform 800 of the illustrated example includes a processor 812. The processor 812 of the illustrated example is hardware. For example, the processor 812 can be implemented by one or more integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer.
The processor 812 of the illustrated example includes a local memory 813 (e.g., a cache). The processor 812 of the illustrated example is in communication with a main memory including a volatile memory 814 and a non-volatile memory 816 via a bus 818. The volatile memory 814 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory 816 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 814, 816 is controlled by a memory controller.
The processor platform 800 of the illustrated example also includes an interface circuit 820. The interface circuit 820 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface.
In the illustrated example, one or more input devices 822 are connected to the interface circuit 820. The input device(s) 822 permit(s) a user to enter data and commands into the processor 1012. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a keyboard, a button, a mouse, a touchscreen, a track-pad and/or a trackball.
One or more output devices 824 are also connected to the interface circuit 820 of the illustrated example. The output devices 824 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, a light emitting diode (LED). The interface circuit 820 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip or a graphics driver processor.
The interface circuit 820 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 826 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.).
The processor platform 800 of the illustrated example also includes one or more mass storage devices 828 for storing software and/or data. Examples of such mass storage devices 828 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, RAID systems, and digital versatile disk (DVD) drives.
Coded instructions 832 to implement the methods of
From the foregoing, it will be appreciated that the above disclosed methods, apparatus and articles of manufacture result in a more accurate determination of the position of the polished rod during continuous operation. Additionally or alternatively, the first, second and/or third sensors automatically accurately determine the pump stroke offset value between the position of the crank arm and the polished rod during the calibration processes, thereby resulting in a more accurate determination of the position of the polished rod during continuous operation. Additionally or alternatively, to calibrate a rod pump controller using the examples disclosed herein, no hand-measuring of the pumping unit is needed. Thus, calibrating a rod pump controller using the examples disclosed herein requires less time and is less expensive than some known methods.
As set forth herein, an example method includes moving a polished rod of a pumping unit through a first cycle of the pumping unit using a motor and determining first pulse count values of the motor through the first cycle using a first sensor at first times, the first times being substantially equally spaced. The method also includes determining first position values of the polished rod through the first cycle using a second sensor at the first times and associating the first pulse count values with respective ones of the first position values to calibrate a processor of the pumping unit.
In some examples, the method also includes generating a reference table using the first pulse count values and the first position values obtained at the first times to show a correlation between the first pulse count values and the first position values. In some examples, the method also includes removing the second sensor and continuously operating the pumping unit. In some examples, the method also includes determining second position values of the polished rod versus time while the pumping unit is continuously operating using the reference table in combination with data from the first sensor. In some examples, the data includes determining second pulse count values of the motor through a second cycle using the first sensor at second times.
In some examples, the method also includes determining a velocity of the polished rod versus time based on the determined second position values of the polished rod versus time. In some examples, the method also includes determining an acceleration of the polished rod versus time based on the determined second position values of the polished rod versus time. In some examples, the method also includes generating a dynamometer card based on the determined second position values of the polished rod versus time. In some examples, the dynamometer card includes a surface dynamometer card. In some examples, the dynamometer card includes a pump dynamometer card.
In some examples, determining the first pulse count values comprises detecting a target on the motor using the first sensor. In some examples, a third sensor monitors a completion of the first cycle.
An example method includes calibrating a processor of a pumping unit to generate calibration data by determining a correlation between pulse count values of a motor using a first sensor and a position of a polished rod using a second sensor. The method includes removing the second sensor from the pumping unit, moving the polished rod of the pumping unit using the motor and monitoring a position of a crank arm to determine when a cycle of the crank arm has completed. The method includes monitoring a second pulse of the motor through the cycle using a first sensor and determining a position of the polished rod versus time based on the monitoring of the second pulse count, and a comparison to the calibration data.
In some examples, the method also includes determining a velocity of the polished rod versus time based on the determined position of the polished rod versus time. In some examples, the method also includes determining an acceleration of the polished rod versus time based on the determined position of the polished rod versus time. In some examples, the method also includes generating a dynamometer card based on the determined position of the polished rod versus time. In some examples, the dynamometer card comprises a surface dynamometer card. In some examples, the dynamometer card includes a pump dynamometer card. In some examples, determining the pulse count values comprises detecting a target on the motor using the first sensor.
An example apparatus includes a housing and a processor positioned in the housing. The processor is to receive first pulse count values of a motor of a pumping unit at first times through a first cycle of the pumping unit. The first times are substantially incrementally spaced. The processor is to receive first position values of a polished rod of the pumping unit through the first cycle, the processor to correlate the first pulse counts and the first positions to calibrate the pumping unit. In some examples, the apparatus comprises a rod-pump controller.
Although certain example methods, apparatus and articles of manufacture have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.
Number | Name | Date | Kind |
---|---|---|---|
4483188 | McTamaney | Nov 1984 | A |
4490094 | Gibbs | Dec 1984 | A |
4541274 | Purcupile | Sep 1985 | A |
5291777 | Chang et al. | Mar 1994 | A |
5362206 | Westerman et al. | Nov 1994 | A |
5464058 | McCoy et al. | Nov 1995 | A |
20130127390 | DaCunha et al. | May 2013 | A1 |
Entry |
---|
Patent Cooperation Treaty, “International Search Report,” issued in connection with PCT Application No. PCT/US2015/020322, mailed on Jul. 31, 2015, 6 pages. |
Patent Cooperation Treaty, “Written Opinion,” issued in connection with PCT Application No. PCT/US2015/020322, mailed on Jul. 31, 2015, 8 pages. |
Guo et al., “The Indicator Diagram Collection Based on Beam Pumping Unit Motor Effective Power Measurement,” Mar. 28, 2013, International Petroleum Technology Conference, retrieved on Jul. 21, 2015, 24 pages. |
International Searching Authority, “International Preliminary Report on Patentability,” issued in connection with PCT Patent Application No. PCT/US2015/020322, issued on Sep. 14, 2016, 8 pages. |
Number | Date | Country | |
---|---|---|---|
20150260033 A1 | Sep 2015 | US |