A navigation signal priority processing method
Through the navigation signal priority processing method, the two-dimensional array and timer technology are used to quickly determine the most suitable navigation information source in the ship navigation system, solving the reliability and stability problems of various navigation signal processing, and improving equipment reliability and cost-effectiveness.
Patent Information
- Application Number
- CN202211498308.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-28
- Publication Date
- 2025-08-12
- Estimated Expiration
- 2042-11-28
AI Technical Summary
In a ship navigation system, how to quickly find the most suitable navigation information source to ensure the reliability and stability of processing navigation information.
Using a navigation signal priority processing method, the most suitable navigation information source is determined by defining and initializing a two-dimensional integer array, using the timer and the number of flags of the navigation device to traverse and update the priority and effectiveness of the navigation device.
It realizes effective control of navigation equipment of different priority levels, ensures the use of the most appropriate information source at a certain moment, improves the reliability and stability of navigation information, and reduces the complexity of the program, and does not require modification of the traditional equipment structure.
Smart Images

Figure CN115930941B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of ship navigation, and in particular to a navigation signal priority processing method. Background Art
[0002] With the rapid expansion of global navigation areas for ships and the increasing development of waterways, the importance of safe waterways has become increasingly important, attracting extensive research and attention from industry professionals. Safe navigation is the foundation and prerequisite for the development of shipping. Statistics show that there are currently two methods for testing ship navigation conditions: empirical methods and ship navigation system judgment methods:
[0003] Experience-based approach: Experienced captains are hired at high salaries to provide guidance and use human experience to determine safe routes. This approach is currently primarily used for voyages with inadequate electronic equipment or in special emergency situations.
[0004] Ship navigation system method: Ship navigation system is an electronic device used on ships that can automatically identify safe passage channels. As the control core of the entire navigation process, the ship navigation system plays a decisive role in the safe navigation of the ship. The current ship navigation system generally adopts an information-based centralized management mode to operate, which basically realizes the automation and intelligent navigation data processing of the entire system.
[0005] Various navigation devices on ships receive a large amount of navigation information transmitted through the ship's network or other communication equipment. Among the same type of navigation information received, such as position information, the information sources are divided into GPS1, GPS2, Beidou 1, Beidou 2, Loran, electronic nautical charts and other devices. Faced with such a large amount of navigation information, how to quickly find the most appropriate information source data and ensure the reliability and stability of processing navigation information has become a technical problem that needs to be solved urgently. Summary of the Invention
[0006] In view of the above-mentioned deficiencies in the prior art, the technical problem to be solved by the present invention is: how to provide a navigation signal priority processing method that can quickly find the data of the most appropriate information source among the multiple navigation signals received, thereby ensuring the reliability and stability of processing navigation information.
[0007] In order to solve the above technical problems, the present invention adopts the following technical solutions:
[0008] A navigation signal priority processing method comprises the following steps:
[0009] Step 1) Define and initialize a two-dimensional integer array xx[m,2], a failure count n, and a timer timing t;
[0010] Step 2) The timer starts;
[0011] Step 3) Traverse the two-dimensional integer array xx[m,2] row by row within the timer time t, and determine whether the value xx[i,1] of the second column of the i-th row in the two-dimensional integer array xx[m,2] is greater than the first set value. If so, the value xx[i,1] of the second column of the i-th row remains unchanged; if not, the value xx[i,1] of the second column of the i-th row is increased by 1;
[0012] Step 4) In the program block that receives and processes navigation information in real time, traverse the two-dimensional integer array xx[m,2] row by row and determine whether the value xx[i,0] in the first column of the i-th row is equal to the number of flags in the currently received navigation information. If not, continue to determine whether the value xx[i+1,0] in the first column of the i+1-th row is equal to the number of flags in the currently received navigation information. If so, assign the value xx[i,1] in the second column of the i-th row to 0 and assign the value of i at that time to the variable currentI.
[0013] Step 5) Based on the currentI value obtained in step 4), traverse and determine whether the value of the second column of each row in the two-dimensional integer array xx[m,2] whose row number is less than currentI is less than the failure count n. If so, return to step 4). Otherwise, go to step 6);
[0014] Step 6) Set the navigation information of the navigation device with row number currentI in the two-dimensional integer array xx[m,2] as the current navigation information;
[0015] Step 7) This round of processing ends and returns to step 4).
[0016] Preferably, in step 1), m in the two-dimensional integer array xx[m,2] is the number of navigation devices that need to be prioritized, and the rows of the two-dimensional integer array xx[m,2] are arranged from high to low according to the priority of the navigation devices, the value xx[i,0] in the first column of the i-th row in the two-dimensional integer array xx[m,2] represents the flag number of the navigation device, and the value xx[i,1] in the second column of the i-th row in the initialized two-dimensional integer array xx[m,2] is the second set value.
[0017] Preferably, in step 1), the invalidation count n means that when the navigation information of a certain navigation device is not received within n seconds, the navigation information of the navigation device is invalid.
[0018] Preferably, in step 1), the timer timing time t is obtained by dividing the minimum interval time for each navigation device to send navigation information by k, and 1≤k≤10.
[0019] Preferably, in step 3), traverse the two-dimensional integer array xx[m,2] in the way of For(int i=0,i<m,i++). If the value xx[i,1] in the second column of the i-th row in the two-dimensional integer array xx[m,2] is less than the first set value, then xx[i,1]++. If the value xx[i,1] in the second column of the i-th row in the two-dimensional integer array xx[m,2] is greater than or equal to the second set value, then xx[i,1] remains unchanged.
[0020] Preferably, in step 4), set the flag number of the currently received navigation information as y, and traverse the two-dimensional integer array xx[m,2] in the way of For(int i=0,i<m,i++). If the value xx[i,0] in the first column of the i-th row in the two-dimensional integer array xx[m,2] is equal to y, then assign the value xx[i,1] in the second column of the i-th row in the two-dimensional integer array xx[m,2] to 0, take currentI = i and then go to step 5). If the value xx[i,0] in the first column of the i-th row in the two-dimensional integer array xx[m,2] is not equal to y, then continue to traverse in the way of For(int i=0,i<m,i++).
[0021] Preferably, in step 5), traverse the two-dimensional integer array xx[m,2] in the way of For(int i=0,i<currentI,i++). If the value xx[i,1] in the second column of the i-th row in the two-dimensional integer array xx[m,2] is less than the failure count n, then exit the loop and go to step 4). If the values xx[i,1] in the second column of each row in the two-dimensional integer array xx[m,2] are all greater than or equal to the failure count n, then execute step 6).
[0022] Preferably, the first set value is 99, the second set value is 90, and the failure count 3≤n≤5.
[0023] Preferably, the number of navigation devices in step 1) is 5, which are GPS1, GPS2, Beidou 1, Beidou 2 and the integrated navigation device respectively, and the priorities of the navigation devices are in descending order as GPS1, GPS2, Beidou 1, Beidou 2, integrated navigation device.
[0024] Preferably, the timer timing time is 400ms≤t≤600ms.
[0025] Compared with the prior art, the present invention has the following advantages:
[0026] (1) The present invention can effectively control the navigation information of various series of navigation devices with different priorities such as optical compass and medium and low inertial navigation, ensure the use of the data of the most suitable information source at a certain moment, and ensure the reliability and stability of processing navigation information. [[ID=!23]]<!
[0027] (2) The present invention can conveniently and quickly realize the unified processing of navigation information of multiple different types of navigation devices with different priorities, thereby reducing program complexity.
[0028] (3) The present invention can be realized only through design software, without the need to modify the traditional equipment structure method, thereby improving product reliability while ensuring product cost. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] Figure 1 This is a flowchart of the navigation signal priority processing method of the present invention. DETAILED DESCRIPTION
[0030] In order to make the purpose, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings of the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the described embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention. Unless otherwise defined, the technical terms or scientific terms used herein should be the common meanings understood by people with ordinary skills in the field to which the present invention belongs.
[0031] The words “first”, “second” and similar words used in the patent application specification and claims of the present invention do not indicate any order, quantity or importance, but are only used to distinguish different components. Similarly, unless the context clearly indicates otherwise, the singular forms of “a”, “an” or “the” and similar words do not indicate a quantity limitation, but rather indicate the presence of at least one. Words such as “include” or “comprise” mean that the elements or objects appearing before “include” or “comprises” cover the features, wholes, steps, operations, elements and / or components listed after “include” or “comprises”, and do not exclude the existence or addition of one or more other features, wholes, steps, operations, elements, components and / or their collections. “Up”, “down”, “left”, “right” and the like are only used to indicate relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.
[0032] As attached Figure 1 As shown, a navigation signal priority processing method includes the following steps:
[0033] Step 1) Define and initialize a two-dimensional integer array xx[m,2], a failure count n, and a timer timing t.
[0034] Specifically, the two-dimensional integer array xx[m,2] is an array with m rows and 2 columns, and the subscripts of each dimension are taken from 0, so the range of the first dimension is 0 to m-1, and the range of the second dimension is 0 and 1. At the same time, m is the number of navigation devices that need to be prioritized, and the rows of the two-dimensional integer array xx[m,2] are arranged from high to low according to the priority of the navigation device, that is, the smaller the row, the higher the priority. The value xx[i,0] of the first column of the i-th row in the two-dimensional integer array xx[m,2] represents the flag number of the navigation device, such as xx[0,0]=1, indicating GPS1, the highest priority, xx[1,0]=2, indicating Beidou 1, the second priority; and the value xx[i,1] of the second column of the i-th row in the initialized two-dimensional integer array xx[m,2] is the second set value. Specifically, the second set value in this solution is 90, and the A set value is 99, that is, each initial value in the second column xx[i,1] of the two-dimensional integer array xx[m,2] is set to a value close to the upper limit (i.e., the first set value), which is 90 in this specific embodiment, and the unit is seconds. During the timer timing time t, if the data of the navigation device does not change, its value is increased by 1. After a few times, it will directly reach the upper limit without being increased infinitely, indicating that the value of this navigation device will definitely not be used. The array can also be understood as representing the difference between the last refresh time and the current time of a navigation device. A value of 0 indicates that it has been refreshed immediately. When it reaches 99, it means that it has not been refreshed for a long time, that is, the value of the navigation device will not be used.
[0035] Specifically, the failure count n indicates that if no navigation information from a navigation device is received within n seconds, the navigation information from the navigation device is invalidated. In this embodiment, the failure count n is set to 5, indicating that if no navigation signal from a navigation device is received within 5 seconds, the navigation information from the navigation device is invalidated. Of course, in actual implementation, the failure count n can also be set to 3 seconds or 4 seconds as needed.
[0036] Specifically, the timer timing time t is obtained by dividing the minimum interval time for each navigation device to send navigation information by k, and 1≤k≤10.
[0037] Step 2) The timer starts.
[0038] Step 3) Traverse the two-dimensional integer array xx[m,2] row by row within the timer timing time t, and determine whether the value xx[i,1] of the second column of the i-th row in the two-dimensional integer array xx[m,2] is greater than the first set value. If so, the value xx[i,1] of the second column of the i-th row remains unchanged; if not, the value xx[i,1] of the second column of the i-th row is increased by 1.
[0039] Specifically, traverse the two-dimensional integer array xx[m, 2] in the way of For(int i = 0, i < m, i++). If the value xx[i, 1] in the second column of the i-th row in the two-dimensional integer array xx[m, 2] is less than the first set value, then xx[i, 1]++. If the value xx[i, 1] in the second column of the i-th row in the two-dimensional integer array xx[m, 2] is greater than or equal to the second set value, then xx[i, 1] remains unchanged.
[0040] Step 4) In the program block that receives and processes navigation information in real time, traverse the two-dimensional integer array xx[m, 2] row by row, and determine whether the value xx[i, 0] in the first column of the i-th row is equal to the flag number of the currently received navigation information. If not, continue to determine whether the value xx[i + 1, 0] in the first column of the (i + 1)-th row is equal to the flag number of the currently received navigation information until all rows are traversed; if so, assign the value xx[i, 1] in the second column of the i-th row to 0 (representing that the navigation information of this navigation device has been updated in real time), and assign the value of i at this time to the variable currentI.
[0041] Specifically, set the flag number of the currently received navigation information as y, and traverse the two-dimensional integer array xx[m, 2] in the way of For(int i = 0, i < m, i++). If the value xx[i, 0] in the first column of the i-th row in the two-dimensional integer array xx[m, 2] is equal to y, then assign the value xx[i, 1] in the second column of the two-dimensional integer array xx[m, 2] to 0, and after taking currentI = i, go to step 5); if the value xx[i, 0] in the first column of the i-th row in the two-dimensional integer array xx[m, 2] is not equal to y, then continue to traverse in the way of For(int i = 0, i < m, i++).
[0042] Step 5) According to the value of currentI obtained in step 4), traverse and determine whether the values in the second column of each row in the two-dimensional integer array xx[m, 2] whose row number is less than currentI are less than the failure count n. If so, return to execute step 4); if not, execute step 6).
[0043] Specifically, traverse the two-dimensional integer array xx[m, 2] in the way of For(int i = 0, i < currentI, i++). If the value xx[i, 1] in the second column of the i-th row in the two-dimensional integer array xx[m, 2] is less than the failure count n (representing that there is navigation information of a navigation device with a higher priority at this time), then exit the loop and go to step 4); if the values xx[i, 1] in the second column of the i-th row in the two-dimensional integer array xx[m, 2] are all greater than or equal to the failure count n (representing that there is no navigation information of a navigation device with a higher priority at this time), then execute step 6).
[0044] Step 6) Set the navigation information of the navigation device with row number currentI in the two-dimensional integer array xx[m,2] as the current navigation information;
[0045] Step 7) This round of processing ends and returns to step 4).
[0046] In this embodiment, the number of navigation devices in step 1) is 5, namely GPS1, GPS2, Beidou 1, Beidou 2 and integrated navigation device, and the priority of each navigation device from high to low is GPS1, GPS2, Beidou 1, Beidou 2, integrated navigation device.
[0047] In this embodiment, the timing time of the timer is 400ms≤t≤600ms.
[0048] Below, the method of the present invention is described by taking a specific embodiment as an example:
[0049] During network communication, this device receives location information from five types of navigation devices: GPS1, GPS2, BeiDou 1, BeiDou 2, and integrated navigation device. The third byte in its communication format is designated as the number of messages. Assuming that the third byte 15 represents GPS1, 16 represents GPS2, 17 represents BeiDou 1, 18 represents BeiDou 2, and 19 represents integrated navigation device, and assuming that the agreed priority order is GPS1, GPS2, BeiDou 1, BeiDou 2, and integrated navigation device, the process includes the following steps:
[0050] Step 1) Initialize the device priority two-dimensional integer array posNum[5,2] = {(15,90), (16,90), (17,90), (18,90), (19,90)}, initialize the failure count n = 5, and initialize the timer t to 500ms;
[0051] Step 2) The timer starts;
[0052] Step 3) In the timer, press for(i=0,i<5,i++) to traverse posNum[5,2] and determine whether the value of the second column of each row posNum[i,1] is greater than or equal to 99. If so, the value of the second column of the row posNum[i,1] remains unchanged; if not, the value of the second column of the row posNum[i,1] is increased by 1;
[0053] Step 4) In the program block for receiving and processing navigation information in real time, extract the third byte recvData[2] of the current navigation information. Traverse posNum[5,2] according to for(i=0,i<5,i++), and determine whether posNum [i,0] is equal to the flag number recvData[2] of the currently received navigation information. If not, take the next line and continue the comparison; if so, set posNum [i,1] to 0, assign the value of i at this time to the variable currentI, and jump out of the traversal to step 5).
[0054] Step 5) Traverse posNum[5,2] according to for(i=0,i<currentI,i++). If there exists posNum[i,1] less than 5, it means that there is a navigation information source with a higher priority. Return to step 4; otherwise, execute step 6).
[0055] Step 6) Set the navigation information of the current processing device to the current navigation information of this category.
[0056] Step 7) After the current round of processing is completed, go to step 4).
[0057] Compared with the prior art, the present invention can effectively control the navigation information of various series of navigation devices with different priorities such as optical compasses and medium and low inertial navigation, ensure the use of data from the most suitable information source at a certain moment, and ensure the reliability and stability of processing navigation information. The present invention can conveniently and quickly realize the unified processing of navigation information of various different types and different priorities of navigation devices, and reduce the program complexity. The present invention can be realized only by designing software, without modifying the traditional device structure method, and on the basis of ensuring the product cost, improve the product reliability.
[0058] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention rather than to limit the technical solutions. Those of ordinary skill in the art should understand that any modifications or equivalent replacements to the technical solutions of the present invention without departing from the purpose and scope of the present technical solution shall be covered by the scope of the claims of the present invention.
Claims
1. A navigation signal priority processing method, characterized in that: It includes the following steps: Step 1) Define and initialize a two-dimensional integer array xx[m, 2], a failure count n, and a timer timing time t; Step 2) Start the timer; Step 3) Traverse the two-dimensional integer array xx[m, 2] row by row within the timer timing time t, and determine whether the value xx[i, 1] in the second column of the i-th row in the two-dimensional integer array xx[m, 2] is greater than the first set value. If so, the value xx[i, 1] in the second column of the i-th row remains unchanged; if not, the value xx[i, 1] in the second column of the i-th row is incremented by 1; Step 4) In the program block for receiving and processing navigation information in real time, traverse the two-dimensional integer array xx[m, 2] row by row, and determine whether the value xx[i, 0] in the first column of the i-th row is equal to the flag number of the currently received navigation information. If not, continue to determine whether the value xx[i + 1, 0] in the first column of the (i + 1)-th row is equal to the flag number of the currently received navigation information; if so, assign the value 0 to the value xx[i, 1] in the second column of the i-th row, and assign the value of i at this time to the variable currentI; Step 5) According to the value of currentI obtained in Step 4), traverse and determine whether the values in the second column of each row with a row number less than currentI in the two-dimensional integer array xx[m, 2] are less than the failure count n. If so, return to execute Step 4); if not, execute Step 6); Step 6) Set the navigation information of the navigation device with the row number currentI in the two-dimensional integer array xx[m, 2] to the current navigation information; Step 7) End the current round of processing and return to execute Step 4).
2. The navigation signal priority processing method according to claim 1, characterized in that: In Step 1), m in the two-dimensional integer array xx[m, 2] is the number of devices of the navigation devices that need to arrange priorities, and the rows of the two-dimensional integer array xx[m, 2] are arranged in descending order of the priorities of the navigation devices. The value xx[i, 0] in the first column of the i-th row in the two-dimensional integer array xx[m, 2] represents the flag number of the navigation device, and the values xx[i, 1] in the second column of the i-th row in the initialized two-dimensional integer array xx[m, 2] are all the second set values.
3. The navigation signal priority processing method according to claim 1, characterized in that: In Step 1), the failure count n means that when the navigation information of a certain navigation device has not been received within n seconds, the navigation information of the navigation device is invalid.
4. The navigation signal priority processing method according to claim 1, characterized in that: In Step 1), the timer timing time t is obtained by dividing the minimum interval time for each navigation device to send navigation information by k, and 1 ≤ k ≤ 10.
5. The navigation signal priority processing method according to claim 1, characterized in that: In Step 3), traverse the two-dimensional integer array xx[m, 2] in the way of For(int i = 0, i < m, i++). If the value xx[i, 1] in the second column of the i-th row in the two-dimensional integer array xx[m, 2] is less than the first set value, then xx[i, 1]++; if the value xx[i, 1] in the second column of the i-th row in the two-dimensional integer array xx[m, 2] is greater than or equal to the second set value, then xx[i, 1] remains unchanged.
6. The navigation signal priority processing method according to claim 1, characterized in that: In step 4), set the flag number of the currently received navigation information as y, and traverse the two-dimensional integer array xx[m, 2] in the way of For(int i = 0, i < m, i++). If the value xx[i, 0] in the first column of the i-th row in the two-dimensional integer array xx[m, 2] is equal to y, then assign the value xx[i, 1] in the second column of the i-th row in the two-dimensional integer array xx[m, 2] to 0, take currentI = i, and then go to step 5); if the value xx[i, 0] in the first column of the i-th row in the two-dimensional integer array xx[m, 2] is not equal to y, then continue to traverse in the way of For(int i = 0, i < m, i++).
7. The navigation signal priority processing method according to claim 1, characterized in that: In step 5), traverse the two-dimensional integer array xx[m, 2] in the way of For(int i = 0, i < currentI, i++). If the value xx[i, 1] in the second column of the i-th row in the two-dimensional integer array xx[m, 2] is less than the failure count n, then exit the loop and go to step 4); if the values xx[i, 1] in the second column of all rows in the two-dimensional integer array xx[m, 2] are greater than or equal to the failure count n, then execute step 6).
8. The navigation signal priority processing method according to claim 2, characterized in that: The first set value is 99, the second set value is 90, and the failure count 3 ≤ n ≤ 5.
9. The navigation signal priority processing method according to claim 2, characterized in that: The number of navigation devices in step 1) is 5, which are GPS1, GPS2, Beidou 1, Beidou 2, and the integrated navigation device respectively, and the priorities of each navigation device are in descending order as GPS1, GPS2, Beidou 1, Beidou 2, and the integrated navigation device.
10. The navigation signal priority processing method according to claim 1, characterized in that: The timer timing time is 400ms ≤ t ≤ 600ms.
Citation Information
Patent Citations
Method for judging vehicle navigation location deviation
CN106403979A
Method for preferentially selecting navigation information of multiple inertial navigation devices
CN115060275A