Patent Publication Number: US-2021164293-A1

Title: Curvature-based feedback control techniques for directional drilling

Description:
TECHNICAL FIELD 
     The present technology generally pertains to drilling in earth formations, and more specifically, to feedback controls for path tracking in directional drilling. 
     BACKGROUND 
     Directional drilling or controlled steering is commonly used to guide drilling tools in the oil, water, and gas industries to reach resources that are not located directly below a wellhead. Directional drilling particularly provides access to reservoirs where vertical access is difficult if not impossible. In general, directional drilling refers to steering a drilling tool according to a predefined well plan, having target coordinates and drilling constraints, created by a multidisciplinary team (e.g., reservoir engineers; drilling engineers; geo-steerers; geologists, etc.) to optimize resource collection/discovery. 
     As the future of directional drilling moves toward exploiting complex reservoirs and difficult to reach resources, it becomes increasingly important for the drilling tool to follow these predefined well plans as closely as possible. Deviations from such pre-defined well plans may result in a waste of resources, damage the drilling tools, or even undermine the stability of earth formations surrounding a reservoir. Path tracking along the predefined well plans often presents new challenges due, in part, physical and operational constraints of the drilling tools, characteristics of rock formations, complex well geometries, and the like. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The embodiments herein may be better understood by referring to the following description in conjunction with the accompanying drawings in which like reference numerals indicate analogous, identical, or functionally similar elements. Understanding that these drawings depict only exemplary embodiments of the disclosure and are not therefore to be considered to be limiting of its scope, the principles herein are described and explained with additional specificity and detail through the use of the accompanying drawings in which: 
         FIG. 1  is a schematic diagram of a directional drilling environment, showing measurement while drilling (MWD) operations; 
         FIG. 2  is a schematic diagram of a directional drilling device; 
         FIG. 3  is a schematic diagram of a three-dimensional (3D) wellbore environment, showing a drilling tool following a well path defined by a collection of waypoints; 
         FIG. 4A  is a graph showing two-dimensional (2D) wellbore path divergences for directional drilling using attitude azimuth correction; 
         FIG. 4B  is a graph showing 2D wellbore path divergences for directional drilling using attitude position correction; 
         FIG. 5  is a graph showing wellbore path convergence for directional drilling using curvature-based feedback control operations, according to one embodiment of this disclosure; 
         FIG. 6  is an exemplary simplified procedure for directional drilling based on the curvature-based feedback control operations, particularly from the perspective of a drilling tool. 
         FIGS. 7-9  are graphs showing simulated curved wellbore paths and corresponding curvatures value calculations for a directional drilling tool that employs curvature-based feedback controls; 
         FIGS. 10-11  are graphs showing simulated curved wellbore paths and corresponding curvatures value calculations when a drift value is constant; and 
         FIGS. 12-14  are graphs showing simulated curved wellbore paths and corresponding curvatures value calculations when a proportional uncertainty is added to curvature values. 
     
    
    
     DETAILED DESCRIPTION 
     Various embodiments of the disclosure are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the disclosure. Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or can be learned by practice of the herein disclosed principles. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims, or can be learned by the practice of the principles set forth herein. 
     As used herein, the term “coupled” is defined as connected, whether directly or indirectly through intervening components, and is not necessarily limited to physical connections. The term “substantially” is defined to be essentially conforming to the particular dimension, shape or other word that substantially modifies, such that the component need not be exact. For example, substantially rectangular means that the object in question resembles a rectangle, but can have one or more deviations from a true rectangle. The “position” of an object can refer to a placement of the object, location of the object, plane of the object, direction of the object, distance of the object, azimuth of the object, axis of the object, inclination of the object, horizontal position of the object, vertical position of the object, and so forth. Moreover, the “position” of an object can refer to the absolute or exact position of the object, the measured or estimated position of the object, and/or the relative position of the object to another object. 
     This disclosure generally relates to directional drilling and steering a drilling tool along a planned well path, and more specifically, provides curvature-based feedback control techniques suitable for directional drilling systems having steering assemblies that direct a drill bit as it creates a borehole along a desired path (i.e., trajectory). The steering assemblies may include, for example, rotary steerable systems (“RSS”) that can change a direction of the drill string while in operation. However, it is also appreciated these techniques may be employed by other known directional drilling tools. 
     These curvature-based feedback control techniques address the challenges present in path tracking along a predefined well plan, and particularly, provide feedback control laws, processes, methods, systems, devices, and the like, to continuously adjust/correct wellbore paths based on curvature values. These techniques provide simultaneous path convergence between a predefined well plan and a current wellbore path, both in terms of position and attitude (e.g., inclination and azimuth). These techniques may be used to track a current position and a current attitude of a steerable drilling tool, determine a curvature value for a curved path that intersects the current position (tangent to the current attitude), and a curvilinear position on a target wellbore path (tangent to a target attitude), instruct the steerable drilling tool to generate a wellbore path based on the curvature value, and update the current position or the current attitude based on at least one of a change in the current position or a change in the current attitude. These and other features of the subject curvature-based feedback control techniques are described in greater detail with reference to the figures. 
       FIG. 1  is a schematic diagram of a directional drilling environment, particularly showing a measurement-while-drilling (MWD) system  100 , in which the presently disclosed techniques may be deployed. As depicted, MWD system  100  includes a drilling platform  102  having a derrick  104  and a hoist  106  to raise and lower a drill string  108 . Hoist  106  suspends a top drive  110  suitable for rotating drill string  108  and lowering drill string  108  through a well head  112 . Notably, drill string  108  may include sensors or other instrumentation for detecting and logging nearby characteristics and conditions of the wellbore and surrounding formation. 
     In operation, a top drive  110  supports and rotates drill string  108  as it is lowered through well head  112 . In this fashion, drill string  108  (and/or a downhole motor) rotate a drill bit  114  coupled to a lower end of drill string  108  to create a borehole  116  through various subsurface formations. A pump  120  circulates drilling fluid through a supply pipe  122  to top drive  110 , down through an interior of drill string  108 , through orifices in drill bit  114 , back to the surface via an annulus around drill string  108 , and into a retention pit  124 . The drilling fluid transports cuttings from wellbore  116  into retention pit  124  and helps maintain wellbore integrity. Various materials can be used for drilling fluid, including oil-based fluids and water-based fluids. 
     As shown, drill bit  114  forms part of a bottom hole assembly  150 , which further includes drill collars (e.g., thick-walled steel pipe) that provide weight and rigidity to aid drilling processes. Detection tools  126  and a telemetry sub  128  are coupled to or integrated with one or more drilling collars. 
     Detection tools  126  may gather MWD survey data or other data and may include various types of electronic sensors, transmitters, receivers, hardware, software, and/or additional interface circuitry for generating, transmitting, and detecting signals (e.g., sonic waves, etc.), storing information (e.g., log data), communicating with additional equipment (e.g., surface equipment, processors, memory, clocks, input/output circuitry, etc.), and the like. In particular, detection tools  126  can measure data such as position, orientation, weight-on-bit, strains, movements, borehole diameter, resistivity, drilling tool orientation, which may be specified in terms of a tool face angle (rotational orientation), an inclination angle (the slope), and compass direction, each of which can be derived from measurements by sensors (e.g., magnetometers, inclinometers, and/or accelerometers, though other sensor types such as gyroscopes, etc.). 
     Telemetry sub  128  communicates with detection tools  126  and transmits telemetry data to surface equipment (e.g., via mud pulse telemetry). For example, telemetry sub  128  can include a transmitter to modulate resistance of drilling fluid flow thereby generating pressure pulses that propagate along the fluid stream at the speed of sound to the surface. One or more pressure transducers  132  operatively convert the pressure pulses into electrical signal(s) for a signal digitizer  134 . It is appreciated other forms of telemetry such as acoustic, electromagnetic, telemetry via wired drill pipe, and the like may also be used to communicate signals between downhole drilling tools and signal digitizer  134 . Further, it is appreciated telemetry sub  128  can store detected and logged data for later retrieval at the surface when bottom hole assembly  150  is recovered. 
     Digitizer  134  converts the pressure pulses into a digital signal and sends the digital signal over a communication link to a computing system  137  or some other form of a data processing device. In at least some embodiments, computer system  137  includes processing units to analyze collected data and/or perform other operations by executing software or instructions obtained from a local or remote non-transitory computer-readable medium. As shown, computer system  137  includes input device(s) (e.g., a keyboard, mouse, touchpad, etc.) as well as output device(s) (e.g., monitors, printers, etc.). These input/output devices provide a user interface that enables an operator to interact and communicate with the borehole assembly  150 , surface/downhole directional drilling components, and/or software executed by computer system  137 . 
     For example, computer system  137  enables an operator to select or program directional drilling options, review or adjust types of data collected, modify values derived from the collected data (e.g., measured bit position, estimated bit position, bit force, bit force disturbance, rock mechanics, etc.), adjust borehole assembly dynamics model parameters, generate drilling status charts, waypoints, a desired borehole path, an estimated borehole path, and/or to perform other tasks. In at least some embodiments, the directional drilling performed by borehole assembly  150  is based on a surface and/or downhole feedback loops, as discussed in greater detail below. 
     MWD system  100  also includes a controller  152  that instructs or steers bottom hole assembly  150  as drill bit  114  extends wellbore  116  along a desired path  119  (e.g., within one or more boundaries  140 ). Controller  152  includes processors, sensors, and other hardware/software such as a rotary steerable system (RSS). In operation, controller  152  applies a force to flex or bend a drilling shaft coupled to bottom hole assembly  150  thereby imparting an angular deviation to a current the direction traversed by drill bit  114 . Notably, controller  152  can communicate real-time data with one or more components of bottom hole assembly  150  and/or surface equipment. In this fashion, controller  152  can analyze real-time data and generate steering signals according to, for example, the feedback control techniques discussed herein. While controller  152  represents one type of directional steering system, it is appreciated other steering mechanisms such as steering vanes, a bent sub, and the like, may also be employed. 
     It is further appreciated, the environment shown in  FIG. 1  is provided for purposes of discussion only, not for purposes of limitation. The detection tools, drilling devices, and curvature-based feedback control techniques discussed herein may be suitable in any number of drilling environments. 
       FIG. 2  is a block diagram of an exemplary device  200 , which can include controller  152  (or components thereof). Device  200  is configured to perform the curvature-based feedback control techniques discussed herein and communicates signals that steer or direct the drilling tool along a well path. In operation, device  200  communicates with one or more of the above-discussed borehole assembly  150  components and may also be configured to communication with remote devices/systems such as computer system  137 . 
     As shown, device  200  includes hardware and software components such as network interfaces  210 , at least one processor  220 , sensors  260  and a memory  240  interconnected by a system bus  250 . Network interface(s)  210  include mechanical, electrical, and signaling circuitry for communicating data over communication links, which may include wired or wireless communication links. Network interfaces  210  are configured to transmit and/or receive data using a variety of different communication protocols, as will be understood by those skilled in the art. 
     Processor  220  represents a digital signal processor (e.g., a microprocessor, a microcontroller, or a fixed-logic processor, etc.) configured to execute instructions or logic to perform tasks in a wellbore environment. Processor  220  may include a general purpose processor, special-purpose processor (where software instructions are incorporated into the processor), a state machine, application specific integrated circuit (ASIC), a programmable gate array (PGA) including a field PGA, an individual component, a distributed group of processors, and the like. Processor  220  typically operates in conjunction with shared or dedicated hardware, including but not limited to, hardware capable of executing software and hardware. For example, processor  220  may include elements or logic adapted to execute software programs and manipulate data structures  245 , which may reside in memory  240 . 
     Sensors  260  typically operate in conjunction with processor  220  to perform wellbore measurements, and can include special-purpose processors, detectors, transmitters, receivers, and the like. In this fashion, sensors  260  may include hardware/software for generating, transmitting, receiving, detection, logging, and/or sampling magnetic fields, seismic activity, and/or acoustic waves. 
     Memory  240  comprises a plurality of storage locations that are addressable by processor  220  for storing software programs and data structures  245  associated with the embodiments described herein. An operating system  242 , portions of which are typically resident in memory  240  and executed by processor  220 , functionally organizes the device by, inter alia, invoking operations in support of software processes and/or services executing on device  200 . These software processes and/or services may comprise an illustrative “curvature-based feedback control” process/service  244 , as described herein. Note that while process/service  244  is shown in centralized memory  240 , some embodiments provide for these processes/services to be operated in a distributed computing network. 
     It will be apparent to those skilled in the art that other processor and memory types, including various computer-readable media, may be used to store and execute program instructions pertaining to the borehole evaluation techniques described herein. Also, while the description illustrates various processes, it is expressly contemplated that various processes may be embodied as modules having portions of the curvature-based feedback control process  244  encoded thereon. In this fashion, the program modules may be encoded in one or more tangible computer readable storage media for execution, such as with fixed logic or programmable logic (e.g., software/computer instructions executed by a processor, and any processor may be a programmable processor, programmable digital logic such as field programmable gate arrays or an ASIC that comprises fixed digital logic. In general, any process logic may be embodied in processor  220  or computer readable medium encoded with instructions for execution by processor  220  that, when executed by the processor, are operable to cause the processor to perform the functions described herein. 
     As mentioned, the curvature-based feedback control techniques address challenges in accurately controlling directional drilling and steering a drilling tool along a planned well path for a predefined well plan. Well plans can be described by a 3D path in an earth formation and defined by a collection of waypoints. Generally, each waypoint typically corresponds to a position in the 3D space, and possibly, higher order information about the path at the specified location. For example, in this context, a 3D waypoint may take the form of: x i , y i , z i , x i ′, y i ′, z i ′, x i ″, y i ″, z i ″, . . . and so on. Where x i ′, y i ′, z i ′ represent first derivatives of the well plan with respect to a path length coordinate associated with the well plan, and x i ″, y i ″, z i ″ represent second derivatives of the well plan with respect to the path length coordinate associated with the well plan. Notably, attitude information, which can include inclination and azimuth, is typically defined as part of the well plan, or it may also be inferred based on known interpolation schemes for smoothly interpolating multiple waypoints. In addition, x i ″, y i ″, z i ″ may be optionally included as part of the definition of a waypoint. 
       FIG. 3  is a schematic diagram of a 3D wellbore environment  300 , showing a drilling tool  305  creating a wellbore path that substantially follows a well path  310 , which is defined by a collection of waypoints, labeled as [x 1 , y 1 , z 1 ], [x 2 , y 2 , z 2 ]; . . . [x 6 , y 6 , z 6 ]. Notably, each waypoint may include higher order information (e.g., derivatives) such as a steering angle or attitude angle ϕ (e.g., labeled as “ϕ 1 ” through “ϕ 6 ”). Wellbore environment  300  represents an ideal environment where drilling tool  305  creates a stable wellbore path that accurately tracks well path  310 . In real-world environments, however, the wellbore path may be subject to various instabilities, disturbances, noise, faults, and the like, which may require path correction or adjustment in order to minimize path divergence or deviation. 
     Various control techniques may be employed to adjust and conform a current wellbore path of a drilling tool to a planned well path. One example of these control techniques includes an attitude control, which attempts to control a drilling tool&#39;s attitude (inclination and azimuth) to minimize wellbore path divergence from the predetermined well plan. However, when a well plan is described by a tool attitude (including inclination and azimuth), and only attitude control is applied for and path correction/convergence on tool attitude relative to the well plan, the actual drilled wellbore path can deviate considerably from the planed well path. 
       FIGS. 4A and 4B  provide graphs  401  and  402 , respectively, showing wellbore path divergences caused by attitude azimuth correction (graph  401 ) and attitude inclination or position correction (graph  402 ). Here, graph  401  illustrates an intended or target well path  405   a  (dashed line), defined by “target” waypoints [x 1t , y 1t ] [x 2t , y 2t ], and [x 3t , y 3t ], and an actual wellbore path  405   b  (solid line) created or traversed by the drilling tool, defined by actual waypoints [x 1 , y 1 ], [x 2 , y 2 ], and [x 3 , y 3 ]. In operation, the drilling tool may include a controller (e.g., controller  152 ) that performs path tracking and steers the drilling tool through waypoints as it creates the wellbore path. As shown, the controller applies attitude azimuth correction or attitude hold that matches a current attitude for a position on actual wellbore path  405   b  to a target attitude (inclination) for a corresponding position on the intended well path  405   a . Put differently, the controller employs an attitude hold that directs the drill tool to actual positions/actual waypoints so that the drilling tool has the same attitude (inclination) as the corresponding target waypoint (e.g., the inclination of drilling tool at waypoint [x 1 , y 1 ] is the same as the target inclination at waypoint [x 1t , y 1t ]). Although attitude hold controls ensure attitude convergence between the actual wellbore path and the intended well path, deviations may be present or even increase depending on distances traversed and a complexity of the well plan. 
     In  FIG. 4B , graph  402  illustrates an intended well path  410   a  (dashed line) and an actual wellbore path  410   b  (solid line) when the controller applies position hold controls. Here, both well path  410   a  and wellbore path  410   b  are defined by the same waypoints [x 1 , y 1 ], [x 2 , y 2 ], and [x 3 , y 3 ]. In operation, the controller steers the drilling tool along the same waypoints of both paths and matches the target position for each target waypoint. As shown, actual wellbore path  410   b  represents a position hold control, which directs the drill tool to traverse the target waypoints. While such position hold controls ensure wellbore path  410   b  substantially traverses each target waypoint, such position hold controls may create oscillating behavior and divergences between intended well path  410   a  and wellbore path  410   b . This oscillation may be caused, in part, by differences between an actual steering angles (labeled as “ϕ 1 ” through “ϕ 3 ”) of the drill tool and target steering angles (labeled as “ϕ 1t ” through “ϕ 6t ”) at each waypoint. 
     Accordingly, the curvature-based feedback control techniques disclosed herein mitigate and minimize the undesired path divergences shown by graphs  401  and  402 , and provide simultaneous convergence for position and attitude with respect to a target well path. In some cases, such simultaneous convergence may incorporate higher order derivatives to provide smooth convergence corrections or adjustments. 
     More specifically, a 3D well path can be projected into two perpendicular planes, and represented by a unique curve in each plane. Therefore, without loss of generality, curvature-based feedback control techniques may control the evolution of wellbore in a 2D plane and establish a desired convergence in the 2D plane. Convergence in the 3D space logically follows. For example, the following kinematic equation can represent an arbitrary evolution of wellbore in a 2D plane with Cartesian coordinates (x and y), where s is a path length coordinate (e.g., a curvilinear coordinate defined along the wellbore path), ϕ is a steering angle, and κ is the curvature. When x and y define a vertical plane, ϕ may be interpreted as inclination when ϕ∈[0, π]. Notably, in the following equations, ϕ∈(−∞, ∞), and the equations can generate arbitrary path with continuous first derivatives in the x-y plane. 
         x ′( s )=cos(ϕ( s ))  Equation 1
 
         y ′( s )=sin(ϕ( s ))  Equation 2
 
       ϕ′( s )=κ( s )  Equation 3
 
     The above equations uniquely determine a curvature κ(s) for curved wellbore path as a function of a current position and attitude. Preferably, the controller (e.g., an RSS force/bending controller, etc.) may continuously compute desired curvature values in a state feedback control law and steers the drilling tool as it generates a wellbore curvature close to the desired curvature values (e.g., by applying the appropriate amount of RSS force and bending, etc.). For example, the state feedback control law may have the following forms: 
       κ( s )= SFB ( x ( s ), y ( s ), x ′( s ), y ′( s ), x   d   ,y   d   ,x′   d   ,y   d ′)  Equation 4
 
       κ( s )= SFB ( x ( s ), y ( s ), x ′( s ), y ′( s ), x   d   ,y   d   ,x′   d   ,y   d   ,x′   d   ′,y   d   ′,x   d   ″,y   d ″, . . . )  Equation 5
 
     In the alternative (or in addition to the above), the curvature-based feedback control law may compute desired curvature values as a function of sensor outputs/inputs. 
     Generally, the curvature values represent a curvature of a deflection beam that satisfies position constraint and slope constraints between a current location and a target waypoint. 
     For example,  FIG. 5  illustrates a graph  500  that shows path convergence using the curvature-based feedback control techniques. Graph  500  provides a deflection beam  505  that represents a curved convergence path for directing drill tool  510  from its current position [x 0 , y 0 ] to a desired position [x d , y d ] and also providing simultaneous attitude (e.g., derivatives of position) convergence such that drill tool  510  traverses desired position [x d , y d ] at a desired orientation or attitude ϕ d . A current orientation of drill tool  510  at current position [x 0 , y 0 ] is represented ϕ, and derivatives of x and y positions are specified according to: 
         x ′(0)=cos ϕ, y ′(0)=sin ϕ  Equation 6
 
     Where a desired location and attitude (waypoint) are represented by x d , y d , x d ′, y d ′ 
     Deflection beam  505  provides a curved convergence path that intersects current position [x 0 , y 0 ] tangent to current attitude and desired position [x d , y d ] at desired orientation ϕ d . For purposes of illustration and discussion herein, assume the tangent direction of the path at [x d , y d ] is parallel to the x axis (i.e., ϕ d =0). However, for non-parallel tangents, another set of {tilde over (x)}−{tilde over (y)} coordinates may be determined by rotating the original x-y system to ensure a parallel relation. The coordinate transform may be performed from x−y to {tilde over (x)}−{tilde over (y)} to establish equivalent boundary conditions at current and target positions in the {tilde over (x)}−{tilde over (y)} domain, as is appreciated by those skilled in the art. 
     Applying small angle assumptions for ϕ, deflection beam  505  may be determined using the Euler-Bernoulli beam equation. For example, the deflection and slope of deflection beam  505  may be given by: 
         y=ax   3   +bx   2   +cx+d   Equation 7
 
         y′= 3 ax   2 +2 bx+c   Equation 8
 
     Where a, b, c, d are constants in the Euler-Bernoulli beam equation. 
     Boundary conditions for x and x d  are given by: 
     
       
         
           
             
               
                 
                   
                     [ 
                     
                       
                         
                           
                             y 
                              
                             
                               ( 
                               x 
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             
                               y 
                               ′ 
                             
                              
                             
                               ( 
                               x 
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             y 
                              
                             
                               ( 
                               
                                 x 
                                 d 
                               
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             
                               y 
                               ′ 
                             
                              
                             
                               ( 
                               
                                 x 
                                 d 
                               
                               ) 
                             
                           
                         
                       
                     
                     ] 
                   
                   = 
                   
                     
                       [ 
                       
                         
                           
                             0 
                           
                           
                             0 
                           
                           
                             0 
                           
                           
                             1 
                           
                         
                         
                           
                             0 
                           
                           
                             0 
                           
                           
                             1 
                           
                           
                             0 
                           
                         
                         
                           
                             
                               L 
                               3 
                             
                           
                           
                             
                               L 
                               2 
                             
                           
                           
                             L 
                           
                           
                             1 
                           
                         
                         
                           
                             
                               3 
                                
                               
                                 L 
                                 2 
                               
                             
                           
                           
                             
                               2 
                                
                               L 
                             
                           
                           
                             1 
                           
                           
                             0 
                           
                         
                       
                       ] 
                     
                      
                     
                       [ 
                       
                         
                           
                             a 
                           
                         
                         
                           
                             b 
                           
                         
                         
                           
                             c 
                           
                         
                         
                           
                             d 
                           
                         
                       
                       ] 
                     
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   9 
                 
               
             
           
         
       
     
     Constants a, b, c, d may be calculated from: 
                     [         a           b           c           d         ]     =       [           1     2        L   3             0         -     1     2        L   3                 1     2        L   2                   -     3     2        L   2                 -     1   L             3     2        L   2               -     1     2      L                 0       1       0       0           1       0       0       0         ]          [           y        (   x   )                 sin                 φ               y        (     x   d     )               0         ]               Equation                 10               Where  L=x   d   −x.    
     Accordingly, a curvature of deflection beam  505 , at current position [x 0 , y 0 ] is given by: 
     
       
         
           
             
               
                 
                   κ 
                   = 
                   
                     
                       
                         y 
                         ″ 
                       
                       
                         
                           ( 
                           
                             1 
                             + 
                             
                               y 
                               ′2 
                             
                           
                           ) 
                         
                         
                           3 
                           2 
                         
                       
                     
                     = 
                     
                       
                         
                           2 
                            
                           b 
                         
                         
                           
                             ( 
                             
                               1 
                               + 
                               
                                 c 
                                 2 
                               
                             
                             ) 
                           
                           
                             3 
                             / 
                             2 
                           
                         
                       
                       = 
                       
                         - 
                         
                           
                             
                               
                                 3 
                                  
                                 y 
                               
                               
                                 L 
                                 2 
                               
                             
                             + 
                             
                               2 
                                
                               
                                 
                                   sin 
                                    
                                   
                                       
                                   
                                    
                                   φ 
                                 
                                 L 
                               
                             
                             - 
                             
                               
                                 3 
                                  
                                 
                                   y 
                                   d 
                                 
                               
                               
                                 L 
                                 2 
                               
                             
                           
                           
                             
                               ( 
                               
                                 1 
                                 + 
                                 
                                   
                                     sin 
                                     2 
                                   
                                    
                                   φ 
                                 
                               
                               ) 
                             
                             
                               3 
                               / 
                               2 
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   11 
                 
               
             
           
         
       
     
     The above calculations represent a non-linear state feedback law, which is singular when L=0, for which K is not bounded. Accordingly, in certain instances, when x is very close proximity or distance to x d  and y and y′ has not converged to the desired value yet, a large or steep curvature value is needed for path convergence with respect to both position and attitude. Preferably, however, when x is sufficiently close to x d  (e.g., x is within a threshold distance from x d ) the current target waypoint may be assigned to a “next” target waypoint on the planned path. For example, the next or subsequent waypoint on the planned path may be selected when x (a current position) is within a threshold distance of x d  and/or a curvature value for the drilling tool to pass proximate (or through) x d  is above/below a threshold tolerance, and the like. Alternatively (or in addition), the “next” target waypoint may continuously move along the planned path as the drill tool moves forward to avoid any steep curvatures and minimize potential oscillations. 
     With respect to three dimension (3D) coordinates, the waypoint can be selected based on: 
         s   c =min s [( x   c   −x   p ( s )) 2 +( y   c   −y   p ( s )) 2 +( z   c   −z   p ( s )) 2 ] 1/2   Equation 12
 
       [ x   p ( s   c +τ), y   p ( s   c +τ), z   p ( s   c +τ)]  Equation 13
         Where X c =(x c , y c , z c ) is the current position, and [x p (s), y p (s), z p (s)] defines the planned path, s is depth, and s c  denotes the depth at which the position of the well plan is closest to the current position.       

     Equation 13 identifies a target position [x p , y p , z p ], and derivatives of the target position correspond to a target attitude. If a curvature value for a curved path from the current position to the target position is larger than a threshold, τ is increased. Equations 12 and 13 may be iteratively calculated as the drilling tool moves forward. 
     The above curvature calculations describe curvature values based on the Euler-Bernoulli beam equation, however such curvature calculations are provided for purposes of example, not limitation, and it is appreciated any suitable curved path equation may be used. 
     As discussed above, the curvature-based feedback control techniques employed by a controller that performs path tracking for a drilling tool such as drilling tool  510 . In operation, the controller for drilling tool  510  tracks a current position ([x 0 , y 0 ]) and a current attitude (ϕ) and determines a curvature value (κ(s)) for a curved path (deflection beam  505 ) that intersects the current position, tangent the current attitude, and a curvilinear or target position ([x d , y d ]) on or substantially proximate to a target wellbore path, tangent to a target attitude (ϕ d ). Here, ϕ d  at the curvilinear position is parallel to the x axis (i.e., ϕ d =0). The controller may further provide the curvature value to force/bending hardware to generate a curved wellbore path for drilling tool  510 . 
     Drilling tool  510  further updates its current position/attitude and re-calculates the curvature values to adjust the curved wellbore path (and correct for disturbances, noise, etc.). In this fashion, drilling tool  510  may employ a feedback control loop to continuously and iteratively compute new curvature values to ensure substantial path convergence, which minimizes deviations from faults, noise, seismic activity, or other disturbances. 
     In addition, drilling tool  510  may also update curvilinear position ([x d , y d ]) on the target well path to avoid oscillating behavior. For example, drilling tool  510  may update the curvilinear position based on a threshold distance or threshold proximity between drilling tool  510  and the curvilinear position in order to avoid steep curvatures that violate drilling constraints (e.g., dogleg severity constraints (DLS), etc.). Further, the target curvilinear position may also be continuously updated and assigned to a new position on or substantially proximate to the well path (e.g., when drilling tool  510  updates its current position). This new position may include a “next” waypoint position and/or it may include any number of other positions on the well path. 
     Moreover, while  FIG. 5  illustrates a curved path, shown by deflection beam  505 , that converges or intersects the target well path at target curvilinear position, [x d , y d ], having a target attitude ϕ d =0, it is appreciated that such view is shown for purposes of discussion, not limitation. Specifically, it is appreciated that convergence or intersection between the curved path and the target well path may not be possible (or even desired) in certain instances. In such instances, the curved path may represent a “best” path having positions that are substantially close or proximate to one or more positions that define the target well path and at a target attitude substantially similar a well path attitude for corresponding positions. 
     In other embodiments of this disclosure, x and y coordinates may be described by functions of an independent variable t as follows: 
         y=a   y   t   3   +b   y   t   2   +c   y   t+d   y   Equation 14
 
         y′= 3 a   y   t   2 +2 b   y   t+c   y   Equation 15
 
         y″= 6 a   y   t+ 2 b   y ,  Equation 16
 
       and 
         x=a   x   t   3   +b   x   t   2   +c   x   t+d   x   Equation 17
 
         x′= 3 a   x   t   2 +2 b   x   t+c   x   Equation 18
 
         x″= 6 a   x   t+ 2 b   x   Equation 19
 
     Boundary conditions are related to coefficients of the cubic function as: 
     
       
         
           
             
               
                 
                   
                     [ 
                     
                       
                         
                           
                             y 
                              
                             
                               ( 
                               0 
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             
                               y 
                               ′ 
                             
                              
                             
                               ( 
                               0 
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             y 
                              
                             
                               ( 
                               L 
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             
                               y 
                               ′ 
                             
                              
                             
                               ( 
                               L 
                               ) 
                             
                           
                         
                       
                     
                     ] 
                   
                   = 
                   
                     
                       [ 
                       
                         
                           
                             0 
                           
                           
                             0 
                           
                           
                             0 
                           
                           
                             1 
                           
                         
                         
                           
                             0 
                           
                           
                             0 
                           
                           
                             1 
                           
                           
                             0 
                           
                         
                         
                           
                             
                               L 
                               3 
                             
                           
                           
                             
                               L 
                               2 
                             
                           
                           
                             L 
                           
                           
                             1 
                           
                         
                         
                           
                             
                               3 
                                
                               
                                 L 
                                 2 
                               
                             
                           
                           
                             
                               2 
                                
                               L 
                             
                           
                           
                             1 
                           
                           
                             0 
                           
                         
                       
                       ] 
                     
                      
                     
                       [ 
                       
                         
                           
                             
                               a 
                               y 
                             
                           
                         
                         
                           
                             
                               b 
                               y 
                             
                           
                         
                         
                           
                             
                               c 
                               y 
                             
                           
                         
                         
                           
                             
                               d 
                               y 
                             
                           
                         
                       
                       ] 
                     
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   20 
                 
               
             
             
               
                 
                   
                     [ 
                     
                       
                         
                           
                             x 
                              
                             
                               ( 
                               0 
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             
                               x 
                               ′ 
                             
                              
                             
                               ( 
                               0 
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             x 
                              
                             
                               ( 
                               L 
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             
                               x 
                               ′ 
                             
                              
                             
                               ( 
                               L 
                               ) 
                             
                           
                         
                       
                     
                     ] 
                   
                   = 
                   
                     
                       [ 
                       
                         
                           
                             0 
                           
                           
                             0 
                           
                           
                             0 
                           
                           
                             1 
                           
                         
                         
                           
                             0 
                           
                           
                             0 
                           
                           
                             1 
                           
                           
                             0 
                           
                         
                         
                           
                             
                               L 
                               3 
                             
                           
                           
                             
                               L 
                               2 
                             
                           
                           
                             L 
                           
                           
                             1 
                           
                         
                         
                           
                             
                               3 
                                
                               
                                 L 
                                 2 
                               
                             
                           
                           
                             
                               2 
                                
                               L 
                             
                           
                           
                             1 
                           
                           
                             0 
                           
                         
                       
                       ] 
                     
                      
                     
                       [ 
                       
                         
                           
                             
                               a 
                               x 
                             
                           
                         
                         
                           
                             
                               b 
                               x 
                             
                           
                         
                         
                           
                             
                               c 
                               x 
                             
                           
                         
                         
                           
                             
                               d 
                               x 
                             
                           
                         
                       
                       ] 
                     
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   21 
                 
               
             
           
         
       
     
     Derivative boundary conditions are given by: 
         y ′(0)=sin ϕ  Equation 22
 
         x ′(0)=cos ϕ  Equation 23
 
         y ′( L )=sin ϕ d   Equation 24
 
         x ′( L )=cos ϕ d   Equation 25
 
     Coefficients a x , b x , c x , d x  and a y , b y , c y , d 3 , can be computed from above two equations, and are functions of L and boundary conditions at t=0 and t=L, and L may be given by: 
         L =( x−x   d ) 2 +( y−y   d ) 2   Equation 26
 
     Second derivatives of x and y can be calculated based on the coefficients and the curvature value for a curved convergence path may be determined by: 
     
       
         
           
             
               
                 
                   
                     κ 
                      
                     
                       ( 
                       s 
                       ) 
                     
                   
                   = 
                   
                     
                       
                         
                           
                             x 
                             ′ 
                           
                            
                           
                             ( 
                             s 
                             ) 
                           
                         
                          
                         
                           
                             y 
                             ″ 
                           
                            
                           
                             ( 
                             s 
                             ) 
                           
                         
                       
                       - 
                       
                         
                           
                             y 
                             ′ 
                           
                            
                           
                             ( 
                             s 
                             ) 
                           
                         
                          
                         
                           
                             x 
                             ″ 
                           
                            
                           
                             ( 
                             s 
                             ) 
                           
                         
                       
                     
                     
                       
                         ( 
                         
                           
                             x 
                             ′2 
                           
                           + 
                           
                             y 
                             ′2 
                           
                         
                         ) 
                       
                       
                         3 
                         / 
                         2 
                       
                     
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   27 
                 
               
             
           
         
       
     
     Notably, higher order polynomials of an independent variable may also be used for generating curvature feedback as is appreciated by those skilled in the art. 
     For three-dimensional (3D) coordinates, a curvature value may be directly calculated based on state/output feedback. Such curvature value is further used to determine a magnitude and an orientation of the drilling tool actuation. For example, using 3D Cartesian coordinates x, y and z, where the current position of the tool is defined by γ=(x, y, z), the curvature κ may be given by: 
     
       
         
           
             
               
                 
                   κ 
                   = 
                   
                     
                       
                         
                           
                             
                               
                                 
                                   ( 
                                   
                                     
                                       
                                         x 
                                         ′ 
                                       
                                        
                                       
                                         y 
                                         ″ 
                                       
                                     
                                     - 
                                     
                                       
                                         y 
                                         ′ 
                                       
                                        
                                       
                                         x 
                                         ″ 
                                       
                                     
                                   
                                   ) 
                                 
                                 2 
                               
                               + 
                             
                           
                         
                         
                           
                             
                               
                                 
                                   ( 
                                   
                                     
                                       
                                         z 
                                         ′ 
                                       
                                        
                                       
                                         x 
                                         ″ 
                                       
                                     
                                     - 
                                     
                                       
                                         x 
                                         ′ 
                                       
                                        
                                       
                                         z 
                                         ″ 
                                       
                                     
                                   
                                   ) 
                                 
                                 2 
                               
                               + 
                               
                                 
                                   ( 
                                   
                                     
                                       
                                         y 
                                         ′ 
                                       
                                        
                                       
                                         z 
                                         ″ 
                                       
                                     
                                     - 
                                     
                                       
                                         z 
                                         ′ 
                                       
                                        
                                       
                                         y 
                                         ″ 
                                       
                                     
                                   
                                   ) 
                                 
                                 2 
                               
                             
                           
                         
                       
                     
                     
                       
                         [ 
                         
                           
                             
                               ( 
                               x 
                               ) 
                             
                             2 
                           
                           + 
                           
                             
                               ( 
                               y 
                               ) 
                             
                             2 
                           
                           + 
                           
                             
                               ( 
                               
                                 z 
                                 ′ 
                               
                               ) 
                             
                             2 
                           
                         
                         ] 
                       
                       
                         3 
                         / 
                         2 
                       
                     
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   28 
                 
               
             
           
         
       
     
     Where x′, y″, y′, x″, z′, z″ are calculated based on the current position and attitude of the tool and the desired waypoint (position, attitude, and/or higher order derivatives of the path). 
     Generally, a normal direction in 3D space is used for determining a direction for generating the curvature value. For example, the normal direction for applying the curvature is given by the following vector: 
     
       
         
           
             
               
                 
                   [ 
                   
                     
                       
                         
                           
                             
                               x 
                               ″ 
                             
                              
                             
                               y 
                               ′2 
                             
                           
                           - 
                           
                             
                               x 
                               ′ 
                             
                              
                             
                               y 
                               ′ 
                             
                              
                             
                               y 
                               ″ 
                             
                           
                           + 
                           
                             
                               z 
                               ′ 
                             
                              
                             
                               ( 
                               
                                 
                                   
                                     x 
                                     ″ 
                                   
                                    
                                   
                                     z 
                                     ′ 
                                   
                                 
                                 - 
                                 
                                   
                                     x 
                                     ′ 
                                   
                                    
                                   z 
                                 
                               
                               ) 
                             
                           
                         
                       
                     
                     
                       
                         
                           
                             
                               x 
                               ′2 
                             
                              
                             
                               y 
                               ″ 
                             
                           
                           - 
                           
                             
                               x 
                               ′ 
                             
                              
                             
                               x 
                               ″ 
                             
                              
                             
                               y 
                               ′ 
                             
                           
                           + 
                           
                             
                               z 
                               ′ 
                             
                              
                             
                               ( 
                               
                                 
                                   
                                     y 
                                     ″ 
                                   
                                    
                                   
                                     z 
                                     ′ 
                                   
                                 
                                 - 
                                 
                                   
                                     y 
                                     ′ 
                                   
                                    
                                   
                                     z 
                                     ″ 
                                   
                                 
                               
                               ) 
                             
                           
                         
                       
                     
                     
                       
                         
                           
                             
                               x 
                               ′2 
                             
                              
                             
                               z 
                               ″ 
                             
                           
                           - 
                           
                             
                               x 
                               ′ 
                             
                              
                             
                               x 
                               ″ 
                             
                              
                             
                               z 
                               ′ 
                             
                           
                           + 
                           
                             
                               y 
                               ′ 
                             
                              
                             
                               ( 
                               
                                 
                                   
                                     y 
                                     ′ 
                                   
                                    
                                   
                                     z 
                                     ″ 
                                   
                                 
                                 - 
                                 
                                   
                                     y 
                                     ″ 
                                   
                                    
                                   
                                     z 
                                     ′ 
                                   
                                 
                               
                               ) 
                             
                           
                         
                       
                     
                   
                   ] 
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   29 
                 
               
             
           
         
       
     
     Notably, both the normal direction and the curvature value are used to instruct drilling tool actuation, as is appreciated by those skilled in the art. 
       FIG. 6  is an exemplary simplified procedure  600  for directional drilling based on the curvature-based feedback techniques discussed above. Procedure  600  begins at step  605  and continues on to step  610  where, as discussed, a target wellbore path is defined by a plurality of target waypoints. A drilling tool drills executes the curvature-based feedback techniques to drill a wellbore path that substantially conforms to the target wellbore path. In particular, procedure  600  continues to step  615  where the drilling tool tracks its current position and its current attitude. For example, the drilling tool may be configured with one or more sensors, modules, and/or other hardware/software that communicate with each other to determine and track its position and attitude. 
     Drilling tool further determines, in step  620 , a curvature value for a curved path that intersects the current position, tangent the current attitude, and a curvilinear position (e.g., a target waypoint, etc.) on the target wellbore path, tangent to a target attitude (which tangent may be parallel to an axis of the target wellbore path). 
     The drilling tool may be instructed, at step  625 , to generate a wellbore path according to the curvature value, which can cause its controller (e.g., RSS force/bending controller) to actuate or bend a drilling shaft thereby steering the drilling tool along the curved path. Notably, the curvature value may be constrained by thresholds to prevent violations of predefined drilling constraints (e.g., dogleg constraints). In such embodiments, a new position may be assigned as the target position (e.g., a position on the wellbore path further from the drilling tool) and a new curvature value may be calculated and compared against the threshold(s). This process may continue until the new curvature value falls within certain thresholds to provide smooth path convergence. Alternatively (or in addition), derivatives of the current/target positions may be used to also facilitate smooth path convergence. 
     Procedure  600  also provides a feedback loop, shown at step  635  where the drilling tool updates its current position/attitude based on movement or change in the current position/attitude. From step  635 , procedure  600  iteratively repeats steps  620  through step  635  while the drilling tool generates its wellbore path. In this fashion, the drilling tool continuously receives position/attitude information, calculates appropriate curvature values for curved path convergence, and adjusts its drilling direction/movement. Procedure  600  may subsequently end at step  640 , but as discussed, it may begin again at step  615  where, as discussed above, the drilling tool tracks its current position/attitude. 
     It should be noted that certain steps within procedure  600  may be optional, and further, the steps shown in  FIG. 6  are merely examples for illustration—certain other steps may be included or excluded as desired. Further, while a particular order of the steps is shown, this ordering is merely illustrative, and any suitable arrangement of the steps may be utilized without departing from the scope of the embodiments herein. 
     Collectively,  FIGS. 7, 8, and 9  each provide a pair of graphs showing simulated wellbore paths (e.g., 100 simulations) and curvature values for a drilling tool as it moves from an initial position at an initial attitude to a target position having a target attitude. Notably, the simulated wellbore paths demonstrate robust features of the curvature-based feedback techniques discussed herein and show continuous and iterative changes to the curvature values for each estimated path as the drilling tool is subjected to various disturbances (e.g., formation changes, etc.). 
       FIG. 7  illustrates graphs  701  and  702 ,  FIG. 8  illustrates graphs  801  and  802 , and  FIG. 9  illustrates graphs  901  and  902 . For each of these graphs, the drilling tool begins at the same initial position and the same initial attitude and ends at the same final position, but with different target attitudes. In particular, in graphs  701  and  702 , ϕ(0)=0; ϕ d =−pi/2; Δκ∈[− 0 . 5 ,  0 . 5 ]; in graphs  801  and  802 , ϕ(0)=0; ϕ d =−pi/3; and in graphs  901  and  902 , ϕ(0)=0; ϕ d =−pi/3. 
     Graphs  701 ,  801 , and  901  each illustrate simulated curvature values for estimated curved wellbore paths produced or traversed by the drilling tool from the initial position to the final position, while corresponding graphs  702 ,  802 , and  902  each illustrate a continuously computed curvature value κ(S) using the curvature-feedback calculations discussed above (e.g., based on the drilling tool&#39;s current position, current attitude, as well as the target position and target attitude, etc.). The drilling tool is subjected to various disturbances as it traverses the wellbore path and it continuously adjusts the curvature values, shown by graphs  702 ,  802 , and  902 , in order to provide the smoothly curved wellbore path shown in graphs  701 ,  801 , and  901 . Notably, the actual curvatures for the curved wellbore paths may be represented by κ(s)+Δκ, where Δκ is a random number or uncertainty that may result from various sources (e.g., measurement noise or inaccuracies, faulty tool responses, estimation errors for x, y, ϕ, and the like). 
     These curved wellbore paths shown in graphs  701 ,  801 , and  901  provide a curved convergence path for the drilling tool as it moves toward the final position/attitude. Notably, this final position/attitude may represent a target waypoint, or some other curvilinear position on a planned wellbore path. Moreover, these curved convergence paths demonstrate substantially simultaneous convergence between the actual wellbore path and the planned wellbore path, both in terms of position and attitude (e.g., inclination and azimuth), which demonstrates a robustness and an accuracy of the curvature-based feedback operations despite the various disturbances applied to the drilling tool. 
       FIGS. 10 and 11  illustrate a pair of graph  1001 / 1002  and  1101 / 1102 , respectively, showing path convergence when Δκ is assigned a constant value (e.g., a constant drift), rather than the random uncertainty (e.g., ref.  FIGS. 7-9 ). In particular, Δκ=0.1 for graphs  1001  and  1002  and Δκ=0.25 for graphs  1101  and  1102 . Graphs  1001  and  1101  particularly illustrate actual curvatures of a curved wellbore path produced by the drilling tool as it travels from the initial position to the final/target position, and corresponding graphs  1002  and  1102  illustrate the continuously computed curvature values x(s) as the drilling tool accounts for disturbances/uncertainty along the curved wellbore path. 
       FIGS. 12, 13, and 14  illustrate a pair of graphs—here,  1201  and  1202 ,  1301  and  1302 , and  1401  and  1402 , respectively—showing position and attitude convergence when a proportional uncertainty is added to the curvature value. Graphs  1201 ,  1301 , and  1401  illustrate actual curvatures of a curved wellbore path produced by the drilling tool as it travels from the initial position to the final/target position, and corresponding graphs  1202 ,  1302 , and  1402  illustrate the continuously computed curvature values κ(s) as the drilling tool accounts for disturbances/uncertainty along the curved wellbore path. Regarding the proportional uncertainty the drilling tool produces an actually curvature (1+q)κ(s), where q∈(−1, ∞), instead of producing a desired curvature κ(s). Notably, for graphs  1201  and  1202 , q=−0.5; graphs  1301  and  1302 , q=−2; and graphs  1401  and  1402 , q=10. 
     While there have been shown and described illustrative embodiments for curvature-based feedback controls that provide simultaneous convergence for positions and attitudes between an actual wellbore path and a planned well path, it is to be understood that various other adaptations and modifications may be made within the spirit and scope of the embodiments herein. For example, the embodiments have been shown and described herein with curvature values determined by specific deflection beam equations. However, the embodiments in their broader sense are not as limited, and may, in fact, be used with any curved path equations. In addition, the embodiments are shown with certain devices/modules performing certain operations, however, it is appreciated that various other sensors/devices may be readily modified to perform operations without departing from the sprit and scope of this disclosure. 
     The foregoing description has been directed to specific embodiments. It will be apparent, however, that other variations and modifications may be made to the described embodiments, with the attainment of some or all of their advantages. For instance, it is expressly contemplated that the components and/or elements described herein can be implemented as software being stored on a tangible (non-transitory) computer-readable medium, devices, and memories (e.g., disks/CDs/RAM/EEPROM/etc.) having program instructions executing on a computer, hardware, firmware, or a combination thereof. Further, methods describing the various functions and techniques described herein can be implemented using computer-executable instructions that are stored or otherwise available from computer readable media. Such instructions can comprise, for example, instructions and data which cause or otherwise configure a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Portions of computer resources used can be accessible over a network. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, or source code. Examples of computer-readable media that may be used to store instructions, information used, and/or information created during methods according to described examples include magnetic or optical disks, flash memory, USB devices provided with non-volatile memory, networked storage devices, and so on. In addition, devices implementing methods according to these disclosures can comprise hardware, firmware and/or software, and can take any of a variety of form factors. Typical examples of such form factors include laptops, smart phones, small form factor personal computers, personal digital assistants, and so on. Functionality described herein also can be embodied in peripherals or add-in cards. Such functionality can also be implemented on a circuit board among different chips or different processes executing in a single device, by way of further example. Instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are means for providing the functions described in these disclosures. Accordingly this description is to be taken only by way of example and not to otherwise limit the scope of the embodiments herein. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the embodiments herein.