Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PROCESS AUTOMATION OPTIMIZES THE PROCESS OF PLACING A DRILL BIT ON THE BOTTOM OF THE WELLBORE
Document Type and Number:
WIPO Patent Application WO/2019/066930
Kind Code:
A1
Abstract:
Tagging bottom utilizing an automated control system and downhole tools may include determining, by a computer processor, that a drill bit has reached a predetermined distance from a bottom of a wellbore, in response to determining that the bit has reached the predetermined depth, transmitting a rate of penetration set point to reduce a lowering speed of the drill bit, directing the drill bit based on the rate of penetration, determining, by the computer processor, that the rate of penetration is stable, in response to the determining that the rate of penetration has stabilized, automatically taring a surface weight on the drill bit and a differential pressure, and in response to determining that the bit is within a predetermined off bottom range, monitoring for a true bottom based on one or more parameter triggers.

Inventors:
HANFORD RYAN (US)
MULLIN CHRISTOPHER (US)
FACKER BENJAMIN (US)
WONG COLE (US)
OCEGUEDA-HERNANDEZ FRANCISCO (US)
Application Number:
PCT/US2017/054438
Publication Date:
April 04, 2019
Filing Date:
September 29, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NAT OILWELL VARCO INC (US)
International Classes:
E21B45/00; E21B7/00; E21B43/26; E21B44/00; E21B44/04
Foreign References:
US20130277112A12013-10-24
US20160290118A12016-10-06
US7350593B12008-04-01
US4875530A1989-10-24
US20170122095A12017-05-04
US6944547B22005-09-13
Other References:
See also references of EP 3688280A4
Attorney, Agent or Firm:
FRANCO, Katherine, A. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A method for tagging bottom utilizing an automated control system and drilling tools, comprising: determining, by a computer processor, that a drill bit has reached a predetermined distance from a bottom of a wellbore; in response to determining that the drill bit has reached the predetermined depth, transmitting a rate of penetration set point to reduce a lowering speed of the drill bit; directing the drill bit based on the rate of penetration; determining, by the computer processor, that the rate of penetration has stabilized; in response to the determining that the rate of penetration has stabilized, automatically taring a surface weight on the drill bit and a differential pressure; and in response to determining that the bit is within a predetermined off bottom range, monitoring for a true bottom based on one or more parameter triggers.

2. The method of claim 1, wherein determining that the rate of penetration has stabilized further comprises determining that a velocity of the drill bit is consistent.

3. The method of claim 1, wherein determining that the rate of penetration is stabilized further comprises detecting that a standard deviation of the rate of penetration is within a preconfigured range of velocity.

4. The method of claim 1, wherein the one or more parameter triggers comprise at least one selected from a group consisting of a weight on bit trigger, a differential pressure trigger, and a torque trigger.

5. The method of claim 4, wherein monitoring for the true bottom based on one or more parameter triggers comprises monitoring sensor data associated with the one or more parameter triggers to determine whether the sensor data satisfies a predetermined threshold.

6. The method of claim 1, further comprising: monitoring sensor data from one or more tools; and in response to determining that the sensor data satisfies a predetermined threshold, modifying a performance of the one or more tools, wherein modifying the performance of the one or more tools comprises modifying one or more selected from a group consisting of the rate of penetration of the drill bit, rotation of the drill bit, and a predetermined weight that indicates the drill bit is stabilized.

7. The method of claim 6, wherein the one or more drilling tools comprises at least one selected from the group consisting of downhole tools and surface tools.

8. The method of claim 6, wherein the sensor data comprises vibration data, and wherein the method further comprises: detecting a drilling event associated with the vibration data; and in response to detecting a future drilling event, modifying the performance of the one or more tools based on the vibration data.

9. A computer readable medium for tagging bottom utilizing an automated control system and drilling tools, comprising computer readable code executable by one or more processors to: determine, by a computer processor, that a drill bit has reached a predetermined distance from a bottom of a wellbore; in response to determining that the bit has reached the predetermined depth, transmit a rate of penetration set point to reduce a lowering speed of the drill bit; direct the drill bit based on the rate of penetration; determine, by the computer processor, that the rate of penetration is stable; in response to the determining that the rate of penetration has stabilized, automatically tare a surface weight on the drill bit and a differential pressure; and in response to determining that the bit is within a predetermined off bottom range, monitor for a true bottom based on one or more parameter triggers.

10. The computer readable medium of claim 9, wherein the computer readable code to determine that the rate of penetration has stabilized further comprises computer readable code to determine that a velocity of the drill bit is consistent.

11. The computer readable medium of claim 9, wherein the computer readable code to determine that the rate of penetration has stabilized further comprises computer readable code to detect that a standard deviation of the rate of penetration is within a preconfigured range of velocity.

12. The computer readable medium of claim 9, wherein the one or more parameter triggers comprise at least one selected from a group consisting of a weight on bit trigger, a differential pressure trigger, and a torque trigger.

13. The computer readable medium of claim 12, wherein the computer readable code to monitor for the true bottom based on one or more parameter triggers comprises computer readable code to monitor sensor data associated with the one or more parameter triggers to determine whether the sensor data satisfies a predetermined threshold.

14. The computer readable medium of claim 9, further comprising computer readable code to: monitor sensor data from one or more tools; and in response to determining that the sensor data satisfies a predetermined threshold, modify the performance of the one or more tools, wherein modifying the performance of the one or more tools comprises modifying one or more selected from a group consisting of the rate of penetration of the drill bit, rotation of the drill bit, and a predetermined weight that indicates the drill bit is stabilized.

15. The computer readable medium of claim 14, wherein the one or more drilling tools comprises at least one selected from the group consisting of downhole tools and surface tools.

16. The computer readable medium of claim 14, wherein the sensor data comprises vibration data, and wherein the computer readable code further comprises computer readable code to: detect a drilling event associated with the vibration data; and in response to detecting a future drilling event, modify the performance of the one or more tools based on the vibration data.

17. A system for tagging bottom utilizing an automated control system and drilling tools, comprising: one or more processors; one or more memory devices coupled to the one or more processors and comprising computer readable code executable by the one or more processors to: determine, by a computer processor, that a drill bit has reached a predetermined distance from a bottom of a wellbore; in response to determining that the bit has reached the predetermined depth, transmit a rate of penetration set point to reduce a lowering speed of the drill bit; direct the drill bit based on the rate of penetration; determine, by the computer processor, that the rate of penetration is stable; in response to the determining that the rate of penetration has stabilized, automatically tare a surface weight on the drill bit and a differential pressure; and in response to determining that the bit is within a predetermined off bottom range, monitor for a true bottom based on one or more parameter triggers.

18. The system of claim 17, further comprising computer readable code to: monitor sensor data from one or more tools; and in response to determining that the sensor data satisfies a predetermined threshold, modify the performance of the one or more tools, wherein modifying the performance of the one or more tools comprises modifying one or more selected from a group consisting of the rate of penetration of the drill bit, rotation of the drill bit, and a predetermined weight that indicates the drill bit is stabilized.

19. The system of claim 18, wherein the one or more drilling tools comprises at least one selected from the group consisting of downhole tools and surface tools.

20. The system of claim 18, wherein the sensor data comprises vibration data, and wherein the computer readable code further comprises computer readable code to: detect a drilling event associated with the vibration data; and in response to detecting a future drilling event, modify the performance of the one or more tools based on the vibration data.

Description:
PROCESS AUTOMATION OPTIMIZES THE PROCESS OF PLACING A DRILL BIT ON THE

BOTTOM OF THE WELLBORE

[0001] Embodiments described herein generally relate to automated drilling, and more specifically to a drilling rig software system to control rig equipment to optimize the process of placing a drill bit on the bottom of the wellbore.

BACKGROUND ART

[0002] Oilfield operations may be performed to locate and gather valuable downhole fluids. Oil rigs are positioned at wellsites, and downhole tools, such as drilling tools and other components, are deployed into the ground to reach subsurface reservoirs. Traditionally, human operators will need to press dozens of buttons in order to operate rig equipment to complete the drilling process. In addition, although a human operator may be relying on feedback provided by the downhole tools, drilling operations controlled by human operation may lack consistency, or may be subject to human error. Further, while some drilling applications allow for a software-based management of drilling operations, they often require the application developer to be keenly aware of the particulars of a rig, such as specific tools, and language needed to drive those tools.

[0003] Tagging bottom is a common procedure that involves placing a drill bit at the bottom of a wellbore. Tagging bottom is often conducted during a drilling process, and may be performed over hundreds of times during the process of drilling a well. Improperly tagging bottom and result in unwanted vibrations, which may cause damage to the drill bit and other parts of the bottom hole assembly. Currently, placing the drill bit on the bottom of the wellbore is a manual process that requires tool manipulation and precise decision making based on parameter feedback. A common trend for tagging bottom is for the driller to manually turn on an autodriller and tag bottom with full drilling parameter. This may cause the drill bit to be lowered and clash with the formation at maximum speed and rotation, resulting in drastic torque, weight, and vibration spikes. Bit damage from vibrations and time wasted making unplanned trips are some examples of lost resources due to this manual process even if a driller attempts to manually control the rig tools, such as a top drive, drawworks, mud pumps, and auto driller, in order to effectively place the bit on bottom. However, human error may be problematic, as the driller may be making numerous decisions based on weight and torque feedback. The driller may also need to precisely determine when to slow down the lowering distance for tagging bottom and when to ramp up to full speed. Thus, an optimized automated process for tagging bottom is needed.

BRIEF DESCRIPTION OF DRAWINGS

[0004] FIG. 1 is a diagram illustrating an apparatus for performing automated drilling operations utilizing a drilling rig software system.

[0005] FIG. 2 is a system diagram illustrating a drilling rig software system for automated drilling.

[0006] FIG. 3 is a flow diagram illustrating components of a rig computing system.

[0007] FIG. 4 is a flowchart illustrating a method for performing automated drilling utilizing a rig computing system.

[0008] FIG. 5 is a flowchart illustrating a method to manage automated drilling by multiple applications.

[0009] FIG. 6 is a flow diagram illustrating various operations of automated drilling and their associated activities.

[0010] FIG. 7 is a flowchart illustrating a method for automatically tagging bottom, according to one or more embodiments.

[0011] FIG. 8 is a flow diagram illustrating an example time diagram of a process of automatically tagging bottom, according to one or more embodiments.

[0012] FIG. 9 is a block diagram illustrating a rig computing device for use with techniques described herein according to another embodiment. DESCRIPTION OF EMBODIMENTS

[0013] In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed concepts. As part of this description, some of this disclosure's drawings represent structures and devices in block diagram form in order to avoid obscuring the novel aspects of the disclosed embodiments. In this context, it should be understood that references to numbered drawing elements without associated identifiers (e.g., 100) refer to all instances of the drawing element with identifiers (e.g., 100a and 100έ). Further, as part of this description, some of this disclosure's drawings may be provided in the form of a flow diagram. The boxes in any particular flow diagram may be presented in a particular order. However, it should be understood that the particular flow of any flow diagram is used only to exemplify one embodiment. In other embodiments, any of the various components depicted in the flow diagram may be deleted, or the components may be performed in a different order, or even concurrently. In addition, other embodiments may include additional steps not depicted as part of the flow diagram. The language used in this disclosure has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the disclosed subject matter. Reference in this disclosure to "one embodiment" or to "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment, and multiple references to "one embodiment" or to "an embodiment" should not be understood as necessarily all referring to the same embodiment or to different embodiments.

[0014] It should be appreciated that in the development of any actual implementation (as in any development project), numerous decisions must be made to achieve the developers' specific goals (e.g., compliance with system and business-related constraints), and that these goals will vary from one implementation to another. It will also be appreciated that such development efforts might be complex and time consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art of automated drilling having the benefit of this disclosure. [0015] As used herein, the term "programmable device" can refer to a single programmable device or a plurality of programmable devices working together to perform the function described as being performed on or by the programmable device.

[0016] As used herein, the term "medium" refers to a single physical medium or a plurality of media that together store what is described as being stored on the medium.

[0017] As used herein, the term "network device" can refer to any programmable device that is capable of communicating with another programmable device across any type of network.

[0018] As used herein, the term "drilling rig" can refer to a land or offshore rig apparatus utilized to drill a borehole.

[0019] As used herein, the term "drilling tool" can refer to drilling components such as drilling devices or sensors utilized to perform drilling activities.

[0020] According to one or more embodiments, a drilling rig software system may be utilized to automate a tagging bottom process. In one or more embodiments, a tag bottom application may detect that a bit has reached a predetermined distance from the bottom of a wellbore. The tag bottom application may transmit a rate of penetration set point to reduce a lowering speed of the drill bit in response to determining that the predetermine distance has been reached. The drill bit may be directed by the tag bottom application based on the rate of penetration. Once the rate of penetration is stable, then the tag bottom application may automatically tare a surface weight on the drill bit and a differential pressure. Then, in response to determining that the drill bit is within a predetermined off bottom range, the tag bottom application may monitor for a true bottom.

[0021] In one or more embodiments, the automatic tag bottom process may utilize machine learning to enhance the process. For example, the method in which the drill bit is directed may change based on sensor data received from downhole tools or surface tools. Thus, the performance of one or more tools may be modified based on various drilling parameters that are monitored during the tag bottom process.

[0022] In one embodiment of the invention, as illustrated in FIG. 1, a drilling apparatus 100 for automated drilling of a wellbore 102 in a subsurface formation 104 includes a derrick 106 on a rig floor 108. A crown block 110 is mounted at the top of the derrick 106, and a traveling block 112 hangs from the crown block 110 by means of a cable or drilling line 114. One end of the cable or drilling line 114 is connected to drawworks 116, which is a reeling device operable to adjust the length of the cable or drilling line 114 so that the traveling block 112 moves up and down the derrick 106. A top drive 118 is supported on a hook 120 attached to the bottom of the traveling block 112. The top drive 118 is coupled to the top of a drill string 122, which extends through a wellhead 124 into the wellbore 102 below the rig floor 108. The top drive 118 is used to rotate the drill string 122 inside the wellbore 102 as the wellbore 102 is being drilled in the subsurface formation 104. A bottomhole assembly 126 is provided at the bottom of the drill string 122. The bottomhole assembly 126 includes a bit 128 and a downhole motor 130 and may include other components not specifically identified but known in the art, e.g., a sensor package.

[0023] Although not shown, the automated drilling apparatus 100 includes a mud tank, which contains drilling fluid or "mud," a mud pump for transferring the drilling fluid to a mud hose, and a mud treatment system for cleaning the drilling fluid when it is laden with subsurface formation cuttings. The mud hose, in use, would be fluidly connected to the drill string so that the drilling fluid can be pumped from the mud tank into the drill string. The drilling fluid would be returned to the mud treatment system via a return path between the borehole and the drill string or inside the drill string, i.e., if the drill string is a dual-bore drill string. After the drilling fluid is cleaned in the mud treatment system, the clean drilling fluid would be returned to the mud tank.

[0024] In one embodiment of the invention, the automated drilling apparatus 100 includes sensors (or instruments) 132 for measuring drilling data. A variety of drilling data may be measured by the sensors 132. The locations of the sensors in the automated drilling apparatus 100 and the types of sensors 132 will be determined by the drilling data to be measured by the sensors 132. Examples of drilling data that may be measured by the sensors 132 include, but are not limited to, weight on bit, bit or drill string rotational speed, drill string rotational torque, rate of penetration, bit diameter, and drilling fluid flow rate. Measuring of drilling data may be direct or indirect. In the indirect measurement, the desired drilling data may be derived from other measurable drilling data. The drilling data may be measured at the surface and/or in the borehole. For example, drill string rotational torque may be measured at the surface using a sensor 132 on the top drive 118. Alternatively, pressure differential across the downhole motor 130 may be measured using a sensor 132 downhole, and the drill string rotational torque may be derived from the pressure differential. In another example, the load on hook 120 may be measured using any suitable means at the surface, and weight on bit may be inferred from the hook load. Various other drilling data not specifically mentioned above may be measured, or derived, as required by the drilling process.

[0025] In one embodiment, the drilling apparatus 100 includes one or more rig computing systems, such as rig computing system 134. In one embodiment, the rig computing system 134 includes various computing components and peripherals, such as a processor, memory, a display, a communications interface, and an input interface. The rig computing system 134 can receive measurement of drilling data from the various sensors 132 of the automated drilling apparatus 100. Information related to operation of the rig computing system 134 may be stored in some other computer-readable media 146 for subsequent loading into memory. Although the rig computing system 134 is shown primarily at the surface in FIG. 1, it should be noted that in other embodiments of the invention a portion or all of the rig computing system 134 may be located downhole.

[0026] FIG. 2 depicts a system diagram illustrating a drilling rig software system for automated drilling. FIG. 2 includes a rig computing system 200 connected to one or more network devices 210 across a network 205. Rig computing system 200 may be, for example, a detailed version of rig computing system 134 of FIG. 1. Network device 210 may include any kind of device accessible across network 205, with which rig computing system 200 may communicate. For example, network device 210 may be an additional rig computing system, a server, a remote computer, or the like. Network 205 may include many different types of computer networks available today, such as the Internet, a corporate network, a Local Area Network (LAN), or a personal network, such as those over a Bluetooth connection. Each of these networks can contain wired or wireless programmable devices and operate using any number of network protocols (e.g., TCP/IP). Network 205 may be connected to gateways and routers, servers, and end user computers.

[0027] According to one or more embodiments, rig computing system 200 may include, for example, a storage 220, a memory 225 and processor 215. Processor 215 may include a single processor or multiple processors. Further, in one or more embodiment, processor 215 may include different kinds of processors, such as a central processing unit ("CPU") and a graphics processing unit ("GPU"). Memory 225 may include a number of software or firmware modules executable by processor 215. Memory 225 may include a single memory device or multiple memory devices. As depicted, memory 225 may include a rig operating system 235 and one or more drilling applications 240. The rig operating system 235 may be a process automation platform that manages rig equipment to execute drilling applications 240. Drilling applications 240 may import well plans that describe, for example, the desired drilling directions, and the rig operating system performs the planned operations until the target depth is reached. According to one or more embodiments, the well plans may be performed at the direction of one or more drilling applications 240. Thus, multiple drilling applications 240 may control a single well plan. In one or more embodiment, the rig operating system 235 may receive tool-agnostic instructions from the drilling applications 240 and coordinate the instructions with the tools and other components of drilling components 245 to implement the well plan. In one or more embodiments, the drilling applications 240 may provide instructions for drilling operations without knowing details regarding the drilling components 245, such as the specific tools or how the tools are operated. The rig operating system 235 may translate the tool-agnostic instructions to tool-specific instructions, and deploy those tool-specific instructions to operate the drilling components 245 in compliance with the well plan. As an example, the drilling application 240 may request a tool command such as a certain Top Drive rotation speed, but the application may have no context to the Top Drive's specifications or configurations. The rig operation system 235 may take the request and translate the correct message to the rig tool. In one or more embodiments, data related to the drilling operation 230 may be stored in a storage 220 in the rig computing system. Storage 220 may include a single storage device, or multiple storage devices. Although the various components are depicted within a single computing device, in one or more embodiments, the various components and functionalities described with respect to the rig computing system 200 may instead be reconfigured in a different combination, or may be distributed among multiple computing devices.

[0028] According to one or more embodiments, rig computing system 200 may communicate with one or more network devices 210 across network 205. In one or more embodiments, the rig computing system 200 may transmit drilling data or other information from the rig computing system 200 to the network device 210. For example, rig computing system 200 may transmit data related to one or more of the drilling applications 240 to a network device 210 associated with an entity that manages the particular drilling application 240. Further, the network device 210 may include end user computers, servers, and the like, utilized in conjunction with rig computing system 200.

[0029] In one or more embodiments, multiple drilling applications may be utilized during drilling. The drilling applications may be managed by different entities, such as unique operators, contractors, owners, and the like. Thus, a first activity for a process may be directed by a first application and managed by a first entity, whereas a second activity for the process may be directed by a second application managed by a second entity. According to one or more embodiments, the rig computing system may toggle between utilizing the various drilling applications. Further, in one or more embodiment, drilling data generated while a particular entity is controlling an activity may be partitioned into a separate storage from drilling data generated while another entity is controlling an activity. The separate storage may be, for example, a separate physical storage device, a storage partition in a physical storage device, or a different data structure on a storage device. Thus, ownership of an activity may be managed for example, based on depth, formation, or section of a well plan.

[0030] Turning to FIG.3, a flow diagram illustrating components of a rig computing system. Specifically, FIG.3 provides a schematic of a data flow within the rig computing system 300. The rig computing system 300 may include rig applications 306, and a rig operating system 308. In addition, the rig computing system 300 may include a well program 304, which may facilitate management of the rig. The rig operating system may include several layers in which data flows. The rig operating system 308 may receive instructions from the rig applications 306. As described above, the rig application 306 may provide tool-agnostic instructions. That is, rig applications 306 may be written for generic drilling components, and the rig operating system 308 may translate the tool-agnostic instructions into tool-specific instructions, to direct the specific downhole tools 302 accessible by the rig computing system 300. In one or more embodiments, the rig applications 306 may include a tag bottom application, which may automate the tagging bottom process.

[0031] The rig operating system 308 may include multiple components or layers that are utilized to translate tool-agnostic well plans into tool-specific instructions to direct downhole tools 302 to implement the well plan. In one or more embodiments, the rig operating system 308 may include a service layer 310, an activity layer 312, and a set of controller modules 314. In one or more embodiments, the service layer 310 may coordinate with a tool-agnostic request to an activity layer. The service layer may identify one or more activities required to complete a requested service or process. As an example, the service layer 310 may receive instructions from a drilling application with instructions to perform a drill function to a particular depth, or in a particular formation. The service layer 310 may manage the activities needed to perform the different process functions required to achieve the objective from a current drilling state. In one or more embodiments, the service layer 310 may switch between processes or objectives manually based on user input, or dynamically based on a predefined well plan or other instructions provided by a rig application 306 or well program 304. Further, in one or more embodiments, the process may be dynamically switched based on a model or algorithm input. For example, the service layer 310 may switch the process objective from drilling to tripping or to reaming based on the input.

[0032] The service layer 310 may coordinate with the activity layer 312 to manage the various activities required to complete the requested process or service. The activity layer may coordinate with one or more controller modules 314 to implement a particular activity. As an example, the activity layer 312 may identify various controller modules required to implement an activity as directed by the service layer 310. Further, according to one or more embodiments, the activity layer 312 may determine whether one or more controller modules 314 are available for performing a necessary activity. In one or more embodiments, if a controller module 314 is not available, then the activity layer 312 may trigger a notification such that the particular activity may be driven by a user.

[0033] According to one or more embodiments, the controller modules 314 act as an abstraction layer that allows rig applications 306 to be tool-agnostic, and controller module 314 to translate the instructions for specific downhole tools 302 or other drilling components. In one or more embodiments, controller modules 314 may include state machine logic to start and stop downhole tools 302 and other components, and bridge the process to the machine. The controller modules 314 may translate tool-agnostic instructions into tool-specific instructions based on the specific downhole tools 302 or other components available on a rig, thereby driving the tools. In one or more embodiments, the controller modules 314 may be tool- specific. That is, a controller module may be associated with a particular tool or tools such that the controller module generates tool-specific instructions for that particular tool. Further, in one or more embodiments, the controller modules 314 may be associated with multiple tools or components, or may be associated with a particular function of a particular tool. As an example, the top drive 118 may be utilized for processes or activities such as circulation, rotation, and pipe handling. Each of circulation, rotation, and pipe handling may be managed by a separate controller module 314. The controller module 314 associated with a particular tool may drive that tool to implement actions to perform the activity. Further, according to one or more embodiments, controller modules 314 may be associated with particular functionality. For example, one or more controller modules 314 may be associated with rotation, whereas another one or more controller modules 314 may be associated with circulation. In this example, each controller module 314 may be associated with a particular set of drilling components based on functionality, and may include the capability to translate tool-agnostic instructions into tool-specific instructions for tools associated with the particular functionality.

[0034] According to one or more embodiments, the service layer 310 may manage the scheduling of the various processes by the activity layer 312 and the controller modules 314. For example, the service layer may determine a current drilling state and, based on the drilling state, trigger the activity layer 312, and thus the controller modules 314 to perform an action. For example, if the objective is to drill, the controller modules 314 may initiate pumps to prepare for a particular flow, initiate a top drive for a particular circulation, and the like.

[0035] In addition, the service layer 310 may manage the rig applications 306 from which instructions are received. The service layer 310 may toggle between rig applications based on a drilling state. A drilling state may be determined based on sensor data from sensors 132. The drilling state may include contextual data either from or determined by the sensors 132, or environmental contextual data, such as For example, a first rig application 306 may drive the drilling operation to a particular depth, at which point a second rig application 306 may take over. Thus, the service layer 310 may monitor a current depth or other drilling state information, and toggle between the various rig applications 306 accordingly.

[0036] Further, in one or more embodiments, the well program 304 may include a well plan, which may include a set of parameters based on formations and sections, utilized to perform drilling operations. Well program 304 may monitor various drilling measurements to ensure that the various drilling components perform within certain thresholds. As an example, thresholds may determine safe operation of the components, or may be utilized for resource management, such as power savings, or to limit wear and tear on machinery. According to one or more embodiments, the thresholds may be set by the well program 304 or another rig application 306. Further, in one or more embodiments, the thresholds may be dynamically modified, for example, through user input during operation of the rig. The thresholds may be set based on various drilling parameters, such as drilling state (i.e., a current activity, a current depth, or other contextual information). The drilling parameters may be determined, for example, based on sensor data from sensors 132. In one or more embodiments, a rig application 306 causes a threshold to be exceeded, then the well program 304 may modify the process or activity directed by the application such that the drilling parameter remains within a threshold. For example, if the threshold values at a particular depth indicate that the rotation should be between 125 and 550 rotations per minute, and an actual reading from a sensor on the top drive indicates that the actual rotation is 40 rotations per minute, the well program 304 may override the rig application 306 to ensure that the minimum rotation is met. Conversely, if the actual rotation is 600 rotations per minute, then the well program 304 may direct the rig operating system 308 to direct the top drive 118 lower the rotation speed. The rotation, or any other measured parameter, may be increased or decreased by a predetermined measurement, a particular percentage, or any other method.

[0037] FIG. 4 is a flowchart illustrating a method for performing automated drilling utilizing a rig computing system. For purposes of explanation, some functionality is depicted and described as being conducted by the service layer 310 while some functionality is depicted and described as being conducted by the activity layer 312. However, in one or more embodiments, the various functionality may be distributed in a different manner, or may even be conducted by alternate modules.

[0038] The method begins at 405, and the service layer 310 receives a tool- agnostic request to perform a process. As an example, the tool-agnostic request may be received from a drilling application and may request a particular objective to be reached. Further, in one or more embodiments, a particular objective may not be expressly provided by a rig application 306, but the service layer 310 may determine that an objective must be reached prior to a requested objective. As an example, if the objective is to drill, but the bit 128 hasn't tagged bottom, then the rig operating system 308 may implement the tag bottom objective prior to the drill objective.

[0039] At 410, the service layer 310 determines one or more activities to complete the process. In one or more embodiments, the service layer 310 may determine activities required to reach the objective. The activities required may be obtained from the rig application 306, or may be determined by the well program 304, or the rig operating system 308. For example, if the process is "take weight," the activities needed may include hoisting pipe out of slips, and monitoring for transferred weight rom the slips to the drawworks 116. As another example, if the process is set rotation, the activities may include sending a command to the top drive to start rotation, and rotating to the desired rotation set point.

[0040] The flowchart continues at 415 and the activity layer 312 identifies a controller module associated with an activity of the one or more activities. As described above, the controller module 314 may be activity- or functionality- specific. Thus, if the activity includes commanding the top drive to start rotation, the controller module 314 may be associated with rotation. For example, the controller module 314 may be assigned a rotation functionality. The controller module may then send a command to a top drive to initiate rotation. Thus, the activity layer 312 and the service layer 310 may not know the specifics of the top drive 118, or even that a top drive is utilized for rotation. Further, the rig applications 306 also do not need to know the specifics of the top drive, or that the top drive is used for rotation. Rather, the service layer 310 and activity layer 312 only need to determine that rotation is needed, and be able to identify the particular controller module 314 assigned to rotation. The assigned controller module 314 may then command the appropriate drilling component, such as the top drive 118 to initiate rotation. At 420, the activity layer 312 triggers the identified controller module to initiate the activity.

[0041] The flowchart continues 425 and a determination is made by the activity layer 312 regarding whether additional activities are needed to complete the process. If at 425 it is determined that there are additional activities to be completed, then the flowchart continues at 405, and the activity layer 312 continues to coordinate the various activities required to complete a particular process. For example, a second activity may be identified that requires the first activity to be completed prior to the second activity initializing. Said another way, the second activity may be conditional upon completion of the first activity. For example, the first activity may need to be complete or reach a particular state before it is optimal for the second activity to occur, for safety reasons, resource management, or any other reason. In this example, when the flowchart continues at 415, the activity layer 312 may identify a second controller module associated with the second activity, and trigger the second controller module to initiate the second activity. Upon determining that the user has completed a particular activity, the flow chart may continue at 425 and the activity layer 312 may determine whether any additional processes are needed, and identify further controller modules for the further additional activities.

[0042] According to one or more embodiments, if at 415 a controller module cannot be identified for a particular activity, then the activity layer 312 or the service layer 310 may direct a user to complete the activity. For example, the rig operating system 308 may generate and present a prompt for a user, such as an operator of the rig, to direct a user to complete the activity. The prompt may be visual, audio, or textual in nature, or may be a combination. The rig operating system 308 may monitor for an indication that the activity is complete. The indication may be an automatic indication, or may be an indication from the user through a user interface to indicate that the activity is complete.

[0043] Returning to 425 if it is determined that there are no additional activities to complete the process, then the flowchart ends. The service layer 310 may then continue with a next requested process, or may wait for any additional processes requested by a drilling application. It should be understood that although the flowchart depicts the activities occurring in a sequential manner, in one or more embodiments, multiple activities may be active at the same time. The service layer 310 may manage the initialization and processing of multiple activities. [0044] FIG. 5 is a flowchart illustrating a method to manage automated drilling by multiple applications. As described above, different parts of a process or different processes may be controlled by different applications. The different applications may be associated with particular operators, contractors, or the like. In one or more embodiments, data generated while a particular application is managing the automated drilling may be stored in a separate data structure from that in which data is stored while another application is managing the automated drilling.

[0045] The flowchart begins at 505, and the rig operating system 308 receives a tool-agnostic request to perform a process. As an example, the rig operating system 308 may receive a tool-agnostic objective to drill to a particular depth. At 510, the rig operating system 308 determines one or more activities to complete the process. The activities required may be obtained from the rig application 306, or may be determined by the well program 304, or the rig operating system 308.

[0046] The flowchart continues at 515, and the rig operating system 308 determines a drilling parameter based on a current drilling state. In one or more embodiments, the drilling state may be a current point in a well plan, a current depth, a time of day, a current formation, or any other kind of contextual information. The drilling state may be based on data external to the rig, such as day or time, or may be based on contextual data associated with the rig, such as formation or depth. In one or more embodiments, the rig operating system 308 may obtain sensor data or other data from the rig to determine a drilling state.

[0047] At 520, the rig operating system 308 selects an application from which to read instructions for the activity based on the current drilling state parameter. In one or more embodiments, the rig operating system 308 may toggle between applications based on a number of factors. For example, certain activities, such as rotation or flow, may be directed by a particular application, whereas other activities are directed by another application. As another example, certain portions of a well plan may be managed by one application while another application manages another part of the well plan. For example, a first application may handle tagging bottom, while a second application handles drilling. In one or more embodiments, the application from which the rig operating system 308 selects to read the instructions may be based on a well state or other contextual data, such as a current depth or a portion of a well plan that has been completed.

[0048] The flowchart continues at 525, where the rig operating system 308 triggers one or more controller modules 314 to initiate the activity based on the selected application. At 530, a determination is made regarding whether additional activities are required to complete a process. If at 530 a determination is made that no additional activities are required to complete the process, then the flowchart concludes. In one or more embodiments, the service layer may continue to coordinate process requested by various drilling applications, either by reading a new drilling instruction, or by waiting for additional drilling instructions.

[0049] If at 530 it is determined that additional activities are required to complete the process, then the flowchart continues at 515 and the rig operating system 308 determines a current drilling state. According to one or more embodiments, if at 415 a controller module cannot be identified for a particular activity, then the activity layer 312 or the service layer 310 may direct a user to complete the activity. For example, the rig operating system 308 may generate and present a prompt for a user, such as an operator of the rig, to direct a user to complete the activity. The prompt may be visual, audio, or textual in nature, or may be a combination. The rig operating system 308 may monitor for an indication that the activity is complete. The indication may be an automatic indication, or may be an indication from the user through a user interface to indicate that the activity is complete.

[0050] Returning to 530 if it is determined that there are no additional activities to complete the process, then the flowchart ends. The service layer 310 may then continue with a next requested process, or may wait for any additional processes requested by a drilling application. It should be understood that although the flowchart depicts the activities occurring in a sequential manner, in one or more embodiments, multiple activities may be active at the same time. The service layer 310 may manage the initialization and processing of multiple activities. [0051] In FIGs. 4-5, activities are described as being completed in a linear process for illustrative purposes only. It should be understood that some activities may be performed concurrently or in concert with each other. Moreover, the various functionality described in each of FIGs. 4-5 may be reordered or combined in a different manner, according to one or more embodiments.

[0052] FIG. 6 is a flow diagram illustrating various operations of automated drilling and their associated activities. Specifically, FIG. 6 illustrates an example well plan 600. The well plan includes multiple phases, each of which may be considered a process. The well plan begins with hoist out of slips at 602. Hoist out of slips may include an activity of managing the drawworks hoisting speed. Then, the well plan continues at 604 by opening an inside blow out preventer ("IBOP"). The flow diagram continues with set flow 606. Activities associated with set flow may include managing low rate ramping speeds, and circulation stability. Thus, to achieve "set flow" 606, a controller module associated with flow, and a controller module associated with circulation may be utilized by the rig operating system. For example, the rig operating system may manage the mud pump's strokes per minute output to achieve the desired flow, without reading instructions from the well plan that specify how to operate the mud pumps. For example, the well plan may not be written toward particular mud pump specifications, such as liner size, pump efficiency, or strokes to achieve the flow rate. The flow diagram continues at 608 with "set rotation." Here, associated activities may include flow rate ramping speeds and circulation stability. Thus, flow may be maintained through the process. For example, rotation may not occur without active flow.

[0053] At 610, the flow diagram continues with "tag bottom." The activities associated with tagging bottom may include managing a bit lowering speed, weight stabilization, RPM ramping, and accurately identifying the bottom. Then, a "drill" process begins. The drill process may include managing auto driller settings, drilling parameter road maps, reaming, surveys, siding, and circulation. In one or more embodiments, the drilling parameters may be obtained, for example, from rig applications. The flow diagram continues on at 614, with the process of "off bottom." Off bottom activities may include off bottom rotation, off bottom flow, drill off weight, and drill off rotation. Then, at 616, the next process may include "stop flow," at which point the flow stops. The flow diagram continues at 618 with "close IBOP," during which time the inside blow out preventer may be closed. Finally, at 620, the flow diagram ends with "set in slips," for which activities may include managing drawworks lowering speed and connection height.

[0054] FIG. 7 is a flowchart illustrating a method for automatically tagging bottom, according to one or more embodiments. In one or more embodiments, the tag bottom activity begins once weight has fully transitioned from the slips to the drawworks. Based on configured values and parameters, the tag bottom application may send automated commands to the rig tools. In one or more embodiments, at least some of the various activities described below may be triggered based on feedback, such as sensor data or other measurements that end a previous operation. In one or more embodiments, the rig computing system 300 may utilize the tag bottom application to configure the process for lowering the drill bit into the formation and tag bottom in an efficient manner in order to identify a true bottom, eliminate vibrations, and potentially prolong the life of the drill bit.

[0055] The flowchart begins at 705 and the tag bottom application detects that a drill bit has reached a predetermined distance from a bottom of a wellbore. In one or more embodiments, the tag bottom application may send an off bottom rotations per minute (RPM) and flow command. The off bottom RPM and the off bottom flow may be configurable according to the rig applications 306. In addition, the tag bottom application 306 may send a drawworks speed command to lower to bottom. The block speed may also be configurable by the rig applications 306, and may be measured, for example, in feet per minute. According to one or more embodiments, the predetermined distance may be, for example, in the range of 1-5 feet.

[0056] The flowchart continues at 710, and the tag bottom application transmits a rate of penetration set point to reduce a lowering speed of the drill bit. In one or more embodiments, the rate of penetration may be transmitted by the rig application 306 in response to the predetermined distance being reached. At 715, the drill bit is directed based on the rated of penetration transmitted from the tag bottom application. In one or more embodiments, the rate of penetration may be configurable by a user, or may be modified dynamically based on sensor and other measurement feedback. In one or more embodiments, the rate of penetration may be measured in feet per minute. A determination is made at 720 regarding whether the rate of penetration is stable. In one or more embodiments, the rate of penetration may be determined to be stable, for example, if velocity is consistent and not fluctuating outside of a threshold. In one or more embodiments, the rate of penetration may be determined to be stable, for example, if a predetermined weight is reached. If the rate of penetration is not stable, then the flowchart continues at 715, and the drill bit continues to be directed based on the rate of penetration transmitted from the tag bottom application.

[0057] If, at 720, a determination is made that the rate of penetration is stable, then the flowchart continues at 725, and the tag bottom application automatically tares a surface weight on the drill bit and a differential pressure. In one or more embodiments, because the rig operating system waits for a stable velocity or rate of penetration, the system is able to accurately tare the surface parameters of Weight on Bit and Differential pressure. The result may be less variation in the height the tare is made, as well as downhole conditions. For example is rate of penetration is lOOft/hr and not fluctuation the tag bottom application may initiate the automatic taring. If ROP is fluctuating between 100-150 ft/hr we will not tare until it stabilizes. In one or more embodiments, an accurate tare means more accurate surface parameters which leads to accurately identifying a 'true bottom' for tagging bottom purposes.

[0058] At 730, a determination is made regarding whether the drill bit is within a predetermined off bottom range. If, at 730 it is determined that the drill bit is not within a predetermined off bottom range, then the flowchart returns to 725, and the tag bottom application continues to automatically tare a surface weight on the drill bit and a differential pressure.

[0059] If, at 735, a determination is made that the drill bit is within a predetermined off bottom range, then the flowchart continues at 735, and the tag bottom application monitors for a true bottom based on one or more parameter triggers. In one or more embodiments, monitoring for one or more parameters may include monitoring for 1, 2, or 3 parameter spikes to identify a true bottom. As an example, if the tag bottom application is configured to monitor for a pressure spike of 100 psi within the off bottom distance, and the pressure jumps by 100 psi, the rig computing system 300 may determine that the drill bit is on the bottom of the wellbore. In one or more embodiments, the parameters monitored may be further configured. As an example, if a driller prefers to ignore certain parameters, then the parameter spikes may be configured to zero in the tag bottom application. According to one or more embodiments, the parameters are ignored, the rig computing system 300 may identify the true bottom based on other measurements, such as monitoring for the bit depth to equal a hole depth.

[0060] Once the rig computing system 300 identifies the drill bit is on the bottom of the wellbore, the drilling rate of penetration may be transmitted to an auto driller, and the rig computing system may begin monitoring for a stabilized weight on bit. Once the weight is reached, the tag bottom operation may be considered to be complete. Drilling instructions may then be transmitted from the rig applications 306, and drilling may continue.

[0061] In one or more embodiments, the various parameters and measurements that trigger when operations begin and end may allow a user or automated machine to optimize the tag bottom process through configuration.

[0062] FIG. 8 is a flow diagram illustrating an example time diagram of a process of automatically tagging bottom, according to one or more embodiments. For purposes of clarity, some of the various components of FIG. 8 may be referred to by the reference numbers introduced with respect to Fig. 1.

[0063] The flow diagram shows a timing diagram of a drill bit 828 lowering into a wellbore 102 and tagging bottom. As shown, drill bit 828 may be lowered by a drill string 122 down the wellbore 102 until the hole depth 850 is reached. The first phase of the timing diagram 805 shows that the drill bit 828A is lowered in the wellbore 102 until the tag bottom application is initiated at Tl 815. During the second phase 815 of the timing diagram, the drill bit 828B is lowered using a hoist command with configured drawworks block speed. In one or more embodiments, the drill bit 828A may be lowered until T2 825, at which time a predetermined distance from the bottom of the wellbore 102 may be reached.

[0064] During the third phase 825 of the timing diagram, the drill bit 828B is lowered using a reduced configuration top drive rotation. In one or more embodiments, the tag bottom application may use a rate of penetration set point. The tag bottom application may monitor various sensor data and other measurements until the rate of penetration is stable. In one or more embodiments, the rig computing system 300 may monitor for a standard deviation within a configured window range to identify a stabilized velocity. As an example, the standard deviation of the rate of penetration may be determined to be within a preconfigured range of velocity. For purposes of the example timing diagram, the rate of penetration may be considered stable at T3 830. In response to determining that the velocity of the drill bit has stabilized, the rig computing system 300 may automatically tare the surface weight on bit and differential pressure.

[0065] In the fourth phase 835 of the timing diagram 800, the tag bottom application continues to lower the drill bit 828C while monitoring for a true bottom 850 based on one or more parameter triggers. In order to monitor for a true bottom, the tag bottom application may monitor for spike conditions in weight on bit, differential pressure, torque, or the like. Thus, the parameter triggers may include such triggers as a weight on bit trigger, a differential pressure trigger, and a torque trigger. According to one or more embodiments, monitoring the various triggers may include monitoring sensor data associated with the triggers from rig tools to determine whether a predetermined threshold is met. When the parameters are satisfied, the rig computing system 300 may consider the drill bit 828C to be engaged with the formation. According to one or more embodiments, once he drill bit 828C is considered engaged, the rig computing system 300 may monitor for a configured weight to determine that the drill bit 828C is stabilized. Once the weight is satisfied, drilling operations may commence. According to one or more embodiments, this configuration allows the rig computing system 300 to increase surface parameters in a manner that reduces vibration. [0066] According to one or more embodiments, some operations described above may utilize artificial intelligence in order to make adjustments in the automated tag bottom process. Measurements may be read from surface tools or downhole tools in order to infer a drilling environment, and modify tag bottom instructions accordingly. As an example parameter changes may be dependent upon vibration readings from downhole tools or top drive readings. Some of these parameters may include off bottom rotations per minute and bit lowering speed. For example, if high stick slip is read during the tag bottom process, the top drive rotation may increase, for example by a particular percentage or other metric, and drawworks lowering speed may be decreased, for example by a particular percentage or metric, on the next tag bottom process to mitigate stick slip vibrations. As another example, if high lateral vibrations are read during the tag bottom process, the top drive rotation may decrease by a configured amount and drawworks lowering speed may increase by a configured amount on the next tag bottom process to mitigate lateral vibrations. Thus, according to one or more embodiment, sensor data from one or more tools may be monitored, and in response to determining that the sensor data satisfies a predetermined threshold, the performance of one or more tools may be modified. Said another way, a drilling event may be detected according to detected vibration data, and in response, a future performance of one or more tools may be modified to mitigate the effects in a future drilling event.

[0067] In addition, the process of increasing weight to a configured value to determine bit stability may additionally be modified, as well as increasing rotations per minute by a configured speed to drilling rotations per minute. As an example, if high axial vibrations are read during the tag bottom process, the weight required to detect stability at the bit may increase by a configured amount on the next tag bottom process to mitigate torsional vibrations.

[0068] FIG. 9 illustrates that memory 904 may be operatively coupled to processing element 902. Memory 904 may be a non-transitory medium configured to store various types of data. For example, memory 904 may include one or more memory devices that comprise a non-volatile storage device and/or volatile memory. Volatile memory, such as random access memory (RAM), can be any suitable non- permanent storage device. The non-volatile storage devices can include one or more disk drives, optical drives, solid-state drives (SSDs), tap drives, flash memory, read only memory (ROM), and/or any other type memory designed to maintain data for a duration time after a power loss or shut down operation. In certain instances, the nonvolatile storage device may be used to store overflow data if allocated RAM is not large enough to hold all working data. The non-volatile storage device may also be used to store programs that are loaded into the RAM when such programs are selected for execution.

[0069] Persons of ordinary skill in the art are aware that software programs may be developed, encoded, and compiled in a variety computing languages for a variety software platforms and/or operating systems and subsequently loaded and executed by processing element 902. In one embodiment, the compiling process of the software program may transform program code written in a programming language to another computer language such that the processing element 902 is able to execute the programming code. For example, the compiling process of the software program may generate an executable program that provides encoded instructions (e.g., machine code instructions or computer readable code) for processor 902 to accomplish specific, non-generic, particular computing functions.

[0070] After the compiling process, the encoded instructions may then be loaded as computer executable instructions or process steps to processing element 902 from storage (e.g., memory 904) and/or embedded within the processing element 902 (e.g., cache). Processing element 902 can execute the stored instructions or process steps in order to perform instructions or process steps to transform the computing device into a non-generic, particular, specially programmed machine or apparatus. Stored data, e.g., data stored by a storage device, can be accessed by processing element 902 during the execution of computer executable instructions or process steps to instruct one or more components within the computing device 900.

[0071] A user interface 910 can include a display, positional input device (such as a mouse, touchpad, touchscreen, or the like), keyboard, or other forms of user input and output devices. The user interface 910 can be coupled to processor element 902. Other output devices that permit a user to program or otherwise use the computing device can be provided in addition to or as an alternative to network communication unit 908. When the output device is or includes a display, the display can be implemented in various ways, including by a liquid crystal display (LCD) or a cathode-ray tube (CRT) or light emitting diode (LED) display, such as an OLED display. Persons of ordinary skill in the art are aware that the computing device 900 may comprise other components well known in the art, such as sensors, powers sources, and/or analog-to-digital converters, not explicitly shown in FIG. 9.

[0072] The programmable devices depicted in FIG. 9 is a schematic illustration of embodiments of programmable devices which may be utilized to implement various embodiments discussed herein. Various components of the programmable devices depicted in FIG. 9 may be combined in a system-on-a-chip (SoC) architecture.

[0073] It is to be understood that the various components of the flow diagrams described above, could occur in a different order or even concurrently. It should also be understood that various embodiments of the inventions may include all or just some of the components described above. Thus, the flow diagrams are provided for better understanding of the embodiments, but the specific ordering of the components of the flow diagrams are not intended to be limiting unless otherwise described so.

[0074] Program instructions may be used to cause a general-purpose or special- purpose processing system that is programmed with the instructions to perform the operations described herein. Alternatively, the operations may be performed by specific hardware components that contain hardwired logic for performing the operations, or by any combination of programmed computer components and custom hardware components. The methods described herein may be provided as a computer program product that may include a machine readable medium having stored thereon instructions that may be used to program a processing system or other electronic device to perform the methods. The term "computer readable medium" used herein shall include any medium that is capable of storing or encoding a sequence of instructions for execution by the machine and that cause the machine to perform any one of the methods described herein. The term "computer readable medium" shall accordingly include, but not be limited to, tangible, non-transitory memories such as solid-state memories, optical and magnetic disks. Furthermore, it is common in the art to speak of software, in one form or another (e.g., program, procedure, process, application, module, logic, and so on) as taking an action or causing a result. Such expressions are merely a shorthand way of stating that the execution of the software by a processing system causes the processor to perform an action or produce a result.

[0075] It is to be understood that the above description is intended to be illustrative, and not restrictive. For example, the above-described embodiments may be used in combination with each other. As another example, the above- described flow diagrams include a series of actions which may not be performed in the particular order depicted in the drawings. Rather, the various actions may occur in a different order, or even simultaneously. Many other embodiment will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention should therefore be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.