Patent Description:
Some wellbore drilling technologies employ a bottom hole assembly (BHA) that may include the use of a rotary steerable drilling system. This technology allows the users to change the direction of the drill bit during drilling, thereby enabling the drilling of wells having horizontal sections or allowing the wells to take paths around obstacles or access targets that would not otherwise be reachable using previous drilling techniques. The bottom hole assemblies (BHAs) are used for directional drilling and may contain various inertial measurement units (IMUs) to provide information (measurement while drilling or MWD information) about the current status of the drill bit.

<CIT> describes aspects of the disclosure that can relate to simulating expected sensor values associated with a drill tool (e.g., a drill assembly) before drilling to monitor the sensor.

<CIT> describes one example that includes an apparatus comprising a steerable well bore drilling tool having a main tool body. The steerable well bore drilling tool includes an inertial measurement unit to output a measurement used to determine an azimuthal deviation and inclination of the steerable well bore drilling tool during a drilling operation.

The invention being defined only in the appended independent claims.

Examples of the present invention relate to systems and methods for generating the output of a downhole inertial measurement unit (IMU).

The accompanying drawings, together with the specification, illustrate exemplary examples of the present invention, and, together with the description, serve to explain the principles of the present invention.

In the following detailed description, only certain exemplary examples of the present invention are shown and described, by way of illustration. As those skilled in the art would recognize, the invention may be embodied in many different forms and should not be construed as being limited to the examples set forth herein. Like reference numerals designate like elements throughout the specification. In the following description and the drawings the unit feet/ foot (ft) is to converted to <NUM> meter (m).

Some drilling technologies involving rotary steerable drilling would be improved by making use of autonomous guidance while drilling (AGWD), in which a controller embedded within the bottom hole assembly (BHA) or drill bit autonomously controls its trajectory. Autonomous guidance while drilling (AGWD) is described in <CIT>. This AGWD technology can be analogized to control systems for other autonomous vehicles such as drones and self-driving cars. An autonomous navigation system may receive feedback from sensors regarding its position over time and may adjust its direction of movement based on the feedback. In some technologies such as autonomous airborne drones and terrestrial vehicles, the global positioning system (GPS) may be used to provide highly accurate position and velocity information. On the other hand, an autonomous bottom hole assembly (BHA) with drill bit would operate underground, where GPS signals are generally not available. As a result, positional information for an AGWD system would need to be provided by a downhole inertial measurement unit (IMU), which can provide acceleration data, gyroscopic data, magnetometer data, pressure data and measured depth. The acceleration data, in turn, can provide position and velocity information by integrating the acceleration data over time.

An accurate generator of the output of the type of downhole inertial measurement unit (IMU) ensemble used in a drilling scenario may have applications in testing, comparing, validating and improving navigation algorithms for controlling autonomous guidance while drilling (AGWD) systems. A downhole IMU located on or inside the bottom hole assembly (BHA) generally encounters environments and operating conditions that are different from IMUs used in other contexts such as in aerospace applications and in terrestrial navigation, thereby requiring a specialized system to provide an accurate generated output. For example, an IMU located on or inside the bottom hole assembly (BHA) may be rotating with the BHA and/or the drill bit, and therefore may be rotating at various rates during operation, whereas an IMU in an aircraft or in a terrestrial vehicle will generally have relatively low rates of rotation. As another example, in some examples, the output generator makes use of three-dimensional (3D) planned well trajectory data in generating an output of a downhole IMU. Furthermore, the types of external reference sources are different in that GPS data or star tracking are not available, and therefore gyro compassing and magnetic compassing may be used instead, and noise characteristics of downhole IMUs are different from, for example, terrestrial and aerospace applications of IMUs. Moreover, the trajectory estimation is much more difficult in drilling applications than in conventional navigation applications because, in the latter case, there are multiple external references, such as the turns of wheels (odometer), the marks on roads, the star angles, etc. for correcting the bias instability of microelectromechanical systems (MEMS) inertial sensors, while none of these are available in underground drilling.

Accordingly, aspects of examples of the present invention are directed to systems and methods for generating the output of downhole IMUs in a manner that takes into account the particular conditions experienced by downhole IMUs, such as IMUs that are attached to bottom hole assemblies (BHAs). These conditions may include, for example, particular linear and angular acceleration profiles as the drill bit moves between stations and particular underground magnetic conditions.

<FIG> is a flowchart of a method according to one example of the present invention for generating an output of an inertial measurement unit (IMU) for a particular planned well. <FIG> is a block diagram of a system <NUM> for generating a trajectory and an inertial measurement unit according to one example of the present invention. <FIG> is a more detailed block diagram of a system <NUM> for generating a trajectory and an inertial measurement unit according to one example of the present invention.

Various examples of the present invention may be implemented on a computer processor system that is customized or specialized in accordance with particular computer instructions to perform special purpose operations in accordance with various examples of the present invention. Examples of such computer processors or specialized include an application specific integrated circuit (ASIC) having a circuit to implement a simulation, a field programmable gate array (FPGA) having circuitry that is configured (e.g., using with a bit file) to implement a simulation, and a processor (such as a central processing unit and a graphical processing unit) configured by program instructions stored memory coupled to the processor. The instructions and/or techniques may include, for example: the generation of an output of a downhole IMU for a particular planned well, given a set of parameters specifying features of the well and the associated equipment; and generating IMU sensor data using the generated IMU output in accordance with examples of the present invention.

In some examples of the present invention, the operations shown in the flowchart of <FIG> and the blocks shown in the block diagrams of <FIG> and <FIG> may be implemented by instructions stored in the memory of a computer system, such as a computer described in more detail with respect to <FIG>.

For a given georeferenced trajectory (e.g., position and attitude), a downhole IMU output generator <NUM> according to one example of the present invention generates the output of an actual downhole inertial measurement unit (IMU) along that trajectory.

<FIG> is a flowchart depicting a method for generating the trajectory according to one example of the present invention.

The downhole IMU output generator <NUM> generated IMU outputs in accordance with parameters including: available planned well data <NUM> (e.g., the desired underground trajectory of the well); geodetic information at the drilling site including but not limited to latitude, longitude, altitude of the BHA head, magnetic reference information, gravity reference information, and earth's rotation rate; and noise characteristics of the outputs of the IMU sensors that are to be generated. In particular, the downhole IMU output generator <NUM> includes a trajectory generator <NUM>, a sensor output generator <NUM>, and a noise generator <NUM>. The trajectory generator <NUM> generates the trajectory of the IMU as a function of time (e.g., the location and orientation of the drill bit along the path of the well as a function of time). In some examples, the sampling rate or time steps of the generated trajectory is in a range from <NUM> time step per second to <NUM> time steps per second (e.g., <NUM> to <NUM>). The sensor output generator <NUM> generates the output of the sensor data under the constraints of the trajectory and geodetic information. The noise generator <NUM> applies noise to the clean sensor data generated by the sensor output generator <NUM> in accordance with a sensor noise model based on the noise characteristics of the IMU sensors to generate a generated IMU output over the trajectory in accordance with the well plan.

As shown in <FIG>, <FIG>, <FIG>, and <FIG> in operation <NUM>, the trajectory generator <NUM> receives input parameters. In some examples, these input parameters include planned well data, geodetic reference parameters, and sensor noise parameters.

In some examples, the planned well data <NUM> includes the planned coordinates of survey points (or survey stations) of the well. Survey points may also be described as way points. This may be represented as, for example, the three columns of data corresponding to the latitude, longitude, and the depth of each survey point. In some examples, "north" and "east" positional coordinates may be used instead of latitude and longitude coordinates. The survey points, way points or survey stations correspond to points along the path of the well where the drill bit is stopped (e.g., stationary). In practice, these survey points may be used to measure current position and to insert an additional pipe segment at the top of the well.

<FIG> illustrates the positional coordinates (north, east, and depth or NED coordinates) of survey points of an example plan trajectory and <FIG> illustrates the angular coordinates (azimuth and inclination or Al) of the survey points of the example plan trajectory. These positional and/or angular coordinates of the survey points make up at least a portion of the planned well data <NUM> supplied as input to the trajectory generator <NUM>.

In some examples, the geodetic reference parameters (e.g., reference data used to convert sensor measurements to a position on the Earth or similar object) include information about the drilling site, including the geomagnetic field strength (Bt) (the Earth's magnetic field), geomagnetic declination (direction of magnetic north resolved to the true north) (Dec), and geomagnetic dip (vertical dip of the Earth's magnetic field vector below horizontal) (Dip), as functions of three-dimensional coordinates. One realization of these geodetic reference parameter functions can be a look-up-table of numerical values of the Bt-Dec-Dip at the proximity of the planned coordinates, which may later be interpolated. The geodetic parameters may also include grid convergence (direction of grid north relative to true north) (Conv).

In some examples, the geodetic reference parameters also include the local gravity direction and the rotational rate of the Earth. The values surveyed at the first survey point (typically at the surface of the drilling site) can be used. In some examples, a gravity model where the gravity is the function of coordinates can also be used for more realistic generation of results (e.g., where the direction and magnitude of the gravitational force may be modified by massive objects that are local to the drilling site).

In some examples, the sensor noise parameters may be based on Allan Deviation (ADEV) analysis or power spectral analysis of IMU sensor noise. These parameters may include, but are not limited to, quantization noise, white noise, bias instability, bias random walk, and bias ramp. In addition, drilling dynamics vibratory noise parameters are also used to generate vibration effects caused by drill head rotation and impact, where the noise characteristics may vary in accordance with the angular speed of the drill.

Referring back to <FIG> and <FIG>, in operation <NUM>, the trajectory generator <NUM> generates the trajectory of the drill bit as it moves along the between the planned survey points in the planned well data <NUM>. In one example, the trajectory generator <NUM> is configured to generate six-column trajectory data as a function of time (e.g., in a range from one time step per second to <NUM> time steps per second). The six columns of the generated data are the three-dimensional (<NUM>-D) coordinates of the drill bit (e.g., in north, east, and depth or NED coordinates) and three angles (e.g., azimuth, inclination, and toolface angles or AIT angles). In some examples, the <NUM>-D coordinates refer to the coordinates of the drill-bit in the navigation frame having its origin at the drilling site of on surface; and the three angles refer to Euler angles that are used to determine the rotational matrix from the body frame (on which IMU's X-Y-Z axes are defined) to the navigation frame.

In operation <NUM>, the trajectory generator <NUM> receives input parameters, including planned well data including a sequence of survey points. In operation <NUM>, the trajectory generator <NUM> selects the next pair of consecutive survey points in the planned well data, starting with the first pair of survey points.

In operation <NUM>, the trajectory generator <NUM> computes the azimuth, inclination, and toolface (AIT) angles at the survey points based on the trajectory (e.g., the angles at the survey points shown in <FIG>). In the following discussion, the attitude vector or unit attitude vector û(i) represents the heading of the IMU (e.g., the MWD ensemble) as it stops at each survey station i (e.g., the survey stations may be numbered sequentially: i = [<NUM>,<NUM>,<NUM>,. (The IMU is approximated as being rigidly connected to the drill bit and therefore is assumed to approximate the direction of the drill bit. ) Assuming that the initial azimuth and inclination are given (e.g., assuming the initial orientation of the drill bit at the first survey point is known), in one example, the initial unit attitude vector û(i) is calculated as: <MAT> where sI stands for sin(Inclination), cA stands for cos(Azimuth), sI stands for sin(Inclination) and cI stands for cos(Inclination) and the position difference vector <MAT> between the preceding survey station (i - <NUM>) and the present survey station i is calculated by: <MAT>.

The angle subtended by an arc that is a smooth curve tangent to both the preceding and present attitude vectors û(i - <NUM>) and û(i) is calculated by: <MAT>.

Accordingly, in one example, the present attitude vector û(i) is calculated by: <MAT>.

Note that, if the angle θ is very close to zero (e.g., less than a threshold value of <NUM>-<NUM>), then the present attitude vector û(i) is essentially the same as the preceding attitude vector û(i - <NUM>).

In one example, this process is iteratively applied, starting from the first survey point, to calculate the unit attitude vector at each survey point in the well plan.

Once the unit attitude vector has been computed for each survey point, the azimuth (A) and inclination (I) angles can be calculated as: <MAT> <MAT>.

In one example, as a sanity check, if the planned coordinates are based on the convention of grid north, true north, or magnetic north, then the above calculated azimuth A may be calculated based on "map north," and referred to as Amap, and therefore the true azimuth Atrue can be adjusted based on the grid convergence (direction of grid north relative to true north) (Conv): <MAT>.

In some examples, the toolface angle is not related to the attitude vector of the sensor module which is defined in the local NED frame. This is because the attitude vector is only determined by the inclination and azimuth. However, the toolface angle is used to define the body frame (e.g., the reference frame of the drill bit), because all of the sensors in the IMU refer to the body frame. For the sake of convenience, it is assumed that, during stationary periods of operation (corresponding, for example, to the periods where the drill bit is stationary at the survey points), the toolface will be kept constant as the same value of the preceding time, and the toolface angles are calculated only when in a non-stationary mode (e.g., between survey points).

In operation <NUM>, the trajectory generator <NUM> generates six column coordinates (e.g., a plurality of six dimensional coordinates) representing the positional and angular coordinates of the drill bit between the survey points. In some examples, the duration of time between any two survey points is assumed to be known (e.g., provided as one or more parameters to the trajectory generator <NUM>).

<FIG> is a flowchart depicting a method for generating six column trajectory coordinates between two survey points according to one example of the present invention.

Referring to <FIG>, in operation <NUM>, the trajectory generator <NUM> calculates the attitude vectors <MAT> of the drill bit at the two given survey points (survey points i + <NUM> and i) and their angular difference θ: <MAT> <MAT>.

In operation <NUM>, the trajectory generator <NUM> determines the mode between the two survey points. If the angular difference θ is smaller than a threshold value (e.g., <NUM> degrees), then the mode between the two survey points is classified as being a rotational mode (which refers to a mode where the drill bit moves forward with a substantially straight trajectory, with the drill bit rotating at a particular rotational rate, such as <NUM> rpm). If the angular difference θ exceeds the threshold value, then the mode between the two survey points is classified as a sliding mode (which refers to a mode where the drill bit moves with a curved trajectory, and where the drill bit does not rotate).

If the mode between the two survey points is a rotational mode, then, in operation <NUM>, the trajectory generator <NUM> sets the functions of velocities <MAT> and rotation rates ωrotational(t) as following normalized double-Gaussian function distributions fGaussian(t): <MAT> <MAT> <MAT>.

In the above equations, t<NUM> and t<NUM> and σ<NUM> and σ<NUM> are the centers and the durations of the first and second Gaussian functions, respectively, from the above definition of fGaussian(t). Based on the defined moving time (Δt) in between the survey points, in one example, the values of the parameters ae set to satisfy σ<NUM>,<NUM> < <NUM>. 2Δt (more explicitly, σ<NUM> < <NUM>. 2Δt and σ<NUM> < <NUM>. 2Δt), and |σ<NUM>,<NUM> ± t<NUM>,<NUM>| < <NUM>. 3Δt (more explicitly, |σ<NUM> ± t<NUM>| < <NUM>. 3Δt and |σ<NUM> ± t<NUM>| < <NUM>. 3Δt); <MAT> and <MAT> are the NED coordinates of the first and second survey points; Δt is the time duration between two the survey points; and θ is the angular difference calculated for calculating θ in operation <NUM>.

In the case where mode between the two survey points is a rotational mode, then in operation <NUM>, the A and I coordinates are calculated as being the same during the moving time, because the angular change of the unit attitude vector is smaller than the threshold (e.g., a threshold such as <NUM> degrees). In one example, in operation <NUM> the NED coordinates <MAT> at each sampling time t is calculated as: <MAT> and the toolface angle T at each sampling time t is calculated as: <MAT> where mod is the modulus after division function (e.g., in order to constrain the toolface angle T to the range [<NUM>, <NUM>)), and T(<NUM>) refers to the toolface angle at the beginning of this particular motion, e.g., the toolface angle when the drill bit begins its motion, starting at survey point i.

<FIG> is a graph depicting the realization of the velocities as a function of time in a rotational drilling mode with a normalized double-Gaussian distribution function, and <FIG> is a graph of the distance traveled as a function of time in a rotational mode. Accordingly, each of the trajectory coordinates can be considered as being associated with a timestamp.

If the mode between the two survey points is a sliding mode, then, in operation <NUM>, the trajectory generator <NUM> sets the function of the sliding angular rate θ̇sliding to a function of the normalized double Gaussian function distribution: <MAT>.

In operation <NUM>, the trajectory generator <NUM> computes the sliding mode trajectory of the curvature between the two given survey points as N points along an arc, where the angle away from the first station is given by jdθ, where j = <NUM>,<NUM>,. N and with dθ = θ/N. Accordingly, the coordinates of these points can be given by: <MAT> where R is the radius of the curvature, which can be calculated as: <MAT>.

The attitude at each time t is related to the its NED coordinate P(t) as: <MAT>.

Accordinglt, in one example, the Al coordinates are computed as: <MAT> where Att(t) ≡ [Att(i, <NUM>), Att(i, <NUM>), Att(i, <NUM>)] = [ sI * cA, sI * sA, cI]. The toolface angle T is not calculated because the toolface angle is kept the same during the sliding mode.

Systems and methods for computing trajectory coordinates in sliding mode are described in more detail in <CIT> and <CIT> and published on November <NUM>, <NUM>.

<FIG> is a graph depicting the realization of the angular rates as a function of time in a rotational drilling mode with a normalized double-Gaussian distribution function. <FIG> is a graph of the angular difference between the attitude at a first station and the attitude at a second station as a function of time. Accordingly, each of the trajectory coordinates can be considered as being associated with a timestamp.

Referring back to <FIG>, in operation <NUM>, the trajectory generator <NUM> determines if there are more consecutive pairs of survey points to consider. If so, then the process of computing coordinates between consecutive pairs of survey points continues by selecting the next pair of survey points in operation <NUM> until the trajectory generator <NUM> has generated a plurality of trajectory coordinates between each pair of consecutive survey points.

<FIG> is a graph depicting azimuth, inclination, and toolface (AIT) coordinates as a function of time, as generated according to one example of the present invention. <FIG> is an enlargement of the portion of <FIG> indicated with an ellipse. Accordingly, each of the trajectory coordinates can be considered as being associated with a timestamp.

<FIG> is a three-dimensional graph showing the generated positional coordinates (north, east, and depth or NED coordinates) of a generated trajectory according to one example of the present invention, and <FIG> is an enlargement of the portion of <FIG> indicated with an ellipse.

In some examples of the present invention, a "sanity check" computation is performed on the generated attitude (AIT) coordinates to ensure that they are reasonable and/or well-defined. The angular coordinates would be ill-defined if the inclination (I) coordinate satisfied the relationship sin(I) ≈ <NUM>, because, in any attitude that is pointing straight down or straight up, the azimuth (A) angle becomes ill-defined.

Accordingly, in one example of the present invention, the generated attitude coordinates A(t) are checked to determine if there is any period of time in which sin(I) ≈ <NUM>. If there is such a duration Δt, then the azimuth within this period of time is defined as a continuous function of time connecting the azimuth at the beginning and the azimuth at the end. Examples of appropriate continuous functions according to various examples of the present invention include a linear function, a polynomial function, and a triangle function. For example, in one example, the azimuth during such a period of time Δt is given as: <MAT> where A<NUM> is the azimuth at the beginning of the duration Δt, and A<NUM> is the azimuth at the end of the duration Δt.

<FIG> is a functional block diagram illustrating components of a sensor output generator <NUM> according to one example of the present invention. As shown in <FIG>, the sensor output generator <NUM> includes an input module that is provided with the generated trajectory from the trajectory generator <NUM> along with the geodetic parameters <NUM>. In some examples, the geodetic parameters <NUM> include magnetic strength (Bt) and the dip and declination angles, as described above.

The generated trajectory and the geodetic parameters are used to generate the outputs of accelerometers <NUM>, gyroscopes <NUM>, and magnetometers <NUM> to generate nine-degree-of-freedom (<NUM>-DOF) sensor data. This generated sensor data does not include noise, and merely represents an idealized output from the sensor output generators.

In more detail, the output generators <NUM> generate three axis data at the navigation frame <MAT>, as illustrated in <FIG>. The three axis data at the navigation frame <MAT> can be generated in accordance with the following equation: <MAT>.

<FIG> are graphs depicting acceleration vectors, with respect to the navigation frame, generated by a sensor output generator <NUM> according to one example of the present invention.

The outputs of the generated three axis accelerometer data in the navigation frame <MAT> can then be converted to the body frame <MAT> in accordance with the relationship: <MAT> where <MAT> is the transformation matrix that represents the relationship between body frame and the navigation frame, where <MAT> and where the prime (') represents the transpose.

<FIG> are graphs depicting <NUM>-axis accelerometer data generated by a sensor output generator <NUM>, with respect to the body frame, without added noise, according to one example of the present invention.

The generated gyroscopes <NUM> generate three axis outputs in the navigation frame <MAT> in accordance with the relationship: <MAT>.

<FIG> are graphs depicting angular rate vectors, with respect to the navigation frame <MAT>, generated by an IMU generator according to one example of the present invention.

The outputs of the generated three axis gyroscopic data with respect to the navigation frame <MAT> can then be converted to be with respect to the inertial frame <MAT> in accordance with the relationship: <MAT>.

<FIG> are graphs depicting <NUM>-axis gyroscopic data generated by a sensor output generator <NUM>, with respect to the inertial frame <MAT>, without added noise, according to one example of the present invention.

According to one example, the generated magnetometer <NUM> generates three axis magnetometer data in the navigation frame along the positional directions north, east, and depth (N, E, and D) based on the given geodetic parameters <NUM>: <MAT> <MAT> <MAT>.

The outputs of the generated three axis magnetometer data can then be converted to the body frame <MAT> in accordance with the relationship: <MAT>.

<FIG> are graphs depicting <NUM>-axis magnetometer data generated by a sensor output generator <NUM>, in the body frame without added noise, according to one example of the present invention.

In one example of the present invention, the generated IMU data is verified by comparing the calculated positional coordinates from the trajectory generator <NUM> with the output of an inertial navigation system (INS) that is supplied with the generated IMU data. One example of an INS model is described in Paul D. Groves, Principles of GNSS, Inertial and Multisensor Integrated Navigation Systems, Artech House (<NUM>).

<FIG>, <FIG>, and <FIG> are graphs depicting differences between the north, east, and depth positional differences between the trajectory generator and the output of an inertial navigation system (INS) that is supplied with generated IMU sensor data according to one example of the present invention. As shown in <FIG>, <FIG>, and <FIG>, there is a less than <NUM> foot error at the end of the generated thousands of feet of drilling over a generated <NUM> hours.

As noted above, the outputs of the sensor output generator <NUM> generated accelerometer, gyroscope, and magnetometer data that is free of noise. However, sensor data from real inertial measurement units contain noise. Therefore, the present invention relates to a noise generator module <NUM> configured to add noise to the generated IMU data in accordance with noise models for the various sensors of the IMU.

Generally, two types of noise can be observed in the output from the IMU of a real drilling apparatus: sensor noise; and drilling noise due to drilling dynamics (e.g., linear and torsional vibration, shock, temperature swings and temperature gradients). In survey mode, when all drilling activity is halted (e.g., when the drill bit is stationary at the survey points), only sensor noise is present, whereas during any type of drilling, vibratory noise is also present. The noise profile added to the synthesized IMU signal is shaped by characterization parameters determined from measurements, allowing the sensor output generator <NUM> to produce, with the noise generator module <NUM>, realistic IMU signals.

An inertial sensor's output contains a multitude of noise components which affect the accuracy of measurements. Various analysis methods exist to identify and characterize these noise components, such as Power Spectral Density and Allan Deviation analysis (see, e.g., <NPL>. For the sake of illustration, the below discussion will make use of Allan Deviation analysis, but examples of the present invention are not limited thereto.

Allan deviation analysis is performed on the output of a sensor under static conditions, producing a curve of Allan Deviation versus averaging time, as shown in <FIG>, which is an Allan deviation curve characterizing the different components of noise in a sensor output. Different types of noise are identified based on the slope at different sections of the curve and noise coefficients, including quantization noise (Q), white noise(N), bias instability (B), bias random walk (K), and bias ramp (R) are derived according to <NPL>. These coefficients are then used to generate the individual noise components which are summed to produce a composite noise signal that is added to the clean sensor signal in the generator, as shown in <FIG>.

When the drill bit is operating, the IMU is subject to e.g. mechanical vibrations which are picked up by its sensors. To generate this type of noise, real field data is processed to compute the typical noise spectrum for each drilling mode (rotating and sliding).

<FIG> is a block diagram depicting a downhole IMU noise generator <NUM> according to the present invention. As shown in <FIG>, in one example, the IMU noise generator <NUM> includes sensor noise generators <NUM>, including quantization noise (Q), white noise (N), bias instability (B), bias random walk (K), and bias ramp (R) noise generators which are summed to form a composite sensor noise. The composite sensor noise <NUM> is added to the clean generated sensor signal <NUM> generated by the sensor output generator <NUM> to generate a noisy generated sensor signal <NUM>.

In addition, the downhole IMU noise generator <NUM> includes a drilling noise component <NUM>. The drilling noise component <NUM> may include three types of noise corresponding to the three drilling modes: survey mode (e.g., a mode where the drill bit is stationary and therefore not drilling, resulting in no drilling noise), a rotating mode (or rotational mode), and a sliding mode. Because the drill bit can only operate in one of these modes at a time, a mode-based selector switch <NUM> is used to select between the different noise generators in accordance with the current mode of the generated IMU (e.g., for data points corresponding to a rotational mode, the selector switch is set to supply the rotating mode noise, and for data points corresponding to a sliding mode, the selector switch is set to supply the sliding mode noise). The additional noise <NUM> generated by the drilling noise component is added to the noisy generated sensor signal <NUM> to generate a drilling sensor signal <NUM>.

In order for the position and attitude data to be physically plausible, the data points need to be twice differentiable (e.g., no sudden jumps in position or velocity). <FIG> is a flowchart illustrating the computation of position and attitude profiles to be twice differentiable according to one example of the present invention. Accordingly, the IMU generator <NUM> generates an acceleration profile <NUM> (e.g., including a positive Gaussian <NUM> and a negative Gaussian <NUM> followed by a dwell time <NUM>, where the dwell time represents time spent at the survey points). The acceleration is normalized so that, when it is twice integrated (once to generate velocity and rate profiles <NUM>, and a second time to generate position and attitude profiles <NUM>), it creates a position/attitude profile that rises to a value of <NUM>. This acceleration can then be scaled to the desired position or angle.

<FIG> is a flowchart illustrating the computation of a current position and attitude using a lookup table according to one example of the present invention.

From the position and attitude profiles, a lookup table <NUM> is implemented that uses the current time to compute the correct output from the position and attitude profiles <NUM>. The current position and attitudes <NUM> are then fed into a kinematic generator (see, e.g., <FIG>) to generate specific forces, angular rates, and magnetic field measurements.

Accordingly, examples of the present invention provide systems and methods for generating the output of a downhole inertial measurement unit (IMU).

In some examples of the present invention, the downhole inertial measurement unit is implemented on a real-time target machine and is used as hardware-in-the-loop (HIL). According to some examples, a real-time target machine is a computer designed and built specifically for a particular application (such as testing an autonomous guidance while drilling system) and may include field programmable gate arrays (FPGAs), vector processors, memory and the like such that the machine will complete all computations to support testing of an IMU in a finite amount of time. Given a drill head, IMU, and an AGWD controller, examples of the present invention can be used to provide simulated measurements of acceleration, orientation, and magnetic field to the IMU such that the AGWD controller generates commands to the drill head. Examples of the present invention simulate accelerometers, gyroscopes and magnetometers to support hardware-in-the-loop (HIL) simulation. In some examples of the present invention, the real-time target machine is configured to send commands to a motion controller to control a nonmagnetic motion simulator apparatus. Accordingly, examples of the present invention may be used to test the operation of an autonomous guidance while drilling (AGWD) system that is mounted in the simulator apparatus.

In addition, some examples of the present invention have been described above in the context of generating IMU output data such as acceleration data, gyroscopic data, and magnetometer data, examples of the present invention are not limited thereto and may also be used to generate other types of data relating to downhole physical conditions. As one example pressure data and measured depth data can also be generated in accordance with the geodetic data. More specifically, in some examples pressure data is generated in accordance with depth (e.g., pressure increases with depth) and may also be adjusted based on local conditions (e.g., characteristics of the particular subsurface structures captured through geological studies).

Various portions of examples of the present invention that refer to the use of a "processor" may be implemented with logic gates, or with any other example of a processing unit or processor. The term "processing unit" or "processor" is used herein to include any combination of hardware, firmware, and software, employed to process data or digital signals. Processing unit hardware may include, for example, application specific integrated circuits (ASICs), general purpose or special purpose central processing units (CPUs), digital signal processors (DSPs), graphics processing units (GPUs), and programmable logic devices such as field programmable gate arrays (FPGAs).

<FIG> is a block diagram illustrating a processing system, a processor, or a portion of a processing system or processor, referred to herein as a computer system, used in conjunction with at least one example of the present invention.

An exemplary computer system <NUM> in accordance with an example is shown in <FIG>. Exemplary computer system <NUM> is configured to perform calculations, processes, operations, and/or functions associated with a program or algorithm. In one example, certain processes and steps discussed herein are realized as a series of instructions (e.g., software program) that reside within computer readable memory units and are executed by one or more processors of exemplary computer system <NUM>. When executed, the instructions cause exemplary computer system <NUM> to perform specific actions and exhibit specific behavior, such as described herein.

Exemplary computer system <NUM> may include an address/data bus <NUM> that is configured to communicate information. Additionally, one or more data processing unit, such as processor <NUM>, are coupled with address/data bus <NUM>. Processor <NUM> is configured to process information and instructions. In an example, processor <NUM> is a microprocessor. Alternatively, processor <NUM> may be a different type of processor such as a parallel processor, or a field programmable gate array.

Exemplary computer system <NUM> is configured to utilize one or more data storage units. Exemplary computer system <NUM> may include a volatile memory unit <NUM> (e.g., random access memory ("RAM"), static RAM, dynamic RAM, etc.) coupled with address/data bus <NUM>, wherein volatile memory unit <NUM> is configured to store information and instructions for processor <NUM>. Exemplary computer system <NUM> further may include a non-volatile memory unit <NUM> (e.g., read-only memory ("ROM"), programmable ROM ("PROM"), erasable programmable ROM ("EPROM"), electrically erasable programmable ROM "EEPROM"), flash memory, etc.) coupled with address/data bus <NUM>, wherein non-volatile memory unit <NUM> is configured to store static information and instructions for processor <NUM>. Alternatively exemplary computer system <NUM> may execute instructions retrieved from an online data storage unit such as in "Cloud" computing. In an example, exemplary computer system <NUM> also may include one or more interfaces, such as interface <NUM>, coupled with address/data bus <NUM>. The one or more interfaces are configured to enable exemplary computer system <NUM> to interface with other electronic devices and computer systems. The communication interfaces implemented by the one or more interfaces may include wireline (e.g., serial cables, modems, network adaptors, etc.) and/or wireless (e.g., wireless modems, wireless network adaptors, etc.) communication technology.

In one example, exemplar computer system <NUM> may include an input device <NUM> coupled with address/data bus <NUM>, wherein input device <NUM> is configured to communicate information and command selections to processor <NUM>. In accordance with one example, input device <NUM> is an alphanumeric input device, such as a keyboard, that may include alphanumeric and/or function keys. Alternatively, input device <NUM> may be an input device other than an alphanumeric input device. In an example, exemplar computer system <NUM> may include a cursor control device <NUM> coupled with address/data bus <NUM>, wherein cursor control device <NUM> is configured to communicate user input information and/or command selections to processor <NUM>. In an example, cursor control device <NUM> is implemented using a device such as a mouse, a track-ball, a track-pad, an optical tracking device, or a touch screen. The foregoing notwithstanding, in an example, cursor control device <NUM> is directed and/or activated via input from input device <NUM>, such as in response to the use of special keys and key sequence commands associated with input device <NUM>. In an alternative example, cursor control device <NUM> is configured to be directed or guided by voice commands.

In an example, exemplary computer system <NUM> further may include one or more optional computer usable data storage devices, such as storage device <NUM>, coupled with address/data bus <NUM>. Storage device <NUM> is configured to store information and/or computer executable instructions. In one example, storage device <NUM> is a storage device such as a magnetic or optical disk drive (e.g., hard disk drive ("HDD"), floppy diskette, compact disk read only memory ("CD-ROM"), digital versatile disk ("DVD")). Pursuant to one example, a display device <NUM> is coupled with address/data bus <NUM>, wherein display device <NUM> is configured to display video and/or graphics. In an example, display device <NUM> may include a cathode ray tube ("CRT"), liquid crystal display ("LCD"), field emission display ("FED"), plasma display or any other display device suitable for displaying video and/or graphic images and alphanumeric characters recognizable to a user.

Claim 1:
A computer-implemented method for simulating an output of a downhole inertial measurement unit, IMU, as a means for verifying and validating the downhole IMU's sensors are working properly and to further improve implemented algorithms, the downhole IMU being composed of sensor packages that include accelerometers, gyroscopes, magnetometers and pressure sensors for providing information in real-time to enable Autonomous Guidance While Drilling, an Autonomous Guidance While Drilling system being a system that estimates the trajectory of a borehole in real-time and provides real-time autonomous navigation and guidance for a bottom hole assembly, the implemented algorithms being navigation algorithms for controlling the autonomous guidance while drilling system, the method comprising
generating a trajectory (<NUM>) between a plurality of survey points of a planned well data (<NUM>) as a function of time, the planned well data comprising a plurality of three-dimensional coordinates corresponding to the survey points of an underground planned well, the trajectory comprising a plurality of trajectory coordinates between consecutive ones of the survey points;
generating, by simulating, sensor data (<NUM>) for each of the trajectory coordinates as a function of time based on geodetic reference parameters (<NUM>), the generated sensor data comprising: generated accelerometer output (<NUM>); generated gyroscopic output (<NUM>); and generated magnetometer output (<NUM>);
receiving, sensor noise parameters;
adding, sensor noise to the generated three axis accelerometer output, the generated gyroscopic output, and the generated magnetometer output; and
outputting, subsequently to the step of adding sensor noise, the generated accelerometer output; the generated gyroscopic output; and the generated magnetometer output as a function of time as a simulated output of the downhole IMU.