Patent application title:

DETECTING MUD MOTOR STALLS

Publication number:

US20260049545A1

Publication date:
Application number:

18/803,039

Filed date:

2024-08-13

Smart Summary: A system is designed to detect when a mud motor in a drilling operation stalls. It does this by analyzing pressure data collected over time during drilling. The system looks for pressure peaks in the data, focusing on the first peak. By examining specific characteristics of this peak, such as its height compared to another peak, the system can determine if a stall has occurred. This helps improve drilling efficiency and prevent problems during the process. 🚀 TL;DR

Abstract:

Detecting a mud motor stall, using one or more computer processors, includes: receiving differential pressure data indicative of differential pressure measured over time during drilling of a wellbore; identifying, within the differential pressure data, one or more differential pressure peaks; for at least a first peak of the one or more differential pressure peaks, identifying one or more features of the first peak; and determining, based on each of the one or more features, that the first peak is indicative of a mud motor stall. Identifying the one of more features may include identifying at least a first feature including: determining an amplitude of the first peak; determining an amplitude of at least a second peak of the one or more differential pressure peaks; and comparing the amplitude of the first peak to the amplitude of the second peak.

Inventors:

Applicant:

Interested in similar patents?

Get notified when new applications in this technology area are published.

Classification:

E21B44/00 »  CPC main

Automatic control, surveying or testing

E21B44/00 »  CPC main

Automatic control systems specially adapted for drilling operations, i.e. self-operating systems which function to carry out or modify a drilling operation without intervention of a human operator, e.g. computer-controlled drilling systems ; Systems specially adapted for monitoring a plurality of drilling variables or conditions

Description

FIELD OF THE DISCLOSURE

The present disclosure relates to downhole drilling and in particular to methods, systems, and computer-readable media for detecting mud motor stalls.

BACKGROUND TO THE DISCLOSURE

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 rotational power directly at the drill bit. As drilling mud is pumped down the drill pipe, it encounters the power section near the drill bit. In the power section, the drilling mud is forced through a progressive cavity displacement pump where the drilling fluid imparts torque on a rotor, thereby rotating the drill bit at the distal end of the rotor. Alternatively, turbine motors can be used in place of a progressive cavity displacement pump.

A mud motor is used to increase the bit rotational speed above what is achievable through rotation at the surface alone, in addition to whenever it is necessary to rotate the drill bit without rotating the drill string (as in during directional or slide drilling). The amount of rotational power developed at the drill bit depends on the torque and rotational speed developed by the mud motor.

A mud motor stall can occur when the drilling motor is not capable of providing enough torque to keep the drill bit rotating. Various combinations of factors, including excessive weight on bit, bit damage, and changes in lithology, can lead to mud motor stalls. When a stall occurs, the build-up of reactive torque can cause damage to the motor components and other downhole equipment. In cases where significant damage has occurred, motor seals may fail which may lead to the loss of hydraulic power. In some cases, the entire downhole assembly must be brought to the surface for repair or replacement.

Given the damaging nature of stalls, it is important to effectively detect these events as they occur so that remedial action can be taken as quickly as possible, if necessary. An effective stall detector should accurately identify stalls that are especially damaging to the extent that they may result in interruption of drilling. An effective stall detector should also produce a relatively low number of false positives (i.e., non-stall events incorrectly identified as stalls). A high number of incorrect detections will reduce the value of stall statistics produced by the detector, and is likely to erode trust in the detector by its users, potentially making such users less likely to react to detections in general. For example, a driller may tend to ignore alarms if many false positives have been previously observed.

SUMMARY OF THE DISCLOSURE

According to a first aspect of the disclosure, there is provided a method of detecting a mud motor stall, comprising using one or more computer processors to: receive differential pressure data indicative of differential pressure measured over time during drilling of a wellbore; identify, within the differential pressure data, one or more differential pressure peaks; for at least a first peak of the one or more differential pressure peaks, identify one or more features of the first peak; and determine, based on each of the one or more features, that the first peak is indicative of a mud motor stall, wherein identifying the one of more features comprises identifying at least a first feature comprising: determining an amplitude of the first peak; determining an amplitude of at least a second peak of the one or more differential pressure peaks; and comparing the amplitude of the first peak to the amplitude of the second peak.

The method may further comprise, in response to determining that the first peak is indicative of the mud motor stall, adjusting the drilling of the wellbore.

The amplitude of the first and second peaks may comprise respective maximum differential pressures of the first and second peaks.

Determining the amplitude of at least the second peak may comprise determining the amplitude of each peak in a pre-set number of the one or more differential pressure peaks that precede the first peak. Comparing the amplitude of the first peak to the amplitude of the second peak may comprise comparing the amplitude of the first peak to an average of the amplitude of each peak in the pre-set number of the one or more differential pressure peaks that precede the first peak.

Comparing the amplitude of the first peak to the amplitude of each peak in the pre pre-set sent number of the one or more differential pressure peaks that precede the first peak may comprise determining either: the absolute value of: the maximum differential pressure of the first peak minus an average of the maximum differential pressure values of each peak in the pre-set number of the one or more differential pressure peaks that precede the first peak; or (the maximum differential pressure of the first peak minus an average of the maximum differential pressure values of each peak in the pre-set number of the one or more differential pressure peaks that precede the first peak) divided by the average of the maximum differential pressure values of each peak in the pre-set number of the one or more differential pressure peaks that precede the first peak.

Identifying the one or more differential pressure peaks may comprise: determining, based on the differential pressure data, a first moving average of the differential pressure data integrated over a first time window; determining, based on the differential pressure data, a second moving average of the differential pressure data integrated over a second time window that is longer than the first time window; determining that the first moving average has climbed above the second moving average and has then dropped below the first moving average; and in response to determining that the first moving average has climbed and has then dropped below the first moving average, identifying the first peak.

Identifying the one of more features may further comprise identifying a further feature comprising: applying a threshold to divide the first peak into an upper portion and a lower portion; and determining an amount of time the differential pressure of the first peak is greater than the threshold.

The upper portion may be the upper 50% of the magnitude of the first peak. The lower portion may be the lower 50% of the magnitude of the first peak.

Determining the amount of time the differential pressure of the first peak is greater than the threshold may comprise determining that the amount of time is less than an upper time limit. Identifying the further feature may further comprise, in response to determining that the amount of time is less than the upper time limit, determining (Max_Diff_P-End_Diff_P)/(Max_Diff_P-Start_Diff_P), wherein Max_Diff_P is the maximum differential pressure of the first peak, End_Diff_P is the differential pressure at the end of the first peak, and Start_Diff_P is the differential pressure at the start of the first peak.

Identifying the one of more features may further comprise identifying a further feature comprising determining a ratio of the magnitude of the first peak to the differential pressure at the start of the first peak.

Identifying the one or more differential pressure peaks may comprise: identifying, within the differential pressure data, one or more initial differential pressure peaks; and filtering the one or more initial differential pressure peaks by ignoring any initial differential pressure peak identified on the basis of differential pressure data not associated with rotary or slide drilling.

Identifying the one of more features may further comprise identifying a further feature comprising determining a maximum differential pressure value of the first peak.

Identifying the one of more features may further comprise identifying a further feature comprising determining (Max_Diff_P−End_Diff_P)/(Max_Diff_P−Start_Diff_P), wherein Max_Diff_P is the maximum differential pressure of the first peak, End_Diff_P is the differential pressure at the end of the first peak, and Start_Diff_P is the differential pressure at the start of the first peak.

Identifying the one or more differential pressure peaks may comprise: identifying, within the differential pressure data, at least a first potential differential pressure peak; and identifying, within the differential pressure data associated with the first potential differential pressure peak, the first peak.

Identifying the one of more features may further comprise identifying a further feature comprising: determining a first amount of time from the start of the first peak to the peak of the first peak; determining a second amount of time from the peak of the first peak to the end of the first peak; and comparing each of the first and second amounts of time to a threshold.

Identifying the one of more features may further comprise identifying a further feature comprising determining Max_Diff_P−(Upper_Percentile+α (Upper_Percentile−Lower_Percentile)), wherein Max_Diff_P is the maximum differential pressure of the first peak, Upper_Percentile and Lower_Percentile are percentiles of the differential pressure values of a number of the one or more differential pressure peaks that precede the first peak, and a is a constant.

Upper_Percentile may be the 75th percentile, and Lower_Percentile may be the 25th percentile.

Identifying the one of more features may further comprise identifying a further feature comprising determining a difference between the maximum differential pressure of the first peak and the maximum differential pressure from among a number of data points that precede the first peak.

Identifying the one of more features may further comprise identifying a further feature comprising comparing the maximum differential pressure of the first peak to a differential pressure limit.

Identifying the one of more features may further comprise identifying a further feature comprising comparing the magnitude of the first peak to a minimum magnitude.

Identifying the one of more features may further comprise identifying a further feature comprising: determining that the differential pressure at the start of the first peak is less than a differential pressure threshold; and in response to determining that the differential pressure at the start of the first peak is less than the differential pressure threshold: determining a ratio of a magnitude of the first peak to a differential pressure at the start of the first peak; and comparing the ratio to a threshold.

Identifying the one of more features may further comprise identifying a further feature comprising: determining that the differential pressure at the start of the first peak is less than a differential pressure threshold; and in response to determining that the differential pressure at the start of the first peak is less than the differential pressure threshold, comparing the magnitude of the first peak to a threshold.

According to a further aspect of the disclosure, there is provided a computer-readable medium having stored thereon computer program code configured when executed by one or more processors to cause the one or more processors to perform a method for detecting a mud motor stall during drilling of a wellbore, comprising: receiving differential pressure data indicative of differential pressure measured over time during the drilling operation; identifying, within the differential pressure data, one or more differential pressure peaks; for at least a first peak of the one or more differential pressure peaks, identifying one or more features of the first peak; and determining, based on each of the one or more features, whether the first peak is indicative of a mud motor stall, wherein identifying the one of more features comprises identifying at least a first feature comprising: determining an amplitude of the first peak; determining an amplitude of at least a second peak of the one or more differential pressure peaks; and comparing the amplitude of the first peak to the amplitude of the second peak.

According to a further aspect of the disclosure, there is provided a drilling rig comprising: a drill string having a mud motor at an end of the drill string; one or more sensors for measuring differential pressure; and a stall detector comprising one or more processors configured to receive as inputs real-time measurements of the differential pressure obtained by the one or more sensors during drilling of a wellbore, and configured to: identify, based on the measurements of the differential pressure, one or more differential pressure peaks; for at least a first peak of the one or more differential pressure peaks, identify one or more features of the first peak; and determine, based on each of the one or more features, whether the first peak is indicative of a mud motor stall, wherein identifying the one of more features comprises identifying at least a first feature comprising: determining an amplitude of the first peak; determining an amplitude of at least a second peak of the one or more differential pressure peaks; and comparing the amplitude of the first peak to the amplitude of the second peak.

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

Embodiments of the disclosure will now be described in detail in conjunction with the accompanying drawings of which:

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

FIG. 2 is a first block diagram of a system for performing automated drilling of a wellbore, according to an embodiment of the disclosure;

FIG. 3 is a second block diagram of a system for performing automated drilling of a wellbore, according to an embodiment of the disclosure;

FIG. 4 is a block diagram of the automated drilling unit of FIGS. 2 and 3, according to an embodiment of the disclosure;

FIG. 5 is a block diagram of software modules running on the automated drilling unit of FIGS. 2 and 3, according to an embodiment of the disclosure;

FIG. 6 is a general flow diagram of a method of detecting mud motor stalls, according to an embodiment of the disclosure;

FIG. 7 is a plot of differential pressure readings over time, according to an embodiment of the disclosure;

FIG. 8 is a first example of a differential pressure peak according to an embodiment of the disclosure;

FIGS. 9A-9B are directed to a further flow diagram of a method of detecting mud motor stalls, according to an embodiment of the disclosure;

FIG. 10 is a second example of a differential pressure peak according to an embodiment of the disclosure;

FIGS. 11A and 11B show a third example of a differential pressure peak, and illustrate a sharper peak being identified within a less-sharp peak, according to an embodiment of the disclosure;

FIGS. 12-14 are plots of differential pressure over time, including spikes erroneously identified as mud motor stalls; and

FIG. 15 is a plot of differential pressure over time, including a spike identified as a mud motor stall, according to an embodiment of the disclosure.

DETAILED DESCRIPTION

The present disclosure seeks to provide methods, systems, and computer-readable media for detecting mud motor stalls. While various embodiments of the disclosure are described below, the disclosure is not limited to these embodiments, and variations of these embodiments may fall within the scope of the disclosure which is to be limited only by the appended claims.

Generally, embodiments of the disclosure are aimed at identifying mud motor stalls (or simply “stalls”) within differential pressure drilling data. In particular, differential pressure peaks within the differential pressure drilling data may be analyzed and one or more features relating to each peak may be extracted. These features may be analyzed and, depending on whether or not the features meet certain requirements, the peak may be classified or not as a stall.

Stall identification may be used for post-well processing (e.g., analyzing drilling data after the wellbore has been drilled). This may be useful because knowing how often stalls are occurring on previously drilled wells, and the section(s) of the well in which the stalls are occurring, may inform drilling engineering decisions when drilling future wells. For example, if there is a high number of stalls on a particular section of the well, a drilling engineer may decide to use less aggressive drilling parameter setpoints, or a more powerful mud motor, when drilling the next well in the same or a similar location. Stall identification may also be used to assist in real-time process optimization, in which drilling parameter setpoints may be adjusted in real-time (for example, by reducing the WOB and/or differential pressure setpoints) to minimize the likelihood of stalls and premature motor failure. Further still, relatively little is known about the precise impact of stalls on motor health, and so a detector can be used to investigate this relationship further.

More particularly, during a drilling operation, differential pressure, indicative of differential pressure measured over time during drilling of a wellbore, is received. One or more differential pressure peaks are identified within the differential pressure data. For at least a first peak of the one or more differential pressure peaks, one or more features of the first peak are identified. Based on each of the one or more features, the first peak may be determined to be indicative of a mud motor stall. Identifying the one of more features includes identifying at least a first feature which includes determining an amplitude of the first peak, determining an amplitude of at least a second peak of the one or more differential pressure peaks, and comparing the amplitude of the first peak to the amplitude of the second peak. The amplitude may be a maximum of the peak (i.e., the maximum differential pressure of the peak). Therefore, according to some embodiments of the disclosure, depending on the relative amplitudes of the first peak and one or more other peaks (such as one or more other peaks that precede the first peak), the first peak may be determined to be indicative of a stall.

The relative amplitudes of the first peak and one or more other peaks is only one example of a feature of the first peak that may be used to determine whether or not the first peak is indicative of a stall. As described in further detail below, various other features may be relied on as part of the classification process, and such other features may have to meet other requirements before a peak can be classified as relating to a stall.

Various embodiments of the disclosure will now be described with reference to the drawings.

Turning to FIG. 1, there is shown a drilling rig 100 according to an embodiment of the disclosure. 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 weight on bit (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 mud 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. 2 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, a depth sensor 202b, a hookload sensor 202c, and a 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 (e.g., an automatic driller), 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 rate of penetration (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 automated drilling of the wellbore 116 by providing inputs to top drive controller 206 and automated drilling unit 208. 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.

The memory 214 further stores computer program code that is executable by the processor 212 and that, when executed, causes the processor 212 to perform a method for detecting mud motor stalls, such as that depicted in FIGS. 6 and 9.

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. 2, 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, mechanical specific energy (MSE), 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. 3, there is shown a block diagram of a system 300 for performing automated detection of mud motor stalls. System 300 includes an electronic drilling recorder (EDR) 310 comprising a stall detector 320, Human Machine Interface (HMI) 330, rigsite data storage 325, optimization and control software 335, and doghouse computer 210. Doghouse computer 210 collects sensor readings from UJB 204b (FIG. 2). The sensor readings (which may be referred to as drilling parameters) include RPM, WOB, differential pressure, and torque. 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 the mud motor to a maximum differential pressure of the mud motor. Doghouse computer 210 processes the sensor readings into a stream of sensor data, and stall detector 320 is configured to receive the sensor data from doghouse computer 210. Based on the sensor data, stall detector 320 may detect the occurrence of one or more mud motor stalls, as described in further detail below.

During the stall detection process, stall detector 320 may generate one or more alerts. For example, stall detector 320 may generate an alert in response to identifying a mud motor stall. Such alerts may be sent to HMI 330 which may be embodied on a rig display, doghouse computer 210, a workstation, or on a mobile/remote device. HMI 330 displays the alerts to an operator who may choose to act upon them.

In certain cases, stall detector 320 may adjust one or more drilling parameter setpoints (such as the ROP setpoint and the WOB setpoint). Adjusted drilling parameter setpoints are communicated to doghouse computer 210 and are sent from doghouse computer 210 to automated drilling unit 208. The setpoints may be updated in response to detecting a mud motor stall, in order to mitigate future mud motor stall occurrences, as described in further detail below. 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. 4, there is shown a hardware block diagram 400 of the second junction box 204b of FIG. 2. 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. 4 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. 4; 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. 2. However, the RS-422 port is not used, and all an inputs/outputs use analog or discrete digital signaling.

Referring now to FIG. 5, there is shown a block diagram of software modules, some of which comprise a software application 402, running on the automated drilling unit of FIGS. 2 and 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. 5. 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. 5 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.

Turning to FIG. 6, there is now shown a flow diagram illustrating a general method of detecting a mud motor stall during a drilling operation, according to an embodiment of the disclosure. This method may be performed by stall detector 320, for example.

At block 602, differential pressure data, comprising differential pressure readings obtained by standpipe pressure sensor 202d, is received at stall detector 320.

At block 604, stall detector 320 processes the differential pressure data to identify differential pressure peaks within the differential pressure data. For example, as described in further detail below, stall detector 320 may calculate two different moving averages of the differential pressure data, with one of the moving averages being integrated over a longer time window than the other moving average. Stall detector 320 may then compare the different moving averages to identify the peaks.

At block 606, one or more features of each peak are extracted or otherwise identified by stall detector 320. For example, according to some embodiments, one feature of a peak that may be identified is the peak's amplitude (for example, its maximum differential pressure reading) in relation to the amplitudes of other peaks. According to some embodiments, the amplitude of a peak may be compared to an average of the amplitudes of a number of other identified peaks.

At block 608, based on each feature identified for each peak, stall detector 320 determines whether or not the peak relates to (i.e., is indicative of) a stall. In the event that a stall is identified, one or more corrective measures may be taken as described in further detail below.

Turning to FIG. 7, there is shown a plot of differential pressure readings over time. According to an embodiment of the disclosure, peaks within the differential pressure readings may be identified by determining a first moving average of the differential pressure readings integrated over a first time window, and by determining a second moving average of the differential pressure readings integrated over a second time window that is longer than the first time window. For example, in the plot shown in FIG. 7, a first 5-period (i.e., a period consisting of 5 data points) moving average 702 and a second 101-period (i.e., a period consisting of 101 data points) moving average 704 are calculated. According to other embodiments, each moving average may be integrated over a different time window, with the 5- and 101-periods being merely exemplary. Based on the first and second moving averages, a peak may be identified when moving average 702 moves above and then drops below moving average 704.

Turning to FIG. 8, there are shown certain elements of an example differential peak. These elements may be used by stall detector 320 when calculating the various features of peaks, as described in further detail below. In particular, each peak includes a peak start time 802, a peak end time 804, a peak maximum 806, and a peak magnitude 808.

Turning now to FIG. 9, there is shown another flow diagram of a method of detecting mud motor stalls, according to an embodiment of the disclosure. FIG. 9 represents one example method of detecting mud motor stalls based on features extracted or otherwise identified for each peak that has been identified within the differential pressure data. The method of FIG. 9 analyzes a number of different features for each peak, but it should be recognized that fewer or more features may be analyzed, and/or different features may be analyzed. FIG. 9 should therefore not be interpreted as limiting on the scope of the disclosure, and instead is presented only to illustrate one example way of detecting mud motor stalls based on a particular set of features of a peak.

According to FIG. 9, once a peak has been identified within the differential pressure data (i.e., block 604 in FIG. 6), the following operations are performed on the differential pressure data associated with the peak. If at any point during the application of the decision tree the peak is determined to not relate to a stall, then stall detector 320 may proceed to analyze the next identified peak.

In what follows, references to differential pressure values refer to a moving average (e.g., the 5-period moving average) of the differential pressure readings, instead of a raw differential pressure reading. However, according to some embodiments, the raw differential pressure readings may be used instead.

Starting at block 902, stall detector 320 filters each differential pressure reading associated with the peak based on whether the reading is associated with drilling (in particular, rotary or slide drilling), or whether the reading is not associated with drilling. If the peak includes at least one differential pressure reading that is associated with drilling, then the process moves to block 904. If the peak does not include any reading that is associated with drilling, then at block 906 the peak is classed as not relating to a stall.

At block 904, stall detector 320 determines the magnitude of the peak and compares the magnitude to a threshold (for example, 1,500 kPa). The peak's magnitude may be calculated by taking the difference between the maximum differential pressure of the peak and the differential pressure at the start of the peak. If stall detector 320 determines that the magnitude is less than the threshold, then at block 910 the peak is classed as not relating to a stall. If stall detector 320 determines that the magnitude is greater than the threshold, then the process moves to block 908.

At block 908, stall detector 320 determines the maximum differential pressure of the peak, and compares the maximum to a threshold (for example, 20,000 kPa). If stall detector 320 determines that the maximum is less than the threshold, then the process moves to block 912. If stall detector 320 determines that the maximum is greater than the threshold, then at block 914 the peak is classed as not relating to a stall.

At block 912, stall detector 320 determines “End_Diff_P_Decrease_Proportion”, and then compares End_Diff_P_Decrease_Proportion to a threshold (for example 0.75). End_Diff_P_Decrease_Proportion is determined as follows: (Max_Diff_P−End_Diff_P)/(Max_Diff_P−Start_Diff_P), wherein Max_Diff_P is the maximum differential pressure of the peak, End_Diff_P is the differential pressure at the end of the peak, and Start_Diff_P is the differential pressure at the start of the peak. If stall detector 320 determines that End_Diff_P_Decrease_Proportion is less than the threshold, then at block 918 the peak is classed as not relating to a stall. If stall detector 320 determines that End_Diff_P_Decrease_Proportion is greater than the threshold, then the process moves to block 916. Calculating End_Diff_P_Decrease_Proportion allows stall detector 320 to ensure the peak is actually representative of an increase and then a subsequent decrease in differential pressure, instead of only an increase (which can be caused by a change in setpoints, for example). For example, if differential pressure is increasing, then Max_Diff_P−End_Diff_P may be relatively low or even negative, and End_Diff_P_Decrease_Proportion may also be low/negative as a result.

At block 916, stall detector 320 determines Time_Above_Halfway_Point, and then compares Time_Above_Halfway_Point to a threshold (for example, 12 seconds). This is a measure of the how long the peak lasts above its half-magnitude. For example, referring to FIG. 10, if the differential pressure at the start of the peak is 1,000 kPa, and if the maximum differential pressure is 2,000 kPa, then the halfway point is 1,500 kPa. Time_Above_Halfway_Point is then calculated based on the duration of time the peak lasts above this halfway point. If stall detector 320 determines that Time_Above_Halfway_Point is less than the threshold, then the process moves to block 922. If stall detector 320 determines that Time_Above_Halfway_Point is greater than the threshold, then the process moves to block 920.

At block 920, stall detector 320 determines whether End_Diff_P_Decrease_Proportion, calculated at block 912, is greater than another threshold (such as 1). This threshold may be higher than the threshold used at block 912. If stall detector 320 determines that End_Diff_P_Decrease_Proportion is less than the threshold, then at block 924 the peak is classed as not relating to a stall. If stall detector 320 determines that End_Diff_P_Decrease_Proportion is greater than the threshold, then the process moves to block 922.

At block 922, stall detector determines the differential pressure at the start of the peak, and then compares this differential pressure to a threshold (such as 3,000 kPa). At this point, the decision tree effectively bifurcates, depending on the value of the differential pressure at the start of the peak. If stall detector 320 determines that the differential pressure at the start of the peak is less than the threshold (e.g., the peak is a relatively low-pressure peak), then the process moves to block 926. If stall detector 320 determines that the differential pressure at the start of the peak is greater than the threshold (e.g., the peak is a relatively high-pressure peak), then the process moves to block 928. The main difference between further downstream checks on low-pressure peaks and high-pressure peaks is that checks on low-pressure peaks tend to be proportion-based, whereas checks on low-pressure peaks tend to be based on absolute magnitude, as now described in further detail.

At block 926, stall detector 320 determines Peak_Magnitude_Proportion, and then compares Peak_Magnitude_Proportion to a threshold, such as 1.3. Peak_Magnitude_Proportion is determined by taking the ratio of the peak's magnitude to the differential pressure at the start of the peak. If stall detector 320 determines that Peak_Magnitude_Proportion is less than the threshold, then at block 932 the peak is classed as not relating to a stall. If stall detector 320 determines that Peak_Magnitude_Proportion is greater than the threshold, then the process moves to block 930.

At block 930, stall detector 320 compares the maximum differential pressure of the peak to a threshold, such as 4,000 kPa. If stall detector 320 determines that the maximum differential pressure is less than the threshold, then at block 940 the peak is classed as not relating to a stall. If stall detector 320 determines that the maximum differential pressure is greater than the threshold, then the process moves to block 938.

At block 938, stall detector 320 determines Peak_Max_Vs_Previous_Maxes_Proportional, and then compares Peak_Max_Vs_Previous_Maxes_Proportional to a threshold, such as 0.45. Peak_Max_Vs_Previous_Maxes_Proportional is determined by calculating the following: (the maximum differential pressure of the peak minus an average of the maximum differential pressure values of each peak in a number of other preceding peaks) divided by the average of the maximum differential pressure values of each peak in the number of other preceding peaks. According to some embodiments, the peaks' magnitudes may be used instead of the peaks' maximum differential pressures. If stall detector 320 determines that Peak_Max_Vs_Previous_Maxes_Proportional is less than the threshold, then at block 948 the peak is classed as not relating to a stall. If stall detector 320 determines that Peak_Max_Vs_Previous_Maxes_Proportional is greater than the threshold, then the process moves to block 946.

At block 946, stall detector 320 determines Outlier_Threshold_Diff_Long_Term, and then compares Outlier_Threshold_Diff_Long_Term to a threshold, such as 0. Outlier_Threshold_Diff_Long_Term is determined by calculating: Max_Diff_P−(Upper_Percentile+α (Upper_Percentile−Lower_Percentile)), wherein Max_Diff_P is the maximum differential pressure of the peak, Upper_Percentile and Lower_Percentile are percentiles of the differential pressure values of a number of preceding data points (such as the past 800 data points), and α is a constant. Upper_Percentile may be the 75th percentile and Lower_Percentile may be the 25th percentile. If stall detector 320 determines that Outlier_Threshold_Diff_Long_Term is less than the threshold, then at block 956 the peak is classed as not relating to a stall. If stall detector 320 determines that Outlier_Threshold_Diff_Long_Term is greater than the threshold, then the process moves to block 954.

At block 954, stall detector 320 determines Outlier_Threshold_Diff_Short_Term, and then compares Outlier_Threshold_Diff_Short_Term to a threshold, such as 0. Outlier_Threshold_Diff_Short_Term is determined by calculating: Max_Diff_P−(Upper_Percentile+α (Upper_Percentile-Lower_Percentile)), wherein Max_Diff_P is the maximum differential pressure of the peak, Upper_Percentile and Lower_Percentile are percentiles of the differential pressure values of a number of preceding data points (such as the past 400 data points), and α is a constant. The number of past data points considered when determining the percentiles is less for Outlier_Threshold_Diff_Short_Term than for Outlier_Threshold_Diff_Long_Term. Upper_Percentile may be the 75th percentile and Lower_Percentile may be the 25th percentile. If stall detector 320 determines that Outlier_Threshold_Diff_Short_Term is less than the threshold, then at block 964 the peak is classed as not relating to a stall. If stall detector 320 determines that Outlier_Threshold_Diff_Short_Term is greater than the threshold, then the process moves to block 962.

At block 962, stall detector 320 determines Range_Max_Difference, and then compares Range_Max_Difference to a threshold, such as 500 kPa. Range_Max_Difference is determined by calculating the difference between the maximum differential pressure of the peak and the maximum differential pressure among a number of differential pressure readings that precede the peak. If stall detector 320 determines that Range_Max_Difference is less than the threshold, then at block 972 the peak is classed as not relating to a stall. If stall detector 320 determines that Range_Max_Difference is greater than the threshold, then the process moves to block 970.

At block 970, stall detector 320 determines Time_Max_To_End, and then compares Time_Max_To_End to a threshold, such as 20 seconds. Time_Max_To_End is determined by calculating the time taken by for the differential pressure to drop from the maximum of the peak to the end of the peak. If stall detector 320 determines that Time_Max_To_End is less than the threshold, then the process moves to block 980. If stall detector 320 determines that Time_Max_To_End is greater than the threshold, then at block 978 the peak is classed as relating to a stall.

At block 980, stall detector 320 determines Time_To_Max, and then compares Time_To_Max to a threshold, such as 20 seconds. Time_To_Max is determined by calculating the time taken by for the differential pressure to climb from the start of the peak to the maximum of the peak. If stall detector 320 determines that Time_To_Max is less than the threshold, then at block 988 the peak is classed as not relating to a stall. If stall detector 320 determines that Time_To_Max is greater than the threshold, then at block 986 the peak is classed as relating to a stall.

Returning to block 928, stall detector 320 determines Peak_Magnitude, and then compares Peak_Magnitude to a threshold, such as 2,500 kPa. Peak_Magnitude is the magnitude of the peak. If stall detector 320 determines that Peak_Magnitude is less than the threshold, then at block 936 the peak is classed as not relating to a stall. If stall detector 320 determines that Peak_Magnitude is greater than the threshold, then the process moves to block 934.

At block 934, stall detector 320 compares the maximum differential pressure of the peak to a threshold, such as 7,000 kPa (this threshold is greater than the threshold used at block 930). If stall detector 320 determines that the maximum differential pressure is less than the threshold, then at block 944 the peak is classed as not relating to a stall. If stall detector 320 determines that the maximum differential pressure is greater than the threshold, then the process moves to block 942.

At block 942, stall detector 320 determines Peak_Max_Vs_Previous_Maxes_Absolute, and then compares Peak_Max_Vs_Previous_Maxes_Absolute to a threshold, such as 2,000 kPa. Peak_Max_Vs_Previous_Maxes_Absolute is determined by calculating the following: the absolute value of (the maximum differential pressure of the peak minus the average of the maximum differential pressure values of each peak in a number of preceding peaks). According to some embodiments, the peaks' magnitudes may be used instead of the peaks' maximum differential pressures. If stall detector 320 determines that Peak_Max_Vs_Previous_Maxes_Absolute is less than the threshold, then at block 952 the peak is classed as not relating to a stall. If stall detector 320 determines that Peak_Max_Vs_Previous_Maxes_Absolute is greater than the threshold, then the process moves to block 950.

At block 950, stall detector 320 determines Outlier_Threshold_Diff_Long_Term, and then compares Outlier_Threshold_Diff_Long_Term to a threshold, such as 0. Outlier_Threshold_Diff_Long_Term is determined by calculating: Max_Diff_P−(Upper_Percentile+α (Upper_Percentile-Lower_Percentile)), wherein Max_Diff_P is the maximum differential pressure of the peak, Upper_Percentile and Lower_Percentile are percentiles of the differential pressure values of a number of preceding data points (such as the past 800 data points), and α is a constant. Upper_Percentile may be the 75th percentile and Lower_Percentile may be the 25th percentile. If stall detector 320 determines that Outlier_Threshold_Diff_Long_Term is less than the threshold, then at block 960 the peak is classed as not relating to a stall. If stall detector 320 determines that Outlier_Threshold_Diff_Long_Term is greater than the threshold, then the process moves to block 958.

At block 958, stall detector 320 determines Outlier_Threshold_Diff_Short_Term, and then compares Outlier_Threshold_Diff_Short_Term to a threshold, such as 0. Outlier_Threshold_Diff_Short_Term is determined by calculating: Max_Diff_P−(Upper_Percentile+α (Upper_Percentile−Lower_Percentile)), wherein Max_Diff_P is the maximum differential pressure of the peak, Upper_Percentile and Lower_Percentile are percentiles of the differential pressure values of a number of preceding data points (such as the past 400 data points), and α is a constant. The number of past data points considered when determining the percentiles is less for Outlier_Threshold_Diff_Short_Term than for Outlier_Threshold_Diff_Long_Term. Upper_Percentile may be the 75th percentile and Lower_Percentile may be the 25th percentile. If stall detector 320 determines that Outlier_Threshold_Diff_Short_Term is less than the threshold, then at block 968 the peak is classed as not relating to a stall. If stall detector 320 determines that Outlier_Threshold_Diff_Short_Term is greater than the threshold, then the process moves to block 966.

At block 966, stall detector 320 determines Range_Max_Difference, and then compares Range_Max_Difference to a threshold, such as 1,000 kPa (this threshold is greater than the threshold used at block 962). Range_Max_Difference is determined by calculating the difference between the maximum differential pressure of the peak and the maximum differential pressure among a number of differential pressure readings that precede the peak. If stall detector 320 determines that Range_Max_Difference is less than the threshold, then at block 976 the peak is classed as not relating to a stall. If stall detector 320 determines that Range_Max_Difference is greater than the threshold, then the process moves to block 974.

At block 974, stall detector 320 determines Time_Max_To_End, and then compares Time_Max_To_End to a threshold, such as 25 seconds (this threshold is greater than the threshold used at block 970). Time_Max_To_End is determined by calculating the time taken by for the differential pressure to drop from the maximum of the peak to the end of the peak. If stall detector 320 determines that Time_Max_To_End is less than the threshold, then the process moves to block 984. If stall detector 320 determines that Time_Max_To_End is greater than the threshold, then at block 982 the peak is classed as relating to a stall.

At block 984, stall detector 320 determines Time_To_Max, and then compares Time_To_Max to a threshold, such as 25 seconds (this threshold is greater than the threshold used at block 980). Time_To_Max is determined by calculating the time taken by for the differential pressure to climb from the start of the peak to the maximum of the peak. If stall detector 320 determines that Time_To_Max is less than the threshold, then at block 992 the peak is classed as not relating to a stall. If stall detector 320 determines that Time_To_Max is greater than the threshold, then at block 990 the peak is classed as relating to a stall.

In connection with blocks 970, 974, 980, and 984, instead of using the start and ends of the peak as determined by the moving averages (block 604 of FIG. 6), another algorithm may be used to extract a sharper peak from the peak identified by the moving averages, and the start and ends of the peak may be calculated based on this sharper peak. This is useful because the peak detected by the moving averages may not be as sharp as a traditional peak would be expected to be. Any suitable method of extracting the sharper peak may be used, using any known data processing method. FIGS. 11A and 11B show an example of a sharper peak 1104 being detected within a less-sharp peak 1102. The Time_To_Max and the Time_Max_To_End features are then calculated based on peak 1104, and not 1102. According to some embodiments, the Time_To_Max and the Time_Max_To_End features may be calculated based on peak 1102.

Results

The performance of a stall detector operating based on the algorithms described herein was compared to that of an existing stall detector.

Existing Stall Detector New Stall Detector
Label Count Count
Stall 233 370 (+59%)
Not Stall 366 214 (−41%)

Empirically, the stall detector operating based on the algorithms described herein is better at avoiding “catastrophic errors”, i.e., false positives during periods of drilling that clearly do not relate to stalls. Many false positives made by the stall detector operating based on the algorithms described herein were triggered by relatively severe spikes in differential pressure (see FIGS. 12-14), whereas some false positives made by the existing stall detector clearly related to normal drilling and were not stall-related.

FIG. 15 shows a plot of differential pressure over time, with the stall detector operating based on the algorithms described herein and having correctly identified a stall 1502. The differential pressure drops sharply following identification of the stall, indicating that the drill string was lifted off the bottom of the borehole in response to the detection.

Motor Stall Alerts

If a mud motor has stalled, the drilling process may sometimes continue normally without any human intervention. In other cases, changes to drilling parameter setpoints must be made in order to resume normal operation. In severe cases, a return to drilling may not be at all possible due to critical damage to components of the mud motor. Further still, if a mud motor stall has occurred, appropriate procedures should be followed to mitigate the risk of potentially damaging effects. The course of action may be dependent, for example, on the severity of the stall, the frequency of stall events, and/or the number of successive stall events that are detected.

Multiple alerts may be generated throughout the stall detection process, and in particular if a stall is detected. Furthermore, stall severity metrics may be calculated throughout the stall detection process. Metrics are intended to enable the user to decide if the stall is severe enough to interrupt normal operation of the rig and initiate restart procedures where manual intervention is required to manage drilling parameters, e.g. pump rate, outside control of the computer system.

If a motor stall has occurred, appropriate action should be taken to mitigate potential damaging effects. For example, shutting down pumps will stop circulation through the stalled motor and may prevent excessive wear to the elastomer in the motor power section. A general procedure for managing a mud motor stall is:

    • 1. Immediately stop drill string rotation.
    • 2. Reduce/stop flow through the motor by reducing mud pump rate or shutting down the pumps.
    • 3. Slowly release torque through the rotary system.
    • 4. Lift the drill string and bit off bottom.
    • 5. Proceed with a standard start-up procedure used after a connection
      The metrics are calculated to assess the severity of the stall by checking relevant drilling parameters against equipment tolerances, for example differential pressure vs. a maximum differential pressure of the mud motor, and relative changes throughout the stall process. The metrics may be displayed to the user in the alerts, and may be stored by stall detector 320 for analysis.

Stall Mitigation

Motor stalls can cause damage to downhole equipment, causing temporary impairment of the drilling process and, in severe cases, requiring complete stoppage, tripping out of the hole, and replacement of the damaged motor. Recurring stalls can be symptomatic of damage, for example to the motor stator materials, which may result in loss of power and lower drilling rates. In other cases, changes in drilling parameters may be made in order to resume normal operation. The process of identifying, quantifying, and taking corrective action when a stall or series of stalls occurs can be challenging because it may require immediate action followed by prolonged and continual monitoring and diagnostic of the drilling process, and finally corrective action to mitigate the onset of subsequent stalls.

Stall detector 320 may implement one or more of the following functions in order to automatically mitigate potential future stalls. In particular, stall detector 320 may identify abnormal fluctuations in drilling parameters, including differential pressure, standpipe pressure, rotary torque, bit torque, rotary RPM, bit RPM, weight on bit, and rate of penetration. Stall detector 320 may furthermore determine maximum and minimum readings of the drilling parameters, differences between the maximum and minimum readings of the drilling parameters, and rates of change of the drilling parameters, during the stall. These values may be compared to various operational thresholds, such as for example a maximum motor differential pressure, a maximum motor torque, and a maximum standpipe pressure. Such comparisons may enable stall detector 320 to determine the relative severity of a given stall event. Stall detector 320 may compare and identify relationships between severity estimates with specific drilling parameter settings before and after a stall, compare and identify relationships between severity estimates with trends in drilling parameter settings for sequential stall events, and may compare and identify relationships between trends in severity estimates and drilling parameter settings for sequential stall events

Based on the above comparisons, stall detector 320 may provide recommendations (e.g. on a display and/or via an audio output) for adjustments to drilling parameter setpoints. Alternatively, or in addition, stall detector 320 may actively adjust drilling parameter setpoints, for example by setting drilling parameter setpoints based on drilling parameter values that are associated with, or predicted to be associated with, the absence of stall events.

The automated management process may continue to change the drilling parameter setpoints until motor stalls are no longer detected. The changes may be temporary such that the drilling parameter setpoints are returned (instantly or gradually) to their original values after a fixed amount of time. In other cases, the changes in drilling parameter settings may be permanent until returned to their original or other prescribed settings, based on the discretion of the drilling process operator.

In addition to the stall detector being operable to detect stalls during a drilling operation, historical drilling parameter data may be inputted to the stall detector for performing post-well analysis.

While stall detector 320 has been described in the context of FIG. 3 as receiving measured drilling parameters from doghouse computer 210, this is representative of only an example embodiment of the disclosure, and, according to other embodiments, stall detector 320 may receive measured drilling parameters directly from UJB 2 or rig sensors 202. Accordingly, a stall detector as described herein should be construed broadly as encompassing any suitable apparatus operable to detect mud motor stalls, according to any of the methods described herein.

The word “a” or “an” when used in conjunction with the term “comprising” or “including” in the claims and/or the specification may mean “one”, but it is also consistent with the meaning of “one or more”, “at least one”, and “one or more than one” unless the content clearly dictates otherwise. Similarly, the word “another” may mean at least a second or more unless the content clearly dictates otherwise.

The terms “coupled”, “coupling” or “connected” as used herein can have several different meanings depending on the context in which these terms are used. For example, as used herein, the terms coupled, coupling, or connected can indicate that two elements or devices are directly connected to one another or connected to one another through one or more intermediate elements or devices via a mechanical element depending on the particular context. The term “and/or” herein when used in association with a list of items means any one or more of the items comprising that list.

As used herein, a reference to “about” or “approximately” a number or to being “substantially” equal to a number means being within +/−10% of that number.

Use of language such as “at least one of X, Y, and Z,” “at least one of X, Y, or Z,” “at least one or more of X, Y, and Z,” “at least one or more of X, Y, and/or Z,” or “at least one of X, Y, and/or Z,” is intended to be inclusive of both a single item (e.g., just X, or just Y, or just Z) and multiple items (e.g., {X and Y}, {X and Z}, {Y and Z}, or {X, Y, and Z}). The phrase “at least one of” and similar phrases are not intended to convey a requirement that each possible item must be present, although each possible item may be present.

While the disclosure has been described in connection with specific embodiments, it is to be understood that the disclosure is not limited to these embodiments, and that alterations, modifications, and variations of these embodiments may be carried out by the skilled person without departing from the scope of the disclosure.

It is furthermore contemplated that any part of any aspect or embodiment discussed in this specification can be implemented or combined with any part of any other aspect or embodiment discussed in this specification.

Claims

1. A method of detecting a mud motor stall, comprising using one or more computer processors to:

receive differential pressure data indicative of differential pressure measured over time during drilling of a wellbore;

identify, within the differential pressure data, one or more differential pressure peaks;

for at least a first peak of the one or more differential pressure peaks, identify one or more features of the first peak; and

determine, based on each of the one or more features, that the first peak is indicative of a mud motor stall,

wherein identifying the one of more features comprises identifying at least a first feature comprising:

determining an amplitude of the first peak;

determining an amplitude of at least a second peak of the one or more differential pressure peaks; and

comparing the amplitude of the first peak to the amplitude of the second peak.

2. The method of claim 1, further comprising, in response to determining that the first peak is indicative of the mud motor stall, adjusting the drilling of the wellbore.

3. The method of claim 1, wherein the amplitude of the first and second peaks comprises respective maximum differential pressures of the first and second peaks.

4. The method of claim 1, wherein:

determining the amplitude of at least the second peak comprises determining the amplitude of each peak in a pre-set number of the one or more differential pressure peaks that precede the first peak; and

comparing the amplitude of the first peak to the amplitude of the second peak comprises comparing the amplitude of the first peak to an average of the amplitude of each peak in the pre-set number of the one or more differential pressure peaks that precede the first peak.

5. The method of claim 4, wherein comparing the amplitude of the first peak to the amplitude of each peak in the pre pre-set sent number of the one or more differential pressure peaks that precede the first peak comprises determining either:

the absolute value of: the maximum differential pressure of the first peak minus an average of the maximum differential pressure values of each peak in the pre-set number of the one or more differential pressure peaks that precede the first peak; or

(the maximum differential pressure of the first peak minus an average of the maximum differential pressure values of each peak in the pre-set number of the one or more differential pressure peaks that precede the first peak) divided by the average of the maximum differential pressure values of each peak in the pre-set number of the one or more differential pressure peaks that precede the first peak.

6. The method of claim 1, wherein identifying the one or more differential pressure peaks comprises:

determining, based on the differential pressure data, a first moving average of the differential pressure data integrated over a first time window;

determining, based on the differential pressure data, a second moving average of the differential pressure data integrated over a second time window that is longer than the first time window;

determining that the first moving average has climbed above the second moving average and has then dropped below the first moving average; and

in response to determining that the first moving average has climbed and has then dropped below the first moving average, identifying the first peak.

7. The method of claim 1, wherein identifying the one of more features further comprises identifying a further feature comprising:

applying a threshold to divide the first peak into an upper portion and a lower portion; and

determining an amount of time the differential pressure of the first peak is greater than the threshold.

8. The method of claim 7, wherein:

the upper portion is the upper 50% of the magnitude of the first peak; and

the lower portion is the lower 50% of the magnitude of the first peak.

9. The method of claim 7, wherein:

determining the amount of time the differential pressure of the first peak is greater than the threshold comprises determining that the amount of time is less than an upper time limit; and

identifying the further feature further comprises, in response to determining that the amount of time is less than the upper time limit, determining (Max_Diff_P−End_Diff_P)/(Max_Diff_P−Start_Diff_P), wherein Max_Diff_P is the maximum differential pressure of the first peak, End_Diff_P is the differential pressure at the end of the first peak, and Start_Diff_P is the differential pressure at the start of the first peak.

10. The method of claim 1, wherein identifying the one of more features further comprises identifying a further feature comprising:

determining a ratio of the magnitude of the first peak to the differential pressure at the start of the first peak.

11. The method of claim 1, wherein identifying the one or more differential pressure peaks comprises:

identifying, within the differential pressure data, one or more initial differential pressure peaks; and

filtering the one or more initial differential pressure peaks by ignoring any initial differential pressure peak identified on the basis of differential pressure data not associated with rotary or slide drilling.

12. The method of claim 1, wherein identifying the one of more features further comprises identifying a further feature comprising:

determining a maximum differential pressure value of the first peak.

13. The method of claim 1, wherein identifying the one of more features further comprises identifying a further feature comprising:

determining (Max_Diff_P−End_Diff_P)/(Max_Diff_P−Start_Diff_P), wherein Max_Diff_P is the maximum differential pressure of the first peak, End_Diff_P is the differential pressure at the end of the first peak, and Start_Diff_P is the differential pressure at the start of the first peak.

14. The method of claim 1, wherein identifying the one or more differential pressure peaks comprises:

identifying, within the differential pressure data, at least a first potential differential pressure peak; and

identifying, within the differential pressure data associated with the first potential differential pressure peak, the first peak.

15. The method of claim 1, wherein identifying the one of more features further comprises identifying a further feature comprising:

determining a first amount of time from the start of the first peak to the peak of the first peak;

determining a second amount of time from the peak of the first peak to the end of the first peak; and

comparing each of the first and second amounts of time to a threshold.

16. The method of claim 1, wherein identifying the one of more features further comprises identifying a further feature comprising:

determining Max_Diff_P−(Upper_Percentile+α (Upper_Percentile−Lower_Percentile)), wherein Max_Diff_P is the maximum differential pressure of the first peak, Upper_Percentile and Lower_Percentile are percentiles of the differential pressure values of a number of the one or more differential pressure peaks that precede the first peak, and α is a constant.

17. The method of claim 16, wherein Upper_Percentile is the 75th percentile and Lower_Percentile is the 25th percentile.

18. The method of claim 1, wherein identifying the one of more features further comprises identifying a further feature comprising:

determining a difference between the maximum differential pressure of the first peak and the maximum differential pressure from among a number of data points that precede the first peak.

19. The method of claim 1, wherein identifying the one of more features further comprises identifying a further feature comprising:

comparing the maximum differential pressure of the first peak to a differential pressure limit.

20. The method of claim 1, wherein identifying the one of more features further comprises identifying a further feature comprising:

comparing the magnitude of the first peak to a minimum magnitude.

21. The method of claim 1, wherein identifying the one of more features further comprises identifying a further feature comprising:

determining that the differential pressure at the start of the first peak is less than a differential pressure threshold; and

in response to determining that the differential pressure at the start of the first peak is less than the differential pressure threshold:

determining a ratio of a magnitude of the first peak to a differential pressure at the start of the first peak; and

comparing the ratio to a threshold.

22. The method of claim 1, wherein identifying the one of more features further comprises identifying a further feature comprising:

determining that the differential pressure at the start of the first peak is less than a differential pressure threshold; and

in response to determining that the differential pressure at the start of the first peak is less than the differential pressure threshold, comparing the magnitude of the first peak to a threshold.

23. A computer-readable medium having stored thereon computer program code configured when executed by one or more processors to cause the one or more processors to perform a method for detecting a mud motor stall during drilling of a wellbore, comprising:

receiving differential pressure data indicative of differential pressure measured over time during the drilling operation;

identifying, within the differential pressure data, one or more differential pressure peaks;

for at least a first peak of the one or more differential pressure peaks, identifying one or more features of the first peak; and

determining, based on each of the one or more features, whether the first peak is indicative of a mud motor stall,

wherein identifying the one of more features comprises identifying at least a first feature comprising:

determining an amplitude of the first peak;

determining an amplitude of at least a second peak of the one or more differential pressure peaks; and

comparing the amplitude of the first peak to the amplitude of the second peak.

24. A drilling rig comprising:

a drill string having a mud motor at an end of the drill string;

one or more sensors for measuring differential pressure; and

a stall detector comprising one or more processors configured to receive as inputs real-time measurements of the differential pressure obtained by the one or more sensors during drilling of a wellbore, and configured to:

identify, based on the measurements of the differential pressure, one or more differential pressure peaks;

for at least a first peak of the one or more differential pressure peaks, identify one or more features of the first peak; and

determine, based on each of the one or more features, whether the first peak is indicative of a mud motor stall,

wherein identifying the one of more features comprises identifying at least a first feature comprising:

determining an amplitude of the first peak;

determining an amplitude of at least a second peak of the one or more differential pressure peaks; and

comparing the amplitude of the first peak to the amplitude of the second peak.

Resources

Images & Drawings included:

Sources:

Similar patent applications:

Recent applications in this class: