The field of the invention relates generally to controlling rod pumping units, and more specifically, to methods and a system for controlling a rod pumping unit to enhance the flow of a fluid induced by the rod pumping unit.
Most known rod pumping units (also known as surface pumping units) are used in wells to induce fluid flow, for example oil and water. The primary function of the linear pumping unit is to convert rotating motion from a prime mover (e.g., an engine or an electric motor) into reciprocating motion above the wellhead. This motion is in turn used to drive a reciprocating down-hole pump via connection through a sucker rod string. The sucker rod string, which can extend miles in length, transmits the reciprocating motion from the wellhead at the surface to subterranean valves in a fluid bearing zone of the well. The reciprocating motion of the valves induces the fluid to flow up the length of the sucker rod string to the wellhead.
The rod pumping units are exposed to a wide range of conditions. These vary by well application, the type and proportions of the pumping unit's linkage mechanism, and the conditions of the well. Furthermore, well conditions, such as downhole pressure, may change over time. These conditions may cause variability in the flow of the fluid. In addition, these conditions affect the sucker rod string. The sucker rod string transmits dynamic loads from the down-hole pump and the rod pumping unit. The sucker rod string behaves similarly to a spring over long distances. The sucker rod string elongates and retracts based on exposure to variable tensile stress. The response of the sucker rod string is damped somewhat due to its submergence in a viscous fluid (water and oil), but the motion profile of the rod pumping unit combined with the step function loading of the pump generally leaves little time for the oscillations to decay before the next perturbation is encountered.
The rod pumping unit imparts continually varying motion on the sucker rod string. The sucker rod string responds to the varying motion by sending variable stress waves down its length to alter its own motion. The sucker rod string stretches and retracts as it builds the force necessary to move the down-hole pump and fluid. The rod pumping unit, breaking away from the effects of friction and fluid inertia, tends to rebound under the elastic force from the sucker rod string initiating an additional oscillatory response within the sucker rod string. Traveling stress waves from multiple sources interfere with each other along the sucker rod string (some constructively, others destructively) as they traverse its length and reflect load variations back to the rod pumping unit, where they can be measured.
In one aspect, a system for enhancing a flow of a fluid induced by a rod pumping unit is provided. The system includes a pumping control unit including a processor and a memory. The pumping control unit is configured to control stroke movement of the rod pumping unit, thereby controlling the flow of the fluid induced by the rod pumping unit. The pumping control unit is also configured to store a first set of stroke timing data based on a first pressure level and a second set of stroke timing data based on a second pressure level. The first set of stroke timing data and the second set of stroke timing data are based on a plurality of constraints of the rod pumping unit. The pumping control unit is further configured to store a set of pressure weights based on the first set of stroke timing data, the second set of stroke timing data, and the plurality of constraints and receive a current pressure level. The current pressure level is between the first pressure level and the second pressure level. Moreover, the pumping control unit is also configured to determine a current set of stroke timing data based on the current pressure level, the first set of stroke timing, the second set of stroke timing, and the set of pressure weights and initiate at least one stroke of the rod pumping unit. The at least one stroke is based on the current set of stroke timing data.
In a further aspect, a computer-based method for enhancing a flow of a fluid induced by a rod pumping unit is provided. The method is implemented using a pumping control unit in communication with a memory. The method includes storing a first set of stroke timing data based on a first pressure level and a second set of stroke timing data based on a second pressure level. The first set of stroke timing data and the second set of stroke timing data are based on a plurality of constraints of the rod pumping unit. The method also includes storing a set of pressure weights based on the first set of stroke timing data, the second set of stroke timing data, and the plurality of constraints and receiving a current pressure level. The current pressure level is between the first pressure level and the second pressure level. The method further includes determining a current set of stroke timing data based on the current pressure level, the first set of stroke timing, the second set of stroke timing, and the set of pressure weights and initiating at least one stroke of the rod pumping unit. The at least one stroke is based on the current set of stroke timing data.
In another aspect, a rod pumping unit for inducing a flow of a fluid is provided. The rod pumping unit includes a pumping control unit that includes a processor and a memory. The pumping control unit is configured to control stroke movement of the rod pumping unit, thereby controlling the flow of the fluid induced by the rod pumping unit. The pumping control unit is configured to store a first set of stroke timing data based on a first pressure level and a second set of stroke timing data based on a second pressure level. The first set of stroke timing data and the second set of stroke timing data are based on a plurality of constraints of the rod pumping unit. The pumping control unit is also configured to store a set of pressure weights based on the first set of stroke timing data, the second set of stroke timing data, and the plurality of constraints, and to receive a current pressure level. The current pressure level is between the first pressure level and the second pressure level. The pumping control unit is further configured to determine a current set of stroke timing data based on the current pressure level, the first set of stroke timing, the second set of stroke timing, and the set of pressure weights and initiate at least one stroke of the rod pumping unit. The at least one stroke is based on the current set of stroke timing data.
These and other features, aspects, and advantages of the present disclosure will become better understood when the following detailed description is read with reference to the accompanying drawings in which like characters represent like parts throughout the drawings, wherein:
Unless otherwise indicated, the drawings provided herein are meant to illustrate features of embodiments of the disclosure. These features are believed to be applicable in a wide variety of systems comprising one or more embodiments of the disclosure. As such, the drawings are not meant to include all conventional features known by those of ordinary skill in the art to be required for the practice of the embodiments disclosed herein.
In the following specification and the claims, reference will be made to a number of terms, which shall be defined to have the following meanings.
The singular forms “a”, “an”, and “the” include plural references unless the context clearly dictates otherwise.
“Optional” or “optionally” means that the subsequently described event or circumstance may or may not occur, and that the description includes instances where the event occurs and instances where it does not.
Approximating language, as used herein throughout the specification and claims, may be applied to modify any quantitative representation that may permissibly vary without resulting in a change in the basic function to which it is related. Accordingly, a value modified by a term or terms, such as “about”, “approximately”, and “substantially”, are not to be limited to the precise value specified. In at least some instances, the approximating language may correspond to the precision of an instrument for measuring the value. Here and throughout the specification and claims, range limitations may be combined and interchanged; such ranges are identified and include all the sub-ranges contained therein unless context or language indicates otherwise.
As used herein, the terms “processor” and “computer” and related terms, e.g., “processing device”, “computing device”, and “controller” are not limited to just those integrated circuits referred to in the art as a computer, but broadly refers to a microcontroller, a microcomputer, a programmable logic controller (PLC), an application specific integrated circuit, and other programmable circuits, and these terms are used interchangeably herein. In the embodiments described herein, memory may include, but is not limited to, a computer-readable medium, such as a random access memory (RAM), and a computer-readable non-volatile medium, such as flash memory. Alternatively, a floppy disk, a compact disc-read only memory (CD-ROM), a magneto-optical disk (MOD), and/or a digital versatile disc (DVD) may also be used. Also, in the embodiments described herein, additional input channels may be, but are not limited to, computer peripherals associated with an operator interface such as a mouse and a keyboard. Alternatively, other computer peripherals may also be used that may include, for example, but not be limited to, a scanner. Furthermore, in the exemplary embodiment, additional output channels may include, but not be limited to, an operator interface monitor.
Further, as used herein, the terms “software” and “firmware” are interchangeable, and include any computer program stored in memory for execution by personal computers, workstations, clients and servers.
As used herein, the term “non-transitory computer-readable media” is intended to be representative of any tangible computer-based device implemented in any method or technology for short-term and long-term storage of information, such as, computer-readable instructions, data structures, program modules and sub-modules, or other data in any device. Therefore, the methods described herein may be encoded as executable instructions embodied in a tangible, non-transitory, computer readable medium, including, without limitation, a storage device and a memory device. Such instructions, when executed by a processor, cause the processor to perform at least a portion of the methods described herein. Moreover, as used herein, the term “non-transitory computer-readable media” includes all tangible, computer-readable media, including, without limitation, non-transitory computer storage devices, including, without limitation, volatile and nonvolatile media, and removable and non-removable media such as a firmware, physical and virtual storage, CD-ROMs, DVDs, and any other digital source such as a network or the Internet, as well as yet to be developed digital means, with the sole exception being a transitory, propagating signal.
Furthermore, as used herein, the term “real-time” refers to at least one of the time of occurrence of the associated events, the time of measurement and collection of predetermined data, the time to process the data, and the time of a system response to the events and the environment. In the embodiments described herein, these activities and events occur substantially instantaneously.
The rod pumping control system as described herein provide a cost-effective method for controlling a rod pumping unit to enhance the flow of a fluid induced by the rod pumping unit based on current well conditions. Furthermore, the motion of the rod pumping unit is controlled to ensure that the motion of the sucker rod string will not damage the sucker rod string, the rod pumping unit, or the well itself Also, the system and methods described herein are not limited to any single predefined set of well conditions. For example, the system and methods described herein may be used with varying well conditions and adapt over time as well conditions change. As such, the amount of fluid induced by the rod pumping unit is constantly updated to be enhanced based on current well conditions and the capabilities of the rod pumping unit. As such, the production and efficiency of rod pumping units is increased.
Penetrating upper and lower pressure vessel heads 112 and 114, respectively, is a linear actuator assembly 116. This linear actuator assembly 116 is includes a vertically oriented threaded screw 118 (also known as a roller screw), a planetary roller nut 120 (also known as a roller screw nut assembly), a forcer ram 122 in a forcer ram tube 124, and a guide tube 126.
Roller screw 118 is mounted to an interior surface 128 of lower pressure vessel head 114 and extends up to upper pressure vessel head 112. The shaft extension of roller screw 118 continues below lower pressure vessel head 114 to connect with a compression coupling (not shown) of a motor 130. Motor 130 is coupled to a variable speed drive (VSD) (not shown) configured such that the motor's 130 rotating speed may be adjusted continuously. The VSD also reverses the motor's 130 direction of rotation so that its range of torque and speed may be effectively doubled. Roller screw 118 is operated in the clockwise direction for the upstroke and the counterclockwise direction for the downstroke. Motor 130 is in communication with a pumping unit controller 132. In the exemplary embodiment, pumping unit controller 132 transmits commands to motor 130 and the VSD to control the speed, direction, and torque of roller screw 118.
Within pressure vessel 104, the threaded portion of roller screw 118 is interfaced with planetary roller screw nut assembly 120. Nut assembly 120 is fixedly attached to the lower segment of forcer ram 122 such that as roller screw 118 rotates in the clockwise direction, forcer ram 122 moves upward. Upon counterclockwise rotation of roller screw 118, forcer ram 122 moves downward. This is shown generally in FIGS. lA and 1B. Guide tube 126 is situated coaxially surrounding forcer tube 124 and statically mounted to lower pressure head 114. Guide tube 126 extends upward through shell body 108 to slide into upper pressure vessel head 112.
An upper ram 134 and a wireline drum assembly 136 and fixedly coupled and sealed to the upper end of forcer ram 122. Wireline drum assembly 136 includes an axle 138 that passes laterally through the top section of the upper ram 134. A wireline 140 passes over wireline drum assembly 136 resting in grooves machined into the outside diameter of wireline drum assembly 136. Wireline 140 is coupled to anchors 142 on the mounting base structure 106 at the side of pressure vessel 104 opposite of wellhead 102. At the wellhead side of pressure vessel 104, wireline 140 is coupled to a carrier bar 144 which is in turn coupled to a polished rod 146 extending from wellhead 102.
Rod pumping unit 100 transmits linear force and motion through planetary roller screw nut assembly 120. Motor 130 is coupled to the rotating element of planetary roller screw nut assembly 120. By rotation in either the clockwise or counterclockwise direction, motor 130 may affect translatory movement of planetary roller nut 120 (and by connection, of forcer ram 122) along the length of roller screw 118.
Pumping control unit 212 is in communication with pumping control motor 240. In the exemplary embodiment, pumping control motor 240 includes motor 130 (shown in
A database server 216 is coupled to database 220, which contains information on a variety of matters, as described below in greater detail. In one embodiment, centralized database 220 is stored on pumping control unit 212. In an alternative embodiment, database 220 is stored remotely from pumping control unit 212 and may be non-centralized. In some embodiments, database 220 includes a single database having separated sections or partitions or in other embodiments, database 220 includes multiple databases, each being separate from each other. Database 220 stores condition data received from multiple sensors 230. In addition, database 220 stores constraints, component data, component specifications, equations, and historical data generated as part of collecting condition data from multiple sensors 230.
Pumping control unit 212 is in communication with a client system 214. Pumping control unit 212 connects to client system 214 through many interfaces including without limitation a network, such as a local area network (LAN) or a wide area network (WAN), dial-in-connections, cable modems, Internet connection, wireless, and special high-speed Integrated Services Digital Network (ISDN) lines. Pumping control unit 212 transmits data about the operation of rod pumping unit 100 to client system 214. This data could include data from sensors, current strokes per minute and other operational data that client system 214 could monitor. Furthermore, pumping control unit 212 receives additional instructions from client system 214 or updated stroke timing data. Additionally, client system 214 accesses database 220 through pumping control unit 212. Client system 214 presents the data from pumping control unit to a user. In other embodiments, pumping control unit 212 includes a display unit (not shown) to display data directly to a user (not shown).
User computer device 302 also includes at least one media output component 315 for presenting information to user 301. Media output component 315 is any component capable of conveying information to user 301. In some embodiments, media output component 315 includes an output adapter (not shown) such as a video adapter and/or an audio adapter. An output adapter is operatively coupled to processor 305 and operatively coupleable to an output device such as a display device (e.g., a cathode ray tube (CRT), liquid crystal display (LCD), light emitting diode (LED) display, or “electronic ink” display) or an audio output device (e.g., a speaker or headphones). In some embodiments, media output component 315 is configured to present a graphical user interface (e.g., a web browser and/or a client application) to user 301. A graphical user interface may include, for example, an online store interface for viewing and/or purchasing items, and/or a wallet application for managing payment information. In some embodiments, user computer device 302 includes an input device 320 for receiving input from user 301. User 301 may use input device 320 to, without limitation, select and/or enter one or more items to purchase and/or a purchase request, or to access credential information, and/or payment information. Input device 320 may include, for example, a keyboard, a pointing device, a mouse, a stylus, a touch sensitive panel (e.g., a touch pad or a touch screen), a gyroscope, an accelerometer, a position detector, a biometric input device, and/or an audio input device. A single component such as a touch screen may function as both an output device of media output component 315 and input device 320.
User computer device 302 may also include a communication interface 325, communicatively coupled to a remote device such as pumping control unit 212 (shown in
Stored in memory area 310 are, for example, computer readable instructions for providing a user interface to user 301 via media output component 315 and, optionally, receiving and processing input from input device 320. A user interface may include, among other possibilities, a web browser and/or a client application. Web browsers enable users, such as user 301, to display and interact with media and other information typically embedded on a web page or a website from pumping control unit 212. A client application allows user 301 to interact with, for example, pumping control unit 212. For example, instructions may be stored by a cloud service, and the output of the execution of the instructions sent to the media output component 315.
Processor 305 executes computer-executable instructions for implementing aspects of the disclosure. In some embodiments, processor 305 is transformed into a special purpose microprocessor by executing computer-executable instructions or by otherwise being programmed. For example, processor 305 is programmed with instructions discussed further below.
Processor 405 is operatively coupled to a communication interface 415 such that server computer device 401 is capable of communicating with a remote device, such as another server computer device 401, sensors 230 (shown in
Processor 405 is also operatively coupled to a storage device 434. Storage device 434 is any computer-operated hardware suitable for storing and/or retrieving data, such as, but not limited to, data associated with database 220 (shown in
In some embodiments, processor 405 is operatively coupled to storage device 434 via a storage interface 420. Storage interface 420 is any component capable of providing processor 405 with access to storage device 434. Storage interface 420 may include, for example, an Advanced Technology Attachment (ATA) adapter, a Serial ATA (SATA) adapter, a Small Computer System Interface (SCSI) adapter, a RAID controller, a SAN adapter, a network adapter, and/or any component providing processor 405 with access to storage device 434.
Processor 405 executes computer-executable instructions for implementing aspects of the disclosure. In some embodiments, the processor 305 is transformed into a special purpose microprocessor by executing computer-executable instructions or by otherwise being programmed For example, the processor 405 is programmed with instructions as described further below.
On the left side of velocity profile at time T=0 rod pumping unit 100 is fully retracted as is shown in
Time T1 represents the amount of time it takes for rod pumping unit 100 to accelerate from a standstill condition, i.e., velocity equal to 0, to Vmax while extending. Time T2 represents the amount of time it takes rod pumping unit 100 to decelerate from Vmax to 0 while extending, when rod pumping unit 100 reaches the apex of its extension. Time T3 represents the amount of time it takes for rod pumping unit 100 to accelerate from still to −Vmax while retracting. Time T4 represents the amount of time it takes rod pumping unit 100 to decelerate from −Vmax to 0 while retracting, when rod pumping unit 100 becomes fully retracted. In some embodiments, T4 is the same amount of time as T1.
Pumping control unit 212 sets T, Tup, T1, T2, T3, and T4 and instructs pumping control motor 240 (shown in
Primary stroke timings 602 and 604 are calculated at points at the two ends of the spectrum for well conditions, where actual well conditions are expected to be between those two points. Primary stroke timings 602 and 604 are calculated for the greatest flow of fluid induced for those conditions and within the constraints. In the exemplary embodiment, there are four sets of constraints, buckling constraints, fatigue constraints, torque and screw force balancing constraints, and physical constraints.
The first set of constraints is designed to prevent buckling of the sucker rod string (not shown). The cross-section of the sucker rod string is not constant and varies along its length. To account for these varying thicknesses, the minimum effective load is calculated at multiple points (also known as taper points). The minimum effective load is further modified by a safety factor. These constraints are updated based on the dimensions of the sucker rod string and will be updated when a different sucker rod string with different dimensions is used.
The second set of constraints is designed to prevent fatigue in the sucker rod string. The sucker rod string is constantly under tension and less tension. These varying tensions are configured to prevent ever putting the sucker rod string under compression force. These constant changes in tension are a cyclical stress on the sucker rod string. The effect that this cyclical stress has on the sucker rod string is known as fatigue. The fatigue constraints are based on the maximum and minimum stress that is placed on the sucker rod string during a cycle in view of the tensile strength of the sucker rod. These constraints are further modified by a service factor. In the exemplary embodiment, the service factor is in addition to any safety factor being used and reflects the condition of the well.
The third set of constraints is based on the torque and screw force balancing. These constraints are configured to balance the torque for motor 130 and the force that is placed on the roller screw 118 (both shown in
where Tmax and Tmin are the maximum and minimum torque that motor 130 and roller screw 118 experiences and
where Fmax and Fmin are the maximum and minimum force that motor 130 and roller screw 118 experiences.
The fourth set of constraints is based on the physical attributes of rod pumping unit 100. These constraints may vary based on model or between different rod pumping units. These constraints include, but are not limited to, a maximum polished rod load, a minimum and maximum screw force, a maximum power of the motor, root mean square power for the motor, maximum torque for the motor, root mean square torque for the motor, allowable pressure rating of pressure vessel 104 (shown in
Client system 214 stores 702 a plurality of constraints for rod pumping unit 100. Client system 214 receives 704 a high pressure level and a low pressure level from a user. The high level and low levels are at two extreme levels for pressure, such that conditions at the well are expected to be between those two levels. In the exemplary embodiment, the high level and the low level are set at 3000 psi and 100 psi, respectively. Client system 214 calculates 706 the optimal stroke timing at each of the two levels to create the high and low optimize stroke timings 602 and 604. The calculations are based on the constraints and are calculated for the highest fluid flow possible. In the exemplary embodiment, fluid flow is based on barrels per day (BPD). Examples of primary stroke timings at high 604 and low levels 602 are shown in Table 1.
Once the primary stroke timings are calculated, client system 214 selects 708 a plurality of pressure levels between the high level and the low level. In the exemplary embodiment, the plurality of pressure levels is selected by the user. In other embodiments, the plurality of pressure levels is selected by client system 214. Client system 214 calculates 710 stroke timings for each of the selected plurality of pressure level. Client system 214 determines 712 a weight for each selected pressure level. For each pressure level, client system 214 calculates a minimum weight m that satisfies all of the constraints while giving the greatest value of BPD for that pressure level. The weight m is based on the following equation, where X may be any variable of the current stroke timing, such as Ti or T.
X(PIP)=m*X(100 psi)+(1−m)*X(3000 psi) Eq. (3)
where X is the desired variable, such as T1 or T, PIP is the desired downhole pressure, X(100 psi) is the desired variable calculated at 100 psi from primary stroke timing 602, X(3000 psi) is the desired variable calculated at 3000 psi from primary stroke timing 604, and m is the weight for calculating the greatest value of BPD at PIP.
For example, the results of applying the above equation to multiple pressure levels may be seen below in Table 2. 100 and 3000 are the primary levels 602 and 604, while 200, 400, 800, 1000, 1200, and 1500 represent the secondary levels 606.
The above calculations provide a pair of primary stroke timings 602 and 604 and a plurality of secondary stroke timings 606 for use with rod pumping unit 100. In the exemplary embodiment, only the different values of m (the set of weights) for the different pressure levels and the primary stroke timings for the high and low levels are provided to pumping control unit 212. In other embodiments, the primary and secondary stroke timings are provided to pumping control unit 212. Pumping control unit 212 then uses the stroke timings to control the strokes of rod pumping unit 100.
In additional embodiments, the above calculations are performed for downhole gas fraction, where PIP is kept at a constant value. In these additional embodiments, primary stroke timings are calculated for a high and a low value of downhole gas fraction. Then those primary stroke timings are used to calculate secondary stroke timings for selected downhole gas fraction levels between the high and low downhole gas fraction levels.
Pumping control unit 212 determines 806 a set of current stroke timing based on the current pressure level. Pumping control unit 212 compares the current pressure level with the pressure levels associated with the stored weights. If the current pressure level is the same as one associated with a stored weight, then pumping control unit 212 applies Equation (3) using the matching weight to determine a set of current stroke timing. For example, if the current pressure level is 400 psi, then pumping control unit 212 will determine the current stroke timing to match those values shown in Table 2 for 400 psi. If the current pressure level is between two pressure levels with associated weights, pumping control unit 212 calculates a line for the two pressure levels and the associated weights. Using the calculated line, pumping control unit 212 determines a weight for the current pressure level. Pumping control unit 212 applies Equation (3)1 using the determined weight to calculate a current set of stroke timing. In some embodiments, the line is calculated to fit over several pressure levels. Pumping control unit 212 initiates 808 at least one stroke based on the current set of stroke timing.
Pumping control unit 212 receives 906 a current gas fraction level. Pumping control unit 212 receives 908 a current pressure level. Pumping control unit 212 determines 910 a current set of stroke timing based on the current pressure level and the current gas fraction level. Pumping control unit 212 uses the four sets of primary stroke timing and the two sets of weights to calculate one or more weights for the current gas fraction level and the current pressure level. Pumping control unit 212 applies the one or more calculated weights to the four sets of primary stroke timing to determine the current stroke timing. Pumping control unit 212 initiates 912 at least one stroke based on the current set of stroke timing
The above-described system and methods provide a cost-effective method for controlling a rod pumping unit to enhance the flow of a fluid induced by the rod pumping unit based on current well conditions. Furthermore, the motion of the rod pumping unit is controlled to ensure that the motion of the sucker rod string will not damage the sucker rod string, the rod pumping unit, or the well itself. Also, the system and methods described herein are not limited to any single predefined set of well conditions. For example, the system and methods described herein may be used with varying well conditions and adapt over time as well conditions change. As such, the amount of flow of fluid induced by the rod pumping unit is constantly updated to be enhanced based on current well conditions and the capabilities of the rod pumping unit. As such, the production and efficiency of rod pumping units is increased.
An exemplary technical effect of the methods, systems, and apparatus described herein includes at least one of: (a) determining current stroke timing for current well conditions for a rod pumping unit based on predetermined stroke timing for predetermined conditions, where the current stroke timing and the predetermined stroke timing are calculated to reduce any stresses on the sucker rod string and the rod pumping unit while enhancing fluid flow; and (b) initiating a new stroke based on the adjusted stroke timing for enhanced fluid flow while reducing the stress on the sucker rod string and the rod pumping unit.
Exemplary embodiments of systems and methods for controlling the stroke of a rod pumping unit to control the flow of a fluid are described above in detail. The systems and methods described herein are not limited to the specific embodiments described herein, but rather, components of systems or steps of the methods may be utilized independently and separately from other components or steps described herein. For example, the methods may also be used in combination with other linear pumping units, and are not limited to practice with only linear pumping units as described herein. Additionally, the methods may also be used with other well conditions, and are not limited to practice with only the well conditions as described herein. Rather, the exemplary embodiments may be implemented and utilized in connection with many other pumping control applications.
Although specific features of various embodiments may be shown in some drawings and not in others, this is for convenience only. In accordance with the principles of the systems and methods described herein, any feature of a drawing may be referenced or claimed in combination with any feature of any other drawing.
Some embodiments involve the use of one or more electronic or computing devices. Such devices typically include a processor or controller, such as a general purpose central processing unit (CPU), a graphics processing unit (GPU), a microcontroller, a reduced instruction set computer (RISC) processor, an application specific integrated circuit (ASIC), a programmable logic circuit (PLC), or any other circuit or processor capable of executing the functions described herein. The methods described herein may be encoded as executable instructions embodied in a computer readable medium, including, without limitation, a storage device or a memory device. Such instructions, when executed by a processor, cause the processor to perform at least a portion of the methods described herein. The above examples are exemplary only, and thus are not intended to limit in any way the definition or meaning of the term processor.
This written description uses examples to disclose the embodiments, including the best mode, and also to enable any person skilled in the art to practice the embodiments, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the disclosure is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal language of the claims.