Abstract:
Apparatus and method for automated drilling of a borehole in a subsurface formation. In one embodiment, a method includes selecting at least one control variable. A drilling performance objective having a value that is influenced by drilling of the borehole using the at least one control variable is defined. A first interval of the borehole is drilled maintaining the at least one control variable at a first value. A second interval of the borehole is drilled maintaining the at least one control variable at a second value. A third interval of the borehole is drilled maintaining the at least one control variable at a third value. The third value is selected based on a comparison of the values of the drilling performance objective while drilling the first interval and second interval to a predetermined optimal value of the drilling performance objective.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     The present application claims priority to U.S. Provisional Patent Application No. 61/412,863, filed on Nov. 12, 2010; which is hereby incorporated herein by reference. 
    
    
     BACKGROUND 
     There are various approaches available for optimizing drilling performance. However, many of these schemes, particularly those relying on calculation of gradients to locate an optimum set of control parameters, are unsuitable for wide application without prior knowledge of drilling conditions or are susceptible to errors inherent in drilling performance measurements. Further, existing methods can be confounded by changes, especially unrecognized changes, in formation or drilling conditions. A general issue with these schemes is that the more data points that are collected and used for analysis, the more vulnerable the optimization is to errors due to drilling performance measurement or changes in the formation or drilling conditions. These errors would lead to a false optimum set of control parameters and drilling underperformance. Thus, there is a need for a robust and efficient method of finding an optimum set of control parameters without previous knowledge of drilling conditions and subject to changes in formation and drilling conditions, including changes that are not explicitly recognized. 
     SUMMARY 
     Apparatus and method for automated drilling of a borehole in a subsurface formation. In one embodiment, a method includes selecting at least one control variable. A drilling performance objective having a value that is influenced by drilling of the borehole using the at least one control variable is defined. A first interval of the borehole is drilled maintaining the at least one control variable at a first value. A second interval of the borehole is drilled maintaining the at least one control variable at a second value. A third interval of the borehole is drilled maintaining the at least one control variable at a third value. The third value is selected based on a comparison of the value of the drilling performance objective while drilling the first interval and the value of the drilling performance objective while drilling the second interval to a predetermined optimal value of the drilling performance objective. 
     In another embodiment, an apparatus for automated drilling of a borehole in a subsurface formation includes a drill sting, sensors, and a drilling performance optimizer. The drill sting drills the borehole and is controlled by a set of control variables. The sensors measure a plurality of drilling variables during drilling of the borehole. The drilling performance optimizer is configured to evaluate, based on at least one of the drilling variables, a drilling performance objective having a value that is influenced by drilling of the borehole using the set of control variables. The drilling performance optimizer is also configured to select an operative set of values for the set of control variables based on the value of the drilling performance objective. 
     In a further embodiment, a computer-readable medium is encoded with computer-executable instructions for automated drilling of a borehole in a subsurface formation. When executed the computer-executable instructions cause a processor to control drilling of a first interval of the borehole using a set of control variables populated with a set of first values, and to determine a first value of a drilling performance objective corresponding to drilling of the first interval of the borehole. The instructions also cause the processor to control drilling of a second interval of the borehole using the set of control variables populated with a set of second values, and to determine a second value of the drilling performance objective corresponding to drilling of the second interval of the borehole. The instructions also cause the processor to control drilling of a third interval of the borehole using the set of control variables populated with a set of third values. The processor selects the third set of values based on a determination of which of the first and second values of the drilling performance objective is closest to a predetermined optimal value of the drilling performance objective. 
     It is to be understood that both the foregoing summary and the following detailed description are exemplary of the invention and are intended to provide an overview or framework for understanding the nature and character of embodiments of the invention claimed herein. The accompanying drawings are included to provide a further understanding of embodiments of the invention and are incorporated in and constitute a part of this specification. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The following is a description of the figures in the accompanying drawings. The figures are not necessarily to scale, and certain features and certain views of the figures may be shown exaggerated in scale or in schematic form in the interest of clarity and conciseness. 
         FIG. 1   a  is a schematic of an apparatus for automated drilling of a borehole in a subsurface formation. 
         FIG. 1   b  is a schematic of an apparatus for automated drilling of a borehole in a subsurface formation, with a portion of the apparatus being remote from the drilling site. 
         FIG. 2  is a flowchart illustrating a method for automated drilling of a borehole. 
         FIG. 3  is a graphical illustration of a set of reference test values and a set of current test values for a set of control variables. 
         FIG. 4  is a graphical illustration of a one-dimensional offset between a set of current test values and a set of reference test values. 
         FIG. 5  is a graphical illustration of a two-dimensional offset between a set of current test values and a set of reference test values. 
         FIG. 6  is a graphical illustration of a three-dimensional offset between a set of current test values and a set of reference test values. 
         FIG. 7  is a graphical illustration of focused search in a previous direction. 
         FIG. 8  is a graphical illustration of near search in a new direction. 
     
    
    
     NOTATION AND NOMENCLATURE 
     Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . . ” Also, the term “couple” or “couples” is intended to mean either an indirect or direct connection. Thus, if a first device couples to a second device, that connection may be through a direct connection, or through an indirect connection via other devices and connections. The recitation “based on” is intended to mean “based at least in part on.” Therefore, if X is based on Y, X may be based on Y and any number of additional factors. 
     DETAILED DESCRIPTION 
     The drawings and discussion herein are directed to various embodiments of the invention. The embodiments disclosed are not intended, and should not be interpreted, or otherwise used, to limit the scope of the disclosure, including the claims. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any embodiment is meant only to be exemplary of that embodiment, and not intended to intimate that the scope of the disclosure, including the claims, is limited to that embodiment. Additional features of the disclosed embodiments will be set forth below. 
     In one embodiment, as illustrated in  FIG. 1   a , an apparatus  100  for automated drilling of a borehole  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 borehole  102  below the rig floor  108 . The top drive  118  is used to rotate the drill string  122  inside the borehole  102  as the borehole  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. 
     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. The details of the fluid circulation system are not shown in the drawing of  FIG. 1   a  because these details are known in the art. 
     In one embodiment, the automated drilling apparatus  100  includes sensors (or instruments)  132  for measuring drilling variables. A variety of drilling variables 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 variables to be measured by the sensors  132 . Examples of drilling variables 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. The drilling variables may be measured directly or indirectly. In the indirect measurement, the desired drilling variable is derived from other measurable drilling variables. The drilling variables 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 variables not specifically mentioned above may be measured, or derived, as required by the drilling process. 
     In one embodiment, the automated drilling apparatus  100  includes one or more drilling controllers, such as drilling controller  134 . In one embodiment, the drilling controller  134  includes a processor  136 , memory  138 , a display  140 , a communications interface (or device(s))  142 , and an input interface (or device(s))  144 . The drilling controller  134  receives input from a user via the input interface  144 . The drilling controller  134  communicates with components of the drilling apparatus  100  via the communications interface  142 . The drilling controller  134  can send control set-points to the components of the drilling apparatus  100  via the communications interface  142 . The drilling controller  134  can receive measurement of drilling variables from the various sensors  132  of the automated drilling apparatus  100  via the communications interface  142 . Information related to operation of the drilling controller  134  may be presented on the display  140 . The drilling controller logic may be loaded in the memory  138 , or stored in some other computer-readable media  146  for subsequent loading into the memory  138 . The processor  142  processes the drilling controller logic in memory  138  and interacts with the other components of the drilling controller  134 . 
     The drilling controller  134  includes or is provided with a set of control variables. A set of control variables may have one or more control variables. Each control variable has a numerical value that indicates a control set-point for a component of the drilling apparatus  100 . The components of the drilling apparatus  100  of interest are those that can be controlled via set-points. As previously mentioned, the drilling controller  134  sends the control set-points (i.e., numerical values of the control variables) to the appropriate drilling apparatus components via the communications interface  142 . For example, the drilling controller  134  can send a control set-point to the top drive  118  that indicates an amount of drill string torsional torque to be outputted by the top drive  118 . A feedback loop may be provided between the drilling apparatus components and the drilling controller  134  so that the drilling controller  134  can monitor variations in the outputs of the drilling apparatus components. For example, if a control set-point to the top drive  118  indicates that drill string torsional torque should be set at some value T, the top drive  118  may actually output anywhere from T−α to T+α, where α is the variation in the output. The drilling controller  134  may collect information about such variations for later use. Although the drilling controller  134  is shown primarily at the surface in  FIG. 1   a , it should be noted that in other embodiments a portion or all of the drilling controller  134  may be located downhole. For example, drilling controller logic responsible for receiving and processing sensor data may be located downhole near where the sensor data is collected. 
     In an embodiment, the automated drilling apparatus  100  includes one or more drilling performance optimizers, such as drilling performance optimizer  148 . In one embodiment, the drilling performance optimizer  148  includes logic for populating the set of control variables associated with the drilling controller  134  or the drilling process with a set of numerical values for the purpose of optimizing the drilling process according to a prescribed objective. How the drilling performance optimizer  148  works will be further described below in the context of a method for automated drilling of a borehole in a subsurface formation. The drilling performance optimizer logic may be stored on a computer-readable media. The drilling performance optimizer  148  may be separate from the drilling controller  134  or may be integrated with the drilling controller  134 . Where the drilling performance optimizer  148  is separate from the drilling controller  134 , it may include or be associated with a processor and memory for executing the drilling performance optimizer logic, a communications interface for communicating with the drilling controller  134 , and an input interface for receiving input from a user. In other words, the drilling performance optimizer  148  may have a structure similar to that of the drilling controller  134 , except for the underlying logic. Where the drilling performance optimizer  148  is integrated with the drilling controller  134 , the drilling performance optimizer logic may reside in memory  138 , or in some other computer-readable media  146  for subsequent loading into memory  138 . In this case, the processor  136  would execute the drilling performance optimizer logic. 
     In  FIG. 1   a , the drilling controller  134  and drilling performance optimizer  148  are shown at the drilling site. However, it is possible to have either or both of the drilling controller  134  and the drilling performance optimizer  148  at a location remote from the drilling site, with appropriate infrastructure provided to enable communication between the drilling controller  134  and desired components of the automated drilling apparatus  100 . In one example, as illustrated in  FIG. 1   b , the logic of the drilling controller  134  and the logic of the drilling performance optimizer  148  are loaded onto a server  400  at a remote site. Analysts at the remote site can interact with the drilling controller  134  and drilling performance optimizer  148  via computers  402  connected, e.g., via a local area network or wide area network or world wide web, to the server  400 . A client  404  can be provided at the drilling site. The client  404  can receive signals from components, e.g., sensors, of the automated drilling apparatus and can transmit signals to components, e.g., components requiring control set-points, of the automated drilling apparatus. The client  404  communicates with the server  400  over a network  406 , e.g., the World Wide Web. Through the network  406 , the logic of the drilling controller  134  can transmit control set-points to the client  404 , which the client  404  will provide to components of the automated drilling apparatus  100 . Also, through the network  406 , the logic of the drilling controller  134  can receive measurement data from the client  404 , which the client  404  will obtain from components of the automated drilling apparatus  100 . In a modification of  FIG. 1   b , the drilling controller  134  may take the place of the client  404 , with the logic of the drilling performance optimizer  148  still on the server  400 . The drilling controller  134  could then communicate with the drilling performance optimizer  148  via the network  406 . The logic of the drilling controller  134  and the drilling performance optimizer  148  may be provided as tangible products on computer-readable media. The logic on the computer-readable media, when executed, will perform automated drilling of a borehole, as will be described below. 
     In one embodiment, as illustrated in  FIG. 2 , a APPARATUS AND METHOD FOR AUTOMATED DRILLING OF A BOREHOLE IN A SUBSURFACE FORMATION includes, at  200 , defining a set of control variables. This set of control variables will be included in or associated with the drilling controller ( 134  in  FIG. 1   a ). The set of control variables defined will depend on the drilling process, i.e., what drilling variables are to be controlled during the drilling process. Examples of control variables are weight on bit, bit rotational speed, drill string rotational torque, rate of penetration, and bit diameter. In general, the set of control variables CV may be expressed as
 
CV={ p   1   ,p   2   ,K,p   n }  (1)
 
where p i  represents a control variable. In a practical application, for example, a set of control variables could include bit rotational speed (p 1 ), weight on bit (p 2 ), drill string rotational torque (p 3 ), and rate of penetration (p 4 ). Prior to use in a drilling process, each control variable will be assigned a numerical value according to a scheme that will be described in more detail below. As previously noted, the numerical value will be a control set-point for a component of the automated drilling apparatus ( 100  in  FIG. 1   a ).
 
     The method includes, at  202 , defining a drilling performance objective to be optimized during the drilling process. The drilling performance objective is defined in terms of one or more drilling variables. Examples of drilling variables include, but are not limited to, mechanical specific energy, rate of penetration, weight on bit, and bit rotational speed. In general, a drilling performance objective F j  may be defined as
 
 F   j   =f   j ( P   1   ,P   2   ,K,P   n )  (2)
 
where P i  represents a drilling variable to be optimized. Some practical examples of drilling performance objectives, which are not intended to limit the invention as otherwise described herein, follow.
 
     In one practical example, a drilling performance objective, F 1 , is defined as
 
 F   1   =f   1 (MSE)  (3)
 
In one example,
 
                       f   1     ⁡     (   MSE   )       =     MSE   =       E   m     ×     (         4   ×   WOB       π   ×     D   2     ×   1000       +       480   ×     N   b     ×   T         D   2     ×   ROP   ×   1000         )                 (   4   )               
where MSE psi is mechanical specific energy, E m  is mechanical efficiency, WOB lb is weight on bit, D in is bit diameter, N b  rpm is bit rotational speed, T ft-lb is drill string rotational torque, and ROP ft/hr is rate of penetration. (See, Koederitz, William L. and Weis, Jeff, “A Real-Time Implementation of MSE,” presented at the AADE 2005 National Technical Conference and Exhibition, held at the Wyndam Greenspoint in Houston, Tex., Apr. 5-7, 2005, AADE-05-NTCE-66.) The numerical value of F 1  can be adjusted by adjusting the numerical value of any of the drilling variables in Equation (4). Typically, E m  and D are fixed through at least a portion of a drilling process. WOB, N b , T, and ROP on the other hand are adjustable at anytime during the drilling process by adjusting the numerical values of the control variables provided by the drilling controller to the drilling apparatus components. In this example, the drilling optimization problem can be expressed as minimizing F 1  subject to a set of constraints on the drilling variables.
 
     In another practical example, a drilling performance objective, f 2 , is defined as
 
 F   2   =f   2 (ROP)  (5)
 
In one example,
 
 f   2 (ROP)=ROP  (6)
 
The value of F 2  can be adjusted by adjusting the numerical value of the variable in Equation (6), and the numerical value of the variable in Equation (6) can be adjusted by adjusting the numerical values of the control variables provided by the drilling controller to the drilling apparatus components. For example, ROP is affected by weight on bit and bit rotational speed. Adjustment of these variables will affect the value of ROP. In this example, the drilling optimization problem can be expressed as maximizing F 2  subject to a set of constraints on the drilling variables.
 
     In another practical example, a drilling performance objective, F 3 , is defined as
 
 F   3   =f   31 (MSE)+ f   32 (ROP)  (7)
 
Specific forms of f 31 (MSE) and f 32 (ROP) are not given herein, but the forms of f 31 (MSE) and f 32 (ROP) will be different from the expressions given in Equations (4) and (6), respectively, since it is not possible to directly sum MSE and ROP and MSE and ROP are oppositely related. The value of F 3  can be adjusted by adjusting MSE and ROP, and MSE and ROP can be adjusted during a drilling process by adjusting the numerical values of the control variables provided by the drilling controller to the drilling apparatus components. In this example, the drilling performance optimization problem can be expressed as maximizing or minimizing F 3 , depending on how f 31  and f 32  are defined, subject to constraints on the drilling variables. For example, it is possible to define f 31  and f 32  such that when F 3  is maximized, MSE is minimized and ROP is maximized.
 
     The method includes, at  204 , monitoring variability in control set-points. This involves providing a variety of control set-points to the components of the drilling apparatus and monitoring the outputs of the components to determine how able the system is to operate at the specified set-points. For the remainder of the description of the method illustrated in  FIG. 2 , three sets of test values are defined for the control variables: a set of current test values, a set of reference test values, and a set of previous test values. Also, three values of the drilling performance objective are defined: a current value corresponding to the set of current test values, a reference value corresponding to the set of reference values, and a previous value corresponding to the set of previous test values. These test and performance values will be generated during the automated drilling of the borehole. Initially, the method includes, at  206 , generating the set of current test values for the control variables. Any suitable method may be used to generate the set of current test values. For example, a midpoint of the allowable range of values for each control variable may be selected as the current test value of the control variable. The drilling controller ( 134  in  FIG. 1   a ) may generate the set of current test values, or the set of current test values may be generated externally, e.g., by a user or other entity, and supplied to the drilling controller. 
     The method includes, at  208 , drilling an interval of the borehole in the subsurface formation using the set of control variables with the set of current test values. For this step, the drilling controller ( 134  in  FIG. 1   a ) sends the set of current test values to the components of the drilling apparatus, and the components control the drilling process according to the set-points indicated in the set of current test values. During the drilling, at least the drilling variables that would allow calculation of the drilling performance objective defined at  202  are measured. During the drilling, additional data may be collected on set-point variability, as described at  204 . The method includes, at  210 , sampling the data measured during the drilling of  208  and using the sampled data to determine the current value of the drilling performance objective. In one embodiment, the drilling controller ( 134  in  FIG. 1   a ) provides the necessary data to calculate the value of the drilling performance objective (as defined at  202 ) to the drilling performance optimizer ( 148  in  FIG. 1   a ), and the drilling performance optimizer subsequently performs the calculation. It is also possible to manually calculate the value of the drilling performance objective, i.e., instead of the drilling performance optimizer performing the calculation. The method includes, at  211 , transferring the set of current test values into the set of reference values and transferring the current value of the drilling performance objective into the reference value of the drilling performance. 
     The method includes, at  212 , regenerating the set of current test values for the control variables so that the set of current test values is different from the set of reference test values. In one embodiment, the drilling performance optimizer ( 148  in  FIG. 1   a ) automatically regenerates the set of current test values. In other embodiments, a user or other entity may regenerate the set of current test values. The set of current test values is created as an offset of the set of reference test values in a selected search direction. The search direction may be selected automatically by the drilling performance optimizer or may be supplied by a user or other entity. A simple illustration of a set of current test values that is created as an offset of a set of reference test values for a set of control variables CV={p 1 , p 2 , p 3 , p 4 } is shown in  FIG. 3 . In this figure,  300  represents a set of reference test values (a 1 , a 2 , a 3 , a 4 ) for the control variables and  302  represents a set of current test values (a 1 , a 2 , b 3 , a 4 ) for the control variables. In the particular example shown in  FIG. 3 , the reference and current test values for each of the control variables p 1 , p 2 , and p 4  are identical. However, the reference and current test values of the control variable p 3  are not identical. Therefore, the offset between the set of current test values and the set of reference values is achieved by modifying the value of control variable p 3 . In general, the value of one or more control variables may be modified to generate an offset. In  FIG. 3 , the control variable p 3  has a reference test value of a 3  and a current test value of b 3 , where b 3  is a 3  plus a step value δ. Thus, the amount of offset is step value δ. Below, it will be further illustrated that the offset is directional. The step value by which the value of a control variable is modified may be based on history of set-point variability and may be modified at each repeat of step  212 . In general, the step value should be small, but not too small as to be negligible in the noise of the data. Step  212  may be referred to as a near search because it involves taking a small step away from the set of reference test values. 
       FIG. 4  illustrates offset between a set of current test values and a set of reference test values in one dimension. In  FIG. 4 , a control variable p 1  from a set of control variables, e.g., CV={p 1 , p 2 , . . . , p n }, has a reference test value a 1 . A step value δ is added to a 1  in a direction  400  to obtain a current test value b 1  for the control variable p 1 . Alternatively, the step value δ could be added to a 1  in a direction  402  to obtain a current test value b 1   o  for the control variable p 1 .  FIG. 5  illustrates offset between a set of current test values and set of reference values in two dimensions. Two control variables p 1  and p 2  from a set of control variables, e.g., CV={p 1 , p 2 , . . . , p n }, have the reference test values a 1  and a 2 , respectively. The current test values of the control variables p 1  and p 2  are b 1  and a 2 , respectively, where b 1  is a 1  plus step value δ along the direction  500 . Along direction  500 , there is no difference between the reference and current test values of p 2 . Examples of alternate offset directions are indicated at  502 ,  504 ,  506 , and  508 . Along directions  502 ,  504 , and  508 , there will be a difference between the reference and current test values of p 2 . The envelope  510  indicates the allowable search area. If a set of current values is created that is outside of the search area, the set of current values will be discarded and a new set of current values will be created.  FIG. 6  illustrates offset between a set of current test values and a set of reference test values in three dimensions. In  FIG. 6 , control variables p 1 , p 2 , p 3  from a set of control variables, e.g., CV={p 1 , p 2 , . . . , p n }, have reference test values a 1 , a 2 , a 3 , respectively. The current test values of the control variables p 1 , p 2 , p 3  are b 1 , b 2 , and b 3 , respectively. The distance between (a 1 , a 2 , a 3 ) and (b 1 , b 2 , b 3 ) along the direction  600  is step value δ. The envelope  602  indicates the allowable search area. As noted above, the search direction may be selected automatically by the drilling performance optimizer or may be supplied by a user or other entity. In the former case, the drilling performance optimizer may have access to a set of search directions from which it may make a selection or it may include logic to automatically generate a search direction. 
     The drilling performance optimizer ( 148  in  FIG. 1   a ), or a user or other entity, provides the set of current test values generated at  212  to the drilling controller ( 134  in  FIG. 1   a ), and the drilling controller in turn provides the set of current test values as control set-points to the components of the drilling apparatus. The method includes, at  214 , drilling another test interval of the borehole using the set of control variables set to the set of current test values. During the drilling, at least the drilling variables that would allow calculation of the drilling performance objective are collected. During the drilling, additional data may be collected on variability of the outputs of the components relative to the control set-points. The method includes, at  216 , sampling the data measured during the drilling of  214  and using the sampled data to determine the current value of the drilling performance objective. In one embodiment, the drilling controller provides the necessary data to calculate the current value of the drilling performance objective to the drilling performance optimizer ( 148  in  FIG. 1   a ), and the drilling performance optimizer performs the calculation. The method includes, at  218 , transferring the set of current test values into the set of previous test values and transferring the current value of the drilling performance objective to the previous value of the drilling performance objective. 
     The method includes, at  220 , regenerating the set of current test values for the control variables so that the set of current test values is different from the set of previous test values at  218  and the set of reference test values at  211 . The drilling performance optimizer ( 148  in  FIG. 1   a ) can automatically regenerate the set of current test values as an offset of the set of previous test values or an offset of the set of reference test values, depending on how the previous value of the drilling performance objective compares to the reference value of the drilling performance objective. If the previous value of the drilling performance objective is preferred over, i.e., greater than in the context of a maximization problem or less than in the context of a minimization problem (closer to a predetermined optimum value (maximum or minimum) of the drilling performance objective), the reference value of the drilling performance objective, then the set of current test values will be created as an offset of the set of previous test values. This involves continuing the search along the previous direction used at  212 . Searching along a previous direction is illustrated in  FIG. 7  using the previous example of  FIG. 5 . In  FIG. 7 , the current test values of the control variables p 1  and p 2  are c 1  and a 2 , respectively, where c 1  is b 1  plus step value δ along the search direction  700 , which is the same as the previous search direction  500 . Searching along a previous direction may be referred to as a focused search because it involves taking a small step in a previous search direction that has been found to yield a preferred result. 
     However, if the reference value of the drilling performance objective is preferred over, i.e., greater than in the context of a maximization problem or less than in the context of a minimization problem, the previous value of the drilling performance objective, then search for the set of current test values will be taken along a different direction than previously used at  212 . This is illustrated in  FIG. 8  for the previous example of  FIG. 5 . In  FIG. 8 , the current test values of the control variables p 1  and p 2  are a 1  and c 2 , respectively, where c 2  is a 2  plus step value δ along a new search direction  800 . The new search direction  800  is relative to the set of reference test values. The previous search direction that did not yield a preferred result is shown at  500 . The new search direction  800  is just an example. Other new search directions are possible, examples of which are illustrated in  FIG. 5 . Searching along a new search direction, such as new search direction  800  in  FIG. 8 , is also an example of a near search because it involves taking a small step away from the set of reference test values. As previously indicated, the new search direction may be automatically selected or generated by the drilling performance optimizer or a user or other entity may supply the new search direction. 
     The method includes returning to step  208  with the set of current test values generated at step  220  and repeating steps  208  to  220  a plurality of times. After repeating steps  208  to  220  a plurality of times, the method includes, at  222 , checking whether the reference value of the drilling performance objective has changed over the plurality of times. If the reference value of the drilling performance objective has not changed, it may be a sign that the search is stuck. Some reasons why a search may become stuck will be discussed below. In the case of a stuck search, the method includes, at  224 , regenerating the set of current values for the control variables using a larger step value than used during the repeat of steps  208  to  220 . The larger step value may be a multiple of the smaller step value used during the repeat of steps  208  to  220 , i.e., mδ, where m&gt;1. The set of current values is regenerated as an offset of the set of reference values, as described in step  212 , but with the larger step value. The direction of the offset may be the same as a previous direction or may be a new direction. The method includes repeating steps  208  to  220  a plurality of times using the set of current values generated at  224 . The effect of using a larger step value in step  224  is to move the search to a different section of the search area. The search at step  224  may be referred to as a far search because it involves moving the search to a different section of the section area. Steps  208  to  224  can be repeated as many times as desired during a drilling process. 
     Table 1 below shows an example of a search sequence based on the drilling performance objective indicated in Equation (6) and a drilling optimization problem of maximizing ROP. 
     
       
         
               
               
               
               
               
               
               
             
               
               
               
               
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                   
                   
                 Bit 
                   
                   
                 Start 
                 End Depth 
               
               
                   
                   
                 Rotational 
                   
                 Average 
                 Depth of 
                 of 
               
               
                 Search 
                 Weight 
                 Speed 
                 Valid 
                 ROP 
                 Borehole 
                 Borehole 
               
               
                 Type 
                 on Bit (lb) 
                 (rpm) 
                 Test? 
                 (ft/hr) 
                 (ft) 
                 (ft) 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 Near 
                 30 
                 55 
                 Yes 
                 140.7 
                 4603.1 
                 4607.7 
               
               
                 Near 
                 31 
                 60 
                 Yes 
                 154.6 
                 4611.0 
                 4616.2 
               
               
                 Focus 
                 32 
                 60 
                 Yes 
                 156.7 
                 4619.1 
                 4624.4 
               
               
                 Focus 
                 33 
                 60 
                 Yes 
                 141.8 
                 4627.2 
                 4631.9 
               
               
                 Focus 
                 33 
                 55 
                 No 1   
                 0.0 
                 0.0 
                 0.0 
               
               
                 Focus 
                 32 
                 55 
                 Yes 
                 164.6 
                 4638.1 
                 4643.6 
               
               
                 Focus 
                 32 
                 50 
                 No 2   
                 0.0 
                 0.0 
                 0.0 
               
               
                 Focus 
                 33 
                 50 
                 No 3   
                 0.0 
                 0.0 
                 0.0 
               
               
                   
               
               
                   1 Weight on bit is out of tolerance. 
               
               
                   2 Bit rotational speed is out of tolerance. 
               
               
                   3 Bit is off the bottom of the borehole. 
               
             
          
         
       
     
     The method described above can be used at the beginning of drilling of each new interval of the borehole to find the optimum set of values for the control variables for that interval. Or, the method can be used throughout the drilling of each new interval to keep the values of the control variables at the optimum for that entire interval. The method can be used with additional monitoring logic. For example, a monitoring process that detects excessive time spent at the same reference point could indicate a global change of formations or drilling conditions, possibly caused by suddenly entering a harder formation. Upon this detection, a “re-test” at the reference point could be triggered, as explained above, which would then recalibrate the search method and enable it to proceed away from the reference point. Another example is a diagnostic monitoring process watching for undesirable conditions, such as stick-slip. Such a detection could terminate the test and utilize the stick-slip detection as a consideration in the selection of the next set-point. Another example is a monitoring process watching for excessive surface torque. Such a detection could terminate the test and adjust the weight on bit and bit rotational speed for the next test based on a predetermined strategy for this event. The method could include detecting the severity of the excessive torque and using the detection to select between (1) conducting a test at the next set of parameters altered as per a predetermined plan and (2) stopping the drilling process, slowly lifting the drill pipe and unwinding the high-torque condition, resuming drilling, and then starting a new test at a new set of parameters that are different from those used at the time of the detection. Herein and above, a test refers to the process of adjusting drilling parameters (by adjusting the numerical values of control variables supplied by the drilling controller to the drilling apparatus) and measuring the response of the drilling process to the adjustment. 
     While a limited number of exemplary embodiments have been described, those skilled in the art, having benefit of this disclosure, will appreciate that other embodiments, not expressly described herein, are within the scope of the disclosed invention. Accordingly, the scope of the invention is limited only by the attached claims.