Space system multi-flight control coordination control method and system
By introducing a self-recommendation election mechanism into the multi-flight control node system, the coordination synchronization problem after the coordinator crashes is solved, the coordinated control and redundant control of multiple flight control nodes are realized, and the stability of the system and the election efficiency are improved.
Patent Information
- Application Number
- CN202510481228.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-16
- Publication Date
- 2025-10-10
- Estimated Expiration
- 2045-04-16
AI Technical Summary
In the existing technology, aerospace systems with multiple flight control nodes lack an effective coordination and synchronization decision-making mechanism. In particular, when the coordinator fails, a new coordinator cannot be automatically selected, resulting in insufficient system redundancy control.
By implementing a self-recommendation election mechanism through communication between multiple flight control nodes, self-recommendation elections are carried out in a time-sharing manner to elect a coordination node, ensuring that a new coordinator can be automatically selected when the coordinator fails, and coordinated control is carried out at fixed solution cycle intervals.
It realizes the coordinated and synchronous decision-making of multiple flight control nodes, supports effective redundant control after a single node fails abnormally, improves the stability and election efficiency of the system, and avoids network communication conflicts.
Smart Images

Figure CN120386249B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of aerospace flight control, and in particular to a method and system for coordinated control of multiple flight controls in an aerospace system. Background Art
[0002] Traditional space launch vehicles deploy only a single flight control computer. With technological advancements, the use of multiple flight control nodes for parallel computing has become mainstream. Existing multi-mode flight control systems are currently being deployed across various launch vehicle models, but effective control models have yet to be established at the software and algorithm levels. Existing triple-module redundant onboard computer architectures focus on hardware interface redundancy and two-out-of-three control logic, or rely on a specific hardware architecture for triple-module redundant control systems. These systems achieve triple-module redundant control through a combination of hardware and software.
[0003] In the process of implementing the present invention, the applicant discovered that the prior art has at least the following problems:
[0004] How to achieve coordinated synchronization decisions among multiple flight control nodes based on communication between them, and automatically select a new coordinator when the current coordinator fails. Summary of the Invention
[0005] Embodiments of the present invention provide a method and system for coordinated control of multiple flight control nodes in an aerospace system, to address the problems of how to achieve coordinated and synchronized decision-making among multiple flight control nodes based on communication between the nodes, and to automatically select a new coordinator when the current coordinator fails.
[0006] To achieve the above objectives, on the one hand, an embodiment of the present invention provides a method for coordinated control of multiple flight control nodes in an aerospace system, which is adopted by a system composed of multiple flight control nodes, comprising:
[0007] In response to the start of the current solution cycle, if the flight control nodes of the participating roles do not receive the start message, the flight control nodes of the participating roles that have not received the start message conduct self-recommendation elections in a time-sharing manner to elect a flight control node from the flight control nodes of the participating roles that have not received the start message as the flight control node of the coordinating role in the current solution cycle;
[0008] If all the flight control nodes of the participating roles receive the start message or elect the flight control node of the coordinating role in the current solution cycle, the flight control node of the coordinating role in the current solution cycle coordinates and controls the flight control nodes of the participating roles to complete the solution and execution of the flight control command corresponding to the current solution cycle;
[0009] In which, the solution cycle is periodically triggered continuously at fixed solution cycle intervals; the start message is a message sent by the flight control node of the coordination role in the previous solution cycle to the flight control node of the coordination role in the current solution cycle in response to the start of the current solution cycle to the flight control nodes of all participating roles; all flight control nodes in the system except the flight control node of the coordination role are defaulted to the flight control nodes of the participating roles at the beginning of the solution cycle.
[0010] On the other hand, an embodiment of the present invention provides a multi-flight control coordination and control system for an aerospace system, the system comprising: a plurality of flight control nodes; the roles of each flight control node including a coordination role, a participating role, and a candidate role;
[0011] The participating flight control node is configured to respond to the start of the current solution cycle and, if it does not receive a start message, conduct a self-recommendation election in a time-sharing manner to elect a flight control node from the participating flight control nodes that have not received a start message as the coordinating flight control node in the current solution cycle;
[0012] The flight control node of the coordinating role in the current solution cycle is used to coordinate and control the flight control nodes of the participating roles to complete the solution and execution of the flight control commands corresponding to the current solution cycle;
[0013] In which, the solution cycle is periodically triggered continuously at fixed solution cycle intervals; the start message is a message sent by the flight control node of the coordination role in the previous solution cycle to the flight control node of the coordination role in the current solution cycle in response to the start of the current solution cycle to the flight control nodes of all participating roles; all flight control nodes in the system except the flight control node of the coordination role are defaulted to the flight control nodes of the participating roles at the beginning of the solution cycle.
[0014] The above technical solution has the following beneficial effects: a redundant control method for distributed control is implemented through election coordination in an aerospace control system with multiple flight control nodes, coordinated control of multi-mode flight control nodes is achieved by assigning roles to flight control nodes, and after a single node fails abnormally, the remaining systems can still rely on existing methods for effective redundant control, and coordinated control of distributed redundant flight control systems with three or more modes is supported. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0016] Figure 1 This is a flow chart of a method for coordinated control of multiple flight controllers in an aerospace system according to one embodiment of the present invention;
[0017] Figure 2 This is an architectural diagram of a multi-flight control coordination control system for an aerospace system according to one embodiment of the present invention;
[0018] Figure 3 This is a schematic diagram of flight control node role conversion according to one embodiment of the present invention;
[0019] Figure 4 This is a schematic diagram of seven elements of a flight control node according to one embodiment of the present invention;
[0020] Figure 5 This is a schematic diagram of data message types and formats between different roles in one embodiment of the present invention;
[0021] Figure 6 This is another flow chart of a method for coordinated control of multiple flight controllers in an aerospace system according to one embodiment of the present invention. DETAILED DESCRIPTION
[0022] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.
[0023] On the one hand, if Figure 1 As shown, an embodiment of the present invention provides a method for coordinated control of multiple flight control nodes in an aerospace system, which is adopted by a system composed of multiple flight control nodes, including:
[0024] Step S10, in response to the start of the current solution cycle, if the flight control nodes of the participating roles have not received the start message, the flight control nodes of the participating roles that have not received the start message conduct self-recommendation elections in a time-sharing manner to elect a flight control node from the flight control nodes of the participating roles that have not received the start message as the flight control node of the coordinating role in the current solution cycle;
[0025] Step S11: If all the flight control nodes of the participating roles receive the start message or elect the flight control node of the coordinating role in the current solution cycle, the flight control node of the coordinating role in the current solution cycle coordinates and controls the flight control nodes of the participating roles to complete the solution and execution of the flight control command corresponding to the current solution cycle;
[0026] In which, the solution cycle is periodically triggered continuously at fixed solution cycle intervals; the start message is a message sent by the flight control node of the coordination role in the previous solution cycle to the flight control node of the coordination role in the current solution cycle in response to the start of the current solution cycle, and to the flight control nodes of all participating roles; all flight control nodes in the system except the flight control node of the coordination role are defaulted to the flight control nodes of the participating roles at the beginning of the solution cycle.
[0027] In some embodiments, the system's solution cycles are periodically triggered continuously at fixed solution cycle intervals. These intervals can be pre-set based on the specific real-time nature of the solution. The solution cycles can be triggered by a unified external hardware signal that arrives synchronously at all flight control nodes; thus, each flight control node can simultaneously respond to the hardware signal and, in turn, the start of the solution cycle. In the initial state of system power-up, each flight control node assumes a participant role by default. This embodiment of the present invention relies on a reliable communication link between flight control nodes. That is, if no communicating flight control nodes experience any faults, a message sent by a flight control node will be guaranteed to reach other flight control nodes in the system via the communication link. If a flight control node fails to receive the start message within a certain period of time after the start of the solution cycle, and if the flight control node that did not receive the start message does not experience any faults, then there is likely no flight control node in the system with an active coordinating role. This could be due to an initial system reset or a fault in the flight control node that served as the coordinator in the previous solution cycle, making it unable to continue functioning in the current solution cycle. If a flight control node doesn't receive a start message within a certain period of time after the start of a solution cycle, it will conduct a self-nomination election in a time-sharing manner. This self-nomination election involves a flight control node that hasn't received a start message recommending itself to other flight control nodes in the system as the coordinator. If the other flight control nodes respond with an approval, the proposed flight control node becomes the coordinator for the current solution cycle. If the approval is rejected, the next flight control node that hasn't received a start message will continue the self-nomination election until a coordinator is elected. Typically, the self-nomination election requires the other flight control nodes to determine whether the proposed flight control node's status is up-to-date. If the proposed flight control node's status is up-to-date, the other flight control nodes will respond with an approval; otherwise, they will respond with a rejection. A flight control node that served as the coordinator in the previous solution cycle, provided it has no faults, can continue serving as the coordinator in the current solution cycle. Other flight control nodes default to participating roles at the beginning of each solution cycle. If the participating flight control nodes haven't received a start message, they can perform self-elections in a timed manner. This can prevent communication conflicts within the system caused by all participating flight control nodes performing self-elections simultaneously. Furthermore, in the system's initial state, there are no coordinating flight control nodes yet, and all participating flight control nodes are in their initial state. As long as the first participating flight control node to execute the election process method performs self-election, it will be selected as the coordinating flight control node, significantly improving the system's efficiency in selecting coordinating flight control nodes.At the beginning of each solution cycle, the state of each participating role is synchronized through a start message. The flight control nodes of the participating roles without faults can all receive the start message normally, thereby achieving the state unification of the flight control nodes of the participating roles and the flight control nodes of the coordinating role. In the absence of the system initial state, assuming that the flight control node of the coordinating role in the previous solution cycle fails, then at the beginning of the current solution cycle, there is no available flight control node of the coordinating role. However, at the beginning of the previous solution cycle, the states of each participating role have been synchronized. Therefore, at this time, through the self-recommendation election of a new flight control node of the coordinating role by the flight control nodes of the participating roles, the flight control node with the latest state can still be selected once or a few times. Thus, the embodiment of the present invention can select the flight control node with the latest state in the current system as the flight control node of the coordinating role after a limited number of self-recommendation elections, that is, generally without requiring all flight control nodes of the participating roles to perform self-recommendation elections. In the current solution cycle, once a flight control node of the coordinating role is available, the flight control node of the coordinating role in the current solution cycle coordinates and controls the flight control nodes of the participating roles to complete the solution and execution of the flight control commands corresponding to the current solution cycle.
[0028] The embodiments of the present invention have the following technical effects: when there is no available flight control node in the system to perform the coordination role, each participating flight control node can perform self-recommendation elections in a time-sharing manner. This allows the remaining systems to continue to rely on existing methods for effective redundant control after a single node fails abnormally, supporting the coordinated control of distributed redundant flight control systems with three or more modes. Furthermore, each flight control node performs the elections in a time-sharing manner, thereby preventing each flight control node from initiating an election operation simultaneously, avoiding network communication conflicts, and improving election efficiency.
[0029] Further, in response to the start of the current solution cycle, if the flight control nodes of the participating roles do not receive the start message, the flight control nodes of the participating roles that have not received the start message perform self-recommendation elections in a time-sharing manner to elect a flight control node from the flight control nodes of the participating roles that have not received the start message as the flight control node of the coordinating role in the current solution cycle, including:
[0030] In response to the start of the current solution cycle, if the flight control node of the participating role does not receive the start message within the corresponding start message timeout period, then when the corresponding start message timeout period times out, the flight control node of the participating role that times out switches its role to the candidate role and becomes the flight control node of the candidate role;
[0031] The flight control node of the candidate role sets the status information in the candidate message according to the locally recorded status information, and sends the candidate message to the flight control nodes of all participating roles;
[0032] All participating flight control nodes receive the candidate message;
[0033] The flight control node of each participating role compares the status information in the candidate message with the status information of the flight control node of the participating role. If the status information of the flight control node of the participating role is newer than the status information in the candidate message, the flight control node of the participating role generates a voting message with a rejection result; otherwise, it generates a voting message with an approval result and sends the voting message to the flight control node of the candidate role.
[0034] The flight control node of the candidate role collects the voting messages of the flight control nodes of all the participating roles, and counts the number of voting messages with the voting result of approval. If the number of voting messages with the voting result of approval exceeds half of the number of flight control nodes of all participating roles, the flight control node of the candidate role sets its own role to the coordination role and obtains the flight control node of the coordination role in the current solution cycle. Otherwise, the flight control node of the candidate role switches its own role to the participation role and becomes the flight control node of the participation role again.
[0035] Among them, the start message timeout times corresponding to each flight control node are different, and all start message timeout times are greater than the time required for the flight control node of the coordination role to respond to the start of the solution cycle and send a start message, and the time difference between any two start message timeout times is greater than the time required to perform a self-recommendation election.
[0036] Preferably, the time required for the flight control node in the coordination role to send a start message in response to the start of the solution cycle is 0.5 milliseconds.
[0037] In some embodiments, Figure 3A schematic diagram of the state transition of the flight control node between different roles is given. After the start of each solution cycle, if the flight control node of each participating role (i.e., participant) does not receive the start message within the timeout period of its corresponding start message, it will switch its role to the candidate role and become the flight control node of the candidate role (i.e., candidate). The flight control node of the candidate role will send the candidate message to the flight control nodes of the participating roles in the system and wait for the flight control nodes of the participating roles to return the voting message. If more than half of the participating roles return a voting message of approval to the flight control node of the candidate role, the flight control node of the candidate role will switch its role to the coordination role and become the flight control node of the coordination role; if If the flight control node of the candidate role does not receive voting messages from more than half of the flight control nodes of the participating roles within the preset candidate waiting time after sending the candidate message, a candidate timeout occurs and the candidate message is resent. Under the condition that the embodiment of the present invention is based on a reliable communication link, under normal circumstances, the flight control node of the candidate role where the candidate timeout occurs itself has a fault. If the flight control node of the candidate role receives voting messages returned by more than half of the flight control nodes of the participating roles, and more than half of the voting results are rejection, the flight control node of the candidate role is not selected, and its own role is switched to the participating role, and it becomes the flight control node of the participating role again. For the flight control node that has become the coordinating role, additional fault-tolerant judgment is provided. When the flight control node of the coordinating role receives the solution result from the flight control node of the participating role, it will also receive the status recorded locally by the flight control node of the participating role. The solution result obtained in the current solution cycle is still a solution for the space flight data in the current cycle, and is still a valid solution result. The flight control node of the coordinating role in the current solution cycle can continue to generate flight control commands and execute flight control commands. If the flight control node of the coordinating role finds a flight control node with an updated status through the status recorded locally by the flight control node of the participating role, it will switch its own role back to the participating role, which will result in the flight control node of the coordinating role not existing in the next solution cycle, and the election will be restarted to elect the flight control node with the latest status as the flight control node of the coordinating role in the next solution cycle. By comparing the old and new relationships between the various status information recorded locally and the corresponding status information recorded in the candidate message by the flight control node of each participating role, when the various status information recorded locally is older than the corresponding status information recorded in the candidate message, the flight control node of the candidate role that agrees to send the candidate message is elected as the flight control node of the coordination role. When more than half of the flight control nodes of the participating roles agree that the flight control node of the candidate role that sends the candidate message is elected as the flight control node of the coordination role, the flight control node of the candidate role that sends the candidate message will modify its own role to the coordination role. If more than half of the flight control nodes of the participating roles refuse, the flight control node of the candidate role that sends the candidate message will be switched back to the flight control node of the participating role.Each flight control node is set with its own start message timeout. All flight control nodes respond to the start of the same solution cycle and calculate the start message timeout from the same moment. However, the start message timeout corresponding to each flight control node is different. Therefore, if the start message is not received, the flight control nodes of the participating roles will become candidate nodes in turn at different times. Two or more flight control nodes will not switch from participating roles to candidate roles at the same time. The election process method refers to the process in which the flight control node starts from the participating role to the candidate role, sends out a candidate message under the candidate role, and receives voting messages from more than half of the flight control nodes of the participating roles, and updates the role of the flight control node of the candidate role that sends the candidate message to a coordination role or a participating role based on the voting message obtained. That is, in the embodiment of the present invention, in response to the start of the current solution cycle, if any one or more flight control nodes of the participating roles do not receive the start message within the corresponding start message timeout, then the flight control nodes of the participating roles that do not receive the start message within the corresponding start message timeout will be replaced. point, switches its own role to the candidate role, and becomes the flight control node of the candidate role; the flight control node of the candidate role collects voting messages from the flight control nodes of all participating roles, and counts the number of voting messages with agreed voting results; if the number of voting messages with agreed voting results exceeds half of the number of flight control nodes of all participating roles, the flight control node of the candidate role sets its own role to the coordination role, and obtains the flight control node of the coordination role in the current solution cycle; otherwise, the flight control node of the candidate role switches its own role to the participating role, and becomes the flight control node of the participating role again.
[0038] The embodiment of the present invention has the following technical effects: by setting different start message timeout times corresponding to different flight control nodes, in order to enable the flight control nodes of each participating role to switch to the candidate role in a time-sharing manner when the start message is not received, thereby avoiding multiple flight control nodes from becoming candidate roles at the same time, thereby avoiding the occurrence of sending candidate messages at the same time, resulting in communication conflicts within the system, and avoiding the complex situation where the flight control nodes of the participating roles need to handle candidate messages from multiple sources that appear at the same time. The start message timeout time is greater than the time required for the flight control node of the coordinating role to respond to the start of the solution cycle and send the start message, which can ensure that when the start message can be sent normally, the start message can reach the flight control nodes of each participating role in time within the start message timeout time of the flight control nodes of each participating role, thereby avoiding the competition problem between the arrival of the start message and the start message timeout judgment of the flight control nodes of the participating roles. The time difference between any two start message timeouts is greater than the time required to perform a self-nomination election. This ensures that when each flight control node that enters the candidate role performs the self-nomination election, no other flight control node accidentally switches from the participating role to the candidate role. This avoids two or more flight control nodes in the candidate role from performing the self-nomination election at the same time, reduces the complexity of the candidate process, and improves the predictability, stability, and maintainability of the system behavior.
[0039] Furthermore, each flight control node is preset with a different unique number;
[0040] The start message timeout time corresponding to each flight control node is randomly generated according to the following formula (1):
[0041] time=(T+k*Span+k*rand) (1)
[0042] Among them, time is the start message timeout period corresponding to the flight control node; T is the time required for the flight control node of the coordination role to respond to the start of the solution cycle and send a start message; Span represents the time required for the flight control node of the candidate role to perform a self-recommendation election; k is the unique number of the flight control node; rand is a random number.
[0043] In some embodiments, each flight control node will preset a different unique number, preferably, the unique number is a numerical value; the time T required for the flight control node of the coordination role to respond to the start of the solution cycle and send a start message can be obtained through multiple test statistics, for example, the maximum value of the required time obtained from multiple tests can be taken, or a margin can be added on the basis of the maximum value. The setting of Span is based on the time required for a flight control node of a candidate role to complete a self-recommendation election. For example, the maximum value of the time required to complete a self-recommendation election can be determined through multiple test statistics, and the maximum value is used as the value of Span, or a margin can be added on the basis of the maximum value as the value of Span. Preferably, the value of T is 0.5 milliseconds. Preferably, the value of Span is 0.1 milliseconds; preferably, rand is a random number greater than zero.
[0044] The embodiment of the present invention has the following technical effects: the start message timeout is controlled to be greater than T milliseconds, so that the flight control node of the coordination role that already exists at the beginning of each solution cycle can complete the sending of the start message, and avoid the flight control node of any participating role from entering the candidate role. k*span can make the time between the flight control nodes of each participating role entering the candidate state at least span milliseconds, so as to avoid more than one flight control node of the candidate role starting the self-recommendation election at the same time, and to avoid the situation where the flight control node of another candidate role starts the self-recommendation election while the flight control node of the previous candidate role is executing the self-recommendation election. After the flight control node that entered the candidate state first selects the coordination node, the new coordination node has time to send a sampling message. k*rand can further randomly increase the time interval between the flight control nodes of the participating roles entering the candidate state, thereby increasing the safety margin.
[0045] Furthermore, the status information recorded locally by the flight control node includes: locally recorded coordination ID, consistent command ID, and individual command ID;
[0046] The flight control node of the candidate role sets the status information in the candidate message according to the locally recorded status information, including:
[0047] The flight control node of the candidate role uses the locally recorded consistent command ID as the consistent command ID in the candidate message, the locally recorded individual command ID as the individual command ID in the candidate message, and calculates the coordination ID in the candidate message according to the following formula to obtain the candidate message:
[0048] ID 报 =(floor(ID 本 ÷N)+1)*N+k (2)
[0049] Among them, ID 报is the coordination ID in the candidate message; floor() is the rounding function; ID 本 is the coordination ID recorded locally by the candidate role’s flight control node; N is the total number of flight control nodes in the system; k is the unique number of the candidate role’s flight control node;
[0050] The flight control node of the candidate role sets its own role as a coordination role, further comprising:
[0051] The flight control node of the candidate role updates the locally recorded coordination ID using the new coordination ID calculated by the following formula, and sets the locally recorded individual command ID and consistent command ID to 0:
[0052] ID 新 =(floor(ID 本 ÷N)+1)*N+k (3)
[0053] Among them, ID 新 is the new coordination ID; floor() is the rounding down function; ID 本 is the coordination ID recorded locally by the candidate role’s flight control node; N is the total number of flight control nodes in the system; k is the unique number of the candidate role’s flight control node;
[0054] The fields of the candidate message include: the coordination ID, consistent command ID and separate command ID in the candidate message;
[0055] Each flight control node is preset with a different unique number, and the initial value of the coordination ID recorded locally by each flight control node is set to the unique number of the flight control node; the consistent command ID recorded locally by each flight control node is initialized to 0 when the flight control node switches from a candidate role to a coordination role, and is incremented by the flight control node of the coordination role when generating a flight control command, and is synchronized to the flight control nodes of the participating roles through a start message; the separate command ID recorded locally by each flight control node is used as a unique identifier for space flight data during the current coordination role of the flight control node of the coordination role; the space flight data is obtained by the flight control node of the coordination role collecting on-board sensors in each solution cycle.
[0056] In some embodiments, each flight control node is preset with a unique number different from each other, and the initial value of the local recorded coordination ID of each flight control node is set as the unique number of the flight control node. Before the flight control node of the candidate role sends the candidate message to other flight control nodes, the coordination ID in the candidate message is generated according to the local recorded coordination ID based on formula (2). If the flight control node of the candidate role is finally agreed to become the flight control node of the coordination role, the flight control node of the candidate role will calculate a new coordination ID based on formula (3) according to the local recorded coordination ID, and update the local recorded coordination ID with the new coordination ID. Formula (2) and formula (3) are the same, but are used at different times, and both are the coordination ID in the candidate message and the new coordination ID calculated based on the same local recorded coordination ID of the flight control node of the same candidate role. The coordination ID in the candidate message sent by the flight control node of the candidate role and the new coordination ID calculated after being agreed to become the coordination role are essentially the same. The coordination ID is incremented by N when the flight control node becomes the coordination role from the candidate role. In the case of 32-bit unsigned integer representation, it is incremented by one every calculation period (for example, 10 milliseconds), and it needs 497 / N days to appear rollover overflow, where N is the total number of flight control nodes in the system.
[0057] Further, the state information recorded locally by each flight control node includes the local recorded coordination ID, the consistent command ID and the individual command ID;
[0058] The flight control node of the participating role compares the state information in the candidate message with the state information of the flight control node of the participating role. If the state information of the flight control node of the participating role is newer than the state information in the candidate message, the flight control node of the participating role generates a voting message with a voting result of rejection, otherwise generates a voting message with a voting result of agreement, including:
[0059] The flight control node of the participating role compares the size of the local recorded coordination ID and the coordination ID in the candidate message, the size of the local recorded consistent command ID and the consistent command ID in the candidate message, and the size of the local recorded individual command ID and the individual command ID in the candidate message;
[0060] If the coordination ID in the candidate message is greater than the coordination ID recorded locally by the flight control node of the participating role, and the consistent command ID in the candidate message is greater than or equal to the consistent command ID recorded locally by the flight control node of the participating role, and the separate command ID in the candidate message is greater than or equal to the separate command ID recorded locally by the flight control node of the participating role, then the flight control node of the participating role uses the coordination ID in the candidate message to update the coordination ID recorded locally by the flight control node of the participating role, sets both the consistent command ID and the separate command ID recorded locally to 0, and encapsulates the values of the coordination ID, consistent command ID and separate command ID recorded locally into the voting message, and sets the voting result of the voting message to approval; otherwise, the flight control node of the participating role encapsulates the values of the coordination ID, consistent command ID and separate command ID recorded locally into the voting message, and sets the voting result of the voting message to rejection;
[0061] The fields of the voting message include: the coordination ID, consistent command ID, separate command ID and voting result in the voting message;
[0062] Each flight control node is preset with a different unique number, and the initial value of the coordination ID recorded locally by each flight control node is set to the unique number of the flight control node; the consistent command ID recorded locally by each flight control node is initialized to 0 when the flight control node switches from a candidate role to a coordination role, and is incremented by the flight control node of the coordination role when generating a flight control command, and is synchronized to the flight control nodes of the participating roles through a start message; the separate command ID recorded locally by each flight control node is used as a unique identifier for space flight data during the current coordination role of the flight control node of the coordination role; the space flight data is obtained by the flight control node of the coordination role collecting on-board sensors in each solution cycle.
[0063] Furthermore, the state information recorded locally by each flight control node includes: locally recorded coordination ID, consistent command ID, individual command ID, and local command ID;
[0064] The flight control node of the coordinating role in the current solution cycle coordinates and controls the flight control nodes of the participating roles to complete the solution and execution of the flight control command corresponding to the current solution cycle, including:
[0065] The flight control node in the coordination role in the current solution cycle collects space flight data, uses the value of the local command ID+1 as the individual command ID corresponding to the collected space flight data, uses the collected space flight data as the space flight data in the collection message, uses the individual command ID corresponding to the collected space flight data as the individual command ID in the collection message, and uses the coordination ID locally recorded by the flight control node in the coordination role in the current solution cycle as the coordination ID in the collection message, to obtain the collection message;
[0066] The flight control node of the coordination role in the current solution cycle sends the collection message to the flight control nodes of all participating roles;
[0067] The flight control node of each participating role receives the collected message, obtains the individual command ID and the space flight data in the collected message, uses the individual command ID in the collected message to update the locally recorded individual command ID and local command ID, solves the space flight data, and obtains the solution result and navigation, guidance and control process parameters corresponding to the space flight data;
[0068] Each participating flight control node assigns its locally recorded coordination ID, the individual command ID from the acquisition message, the navigation guidance control process parameters, and the solution result to the coordination ID, the individual command ID, the navigation guidance control process parameters, and the solution result in the result message, respectively, to obtain a corresponding result message;
[0069] Each participating flight control node sends its corresponding result message to the flight control node of the coordinating role in the current solution cycle;
[0070] After receiving the result messages corresponding to more than half of the flight control nodes of the participating roles in the current solution cycle, the flight control node of the coordinating role obtains the navigation guidance control process parameters and solution results from the received result messages;
[0071] Generate a flight control command corresponding to the current solution cycle based on the acquired navigation guidance control process parameters and solution results, execute the flight control command, increment the local command ID recorded locally by the flight control node of the coordination role in the current solution cycle by 1, and assign the incremented local command ID value to the locally recorded consistent command ID and individual command ID;
[0072] The fields of the acquisition message include: the coordination ID, the individual command ID and the space flight data in the acquisition message;
[0073] Each flight control node is preset with a different unique number, and the initial value of the coordination ID 0 recorded locally by each flight control node is set to the unique number of the flight control node; the consistent command ID recorded locally by each flight control node is initialized to 0 when the flight control node switches from a candidate role to a coordination role, and is incremented by the flight control node in the coordination role when generating a flight control command, and is synchronized to the flight control nodes in the participating roles through a start message; the separate command ID recorded locally by each flight control node is used to identify the space flight data solved by the flight control node.
[0074] In some embodiments, the coordinating flight control node collects flight data and sends it to all other flight control nodes for solution. Using multiple flight control nodes for solution is intended to prevent interference from space radiation during flight, which can cause abnormal changes in the storage unit data within a few flight control nodes, resulting in unusable final solution results. Interference from different flight control nodes can cause some nodes to calculate incorrectly. Since interference from space radiation typically causes errors in a small number of flight control nodes, a majority vote is performed on the results calculated by multiple flight control nodes, selecting the majority result to maximize the accuracy of the final solution used.
[0075] Furthermore, after receiving the result messages corresponding to more than half of the flight control nodes of the participating roles in the current solution cycle, the flight control node of the coordinating role obtains the navigation guidance control process parameters and solution results from the received result messages, including:
[0076] The flight control node of the coordinating role in the current solution cycle selects, from the result messages corresponding to the flight control nodes of the multiple participating roles received, a result message whose coordination ID is equal to the coordination ID recorded locally by the coordinating role in the current solution cycle and whose individual command ID is greater than the local command ID recorded locally by the coordinating role in the current solution cycle as a to-be-selected result message;
[0077] The flight control node of the coordination role in the current solution cycle performs similarity screening on the solution results in the multiple candidate result messages obtained, and uses the navigation, guidance and control process parameters and solution results in one or more candidate result messages whose similarity exceeds a preset similarity threshold as the navigation, guidance and control process parameters and solution results obtained from all result messages.
[0078] In some embodiments, each participating flight control node uses part of the data collected by itself in the solving process in addition to the spaceflight data from the coordinating flight control node, and the results collected by each flight control node may have deviations, which may cause the solving results and navigation guidance control process parameters obtained by different participating flight control nodes to be different. However, the difference is usually small, and the solving results and navigation guidance control process parameters with large deviations or outliers can be excluded through similarity screening or cluster analysis, so as to retain the most correct solving results and navigation guidance control process parameters for generating flight control commands.
[0079] Further, the method further comprises:
[0080] If the candidate flight control node receives the collection message sent by the coordinating flight control node, and the local recorded coordination ID of the candidate flight control node is less than or equal to the coordination ID in the collection message, the candidate flight control node switches itself to a participating flight control node.
[0081] The collection message is collected by the coordinating flight control node, and the spaceflight data and the local recorded coordination ID are encapsulated to form the collection message, which is sent to the candidate flight control node by the coordinating flight control node.
[0082] In some embodiments, since each flight control node is independently operated, after the candidate flight control node elected by the self-checking in the prior art becomes the coordinating flight control node, other participating flight control nodes may become candidate flight control nodes because they reach the corresponding start message timeout time before the new coordinating flight control node sends the collection message. If the candidate flight control node receives the collection message, and the coordination ID in the collection message is greater than the local recorded coordination ID of the candidate flight control node, the candidate flight control node should recognize the coordinating flight control node and switch to a participating flight control node to obtain data from the collection message to perform solving and generate solving results.
[0083] The embodiments of the application have the following technical effects: after obtaining the coordinating flight control node, if the coordinating flight control node is the latest state in the system, the candidate flight control node can be switched to a participating flight control node by sending a collection message, so as to ensure that the work cooperation between the flight control nodes in the system is consistent, and the situation that part of the flight control nodes solve data under the coordination of the coordinating flight control node and one or part of the flight control nodes still try to elect does not occur.
[0084] Further, the method further comprises:
[0085] If the flight control node of the candidate role receives a collection message sent by the flight control node of the coordinating role, and the coordination ID recorded locally by the flight control node of the candidate role is greater than the coordination ID in the collection message, the flight control node of the coordinating role switches to the flight control node of the participating role.
[0086] In some embodiments, if the locally recorded coordination ID of the flight control node of the candidate role is greater than the coordination ID in the acquisition message, it means that the flight control node of the coordination role recommended by the flight control node of the previous candidate role is not the latest one. At this time, in order to keep the overall status of the system up to date, the flight control node of the current coordination role needs to give up the coordination role and switch to the participating role. The flight control node currently in the candidate role will continue to recommend itself for election because it is in the candidate role, and will be selected as the flight control node of the new coordination role, thereby keeping the overall status of the system up to date.
[0087] On the other hand, Figure 2 As shown, an embodiment of the present invention provides a multi-flight control coordination and control system for an aerospace system, the system comprising: a plurality of flight control nodes; the roles of each flight control node include a coordination role, a participating role, and a candidate role;
[0088] The participating flight control node is configured to respond to the start of the current solution cycle and, if it does not receive a start message, conduct a self-recommendation election in a time-sharing manner to elect a flight control node from the participating flight control nodes that have not received a start message as the coordinating flight control node in the current solution cycle;
[0089] The flight control node of the coordinating role in the current solution cycle is used to coordinate and control the flight control nodes of the participating roles to complete the solution and execution of the flight control commands corresponding to the current solution cycle;
[0090] In which, the solution cycle is periodically triggered continuously at fixed solution cycle intervals; the start message is a message sent by the flight control node of the coordination role in the previous solution cycle to the flight control node of the coordination role in the current solution cycle in response to the start of the current solution cycle to the flight control nodes of all participating roles; all flight control nodes in the system except the flight control node of the coordination role are defaulted to the flight control nodes of the participating roles at the beginning of the solution cycle.
[0091] Furthermore, the flight control node of the participating role is specifically configured to respond to the start of the current solution cycle. If the start message is not received within the corresponding start message timeout period, then when the corresponding start message timeout period times out, the flight control node of the participating role that times out switches its own role to the candidate role and becomes the flight control node of the candidate role.
[0092] The flight control node of the candidate role is used to set the status information in the candidate message according to the locally recorded status information, and send the candidate message to the flight control nodes of all participating roles;
[0093] All participating flight control nodes are configured to receive the candidate message;
[0094] The flight control node of each participating role is further configured to compare the state information in the candidate message with the state information of the flight control node of the participating role. If the state information of the flight control node of the participating role is newer than the state information in the candidate message, the flight control node of the participating role generates a voting message with a rejection result; otherwise, the flight control node generates a voting message with an approval result and sends the voting message to the flight control node of the candidate role.
[0095] The flight control node of the candidate role is used to collect voting messages from the flight control nodes of all participating roles, and count the number of voting messages with approval results. If the number of voting messages with approval results exceeds half of the number of flight control nodes of all participating roles, the flight control node of the candidate role sets its own role to the coordination role and obtains the flight control node of the coordination role in the current solution cycle. Otherwise, the flight control node of the candidate role switches its own role to the participation role and becomes the flight control node of the participation role again.
[0096] Among them, the start message timeout times corresponding to each flight control node are different, and all start message timeout times are greater than the time required for the flight control node of the coordination role to respond to the start of the solution cycle and send a start message, and the time difference between any two start message timeout times is greater than the time required to perform a self-recommendation election.
[0097] Preferably, the time required for the flight control node in the coordination role to send a start message in response to the start of the solution cycle is 0.5 milliseconds.
[0098] Furthermore, each flight control node is preset with a different unique number;
[0099] The start message timeout time corresponding to each flight control node is randomly generated according to formula (1).
[0100] Furthermore, the state information recorded locally by the flight control node includes: locally recorded coordination ID, consistent command ID, and individual command ID;
[0101] The flight control node of the candidate role is further configured to use the locally recorded consistent command ID as the consistent command ID in the candidate message, the locally recorded individual command ID as the individual command ID in the candidate message, and calculate the coordination ID in the candidate message according to formula (2) to obtain the candidate message;
[0102] The flight control node of the candidate role is further used to update the coordination ID recorded locally using the new coordination ID calculated by formula (3), and set the individual command ID and consistent command ID recorded locally to 0;
[0103] The fields of the candidate message include: the coordination ID, consistent command ID and separate command ID in the candidate message;
[0104] N is the total number of flight control nodes in the system; each flight control node is preset with a different unique number, and the initial value of the coordination ID recorded locally by each flight control node is set to the unique number of the flight control node; the consistent command ID recorded locally by each flight control node is initialized to 0 when the flight control node switches from a candidate role to a coordination role, and is incremented by the flight control node of the coordination role when generating a flight control command, and is synchronized to the flight control nodes of the participating roles through a start message; the separate command ID recorded locally by each flight control node is used as a unique identifier for space flight data during the current coordination role of the flight control node of the coordination role; the space flight data is obtained by the flight control node of the coordination role from the onboard sensors collected in each solution cycle.
[0105] Furthermore, the state information recorded locally by each flight control node includes: locally recorded coordination ID, consistent command ID, and individual command ID;
[0106] The flight control node of the participating role is also used to compare the size of the locally recorded coordination ID and the coordination ID in the candidate message, the locally recorded consistent command ID and the consistent command ID in the candidate message, and the locally recorded separate command ID and the separate command ID in the candidate message; if the coordination ID in the candidate message is greater than the locally recorded coordination ID of the flight control node of the participating role, and the consistent command ID in the candidate message is greater than or equal to the locally recorded consistent command ID of the flight control node of the participating role, and the separate command ID in the candidate message is greater than or equal to the participating role If the flight control node of the participating role has a separate command ID recorded locally, the flight control node of the participating role uses the coordination ID in the candidate message to update the coordination ID recorded locally by the flight control node of the participating role, sets the consistent command ID and the separate command ID recorded locally to 0, and encapsulates the values of the coordination ID, consistent command ID and separate command ID recorded locally into the voting message, and sets the voting result of the voting message to approval; otherwise, the flight control node of the participating role encapsulates the values of the coordination ID, consistent command ID and separate command ID recorded locally into the voting message, and sets the voting result of the voting message to rejection;
[0107] The fields of the voting message include: the coordination ID, consistent command ID, separate command ID and voting result in the voting message;
[0108] Each flight control node is preset with a different unique number, and the initial value of the coordination ID recorded locally by each flight control node is set to the unique number of the flight control node; the consistent command ID recorded locally by each flight control node is initialized to 0 when the flight control node switches from a candidate role to a coordination role, and is incremented by the flight control node of the coordination role when generating a flight control command, and is synchronized to the flight control nodes of the participating roles through a start message; the separate command ID recorded locally by each flight control node is used as a unique identifier for space flight data during the current coordination role of the flight control node of the coordination role; the space flight data is obtained by the flight control node of the coordination role collecting on-board sensors in each solution cycle.
[0109] Furthermore, the state information recorded locally by each flight control node includes: locally recorded coordination ID, consistent command ID, individual command ID, and local command ID;
[0110] The flight control node of the coordination role in the current solution cycle is used to collect space flight data, use the value of the local command ID+1 as the separate command ID corresponding to the collected space flight data, use the collected space flight data as the space flight data in the collection message, use the separate command ID corresponding to the collected space flight data as the separate command ID in the collection message, and use the coordination ID locally recorded by the flight control node of the coordination role in the current solution cycle as the coordination ID in the collection message to obtain the collection message; and send the collection message to the flight control nodes of all participating roles;
[0111] Each participating flight control node is further configured to receive the collected message, obtain the individual command ID and the space flight data in the collected message, use the individual command ID in the collected message to update the locally recorded individual command ID and local command ID, solve the space flight data, and obtain the solution result and navigation, guidance and control process parameters corresponding to the space flight data;
[0112] Each participating flight control node is further configured to assign the coordination ID, the individual command ID, the navigation guidance control process parameters, and the solution results recorded locally to the coordination ID, the individual command ID, the navigation guidance control process parameters, and the solution results in the result message, respectively, to obtain a corresponding result message;
[0113] The flight control node of each participating role is also used to send the corresponding result message to the flight control node of the coordinating role in the current solution cycle;
[0114] The flight control node of the coordinating role in the current solution cycle is further used to obtain navigation, guidance and control process parameters and solution results from the received result messages after receiving the corresponding result messages of more than half of the flight control nodes of the participating roles; generate a flight control command corresponding to the current solution cycle according to the obtained navigation, guidance and control process parameters and solution results, execute the flight control command, and increment the local command ID recorded locally by 1 in the flight control node of the coordinating role in the current solution cycle, and assign the incremented local command ID value to the consistent command ID and the separate command ID recorded locally;
[0115] The fields of the acquisition message include: the coordination ID, the individual command ID and the space flight data in the acquisition message;
[0116] Each flight control node is preset with a different unique number, and the initial value of the coordination ID recorded locally by each flight control node is set to the unique number of the flight control node; the consistent command ID recorded locally by each flight control node is initialized to 0 when the flight control node switches from a candidate role to a coordination role, and is incremented by the flight control node in the coordination role when generating a flight control command, and is synchronized to the flight control nodes in the participating roles through a start message; the separate command ID recorded locally by each flight control node is used to identify the space flight data solved by the flight control node.
[0117] Furthermore, the flight control node of the coordination role in the current solution cycle is further configured to select, from the result messages corresponding to the flight control nodes of the multiple participating roles received, a result message having a coordination ID equal to the coordination ID recorded locally by the coordination role in the current solution cycle and a separate command ID greater than the local command ID recorded locally by the coordination role in the current solution cycle as a to-be-selected result message;
[0118] The flight control node of the coordination role in the current solution cycle is also used to perform similarity screening on the solution results in the multiple candidate result messages obtained, and use the navigation, guidance and control process parameters and solution results in one or more candidate result messages whose similarity exceeds a preset similarity threshold as the navigation, guidance and control process parameters and solution results obtained from all result messages.
[0119] Furthermore, the flight control node of the candidate role is further configured to switch itself to the flight control node of the participating role if it receives a collection message sent by the flight control node of the coordinating role and the coordination ID recorded locally by the flight control node of the candidate role is less than or equal to the coordination ID in the collection message;
[0120] The flight control node in the coordination role collects the flight data, encapsulates the flight data and the coordination ID recorded locally, and sends the collected message to the flight control node in the candidate role.
[0121] Furthermore, the flight control node of the candidate role is also used to switch the flight control node of the coordinating role to the flight control node of the participating role if it receives a collection message sent by the flight control node of the coordinating role and the coordination ID recorded locally by the flight control node of the candidate role is greater than the coordination ID in the collection message.
[0122] As for the system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.
[0123] The above technical solutions of the embodiments of the present invention are described in detail below with reference to specific application examples. For technical details not introduced during the implementation process, please refer to the relevant description above.
[0124] The multi-flight control coordination method provided by the embodiments of the present invention is based on the fixed flight control solution cycle commonly used in aerospace systems (for example, a fixed solution cycle of 10ms). Within one cycle, the flight control nodes must complete basic operational steps such as sensor data acquisition, flight control solution (including navigation, guidance, and attitude control calculations), and control output. The multi-flight control coordination method proposed in the embodiments of the present invention solves the problem of coordinated and synchronized decision-making among multiple flight control nodes, ensuring that multiple flight control nodes can elect a coordinator for unified execution and scheduling. In the event of an error such as a coordinator downtime, a new coordinator can be promptly elected to perform periodic scheduling and command.
[0125] The following describes the roles of the flight control nodes in the embodiment of the present invention. In the coordinated control method provided by the embodiment of the present invention, at the beginning of a cycle, each flight control node can receive the same hardware interrupt signal to synchronize the solution cycles of all nodes. The existence of the hardware signal is to ensure that the 10ms cycle of all participants is synchronized. Each flight control node needs to play different roles such as participant, candidate and coordinator in the operation of the algorithm. The description of the roles is as follows:
[0126] Participant (flight control node participating in the role): The default role of each flight control node is participant. Participants respond to commands from candidates and coordinators and respond to various requests. At the beginning of each solution cycle, if the participant does not receive the "start" message from the coordinator within the specified time, the role will change to "candidate";
[0127] Candidate (flight control node of candidate role): A candidate is an intermediate role that is elected from a "participant" to become a "coordinator";
[0128] Coordinator (flight control node with coordination role): Only "candidates" agreed by more than a majority of participants can become coordinators in a round of elections. The coordinator is responsible for the rhythm control of each solution cycle. The coordinator needs to notify all participants of the start of each cycle, collect all sensor data and rocket body status on the rocket, and forward them to all participants. After all participants complete the calculation, the coordinator collects the calculation results of this round and issues control instructions to the control equipment of the rocket body. At the beginning of the next solution cycle, the coordinator notifies all participants of the start of the cycle and the status of the instructions of the previous cycle.
[0129] The three different roles have the following conversion relationships, such as Figure 3 As shown in the figure, all nodes are participants. Even if elected as a coordinator, they must still perform the most basic participant functions. At the beginning of each operation cycle, participants wait for a certain period of time. The waiting time is randomly calculated based on the node's attributes. To ensure that each participant can detect timeouts at different times and handle them accordingly, at the beginning of each cycle, if a coordinator exists among the nodes, it immediately sends a start message to all participants to prevent timeouts. If any participant times out, it becomes a candidate and begins sending candidate requests to other participants for the cycle. After issuing a candidate request, the candidate waits for responses from all participants. If the candidate receives a result message from more than half of the participants, it becomes the coordinator and performs subsequent coordination and control operations. Otherwise, if the candidate learns that it was not elected, it must revert to the participant role. If it does not receive any valid response, it maintains its candidate role and continues to perform candidate operations. If a failure occurs in all flight control nodes, resulting in multiple coordinators, since the coordinator itself is a participant, when it receives a message from another coordinator and learns that its own coordination ID is smaller than the coordination ID in the message, it immediately changes its role from coordinator to participant to resolve the role conflict.
[0130] Data format description: Each flight control node includes a calculation unit and a storage unit. The calculation unit is used to perform mathematical operations such as flight control GNC (Navigation, Guidance, Control), such as Figure 4 As shown, the storage unit needs to store at least seven elements, including coordination ID, command ID, input (space flight data), solution parameters, output (solution results), individual command ID, and consistent command ID.
[0131] Coordination ID: A unique, auto-incrementing ID used when running for coordinator. A 32-bit unsigned integer is recommended. If a coordinator runs for election every flight control solution cycle (incrementing every 10ms), a rollover overflow will occur after 497 / N days, where N is the total number of flight control nodes in the system. The Coordination ID is incremented by N by the candidate during each coordinator election.
[0132] Command ID: "Command" here refers to the command instruction sent by the flight control to the aerospace system actuator during a flight control solution cycle. The command ID is used to represent a command number ID executed during the term of a coordinator. The coordinator ID and the command ID together can uniquely identify a command. The command ID starts from 0 and increments by 1 during the same coordinator term, and increments by 1 for each solution cycle (i.e., command ID = command ID + 1). It is recommended to use an unsigned 32-bit integer representation. The command ID is data stored by each flight control node itself, which is different from the individual command ID and consistent command ID described below;
[0133] Input: Various sensor information collected by the coordinator from the rocket, such as inertial group, satellite navigation, air pressure, vibration, liquid level, current, voltage and other control input data;
[0134] Calculation parameters: After receiving the input data, the flight control computer calculates the data parameters during the calculation process, such as the position, speed, acceleration, angular velocity, altitude and other process data of the rocket;
[0135] Output: The output data calculated by the flight control computer in each solution cycle, such as servo rudder swing instructions, engine adjustment depth, tank boost instructions and other control output data;
[0136] Individual command ID: used to record the current command ID that has been solved. Regardless of whether it is the coordinator or the participant, they all set the individual command ID = local command ID after a round of solution cycle. The local command ID is reset to zero after completing a voting election and is initially 0.
[0137] Consistent command ID: The command has two states: "consistent" and "individual". The coordinator receives the solution results of more than half of the participants and assigns the coordinator's local command ID to the "consistent command ID". In the next solution cycle, the coordinator needs to distribute its own "consistent command ID" to all participants through the consistent command ID in the start message. The participants receive the "Start (Coordination ID, Consistent Command ID)" data message with (Coordination ID, Consistent Command ID) from the coordinator and set the local consistent command ID = the consistent command ID in the start message.
[0138] Message type description: Figure 5 As shown in Figure 2, the data message types and formats between different roles.
[0139] Start message: At the beginning of each flight control solution cycle, the coordinator sends a start message to all participants. The coordination ID in the message content is the local coordination ID of the coordinator, and the consistent command ID is the last command ID value recorded by the current coordinator that has reached the "consistent" state; if a participant finds that the coordination ID and consistent command ID of the start message are greater than or equal to the locally recorded coordination ID and consistent command ID, the consistent command ID in the start message is used to update the local consistent command ID, local command ID, and separate command ID.
[0140] Collection Message: The coordinator distributes collected sensor data and various rocket states as input to all participants. The coordination ID in this message is the coordinator's local coordination ID, and the individual command ID is the new command ID for this round of solution cycle, that is, individual command ID = local command ID + 1. (Note that when encapsulating the collection message, the local command ID itself is not incremented by 1; the value of local command ID + 1 is assigned to the individual command ID in the collection message. This is because after receiving the result message, the individual command ID in the result message must be compared with the local command ID to be considered valid. The local command ID is recalculated from 0 during each coordinator's term and may be repeated.) After receiving the collection message, the participant uses the individual command ID in the message to update the local local command ID and individual command ID and change the local command status to "individual". The individual command ID is used to track the solved data. When it is returned to the coordinator, the coordinator can determine whether the received solution result is the space flight data solution that the coordinator intended. After the coordinator receives the result messages from more than half of the participants, it increments the local command ID recorded locally by the coordinator and assigns the incremented local command ID to the consistent command ID recorded locally.
[0141] Result message: After completing the flight control solution for this cycle, the participant combines the GNC process parameters (navigation guidance control process parameters) and output (i.e., solution result) used in the solution process with the local coordination ID and the individual command ID obtained from the collected message (at this point, the participant has already stored the individual command ID in the collected message in the participant's local record of individual command ID, so the local record of individual command ID can also be directly obtained here) to form a result message;
[0142] Candidate message: the message sent by the candidate to the participant, the candidate hopes to be elected as the coordinator, and sends the coordination ID of the current coordination process to the participant (the calculation method is formula (2), note that when sending the candidate message, the candidate only uses the coordination ID value calculated by formula (2) as the coordination ID in the candidate message, but the candidate does not change the value of the coordination ID recorded locally at this time; when the candidate gets the consent of the majority of participants, it can become a coordinator, and the candidate will update the coordination ID recorded locally to the value of the new coordination ID calculated by formula (3), and will also set the last command ID (i.e. the consistent command ID recorded locally) that has been confirmed as "consistent" to 0; the last command ID that has been confirmed as "consistent" is the consistent command ID obtained by the coordinator in the last calculation period, and if the current coordinator is a new coordinator in the current calculation period, the consistent command ID is set to 0 when the candidate is switched to the coordinator.
[0143] Voting message: the participant votes according to the voting election decision method introduced below, if agrees to the candidate request, updates the coordination ID of the participant itself (if the participant agrees to the candidate request, the coordination ID of the participant itself is updated to the value of the coordination ID in the candidate message), and sets the command ID, the consistent command ID and the individual command ID to 0, and the result in the voting message is set to agree, otherwise, the current coordination ID, the consistent command ID and the individual command ID of the participant itself are sent, and the result is set to refuse;
[0144] The algorithm running flow chart is shown in Figure 6 The operation flow chart of the algorithm is shown in Figure 6 The leftmost column of the flow chart shows the operations that need to be performed by the coordinator in a period, and the remaining right part lists the process description of the candidate and voting process of the participant and the possible candidate.
[0145] Timeout period description: each non-coordinator flight control node needs to wait for a certain time to receive the start message from the coordinator at the beginning of the period, and the waiting time needs to be different between each node, the embodiment of the application recommends that a unique number k (0≤k<N, N is the number of flight control nodes) is set for each flight control node, and the timeout time time=(0.5+k*0.1+k*rand) milliseconds, wherein rand represents a random floating point number (0~0.1), so that the timeout time of each flight control node is different, avoiding multiple participants becoming candidates at the same time, causing collision in the election process, and the start time of the timeout time is 0.5 milliseconds because the coordinator can complete the start notification to all participants within 0.5 milliseconds.
[0146] Voting decision algorithm: Among the seven elements recorded by a participant, there are coordination ID, consistent command ID, and individual command ID, which are used for voting. If the coordination ID of the candidate message received by the participant is greater than the local coordination ID, and the consistent command ID of the candidate message is greater than or equal to the local consistent command ID, and the individual command ID is greater than or equal to the local individual command ID (indicating that the command ID stored by the voted candidate is no older than the command ID of the participant, i.e., the candidate is more qualified to become the coordinator than the participant), the participant can elect the current candidate as the coordinator. The participant updates its own coordination ID to the coordination ID of the candidate message, command ID to 0, individual command ID to 0, and consistent command ID to 0. After the candidate receives voting messages from more than half of the participants indicating approval, it modifies its own coordination ID.
[0147] The embodiments of the present invention have the following technical effects: a redundant control method for implementing distributed control through election coordination in an aerospace control system of multiple flight control nodes, implementing coordinated control of multi-mode flight control nodes by assigning roles to flight control nodes, supporting abnormal downtime of a single node, and enabling the remaining systems to still rely on existing methods for effective redundant control, and supporting coordinated control of distributed redundant flight control systems with three or more modes; the embodiments of the present invention only rely on the flight control nodes themselves to implement three-mode redundancy, and adopt redundancy implemented in software and algorithms, without relying on other hardware and systems on the rocket. The control logic is to first select a leader from the three modes as the decision-making core, and the other modules only provide data providers. When the leader fails, the remaining modules re-elect, and redundant control can still be implemented, supporting multi-mode systems with three or more modes.
[0148] It should be understood that the specific order or hierarchy of steps in the disclosed processes is an example of an exemplary method. Based on design preferences, it should be understood that the specific order or hierarchy of steps in the process can be rearranged without departing from the scope of the present disclosure. The accompanying method claims present elements of the various steps in an exemplary order and are not intended to be limited to the specific order or hierarchy described.
[0149] In the foregoing detailed description, various features are grouped together in a single embodiment to simplify the disclosure. This method of disclosure should not be interpreted as reflecting an intention that embodiments of the claimed subject matter require more features than are expressly recited in each claim. On the contrary, as reflected in the appended claims, the invention comprises less than all the features of any individual disclosed embodiment. The appended claims are hereby expressly incorporated into the detailed description, with each claim standing on its own as a separate preferred embodiment of the invention.
[0150] The foregoing description of the exemplary embodiments of this application has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the application to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the application be limited not with this detailed description, but rather by the claims appended hereto.
[0151] The above description includes exemplary embodiments. Of course, not all possible combinations of components or method steps are described above, but one of ordinary skill in the art will recognize that further combinations are possible. Persons of ordinary skill in the art will also recognize that the various embodiments described above can be further modified than described, and thus all modifications and further combinations are believed to be encompassed in the scope of the claims.
[0152] Those of skill would further appreciate that the various illustrative logical blocks, modules, and steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans can implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present embodiments.
[0153] The various illustrative logical blocks, modules, and steps described in connection with the embodiments disclosed herein can be implemented or performed with a general purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor can be a microprocessor, but in the alternative, the general purpose processor can be any conventional processor, controller, microcontroller, or state machine. A processor can also be implemented as a combination of computing devices, e.g., a combination of a digital signal processor and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a digital signal processor core, or any other such configuration.
[0154] The steps of the methods or algorithms described in the embodiments of the present invention may be directly embedded in hardware, a software module executed by a processor, or a combination of the two. The software module may be stored in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. For example, the storage medium may be connected to the processor so that the processor can read information from the storage medium and write information to the storage medium. Alternatively, the storage medium may also be integrated into the processor. The processor and storage medium may be provided in an ASIC, which may be provided in a user terminal. Alternatively, the processor and storage medium may also be provided in different components in the user terminal.
[0155] In one or more exemplary designs, the above-mentioned functions described in the embodiments of the present invention can be implemented in hardware, software, firmware, or any combination of the three. If implemented in software, these functions can be stored on a computer-readable medium or transmitted in the form of one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media that facilitate the transfer of computer programs from one location to another. Storage media can be any available medium that can be accessed by a general or special computer. For example, such computer-readable media can include but are not limited to RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store program code in the form of instructions or data structures and other forms that can be read by a general or special computer, or a general or special processor. In addition, any connection can be appropriately defined as a computer-readable medium. For example, if the software is transmitted from a website, server or other remote resource via a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless methods such as infrared, wireless, and microwave, it is also included in the definition of computer-readable media. The disks and discs mentioned above include compact disks, laser disks, optical disks, DVDs, floppy disks, and Blu-ray discs. Disks typically reproduce data magnetically, while discs typically reproduce data optically with lasers. Combinations of the above may also be included in computer-readable media.
[0156] The specific implementation methods described above further illustrate the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above description is only a specific implementation method of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the scope of protection of the present invention.
Claims
1. A method for coordinated control of multiple flight controllers in an aerospace system, characterized in that: It is adopted by a system consisting of multiple flight control nodes, including: In response to the start of the current solution cycle, if the flight control nodes of the participating roles do not receive the start message, the flight control nodes of the participating roles that have not received the start message conduct self-recommendation elections in a time-sharing manner to elect a flight control node from the flight control nodes of the participating roles that have not received the start message as the flight control node of the coordinating role in the current solution cycle; If all the flight control nodes of the participating roles receive the start message or elect the flight control node of the coordinating role in the current solution cycle, the flight control node of the coordinating role in the current solution cycle coordinates and controls the flight control nodes of the participating roles to complete the solution and execution of the flight control command corresponding to the current solution cycle; In which, the solution cycle is periodically triggered continuously at fixed solution cycle intervals; the start message is sent by the flight control node of the coordinating role in the previous solution cycle to continue to serve as the flight control node of the coordinating role in the current solution cycle in the absence of faults, and in response to the start of the current solution cycle, to the flight control nodes of all participating roles to update the status of the flight control nodes of all participating roles to the latest message; all flight control nodes in the system except the flight control node of the coordinating role are defaulted to the flight control nodes of the participating role at the beginning of the solution cycle.
2. The aerospace system multi-flight control coordinated control method according to claim 1, characterized in that: In response to the start of the current solution cycle, if the flight control nodes of the participating roles do not receive the start message, the flight control nodes of the participating roles that have not received the start message perform self-recommendation elections in a time-sharing manner to elect a flight control node from the flight control nodes of the participating roles that have not received the start message as the flight control node of the coordinating role in the current solution cycle, including: In response to the start of the current solution cycle, if the flight control node of the participating role does not receive the start message within the corresponding start message timeout period, then when the corresponding start message timeout period times out, the flight control node of the participating role that times out switches its role to the candidate role and becomes the flight control node of the candidate role; The flight control node of the candidate role sets the status information in the candidate message according to the locally recorded status information, and sends the candidate message to the flight control nodes of all participating roles; All participating flight control nodes receive the candidate message; The flight control node of each participating role compares the status information in the candidate message with the status information of the flight control node of the participating role. If the status information of the flight control node of the participating role is newer than the status information in the candidate message, the flight control node of the participating role generates a voting message with a rejection result; otherwise, it generates a voting message with an approval result and sends the voting message to the flight control node of the candidate role. The flight control node of the candidate role collects the voting messages of the flight control nodes of all the participating roles, and counts the number of voting messages with the voting result of approval. If the number of voting messages with the voting result of approval exceeds half of the number of flight control nodes of all participating roles, the flight control node of the candidate role sets its own role to the coordination role and obtains the flight control node of the coordination role in the current solution cycle. Otherwise, the flight control node of the candidate role switches its own role to the participation role and becomes the flight control node of the participation role again. Among them, the start message timeout times corresponding to each flight control node are different, and all start message timeout times are greater than the time required for the flight control node of the coordination role to respond to the start of the solution cycle and send a start message, and the time difference between any two start message timeout times is greater than the time required to perform a self-recommendation election.
3. The aerospace system multi-flight control coordinated control method according to claim 2, characterized in that: Each flight control node is preset with a different unique number; The start message timeout period corresponding to each flight control node is randomly generated according to the following formula: time=(T+k*Span+k*rand) Among them, time is the start message timeout period corresponding to the flight control node; T is the time required for the flight control node of the coordination role to respond to the start of the solution cycle and send a start message; Span represents the time required for the flight control node of the candidate role to perform a self-recommendation election; k is the unique number of the flight control node; rand is a random number.
4. The aerospace system multi-flight control coordinated control method according to claim 2, characterized in that: The status information recorded locally by the flight control node includes: the locally recorded coordination ID, consistent command ID, and individual command ID; The flight control node of the candidate role sets the status information in the candidate message according to the locally recorded status information, including: The flight control node of the candidate role uses the locally recorded consistent command ID as the consistent command ID in the candidate message, the locally recorded individual command ID as the individual command ID in the candidate message, and calculates the coordination ID in the candidate message according to the following formula to obtain the candidate message: ID 报 =(floor(ID 本 ÷N)+1)*N+k Among them, ID 报 is the coordination ID in the candidate message; floor() is the rounding function; ID 本 is the coordination ID recorded locally by the candidate role’s flight control node; N is the total number of flight control nodes in the system; k is the unique number of the candidate role’s flight control node; The flight control node of the candidate role sets its own role as a coordination role, further comprising: The flight control node of the candidate role updates the locally recorded coordination ID using the new coordination ID calculated by the following formula, and sets the locally recorded individual command ID and consistent command ID to 0: ID 新 =(floor(ID 本 ÷N)+1)*N+k Among them, ID 新 is the new coordination ID; floor() is the rounding down function; ID 本 is the coordination ID recorded locally by the candidate role’s flight control node; N is the total number of flight control nodes in the system; k is the unique number of the candidate role’s flight control node; The fields of the candidate message include: the coordination ID, consistent command ID and separate command ID in the candidate message; N is the total number of flight control nodes in the system; each flight control node is preset with a different unique number, and the initial value of the coordination ID recorded locally by each flight control node is set to the unique number of the flight control node; the consistent command ID recorded locally by each flight control node is initialized to 0 when the flight control node switches from a candidate role to a coordination role, and is incremented by the flight control node of the coordination role when generating a flight control command, and is synchronized to the flight control nodes of the participating roles through a start message; the separate command ID recorded locally by each flight control node is used as a unique identifier for space flight data during the current coordination role of the flight control node of the coordination role; the space flight data is obtained by the flight control node of the coordination role from the onboard sensors collected in each solution cycle.
5. The aerospace system multi-flight control coordinated control method according to claim 2, characterized in that: The status information recorded locally by each flight control node includes: the locally recorded coordination ID, consistent command ID, and individual command ID; The flight control node of each participating role compares the status information in the candidate message with the status information of the flight control node of the participating role. If the status information of the flight control node of the participating role is newer than the status information in the candidate message, the flight control node of the participating role generates a voting message with a rejection result; otherwise, the flight control node generates a voting message with an approval result, including: The flight control node of the participating role compares the sizes of the coordination ID recorded locally and the coordination ID in the candidate message, the consistent command ID recorded locally and the consistent command ID in the candidate message, and the individual command ID recorded locally and the individual command ID in the candidate message; If the coordination ID in the candidate message is greater than the coordination ID recorded locally by the flight control node of the participating role, and the consistent command ID in the candidate message is greater than or equal to the consistent command ID recorded locally by the flight control node of the participating role, and the separate command ID in the candidate message is greater than or equal to the separate command ID recorded locally by the flight control node of the participating role, then the flight control node of the participating role uses the coordination ID in the candidate message to update the coordination ID recorded locally by the flight control node of the participating role, sets both the consistent command ID and the separate command ID recorded locally to 0, and encapsulates the values of the coordination ID, consistent command ID and separate command ID recorded locally into the voting message, and sets the voting result of the voting message to approval; otherwise, the flight control node of the participating role encapsulates the values of the coordination ID, consistent command ID and separate command ID recorded locally into the voting message, and sets the voting result of the voting message to rejection; The fields of the voting message include: the coordination ID, consistent command ID, separate command ID and voting result in the voting message; Each flight control node is preset with a different unique number, and the initial value of the coordination ID recorded locally by each flight control node is set to the unique number of the flight control node; the consistent command ID recorded locally by each flight control node is initialized to 0 when the flight control node switches from a candidate role to a coordination role, and is incremented by the flight control node of the coordination role when generating a flight control command, and is synchronized to the flight control nodes of the participating roles through a start message; the separate command ID recorded locally by each flight control node is used as a unique identifier for space flight data during the current coordination role of the flight control node of the coordination role; the space flight data is obtained by the flight control node of the coordination role collecting on-board sensors in each solution cycle.
6. The aerospace system multi-flight control coordinated control method according to claim 1, characterized in that: The status information recorded locally by each flight control node includes: the locally recorded coordination ID, consistent command ID, individual command ID, and local command ID; The flight control node of the coordinating role in the current solution cycle coordinates and controls the flight control nodes of the participating roles to complete the solution and execution of the flight control command corresponding to the current solution cycle, including: The flight control node in the coordination role in the current solution cycle collects space flight data, uses the value of the local command ID+1 as the individual command ID corresponding to the collected space flight data, uses the collected space flight data as the space flight data in a collection message, uses the individual command ID corresponding to the collected space flight data as the individual command ID in the collection message, and uses the coordination ID locally recorded by the flight control node in the coordination role in the current solution cycle as the coordination ID in the collection message, to obtain the collection message; The flight control node of the coordination role in the current solution cycle sends the collection message to the flight control nodes of all participating roles; The flight control node of each participating role receives the collected message, obtains the individual command ID and the space flight data in the collected message, uses the individual command ID in the collected message to update the locally recorded individual command ID and local command ID, solves the space flight data, and obtains the solution result and navigation, guidance and control process parameters corresponding to the space flight data; Each participating flight control node assigns its locally recorded coordination ID, the individual command ID from the acquisition message, the navigation guidance control process parameters, and the solution result to the coordination ID, the individual command ID, the navigation guidance control process parameters, and the solution result in the result message, respectively, to obtain a corresponding result message; Each participating flight control node sends its corresponding result message to the flight control node of the coordinating role in the current solution cycle; After receiving the result messages corresponding to more than half of the flight control nodes of the participating roles in the current solution cycle, the flight control node of the coordinating role obtains the navigation guidance control process parameters and solution results from the received result messages; Generate a flight control command corresponding to the current solution cycle based on the acquired navigation guidance control process parameters and solution results, execute the flight control command, increment the local command ID recorded locally by the flight control node of the coordination role in the current solution cycle by 1, and assign the incremented local command ID value to the locally recorded consistent command ID and individual command ID; The fields of the acquisition message include: the coordination ID, the individual command ID and the space flight data in the acquisition message; Each flight control node is preset with a different unique number, and the initial value of the coordination ID recorded locally by each flight control node is set to the unique number of the flight control node; the consistent command ID recorded locally by each flight control node is initialized to 0 when the flight control node switches from a candidate role to a coordination role, and is incremented by the flight control node in the coordination role when generating a flight control command, and is synchronized to the flight control nodes in the participating roles through a start message; the separate command ID recorded locally by each flight control node is used to identify the space flight data solved by the flight control node.
7. The method for coordinated control of multiple flight controllers in an aerospace system according to claim 6, wherein: After receiving the result messages corresponding to more than half of the flight control nodes of the participating roles in the current solution cycle, the flight control node of the coordinating role obtains the navigation guidance control process parameters and the solution results from the received result messages, including: The flight control node of the coordinating role in the current solution cycle selects, from the result messages corresponding to the flight control nodes of the multiple participating roles received, a result message whose coordination ID is equal to the coordination ID recorded locally by the coordinating role in the current solution cycle and whose individual command ID is greater than the local command ID recorded locally by the coordinating role in the current solution cycle as a to-be-selected result message; The flight control node of the coordination role in the current solution cycle performs similarity screening on the solution results in the multiple candidate result messages obtained, and uses the navigation, guidance and control process parameters and solution results in one or more candidate result messages whose similarity exceeds a preset similarity threshold as the navigation, guidance and control process parameters and solution results obtained from all result messages.
8. The method for coordinated control of multiple flight controllers in an aerospace system according to claim 5, wherein: The method further comprises: If the flight control node of the candidate role receives a collection message sent by the flight control node of the coordinating role, and the coordination ID recorded locally by the flight control node of the candidate role is less than or equal to the coordination ID in the collection message, the flight control node of the candidate role switches itself to the flight control node of the participating role; The flight control node in the coordination role collects the flight data, encapsulates the flight data and the coordination ID recorded locally, and sends the collected message to the flight control node in the candidate role.
9. The method for coordinated control of multiple flight controllers in an aerospace system according to claim 8, wherein: The method further comprises: If the flight control node of the candidate role receives a collection message sent by the flight control node of the coordinating role, and the coordination ID recorded locally by the flight control node of the candidate role is greater than the coordination ID in the collection message, the flight control node of the coordinating role switches to the flight control node of the participating role.
10. A multi-flight control system for an aerospace system, characterized in that: The system includes: a plurality of flight control nodes; the roles of each flight control node include a coordination role, a participating role and a candidate role; The participating flight control node is configured to respond to the start of the current solution cycle and, if it does not receive a start message, conduct a self-recommendation election in a time-sharing manner to elect a flight control node from the participating flight control nodes that have not received a start message as the coordinating flight control node in the current solution cycle; The flight control node of the coordinating role in the current solution cycle is used to coordinate and control the flight control nodes of the participating roles to complete the solution and execution of the flight control commands corresponding to the current solution cycle; In which, the solution cycle is periodically triggered continuously at fixed solution cycle intervals; the start message is a message sent by the flight control node of the coordination role in the previous solution cycle to the flight control node of the coordination role in the current solution cycle in response to the start of the current solution cycle to the flight control nodes of all participating roles; all flight control nodes in the system except the flight control node of the coordination role are defaulted to the flight control nodes of the participating roles at the beginning of the solution cycle.
Citation Information
Patent Citations
Multi-task self-scheduling modular flight control system and design method thereof
CN109062246A
Multi-spacecraft main and auxiliary sequence cooperative control system and method
CN112462712A