This disclosure relates generally to rod pump controllers and, more particularly, to methods and apparatus for pairing rod pump controller position and load values.
Pumping units are used to operate downhole pumps that pump oil from an oil well. In some instances, a rod pump controller collects data during operation of a pumping unit to generate dynamometer cards that assist in determining the performance of the pumping units and its associated components.
An example method disclosed herein includes determining, via a rod pump controller, a first position value of a polished rod of a pumping unit, assigning a first time value to the determined first position value, receiving first load values of the polished rod, assigning second time values to respective ones of the first load values, adjusting each of the second time values to respective third time values based on a wireless communication delay value, and determining a second load value associated with the first position value at the first time value based on the first load values and the third time values.
An example rod pump controller includes a first processor to determine, via a rod pump controller, a first position value of a polished rod of a pumping unit; assign a first time value to the first position value; receive first load values of the polished rod; assign second time values to respective ones of the first load values; adjust each of the second time values to respective third time values based on a wireless communication delay value; and determine a second load value associated with the first position value at the first time value based on the first load values and the third time values.
An example tangible computer-readable medium has instructions that, when executed, cause a machine to: determine, via a rod pump controller, a first position value of a polished rod of a pumping unit; assign a first time value to the first position value; receive first load values of the polished rod; assign second time values to respective ones of the first load values; adjust each of the second time values to third time values based on a wireless communication delay value; and determine a second load values associated with the first position value at the first time value based on the first load values and the third time values.
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.
Pumping units or reciprocating rod pump systems often employ diagnostic devices or dynamometer cards to determine or analyze operational characteristics. A pump dynamometer card provides position versus time data, load versus time data, and load versus position data determined by collecting data associated with the pumping unit during operation and/or employing a mathematical model or wave equation. For increased accuracy of pump dynamometer cards, polished rod load values and polished rod position values are measured at relatively high frequency (e.g., greater than 20 Hz). Additionally, to ensure accuracy of the generated dynamometer cards, a particular measured load (e.g., a force) imparted to a polished rod should correlate or be paired (e.g., synchronized) with a measured stroke position of the polished rod. Failing to correlate or pair a measured load with a stroke position of the polished rod at which the load was measured may lead to inaccurate data and, thus, inaccurate dynamometer cards. Thus, synchronizing the load and position values of the polished rod significantly increases accuracy of a pump dynamometer card.
Some pumping units employ a load cell mounted to a polished rod to measure a load of the polished rod and a position sensor to determine a position of the polished rod. The load cell and/or position sensor are often coupled to a rod pump controller via a wired connection using a data transfer cable. As a result of the wired connection, the pump rod controller receives a measured load value substantially simultaneously with detection of a polished rod position corresponding to the measured load value. As a result, a first polished rod position value at a first sampling time and a first polished rod load value at the first sampling time are properly paired because there is effectively no time lag associated with the wired connection. Further, with a wired connection, the rod pump controller determines the sampling frequency of the load values and the position values using a single timer, thereby eliminating concerns of timer drift. However, the wired connection or cable often becomes damaged because the cable of the wired connection is subjected to repeated motion that may cause the cable to kink. As a result, polished rod load cells coupled to a rod pump controller via a wired connection often require increased maintenance.
To reduce maintenance associated with a wired connection between the load cell and the pump rod controller, some known pumping units employ a wireless communication link to transmit the load values measured by the load cell to the pump rod controller. However, wireless transmission of a load cell signal introduces time delays (e.g., wireless communication delay and timer drift). For example, a wireless communication often includes a wireless communication delay between a time when a signal is transmitted by the wireless communication link and a time when the signal is received by the rod pump controller. As a result, a first polished rod load value at a first sampling time is received by the rod pump controller at a time that is offset relative to a time that the polished rod position value is measured or determined. Additionally, in some examples, a sampling frequency to obtain polished rod position values is controlled by a first timer and a sampling frequency to obtain polished rod load values is controlled by a second timer. While the first and second timers may initially be synchronized, drift of the first timer is often different than drift of the second timer causing the sampling frequency of the first timer to be different than the sampling frequency of the second timer. The drift may cause the samples obtained to be more offset (e.g., variable offset compared to a constant offset) than they would otherwise be due to the wireless communication delay between the wireless communication link and the rod pump controller. Thus, drift of the timers may cause a variable offset that may be difficult to determine when pairing polished rod position values with the polished rod load values.
As a result, a load cell signal provided by the load cell when the polished rod is at a particular stroke position may not correspond to the polished rod stroke position determined by the rod pump controller. In other words, the rod pump controller may receive or determine the polished rod position value at a first time and the rod pump controller may receive the measured load value via the wireless communication link corresponding to the polished rod position at a second time different than the first time. As a result, the measured load values are not synchronized or paired with the proper polished rod position values. As noted above, failure to properly pair measured load values with the corresponding polished rod position value causes inaccuracies when generating a pump dynamometer card. To reduce delay between the load cell signals and the position signals corresponding to the load signals, some example apparatus digitize an analog load cell signal (e.g., a millivolt level signal), and transmit the digital signal to a receiver of the pump rod controller. The receiving may convert the digital signal back to an analog signal. However, such approach may lead to inaccuracies due to, for example, gain (e.g., power gain).
The methods and apparatus disclosed herein identify or determine positions of a polished rod throughout a stroke of a pumping unit and correlate and/or determine corresponding loads imparted to the polished rod at the polished rod positions. In other words, the example methods and apparatus disclosed herein synchronize and/or pair determined polished rod position values with the proper corresponding or respective ones of the measured load values imparted to the polished rod at the polished rod positions. Specifically, the example methods and apparatus disclosed herein account for time delays between a wirelessly transmitted load signal (e.g., representative of a force imparted to a polished rod) and a corresponding position signal (e.g., representative of the position of the polished rod when the load on the polished rod is measured). Thus, the example methods and apparatus disclosed herein synchronize and/or pair load values of a polished rod and position values of the polished rod. Without compensating for a transmission delay as disclosed herein for a given position of a polished rod, a measured position value of the polished rod may not be accurately associated with the measured load.
To synchronize and/or pair load values and position values, the example methods and apparatus disclosed herein obtain position values and load values of a polished rod at a similar sampling frequency (e.g., 20 Hz). For example, a position sensor performs position measurements of the polished rod at a sampling frequency that is similar to a sampling frequency at which a load sensor or cell obtains the load values of the polished rod. To provide similar sampling frequency, the example methods and apparatus disclosed herein employ a first timer associated with the position sensor and a second timer associated with the load sensor. To significantly reduce timer drift associated with the timers, the example methods and apparatus disclosed herein periodically (e.g., approximately every 100 milliseconds) synchronize the timers. Additionally, the example methods and apparatus disclosed herein estimate an average time delay induced by a wireless communication link (e.g., a radio transmission system).
During operation, an example rod pump controller determines and/or receives position versus time measurements of the polished rod and load versus time measurements. The rod pump controller biases or modifies the load versus time measurements by the estimated average time delay induced by the wireless communication link. When the adjusted time values of the received load values do not correspond to the time values of the received position values, the example methods and apparatus disclosed herein determine the load values associated with the position versus time values. Alternatively, the example methods and apparatus disclosed herein determine the position values associated with the load versus the biased time values.
By accounting for wireless transmission delay and timer drift, the example methods and apparatus disclosed herein mathematically determine or pair the load measurements and the position measurements based on the received load values versus adjust time and the position values versus time. Some example methods and apparatus disclosed herein employ interpolation to associate a measured load on the polished rod with a position of the polished rod. For example, an example rod pump controller disclosed herein mathematically determines load values corresponding to respective position values of a polished rod that are determined or received by a controller of a pumping unit. In some examples, an example rod pump controller disclosed herein mathematically determines position values corresponding to respective load values of a polished rod that are received by the rod pump controller.
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. Data obtained from the first sensor 128 and/or the second sensor 130 may be used to determine (e.g., measure or infer) a position of the polished rod 110 throughout a stroke of the pumping unit 100.
To measure or detect a load (e.g., force) imparted to the polished rod 110 during operation, the example pumping unit 100 employs a load measurement assembly 132. The load measurement assembly 132 includes a load sensor 134 (e.g., a load cell) and a wireless communication apparatus 136 (e.g., coupled via a cable 164). The load cell 134 is positioned or coupled to the polished rod 110 and the wireless communication apparatus 136 communicates the loads measured by the load sensor 134 to a rod pump controller 138. In the illustrated example, communications between the rod pump controller 138 and the wireless communication apparatus 136 may be accomplished via, for example, a radio frequency. For example, transceivers 156 and 146 of the respective rod pump controller 138 and the wireless communication apparatus 136 enable communication between the rod pump controller 138 and the wireless communication apparatus 136. For example, communication between the wireless communication apparatus 136 and the rod pump controller 138 may be established via a 2-way, high bandwidth (e.g., 57,600 BAUD or higher) wireless network or communication link. In some examples, communication between the wireless communication apparatus 136 and the rod pump controller 138 may be established via a one-way, high bandwidth wireless network or communication link when, for example, the wireless communication apparatus 136 includes a master timer 152 and the rod pump controller 138 includes a slave timer 142.
The wireless communication apparatus 136 of the illustrated example includes a processor 140, the slave timer 142, an input/output interface 144, the transceiver 146, and a storage interface or memory 148. Data obtained from the load sensor 134 (e.g., a load cell) is received by the input/out (I/O) device 144 and may be stored in the memory 148, which is accessible by the processor 140. For example, during operation, the processor 140 receives load values from the load sensor 134 during a sampling period (e.g., every 50 milliseconds, every second, etc.). In some examples, the processor 140 and/or the load sensor 134 employ the slave timer 142 to determine the sampling period and/or to determine when to request, send and/or receive data (e.g., measured load values) from the load sensor 134. In some examples, the processor 140 also employs the slave timer 142 to determine when to send data (e.g., measured load values) to the rod pump controller 138.
The rod pump controller 138 of the illustrated example includes a processor 150, the master timer 152, an input/output interface 154, the transceiver 156 and a storage interface or memory 158, and a clock 159. Data obtained from the first and second sensors 128 and 130 are received by the input/out (I/O) device 154 of the rod pump controller 138 and stored in the memory 158 that is accessible by the processor 150. For example, during operation, the processor 150 receives and/or substantially simultaneously receives during a sampling period (e.g., every 50 milliseconds, every second, etc.) a crank pulse count and/or pulse from the first sensor 128, a motor pulse count versus time and/or a pulse from the second sensor 130. In some examples, the processor 150 and/or the first and second sensors 128 and 130 employ the master timer 152 to determine a sampling period and/or to determine when to request, send and/or receive data (e.g., measured parameter values) from the first and second sensors 128 and 130.
In operation, the rod pump controller 138 measures or infers positions of the polished rod 110 as the pumping unit 100 moves through a stroke cycle based on the signal values provided by the first sensor 128 and/or the second sensor 130. The rod pump controller 138 receives load values of the polished rod 110 as the polished rod 110 moves through the stroke cycle. However, a time delay between transmitting the load value from the wireless communication apparatus 136 and receiving the transmitted load value by the rod pump controller 138 may cause a time stamp of a corresponding position value to differ from a time stamp of the received load value, resulting in inaccurate pairing of the position value and the load value.
For example,
A second set of traces 216, 218 and 220 is representative of a different day and/or time relative to the first set of traces 202, 204 and 206. In the sequence represented by the traces 216-220, a load 208′ is measured by the wireless communication apparatus 136, a position 210′ of the polished rod 110 is measured by the rod pump controller 138, and the measured load 214′ is received by the rod pump controller 138. In the illustrated example, the frequency of sampling for the position and load are the same or substantially similar (e.g., every 50 milliseconds). As shown by a comparison of the traces 202-206 and 216-220, drift and/or error 222 in the timers 142 and 152 of the respective wireless communication apparatus 136 and the rod pump controller 138 may cause the time of measured position TMP and the time of measured load TML (e.g., a sample frequency) to fluctuate or drift significantly over time. Thus, even though the wireless communication delay 212 may be constant, the timer drift 222 is a variable value that affects the wireless communication delay 212. For example, although timer drift may be constant over a few consecutive strokes of the pumping unit 100, timer drift 222 between the master timer 152 and the slave timer 142 may drift significantly over time (e.g., after four or six consecutive strokes of the pumping unit 100), thereby causing inaccuracies in the sampling period or frequency. For example, timer drift 222 for known crystal oscillators might result in clock drift of 10 parts per million (ppm) or more. Such timer drift may occur in the master timer 152, the slave timer 142 and/or both the master timer 152 and the slave timer 142. For example, a 10 ppm error of magnitude could result in timer drift of 0.85 seconds/day. In some such examples, a sampling period of 50 milliseconds may result in timer drift of 1 millisecond every 100 seconds.
The example rod pump controller 138 of
(TRL−TMP)=(TRL−TML)−(TMP−TML); Equation (1)
where, TRL=time at which the load measurement is received by the rod pump controller 138; TMP=time when the position is measured by the rod pump controller 138; and TML=the time when the load value was measured by the wireless communication apparatus 136. The value (TRL−TML) is representative of wireless communication or transmission delay. The wireless communication delay, for example, may be a certain amount of delay caused by transmission and broadcasting time between the rod pump controller 138 and the wireless communication apparatus 136. The value (TMP−TML) is representative of a timer drift value (e.g., a value between approximately zero and a sample frequency (e.g., 50 millisecond)) between the master timer 152 and the slave timer 142.
To synchronize and/or pair respective ones of the position values and respective ones of the load values, the wireless communication delay (TRL−TML) is determined as a constant value (e.g., via a calibration process) and the timer drift delays (TMP−TML) is corrected via a periodic synchronization (e.g., every 100 seconds) between the master timer 152 and the slave timer 142.
The wireless communication delay (TRL−TML) may be obtained via experimental data, calibration and/or other methods. Referring to
In some examples, the wireless communication apparatus 136 of
In some examples, the wireless communication apparatus 136 of
Example methods of calibrating the rod pump controller 138 and the wireless communication apparatus 136 are described in connection with the flowcharts illustrated in
The timer drift (TRL−TMP) between the load measurement provided by the load sensor 134 and the position measurement provided by the rod pump controller 138 is accounted for during normal operation of the pumping unit 100. In operation, the processor 150 and/or the master timer 152 periodically generates a synchronization signal and communicates the synchronization signal to the wireless communication apparatus 136 via the transceiver 156. For example, the processor 150 may provide or broadcast a synchronization signal to the wireless communication apparatus 136 every 100 seconds. The synchronization signal causes the slave timer 142 to reset. An example method of synchronizing the master timer 152 and the slave timer 142 is illustrated in the example flowchart shown in
With the wireless communication delay determined and the timer drift significantly reduced or eliminated, the example methods and apparatus disclosed herein account for time delays between the time when the measured load values are transmitted by the wireless communication apparatus 136 and the time when the rod pump controller 138 receives the transmitted measured load values, where such time delay would otherwise cause improper pairing of the load values and the respective measured position values. As noted above, such improper pairing may cause inaccurate pump dynamometer cards. In particular, the rod pump controller 138 of the illustrated example correlates, synchronizes and/or pairs mathematically determined load values of the polished rod 110 with respective ones of measured or inferred position values of the polished rod 110. Specifically, the example rod pump controller 138 uses the measured load values (e.g., first load values) provided by the wireless communication apparatus 136 and (e.g., mathematically) determines load values (e.g., second load values) associated with the determined polished rod positions when time stamps of the received measured load values from the wireless communication apparatus 136 do not correspond or correlate with time stamps of the determined position values. For example, in operation, the rod pump controller 138 determines (e.g., measures or infers) a position of the polished rod 110 based on a signal provided by the sensor 128 and/or 130 and associates a determined load value of the polished rod 110 corresponding to the position value of the polished rod 110 when the received load value does not correspond with the measured position value.
For example,
Referring to
Although each of the polished rod load values is read or received by the rod pump controller 138 approximately 5 milliseconds after receiving the corresponding position measurement value, the time delay between the actual polished rod load measured by the wireless communication apparatus 136 and the polish rod load value received by the rod pump controller 138 may be larger or smaller than the five milliseconds as illustrated in the reference table 300. If the load measurement (e.g., the load of 10234 lbs.) of the polished rod 110 is assigned to the nearest “in time” position value (e.g., 0.05 millisecond) of the polished rod 110 to define a pair of measured points, significant error may be introduced when determining, for example, the pump dynamometer card.
To determine or accurately pair the measured or inferred polished rod position values and the polished rod load values without significant error, the example rod pump controller 138 of the illustrated example biases each time stamp of the received polished rod load values by an offset value (e.g., a wireless communication delay determined by Equation (1)). For example,
In the illustrated example, the processor 150 of the rod pump controller 138 employs a linear interpolation algorithm to determine the interpolated load shown in the fifth column 316. In the illustrated example, the interpolated load value (e.g., 10816 lbs) is determined based on a first load value (e.g., 10456 lbs) at adjusted to time 0.085 seconds (i.e., received at time 0.105 and adjusted based the wireless communication delay time of 20 milliseconds) and a second load value (e.g., 11657 lbs) adjusted to time 0.135 seconds (i.e., received at time 0.155 that has been adjusted by the wireless communication delay time of 20 milliseconds). For example, a linear interpolation may be determined by the following equation:
where y is the determined polished rod load value, y0 is a first received measured load value, y1 is a second received measured load value, x is the time value associated with the load value to be determined, x0 is the time value at which the first measured load value was received by the rod pump controller 138, and x1 is the time value at which the second measured load value was received by the rod pump controller 138. For example, to determine the a load value associated with time value 0.1 seconds and position value 15.78 inches as shown in the reference table 314, the processor 150 may employ Equation 2 to determine a load value (y) of 10816 lbs associated or correlating with the time value 0.1 seconds and the position value 15.78 using the measured load value 10456 lbs as y0, the measured load value 11657 lbs as y1, 0.1 seconds as x, 0.085 seconds as x0 and 0.135 seconds as x1. In some examples, any other information illustrated in reference table 314 and/or other collected data may be employed to determine the load values associated with respective ones of the position values. In some examples, other interpolation methods may be employed including, but not limited to, quadratic interpolation, polynomial interpolation, Lagrange interpolation, spline interpolation, etc.
While an example manner of implementing the wireless communication apparatus 136 and/or the rod pump controller 138 are illustrated in
Flowcharts representative of example methods for implementing the wireless communication apparatus 136 and/or the rod pump controller 138 of
As mentioned above, the example methods of
After the master timer 152 is reset at block 406 or if a synchronization signal is not sent at block 402, the processor 150 of the rod pump controller 138 initiates data collection based on a predetermined frequency (block 408). For example, the processor 150 retrieves from the memory 158 a predetermined sampling frequency or sampling period (e.g., 20 Hz or 50 milliseconds) for obtaining data from the first and second sensors 128 and 130 to measure or infer the polished rod position values or for obtaining the polished rod load values from the wireless communication apparatus 136. The predetermined frequency or sampling period may be provided or modified via a user input interface of the rod pump controller 138. In some examples, the processor 150 initiates and/or initializes the master timer 152 and determines, via the master timer 152, the amount of time elapsed since the master timer 152 was initialized. The processor 150 determines if the elapsed time is at or after the predetermined time such as, for example, fifty milliseconds (e.g., the sampling period).
If the processor 150 determines that the elapsed time is at or after the predetermined frequency value, based on data from the first sensor 128 and the second sensor 130, the processor 150 collects the polished rod position value (block 410). For example, the processor 150 measures or infers the polished rod position value based on the signals provided by the first sensor 128 and/or the second sensor 130. The processor 150 also assigns a time value (e.g., a time stamp) to the received polished rod position value (block 412). For example, the processor 150 may determine the time that the polished rod position value was received using, for example, the clock 159 of the rod pump controller 138.
The processor 150 collects a measured polished rod load value from the wireless communication apparatus 136 (block 414). Using the clock 159 of the rod pump controller 138, the processor 150 assigns a time value (e.g., a time stamp) to the received measured polished rod load value (block 416). The polished rod position value and its assigned time, and the measured polished rod load value and its assigned time are stored in the memory 158 (block 418). In some examples, the processor 150 generates a reference table similar to the reference table 300.
The processor 150 then obtains the wireless communication delay value from, for example, the memory 158 (block 420). The processor 150 adjusts the time value or time stamp assigned to the measured polished rod load value by a value equivalent to the wireless communication delay (block 422). For example, referring to the reference table 308 of
The processor 150 determines if the adjusted time value of the received measured polished rod load value aligns with the time value of the polished rod position value (block 424). If the adjusted time value of the measured polished rod load value aligns or correlates with (e.g., is equal to) the time value of the position value at block 424, the processor 150 assigns or correlates the measured polished rod load value and the polished rod position value. (block 426).
If the adjusted time value of the measured polished rod load value does not correspond to (e.g., is not equal to) the time value of the polished rod position value at block 424 (e.g., see reference table 308), the processor 150 determines a polished rod load value associated with the time value of the polished rod position value (e.g., see
To determine the polished rod load value via interpolation, the processor 150 determines that an interpolation should be performed when the rod pump controller 138 receives at least two measured polished rod load values. In some examples, the determination of whether to perform an interpolation can be based on a predetermined time period. For example, the predetermined time period may be set at 1 second, 10 seconds, and/or any other desired time interval or period. For example, after every predetermined time period, the processor 150 may perform an interpolation based on the polished rod position values and the measured polished rod load values collected, the time stamp values of the polished rod position values and the adjusted time stamp values of the measured polished rod load values. The processor 150 may employ the master timer 152, the clock 159 and/or other timer of the rod pump controller 138 to determine if the predetermined time period has expired. In some examples, an interpolation is performed once a certain number of polished rod position values (e.g., between two and four values) and a certain number of measured polished rod load values (e.g., between two and four values) are obtained or collected. For example, the processor 150 may determine the number of polished rod position values and the number of measured polished rod load values obtained by the rod pump controller 138. In some examples, the processor 150 performs an interpolation every time a polished rod position value and a measured polished rod load value is collected or received by the rod pump controller 138. In some such examples, a lack of sufficient data points (e.g., two measured polished rod load values) needed to perform the interpolation results in the processor 150 returning to block 402 for additional data collection.
After the measured polished rod load value is correlated with the polished rod position value at block 426 or the load value is determined at the same time as the polished rod position value at block 428, the processor 150 determines if the collection of polished rod position values and the measured polished rod load values should terminate (block 430). If the process is to continue at block 430, the process returns to block 402. If the processor 150 determines that the process is to terminate at block 430, then process 400 ends. The processor 150 determines if the process is to terminate at block 430 when the rod pump controller 138 no longer receives the polished rod position values and/or the measured polished rod load values. For example, the rod pump controller 138 ceases to receive polished rod position values and/or the measured polished rod load values when, for example, the motor 114 is turned off In some examples, the process terminates after expiration of a predetermined period of time such as, for example, 1 hour, 24 hours, 48 hours, and/or any other desired time.
The processor 140 determines if a synchronization signal is received (block 504). For example, the processor 140 receives the synchronization signal initiated or sent by the rod pump controller 138 at block 404 of
If the synchronization signal is not received at block 504 or the processor 140 stores the time value of the slave timer 142 when the synchronization signal is received at block 506, the processor 140 determines if a load on the polished rod 110 is to be measured (block 508). For example, the processor 140 of the example wireless communication apparatus 136 measures the polished rod load value upon the expiration of the slave timer 142. For example, if the frequency or sampling time of the slave timer 142 is set to measure the polished rod load values periodically (e.g., every 50 milliseconds), the processor 140 obtains the measured polished rod load value from the load sensor 134 (block 510). If the processor 140 determines that the sampling period has not yet expired at block 508, the processor 140 waits until the expiration of the sampling period to obtain the measured polished rod load value.
When the measured polished rod load value is measured by the load sensor 134, the processor 140 transmits a signal representative of the polished rod load value to the rod pump controller 138 via the transceiver 146 (block 512). The processor 140 determines a difference value between the initial time value of the slave timer 142 and the time stamp of the slave timer 142 when the synchronization signal was received (block 514). The processor 140 resets or adjusts the slave timer 142 to a value that is equal to the initial time value plus the determined difference value (block 516). For example, if the initial slave timer value or sampling time is set to 50 milliseconds, the slave timer 142 counts down from 50 milliseconds to zero, at which time the processor 140 measures the polished rod load value at block 508. However, if the processor 140 receives the synchronization signal from the rod pump controller 138 when the slave timer is at 48 milliseconds, the slave timer 142 is running 2 milliseconds faster than the master timer 152. However, the processor 140 of the illustrated example continues to allow the slave timer 142 to run to zero and measure the polished rod load value at block 510. The processor 140 then resets the slave timer 142 to a value of 52 milliseconds instead of 50 milliseconds (e.g., {(the initial reset value (50 milliseconds)+2}−time of the slave timer 142 at time that synchronization signal is received (48 milliseconds)).
In the calibration mode, the processor 150 of the rod pump controller 138 receives a first set of polished rod load values via the load sensor 134 and the wireless communication apparatus 136 (block 604). The first set of polished rod load values may be determined at a sampling period of 50 milliseconds (e.g., a frequency of 20 Hz) across one stroke cycle of the pumping unit 100. The processor 150 employs the master timer 152 to determine the sampling period or frequency. Additionally, the processor 150 may employ the clock 159 to determine a time stamp at which each polished rod load value is received from the wireless communication apparatus 136. In some examples, the first set of polished rod load values are obtained across two or more stroke cycles of the pumping unit 100 and/or at any other desired sampling period (e.g., every 10 milliseconds, every second, etc.). In some examples, the first set of polished rod load values is stored in the memory 158.
In addition, the processor 150 of the rod pump controller 138 receives a second set of polished rod load values via the secondary load sensor 160 and the wired cable 162 (block 606). The second set of polished rod load values may be determined substantially simultaneously (e.g., at the same time) as the first set of polished rod load values provided by the wireless communication apparatus 136. For example, the second set of polished rod load values may be determined at the same sampling period of 50 milliseconds across a stroke cycle of the pumping unit 100. For example, the master timer 152 and/or the slave timer 142 may be used to set a sampling period and/or to substantially ensure data is obtained from the load sensor 134 and the secondary load sensor 160 at equal frequencies. Additionally, the processor 150 may employ the clock 159 to determine a time stamp at which each polished rod load value is received from the secondary load sensor 160. In some examples, the second set of polished rod load values is stored in the memory 158. In some examples, the master timer 152 and the slave timer 142 are synchronized (e.g., via the method 500 of
Once the first and second polished load values are obtained, the processor 150 analyzes the first and second sets of polished rod load values (block 608). For example, the processor 150 may employ a comparator to compare the first set of polished rod load values and the second set of polished rod load values to determine which values are substantially equal or have similar values (e.g., within 1%). The processor 150 then compares the time stamps of equal or substantially similar polished rod load values of the first set of polished rod load values and the second set of polished rod load values. For example, an average time difference between each of the time stamps of the equal or substantially similar polished rod load values is determined or calculated. In some examples, the first and second sets of the polished rod load values are individually normalized so that the loads range from values between zero and one. The normalized data is then analyzed to determine an average phase shift between each of the readings. In some examples, the first and second sets of polished rod load values are converted to various dimensionless load threshold values (e.g., between 0.1 and 0.9) and interpolating all points from each dataset where the dimensionless load values cross these lines. The processor 150 sets the resulting phase shift (e.g., in seconds) as the wireless communication delay (TRL−TML) (block 610). In some examples, the wireless communication delay value is stored in the memory 158 for subsequent operation of the rod pump controller 138. After calibration is complete, the secondary load sensor 160 and the wired cable 162 is removed.
After the signal is generated, the wireless communication apparatus 136 transmits the signal (e.g., the same signal) via a wireless communication and a temporary wired connection (block 706). For example, the wireless communication apparatus 136 transmits the signal wirelessly via the transceiver 146 and transmits the signal via a temporary wired connection using the temporary wire 166. In turn, the rod pump controller 138 receives the signal via the wireless communication (block 708). For example, the rod pump controller 138 receives the signal transmitted from the transceiver 146 of the wireless communication apparatus 136 via the transceiver 156. In some examples, the processor 150 employs the clock 159 to time stamp the signal received by the wireless communication. Additionally, the rod pump controller 138 receives the signal via the temporary wired connection (block 710). For example, the processor 150 of the rod pump controller 138 receives the signal from the temporary wired connection via the I/O interface 154. In some examples, the processor 150 employs the clock 159 to time stamp the signal received by the temporary wired connection.
The processor 150 or, more generally, the rod pump controller 138 analyzes a difference between a time at which the signal is received via the wireless communication and a time at which the signal is received via the temporary wired connection (block 712). For example, the processor 150 or, more generally, the rod pump controller 138 may employ a comparator to compare and/or determine the difference between the time at which the signal was received via the wireless communication and the time at which the signal was received via the temporary wired connection. The rod pump controller 138 sets the time difference (e.g., in seconds) as the wireless communication delay (TRL−TML) (block 714). In some examples, the wireless communication delay value is stored in the memory 158 for subsequent operation of the rod pump controller 138. After calibration is complete, the wired cable 166 is removed.
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 812. 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
At least some of the aforementioned examples include one or more features and/or benefits including, but not limited to, the following:
In some examples, a method includes determining, via a rod pump controller, a first position value of a polished rod of a pumping unit; assigning a first time value to the first position value; receiving first load values of the polished rod; assigning second time values to respective ones of the first load values; adjusting each of the second time values to respective third time values based on a wireless communication delay value; and determining a second load value associated with the first position value at the first time value based on the first load values and the third time values.
In some examples, determining the second load value includes interpolating the second load value based on the first time value, the first load values, and the third time values.
In some examples, the method includes generating a reference table using the first position value, the first time value and the second load value.
In some examples, determining the wireless communication delay value includes determining a transmission delay between the rod pump controller and a wireless communication apparatus.
In some examples, determining transmission delay includes determining a time difference between receiving a first signal from a first load sensor provided by the wireless communication apparatus and a second signal from a second load sensor provided by a wired connection, the first signal and the second signal being representative of a load on the polished rod at a same time.
In some examples, determining transmission delay includes determining a time difference between receiving a signal provided by the wireless communication apparatus via a wireless communication and receiving the signal provided by the wireless communication apparatus via a wired connection.
In some examples, the method includes periodically broadcasting a synchronization signal to a wireless communication apparatus.
In some examples, the method includes resetting a master timer after broadcasting the synchronization signal.
In some examples, the method includes transmitting the first load values of the polished rod to the rod pump controller via the wireless communication apparatus.
In some examples, the method includes initiating a slave timer to an initial value and transmitting a measured load value of the first load values when the slave timer moves from an initial value to a zero value, the initial value being determined by a frequency at which the first load values of the polished rod are to be transmitted to the rod pump controller.
In some examples, the method includes determining a reset time stamp value when the wireless communication apparatus receives the synchronization signal.
In some examples, the method includes resetting the slave timer of the wireless communication apparatus to a value equivalent to initial value plus a difference between the initial value and the reset time stamp value.
In some examples, a rod pump controller for use with a pumping unit includes a first processor to: determine, via a rod pump controller, a first position value of a polished rod of a pumping unit; assign a first time value to the first position value; receive first load values of the polished rod; assign second time values to respective ones of the first load values; adjust each of the second time values to respective third time values based on a wireless communication delay value; and determine a second load value associated with the first position value at the first time value based on the first load values and the third time values.
In some examples, the processor interpolates the second load value based on the first time value, the first load values, and the third time.
In some examples, the first processor generates a reference table using the first position value, the first time value and the second load value.
In some examples, the rod pump controller includes a wireless communication apparatus to be communicatively coupled to the rod pump controller, the wireless communication apparatus to transmit the first load values of the polished rod to the pump rod controller.
In some examples, the first processor determines a transmission delay between the rod pump controller and the wireless communication apparatus to determine the wireless communication delay value during a calibration process.
In some examples, a second load sensor is communicatively coupled to the rod pump controller via a temporary wired connection during the calibration process, and the first processor determines a time difference between receiving a first signal from a first load sensor provided by the wireless communication apparatus and a second signal from the second load sensor provided by the temporary wired connection provided during the calibration process, the first signal and the second signal being representative of a load on the polished rod at a same time.
In some examples, the first processor determines the transmission delay value by determining a time difference between receiving a signal from via a wireless connection provided by the wireless communication apparatus and receiving the signal from the wireless communication apparatus via the temporary wired connection provided during the calibration process.
In some examples, the first processor is to periodically broadcast a synchronization signal to a wireless communication apparatus.
In some examples, the first processor resets a master timer after broadcasting the synchronization signal.
In some examples, a second processor of the wireless communication apparatus initiates a slave timer to an initial value and the second processor transmits a measured load value of the first load values when the slave timer moves from the initial value to a zero value, the initial value being determined by a frequency at which the first load values of the polished rod are to be transmitted to the rod pump controller.
In some examples, the second processor determines a reset time stamp value when the wireless communication apparatus receives the synchronization signal.
In some examples, the second processor resets the slave timer of the wireless communication apparatus to a reset value equivalent to the initial value plus a difference between the initial value and the reset time stamp value.
In some examples, a tangible computer-readable medium includes instructions that, when executed, cause a machine to: determine, via a rod pump controller, a first position value of a polished rod of a pumping unit; assign a first time value to the first position value; receive first load values of the polished rod; assign second time values to respective ones of the first load values; adjust each of the second time values to third time values based on a wireless communication delay value; and determine a second load values associated with the first position value at the first time value based on the first load values and the third time values.
In some examples, the computer-readable medium includes instructions that, when executed, cause the machine to interpolate the second load value based on the first time value, the first load values, and the third time.
In some examples, the computer-readable medium includes instructions that, when executed, cause the machine to generate a reference table using the first position value, the first time value and the second load value.
In some examples, the computer-readable medium includes instructions that, when executed, cause the machine to determine a time difference between receiving a first signal from a first load sensor provided by a wireless communication apparatus and a second signal from a second load sensor provided by a wired connection to determine the wireless communication delay value.
In some examples, the computer-readable medium includes instructions that, when executed, cause the machine to generate and transmit the first signal at a same instance as the second signal.
In some examples, the computer-readable medium includes instructions that, when executed, cause the machine to determine a time difference between receiving a signal from a wireless communication apparatus provided by a wireless communication and receiving the signal from the wireless communication apparatus provided by a wired connection to determine the wireless communication delay value.
In some examples, the computer-readable medium includes instructions that, when executed, cause the machine to periodically broadcast a synchronization signal.
In some examples, the computer-readable medium includes instructions that, when executed, cause the machine to reset a master timer after broadcasting the synchronization signal.
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 |
---|---|---|---|
4490094 | Gibbs | Dec 1984 | A |
9080438 | McCoy | Jul 2015 | B1 |
20060149476 | Gibbs et al. | Jul 2006 | A1 |
20090311107 | Chavez Zapata | Dec 2009 | A1 |
20120020808 | Lawson et al. | Jan 2012 | A1 |
20130115107 | Pons | May 2013 | A1 |
20130333880 | Raglin | Dec 2013 | A1 |
20150142319 | McCoy | May 2015 | A1 |
20150300156 | Mills | Oct 2015 | A1 |
20150345280 | Krauss | Dec 2015 | A1 |
20170002635 | Williams | Jan 2017 | A1 |
Entry |
---|
International Search Authority, “International Search Report,” issued in connection with International Patent Application No. PCT/US2016/044368, dated Oct. 24, 2016, 4 pages. |
International Search Authority, “Written Opinion,” issued in connection with International Patent Application No. PCT/US2016/044368, dated Oct. 24, 2016, 6 pages. |
Number | Date | Country | |
---|---|---|---|
20170030348 A1 | Feb 2017 | US |