WO2016164010A1 - Phase compensated fixed-point numerically controlled oscillator for downhole logging - Google Patents
Phase compensated fixed-point numerically controlled oscillator for downhole logging Download PDFInfo
- Publication number
- WO2016164010A1 WO2016164010A1 PCT/US2015/024912 US2015024912W WO2016164010A1 WO 2016164010 A1 WO2016164010 A1 WO 2016164010A1 US 2015024912 W US2015024912 W US 2015024912W WO 2016164010 A1 WO2016164010 A1 WO 2016164010A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- instructions
- error
- real
- value
- output signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- E—FIXED CONSTRUCTIONS
- E21—EARTH OR ROCK DRILLING; MINING
- E21B—EARTH OR ROCK DRILLING; OBTAINING OIL, GAS, WATER, SOLUBLE OR MELTABLE MATERIALS OR A SLURRY OF MINERALS FROM WELLS
- E21B47/00—Survey of boreholes or wells
- E21B47/12—Means for transmitting measuring-signals or control signals from the well to the surface, or from the surface to the well, e.g. for logging while drilling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/0321—Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
- G06F1/0328—Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers in which the phase increment is adjustable, e.g. by using an adder-accumulator
Definitions
- the present disclosure relates generally to techniques for generating a phase compensated, fixed-point, numerically controlled signal and, more specifically, to a numerically controlled oscillator (NCO).
- NCO numerically controlled oscillator
- Oilfield operations can require a great quantity of information relating to the parameters and conditions encountered downhole.
- Downhole logging tools can collect or log such information by performing 'logging while drilling' (LWD) or wireline logging.
- LWD drilling'
- wireline logging a probe or 'sonde' is lowered into the borehole after some or the entire well has been drilled.
- the sonde can hang at the end of a long cable or 'wireline' that provides mechanical support to the sonde as well as providing an electrical connection between the sonde and electrical equipment located at the surface of the well.
- LWD the drilling assembly includes sensing instruments that measure various parameters as an earth formation is being penetrated. While LWD allows more contemporaneous formation measurements, drilling operations result in environments where large or resource intensive electronic instrumentation and sensors are typically not desirable.
- a numerically controlled oscillator is a digital signal generator that creates a synchronous (e.g., clocked), discrete-time, discrete-valued representation of a waveform, where the waveform is typically sinusoidal.
- An NCO can be used in conjunction with a digital-to-analog converter (DAC) to create an analog output signal.
- DAC digital-to-analog converter
- An NCO can be used in communications and signal processing instruments.
- An NCO offers high output bandwidth, fine frequency resolution, and fast tuning speed. For many use cases and applications, such as oilfield operations, the phase drift and jitter of an NCO is desired to be extremely small, such that NCO designs are very complex.
- An NCO can generate a frequency and phase tunable output signal with a precision fixed-frequency clock.
- the output frequency of an NCO is a function of the system clock.
- phase accuracy and resource consumption In order to maintain acceptable levels of phase accuracy at high frequencies, resource and power consumption usually needs to be very high. Conversely, in order to reduce or minimize resource and power consumption, usually NCOs sacrifice phase accuracy.
- FIG. 1 is a schematic diagram of a logging while drilling (LWD) environment, according to certain illustrative examples of the present disclosure.
- FIG. 2 is a schematic diagram of a wireline logging environment, according to certain illustrative examples of the present disclosure, according to certain illustrative examples of the present disclosure.
- FIG. 3 is a block diagram of a system architecture for a fixed-point numerically controlled oscillator (NCO), according to certain illustrative examples of the present disclosure.
- NCO numerically controlled oscillator
- FIG. 4 is a flow chart illustrating a method for efficient phase compensation that guarantees phase accuracy, according to certain illustrative aspects of the present disclosure.
- FIG. 5 shows a fixed-point NCO output, according to certain illustrative examples of the present disclosure.
- FIG. 6 shows a long time NCO output, according to certain illustrative examples of the present disclosure.
- FIG. 7 shows NCO error over time, according to certain illustrative examples of the present disclosure.
- FIG. 8 shows NCO error with phase compensation, according to certain illustrative examples of the present disclosure.
- FIG. 9 is a block diagram of an embedded downhole computer system in which embodiments of the present disclosure can be implemented.
- NCO numerically controlled oscillator
- Illustrative examples and related methodologies of the present disclosure are described below as they might be employed in an NCO system that uses a fixed-point design to minimize resource usage without sacrificing accuracy.
- a compensation technique corrects or compensates for phase error and phase drift.
- An efficient fixed-point NCO is provided that maintains high precision output while also reducing power and resource consumption of the NCO.
- the techniques can be used with any downhole devices that require numerically controlled oscillations. For example, the techniques can be used with downhole logging tools.
- Methods and systems are provided for automatically generating numerically controlled signals with high precision while also minimizing computational resource usage and power consumption. According to certain embodiments, this is achieved through the separation of real-time and non-real-time parts of the system, the implementation of a fixed- point NCO algorithm, and an efficient method of phased compensation.
- An example NCO includes a phase compensator that requires very little system resources because the phase compensator simply uses a counter and a comparator.
- the NCO can allocate calculation of a compensation value into a non-real-time configuration module.
- the NCO increases precision with only a relatively small resource consumption increase.
- additional compensation counters can be implemented to further increase the precision of the NCO.
- the NCO is firmware based. In other examples, the NCO is hardware based. In one aspect of the present disclosure, the NCO is implemented as an integrated circuit having logic gates and RAM blocks such as, for example, a field- programmable gate array (FPGA). For example, the NCO may be implemented as an FPGA having registers, adders/counters, a digital comparator, and a digital-to-analog converter (DAC).
- FPGA field- programmable gate array
- DAC digital-to-analog converter
- phase drift is a difference between a true sine or cosine function that an NCO is trying to calculate and the actual signal output by the NCO.
- phase drift occurs, the signal output from the NCO device does not match the true sine or cosine function at a given point in time. That is, phase drift represents the difference between the true sine or cosine function that an NCO seeks to calculate and what the NCO can actually calculate.
- Phase drift is a numerical inaccuracy that manifests itself as a shift or error as compared to a sine or cosine function such that the signal output from the NCO is incorrect as compared to a sine or cosine function at a point in time.
- Jitter refers to sporadic inaccuracies in a calculated output of a sine or cosine function. For example, jitter can occur when a signal output sporadically jumps around at random points in time with respect to actual values of a sine or cosine function.
- an NCO system architecture includes a real-time component and a non-real-time component. With this architecture, an efficient, yet complex monitor can be included in downhole devices, such as, for example, downhole logging tools.
- the NCO system can be used for nuclear magnetic resonance (NMR) imaging.
- NMR nuclear magnetic resonance
- Illustrative examples described herein provide an efficient fixed-point NCO design with phase compensation in order to guarantee that a phase error of the NCO falls within specified system requirements.
- a fixed-point NCO implementation may be configured to reduce resource consumption, and an efficient phase compensation method is used to guarantee an acceptable level of phase accuracy.
- the NCO may be configured to guarantee acceptable levels of phase accuracy at high frequencies while keeping the resource requirements relatively low. That is, the NCO can provide high levels of phase accuracy at high frequencies without requiring large amounts of power or computational resources (e.g., memory, storage, and processing power). Examples of the architecture and logic of such an NCO implementation is described in detail with reference to FIGs. 3 and 4 below.
- the NCO is embodied as a digital device configured to generate a continuous sine or cosine function with a phase drift that falls within a predetermined threshold for error tolerance or error margin.
- the design of the NCO can be included in any electronic system, including electronic systems used in oilfield environments.
- the NCO can be used in logging while drilling (LWD) environments and measurement while drilling (MWD) environments.
- the NCO can be included in an electronic system used for intelligent completions to monitor and control wells.
- the NCO can be used as a component of various electronic systems such as intelligent completion systems used to optimize well production by collecting, transmitting, and analyzing completion, production, and reservoir data.
- FIG. 1 shows an illustrative logging while drilling (LWD) environment 100.
- a drilling platform 102 supports a derrick 104 having a traveling block 106 for raising and lowering a drill string 108.
- a kelly 110 supports the drill string 108 as it is lowered through a rotary table 1 12.
- a drill bit 114 is driven by a downhole motor or rotation of the drill string 108. As bit 114 rotates, it can create a borehole 116 that passes through various earth formations 118.
- a pump 120 circulates drilling fluid through a feed pipe 122 to kelly 110, downhole through the interior of drill string 108, through orifices in drill bit 114, back to the surface via the annulus around drill string 108, and into a retention pit 124.
- the drilling fluid transports cuttings from the borehole into the retention pit 124 and aids in maintaining the borehole integrity.
- a LWD resistivity imaging tool 126 may be integrated into the bottom-hole assembly near the bit 114. As the bit extends the borehole through the formations, logging tool 126 may collect or log measurements relating to various formation properties as well as the bit position, and various other drilling conditions.
- the logging tool 126 may take the form of a drill collar, such as a thick- walled, tubular collar that provides weight and rigidity to aid the drilling process.
- the logging tool 126 may include an NCO. Since the environment 100 can be a high temperature environment, the NCO is configured to use limited resources. For example, the NCO can be implemented as a relatively simple FPGA that limits power consumption and efficiently calculates an output signal.
- the logging tool 126 is a downhole logging tool including an NCO that is capable of operating in in high temperature environments while minimizing usage of electrical power and computational resources without reducing the level of precision of its output signal.
- a telemetry sub 128 may be included to transfer logging tool measurements to a surface receiver 130 and to receive commands from the surface receiver. At various times during the drilling process, the drill string 108 may be removed from the borehole.
- FIG. 2 shows an illustrative wireline logging environment 200.
- the wireline logging tool 234 can be implemented as a downhole logging tool including a sensing instrument sonde suspended by a cable 242 having conductors for transporting power to the wireline logging tool 234 and telemetry from the tool to the surface.
- a resistivity imaging portion of the wireline logging tool 234 may have sensing pads 236 configured to slide along the borehole wall as the logging tool 234 is pulled uphole. As depicted in FIG.
- logging facility 244 may collect measurements from the logging tool 234, and can include computing devices configured to process and store the measurements gathered using the downhole logging tool.
- the downhole logging tool can include an NCO. Since environment 200 is a space constrained environment, the NCO included in the downhole logging tool will have a relatively small size.
- the NCO can be implemented as an FPGA that fits within the space confines of logging tool 234.
- Environments 100 and 200 can be high-pressure, high temperature environments.
- the logging tool 126 in environment 100 and the wireline logging tool 234 in environment 200 may be expected to be robust against high temperatures (e.g., temperatures approaching or exceeding 185 degrees Fahrenheit) and high pressure (e.g., approximately 20,000 pounds per square inch/psi).
- high temperatures e.g., temperatures approaching or exceeding 185 degrees Fahrenheit
- high pressure e.g., approximately 20,000 pounds per square inch/psi
- logging tool 126 and wireline logging tool 234 may be subjected to corrosive fluids and severe mechanical shocks at depths of more than 3 miles.
- logging tool 126 and wireline logging tool 234 may have limitations in terms of size and power.
- logging tool 126 and wireline logging tool 234 may be configured to be efficient in terms of power consumption and to be relatively small.
- FIG. 3 illustrates an architecture of an example system 300 for a fixed-point NCO with low resource consumption.
- the system 300 consists of two modules, a configuration module 306, and a real-time module 308.
- the configuration module 306 is configured to receive command input, frequency input 302, and to calculate setup register values.
- the real-time module 308 is configured to calculate a phase value and to generate an actual signal output 336.
- One benefit of separation the NCO system 300 into modules 306 and 308 is that the real-time module 308 is isolated with respect to the non-realtime components such as the configuration module 306.
- the real-time module 308 is configured to be extremely efficient with every clock cycle (e.g., each cycle of system clock frequency 304) in order to generate a valid signal output 336.
- the non- real-time configuration module 306 does not have to perform calculations within one clock cycle of system clock frequency 304.
- system 300 can save computing resources and reduce its power consumption. Due to the reduced need for computing resources and power, system 300 can be incorporated into a downhole systems and devices. For example, system 300 can be used with the logging tools described above with reference to the downhole environments 100 and 200 depicted in FIGs. 1 and 2.
- the frequency input 302 and other inputs into the configuration module 306 are not real-time feedback or real-time parameters. Instead, these inputs represent a desired precision, a frequency a user is trying to reach, and a tolerable margin of error.
- such inputs can be provided via user interaction with a user interface and input/output (I/O) devices.
- I/O input/output
- a user can provide the configuration module 306 with input parameters including a frequency input 302, and then the configuration module 306 can convert the frequency input 302 to a clock delta phase value. This frequency to clock delta phase conversion may be performed in a non-real time manner.
- the frequency input 302 can represent the frequency that a user wants system 300 to reach.
- the configuration module 306 also performs error calculation.
- the error calculated with the configuration module 306 can represent the error margin that the system 300 can afford or tolerate.
- the configuration module 306 can calculate what a sine wave would be with a lower resolution than what is required by system 300, and then model the error that would result from that lower resolution. This calculation and error modeling is performed separately from calculations carried out using real-time module 308.
- the configuration module 306 calculates how a tolerable error margin should be reflected, and provides parameters to a compensation register 322 of the real-time module 308 so that the real-time module 308 can compensate for the error margin. After determining parameters, performing frequency-to-clock delta phase conversion, and calculating an error margin, the configuration module 306 can provide this information as a configuration to the real-time module 308.
- the configuration module 306 can feed the calculated error margin into compensation register 322 of real-time module 308 so that realtime module 308 can subtract the calculated error out of its output before producing the final signal output 336.
- the real-time module 308 can also load the converted delta phase value into delta phase register 310 and load the calculated error margin or tolerance into a compensation register 322. After receiving configuration parameters including the converted delta phase and error tolerance, the real-time module 308 can carry out the NCO function in order to generate the final, low phase drift signal output 336.
- real-time module 308 there are two main parts within the real-time module 308.
- these two parts produce a signal output 336 having a low phase drift that is within the calculated error tolerance. The components of these two parts are described in the following paragraphs.
- phase accumulator starts with a received delta phase value stored in delta phase register 310, and then calculates a phase increment delta phase using summation block 312 and block 314. Next, the phase accumulator determines a current phase at block 316, and stores a value in phase buffer 318. At block 314, the phase accumulator can increment or decrement the value stored in phase buffer 318 as needed.
- block 314 can be implemented using an adder or counter of an FPGA.
- the phase increment delta phase can be calculated using the following equation:
- Fsig stands for the desired signal
- TableLen corresponds to a sine table length
- Fclk stands for the digital system clock frequency.
- Fclk can be received by the real-time module 308 as the system clock frequency 304.
- the system clock frequency 304 can correspond to a clock speed of an actual real-time clock.
- the delta phase value can be set up to have a fixed-point format.
- the integer length of the delta phase value can be directly related to a sine table length, while the fractional length of the delta phase value can determine the phase precision. Since the precision of the fixed-point format is directly determined by the length of the fractional length, a higher fractional length will result in a higher phase precision. However, a higher fractional length can also result in higher system resource consumption.
- phase accumulator can be increased by the delta phase value using block 314.
- the result of increasing the phase accumulator may be equivalent to progressing or advancing a sine wave by the delta phase value.
- control is passed to block 320. Otherwise, the value is stored in the phase buffer 318. In block 320, the output may be converted back into an integer value for table indexing. With this approach, only a fixed-point accumulator is consumed, and the resource consumption of system 300 can be minimized.
- table indexing 330 can be performed using a sine lookup table 332. In the example of FIG. 3, the sine lookup table 332 can be stored in read only memory (ROM) of system 300. By properly designing the fractional length size of sine lookup table 332, the phase precision of system 300 can be achieved and maintained within a limited amount of time.
- the digital NCO output signal is outputted.
- the digital NCO output signal is passed to a digital-to-analog converter (DAC) 334.
- the DAC 334 converts digital NCO signal to an analog signal output 336.
- the compensation module includes real-time compensation components 324, 326, and 328 that compensate for the calculated error tolerance.
- block 328 can be implemented using an adder or counter of an FPGA.
- an increment or decrement will be carried out on the phase buffer. This increment or decrement can be performed at block 314 of the phase accumulator, which is discussed above.
- the running counter can be compared to the compensation value at block 324.
- block 324 can be implemented using a digital comparator. If the compensation value is calculated as an integer, the phase buffer will never have an accumulation larger than one least significant bit (LSB).
- LSB least significant bit
- the accumulation error due to the fixed-point precision used in system 300 is fixed in each accumulation, and the error can be calculated upon the calculation of the delta phase value.
- this error is converted into a count value with respect to the system clock frequency 304.
- the count value represents the number of clock cycles it takes for the error to increase by one fixed-point LSB.
- the LSB is represents a least significant bit of the phase accumulator.
- This compensation value is loaded into a pre- allocated compensation register 322 along with the delta phase value.
- a fixed-point compensation value is used because compensation register 322 works with integers.
- a first compensation module can introduce its own error, which can be addressed by one or more additional compensation modules.
- a second or even a higher number of compensation modules can be implemented to further increase the precision of the system 300.
- system 300 can include multiple compensation modules with respective compensation counters 326 working in parallel.
- the compensation value is not an integer, since the actual error can be a floating point number, additional error compensation may be needed to reach a lower error level.
- the compensation value represents an uncorrected error and the compensation value is a catch up value.
- FIG. 4 The method 400 depicted in FIG. 4 is described with reference to the features of FIG. 3. However, the method 400 is not limited to those features.
- the order of the blocks presented in FIG. 4 can be varied. For example, the blocks of method 400 can be re-ordered, combined, and/or broken into sub-blocks. The blocks may be performed in serial, in parallel, or in some other manner. In addition, certain blocks may be omitted in some implementations.
- block 402 includes receiving parameters. Such parameters may include, for example, frequency input (e.g., frequency input 302), a system clock speed/frequency, and a calculated error tolerance or error margin. In one example, block 402 includes calculating an error tolerance or margin. In an example, block 402 can be performed with the configuration module 306 described above with reference to FIG. 3. For example, the error tolerance or margin can be calculated with the configuration module 306.
- a frequency is converted to a clock delta phase value.
- block 404 can include calculating the delta phase value based on parameters received in block 402.
- block 404 can be performed using the configuration module 306.
- control is passed to block 406 where configuration settings are generated.
- block 406 can include generating configuration settings for a real-time module.
- the real-time module is the real-time module 308 described above with reference to FIG. 3.
- control is passed to block 408.
- an NCO signal is generated. As shown, the NCO signal is based on the configuration settings generated at block 406. In one example, block 408 is performed with components of the real-time module 308 described above with reference to FIG. 3. The NCO signal generated at block 408 is a digital signal. If an analog output signal is needed, the NCO signal can be converted with DAC 334 to produce an analog signal such as the signal output 336.
- an accumulation error is calculated, and this is converted into free running counter.
- block 410 is performed using components of a compensation module, such as compensation register 322 and compensation counter 326 described above with reference to FIG. 3.
- a determination is made as to whether the free running counter is greater than or equal to a pre-calculated or pre-determined compensation value. If it is determined that the running counter is equal to the compensation value, control is passed to block 416. Otherwise, if it is determined that the counter is still less than the compensation value, control is passed to block 414 where the counter is incremented for the current clock cycle.
- the incrementing in block 414 can be performed with adder 328 described above with reference to FIG. 3. After the counter is incremented, control is passed back to block 412.
- a phase buffer is adjusted. As shown in the example of FIG. 4, block 416 can include error compensation.
- phase buffer 318 is used to store the adjusted phase buffer calculated at block 416. After the phase buffer is adjusted, control is passed to block 418, where fixed-point to index conversion is performed. Block 418 can include converting an output signal to an integer value. After the conversion, control is passed to block 420.
- block 420 table indexing is performed.
- block 420 can include the table indexing 330 using the sine lookup table 332 described above with reference to FIG. 3.
- the digital output signal is available. If an analog output signal is needed, control can be passed to optional block 422 where digital-to-analog conversion is performed on the output signal.
- Optional block 422 can be carried out using a digital-to-analog converter (DAC), such as, for example DAC 334.
- DAC digital-to-analog converter
- control is passed to block 424, where the final output signal is output and the method 400 completes.
- the final signal output in block 424 is the signal output 336 described above with reference to FIG. 3.
- the method 400 calculates a sine wave with a lower resolution than what is actually required and then models the error that would result from that lower resolution separately, and then feeding in, based on the configuration parameters received in block 402, what the calculated error tolerance is so that the calculated error tolerance can be subtracted out of the final signal output before the method completes in block 424. In this way, the method 400 achieves efficient phase compensation that guarantees phase accuracy.
- FIG. 5 An example output 500 of a fixed-point NCO is depicted in FIG. 5.
- the output 500 can plot a DAC value 502 of a theoretical output signal 506 and a lower resolution NCO output signal 508 over a limited period of time 504.
- the theoretical output signal 506 is a direct cosine output signal
- the NCO output signal 508 is the actual NCO output.
- phase precision between a theoretical signal value 506 and an NCO output signal 508 can be maintained within the period of time 504.
- FIG. 6 depicts an example output 600 of an NCO over a long time period 604 when there is insufficient error compensation.
- an error in NCO output 608 can accumulate over time period 604.
- the output 600 shows how, although the fixed-point design using configuration module 306 and real-time module 308 can minimize resource consumption, the precision of the fixed-point format may be limited over an extended period of time. Moreover, some residual error may be accumulated with every phase accumulation operation. Over a long period of time such as time period 604, the accumulation error can show up and can result in the NCO output 608 being out of phase with respect to a theoretical output 606. As can be seen in FIG. 6, without adequate error compensation, the NCO output 608 can start to lose its phase fidelity with respect to theoretical output 606 over a long period of time 604.
- FIG. 7 shows accumulated NCO output error 700.
- FIG. 7 shows how the DAC value 702 of the NCO output error 700 can accumulate over a period of time 704.
- the NCO output error 700 can arise due to fixed-point precision used by the NCO. This error can increase over time 704 as an accumulation error. Such an accumulation error is fixed in each accumulation, and it can be calculated upon the calculation of the delta phase value.
- the efficient phase compensation method and the two module approach discussed above with reference to FIGs. 3 and 4 can be used to compensate for the phase accumulation error shown in FIG. 7. With this approach, instead of accumulating an error such as the NCO output error 700 that increases over time 704, the error can be limited while also maintaining low system resource consumption.
- FIG. 8 illustrates an NCO output error 800 (e.g., a phase error) that is limited or bounded by using a phase compensator.
- the NCO output error 800 corresponds to an NCO with a phase compensator.
- the NCO output error 800 (e.g., the phase error) is bounded by upper and lower DAC values 802, and does not accumulate or increase over time 804.
- the NCO output error 800 is purely related to a fixed-point least significant bit (LSB).
- LSB fixed-point least significant bit
- FIG. 9 illustrates an example downhole computer system 900 for implementing the techniques in accordance with the present disclosure.
- embodiments may be implemented in one or more of programmable logic 914, an embedded processor 904, and an integrated circuit such as an FPGA.
- FIGs. 1-8 Aspects of the present disclosure shown in FIGs. 1-8, or any part(s) or function(s) thereof, may be implemented using hardware, software modules, firmware, tangible computer readable media having logic or instructions stored thereon, or a combination thereof and may be implemented in one or more computer systems or other processing systems.
- FIG. 9 illustrates an example embedded downhole computer system 900 in which embodiments of the present disclosure, or portions thereof, may be implemented as computer-readable instructions or code.
- some functionality performed with the system 300 shown in FIG. 3 can be implemented in the embedded computer system 900 using hardware, software, firmware, non-transitory computer readable media having instructions stored thereon, or a combination thereof and may be implemented in one or more computer systems or other processing systems.
- Hardware, software, or any combination of such may embody certain modules and components used to implement the system 300 illustrated by FIG. 3 discussed above.
- hardware, software, or any combination of such may embody certain modules and components used to implement blocks in the flowchart illustrated by FIG. 4 discussed above.
- programmable logic may execute on a commercially available processing platform or a special purpose device.
- programmable logic can be included in logic 914 of embedded downhole computing system 900.
- One of ordinary skill in the art may appreciate that embodiments of the disclosed subject matter can be practiced with various computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, computers linked or clustered with distributed functions, as well as pervasive or miniature computers that may be embedded into virtually any device.
- Embedded processor 904 may be a single processor device, a plurality of processors, or combinations thereof.
- Processor devices may have one or more processor "cores.”
- Embedded processor 904 may be a special purpose or a general purpose processor device. As will be appreciated by persons skilled in the relevant art, embedded processor 904 may also be a single processor in a multi-core/multiprocessor system, such system operating alone, or in a cluster of computing devices operating in a cluster or server farm. Processor 904 is connected to a core power supply 912, which receives power from a system power supply 910.
- the power supply 910 can provide electrical power for electronics in the downhole computer system 900, such as signal converters 934, processor 904, input/output (I/O) devices, and other electronics.
- Non-limiting examples of the power supply 910 include batteries, capacitors, and an electrical connection to another power source located remotely.
- the power supply 910 may be omitted and power may be provided via an electric cable coupled to connector 924 or an electrical cable conveyed through the cable 242 that suspends wireline logging tool 234.
- downhole computer system 900 may include one or more sensors 920.
- sensors 920 may include a temperature sensor, a pressure sensor, a resistivity sensor, and a gamma ray detector.
- Each of the sensors 920 can be connected to respective amplifiers 922.
- the amplifiers 922 can amplify sensor readings and signals output by sensors 920.
- the amplifiers 922 can be connected to one or more signal converters 934.
- Signal converters 934 can be analog to digital converters (ADC) or digital to analog converters (DAC), depending on the type of conversion needed.
- the signal converters 934 can receive power from system power 910. Converted signals output by signal converters 934 can be sent to processor 904.
- Embedded system 900 can also include a system clock 918.
- the frequency input 302 of system 300 described above with reference to FIG. 3 can be received via interface 916 shown in FIG. 9.
- a processor of system 300 described above with reference to FIG. 3 can be embodied as the processor 904 shown in FIG. 9.
- Embedded downhole computer system 900 also includes a memory 908, for example, random access memory (RAM), a flash memory, or the like.
- a memory 908 for example, random access memory (RAM), a flash memory, or the like.
- storage used to store one or more of phase buffer 318, table index 330, and sine lookup table 332 of system 300 of FIG. 3 can be embodied as the memory 908 shown in FIG. 9.
- memory 908 may include a non-transitory computer readable storage medium having stored therein executable instructions, computer software, or data.
- memory 908 may include other similar means for allowing logic 914, computer programs or other instructions to be loaded into embedded computer system 900.
- Such means may include, for example, interface 916 and connector 924.
- Examples of such means may include a removable memory chip (such as an EPROM, or EEPROM) and associated socket, and other removable storage units and interfaces 916 that allow software and data to be transferred from the removable storage units to downhole computer system 900.
- Embedded downhole computer system 900 may also include interface 916.
- Interface 916 allows software and data to be transferred between embedded computer system 900 and external devices, tools and systems via connector 924.
- Interface 916 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, or the like.
- Software and data transferred via interface 916 and connector 924 may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by interface 916. These signals may be provided to interface 916 via a communications path that carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link or other communications channels.
- the terms 'computer readable medium' and 'non-transitory computer readable medium' are used to generally refer to media, such as memory 908, which can include memory semiconductors (e.g., DRAMs, etc.).
- Computer readable medium and non-transitory computer readable medium can also refer to logic 914. Signals carried over a communications path including interface 916 and connector 924 can also embody the logic 914.
- Computer programs may be stored in memory 908 or as part of logic 914. Computer programs may also be received via interface 916 and connector 924. Such computer programs, when executed, enable downhole computer system 900 to implement the present examples as discussed herein. In particular, the computer programs, when executed, enable embedded processor 904 to implement the processes of the present disclosure, such as the blocks in the method illustrated by the flowchart of FIG. 4, discussed above. Accordingly, such computer programs represent controllers of the embedded downhole computer system 900. Where features are implemented using software, the software may be stored in a computer program product and loaded into downhole computer system 900 using memory 908, interface 916, and connector 924.
- embedded computer system 900 can also include a core power supply 912 for supplying power to input/output (I/O) devices.
- the I/O devices can connect to interface 916 and connector 924 to receive input, such as, for example, user input specifying an error tolerance and other parameters and configuration settings.
- Example 1 is a system that includes a processor, a downhole device including a configuration module and a real-time module, and a memory having instructions stored thereon, that, if executed by the processor, cause the processor to perform operations.
- the operations include receiving parameters including an input frequency and a compensation value.
- the operations further include converting, with the configuration module, based on the parameters, the input frequency to a delta phase value.
- the operations also include calculating, with the real-time module, an accumulation error for a digital signal. Responsive to determining that the accumulation error is greater than or equal to the compensation value, the operations include removing the accumulation error from the digital signal to generate an output signal.
- Example 2 is the system of Example 1, where the operations further include, prior to receiving the parameters, calculating, with the configuration module, the compensation value, wherein the compensation value corresponds to an error tolerance.
- Example 3 is the system of Examples 1 or 2, where receiving parameters includes: receiving a system clock frequency; and calculating, with the configuration module, based on the parameters, configuration settings for the real-time module and an error tolerance for the output signal.
- Example 4 is the system of Examples 1-3 where calculating the accumulation error includes converting, with the real-time module, the accumulation error into a running counter, and where the operations further include, responsive to determining that the accumulation error is less than the compensation value, incrementing, with the real-time module, the running counter.
- Example 5 is the system of Examples 1-4 where receiving parameters is performed with the configuration module, and where the determining and the removing are performed with the real-time module.
- Example 6 is the system of Examples 1-5 further including a digital-to-analog converter (DAC), where the operations further include converting, with the DAC, the output signal to generate an analog output signal.
- DAC digital-to-analog converter
- Example 7 is a method that includes receiving, at a downhole device, parameters including an input frequency and a compensation value. The method converts, based on the parameters, the input frequency to a delta phase value. The method further includes calculating, with the downhole device, an accumulation error for a digital signal. In response to determining that the accumulation error is greater than or equal to the compensation value, the method removes the accumulation error from the digital signal to generate an output signal.
- Example 8 is the method of Example 7, where the compensation value is a predetermined value corresponding to a calculated error tolerance for the output signal.
- Example 9 is the method of Examples 7 or 8 where the method further includes, prior to receiving parameters, calculating, with a configuration module of the downhole device, the compensation value, wherein the compensation value corresponds to an error tolerance.
- Example 10 is the method of Examples 7-9 where receiving parameters includes: receiving a system clock frequency; and calculating, with a configuration module, based on the parameters, configuration settings for a real-time module of the downhole device and an error tolerance for the output signal.
- Example 11 is the method of Examples 7-10 where calculating the accumulation error includes converting, with a real-time module of the downhole device, the accumulation error into a running counter, and where the method further includes, responsive to determining that the accumulation error is less than the compensation value, incrementing, with the real-time module, the running counter.
- Example 12 is the method of Examples 7-11 where receiving parameters and converting the input frequency are performed with a configuration module, and where the calculating, the determining, and the removing are performed with a real-time module.
- Example 13 is the method of Examples 7-12 where generating the output signal includes: converting the delta phase value to an integer value; searching for the integer value in a sine lookup table to determine a sine value for the digital signal; converting the digital signal to an analog signal using a digital-to-analog converter (DAC); and providing the analog signal as the output signal.
- DAC digital-to-analog converter
- Example 14 is the method of Examples 7-13 where the calculating and the removing are performed with a phase compensator including a compensation register and a compensation counter.
- Example 15 is a computer readable storage medium that has executable instructions stored thereon. If the instructions are executed by a downhole device, the instructions cause the downhole device to perform operations.
- the instructions include: instructions for receiving parameters including an input frequency and a compensation value; and instructions for converting, based on the parameters, the input frequency to a delta phase value.
- the instructions further include instructions for calculating an accumulation error for a digital signal. In response to determining that the accumulation error is greater than or equal to the compensation value, the instructions also include instructions for removing the accumulation error from the digital signal to generate an output signal.
- Example 16 is the storage medium of Example 15, where the compensation value is a pre-determined value corresponding to a calculated error tolerance for the output signal.
- Example 17 is the storage medium of Examples 15 or 16, where the instructions for receiving parameters include: instructions for receiving a system clock frequency; and instructions for calculating, with a configuration module, based on the parameters, configuration settings for a real-time module and an error tolerance for the output signal.
- Example 18 is the storage medium of Examples 15-17 where the instructions for calculating include instructions for converting, with a real-time module, the accumulation error into a running counter.
- Example 19 is the storage medium of Examples 15-18 where the instructions further include instructions for incrementing, with the real-time module, the running counter, in response to determining that the accumulation error is less than the compensation value.
- Example 20 is the storage medium of Examples 15-19 where the instructions for generating the output signal include: instructions for converting the delta phase value to an integer value; instructions for searching for the integer value in a sine lookup table to determine a sine value for the digital signal; instructions for converting the digital signal to an analog signal using a digital-to-analog converter (DAC); and instructions for providing the analog signal as the output signal.
- the instructions for generating the output signal include: instructions for converting the delta phase value to an integer value; instructions for searching for the integer value in a sine lookup table to determine a sine value for the digital signal; instructions for converting the digital signal to an analog signal using a digital-to-analog converter (DAC); and instructions for providing the analog signal as the output signal.
- DAC digital-to-analog converter
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mining & Mineral Resources (AREA)
- Geology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Fluid Mechanics (AREA)
- Geophysics (AREA)
- Remote Sensing (AREA)
- General Life Sciences & Earth Sciences (AREA)
- Geochemistry & Mineralogy (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
- Geophysics And Detection Of Objects (AREA)
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
Abstract
Description
Claims
Priority Applications (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/554,142 US10156135B2 (en) | 2015-04-08 | 2015-04-08 | Phase compensated fixed-point numerically controlled oscillator for downhole logging |
| GB1713606.0A GB2551292A (en) | 2015-04-08 | 2015-04-08 | Phase compensated fixed-point numerically controlled oscillator for downhole logging |
| MX2017012147A MX2017012147A (en) | 2015-04-08 | 2015-04-08 | Phase compensated fixed-point numerically controlled oscillator for downhole logging. |
| DE112015006126.6T DE112015006126T5 (en) | 2015-04-08 | 2015-04-08 | Phase-compensated, numerically controlled fixed-point oscillator for borehole surveying |
| PCT/US2015/024912 WO2016164010A1 (en) | 2015-04-08 | 2015-04-08 | Phase compensated fixed-point numerically controlled oscillator for downhole logging |
| BR112017019570A BR112017019570A2 (en) | 2015-04-08 | 2015-04-08 | system and method |
| FR1651932A FR3034891A1 (en) | 2015-04-08 | 2016-03-08 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2015/024912 WO2016164010A1 (en) | 2015-04-08 | 2015-04-08 | Phase compensated fixed-point numerically controlled oscillator for downhole logging |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2016164010A1 true WO2016164010A1 (en) | 2016-10-13 |
Family
ID=57018971
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2015/024912 Ceased WO2016164010A1 (en) | 2015-04-08 | 2015-04-08 | Phase compensated fixed-point numerically controlled oscillator for downhole logging |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US10156135B2 (en) |
| BR (1) | BR112017019570A2 (en) |
| DE (1) | DE112015006126T5 (en) |
| FR (1) | FR3034891A1 (en) |
| GB (1) | GB2551292A (en) |
| MX (1) | MX2017012147A (en) |
| WO (1) | WO2016164010A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12028083B2 (en) * | 2022-12-01 | 2024-07-02 | Analog Devices International Unlimited Company | Phase consistent numerically controlled oscillator |
| CN119882484B (en) * | 2025-01-07 | 2025-11-14 | 广东工业大学 | A simulation interface control method and system |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5574374A (en) * | 1991-04-29 | 1996-11-12 | Baker Hughes Incorporated | Method and apparatus for interrogating a borehole and surrounding formation utilizing digitally controlled oscillators |
| US20030063700A1 (en) * | 2001-10-02 | 2003-04-03 | Ching-Kae Tzou | Phase discriminator with a phase compensation circuit |
| US20080069284A1 (en) * | 2006-09-18 | 2008-03-20 | Kuhns Mark D | Numerically controlled oscillator (NCO) output clock phase smoothing |
| US20080205494A1 (en) * | 2007-02-27 | 2008-08-28 | Whitehead Michael L | Unbiased code phase discriminator |
| US20120093244A1 (en) * | 2006-11-20 | 2012-04-19 | Broadcom Corporation | Apparatus and methods for compensating for signal imbalance in a receiver |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4241308A (en) | 1978-12-29 | 1980-12-23 | Alfred Cellier | Digital numerically controlled oscillator |
| US4636734A (en) | 1983-07-05 | 1987-01-13 | Motorola, Inc. | Low spurious numerically controlled oscillator apparatus and method |
| US5329260A (en) | 1992-07-17 | 1994-07-12 | Ii Morrow Inc. | Numerically-controlled modulated oscillator and modulation method |
| GB9511551D0 (en) | 1995-06-07 | 1995-08-02 | Discovision Ass | Signal processing system |
| US5673212A (en) | 1995-09-01 | 1997-09-30 | Motorola, Inc. | Method and apparatus for numerically controlled oscillator with partitioned phase accumulator |
| US6693553B1 (en) * | 1997-06-02 | 2004-02-17 | Schlumberger Technology Corporation | Reservoir management system and method |
| US6424185B1 (en) | 1998-05-22 | 2002-07-23 | National Semiconductor Corporation | NCO based frequency synthesizer with jitter modulation |
| BR0106104B1 (en) * | 2000-05-08 | 2013-08-06 | Method for noise reduction in a measured telemetry signal | |
| US6429693B1 (en) | 2000-06-30 | 2002-08-06 | Texas Instruments Incorporated | Digital fractional phase detector |
| US6703837B1 (en) * | 2000-09-15 | 2004-03-09 | Precision Drilling Technology Services Group, Inc. | Wellbore resistivity tool with simultaneous multiple frequencies |
| US6954114B2 (en) | 2002-04-26 | 2005-10-11 | Broadcom Corporation | NCO with rational frequency and normalized phase |
| US7570725B1 (en) | 2006-03-07 | 2009-08-04 | Marvell International Ltd. | Numerically controlled oscillator |
| US7907028B1 (en) | 2008-02-19 | 2011-03-15 | Marvell International, Ltd. | Jitter compensated numerically controlled oscillator |
| US7557619B1 (en) | 2008-03-10 | 2009-07-07 | Xilinx, Inc. | Digital frequency synthesis |
| US9276591B2 (en) | 2008-12-19 | 2016-03-01 | Alcatel Lucent | Frequency synchronization with compensation of phase error accumulation responsive to a detected discontinuity |
| US8275087B2 (en) | 2008-12-19 | 2012-09-25 | Alcatel Lucent | Frequency synchronization using first and second frequency error estimators |
| CN101854172B (en) | 2009-04-01 | 2013-01-09 | 北京理工大学 | Numerical control oscillator parallel design method based on two-dimensional sine table |
| JP5251759B2 (en) | 2009-07-01 | 2013-07-31 | ソニー株式会社 | PLL circuit |
| US8704604B2 (en) | 2009-12-23 | 2014-04-22 | Sand 9, Inc. | Oscillators having arbitrary frequencies and related systems and methods |
| US8850259B2 (en) | 2011-01-07 | 2014-09-30 | Anue Systems, Inc. | Systems and methods for precise generation of phase variation in digital signals |
| US8976907B2 (en) | 2013-01-17 | 2015-03-10 | Harris Corporation | Bit synchronizer for detecting symbol timing error for high order modulation using a trajectory mid-point rotation and related methods |
-
2015
- 2015-04-08 US US15/554,142 patent/US10156135B2/en active Active
- 2015-04-08 DE DE112015006126.6T patent/DE112015006126T5/en not_active Withdrawn
- 2015-04-08 BR BR112017019570A patent/BR112017019570A2/en not_active Application Discontinuation
- 2015-04-08 MX MX2017012147A patent/MX2017012147A/en unknown
- 2015-04-08 GB GB1713606.0A patent/GB2551292A/en not_active Withdrawn
- 2015-04-08 WO PCT/US2015/024912 patent/WO2016164010A1/en not_active Ceased
-
2016
- 2016-03-08 FR FR1651932A patent/FR3034891A1/fr active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5574374A (en) * | 1991-04-29 | 1996-11-12 | Baker Hughes Incorporated | Method and apparatus for interrogating a borehole and surrounding formation utilizing digitally controlled oscillators |
| US20030063700A1 (en) * | 2001-10-02 | 2003-04-03 | Ching-Kae Tzou | Phase discriminator with a phase compensation circuit |
| US20080069284A1 (en) * | 2006-09-18 | 2008-03-20 | Kuhns Mark D | Numerically controlled oscillator (NCO) output clock phase smoothing |
| US20120093244A1 (en) * | 2006-11-20 | 2012-04-19 | Broadcom Corporation | Apparatus and methods for compensating for signal imbalance in a receiver |
| US20080205494A1 (en) * | 2007-02-27 | 2008-08-28 | Whitehead Michael L | Unbiased code phase discriminator |
Also Published As
| Publication number | Publication date |
|---|---|
| BR112017019570A2 (en) | 2018-05-02 |
| US20180066512A1 (en) | 2018-03-08 |
| GB2551292A (en) | 2017-12-13 |
| FR3034891A1 (en) | 2016-10-14 |
| US10156135B2 (en) | 2018-12-18 |
| GB201713606D0 (en) | 2017-10-11 |
| MX2017012147A (en) | 2018-02-09 |
| DE112015006126T5 (en) | 2017-11-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| AU2011366231B2 (en) | Methods and systems for estimating formation resistivity and porosity | |
| US11230922B2 (en) | Fracture interpretation with resistivity and sonic logs in biaxial anisotropic formations | |
| AU2012382415B2 (en) | Parallel network simulation apparatus, methods, and systems | |
| US10975688B2 (en) | Methods and systems with downhole synchronization based on a direct digital synthesizer (DDS) | |
| CA3064194C (en) | Methods and systems with estimated synchronization between modular downhole logging system modules | |
| NO20140117A1 (en) | System and method for correction of measurement data by jerky drilling of well holes | |
| WO2014142796A1 (en) | Downhole ranging from multiple boreholes | |
| GB2484236A (en) | Method and apparatus for galvanic multi-frequency formation resistivity imaging | |
| CA2882259A1 (en) | Measurement transformation apparatus, methods, and systems | |
| US10067258B2 (en) | Downhole measurement and survey tools with conformable sensors | |
| BR112014005084B1 (en) | METHOD AND DEVICE TO REDUCE INTERFERENCE IN A SIGNAL RECEIVED FROM BOTTOM TELEMETRY | |
| US10156135B2 (en) | Phase compensated fixed-point numerically controlled oscillator for downhole logging | |
| WO2016057143A1 (en) | Wireless passive pressure sensor for downhole annulus monitoring | |
| US10302803B2 (en) | Measurement correction apparatus, methods, and systems | |
| WO2019164476A1 (en) | Downhole wire integrity and propagation delay determination by signal reflection | |
| EP2875331A1 (en) | Sensor characterization apparatus, methods, and systems | |
| WO2017048258A1 (en) | Real-time determination of formation water-filled porosity using dielectric measurement data | |
| US10280739B2 (en) | Downhole clock calibration apparatus, systems, and methods | |
| Zhao et al. | Data processing techniques for a wireless data transmission application via mud | |
| CA3082784C (en) | Electromagnetic waves resistivity computation using accelerated segmented lookup table | |
| EP2741151A1 (en) | Silicon-based oscillator for a downhole toolsystem made therewith | |
| US20210096274A1 (en) | Temperature compensated sensor gain calibration | |
| Baumgartner | What is Wrong with my Drilling Data? Current State and Developments of Downhole Dynamics Measurement Tools | |
| Ming-hui et al. | Feasibility of compressed sensing in signal management of drilling | |
| US20100169052A1 (en) | Apparatus And Method For High Resolution Measurements For Downhole Tools |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15888662 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 201713606 Country of ref document: GB Kind code of ref document: A Free format text: PCT FILING DATE = 20150408 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 15554142 Country of ref document: US |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 112015006126 Country of ref document: DE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: MX/A/2017/012147 Country of ref document: MX |
|
| REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112017019570 Country of ref document: BR |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 15888662 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 112017019570 Country of ref document: BR Kind code of ref document: A2 Effective date: 20170913 |
|
| ENPC | Correction to former announcement of entry into national phase, pct application did not enter into the national phase |
Ref country code: GB |