METHODS, SYSTEMS, AND COMPUTER-READABLE MEDIA FOR PERFORMING AUTOMATED DRILLING OF A WELLBORE

Information

  • Patent Application
  • 20240287889
  • Publication Number
    20240287889
  • Date Filed
    February 23, 2023
    a year ago
  • Date Published
    August 29, 2024
    5 months ago
Abstract
During drilling of a wellbore, in a predicting state, a drilling parameter is monitored and, based on the monitored drilling parameter, it is determined that the drilling parameter is likely to exceed a drilling parameter setpoint associated with the drilling parameter. In a mitigating state, in response to determining that the drilling parameter is likely to exceed the drilling parameter setpoint, a rate of penetration setpoint is reduced so as to mitigate a likelihood of the drilling parameter exceeding the drilling parameter setpoint. In addition, during the drilling, drilling parameter data is received. A controller is used to generate, based on the drilling parameter data, one or more drilling parameter setpoint recommendations. At least one drilling parameter setpoint recommendation is selected. The selected drilling parameter setpoint is provided to an automated drilling unit that is separate from the controller.
Description
TECHNICAL FIELD

The present disclosure is directed at methods, systems, and computer-readable media for performing automated drilling of a wellbore.


BACKGROUND

Oil and gas wellbore drilling may be partially or entirely automated. For example, certain example automated drilling units (or “AutoDrillers”) may attempt to maximize rate of penetration by varying weight on bit in response to one or more measured drilling parameters. Examples of those drilling parameters may comprise any one or more of readings from hookload, depth, and drilling fluid pressure sensors. Those units are designed to increase drilling efficiency by, for example, extending drill bit life and reducing total drilling hours.


Differential pressure is a measurement of fluid force per unit area subtracted from a higher measurement of fluid force per unit area. This comparison can be made between pressures outside and inside a pipe. Differential pressure is commonly calculated as the current standpipe pressure relative to a reference point, ADP=SPP-Pref.


Differential pressure is used when mud motors are used. Mud motors are devices that convert hydraulic power, generated by the circulation of drilling fluid from the surface and down through the drill pipe, to mechanical (rotational) power directly at the drill bit. A mud motor is used to increase the bit rotational speed above that which is achievable through rotation at the surface alone, and also whenever it is necessary to rotate the drill bit without rotating the drill string. Drilling fluid is pumped with the bit off the bottom at the rate to be used while drilling. An initial standpipe pressure measurement is made and is used as a reference point (“zero pressure”, Pref). When the drill bit is lowered to the bottom and cuts into the rock, the pressure increases and the difference relative to the reference point is the differential pressure, DP. It is the pressure across the mud motor and is an indication of the torque applied to the drill bit.


Differential pressure is often used as a control parameter during drilling operations. Limits on differential pressure are typically prescribed to prevent excessive strain on downhole equipment, such as mud motors, which can lead to premature wear and failure, as well as events such as mud motor stalls. The prescribed limit is typically dependent on equipment manufacturer specifications, risk tolerances, and best practices. For example, a differential pressure setpoint may be set to 80% of the Maximum Differential Pressure, DPmax, rating of the mud motor. In other cases, the differential pressure setpoint may be lowered to account for variability in the differential pressure signal to prevent unexpected surges from exceeding a differential pressure limit. The limits are usually enforced by setting an AutoDriller setpoint, and/or other limits such as on standpipe pressure, as well as output levels on pump controllers.


During on-bottom rotary drilling operations, it is desirable to maintain drilling parameters at a prescribed level, or within a desired range. AutoDrillers are typically used to enforce constraints on drilling parameters, such as Rate of Penetration (ROP), Weight On Bit (WOB), Rotary RPM (RPM), Rotary Torque (TQ), and Differential Pressure (DP). The dependence of each drilling parameter on each other drilling parameter is not precisely known. AutoDrillers must simultaneously manage each of the drilling parameters such that all prescribed limits are enforced. This is typically accomplished by controlling a drawworks subsystem which in turn controls the rate at which the drill pipe is lowered into the borehole. Increasing the rate of release typically results in an increase in downhole weight on bit, and subsequently the measured surface weight on bit. A corresponding increase in differential pressure measured at the surface is expected as a proxy for the increase in torque on the drill bit due to the elevated downhole weight on bit.


Differential pressure may vary significantly and unexpectedly throughout the drilling process due to, for example, geologic heterogeneity, and it is often difficult to design and tune AutoDrillers to manage differential pressure in all situations.


SUMMARY

According to a first aspect of the disclosure, there is provided a method of performing automated drilling of a wellbore, comprising, during drilling of the wellbore: in a predicting state: monitoring a drilling parameter; and determining, based on the monitored drilling parameter, that the drilling parameter is likely to exceed a drilling parameter setpoint associated with the drilling parameter; in a mitigating state: in response to determining that the drilling parameter is likely to exceed the drilling parameter setpoint, reducing a rate of penetration (ROP) setpoint so as to mitigate a likelihood of the drilling parameter exceeding the drilling parameter setpoint; and drilling the wellbore according to the reduced ROP setpoint.


Reducing the ROP setpoint may comprise continuously reducing the ROP setpoint over a time window.


Reducing the ROP setpoint may comprise reducing the ROP setpoint by a step change.


Determining that the drilling parameter is likely to exceed the drilling parameter setpoint may comprise determining one or more of the following conditions: a current reading of the drilling parameter is less than the drilling parameter setpoint minus a threshold; a current reading of the drilling parameter is greater than a next most recent reading of the drilling parameter; a slope of a linear regression calculated based on a set of drilling parameter readings, including the current reading of the drilling parameter and one or more older readings of the drilling parameter, is positive; and a current reading of the drilling parameter and each of one or more previous readings of the drilling parameter are greater than the threshold.


Determining that the drilling parameter is likely to exceed the drilling parameter setpoint may comprise determining each of the above conditions.


After drilling the wellbore according to the reduced ROP setpoint, the method may return to the predicting state if any of the following conditions is true: a current reading of the drilling parameter is less than the drilling parameter setpoint minus a threshold; a current reading of the drilling parameter is greater than the drilling parameter setpoint; a slope of a linear regression calculated based on a set of drilling parameter readings, including the current reading of the drilling parameter and one or more older readings of the drilling parameter, is negative; and an elapsed time since the method has been in the mitigation state has increased above a threshold.


Reducing the ROP setpoint may comprise reducing the ROP setpoint by an amount based on one or more of: a rate of change of ROP; a rate of change of a weight on bit (WOB); a rate of change of torque; and a rate of change of differential pressure.


The drilling parameter may be differential pressure, and the drilling parameter setpoint may be a differential pressure setpoint.


The amount by which the ROP setpoint is reduced may be based on a score that is equal to: [(rop.dop.dp.slope.weight*dpSlopeScore)+(rop.dop.wob.slope.weight*wobSlopeScore)+(rop.dop.tq.slope.weight*tqSlopeScore)+(rop.dop.dp.prox.weight*dpProxScore)+(rop.dop.rop.slope.weight*ropSlopeScore)]/TotalParameters, wherein rop.dop.dp.slope.weight, rop.dop.wob.slope.weight, rop.dop.tq.slope.weight, rop.dop.dp.prox.weight, and rop.dop.rop.slope.weight are constants; dpSlopeScore is the rate of change of the differential pressure; wobSlopeScore is the rate of change of a WOB; tqSlopeScore is the rate of change of a torque; ropSlopeScore is the rate of change of ROP; dpProxScore is based on the differential pressure and the differential pressure setpoint; and TotalParameters is rop.dop.dp.prox.weight+rop.dop.dp.slope.weight+rop.dop.tq.slope.weight+rop.dop.rop.slope.weight+rop.dop.wob.slope.weight.dpProxScore may be equal to [Dp−(Dpsp−rop.dop.dp.prox.thresh)]/rop.dop.dp.prox.thresh, wherein: Dp is the differential pressure; Dpsp is the differential pressure setpoint; and rop.dop.dp.prox.thresh is a threshold.


The amount by which the ROP setpoint is reduced may be equal to: z*scaling factor, wherein: z is the score; and scaling factor is based on ROP and the ROP setpoint.


According to a further aspect of the disclosure, there is provided a system for performing automated drilling of a wellbore, the system comprising: a height control apparatus configured to adjust a height of a drill string comprising a drill bit used to drill the wellbore; a height sensor for monitoring a height of the drill string; a rotational drive unit comprising a rotational drive unit controller and a rotation rate sensor for monitoring a rotation rate of the drill bit; a depth sensor for monitoring a depth of the drill bit; a hookload sensor for measuring a weight applied to the drill bit; a pressure sensor for monitoring a differential pressure; a drilling controller communicatively coupled to the rotational drive unit controller, the rotation rate sensor, the height control apparatus, the height sensor, the depth sensor, the hookload sensor, and the pressure sensor, and the drilling controller being configured to perform a method comprising: in a predicting state: monitoring one or more drilling parameters; and determining, based on the monitored one or more drilling parameters, that at least one of the one or more drilling parameters is likely to exceed at least one drilling parameter setpoint associated with the at least one drilling parameter; in a mitigating state: in response to determining that the at least one drilling parameter is likely to exceed the at least one drilling parameter setpoint, reducing a rate of penetration (ROP) setpoint so as to mitigate a likelihood of the at least one drilling parameter exceeding the at least one drilling parameter setpoint; and drilling the wellbore according to the reduced ROP setpoint.


According to a further aspect of the disclosure, there is provided a non-transitory computer-readable medium having stored thereon program code executable by a processor and configured, when executed, to cause the processor to perform a method of performing automated drilling of a wellbore using a drill bit, comprising: in a predicting state: monitoring one or more drilling parameters; and determining, based on the monitored one or more drilling parameters, that the at least one of the one or more drilling parameters is likely to exceed at least one drilling parameter setpoint associated with the at least one drilling parameter; in a mitigating state: in response to determining that the at least one drilling parameter is likely to exceed the at least one drilling parameter setpoint, reducing a rate of penetration (ROP) setpoint so as to mitigate a likelihood of the at least one drilling parameter exceeding the at least one drilling parameter setpoint; and drilling the wellbore according to the reduced ROP setpoint.


According to a further aspect of the disclosure, there is provided a method of performing automated drilling of a wellbore, comprising, during drilling of the wellbore: receiving drilling parameter data; using a controller to generate, based on the drilling parameter data, one or more drilling parameter setpoint recommendations; selecting, from among multiple drilling parameter setpoint recommendations including the one or more drilling parameter setpoint recommendations generated by the controller, one or more drilling parameter setpoints; and providing the selected one or more drilling parameter setpoints to an automated drilling unit that is separate from the controller, wherein the automated drilling unit controls the drilling of the wellbore based on the selected one or more drilling parameter setpoints.


The controller may be a proportional-integral controller.


The controller may be a proportional-integral-derivative controller.


The one or more drilling parameter setpoint recommendations may comprise a rate of penetration (ROP) setpoint recommendation.


The multiple drilling parameter setpoint recommendations may comprise multiple ROP setpoint recommendations.


The one or more drilling parameter setpoint recommendations may comprise a first rate of penetration (ROP) setpoint recommendation; the multiple drilling parameter setpoint recommendations may further comprise a second ROP setpoint recommendation; the method may further comprise generating the second ROP setpoint recommendation by: determining, based on the drilling parameter data, that a differential pressure is likely to exceed a differential pressure setpoint; and in response to determining that the differential pressure is likely to exceed the differential pressure setpoint, generating the second ROP setpoint recommendation; and selecting the one or more drilling parameter setpoints may comprise selecting either the first or the second ROP setpoint recommendation.


Selecting either the first or the second ROP setpoint recommendation may comprise selecting the second ROP setpoint recommendation.


The one or more drilling parameter setpoint recommendations may comprise a first rate of penetration (ROP) setpoint recommendation; the multiple drilling parameter setpoint recommendations may further comprise one or more additional ROP setpoint recommendations; and selecting the one or more drilling parameter setpoints may comprise selecting a lowest ROP setpoint recommendation from among the first ROP setpoint recommendation and each of the one or more additional ROP setpoint recommendations.


According to a further aspect of the disclosure, there is provided a system for performing automated drilling of a wellbore, the system comprising: a height control apparatus configured to adjust a height of a drill string comprising a drill bit used to drill the wellbore; a height sensor for monitoring a height of the drill string; a rotational drive unit comprising a rotational drive unit controller and a rotation rate sensor for monitoring a rotation rate of the drill bit; a depth sensor for monitoring a depth of the drill bit; a hookload sensor for measuring a weight applied to the drill bit; a pressure sensor for monitoring a differential pressure; a first drilling controller communicatively coupled to the rotation rate sensor, the height sensor, the depth sensor, the hookload sensor, and the pressure sensor; and a second drilling controller, separate from the first drilling controller, and communicatively coupled to the rotational drive unit controller and the height control apparatus, wherein the first drilling controller is configured to: receive drilling parameter data; generate, based on the drilling parameter data, one or more drilling parameter setpoint recommendations; select, from among multiple drilling parameter setpoint recommendations including the one or more drilling parameter setpoint recommendations generated by the first controller, one or more drilling parameter setpoints; and provide the selected one or more drilling parameter setpoints to the second drilling controller, and wherein the second drilling controller is configured to control the drilling of the wellbore based on the selected one or more drilling parameter setpoints.


According to a further aspect of the disclosure, there is provided a non-transitory computer-readable medium having stored thereon program code executable by a processor and configured, when executed, to cause the processor to perform a method of performing automated drilling of a wellbore using a drill bit, comprising: receiving drilling parameter data; using a controller to generate, based on the drilling parameter data, one or more drilling parameter setpoint recommendations; selecting, from among multiple drilling parameter setpoint recommendations including the one or more drilling parameter setpoint recommendations generated by the controller, one or more drilling parameter setpoints; and providing the selected one or more drilling parameter setpoints to an automated drilling unit that is separate from the controller, wherein the automated drilling unit controls the drilling of the wellbore based on the selected one or more drilling parameter setpoints.


This summary does not necessarily describe the entire scope of all aspects. Other aspects, features, and advantages will be apparent to those of ordinary skill in the art upon review of the following description of specific embodiments.





BRIEF DESCRIPTION OF THE DRAWINGS

In the accompanying drawings, which illustrate one or more example embodiments:



FIG. 1 is a schematic of a drilling rig, according to an embodiment of the disclosure;



FIGS. 2A and 2B are block diagrams of systems for performing automated drilling of a wellbore, according to the embodiment of FIG. 1;



FIG. 3 depicts a block diagram of the automated drilling unit of FIG. 1, according to an embodiment of the disclosure;



FIG. 4 depicts a block diagram of software modules running on the automated drilling unit of FIG. 1, according to an embodiment of the disclosure;



FIG. 5 depicts a schematic diagram of a PID ROP limiter, an overshoot detector and mitigator, a drilling advisory system, and an automated drilling unit, according to an embodiment of the disclosure;



FIG. 6 depicts a flow diagram of a method of controlling a drilling operation by mitigating a likelihood of a differential pressure exceeding a differential pressure setpoint, according to an embodiment of the disclosure;



FIG. 7 is a first plot showing variations in drilling parameters, including differential pressure and rate of penetration, according to an embodiment of the disclosure; and



FIG. 8 is a second plot showing variations in drilling parameters, including differential pressure and rate of penetration, according to an embodiment of the disclosure.





DETAILED DESCRIPTION

The present disclosure seeks to provide methods, systems, and computer-readable media for performing automated drilling of a wellbore. While various embodiments of the disclosure are described below, the disclosure is not limited to these embodiments, and variations of these embodiments may well fall within the scope of the disclosure which is to be limited only by the appended claims.


During a drilling operation, differential pressure can change rapidly and unexpectedly. Sudden changes in differential pressure may be hard to predict and even harder to deal with. While reactionary approaches to mitigating the consequences of sudden changes in differential pressure are useful, proactive measures may also be taken to anticipate potential spikes/sudden changes in differential pressure. Such proactive measures may increase the likelihood of differential pressure spikes (or spikes in other drilling parameters, such as torque or weight-on-bit) being avoided entirely, by taking action (e.g. by appropriately setting drilling parameter setpoints) before they occur.


Therefore, according to certain embodiments of the disclosure, there are described the following methods of performing automated drilling of a wellbore. During drilling of the wellbore, drilling parameter data (such as readings obtained by one or more drilling parameter sensors) are received. An automated drilling unit (i.e. “AutoDriller”) is used to control, based on the drilling parameter data, one or more drilling parameter setpoints so as to thereby control the drilling of the wellbore. According to some embodiments, and depending on the particular configuration of the AutoDriller, the AutoDriller may have difficulty in anticipating or responding to sudden changes in differential pressure. For example, when differential pressure approaches an associated differential pressure setpoint, the AutoDriller may begin to behave erratically. For instance, other drilling parameters, such as weight on bit (WOB) and rate of penetration (ROP), may begin to unintendedly experience large and sudden changes as a result of drilling parameters changing when the differential pressure setpoint is reached. This can create an unstable system, since the AutoDriller may seek to compensate by switching between controlling parameter loops. For example, the AutoDriller may switch from using WOB as a controlling parameter to ROP as a controlling parameter, or vice versa. If the drilling parameters are behaving erratically, then the AutoDriller may switch between control loops too rapidly, leading to system instability.


Therefore, in order to assist the AutoDriller in anticipating/dealing with sudden changes in differential pressure (or otherwise reducing the likelihood of the AutoDriller behaving erratically in such a way), a controller (such as a PID-proportional-integral-derivative-controller) that is separate from the AutoDriller may be used to generate, based on the drilling parameter data, one or more drilling parameter setpoint recommendations. For example, the controller may provide an ROP setpoint recommendation to the AutoDriller. The AutoDriller may therefore control the one or more drilling parameter setpoints based on any setpoint recommendations that are provided to it by the controller.


Providing setpoint recommendations to the AutoDriller in this manner may assist the AutoDriller in proactively anticipating potential sudden changes in different pressure. By adopting the setpoint recommendations provided to it (e.g. by setting the ROP setpoint to whatever recommendation was made to it by the controller), the AutoDriller may proactively reduce the risk of differential pressure suddenly spiking during the drilling operation.


In certain cases, even with appropriate selection of an ROP setpoint, differential pressure may still spike. In order to deal with sudden surges in differential pressure, one or more predictive mitigation strategies may be adopted.


For example, according to embodiments of the disclosure, there are described methods, systems, and computer-readable media for mitigating a likelihood of the differential pressure exceeding or overshooting the differential pressure setpoint. Initially, in a predicting state, readings of differential pressure are monitored. Based on the monitored differential pressure, the system may determine that the differential pressure is likely to exceed a differential pressure setpoint. For example, based on the slope of a preset number of differential pressure readings, the system may determine that the differential pressure is likely to exceed a differential pressure setpoint. In response to determining that the differential pressure is likely to exceed the differential pressure setpoint, the system transitions to a mitigating state, and reduces a rate of penetration (ROP) setpoint so as to mitigate a likelihood of the differential pressure exceeding the differential pressure setpoint. Limiting or decreasing ROP may assist in controlling differential pressure by preventing further increases in differential pressure, thereby decreasing the likelihood of the differential pressure exceeding the differential pressure setpoint and causing AutoDriller dysfunction as described above. Reducing ROP may also include setting the ROP setpoint to zero.


While the disclosure has generally been presented in the context of mitigating a likelihood of differential pressure exceeding or overshooting the differential pressure setpoint, embodiments of the disclosure may also be used to mitigate a likelihood of other drilling parameters (such as WOB and ROP) exceeding or overshooting associated drilling parameter setpoints.



FIG. 1 shows a drilling rig 100, according to one embodiment. The rig 100 comprises a derrick 104 that supports a drill string 118. The drill string 118 has a drill bit 120 at its downhole end, which is used to drill a wellbore 116. A drawworks 114 is located on the drilling rig's 100 floor 128. A drill line 106 extends from the drawworks 114 to a traveling block 108 via a crown block 102. The traveling block 108 is connected to the drill string 118 via a top drive 110. Rotating the drawworks 114 consequently is able to change WOB during drilling, with rotation in one direction lifting the traveling block 108 and generally reducing WOB and rotation in the opposite direction lowering the traveling block 108 and generally increasing WOB. The drill string 118 also comprises, near the drill bit 120, a bent sub 130 and a mud motor 132. The mud motor's 132 rotation is powered by the flow of drilling mud through the drill string 118, as discussed in further detail below, and combined with the bent sub 130 permits the rig 100 to perform directional drilling. The top drive 110 and mud motor 132 collectively provide rotational force to the drill bit 120 that is used to rotate the drill bit 120 and drill the wellbore 116. While in FIG. 1 the top drive 110 is shown as an example rotational drive unit, in a different embodiment (not depicted) another rotational drive unit may be used, such as a rotary table.


A mud pump 122 rests on the floor 128 and is fluidly coupled to a shale shaker 124 and to a mud tank 126. The mud pump 122 pumps mud from the tank 126 into the drill string 118 at or near the top drive 110, and mud that has circulated through the drill string 118 and the wellbore 116 return to the surface via a blowout preventer (“BOP”) 112. The returned mud is routed to the shale shaker 124 for filtering and is subsequently returned to the tank 126.



FIG. 2A shows a block diagram of a system 200 for performing automated drilling of a wellbore, according to the embodiment of FIG. 1. The system 200 comprises various rig sensors: a torque sensor 202a, depth sensor 202b, hookload sensor 202c, and standpipe pressure sensor 202d (collectively, “sensors 202”).


The system 200 also comprises the drawworks 114 and top drive 110. The drawworks 114 comprises a programmable logic controller (“drawworks PLC”) 114a that controls the drawworks' 114 rotation and a drawworks encoder 114b that outputs a value corresponding to the current height of the traveling block 108. The top drive 110 comprises a top drive programmable logic controller (“top drive PLC”) 110a that controls the top drive's 114 rotation and an RPM sensor 110b that outputs the rotational rate of the drill string 118. More generally, the top drive PLC 110a is an example of a rotational drive unit controller and the RPM sensor 110b is an example of a rotation rate sensor.


A first junction box 204a houses a top drive controller 206, which is communicatively coupled to the top drive PLC 110a and the RPM sensor 110b. The top drive controller 206 controls the rotation rate of the drill string 118 by instructing the top drive PLC 110a and obtains the rotation rate of the drill string 118 from the RPM sensor 110b.


A second junction box 204b houses an automated drilling unit 208, which is communicatively coupled to the drawworks PLC 114a and the drawworks encoder 114b. The automated drilling unit 208 modulates WOB during drilling by instructing the drawworks PLC 114a and obtains the height of the traveling block 108 from the drawworks encoder 114b. In different embodiments, the height of the traveling block 108 can be obtained digitally from rig instrumentation, such as directly from the PLC 114a in digital form. In different embodiments (not depicted), the junction boxes 204a, 204b may be combined in a single junction box, comprise part of the doghouse computer 210, or be connected indirectly to the doghouse computer 210 by an additional desktop or laptop computer.


The automated drilling unit 208 is also communicatively coupled to each of the sensors 202. In particular, the automated drilling unit 208 determines WOB from the hookload sensor 202c and determines the ROP of the drill bit 120 by monitoring the height of the traveling block 108 over time.


The system 200 also comprises a doghouse computer 210. The doghouse computer 210 comprises a processor 212 and memory 214 communicatively coupled to each other. The memory 214 stores on it computer program code that is executable by the processor 212 and that, when executed, causes the processor 212 to perform a method 500 for performing automated drilling of the wellbore 116, such as that depicted in FIG. 5. The processor 212 receives readings from the RPM sensor 110b, drawworks encoder 114b, and the rig sensors 202, and sends an RPM target and a WOB target to the top drive controller 206 and automated drilling unit 208, respectively. The top drive controller 206 and automated drilling unit 208 relay these targets to the top drive PLC 110a and drawworks PLC 114a, respectively, where they are used for automated drilling. More generally, the RPM target is an example of a rotation rate target.


Each of the first and second junction boxes may comprise a Pason Universal Junction Box™ (UJB) manufactured by Pason Systems Corp. of Calgary, Alberta. The automated drilling unit 208 may be a Pason AutoDriller™ manufactured by Pason Systems Corp. of Calgary, Alberta.


The top drive controller 110, automated drilling unit 208, and doghouse computer 210 collectively comprise an example type of drilling controller. In different embodiments, however, the drilling controller may comprise different components connected in different configurations. For example, in the system 200 of FIG. 2A, the top drive controller 110 and the automated drilling unit 208 are distinct and respectively use the RPM target and WOB target for automated drilling. However, in different embodiments (not depicted), the functionality of the top drive controller 206 and automated drilling unit 208 may be combined or may be divided between three or more controllers. In certain embodiments (not depicted), the processor 212 may directly communicate with any one or more of the top drive 110, drawworks 114, and sensors 202. Additionally or alternatively, in different embodiments (not depicted) automated drilling may be done in response to only the RPM target, only the WOB target, one or both of the RPM and WOB targets in combination with additional drilling parameters, or targets based on drilling parameters other than RPM and WOB. Examples of these additional drilling parameters comprise differential pressure, an ROP target, depth of cut, torque, and flow rate (into the wellbore 116, out of the wellbore 116, or both).


In the depicted embodiments, the top drive controller 110 and the automated drilling unit 208 acquire data from the sensors 202 discretely in time at a sampling frequency Fs, and this is also the rate at which the doghouse computer 210 acquires the sampled data. Accordingly, for a given period T, N samples are acquired with N=TFS. In different embodiments (not depicted), the doghouse computer 210 may receive the data at a different rate than that at which it is sampled from the sensors 202. Additionally or alternatively, the top drive controller 110 and the automated drilling unit 208 may sample data at different rates, and more generally in embodiments in which different equipment is used data may be sampled from different sensors 202 at different rates.


Turning to FIG. 2B, there is shown a block diagram of a system 220 for performing target differential pressure range management, target differential pressure management, and differential pressure oscillation detection. Within the context of the present disclosure, target differential pressure range management may refer to a process in which weight on bit is controlled to a target weight on bit range corresponding to a target differential pressure range, so that differential pressure is controlled to the target differential pressure range, as described in further detail below. Within the context of the present disclosure, differential pressure target management may refer to a process in which weight on bit is controlled to a target weight on bit, so that differential pressure is controlled to a target differential pressure that is less than a differential pressure limit. Within the context of the present disclosure, oscillation detection may refer to a process in which fluctuations in differential pressure and other drilling parameters are detected, as described in further detail below. System 220 includes an Electronic Drilling Recorder (EDR) 222 comprising a PID ROP limiter 224 (or simply “ROP limiter”) for providing ROP setpoint recommendations to automated drilling unit 208, an overshoot detector and mitigator 226 for predicting and reducing a risk of differential pressure overshooting its setpoint, an oscillation detector 228 for performing differential pressure oscillation detection, a Human Machine Interface (HMI) 230, rigsite data storage 232, optimization and control software 234, and doghouse computer 210.


Doghouse computer 210 collects sensor readings from UJB 204b (FIG. 2A). The sensor readings (which may be referred to as drilling parameters) include RPM, WOB, differential pressure, torque, travelling block height (or simply “block height”), and depth, and may be derived directly from the measurements obtained by the sensors. Other drilling parameters may be derived from RPM, WOB, differential pressure, and torque. For example, bit torque may be derived from differential pressure times the ratio of a maximum torque of mud motor 132 to a maximum differential pressure of mud motor 132. Doghouse computer 210 processes the sensor readings into a stream of sensor data, and ROP limiter 224 and overshoot detector and mitigator 226 are configured to receive the sensor data from doghouse computer 210. Based on the sensor data, ROP limiter 224 and overshoot detector and mitigator 226 may adjust one or more drilling parameter setpoints, such as an ROP setpoint, as described in further detail below. Each of ROP limiter 224 and overshoot detector and mitigator 226 may operate in parallel, tandem, or independently of each other, in addition to other functions such as optimization processes and routines that handle other aspects of the drilling process, such as managing stick slip.


Adjusted drilling parameter setpoints are communicated to doghouse computer 210 and are sent from doghouse computer 210 to automated drilling unit 208. Automated drilling unit 208 may then control the drilling operation based on the updated drilling parameter setpoints, by controlling a rotary system (e.g., top drive 110) and a drawworks system (e.g., drawworks 114).


Referring now to FIG. 3, there is shown a hardware block diagram 300 of the second junction box 204b of FIG. 2A. The second junction box 204b comprises a microcontroller 302 communicatively coupled to a field programmable gate array (“FPGA”) 320. The depicted microcontroller 302 is an ARM-based microcontroller, although in different embodiments (not depicted) the microcontroller 302 may use a different architecture. The microcontroller 302 is communicatively coupled to 32 KB of non-volatile random access memory (“RAM”) in the form of ferroelectric RAM 304; 16 MB of flash memory 306; a serial port 308 used for debugging purposes; LEDs 310, LCDs 312, and a keypad 314 to permit a driller to interface with the automated drilling unit 208; and communication ports in the form of an Ethernet port 316 and RS-422 ports 318. While FIG. 3 shows the microcontroller 302 in combination with the FPGA 320, in different embodiments (not depicted) different hardware may be used. For example, the microcontroller 302 may be used to perform the functionality of both the FPGA 320 and microcontroller 302 in FIG. 3; alternatively, a PLC may be used in place of one or both of the microcontroller 302 and the FPGA 320.


The microcontroller 302 communicates with the hookload and standpipe pressure sensors 202c,202d via the FPGA 320. More specifically, the FPGA 320 receives signals from these sensors 202c,202d as analog inputs 322; the FPGA 320 is also able to send analog signals using analog outputs 324. These inputs 322 and outputs 324 are routed through intrinsic safety (“IS”) barriers for safety purposes, and through wiring terminals 330. The microcontroller 302 communicates using the RS-422 ports 318 to the PLC 114a; accordingly, the microcontroller 302 receives signals from a block height sensor (not shown) and the torque sensor 202a and sends signals to a variable frequency drive (or, in some embodiments, a braking device) via the RS-422 ports 318. According to some embodiments, automated drilling unit 208 outputs a throttle signal to a PLC using an analog output. According to some embodiments, automated drilling unit 208 communicates with a band brake controller using an RS-422 port.


The FPGA 320 is also communicatively coupled to a non-incendive depth input 332 and a non-incendive encoder input 334. In different embodiments (not depicted), the automated drilling unit 208 may receive different sensor readings in addition to or as an alternative to the readings obtained using the depicted sensors 202a, 202b, 202c, 202d.


First junction box 204a, comprising top drive controller 206, comprises an input/output architecture similar to that of second junction box 204b shown in FIG. 3. However, the RS-422 port is not used, and all an inputs/outputs use analog or discrete digital signaling.


Referring now to FIG. 4, there is shown a block diagram of software modules, some of which comprise a software application 402, running on the automated drilling unit of FIG. 3. The application 402 comprises a data module 414 that is communicative with a PID module 416, a block velocity module 418, and a calibrations module 420. The microcontroller 302 runs multiple PID control loops in order to determine the signal to send to the PLC 114a to control the variable frequency drive; the microcontroller 302 does this in the PID module 416. The microcontroller 302 uses the block velocity module 418 to determine the velocity of the traveling block 108 from the traveling block height derived using measurements from the block height sensor. The microcontroller 302 uses the calibrations module 420 to convert the electrical signals received from the sensors 202a, 202b, 202c, 202d into engineering units; for example, to convert a current signal from mA into kilopounds.


The data module 414 also communicates using an input/output multiplexer, labeled “IO Mux” in FIG. 4. In one of the multiplexer states the data module 414 communicates digitally via the Modbus protocol using the system modbus 412 module, which is communicative with a Modbus receive/transmit engine 408 and the UARTS 406. In another of the multiplexer states, the data module 414 communicates analog data directly using the data acquisition in/out module 404. While in FIG. 4 the Modbus protocol is shown as being used, in different embodiments (not depicted) a different protocol may be used, such as another suitable industrial bus communication protocol.


As mentioned above, the relationships between measured surface weight on bit, actual downhole weight on bit, torque on the drill bit, and differential pressure can be variable throughout the drilling of a wellbore, and generally may not be directly measured. The variability arises from changes in, for example, geology which can result in small and large unexpected fluctuations in differential pressure. In some cases, the fluctuations in differential pressure can temporarily cause differential pressure to exceed the differential pressure limit assigned to the AutoDriller. In response, the AutoDriller will attempt to bring differential pressure back below the limit by decreasing the rate of release of the drill pipe to reduce weight on bit, and subsequently differential pressure.


This method of managing differential pressure to enforce the prescribed limits is challenging due to, for example, the aforementioned unexpected changes in drilling conditions, setpoint changes resulting in infeasible parameter levels, ill-prescribed limits resulting in conflicting control objectives, sub-optimal tuning of AutoDriller control loops, and also due to time delays between the responses of each drilling parameter and the AutoDriller inputs. Each of these factors can contribute to undesirable behavior of the AutoDriller control system, such as large swings and oscillatory behavior of the rate of release, which then can propagates to other drilling parameters and corresponding control loops, such as rate of penetration, weight on bit, torque, and differential pressure. For example, in AutoDrillers based on PID (Proportional Integral Derivative) control, over-compensation due to aggressive tuning can result in integral windup, resulting in poor controller behavior. Large changes in any one of the control parameters can also lead to poor drilling performance, such as temporary or prolonged decreases in the rate of drilling, as well as potentially destructive drilling dysfunctions such as bit bounce, whirl, stick slip, motor stalls, and shocks which can cause premature wear and failure of equipment.


Turning to FIG. 5, there is shown a schematic diagram of ROP limiter 224 and overshoot detector and mitigator 226 being used to provide ROP setpoint recommendations to automated drilling unit 208, according to an embodiment of the disclosure.


As can be seen in FIG. 5, ROP limiter 224 and overshoot detector and mitigator 226 are used to provide ROP setpoint recommendations to a DAS (Drilling Advisory System) 508. In turn, DAS 508 determines, based on the received ROP setpoint recommendations, a selected ROP setpoint recommendation that is then passed to automated drilling unit 208. DAS 508 additionally provides other setpoint recommendations to automated drilling unit 208, such as a WOB setpoint recommendation generated by a wave optimization module 509.


Automated drilling unit 208 is configured to control a drilling operation by controlling the ROP of the drill bit, for example by controlling a rate of rotation of a drum based on one or more drilling parameter setpoint recommendations that are provided to it by DAS 208 . . . . The drum spools a hookload drill line which holds traveling block 108 which holds drill string 118. The drilling parameter setpoint recommendations that are provided to automated drilling unit 208 may override any drilling parameter setpoints that are otherwise input to/generated by automated drilling unit 208.


As described above, based on the received ROP setpoint recommendations, DAS 508 selects a particular ROP setpoint recommendation that is then passed to automated drilling unit 208. In particular, DAS 508 includes an ROP setpoint calculator 507 configured to determine, from among a number of different ROP setpoint recommendations (such as the ROP setpoint recommendation output by ROP limiter 224 and the ROP setpoint recommendation output by overshoot detector and mitigator 226), which ROP setpoint recommendation to prioritize before passing the selected ROP setpoint recommendation to automated drilling unit 208.


As mentioned above, DAS 508 is further configured, using wave optimization module 509, to generate a WOB setpoint recommendation 510 that is provided to automated drilling unit 208. Details of how wave optimization module 509 may generate WOB setpoint recommendation 510 are provided in U.S. Pat. No. 10,202,837B2, herein incorporated by reference in its entirety.


ROP limiter 224 is configured to generate its own ROP setpoint recommendation 506 and provide it to DAS 508. ROP limiter 224 generates ROP setpoint recommendation 506 based on multiple PID controllers operating on a combination of drilling parameters. ROP limiter 224 selects the PID loop (WOB 501, differential pressure 502, or torque 503) with the minimum output (i.e. the loop with an actual parameter value closest to its setpoint) and then scales the PID output to an actual ROP by multiplying by a configured constant. The output of a minimum and scale module 505 is recommended ROP setpoint 506 that is then passed to DAS 508, as described above. Generally, the goal of ROP limiter 224 is to track changes in ROP and adjust ROP setpoint recommendation 506 accordingly by keeping ROP setpoint recommendation 506 bounded within a preset range of ROP. According to some embodiments, PI controllers may be used instead of PID controllers.


ROP limiter 224 may be used to proactively generate ROP setpoint recommendations to DAS 508 so as to avoid potential future swings in differential pressure. While such proactive measures are useful, it is also useful to attempt to predict potential overshoots of the differential pressure setpoint, since the ROP recommendations provided by ROP limiter 224 may not be sufficient to fully control variations in differential pressure.


As can be seen in FIG. 5, overshoot detector and mitigator 226 is also used to provide ROP setpoint recommendations to DAS 508, in the event that overshoot detector and mitigator 226 predicts that differential pressure will overshoot the differential pressure setpoint.


Generally, overshoot detector and mitigator 226 employs the outputs of a WOB detector 521, a differential pressure detector 523, and a torque detector 525 to generate, using a mitigator module 527, an ROP setpoint recommendation 529. WOB detector 521, differential pressure detector 523, and torque detector 525 can use any number of input parameters (sensor values) for predicting whether an overshoot for the parameter in question is likely to occur. Details of this process are described in further detail below in connection with FIG. 6.


As mentioned above, DAS 508 provides ROP setpoint recommendations 511 to automated drilling unit 208. In particular, DAS 508 selects an ROP setpoint recommendation that is: (1) ROP setpoint recommendation 529 generated by overshoot detector and mitigator 226, if overshoot detector and mitigator 226 has predicted an overshoot of the differential pressure setpoint; or (2) PID ROP setpoint recommendation 506 generated by ROP limiter 224, if overshoot detector and mitigator 226 has not predicted an overshoot of the differential pressure setpoint. According to some embodiments, other ROP setpoints recommendations may be internally generated within DAS 508. In such a case, assuming that overshoot detector and mitigator 226 has not predicted an overshoot of the differential pressure setpoint, then DAS 508 selects an ROP setpoint recommendation that is the lower of PID ROP setpoint recommendation 506 generated by ROP limiter 224 and any other ROP setpoints recommendations generated internally by DAS 508. Automated drilling unit 208 then applies ROP setpoint recommendation 511 provided to it by DAS 508, and uses ROP setpoint recommendation 511 to control the drum rotation speed.


Although in FIG. 5 overshoot detector and mitigator 226 is shown as a separate component to automated drilling unit 208, according to some embodiments overshoot detector and mitigator 226 may be integrated within automated drilling unit 208.


Turning to FIG. 6, there is now shown a flow diagram of a method of controlling a drilling operation by predicting and mitigating a likelihood of differential pressure materially overshooting a differential pressure setpoint.


At block 61, overshoot detector and mitigator 226 obtains readings of various drilling parameters, such as differential pressure (and its setpoint), torque (and its setpoint), raw/averaged ROP, the last ROP setpoint, and WOB. The readings may be obtained, for example, every second.


At block 62, overshoot detector and mitigator 226 determines whether the readings are valid. For example, it is possible that a sensor intermittently/totally fails to produce a value, in which case the value is determined to be invalid and is not used.


At block 63, overshoot detector and mitigator 226 determines that one or more of the readings are invalid, in which case the process returns to block 61.


At block 64, overshoot detector and mitigator 226 determines that the readings are valid, and the readings are added to a buffer of stored drilling parameter readings.


At block 65, overshoot detector and mitigator 226 determines whether the buffer is full. If the buffer is not full, then the process returns to block 64.


At block 66, overshoot detector and mitigator 226 determines that the buffer is full and enters a predicting state. In the predicting state, overshoot detector and mitigator 226 determines a likelihood of the differential pressure exceeding a differential pressure setpoint, as described in further detail below. Additionally, prior to entering the predicting state, overshoot detector and mitigator 226 may determine that the drill bit is on bottom (i.e. the bit depth is determined to be equal to the hole depth) and rotating.


At block 67, overshoot detector and mitigator 226 determines whether the differential pressure is likely to exceed or overshoot the differential pressure setpoint. If the differential pressure is not likely to exceed the differential pressure setpoint, then the process returns to block 66.


At block 68, if the differential pressure is likely to exceed the differential pressure setpoint, then overshoot detector and mitigator 226 leaves the predicting state and enters a mitigating state. In the mitigating step, overshoot detector and mitigator 226 controls the ROP setpoint in order to induce a change in the behaviour of the differential pressure and mitigate the likelihood of the differential pressure exceeding the differential pressure setpoint.


At block 69, overshoot detector and mitigator 226 determines whether the likelihood of the differential pressure exceeding the differential pressure setpoint has been mitigated. If the likelihood of the differential pressure exceeding the differential pressure setpoint has been mitigated, the process returns to block 66 at which overshoot detector and mitigator 226 leaves the mitigating state and re-enters the predicting state.


At block 69, overshoot detector and mitigator 226 determines that the likelihood of the differential pressure exceeding the differential pressure setpoint has not been mitigated, and the process moves to block 70.


At block 70, overshoot detector and mitigator 226 determines whether overshoot detector and mitigator 226 has been in the mitigating state for at least a predetermined amount of time. If overshoot detector and mitigator 226 has been in the mitigating state for at least the predetermined amount of time, then the process returns to block 66 at which overshoot detector and mitigator 226 leaves the mitigating state and re-enters the predicting state. If overshoot detector and mitigator 226 has not been in the mitigating state for at least the predetermined amount of time, then the process returns to block 69.


In the predicting state, in order to determine the likelihood of the differential pressure exceeding the differential pressure setpoint, overshoot detector and mitigator 226 continuously assesses changes in the differential pressure to identify potential overshooting of the differential pressure setpoint.


According to some embodiments, in order to identify a potential overshoot, the following conditions must be fulfilled:

    • The current differential pressure (“DP”) is in-between the differential pressure setpoint (DP_SP) and DP_SP-rop.dop.dp.prox.thresh.
    • The slope of a linear regression calculated based on the DP readings in the buffer is positive.
    • The calculated overshoot score (see below) for the current iteration and the last iteration are valid. As described in further below, the overshoot score is measure of a likelihood of the differential pressure setpoint being overshot.
    • The current DP reading and each previous DP reading in the buffer is greater than rop.dop.dp.prox.thresh.
    • The calculated overshoot score for the current iteration is greater than that of the last iteration.


      rop.dop.dp.prox.thresh is a threshold at which overshoot detector and mitigator 226 enters the predicting state. Below the threshold, the algorithm is off since it is determined that DP is sufficiently far below DP_SP that there is no immediate risk of DP_SP being exceeded.


Once all of the above conditions are met, overshoot detector and mitigator 226 transitions from the predicting state to the mitigating state.


In the mitigating state, overshoot detector and mitigator 226 recommends values for the ROP setpoint (ROP_SP) that are based on the current ROP, until one of the following conditions is met:

    • DP is less than DP_SP-rop.dop.dp.prox.thresh.
    • DP is greater than DP_SP.
    • The slope of a linear regression calculated based on the DP readings in the buffer is negative.
    • An elapsed time since overshoot detector and mitigator 226 has been in the mitigating state has increased above a threshold.


According to some embodiments, recommended values for ROP_SP are calculated as follows:









ROP_Change
=

z_score
*
Scaled_ROP

_MaxRateOfChange








z_score
=

[


(

DP_SP
-

(


rop
.
dop
.
dp
.
prox
.
thresh

/
2

)


)

-
DP

]







/
[

(


rop
.
dop
.
dp
.
prox
.
thresh

/
2

)

]








Scaled_ROP

_MaxRateOfChange

=

ROP
*

(


rop
.
dop
.
max
.
rop
.
roc

/

rop
.
dop
.
rop
.
max
.
roc


)









rop.dop.max.rop.roc is the maximum change in ROP_SP rop.dop.rop.max.roc. rop.dop.rop.max.roc is the ROP for maximum change in ROP_SP. These values are used to scale the current ROP based on the ROP setpoint recommendation. For example, if rop.dop.max.rop.roc is set to 3 m/hr and rop.dop.rop.max.roc is set to 150 m/hr, then ROP_SP is permitted to change at a maximum of 3 m/hr when the current ROP is 150 m/hr. Generally, for higher ROPs, a greater change in ROP_SP is required to have an impact on DP.


Depending on rop.dop.mit.scheme (which defines whether the current ROP setpoint or last ROP setpoint is used to calculate the recommended ROP setpoint), the recommended ROP_SP is calculated as follows:







Rec_ROP

_SP

=


(

ROP


or


ROP_SP

)

+
ROP_Change





The overshoot score is calculated as follows:









DP_SlopeScore
=


getSlope

(
DP_DataBuffer
)

/

rop
.
dop
.
dp
.
slope
.
thresh








WOB_SlopeScore
=


getSlope

(
WOB_DataBuffer
)

/

rop
.
dop
.
wob
.
slope
.
thresh








TQ_SlopeScore
=




getSlope

(
TQ_DataBuffer
)

/

rop
.
dop


..



tq
.
slope
.
thresh








ROP_SlopeScore
=


getSlope

(
ROP_DataBuffer
)

/

rop
.
dop
.
rop
.
slope
.
thresh








DP_ProxScore
=


(

DP
-

(

DP_SP
-

rop
.
dop
.
dp
.
prox
.
thresh


)


)

/

rop
.
dop
.
dp
.
prox
.
thresh








TotalParameters
=


rop
.
dop
.
rop
.
rop
.
slope
.
weight

+

rop
.
dop
.
wob
.
slope
.
weight








score
=


(


(


rop
.
dop
.
dp
.
slope
.
weight

*
DP_SlopeScore

)

+

(


rop
.
dop
.
wob
.
slope
.
weight

*
WOB_SlopeScore

)

+

(


rop
.
dop
.
tq
.
slope
.
weight

*
TQ_SlopeScore

)

+

(


rop
.
dop
.
dp
.
prox
.
weight

*
DP_ProxScore

)

+

(


rop
.
dop
.
rop
.
slope
.
weight

*
ROP_SlopeScore

)


)

/
TotalParameters








DP_ProxScore is based on a proximity of DP to its setpoint.


The overshoot score may be calculated on any combination of differential pressure, WOB, torque, and ROP. The optimum overshoot score may be calculated based on differential pressure, with calculations based on WOB, torque, and/or ROP being used to reduce false positives.


The getSlope function fits a linear regression model on the drilling parameter readings stored in the buffer, and returns the slope of the linear regression model.


All data in the buffer is cleared if any one of the following conditions is met:

    • The rop.dop.window is changed. The rop.dop.window is a measure of the size of the window that is used to calculate the slope of the readings of differential pressure, WOB, torque, and ROP in the buffer. As described above, the slopes are then used to determine how fast individual drilling parameters are rising which in turn enables overshoot detector and mitigator 226 to determine estimate how likely DP will overshoot DP_SP. Changing the size of rop.dop.window can help smooth any noise in the data.
    • Overshoot detector and mitigator 226 determines that the drill bit is off bottom.
    • Overshoot detector and mitigator 226 is in the predicting state and DP has exceeded DP_SP. In this case, overshoot detector and mitigator 226 was unsuccessful in mitigating the risk of DP overshooting DP_SP, and all data is cleared from the buffer.


Turning to FIGS. 7 and 8, there are shown plots showing variations in drilling parameters, including differential pressure and rate of penetration, during a drilling operation.


As can be seen in FIGS. 7 and 8, in the predicting state, overshoot detector and mitigator 226 predicts a potential overshoot of the differential pressure setpoint (reference 72/82). Overshoot detector and mitigator 226 therefore enters a mitigating state, and determines and effects a step-wise reduction in the ROP setpoint (reference 74/84). According to some embodiments, ROP may be reduced in a gradual, continuous manner (such as over a time window of 30 seconds, for instance). In response to the decreased ROP setpoint, the slope of the differential pressure reduces, avoiding the overshoot that was predicted (reference 76/86). With the overshoot prevented, overshoot detector and mitigator 226 returns to the predicting state (reference 78/88).


While particular embodiments have been described in the foregoing, it is to be understood that other embodiments are possible and are intended to be included herein. It will be clear to any person skilled in the art that modifications of and adjustments to the foregoing embodiments, not shown, are possible.


As an example, in the depicted embodiments the drawworks 114 is used to raise and lower the drill string 118. In different embodiments (not depicted), a different height control apparatus for raising or lowering the drill string 118 may be used. For example, hydraulics may be used for raising and lowering the drill string 118. In embodiments in which hydraulics are used, the traveling block 108 may be omitted and consequently the processor 212 does not use the height of the block 108 as a proxy for drill string height, as it does in the depicted embodiments. In those embodiments, the processor 212 may use output from a different type of height sensor to determine drill string position and ROP. For example, the motion of the traveling block 108 may be translated into rotary motion and rotary motion encoder may then be used to digitize readings of that motion. This may be done using a roller that runs along a rail or, if crown sheaves are present, the encoder may be installed on the sheaves' axel. Various gears may also be present as desired. As additional examples, laser based motion measurements may be taken, a machine vision based measurement system may be used, or both.


While a single processor 212 is depicted in FIG. 2A, in different embodiments (not depicted) the processor 212 may comprise multiple processors, one or more microprocessors, or a combination thereof. Similarly, in different embodiments (not depicted) the single memory 214 may comprise multiple memories. Any one or more of those memories may comprise, for example, mass memory storage, ROM, RAM, hard disk drives, optical disk drives (including CD and DVD drives), magnetic disk drives, magnetic tape drives (including LTO, DLT, DAT and DCC), flash drives, removable memory chips such as EPROM or PROM, or similar storage media as known in the art.


In different embodiments (not depicted), the computer 210 may also comprise other components for allowing computer programs or other instructions to be loaded. Those components may comprise, for example, a communications interface that allows software and data to be transferred between the computer 210 and external systems and networks. Examples of the communications interface comprise a modem, a network interface such as an Ethernet card, a wireless communication interface, or a serial or parallel communications port. Software and data transferred via the communications interface are in the form of signals which can be electronic, acoustic, electromagnetic, optical, or other signals capable of being received by the communications interface. The computer 210 may comprise multiple interfaces.


In certain embodiments (not depicted), input to and output from the computer 210 is administered by an input/output (I/O) interface. In these embodiments the computer 210 may further comprise a display and input devices in the form, for example, of a keyboard and mouse. The I/O interface administers control of the display, keyboard, and mouse. In certain additional embodiments (not depicted), the computer 210 also comprises a graphical processing unit. The graphical processing unit may also be used for computational purposes as an adjunct to, or instead of, the processor 210.


In all embodiments, the various components of the computer 210 may be communicatively coupled to one another either directly or indirectly by shared coupling to one or more suitable buses.


Directional terms such as “top”, “bottom”, “up”, “down”, “front”, and “back” are used in this disclosure for the purpose of providing relative reference only, and are not intended to suggest any limitations on how any article is to be positioned during use, or to be mounted in an assembly or relative to an environment. The term “couple” and similar terms, and variants of them, as used in this disclosure are intended to include indirect and direct coupling unless otherwise indicated. For example, if a first component is communicatively coupled to a second component, those components may communicate directly with each other or indirectly via another component. Additionally, the singular forms “a”, “an”, and “the” as used in this disclosure are intended to include the plural forms as well, unless the context clearly indicates otherwise.


The word “approximately” as used in this description in conjunction with a number or metric means within 5% of that number or metric.


It is contemplated that any feature of any aspect or embodiment discussed in this specification can be implemented or combined with any feature of any other aspect or embodiment discussed in this specification, except where those features have been explicitly described as mutually exclusive alternatives.

Claims
  • 1. A method of performing automated drilling of a wellbore, comprising, during drilling of the wellbore: in a predicting state: monitoring a drilling parameter; anddetermining, based on the monitored drilling parameter, that the drilling parameter is likely to exceed a drilling parameter setpoint associated with the drilling parameter;in a mitigating state: in response to determining that the drilling parameter is likely to exceed the drilling parameter setpoint, reducing a rate of penetration (ROP) setpoint so as to mitigate a likelihood of the drilling parameter exceeding the drilling parameter setpoint; anddrilling the wellbore according to the reduced ROP setpoint.
  • 2. The method of claim 1, wherein reducing the ROP setpoint comprises continuously reducing the ROP setpoint over a time window.
  • 3. The method of claim 1, wherein reducing the ROP setpoint comprises reducing the ROP setpoint by a step change.
  • 4. The method of claim 1, wherein determining that the drilling parameter is likely to exceed the drilling parameter setpoint comprises determining one or more of the following conditions: a current reading of the drilling parameter is less than the drilling parameter setpoint minus a threshold;a current reading of the drilling parameter is greater than a next most recent reading of the drilling parameter;a slope of a linear regression calculated based on a set of drilling parameter readings, including the current reading of the drilling parameter and one or more older readings of the drilling parameter, is positive; anda current reading of the drilling parameter and each of one or more previous readings of the drilling parameter are greater than the threshold.
  • 5. The method of claim 4, wherein determining that the drilling parameter is likely to exceed the drilling parameter setpoint comprises determining each of the above conditions.
  • 6. The method of claim 1, wherein, after drilling the wellbore according to the reduced ROP setpoint, the method returns to the predicting state if any of the following conditions is true: a current reading of the drilling parameter is less than the drilling parameter setpoint minus a threshold;a current reading of the drilling parameter is greater than the drilling parameter setpoint;a slope of a linear regression calculated based on a set of drilling parameter readings, including the current reading of the drilling parameter and one or more older readings of the drilling parameter, is negative; andan elapsed time since the method has been in the mitigation state has increased above a threshold.
  • 7. The method of claim 1, wherein reducing the ROP setpoint comprises reducing the ROP setpoint by an amount based on one or more of: a rate of change of ROP;a rate of change of a weight on bit (WOB);a rate of change of torque; anda rate of change of differential pressure.
  • 8. The method of claim 1, wherein the drilling parameter is differential pressure, and wherein the drilling parameter setpoint is a differential pressure setpoint.
  • 9. The method of claim 8, wherein the amount by which the ROP setpoint is reduced is based on a score that is equal to: [(rop.dop.dp.slope.weight*dpSlopeScore)+(rop.dop.wob.slope.weight*wobSlopeScore)+(rop.dop.tq.slope.weight*tqSlopeScore)+(rop.dop.dp.prox.weight*dpProxScore)+(rop.dop.rop.slope.weight*ropSlopeScore)]/TotalParameters, wherein: rop.dop.dp.slope.weight, rop.dop.wob.slope.weight, rop.dop.tq.slope.weight, rop.dop.dp.prox.weight, and rop.dop.rop.slope.weight are constants;dpSlopeScore is the rate of change of the differential pressure;wobSlopeScore is the rate of change of a WOB;tqSlopeScore is the rate of change of a torque;ropSlopeScore is the rate of change of ROP;dpProxScore is based on the differential pressure and the differential pressure setpoint; andTotalParameters is rop.dop.dp.prox.weight+rop.dop.dp.slope.weight+rop.dop.tq.slope.weight+rop.dop.rop.slope.weight+rop.dop.wob.slope.weight.
  • 10. The method of claim 9, wherein dpProxScore=[Dp−(Dpsp−rop.dop.dp.prox.thresh)]/rop.dop.dp.prox.thresh, wherein: Dp is the differential pressure;Dpsp is the differential pressure setpoint; androp.dop.dp.prox.thresh is a threshold.
  • 11. The method of claim 9, wherein the amount by which the ROP setpoint is reduced is equal to: z*scaling factor, wherein: z is the score; andscaling factor is based on ROP and the ROP setpoint.
  • 12. A system for performing automated drilling of a wellbore, the system comprising: a height control apparatus configured to adjust a height of a drill string comprising a drill bit used to drill the wellbore;a height sensor for monitoring a height of the drill string;a rotational drive unit comprising a rotational drive unit controller and a rotation rate sensor for monitoring a rotation rate of the drill bit;a depth sensor for monitoring a depth of the drill bit;a hookload sensor for measuring a weight applied to the drill bit;a pressure sensor for monitoring a differential pressure;a drilling controller communicatively coupled to the rotational drive unit controller, the rotation rate sensor, the height control apparatus, the height sensor, the depth sensor, the hookload sensor, and the pressure sensor, and the drilling controller being configured to perform a method comprising: in a predicting state: monitoring one or more drilling parameters; anddetermining, based on the monitored one or more drilling parameters, that at least one of the one or more drilling parameters is likely to exceed at least one drilling parameter setpoint associated with the at least one drilling parameter;in a mitigating state: in response to determining that the at least one drilling parameter is likely to exceed the at least one drilling parameter setpoint, reducing a rate of penetration (ROP) setpoint so as to mitigate a likelihood of the at least one drilling parameter exceeding the at least one drilling parameter setpoint; anddrilling the wellbore according to the reduced ROP setpoint.
  • 13. The system of claim 12, wherein determining that the drilling parameter is likely to exceed the drilling parameter setpoint comprises determining one or more of the following conditions: a current reading of the drilling parameter is less than the drilling parameter setpoint minus a threshold;a current reading of the drilling parameter is greater than a next most recent reading of the drilling parameter;a slope of a linear regression calculated based on a set of drilling parameter readings, including the current reading of the drilling parameter and one or more older readings of the drilling parameter, is positive; anda current reading of the drilling parameter and each of one or more previous readings of the drilling parameter are greater than the threshold.
  • 14. The system of claim 13, wherein determining that the drilling parameter is likely to exceed the drilling parameter setpoint comprises determining each of the above conditions.
  • 15. The system of claim 12, wherein, after drilling the wellbore according to the reduced ROP setpoint, the drilling controller is configured to return the method to the predicting state if any of the following conditions is true: a current reading of the drilling parameter is less than the drilling parameter setpoint minus a threshold;a current reading of the drilling parameter is greater than the drilling parameter setpoint;a slope of a linear regression calculated based on a set of drilling parameter readings, including the current reading of the drilling parameter and one or more older readings of the drilling parameter, is negative; andan elapsed time since the method has been in the mitigation state has increased above a threshold.
  • 16. The system of claim 12, wherein reducing the ROP setpoint comprises reducing the ROP setpoint by an amount based on one or more of: a rate of change of ROP;a rate of change of a weight on bit (WOB);a rate of change of torque; anda rate of change of differential pressure.
  • 17. The system of claim 12, wherein the drilling parameter is differential pressure, and wherein the drilling parameter setpoint is a differential pressure setpoint.
  • 18. The system of claim 17, wherein the amount by which the ROP setpoint is reduced is based on a score that is equal to: [(rop.dop.dp.slope.weight*dpSlopeScore)+(rop.dop.wob.slope.weight*wobSlopeScore)+(rop.dop.tq.slope.weight*tqSlopeScore)+(rop.dop.dp.prox.weight*dpProxScore)+(rop.dop.rop.slope.weight*ropSlopeScore)]/TotalParameters, wherein: rop.dop.dp.slope.weight, rop.dop.wob.slope.weight, rop.dop.tq.slope.weight, rop.dop.dp.prox.weight, and rop.dop.rop.slope.weight are constants;dpSlopeScore is the rate of change of the differential pressure;wobSlopeScore is the rate of change of a WOB;tqSlopeScore is the rate of change of a torque;ropSlopeScore is the rate of change of ROP;dpProxScore is based on the differential pressure and the differential pressure setpoint; andTotalParameters is rop.dop.dp.prox.weight+rop.dop.dp.slope.weight+rop.dop.tq.slope.weight+rop.dop.rop.slope.weight+rop.dop.wob.slope.weight.
  • 19. The system of claim 18, wherein the amount by which the ROP setpoint is reduced is equal to: z*scaling factor, wherein: z is the score; andscaling factor is based on ROP and the ROP setpoint.
  • 20. A non-transitory computer-readable medium having stored thereon program code executable by a processor and configured, when executed, to cause the processor to perform a method of performing automated drilling of a wellbore using a drill bit, comprising: in a predicting state: monitoring one or more drilling parameters; anddetermining, based on the monitored one or more drilling parameters, that the at least one of the one or more drilling parameters is likely to exceed at least one drilling parameter setpoint associated with the at least one drilling parameter;in a mitigating state: in response to determining that the at least one drilling parameter is likely to exceed the at least one drilling parameter setpoint, reducing a rate of penetration (ROP) setpoint so as to mitigate a likelihood of the at least one drilling parameter exceeding the at least one drilling parameter setpoint; anddrilling the wellbore according to the reduced ROP setpoint.