Positive mud pulse encoding method, decoding method, device and system
By introducing wide and narrow pulses into mud pulse coding and rationally splitting binary data to construct data frames and sub-data frames, the problems of low signal transmission efficiency and high power consumption in the existing technology are solved, achieving more efficient data transmission and lower energy consumption.
Patent Information
- Application Number
- PCT/CN2024/115457
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-12
- Filing Date
- 2024-08-29
- Publication Date
- 2025-10-16
AI Technical Summary
The existing mud pulse encoding method fails to effectively utilize the various characteristics of the pulse, resulting in low signal transmission efficiency, high equipment power consumption, and frequent pulse aliasing, which affects the data transmission quality.
Different pulse types (wide pulses and narrow pulses) are used, binary data is split reasonably, data frames and sub-data frames are constructed, pulses are separated by empty slots, and encoding rules are optimized to avoid aliasing, thereby improving transmission rate and reducing power consumption.
The transmission rate of the mud positive pulse signal is improved, pulse aliasing is avoided, the power consumption of the mud pulse generator is reduced, and the data transmission efficiency is improved.
Smart Images

Figure CN2024115457_16102025_PF_FP_ABST
Abstract
Description
Mud positive pulse encoding method, decoding method, device and system TECHNICAL FIELD
[0001] The present application relates to the field of oil and gas exploration, and particularly relates to a mud positive pulse encoding method, a decoding method, a device and a system. BACKGROUND
[0002] In the process of oil drilling, real-time measurement-while-drilling information such as well trajectory parameters, formation and bottom hole environment needs to be obtained, and these information is mainly transmitted to the ground through MWD (measurement-while-drilling) instruments. Mud pulse transmission is a commonly used data transmission method in the process of oil drilling at present, and its principle is that the downhole instrument changes the mud pressure in the drill string through a pulse generator to form a pressure wave and transmit the measurement value to the ground in the form of a pulse. With the development of well logging technology, the amount of data to be uploaded downhole is increasing, and the transmission rate has gradually become a short board of the mud pulse transmission system.
[0003] Common mud pulse data encoding methods include optimized combination (AC) encoding, pulse position modulation (PPM) encoding and M-ary encoding. Referring to FIG. 1, the basic principle is to divide a time period T into N time slots, as shown in the figure, and each small square represents a time slot. M pulses are arranged in the N time slots, for example, the shaded part in the time slot corresponds to a pulse. According to the position combination of the pulses in this time period, a certain number of data is represented. However, the encoding methods in these prior arts all represent different binary values by changing the pulse position, without considering other characteristics of the pulse, resulting in waste of transmission bandwidth, and further causing low signal transmission efficiency and high equipment power consumption.
[0004] Chinese patent publication CN110661580A discloses a mud pulse data encoding method and transmission method. The encoding method includes determining the number of pressure pulse combinations and the number of binary bits according to the range of the data to be transmitted and the required accuracy; performing base conversion (for example, converting to decimal) on the binary, and segmenting the converted base by digit (for example, the hundreds, tens and units of the decimal number), each segment including a different number of time slots; using pressure pulse combinations of different amplitudes to represent the value of each digit, and arranging and combining the pulse amplitude, pulse number and pulse position to encode, and establishing an encoding protocol or encoding rule according to the value corresponding to the different amplitudes and the time slot position, to complete mud pulse data encoding.
[0005] The above method can accelerate the data transmission rate to a certain extent. However, in the technical solution, in order to accelerate the data transmission rate, the pulses are not separated by a slot. Therefore, the two pulses may be connected or very close to each other, causing pulse aliasing, so that the data receiving party cannot distinguish different pulses, resulting in errors. Moreover, the way of segmenting time according to digits (for example, hundreds, tens and units of a decimal number) in the method is not reasonable, resulting in low data transmission efficiency and inability to further accelerate the data transmission rate. In addition, the amplitude of the pulse collected on the ground in the actual drilling process is affected by many factors such as the working state of the pulser, the working state of the mud pump, the performance of the mud, the wellbore structure, etc. Even if the pulse generator can accurately generate different pulse signals with a specified amplitude relationship, the amplitude relationship may change greatly after transmission through a mud channel of several kilometers.
[0006] SUMMARY
[0007] The present application provides a mud positive pulse encoding method, decoding method, device and system, which can further improve the transmission rate of the positive pulse signal by introducing different pulse types and reasonably splitting the data, while avoiding pulse aliasing and reducing the power consumption of the mud pulse generator. The technical solution is as follows:
[0008] The first aspect of the present application provides a mud positive pulse encoding method, comprising:
[0009] determining the number of bits S of the binary data to be encoded, the binary data representing a specific type of measurement value;
[0010] in response to the number of bits S being greater than a threshold T, splitting the binary data into at least two sub-binary data based on a splitting rule, wherein the splitting rule at least includes the number of sub-binary data split and the number of bits of each sub-binary data, the number of sub-binary data being the maximum integer less than (S / T+1), and the number of bits of each sub-binary data being less than or equal to the threshold;
[0011] constructing a corresponding sub-data frame for each sub-binary data based on the number of bits and the value of the sub-binary data, wherein the sub-data frame occupies a certain number of time slots and includes at least one pulse located at different time slot positions, the number of time slots being determined based on a mapping relationship between the number of bits of the sub-binary data and the number of time slots, the type of the pulse at least including a wide pulse and a narrow pulse, the wide pulse occupying more time slots than the narrow pulse, and the type and position of the pulse being determined based on the number of bits and the value of the sub-binary data; and
[0012] generating a mud positive pulse signal based on each of the sub-data frames.
[0013] In a further embodiment, splitting the binary data into at least two sub-binary data based on the splitting rule comprises: selecting a number of bits for each sub-binary data based on the mapping relationship between the number of bits of the sub-binary data and the number of time slots, such that a sum of the number of time slots occupied by the sub-data frames for each sub-binary data is minimized.
[0014] The method according to the first method of the present application further comprises:
[0015] In response to the number of bits of the binary data being less than or equal to the threshold value, constructing a corresponding data frame based on the number of bits and the value of the binary data for representing the binary data, wherein the data frame occupies a number of time slots and comprises at least one pulse located at different time slot positions, the number of time slots being determined based on a mapping relationship between the number of bits of the binary data and the number of time slots, the type of the pulse comprising at least a wide pulse and a narrow pulse, the wide pulse occupying more time slots than the narrow pulse, the type and position of the pulse being determined based on the number of bits and the value of the binary data.
[0016] In a further embodiment, the sub-data frame and the data frame further comprise an empty slot, the empty slot occupying a second number of time slots and being located between adjacent pulses and at a head or tail of the data frame or sub-data frame, for separating adjacent pulses and adjacent data frames or sub-data frames, wherein the second number of time slots occupied by the empty slot is greater than or equal to a maximum width of the pulse.
[0017] In a further embodiment, the mapping relationship between the number of bits of the sub-binary data and the number of time slots, the mapping relationship between the number of bits of the binary data and the number of time slots, the relationship between the type and position of the pulse and the number of bits and the value of the sub-binary data, and / or the relationship between the type and position of the pulse and the number of bits and the value of the binary data are stored in a memory in the form of a lookup table as an encoding rule.
[0018] In a further embodiment, a plurality of data frames and / or sub-data frames are provided with a synchronization header frame in front, the synchronization header frame being used to indicate a type of a measured value represented by the binary data represented by the data frames and / or sub-data frames following the synchronization header frame, wherein the type of the measured value corresponds to the number of bits of the binary data.
[0019] The second aspect of the present application provides a mud positive pulse decoding method, comprising:
[0020] determining a number of bits S of the received binary data, the binary data representing a measured value of a specific type;
[0021] in response to the bit number S being greater than the threshold T, determining that the binary data is split, the binary data being transmitted by at least two sub-data frames, the sub-data frames occupying a number of time slots and including at least one pulse located at different time slot positions;
[0022] determining a bit number of each sub-binary data represented by each sub-data frame based on a split rule, wherein the split rule comprises at least a number of sub-binary data split and a bit number of each sub-binary data, the number of sub-binary data being a maximum integer less than (S / T+1), and the bit number of each sub-binary data being less than or equal to the threshold;
[0023] determining a number of time slots occupied by each sub-data frame, and a start position and an end position of the sub-data frame based on a mapping relationship between the bit number of the sub-binary data and the number of time slots occupied by the sub-data frame;
[0024] determining a number of pulses, pulse positions and pulse types in each sub-data frame, wherein the pulse types comprise at least a wide pulse and a narrow pulse, and the wide pulse occupies more time slots than the narrow pulse;
[0025] determining a sub-binary value corresponding to each sub-data frame based on a coding rule and based on the length of the sub-data frame, the number of pulses, the pulse positions and the pulse types; and
[0026] combining the sub-binary values to obtain a binary value corresponding to the measurement value.
[0027] The method according to the second aspect of the present application, wherein determining a bit number of each sub-binary data represented by each sub-data frame based on a split rule comprises:
[0028] determining a bit number of each sub-binary data based on the mapping relationship between the bit number of the sub-binary data and the number of time slots occupied by the sub-data frame, wherein the bit number of each sub-binary data is selected to be a minimum sum of the number of time slots occupied by the sub-data frame for each sub-binary data.
[0029] The method according to the second aspect of the present application further comprises:
[0030] in response to the bit number of the binary data being less than or equal to the threshold, determining that the binary data is transmitted by one data frame, wherein the data frame occupies a number of time slots and includes at least one pulse located at different time slot positions;
[0031] determining a number of time slots occupied by the data frame, and a start position and an end position of the data frame based on a mapping relationship between the bit number of the binary data and the number of time slots occupied by the data frame;
[0032] determining the number of pulses, the pulse positions, and the pulse types in the data frame, the pulse types including at least wide pulses and narrow pulses, the wide pulses occupying more time slots than the narrow pulses; and
[0033] determining the binary value corresponding to the sub-data frame based on the data frame length, the number of pulses, the pulse positions, and the pulse types according to the encoding rule.
[0034] According to the method of the second aspect of the present application, wherein determining the number of bits of the received binary data comprises:
[0035] identifying a synchronization header frame, the synchronization header frame being used to indicate the type of measurement value represented by the binary data represented by the data frame and / or the sub-data frame following the synchronization header frame, wherein the type of measurement value corresponds to the number of bits of the binary data; and
[0036] determining the number of bits of the received binary data based on the type of measurement value.
[0037] According to the method of the second aspect of the present application, wherein the mapping relationship between the number of bits of the sub-binary data and the number of time slots occupied by the sub-data frame, the mapping relationship between the number of bits of the binary data and the number of time slots occupied by the data frame, and / or the encoding rule are stored in the memory in the form of a lookup table.
[0038] According to the method of the second aspect of the present application, wherein the sub-data frame and the data frame further comprise empty slots, the empty slots occupying a second number of time slots and being located between adjacent pulses and at the head or tail of the data frame or sub-data frame, for separating adjacent pulses and adjacent data frames or sub-data frames, wherein the second number of time slots occupied by the empty slots is greater than or equal to the maximum width of the pulses.
[0039] According to the method of the second aspect of the present application, further comprising:
[0040] preprocessing the received binary data to remove low-frequency baseline signals, pump surge harmonic signals, and high-frequency noise in the mud pulse pressure wave signal; and
[0041] shaping the mud pulse pressure wave signal.
[0042] The third aspect of the present application provides a mud positive pulse encoding device, comprising:
[0043] a controller comprising a processor, configured to execute the mud positive pulse encoding method according to the first aspect of the present application and generate a positive pulse control signal based on the sub-data frame or data frame; and
[0044] a mud pulse generator coupled to the controller and configured to generate a mud pulse pressure wave signal based on the positive pulse control signal.
[0045] A fourth aspect of the present application provides a mud positive pulse decoding device, comprising:
[0046] a pressure sensor configured to sense the mud pulse pressure wave signal and generate corresponding sensor data; and
[0047] a computer device coupled to the pressure sensor, the computer device comprising a processor configured to perform the mud positive pulse decoding method according to the first aspect of the present application.
[0048] A fifth aspect of the present application provides a mud positive pulse encoding and decoding system, comprising:
[0049] the mud positive pulse encoding device according to the third aspect of the present application; and
[0050] the mud positive pulse decoding device according to the fourth aspect of the present application.
[0051] A sixth aspect of the present application provides a control system, comprising:
[0052] a processor, and
[0053] a computer readable storage medium comprising a computer program stored thereon, the computer program comprising executable instructions which, when executed by the processor, implement the method according to any one of the first aspect and the second aspect of the present application.
[0054] A seventh aspect of the present application provides a machine readable storage medium comprising a computer program stored thereon, the computer program comprising executable instructions which, when executed by a processor, implement the method according to any one of the first aspect and the second aspect of the present application.
[0055] An eighth aspect of the present application provides a computer program product comprising executable instructions which, when executed by a processor, implement the method according to any one of the first aspect and the second aspect of the present application.
[0056] The technical solutions provided by the present application have at least the following beneficial effects:
[0057] The mud positive pulse encoding and decoding method provided by the present application can represent different binary values by combining multiple pulse characteristics such as pulse number, pulse position and pulse width, and can further improve the transmission rate of the positive pulse signal while avoiding pulse aliasing and reducing the power consumption of the mud pulse generator. BRIEF DESCRIPTION OF DRAWINGS
[0058] The accompanying drawings illustrate various examples of aspects of the present disclosure and together with the description, function to explain the principles of the present disclosure. Those skilled in the art will realize that the specific embodiments shown in the drawings are merely exemplary and are not intended to limit the scope of the present disclosure. It should be recognized what is shown in the drawings in one example can also be implemented in another example as a plurality of elements or a plurality of elements can also be combined into one element. In some examples, an element shown as an internal component of another element can also be implemented as an external component of the other element or vice versa. In the drawings:
[0059] FIG. 1 is an example of a pulse encoding method in the prior art.
[0060] FIG. 2 is a schematic diagram of a mud positive pulse encoding system according to an example embodiment of the present application.
[0061] FIG. 3 is a schematic flow chart of a mud positive pulse encoding method according to an example embodiment of the present application.
[0062] FIG. 4 is a schematic flow chart of an improved mud positive pulse encoding method according to an example embodiment of the present application.
[0063] FIG. 5 is an example of an encoded data frame according to an example embodiment of the present application.
[0064] FIG. 6 is a schematic flow chart of a mud positive pulse decoding method according to an example embodiment of the present application.
[0065] FIG. 7 is a structure diagram of a control system according to an example embodiment of the present application. DETAILED DESCRIPTION
[0066] As used in the following, the terms "have", "comprise" or "include" or any arbitrary grammatical variations thereof are used in a non-exclusive way. Thus, these terms mean that the entity in question can comprise, or consist of, the features introduced in addition to the features recited in the respective sentence in which these terms appear. In particular, the terms also mean that the entity in question can comprise, or consist of, additional features beyond those features recited in the respective sentence in which these terms appear. In other words, the terms also mean that an entity can comprise at least the features recited in the respective sentence in question, and it can comprise further features.
[0067] Furthermore, it should be noted that the terms "at least one", "one or more" or similar expressions indicating that a feature or element can be present once or more than once will typically be used only once when introducing the respective feature or element. In the following, in most cases, when referring to the respective feature or element, the expressions "at least one" or "one or more" will not be repeated, although the fact that the respective feature or element can be present once or more than once is true.
[0068] Furthermore, as used in the following, the terms "preferably", "more preferably", "particularly", "more particularly", "specifically", "more specifically" or similar terms are used in conjunction with optional features, not limitations. Thus, features introduced by these terms are optional features and are not intended to limit the scope of the claims in any way. As the skilled person will appreciate, the present disclosure can be carried out by using alternative features. Similarly, features introduced by "in an embodiment of the present disclosure" or similar expressions are intended to be optional features, are not in any way limiting for alternative embodiments of the present disclosure, are not in any way limiting for the scope of the present disclosure, and are also not in any way limiting regarding the possibility of combining the features introduced in this way with other optional or non-optional features of the present disclosure.
[0069] It will also be understood that, although the terms "first", "second" etc. can be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another.
[0070] The specific embodiments of the present disclosure will be described in detail below with reference to the drawings. It should be understood that the specific embodiments described herein are merely illustrative and are not intended to restrict the present disclosure. Moreover, for the sake of brevity, only the parts of the present disclosure that are directly related to the embodiments of the present disclosure will be described below in detail.
[0071] Reference is now made to Fig. 2, which shows a schematic diagram of a mud positive pulse coding system according to an embodiment of the present application. The system comprises a pulse encoding device and a pulse decoding device.
[0072] As shown, the pulse encoding device is located in the borehole and comprises a measurement device 10, a controller 20 and a mud pulse generator 30. The measurement device 10 performs various parameter measurements during the drilling process and provides the obtained measurement values to the controller 20. The controller is configured to implement a mud positive pulse coding method, to generate data frames representing the measurement values, and to control the mud pulse generator 30 based on the generated data frames. The mud pulse generator 30 is configured to generate positive pulse coded control signals based on the data frames to allow or block the passage of mud, thereby generating a mud pulse pressure wave signal.
[0073] The pulse decoding device is located on the ground, including a pressure sensor 40, a ground interface box 50 and a computer device 60. The pressure sensor 40 is used to sense the mud pulse pressure wave signal, and generate corresponding sensor data; the ground interface box 50 is used to collect and process the sensor data, and transmit the sensor data to the computer device 60. The computer device 60 receives the sensor data and performs a mud positive pulse decoding method to obtain the measurement value represented by the sensor data.
[0074] Next, referring to Fig. 3, a schematic flow chart of a mud positive pulse encoding method implemented in the pulse encoding device according to an example embodiment of the present application is shown.
[0075] After the method starts, it proceeds to step 301, receives the measurement value from the measurement device (for example, the measurement device 10, see Fig. 2) and converts the measurement value into a binary number.
[0076] The measurement device in the pulse encoding device collects data during the drilling process to obtain the measurement value. The collected measurement value is sometimes analog data or sometimes represented in decimal or hexadecimal form, so it needs to be converted to a binary number corresponding to the measurement value before pulse encoding. The measurement value is converted to a binary number of different bit length according to the type of the measurement value. Different types of measurement values include, for example, inclination data, azimuth data, total weight data, total magnetic data, etc. For example, azimuth data can be converted to 4-bit binary data, and inclination data can be converted to 9-bit binary data, etc. During actual encoding, for example, if the azimuth data is converted to a binary number with 4 bits, then the measurement value 0 corresponds to the binary number 0000, and the measurement value 15 corresponds to the binary number 1111. It should be noted that the bit length of the binary number used for the above-mentioned azimuth data or inclination data type is only an example, and a skilled person can use other different binary bit lengths according to actual needs, such as the accuracy of the collected data or the accuracy of the conversion device.
[0077] Next, go to step 302, build a data frame for transmitting the binary number. The data frame occupies a plurality of time slots and is composed of different types of pulses located at different positions of the time slots. An example of the data frame can be seen in Figure 5, which shows an exemplary embodiment of a data frame according to an embodiment of the present application for a 4-bit binary number. Each small square in the figure represents a time slot. The number of time slots occupied by the data frame multiplied by the length of the time slot is the length of the data frame, or alternatively, the number of time slots occupied by the data frame can also be referred to as the length of the data frame. As shown in Figure 5, the data frame includes 2 pulses (see the 2 shaded parts, which correspond to the corresponding mud positive pulses, see the pulses drawn in the upper part of Figure 5), each pulse lasts for a certain number of time slots. As shown, the number of time slots occupied by the two pulses in Figure 5 can be different (see the data frames for binary numbers "1010", "1011", etc.), and the number of time slots occupied by each pulse can be considered as the pulse width. According to the pulse width, the pulse type can be divided into wide pulses occupying more time slots and narrow pulses occupying fewer time slots, for example, in Figure 5, a narrow pulse occupies 2 time slots and a wide pulse occupies 3 time slots. Of course, the types of pulses in Figure 5 are not limited to 2, and can be divided into 3 types, 4 types, or even more according to the pulse width.
[0078] In building the data frame, the length of the data frame, the number of pulses included in the data frame, and the pulse type are determined based on the number of bits of the binary number to be transmitted.
[0079] In order to avoid the distance between adjacent pulses in the data frame being too close and causing pulse aliasing, a blank time slot, simply referred to as a blank slot, is provided between adjacent pulses in the data frame, each blank slot occupies or consists of a plurality of adjacent time slots, so that there is a certain interval between the two pulses in the data frame. Similarly, in order to avoid aliasing between the two adjacent data frames, a blank slot is provided at the head and / or tail of the data frame. The width of each blank slot (i.e. the number of time slots included) should be greater than or equal to the maximum width of the pulses in the data frame.
[0080] In order to achieve fast data transmission and avoid aliasing, in the case of using different types of pulses, an embodiment of the present disclosure constructs an example of determining the length of the data frame, the number of pulses, the type of pulse, and the number of blank slots according to the number of bits of the binary number, referred to as the mapping relationship between the number of bits of the binary number and the length of the data frame, the number of pulses, the type of pulse, and the number of blank slots, wherein the pulse width of the narrow pulse is, for example, 2 time slots, and the pulse width of the wide pulse is, for example, 3 time slots, and the specific correspondence is as follows:
[0081] (1) The number of bits of the binary number is 1: the length of the data frame is 5; 1 narrow pulse is transmitted; the last 2 time slots in the data frame are set as blank slots;
[0082] (2) the number of bits of the binary number is 2: the length of the data frame is 7; 1 pulse (narrow pulse or wide pulse); the last 3 time slots in the data frame are set as empty slots;
[0083] (3) the number of bits of the binary number is 3: the length of the data frame is 9; 1 pulse (narrow pulse or wide pulse); the last 3 time slots in the data frame are set as empty slots;
[0084] (4) the number of bits of the binary number is 4: the length of the data frame is 13; 2 pulses (narrow pulse or wide pulse); there are at least 3 empty slots between adjacent pulses, and the last 3 time slots in the data frame are set as empty slots;
[0085] (6) the number of bits of the binary number is 5: the length of the data frame is 14; 2 pulses (narrow pulse or wide pulse); there are at least 3 empty slots between adjacent pulses, and the last 3 time slots in the data frame are set as empty slots;
[0086] (7) the number of bits of the binary number is 6: the length of the data frame is 16; 2 pulses (narrow pulse or wide pulse); there are at least 3 empty slots between adjacent pulses, and the last 3 time slots in the data frame are set as empty slots;
[0087] (8) the number of bits of the binary number is 7: the length of the data frame is 18; 2 pulses (narrow pulse or wide pulse); there are at least 3 empty slots between adjacent pulses, and the last 3 time slots in the data frame are set as empty slots;
[0088] (9) the number of bits of the binary number is 8: the length of the data frame is 21; 2 pulses (narrow pulse or wide pulse); there are at least 3 empty slots between adjacent pulses, and the last 3 time slots in the data frame are set as empty slots;
[0089] In the above correspondence, the last 2-3 time slots in the data frame are set as empty slots to avoid aliasing between adjacent data frames. Those skilled in the art can understand that in specific implementations, it is not limited to this, for example, the empty slots can be set at the head of the data frame, or empty slots can be set at the head and tail of the data frame, and details are not described again. Preferably, in order to speed up the data transmission rate, generally, empty slots are only set in one of the head or tail of the constructed data frame. Moreover, those skilled in the art can know that the above mapping relationship is only an example, and those skilled in the art can use other mapping relationships as needed under the teaching of the present application, while using pulses of different widths and ensuring that there is no pulse aliasing. The mapping relationship can be stored in the memory of the corresponding device (such as a pulse encoding device or a pulse decoding device) so as to be read by the pulse encoding device or the pulse decoding device as needed.
[0090] Next, the position of different types of pulses in the data frame is determined based on the value of the binary number, the number of empty slots, and the position of the empty slots.
[0091] For example, referring again to FIG. 5, which shows an example of representing a four-bit number using 13 time slots and 2 pulses, the process of formulating the encoding rule can have the following considerations, for example.
[0092] 1. First, set both pulses to be narrow pulses, the first narrow pulse occupies the first and second slots, since the empty slot between the two pulses is at least 3, and the empty slot between the two data frames is at least 3, the possible positions of the second narrow pulse are 6, 7, 8, 9, and 10;
[0093] 2. If the first narrow pulse occupies the second and third slots, the possible positions of the second narrow pulse are 7, 8, 9, and 10;
[0094] 3. If the first narrow pulse occupies the third and fourth slots, the possible positions of the second narrow pulse are 8, 9, and 10;
[0095] 4. If the first narrow pulse occupies the fourth and fifth slots, the possible positions of the second narrow pulse are 9 and 10;
[0096] 5. After using two narrow pulses has been unable to represent more binary numbers, set the first pulse to be a wide pulse and the second pulse to be a narrow pulse, if the first wide pulse occupies the first, second, and third slots, the possible positions of the second narrow pulse are 7, 8, 9, and 10;
[0097] 6. If the first wide pulse occupies the second, third, and fourth slots, the possible positions of the second narrow pulse are 8, 9, and 10;
[0098] 7. If the first wide pulse occupies the third, fourth, and fifth slots, the possible positions of the second narrow pulse are 9 and 10;
[0099] 8. At this point, the encoding rule for all four-bit binary numbers is set.
[0100] Those skilled in the art can understand that the setting of the encoding rule is not limited to the above manner, and those skilled in the art can set different encoding rules (such as interchanging the positions of wide and narrow pulses, or changing the position of the empty slot in the data frame, etc.) as needed, as long as different binary data can be distinguished by using the positions of wide and narrow pulses and time slots.
[0101] In a possible implementation, the technician can generate the encoding table according to the preset encoding rule through the computer device, and store the encoding table in the form of a lookup table into the memory of the encoding device. When encoding, the encoding device can directly obtain the data frame length, the number of pulses, the pulse position, and the pulse width, etc. based on the binary value and the number of bits, and thus generate the corresponding data frame. Illustratively, an example encoding table generated according to the encoding mode shown in the above example is as follows, in which the code value represents the value of the binary number, and the slot represents the time slot:
[0102] Table 1: One-bit encoding table
[0103] Table 2: Two-bit encoding table
[0104] Table 3: Three-bit encoding table
[0105] Table 4: Four-bit encoding table
[0106] Encoding tables of five-bit, six-bit, or even higher-bit binary values are similar, and thus are not described herein.
[0107] Then, the method proceeds to step 303, generates a data frame corresponding to the positive pulse control signal according to the data frame length, the number of pulses, the pulse type, and the pulse position, and generates the positive pulse control signal based on the data frame to control the mud pulse generator to generate the mud pulse pressure wave signal.
[0108] Further, as can be seen from the above Table 1, Table 2, Table 3, and Table 4, the four-bit encoding table includes 16 encoding rules for representing different four-bit values. Similarly, a five-bit encoding table will include 32 encoding rules, a six-bit encoding table will include 64 encoding rules, a seven-bit encoding table will include 128 encoding rules, and an eight-bit encoding table will include 256 encoding rules. Obviously, as the number of bits of the binary value to be transmitted increases, the number of encoding rules in the encoding table will increase exponentially, resulting in an exponential increase in the design workload of the encoding rules, and more system running resources are required for the lookup operation when the system encodes, which affects the response speed of the encoding system. To solve this defect, in the embodiments of the present application, when the number of bits of the binary number to be transmitted is large, the binary number can be split. Thus, the number of encoding rules is reduced, and the system response speed is accelerated. At the same time, by optimizing the design of the specific splitting rule, the occupation of the time slot can be further reduced, and the data transmission rate can be increased.
[0109] Specifically, referring to FIG. 4, which improves steps 302 and 303 in FIG. 3, a schematic flow chart of an improved mud positive pulse encoding method according to an example embodiment of the present application is shown.
[0110] First, at step 401, the number of bits of a binary number for a measurement value to be transmitted is determined.
[0111] Then at step 402, it is determined whether the number of bits of the binary number is greater than a threshold value. In response to the number of bits of the binary number not being greater than (less than or equal to) the threshold value at step 402, the method proceeds to step 403, a data frame for transmitting the binary number is constructed.
[0112] Illustratively, for example, the threshold value of the number of bits is set to 8. For a binary number with the number of bits not greater than 8 (less than or equal to 8), the encoding device determines the data frame length, the number and type of pulses, and the pulse positions based on the number of bits and the value of the binary number to construct a data frame for representing the binary number. This step is similar to the construction described above with reference to step 302 in FIG. 3, and thus will not be described here again.
[0113] The method proceeds to step 405, a positive pulse control signal is generated based on the data frame, and the mud pulse generator is controlled to generate a mud pulse pressure wave signal based on the positive pulse control signal.
[0114] If it is determined at step 402 that the number of bits of the binary number is greater than the threshold value, the method proceeds to step 404. At step 404, the binary number is split from high bits to low bits (or from low bits to high bits) into at least two sub-binary numbers according to a splitting rule, wherein the splitting rule includes that the number of bits of each sub-binary number is less than or equal to the threshold value, and the number of sub-binary numbers split is the largest integer less than (the number of bits of the binary number / threshold value+1), and the splitting rule can further include the number of bits of each sub-binary number after splitting. For example, the threshold value is 8, and the number of bits of the binary number is 9, then the largest integer less than (9 / 8+1) is 2, and if the number of bits of the binary number is 16, the largest integer less than (16 / 8+1) is still 2.
[0115] Those skilled in the art can understand that by splitting the binary number with a larger number of bits, more data can be encoded without setting too many encoding rules, only by setting the encoding rules for the binary number with a number of bits not greater than the threshold value and the splitting rule for the binary number.
[0116] For example, the threshold value of the number of bits is set to 8, and for a binary number with the number of bits of 9, the encoding device needs to split the binary number to obtain two sub-binary numbers, wherein the number of bits of each sub-binary number is less than or equal to the threshold value of 8. The two sub-binary numbers correspond to the high bits of the original binary number and the low bits of the original binary number, respectively.
[0117] Specifically, for example, the bit threshold is set to 8. For a 9-bit binary number "110010010", the number of sub-binary numbers is less than the maximum integer of (9 / 8+1), and the bit number of each sub-binary number is less than the threshold 8, so it can be concluded that the binary number is split into 2 sub-binary numbers. For example, it can be split into a 5-bit binary number "11001" representing high bits and a 4-bit binary number "0010" representing low bits.
[0118] According to the mapping relationship between the bit number of the binary number and the data frame length, the number of pulses, the pulse type, and the number of empty slots described in the previous step 302 of FIG. 3, it takes 13 time slots to transmit a 4-bit binary number and 14 time slots to transmit a 5-bit binary number. Based on the mapping relationship, if a 9-bit binary number is split into a 4-bit sub-binary number and a 5-bit sub-binary number (i.e., using (4-bit+5-bit) splitting) for transmission, 27 time slots are required. Alternatively, to reduce the occupation of time slots, the splitting rule can be optimized. For example, if the above-mentioned 9-bit binary number is split into a 2-bit sub-binary number and a 7-bit sub-binary number (i.e., using (2-bit+7-bit) splitting) for transmission, since it takes 7 time slots to transmit a 2-bit binary number and 18 time slots to transmit a 7-bit binary number, at this time, it takes 25 time slots to transmit the above-mentioned 9-bit binary number. Obviously, using different splitting methods, the number of time slots required to transmit the same 9-bit binary number can be different. Therefore, in order to further speed up the transmission rate and reduce the use of time slots, the present application selects the bit number of each sub-binary number to be split based on the mapping or correspondence relationship between the bit number of the binary number and the number of time slots used when splitting the binary number, so that the sum of the number of time slots used to transmit each sub-binary number is minimized.
[0119] In addition, according to the rules of the example mapping relationship described in the above step 302 of FIG. 3 in the present application or based on the encoding rules in Tables 1-4, if the splitting is not performed and the encoding is performed as a whole, for a 9-bit binary number, 26 time slots will be required, which is more than the number of time slots occupied by the (2-bit+7-bit) splitting method (25). Therefore, the bit number splitting method provided by the embodiments of the present application not only can reduce the complexity of the encoding rule, but also can further reduce the number of time slots occupied by the binary number with more bit numbers and increase the transmission rate.
[0120] In a preferred embodiment, for a binary number with a bit number greater than or equal to the bit threshold 8, the specific optimized splitting rule based on the previous example mapping relationship between the bit number of the binary number and the data frame length is as follows:
[0121] In response to the binary number being nine digits, the binary number is divided into one two-digit number and one seven-digit number;
[0122] In response to the binary number being ten digits, the binary number is divided into two five-digit numbers;
[0123] In response to the binary number being eleven digits, the binary number is divided into one five-digit number and one six-digit number;
[0124] In response to the binary number being twelve digits, the binary number is divided into two six-digit numbers;
[0125] In response to the binary number being thirteen digits, the binary number is divided into one six-digit number and one seven-digit number;
[0126] In response to the binary number being fourteen digits, the binary number is divided into two seven-digit numbers;
[0127] In response to the binary number being fifteen digits, the binary number is divided into one seven-digit number and one eight-digit number;
[0128] In response to the binary number being sixteen digits, the binary number is divided into two eight-digit numbers;
[0129] …….
[0130] Next, the method proceeds to step 406, and a sub-data frame is constructed for each sub-binary number obtained by splitting, and the length, number of pulses, pulse type, and pulse position of the sub-data frame are determined. This step is similar to the construction method described above with reference to step 302 in FIG. 3, and thus will not be described again here.
[0131] Finally, the method proceeds to step 408, and a positive pulse control signal is generated based on the sub-data frame or the data frame, and the mud pulse generator is controlled to generate a mud pulse pressure wave signal based on the positive pulse control signal. When sending the sub-data frame corresponding to each sub-binary number, the sub-data frame corresponding to the high bit can be sent first, and then the sub-data frame corresponding to the low bit is sent, or vice versa.
[0132] As can be seen, in the present application, by setting the pulse type, adding an empty slot, and performing data splitting according to a specific rule, the splitting method that occupies or uses the least number of time slots is selected, the data transmission rate is improved, the pulse aliasing phenomenon is avoided, and the bit error rate is reduced.
[0133] To further demonstrate the technical effects of the encoding method in the embodiments of the present application, the encoding method of the embodiments of the present application is analyzed and compared with the encoding method in the prior art. It is assumed that the time of a single time slot is 0.5S, and two types of pulses are used, in which a narrow pulse occupies 2 time slots and a wide pulse occupies 3 time slots. The comparison of the transmission time required by the mud positive pulse encoding method provided by the embodiments of the present application and the same data transmission of AC encoding, PPM encoding and M-ary encoding is shown in Table 5.
[0134] Table 5
[0135] It can be analyzed that the transmission time required by the embodiments of the present application is the least when transmitting any one binary data from one bit to sixteen bits. The reduction of transmission time can improve the data transmission rate. Moreover, since at least two types of pulses are introduced in the present application, the number of pulses used to represent the same data is reduced, and the reduction of the number of pulses helps to save power. It can be calculated that the average transmission rate of the technical solution of the present application is increased by 51.78%, 29.49% and 19.92% respectively compared with AC, PPM and M-ary encoding methods.
[0136] In addition, the splitting method of binary data in the present application is compared with the splitting method disclosed in CN110661580A (in which the decimal number is split according to the hundred, ten and unit digits) as follows. For the transmission of decimal numbers less than or equal to 512 (which is used as an example in the example of CN110661580A), the hundred, ten and unit digits are split and transmitted respectively according to CN110661580A, then 3 binary numbers are required for the hundred digits, 4 binary numbers are required for the ten digits, and 4 binary numbers are also required for the unit digits. According to the mapping relationship between the number of binary digits and the number of time slots occupied in the present application, at least 10+13+13=36 time slots are required. According to the technical solution of the present application, the decimal numbers below 512 are represented by 9 binary numbers, and the optimal splitting method (2 bits+7 bits) is used, then only 7+18=25 time slots are required for transmission. Obviously, the splitting method in the technical solution of the present application can significantly reduce the occupation of time slots, and correspondingly significantly improve the data transmission rate. Moreover, even if the optimal splitting method is not used in the present application, as long as the number of split sub-binary numbers is the largest integer less than (the number of binary digits / threshold + 1) and the number of bits of each sub-binary number is less than or equal to the threshold, a faster transmission rate than the technical solution in CN110661580A can be obtained. For example, using a splitting method of (4 bits+5 bits), only 27 time slots are required, which is still significantly lower than the 36 time slots of the technical solution in CN110661580A.
[0137] The above describes embodiments of the encoding method of the present application. The encoding method described above can be performed by the controller 10 in FIG. 2. In a possible implementation, in order to be able to distinguish different types of data frames and facilitate decoding by the pulse decoding device, the pulse encoding device inserts a sync header frame before a plurality of data frames when performing pulse encoding. Alternatively, the encoding device inserts the sync header frame based on a preset data format, for example, sync header frame + inclination data frame + azimuth data frame + total weight data frame + total magnetic data frame + … + sync header frame + …. That is, different types of data are transmitted after the sync header frame in a fixed order or according to a fixed rule. Alternatively, the sync header frame can include an identifier indicating the type and / or order of the data that follows. The sync header frame can be represented by a special pulse, such as a pulse occupying 14 time slots continuously, or a special binary number (for example, 11000011000011). Of course, those skilled in the art can specify that the way of data distinction and indication by using the sync header frame is only an example, and other ways of data type distinction and indication can also be used.
[0138] Those skilled in the art can understand that the order of the method steps in FIGS. 3-4 is not necessarily performed in the order shown in the drawings, and even some steps can be performed simultaneously, or some steps can be removed, combined, as long as they do not conflict with the technical problems to be solved by the technical scheme of the present disclosure.
[0139] Next, referring to FIG. 6, a flowchart of a mud positive pulse decoding method implemented in a pulse decoding device according to an exemplary embodiment of the present application is shown. The method can be specifically performed by the computer device 60 (see FIG. 2) in the pulse decoding device.
[0140] First, in step 601, sensor data is received from a pressure sensor. The pressure sensor is, for example, the pressure sensor 40 shown in FIG. 2. The pressure sensor 40 is used to sense the mud pulse pressure wave signal to obtain sensor data related to the mud pulse pressure wave signal.
[0141] Next, in step 602, based on the sensor data, the number of bits of the corresponding binary number of the received measurement value is determined. As mentioned earlier, the type of measurement value that follows the sync header frame can be determined according to, for example, the sync header frame. Moreover, as described earlier, for example, the measurement value can be converted into a binary number value of different bit numbers according to the type of measurement value. That is, according to the type of data, the number of bits of the binary number corresponding to the data can be obtained. Alternatively, the number of bits of the binary number can also be indicated in other ways.
[0142] Then the method proceeds to step 603 to determine whether the corresponding binary number of the received measurement value is split. That is, the number of bits of the binary number is compared with a threshold value, and if it is greater than the threshold value, it means that the binary number is split. Otherwise, it is not split. The threshold value is consistent with the threshold value mentioned in step 402 described in the foregoing with respect to FIG. 4.
[0143] In response to the number of bits of the binary number being less than or equal to the threshold value, it is determined that the received binary number is not split, and then the method proceeds to step 604. The starting position and the ending position of the received data frame are determined based on the number of bits of the binary number. Specifically, according to the mapping relationship between the number of bits and the length of the data frame (the number of time slots used by the data frame), the length of the data frame can be obtained, as described above. Accordingly, the starting position and the ending position of the data frame are determined.
[0144] Then, the method proceeds to step 606 to determine the number of pulses, the pulse position, and the pulse type in the data frame. The number of pulses, the pulse position, and the pulse type in the data frame can be determined by finding the pulse peak value. Specifically, the pulse pressure wave detected by the pressure sensor is not a standard square wave form, but a waveform similar to a sine wave with a peak value. By determining the position of the waveform peak value between the starting position and the ending position of the data frame, the width of the waveform bottom, the pulse position and the type are determined, and the number of pulses is determined accordingly. The pulse type at least includes a wide pulse and a narrow pulse.
[0145] As described in the summary section above, the amplitude of the pulse collected on the ground in the actual drilling process is affected by many factors such as the working state of the pulser, the working state of the mud pump, the performance of the mud, the wellbore structure, etc. Even if the pulse generator can accurately generate different pulse signals with a specified amplitude relationship, the amplitude relationship may change greatly after propagating through the thousands of meters of mud channel. Therefore, the coding method based on the pulse amplitude will result in a high bit error rate. However, the pulse width is not easily affected, so it can reduce the bit error rate.
[0146] Next, at step 608, the pulse decoding device determines the binary number value corresponding to the data frame based on the data frame length, the number of pulses, the pulse position, and the pulse type according to the coding rule. The coding rule corresponds to the example coding rules shown in Tables 1-4 above. And in another possible implementation, a computer device can generate a coding table according to the pre-set coding rule, and store the coding table in the memory of the decoding device in the form of a lookup table. When decoding, the pulse decoding device can directly obtain the binary number value based on the data frame length, the number of pulses, the pulse position, and the pulse type (width) through the lookup table.
[0147] If it is determined in step 603 that the number of bits of the binary number is greater than the threshold value, it is determined that the corresponding binary number of the received measurement value is split, each binary number being transmitted by at least 2 sub-data frames, then the method proceeds to step 605. In step 605, in response to the number of bits of the binary number being greater than the threshold value, the number of sub-data frames, the start position and end position of each sub-data frame, and the order of the respective sub-data frames (i.e., determining whether the respective sub-data frames correspond to the high bits or low bits of the binary number of the measurement value) are determined according to the splitting rule. As described above, in the case where the number of bits is greater than the threshold value, the splitting rule includes that the number of bits of each sub-binary number is less than or equal to the threshold value, and the number of sub-binary numbers split is the largest integer less than (the number of bits of the binary number / threshold value + 1), and the splitting rule can also include the number of bits of each sub-binary number after splitting. In addition, as described above, the optimized splitting rule can be such that the number of sub-binary numbers split is the largest integer less than (the number of bits of the binary number / threshold value + 1) and the binary number will be split in a manner that occupies the least number of time slots. Therefore, based on the known number of bits of the binary number, the splitting rule of the binary number can be obtained. For example, for a 9-bit number, the splitting rule can be split in the manner of (4 bits + 5 bits), or split in the manner of (2 bits + 7 bits) according to the improved splitting rule, and these splitting rules are shared by the encoding side and the decoding side. Therefore, the number of bits of each sub-binary number represented by each sub-data frame can be determined, and accordingly, the length (the number of occupied time slots), the start position and the end position of each sub-data frame can be determined according to the mapping relationship between the number of binary bits and the length of the data frame (as described above).
[0148] Then the method proceeds to step 607 to determine the number of pulses, the pulse position, and the pulse type within the sub-data frame. The manner is similar to that in step 606, which will not be described again here. The pulse type also includes at least a wide pulse and a narrow pulse.
[0149] The method continues to step 609, and the pulse decoding device determines the sub-binary number value corresponding to the sub-data frame according to the encoding rule based on the length of the sub-data frame, the number of pulses, the pulse position, and the pulse type.
[0150] Similarly, the encoding rule corresponds to the encoding rules shown in Tables 1-4 above. And in another possible implementation, the encoding table can be generated by a computer device according to the pre-set encoding rule, and the encoding table is stored in the memory of the decoding device in the form of a lookup table. When decoding, the pulse decoding device can use the lookup table to directly obtain the sub-binary number value based on the length of the sub-data frame, the number of pulses, the pulse position, and the pulse type (width), etc.
[0151] Finally, the method proceeds to step 611 to combine the sub-binary values to obtain the binary value corresponding to each measurement value. As mentioned above, the split sub-binary values can be transmitted in the order of high-to-low or low-to-high. Therefore, the sub-binary values are combined accordingly.
[0152] In addition, due to the harsh environment of the mud transmission channel, the pulse pressure signal will be continuously attenuated and disturbed by various environmental factors during transmission, generating noise signals. Therefore, in order to improve the signal quality and reduce the influence of noise on the decoding result, the pulse decoding device needs to preprocess the sensor data related to the mud pulse pressure wave signal measured by the pressure sensor after receiving the sensor data. For example, low-frequency baseline signals, pump harmonic signals and high-frequency noise in the mud pulse pressure wave signal are removed based on a filtering algorithm; the mud pulse pressure wave signal is shaped by a rectangular correlator, a triangular correlator or a hat correlator; and noise in the mud pulse pressure wave is further removed based on a set noise threshold. In one possible implementation, a noise threshold is set in the decoding device, and the decoding device removes noise higher than or lower than the noise threshold based on the noise threshold and corresponding noise removal conditions.
[0153] Those skilled in the art can understand that the order of the method steps in FIG. 6 is not necessarily executed in the order shown in the figure, and even some steps can be executed simultaneously, or some steps can be removed, combined, as long as they do not conflict with the technical problems to be solved by the technical scheme of the present disclosure.
[0154] Referring now to FIG. 7, there is shown a control system 700 in accordance with an embodiment of the present disclosure, which can be the controller 20 or the computer device 60 shown in FIG. 2, or some combination thereof. The control system includes a processor 701, a memory 702, and an interface 703. The processor 701 implements the encoding or decoding operations by executing computer executable instructions defining the methods shown in FIGS. 3, 4, and 6. A computer program product including the computer executable instructions can be stored in the memory 702. Also, the encoding table or lookup table described above can also be stored in the memory 702. The methods described in FIGS. 3, 4, and 6 can be defined by the computer executable instructions stored in the memory 702 included in the computer program product and controlled by the processor 701 executing the computer executable instructions. The interface 703 can include a network interface for communicating with other devices via a network, and can also include other input / output devices (e.g., display, keyboard, mouse, speaker, buttons, touchpad, touchscreen, etc.) that enable a user to interact with the control system 700. One of skill in the art will recognize that an actual implementation of a control system can contain other components as well, and that the control system of FIG. 7 is a high-level representation of some of the components of such a control system for illustrative purposes.
[0155] The memory 702 includes a tangible, non-transitory machine-readable storage medium that can also include high-speed random access memory such as dynamic random access memory (DRAM), static random access memory (SRAM), double data rate synchronous dynamic random access memory (DDR RAM), or other random access solid state memory devices, and can include non-volatile memory such as one or more magnetic disk storage devices such as internal hard disks and removable disks, magneto-optical disk storage devices, optical disk storage devices, flash memory devices, semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM), digital versatile disc read-only memory (DVD-ROM) disks, or other non-volatile solid state storage devices.
[0156] It is recognized that certain features of the present disclosure described in the context of separate embodiments can also be provided in combination in a single embodiment. Conversely, various features of the present disclosure described in the context of a single embodiment can also be provided separately or in any appropriate sub-combination or in any other described embodiment of the present disclosure, as appropriate for a particular implementation. Not all components described in the context of various embodiments are essential to the practice of the present disclosure, unless that embodiment is inoperative without those elements.
[0157] While the present disclosure has been described with respect to specific embodiments thereof, it will be apparent to those skilled in the art that many alternatives, modifications and variations to the embodiments described herein will be apparent. It is therefore intended to cover all such alternatives, modifications and variations as fall within the scope of the claims appended hereto.
[0158] All publications, patents and patent applications mentioned in this specification are herein incorporated by reference in their entirety to the same extent as if each individual publication, patent or patent application was specifically and individually indicated to be incorporated by reference. In addition, no admission is made that any reference or identification of a reference constitutes prior art against the present disclosure. Where a section heading is used, it should not be construed as limiting the subject matter covered by the specification.
Claims
1. A mud positive pulse encoding method, comprising: determining a number of bits S of binary data to be encoded, the binary data representing a particular type of measurement value; In response to the number of bits S being greater than a threshold value T, splitting the binary data into at least two sub-binary data based on a splitting rule, wherein the splitting rule includes at least the number of sub-binary data into which the data is split and the number of bits of each sub-binary data, the number of sub-binary data being a maximum integer less than (S / T+1), and the number of bits of each sub-binary data being less than or equal to the threshold value; constructing a corresponding sub-data frame based on the number of bits and the value of each sub-binary data for representing the sub-binary data, wherein the sub-data frame occupies a certain number of time slots and includes at least one pulse located at different time slot positions, the number of time slots being determined based on a mapping relationship between the number of bits of the sub-binary data and the number of time slots, the types of the pulses including at least wide pulses and narrow pulses, the wide pulses occupying more time slots than the narrow pulses, and the type and position of the pulses being determined based on the number of bits and the value of the sub-binary data; as well as A mud positive pulse signal is generated based on each of the sub-data frames.
2. The method according to claim 1, wherein splitting the binary data into at least two sub-binary data based on a splitting rule comprises: The number of bits of each sub-binary data is selected based on the mapping relationship between the number of bits of sub-binary data and the number of time slots, so that the sum of the number of time slots occupied by the sub-data frame for each sub-binary data is minimized.
3. The method according to claim 1 or 2, further comprising: In response to the number of bits S of the binary data being less than or equal to the threshold T, a corresponding data frame is constructed based on the number of bits and the value of the binary data to represent the binary data, wherein the data frame occupies a certain number of time slots and includes at least one pulse located at different time slot positions, the number of time slots is determined based on a mapping relationship between the number of bits of the binary data and the number of time slots, the types of the pulses include at least wide pulses and narrow pulses, the wide pulses occupy more time slots than the narrow pulses, and the type and position of the pulses are determined based on the number of bits and the value of the binary data.
4. The method according to claim 3, wherein the sub-data frame and the data frame further include empty slots, wherein the empty slots occupy a second number of time slots and are located between adjacent pulses and at the head or tail of the data frame or sub-data frame, and are used to separate adjacent pulses and adjacent data frames or sub-data frames, wherein the second number of time slots occupied by the empty slots is greater than or equal to the maximum width of the pulse.
5. The method according to claim 3, wherein the mapping relationship between the number of bits of sub-binary data and the number of time slots, the mapping relationship between the number of bits of binary data and the number of time slots, the relationship between the type and position of the pulse and the number of bits and values of the sub-binary data, and / or the relationship between the type and position of the pulse and the number of bits and values of the binary data are stored in a memory as encoding rules in the form of a lookup table.
6. The method according to claim 3, wherein a synchronization header frame is set in front of multiple data frames and / or sub-data frames, and the synchronization header frame is used to indicate the type of measurement value represented by the binary data represented by the data frame and / or sub-data frame following the synchronization header frame, wherein the type of measurement value corresponds to the number of bits of the binary data.
7. A mud positive pulse decoding method comprising: determining a number of bits S of received binary data representing a particular type of measurement; In response to the number of bits S being greater than a threshold T, determining that the binary data has been split, the binary data being transmitted by at least two sub-data frames, the sub-data frames occupying a certain number of time slots and including at least one pulse located at different time slot positions; determining the number of bits of the sub-binary data represented by each sub-data frame based on a splitting rule, wherein the splitting rule includes at least the number of sub-binary data into which the sub-data frame is split and the number of bits of each sub-binary data, the number of sub-binary data being a maximum integer less than (S / T+1), and the number of bits of each sub-binary data being less than or equal to the threshold; Determine the number of time slots occupied by each sub-data frame and the starting position and ending position of the sub-data frame based on a mapping relationship between the number of bits of the sub-binary data and the number of time slots occupied by the sub-data frame; Determining the number of pulses, pulse positions, and pulse types in each sub-data frame, wherein the pulse types include at least wide pulses and narrow pulses, and the wide pulses occupy more time slots than the narrow pulses; Determining a sub-binary value corresponding to the sub-data frame based on the sub-data frame length, the number of pulses, the pulse position, and the pulse type according to the coding rule; and The sub-binary values are combined to obtain the binary number corresponding to the measured value. value.
8. The method according to claim 7, wherein determining the number of bits of sub-binary data represented by each sub-data frame based on the splitting rule comprises: The number of bits of each sub-binary data is determined based on the mapping relationship between the number of bits of the sub-binary data and the number of time slots occupied by the sub-data frame, wherein the number of bits of each sub-binary data is selected to minimize the sum of the number of time slots occupied by the sub-data frame for each sub-binary data.
9. The method according to claim 7 or 8, further comprising: In response to the number of bits of the binary data being less than or equal to the threshold, determining that the binary data is transmitted by a data frame, wherein the data frame occupies a certain number of time slots and includes at least one pulse located at a different time slot position; Determine the number of time slots occupied by the data frame and the starting position and the ending position of the data frame based on a mapping relationship between the number of bits of binary data and the number of time slots occupied by the data frame; Determining the number of pulses, pulse positions, and pulse types in a data frame, wherein the pulse types include at least wide pulses and narrow pulses, and the wide pulses occupy more time slots than the narrow pulses; as well as The binary value corresponding to the sub-data frame is determined based on the data frame length, the number of pulses, the pulse position and the pulse type according to the coding rules.
10. The method of claim 9, wherein determining the number of bits of the received binary data comprises: Identifying a synchronization header frame, the synchronization header frame being used to indicate a type of measurement value represented by binary data represented by a data frame and / or sub-data frame following the synchronization header frame, wherein the type of measurement value corresponds to the number of bits of the binary data; and The number of bits of the received binary data is determined based on the type of the measurement value.
11. The method according to claim 9, wherein the mapping relationship between the number of bits of sub-binary data and the number of time slots occupied by the sub-data frame, the mapping relationship between the number of bits of binary data and the number of time slots occupied by the data frame, and / or the encoding rules are stored in a memory in the form of a lookup table.
12. The method according to claim 9, wherein the sub-data frame and the data frame further include empty slots, wherein the empty slots occupy a second number of time slots and are located between adjacent pulses and at the head or tail of the data frame or sub-data frame, and are used to separate adjacent pulses and adjacent data frames or sub-data frames, wherein the second number of time slots occupied by the empty slots is greater than or equal to the maximum width of the pulse.
13. The method according to claim 9, further comprising: Preprocessing the received binary data to remove low-frequency baseline signals, pump stroke harmonic signals, and high-frequency noise from the mud pulse pressure wave signal; as well as The mud pulse pressure wave signal is shaped.
14. A mud positive pulse encoding device comprising: A controller comprising a processor for executing the mud positive pulse encoding method according to any one of claims 1 to 6 and generating a positive pulse control signal based on the sub-data frame or the data frame; as well as The mud pulse generator is coupled to the controller and configured to generate a mud pulse pressure wave signal based on the positive pulse control signal.
15. A mud positive pulse decoding device, comprising: A pressure sensor is used to sense mud pulse pressure wave signals and generate corresponding sensor data; as well as A computer device is coupled to the pressure sensor, wherein the computer device includes a processor for executing the mud positive pulse decoding method according to any one of claims 7 to 13.
16. A mud positive pulse encoding and decoding system, comprising: The mud positive pulse encoding device as claimed in claim 14; as well as The mud positive pulse decoding device as claimed in claim 15.
17. A control system comprising: processor, and A computer-readable storage medium comprising a computer program stored thereon, the computer program comprising executable instructions, which implement the method according to any one of claims 1 to 13 when executed by the processor.
18. A machine-readable storage medium comprising a computer program stored thereon, the computer program comprising executable instructions which, when executed by a processor, implement the method according to any one of claims 1 to 13.
19. A computer program product comprising executable instructions which, when executed by a processor, implement the method according to any one of claims 1 to 13.
Citation Information
Patent Citations
Mud pulse transmission system and method
CN106958442A
Mud pulse data encoding method and transmission method
CN110661580A
Compression coding method, electronic equipment and storage medium
CN113346911A
Slurry pulse data coding and transmission method, device and equipment
CN115296752A
Mud Pulse Telemetry Preamble For Sequence Detection And Channel Estimation
US20180245461A1