A method and system to support parallel discrete event simulation of low earth orbit satellite constellations
By allocating the simulation nodes of the low-Earth orbit satellite constellation to multiple logical processes and using look-ahead variables and synchronization messages for parallel discrete event simulation, the problems of insufficient utilization of computing resources and excessively long simulation time in the existing technology are solved, and efficient and realistic low-Earth orbit satellite constellation network simulation is achieved.
Patent Information
- Application Number
- CN202310282820.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-22
- Publication Date
- 2025-11-25
- Estimated Expiration
- 2043-03-22
AI Technical Summary
Existing low-Earth orbit (LEO) satellite constellation simulation platforms employ serial discrete event simulation technology, which cannot fully utilize computing resources and cannot realistically simulate the orderly progression of network communication-related events in LEO satellite constellations. In particular, parallel discrete event simulation cannot be performed in highly dynamic LEO satellite constellations.
All simulation nodes in the simulation node configuration data are assigned to multiple logical processes for management. The communication delay between simulation nodes is dynamically determined by simulating motion. Parallel discrete event simulation is performed using multiple logical processes, and look-ahead variables and synchronization messages are used to ensure that events are executed in sequence.
It improves the computational efficiency and realism of low-Earth orbit satellite constellation simulation, enabling efficient network communication simulation of large-scale low-Earth orbit satellite constellations and improving development efficiency.
Smart Images

Figure CN116318485B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the field of communication network system simulation technology, in particular to the field of low-orbit satellite constellation parallel simulation, and more particularly to a method and system for supporting low-orbit satellite constellation parallel discrete event simulation. BACKGROUND
[0002] Low-orbit satellites need to be deployed on low orbits for operation, which makes it difficult to develop and test communication protocols for low-orbit satellite networks in real environments. Therefore, it is necessary to verify low-orbit satellite technologies through effective low-orbit satellite constellation simulation platforms.
[0003] In order to demonstrate a network communication technology, a large number of sampling experiments need to be performed on a simulation platform, so that the statistical results of the experiments can approximate the statistical characteristic values of the overall distribution. Discrete event simulation technology is conducive to performing a large number of experiments, and is therefore widely used in the verification of network and communication technologies. A discrete event simulator abstracts the behavior of a network model as events occurring at discrete time points. Each event has a timestamp attribute indicating the order in which the event occurs. Events are bound to functions, and when an event is scheduled, the function bound to it will be called and executed, and the simulation time will also be advanced to the timestamp of the event. The mainstream network simulation tools all use the discrete event simulation mechanism; for example, OPNET, OMNeT++, NS2 (Network Simulator version 2) and NS 3 (Network Simulator version 3). At present, some progress has been made in the development of low-orbit satellite constellation network simulation tools. The published results show that the underlying of these platforms is embedded with open-source network simulation tools such as NS3 or OMNeT++, thereby realizing packet-level discrete event simulation. NS3 and OMNeT++ both use the null message algorithm for parallel discrete event simulation, but the application conditions of this algorithm are extremely harsh, generally requiring that the nodes being simulated are stationary and that the propagation delay between nodes is a fixed value.
[0004] The existing LEO simulation platform is based on serial discrete event simulation technology, and events are executed in sequence in a single process. With the development of computer technology and the emergence of multi-core processors, large-scale network simulation can be implemented in a multi-processor computing platform or cluster through parallel discrete event simulation to obtain better performance. A low earth orbit satellite constellation has a large number of low earth orbit satellites. Taking StarLink as an example, the constellation has a total of 42000 low earth orbit satellites in 5 layers. Without considering ground equipment, such a topology scale poses a huge challenge to system-level network simulation. The serial discrete event simulation technology used by the existing low earth orbit satellite constellation simulation platform cannot fully utilize computing resources, and when simulating a low earth orbit satellite constellation, a single simulation time is too long, which cannot obtain experimental data with a large sample in a short time. Moreover, the low earth orbit satellites in the low earth orbit satellite constellation have high dynamic characteristics. Without considering this factor, it is difficult to realistically simulate the ordered advancement of network communication-related events in the low earth orbit satellite constellation in multiple processes, so the existing technology cannot be directly used for parallel discrete event simulation of the low earth orbit satellite constellation. SUMMARY
[0005] Therefore, the purpose of the present application is to overcome the defects of the prior art and provide a method and system supporting parallel discrete event simulation of a low earth orbit satellite constellation.
[0006] The purpose of the present application is achieved by the following technical solutions:
[0007] According to a first aspect of the present application, a method for supporting parallel discrete event simulation of a low earth orbit satellite constellation is provided, comprising: allocating all simulation nodes in simulation node configuration data to multiple logical processes for management and determining multiple pairs of associated logical processes, wherein the simulation nodes include a low earth orbit simulation node corresponding to each low earth orbit satellite in the low earth orbit satellite constellation, and there is a need for cross-logical-process communication between the simulation nodes managed by each pair of associated logical processes; simulating the simulation motion of each simulation node in the simulation node configuration data in a motion simulation model, and dynamically determining the communication delay of the simulation between the simulation nodes according to the simulation motion result; determining the lookahead of each pair of associated logical processes according to the minimum communication delay between the simulation nodes in each pair of associated logical processes; and using multiple logical processes to perform parallel discrete event simulation of the low earth orbit satellite constellation, wherein the communication behavior of all simulation nodes is represented by events at discrete time points, each event is provided with a timestamp determined based on the simulation communication delay, each logical process determines the events that can be executed at present according to the synchronization message of its associated logical process, the lookahead and the timestamp of the event to advance the sequential execution of the event and send its own synchronization message to the associated logical process.
[0008] In some embodiments of the present application, the process of allocating all the simulation nodes in the simulation node configuration data to the plurality of logical processes managed by the plurality of logical processes comprises: obtaining the simulation node configuration data, which comprises low-orbit simulation nodes corresponding to each low-orbit satellite in the low-orbit satellite constellation and relevant simulation nodes in communication with the low-orbit satellite constellation; and allocating all the simulation nodes, which comprises: allocating all the low-orbit simulation nodes into K groups according to a predetermined allocation rule and a preset group number K, and allocating each group of low-orbit simulation nodes in the K groups to be managed by one logical process.
[0009] In some embodiments of the present application, each logical process is configured to: maintain a message storage area for storing packet messages and synchronization messages from the associated logical threads, the synchronization messages being used to carry the reference advancement time of the associated logical process; maintain an event queue for storing events of the simulation, wherein at least part of the events are generated according to the received packet messages, and when an event is generated according to a packet message, the timestamp of the generated event is greater than or equal to the reference advancement time of the logical process sending the packet message; and maintain a map data structure for maintaining the reference advancement time of each associated logical process of the current logical process, and updating the reference advancement time of the corresponding associated logical process according to the synchronization messages.
[0010] In some embodiments of the present application, any one logical process determines the reference advancement time sent to its associated logical process in the following manner: taking the minimum value from the reference advancement time maintained by the map data structure of the current logical process and the timestamp of the next event to be executed by the current logical process, to obtain a safe time; and adding the look-ahead quantity of the associated logical process to the safe time, to obtain the reference advancement time sent to the associated logical process.
[0011] In some embodiments of the present application, for any logical thread, the currently executable event is the event whose timestamp is less than or equal to the current safe time.
[0012] In some embodiments of the present application, for any logical process, the generated synchronization message is only sent to its associated logical process, and the logical processes receive and send the synchronization messages in a non-blocking manner.
[0013] In some embodiments of the present application, the relevant simulation nodes in communication with the low-orbit satellite constellation comprise ground simulation nodes corresponding to ground devices, medium-orbit simulation nodes corresponding to medium-orbit satellites, and high-orbit simulation nodes corresponding to high-orbit satellites, wherein when the low-orbit satellite constellation parallel discrete event simulation is performed, the ground simulation nodes, the medium-orbit simulation nodes, and the high-orbit simulation nodes are respectively allocated to be managed by corresponding logical processes.
[0014] According to a second aspect of the present application, there is provided a simulation system constructed based on the method of the first aspect, the simulation system comprising: a simulation configuration module configured to: allocate all simulation nodes in simulation node configuration data into a plurality of logical processes for management and determine a plurality of pairs of associated logical processes, wherein: all low-orbit simulation nodes are allocated into K groups according to a predetermined allocation rule and a preset group number K, and each group of low-orbit simulation nodes in the K groups is allocated to be managed by one logical process; a motion simulation module configured to: simulate the simulation motion of each simulation node in the simulation node configuration data in a motion simulation model, and dynamically determine the communication delay between simulation nodes according to the simulated simulation motion result; a look-ahead quantity determination module configured to: determine the look-ahead quantity of each pair of associated logical processes according to the minimum communication delay between simulation nodes across logical processes in the pair of associated logical processes; and a parallel discrete event simulation module configured to: perform parallel discrete event simulation of a low-orbit satellite constellation using the plurality of logical processes, wherein: the communication behavior of all simulation nodes is represented by events at discrete time points, each event is provided with a time stamp, and each logical process determines the events that can be executed at present according to the synchronization message of the associated logical process, the look-ahead quantity, and the time stamp of the event to advance the sequential execution of the events and send the synchronization message of the logical process to the associated logical process.
[0015] According to a third aspect of the present application, there is provided an electronic device comprising: one or more processors; and a memory, wherein the memory is configured to store executable instructions; and the one or more processors are configured to implement the steps of the method of the first aspect by executing the executable instructions.
[0016] Compared with the prior art, the present application has the following advantages:
[0017] The present application considers the high dynamic characteristics of low-orbit satellites by determining the look-ahead quantity based on simulation motion, and fully utilizes the computing resources by parallel discrete event simulation to improve the simulation calculation speed, so that the simulation of a low-orbit satellite constellation can be efficiently and realistically completed, and the development efficiency of low-orbit satellite constellation communication technology is improved. BRIEF DESCRIPTION OF DRAWINGS
[0018] The embodiments of the present application will be further described below with reference to the accompanying drawings, in which:
[0019] Figure 1 A flowchart of a method for supporting parallel discrete event simulation of a low-orbit satellite constellation according to an embodiment of the present application;
[0020] Figure 2 A schematic diagram of satellites at various orbital altitudes;
[0021] Figure 3Fig. 1 is a schematic diagram of numbering low earth orbit satellite nodes according to an embodiment of the present application;
[0022] Figure 4 Fig. 3 is a schematic diagram of illustrating the way of calculating the look-ahead quantity with four logical processes as an example according to an embodiment of the present application;
[0023] Figure 5 Fig. 4 is a schematic diagram of message storage area, event queue, map data structure according to an embodiment of the present application;
[0024] Figure 6 Fig. 5 is a schematic diagram of a flow chart of supporting low earth orbit satellite constellation parallel discrete event simulation according to an embodiment of the present application. DETAILED DESCRIPTION
[0025] In order to make the objects, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to the accompanying drawings. It should be understood that the specific embodiments described herein are merely used to explain the present application and should not be used to limit the present application.
[0026] As mentioned in the background section, the low-orbit satellite constellation has a large number of low-orbit satellites, and the serial discrete event simulation technology adopted by the existing low-orbit satellite constellation simulation platform cannot fully utilize the computing resources; moreover, the low-orbit satellites in the low-orbit satellite constellation have the characteristics of high dynamics, and it will be difficult to realistically simulate the orderly advancement of events related to network communication in the low-orbit satellite constellation in multiple processes without considering this factor. In this regard, the embodiment of the present application dynamically determines the lookahead of any two associated logical processes according to the simulation motion results of the simulation motion of the simulation nodes in the dynamic simulation model, wherein the simulation nodes include the low-orbit simulation nodes corresponding to each low-orbit satellite in the low-orbit satellite constellation, and the simulation nodes managed by the two associated logical processes have the need for cross-logical-process communication. Thus, through the simulation motion, the motion between the simulation nodes can be simulated, the lookahead of the associated logical processes having the need for cross-logical-process communication is dynamically determined, and the subsequent discrete event parallel simulation is orderly advanced among multiple logical processes based on the lookahead; moreover, the embodiment of the present application utilizes multiple logical processes to perform parallel discrete event simulation of the low-orbit satellite constellation, wherein the communication behaviors of all simulation nodes are represented by events at discrete time points, each event is provided with a timestamp, each logical process determines the events that can be currently executed according to the synchronization message, lookahead and timestamp of the events of the associated logical process to advance the sequential execution of events and send its own synchronization message to the associated logical process. Thus, the logical processes exchange synchronization messages with each other, and determine the events that can be safely executed by each logical process through the synchronization messages and the lookahead to advance the sequential execution of events in multiple logical processes. Both the way of determining the lookahead through the simulation motion and the parallel discrete event simulation fully utilize the computing resources, improve the simulation calculation speed, and enable the simulation of the low-orbit satellite constellation to be efficiently and realistically completed, thereby improving the development efficiency of the low-orbit satellite constellation communication technology.
[0027] According to one embodiment of the present application, referring to Figure 1 , a method for supporting parallel discrete event simulation of a low-orbit satellite constellation is provided, comprising steps S1, S2, S3 and S4.
[0028] Step S1: all simulation nodes in the simulation node configuration data are allocated to be managed in multiple logical processes, and multiple pairs of associated logical processes are determined, wherein the simulation nodes include low-orbit simulation nodes corresponding to each low-orbit satellite in the low-orbit satellite constellation, and there is a need for cross-logical-process communication between the simulation nodes managed by each pair of associated logical processes.
[0029] According to an embodiment of the present application, the simulation node configuration data comprises low-orbit simulation nodes corresponding to each low-orbit satellite in the low-orbit satellite constellation. Since the low-orbit satellites tend to also communicate with other types of network elements, the simulation node configuration data also comprises relevant simulation nodes that communicate with the low-orbit satellite constellation. For example, referring to Figure 2 According to different orbital altitudes, in addition to low-orbit satellites, there are also medium-orbit satellites and high-orbit satellites. There are altitude differences between high-orbit satellites and medium-orbit satellites, and there are also altitude differences between medium-orbit satellites and low-orbit satellites. In addition to establishing links between low-orbit satellites, the low-orbit satellite constellation can also establish communication links with high-orbit satellites, low-orbit satellites, or ground equipment (network control center, ground station, user terminal, etc.). Therefore, low-orbit simulation nodes and relevant simulation nodes can be configured in the simulation node configuration data. Preferably, the relevant simulation nodes that communicate with the low-orbit satellite constellation include ground simulation nodes corresponding to ground equipment, medium-orbit simulation nodes corresponding to medium-orbit satellites, and high-orbit simulation nodes corresponding to high-orbit satellites. In addition, the simulation node configuration data can also include network topology data between simulation nodes. Each simulation node includes a protocol stack model, and the rules for simulating data interaction between nodes in the real environment are used to connect the simulation nodes that communicate with each other in a channel model as a medium for data transmission according to the network topology data.
[0030] According to an embodiment of the present application, the process of distributing all simulation nodes in the simulation node configuration data to a plurality of logical processes for management comprises: obtaining simulation node configuration data, which comprises low-orbit simulation nodes corresponding to each low-orbit satellite in the low-orbit satellite constellation and relevant simulation nodes that communicate with the low-orbit satellite constellation; and distributing all low-orbit simulation nodes into K groups according to a predetermined distribution rule and a preset group number K, so that each group of low-orbit simulation nodes in the K groups is managed by one logical process. According to an embodiment of the present application, the preset group number K can be customized by the implementer before the simulation nodes are distributed. Alternatively, the CPU number in the computing device that performs the simulation can be obtained by accessing, and the CPU number in the computing device that performs the simulation can be determined according to the CPU number in the computing device that performs the simulation. Of course, the CPU core number in the computing device that performs the simulation can also be determined according to the CPU core number in the computing device that performs the simulation. The K groups are less than or equal to the CPU number or the CPU core number. Illustratively, the implementer can determine the value of K in the following manner: first, determine the CPU core number M of the computing device, and then K = M-3. Of course, other manners can also be used, such as K = M, and the logical processes corresponding to medium-orbit simulation nodes and high-orbit simulation nodes can time-share the CPU cores with certain low-orbit simulation nodes.
[0031] According to one embodiment of the present application, the number of low-orbit simulation nodes in a low-orbit satellite constellation is large, and a large satellite constellation can generally be described by the number of commonly used orbital planes N and the number of satellites n in each plane in a Walker-delta constellation, where the orbital plane can be described by two parameters: the orbital inclination a, which represents the angle between the orbital plane and the equatorial plane; and the orbital height H. The satellites in the same orbital plane are uniformly distributed along the orbit, and the ascending node right ascensions of different orbits are uniformly distributed within [-180°, 180°]. The low-orbit simulation nodes can be distributed into K logical processes for management. Preferably, the low-orbit simulation nodes can be as evenly distributed as possible into the K logical processes. Illustratively, the low-orbit satellites in each orbital plane are numbered from 0, and the serial numbers of the satellites in the same orbit are incremented by 1, and all the satellites in the orbits are sequentially numbered. Assuming that the low-orbit satellites use K logical processes in total, in order to evenly distribute, the serial number of the logical process in which the low-orbit satellite numbered S i can be determined as follows:
[0032]
[0033] where n represents the number of low-orbit satellites in a certain orbit, s i represents the serial number of the i-th low-orbit satellite in the orbit, K represents the number of preset groups, mod(s i , n) represents the modulo operation of s i on n, represents the upward rounding operation, and represents the downward rounding operation. Taking a low-orbit satellite constellation with N = 72 and n = 22 as an example, according to the above formula, when at most 22 logical processes can be used simultaneously, then the 1584 low-orbit satellites can be simulated in parallel using 22 computing units (such as CPUs or CPU cores) at the same time, and each computing unit only needs to be responsible for the mobility and communication network simulation of 72 satellites, which obviously can greatly improve the simulation efficiency. Preferably, when distributing, the low-orbit simulation nodes with inter-orbit satellite interlink in multiple orbital planes are distributed into the same logical process. According to the commonly used +Grid one-satellite four-link structure of low-orbit satellites, this distribution method can ensure that the low-orbit satellite nodes with inter-orbit satellite interlink are distributed into the same logical process. Considering that the inter-orbit satellite interlink propagation delay is time-varying, and the relative speed and antenna azimuth change sharply in high-latitude areas, distributing the low-orbit satellite nodes with inter-orbit satellite interlink into the same logical process can greatly reduce the complexity of the synchronization algorithm. Since the intra-orbit satellite interlink is stable and the link delay basically remains unchanged, the low-orbit satellite nodes with intra-orbit satellite interlink can be distributed into multiple logical processes as needed. Illustratively, referring to Figure 3, assuming there are N orbit planes, each orbit plane has n LEO satellite nodes, the numbering starts from 0 to N*(n-1) (for example, 2n-1 represents the number 2n-1, and the rest are similar, not described here), according to the above logical process, the number k is calculated in the manner, the LEO simulation nodes with inter-orbit satellite link in multiple orbit planes can be allocated to the same logical process during allocation, so as to reduce the complexity of simulation and improve the efficiency of simulation.
[0034] It should be understood that the allocation can also be in other ways, for example, first determine the number of LEO satellites allocated to a logical thread in an average manner by rounding up, read the LEO simulation nodes corresponding to the LEO satellites with the number of LEO satellites in sequence to the corresponding logical process, and if the last remaining number is insufficient, the following logical process can be less.
[0035] According to an embodiment of the present application, when allocating simulation nodes, the allocation of related simulation nodes in communication with the LEO satellite constellation is also involved. Since the present application mainly simulates a large-scale LEO satellite constellation, other related simulation nodes can be allocated to the corresponding logical process management according to the height they are located in, so as to simplify the allocation method and improve the allocation efficiency. Preferably, when performing parallel discrete event simulation of the LEO satellite constellation, the ground simulation nodes, the medium-orbit simulation nodes and the high-orbit simulation nodes are respectively allocated and managed by the corresponding logical processes. For example: assuming that the LEO satellite nodes are managed by logical processes 1~K, all ground simulation nodes are managed by logical process K+1, medium-orbit simulation nodes are managed by logical process K+2 and high-orbit simulation nodes are managed by logical process K+3.
[0036] According to an embodiment of the present application, for determining the associated logical processes, the following manner can be used: if there is a need for cross-logical-process communication between the simulation nodes managed by two logical processes (a communication link needs to be established), the two logical processes are a pair of associated logical processes.
[0037] Step S2: simulate the simulation motion of each simulation node in the simulation node configuration data in the motion simulation model, and dynamically determine the communication delay of the simulation between the simulation nodes according to the simulation motion result.
[0038] According to one embodiment of the present application, the motion simulation model can adopt an existing motion simulation model, for example, a SGP4 (Simplified General Perturbations 4) model is adopted to simulate the mobility of the simulation nodes, the model reads in the TLE parameters of the satellite at initialization, and the position and velocity of the satellite at any time can be obtained. The orbit determination accuracy of the SGP4 model is in the order of hundreds of meters, which is sufficient for network simulation. During motion simulation, the high-orbit satellite and the ground equipment can be set as fixed points. The modeling of the low-orbit satellite and the medium-orbit satellite in the motion simulation is similar. Illustratively, taking the low-orbit satellite as an example, the low-orbit satellite can use the satellite ephemeris (which can be set in the simulation node configuration data), also known as the two-line orbital data (TLE, Two-Line Orbital Element) description, and the modeling can be completed in the SGP4 through the satellite ephemeris. Taking Beidou 3 as an example, the format of the TLE is shown in the following table:
[0039] BEIDOU 3 1 36287U 10001A 21187.60806788-.00000272 00000-0 00000-0 0 9992 2 36287 1.9038 47.2796 0005620 82.9429 153.9116 1.00269947 42045
[0040] The specific description of the first line of orbital data is shown in the following table:
[0041]
[0042]
[0043] The specific description of the second line of orbital data is shown in the following table:
[0044]
[0045]
[0046] According to one embodiment of the present application, after the motion simulation modeling is completed, the simulation motion of each simulation node in the motion simulation model is simulated according to the simulation node configuration data, and the simulated simulation motion result is obtained.
[0047] Step S3: determining the look-ahead amount of each pair of associated logical processes according to the minimum communication delay between the simulation nodes in the logical processes.
[0048] According to one embodiment of the present application, the way of determining the lookahead of each pair of associated logical processes according to the minimum communication delay between the simulation nodes in each pair of associated logical processes across logical processes includes: determining the distance between any two communicating simulation nodes according to the simulated simulation motion result, and determining the communication delay between the corresponding simulation nodes according to the distance, and taking the minimum value of the communication delays between all simulation nodes in the two associated logical processes which have the need of cross-logical-process communication as the lookahead of the two associated logical processes. That is, the lookahead of the two associated logical processes is the minimum value of the communication delays between all simulation nodes which have the need of cross-logical-process communication and are dynamically determined according to the simulation motion. For illustration, see Figure 4 , assuming that there are four logical processes, LP1, LP2, LP3 and LP4, and the communication delay of the link between LP1 and LP2 is 1 ms, the communication delay of the link between LP1 and LP3 is 2 ms and 3 ms, the communication delay of the link between LP2 and LP3 is 3 ms, and the communication delay of the link between LP3 and LP4 is 2 ms. Here, the link refers to the channel delay between the instances of the simulation nodes in the LP, is a parameter obtained based on the motion simulation, and is the real network delay between the logical processes in the computing device. Among them, there are two virtual channel connections between LP1 and LP3. This is when creating a network simulation script, the simulation nodes of LP1 and LP3 have two links across logical processes. In order to ensure the correctness of the simulation result, the minimum communication delay of 2 ms is selected as the lookahead of the associated logical processes LP1 and LP3. The efficiency of parallel discrete event simulation depends on the lookahead, which is the minimum time of mutual influence between logical processes.
[0049] In addition, the lookahead can also be simplified to be determined according to the minimum communication delay obtained from the relative distance of the orbit height of each satellite node in the simulation, for illustration:
[0050] The calculation formula of the minimum communication delay of the two low-orbit satellites in the same orbit plane (used to determine the lookahead between the K logical processes responsible for the simulation nodes of the low-orbit satellites) is:
[0051]
[0052] The calculation way of the minimum communication delay of the simulation nodes on the high-orbit and medium-orbit (used to determine the lookahead between the logical processes responsible for the simulation of the high-orbit satellite nodes and the simulation of the medium-orbit satellite nodes) is:
[0053] t 高轨LP、中轨LP =(H 高轨 -H 中轨 ) / c
[0054] The calculation method of the minimum communication delay of the simulation nodes on the high orbit and the low orbit (used to determine the lookahead between the logical processes responsible for the high-orbit satellite simulation node and the low-orbit satellite simulation node) is:
[0055] t 高轨LP、低轨LPs = (H 高轨 -H 低轨 ) / c
[0056] The calculation method of the minimum communication delay of the simulation nodes on the high orbit and the ground (used to determine the lookahead between the logical processes responsible for the high-orbit satellite simulation node and the ground simulation node) is:
[0057] t 高轨LP、地面设备LP =H 高轨 / c
[0058] The calculation method of the minimum communication delay of the simulation nodes on the medium orbit and the ground (used to determine the lookahead between the logical processes responsible for the medium-orbit satellite simulation node and the ground simulation node) is:
[0059] t 中轨LP、地面设备LP =H 中轨 / c
[0060] The calculation method of the minimum communication delay of the simulation nodes on the low orbit and the ground (used to determine the lookahead between the logical processes responsible for the low-orbit satellite simulation node and the ground node) is:
[0061] t 低轨LPs、地面设备LP =H 低轨 / c
[0062] Wherein, c is the propagation speed of electromagnetic wave / laser (set according to the connection mode of the link as needed) in vacuum, R is the radius of the earth, H 低轨 represents the orbital height of the low-orbit satellite, H 中轨 represents the orbital height of the medium-orbit satellite, and H 高轨 represents the orbital height of the high-orbit satellite. The lookahead here is the lookahead in step S4, which needs to be calculated before the simulation starts. It should be noted that the delay here is not the real propagation delay between the network nodes. Considering the time-varying nature of the satellite network, the delay between the nodes is also time-varying, so the SGP4 model needs to be used to calculate the distance and propagation delay between the nodes in real time during the simulation. The lookahead is a minimum delay, that is, a conservative value, which is the minimum propagation delay to ensure that the parallel simulation does not make mistakes, and is used for synchronization between logical processes, and will not affect the communication and network simulation.
[0063] Step S4: low earth satellite constellation parallel discrete event simulation using multiple logical processes, wherein all the communication behaviors of the simulation nodes are represented as events at discrete time points, each event is provided with a time stamp, each logical process determines the events that can be executed at present according to the synchronization messages of the associated logical process, the lookahead and the time stamps of the events to advance the event execution in sequence and send its own synchronization messages to the associated logical process.
[0064] According to an embodiment of the present application, step S4 can be implemented using a constructed parallel discrete event simulator. The discrete event simulator abstracts the communication behaviors of the simulation nodes as events occurring at discrete time points. Each event has a time stamp attribute indicating the order of event occurrence and is executed in sequence according to time. According to the causal logic order restriction, the value of the time stamp of an event generated by a simulation node is always not less than the value of the time stamp of an existing event in the event list, i.e., it is impossible to send a causally reversed event. After a new event is generated, it is inserted into the event list according to the time stamp attribute, ensuring that the time stamps of the events in the event list are in ascending order. Events are bound to functions, and when an event is scheduled, the function bound to it will be called and executed, and the simulation time will also be advanced to the time stamp of the event. The communication behaviors of the simulation nodes include generating a data packet, transmitting a data packet, receiving a data packet, parsing a data packet, and discarding a data packet. In addition, the movement of the simulation nodes associated with data packet interaction can also be defined as events. Executing an event will cause new events to be generated, and the time stamp of the new event must be not less than the time stamp of the event that triggered its generation. The parallel discrete event simulator needs to split the low earth satellite constellation network into multiple logical processes (Logical Process, LP). A logical process is a simulation of the behavior of at least part of the simulation nodes in the network topology, each logical process uses a CPU or CPU core, and each manages an event queue. The parallel discrete event simulator can make all logical processes process events in order of increasing time stamp. In addition to the transfer of packet messages between logical processes, synchronization messages must also be transferred to ensure that all logical processes can process events in order of increasing time.
[0065] According to an embodiment of the present application, each logical process is configured to maintain a message storage area for storing packet messages and synchronization messages from the associated logical thread, wherein the synchronization messages are used to carry the reference advance time of the associated logical process. For example, see Figure 5, showing the message storage area of any one logical process LPi, in which a packet message can cause a new event. A packet message is used to simulate the data and / or control information transmitted between nodes, which will cause the logical process LP receiving the message to generate a new event, indicating that in the near future, a response will be made to the packet message. A null message, which can also be called a synchronization message, only contains a timestamp and will not cause the receiving logical process LP to generate a new event, but is only used for synchronization. The synchronization message can determine a safe execution time for the logical process LP, so that the simulation can correctly advance. When message passing, the message pass interface (MPI) can be used as a tool for logical processes to pass messages between each other, but this is not the only solution, sockets, message queues, etc. can also be used. MPI is suitable for parallel process message passing of multi-core, multi-processor computers, and sockets and message queues are suitable for inter-process message passing of multiple computers (cluster environment or distributed environment), which can be determined by the implementer according to the implementation needs.
[0066] Preferably, each logical process is also configured to maintain an event queue for storing events of the simulation, wherein at least part of the events are generated according to received packet messages. Some events can also be actively generated by a certain simulation node according to simulation requirements. The generated time will be arranged in order in the event queue according to the timestamps of the events, for example: assuming that the event queue of LPi includes event 1, …, event i, event i+1, event i+2, …, and the corresponding timestamps are t1, …, ti, ti+1, ti+2, …, respectively, if a new event k is generated according to a certain packet message, and ti i ≤ ti+1 ≤ ti+2, then event k will be inserted between event i+1 and event i+2. At present, the head of the event queue is event 1, and the simulation time will be advanced by t1. i+1 i+2 i+1 k i+2
[0067] Preferably, each logical process is also configured to maintain a map data structure for maintaining the reference advance time of each associated logical process of the current logical process, and updating the reference advance time of the corresponding associated logical process according to the synchronization message. Illustratively, after the logical process LPi receives the synchronization message sent by the logical process LPj containing the synchronization timestamp Tnull j,i , Tnull j,i is stored in the corresponding position in the MAP data structure as the reference advance time of LPj. In other words, each LP has a map data structure to store the synchronization timestamp Tnull contained in the null message from the associated LP as the reference advance time of the associated LP. For example,Figure 5 The local logical process LPi stores the synchronization timestamps Tnull1, Tnull2, Tnull3 corresponding to the associated LP1, the associated LP2, the associated LP3 as its reference advancement time. This synchronization timestamp Tnull indicates the minimum timestamp at which the local LP can generate a new event caused by the corresponding LP. For example, when the local LP generates an event according to the LP1 packet message, the timestamp of the generated event must be greater than or equal to Tnull1. In addition, since the number of associated logical processes of each logical process can be different, the length of the map can be inconsistent; for example, referring again to Figure 4 In the case shown, the map of the logical process LP1 has a length of 2 because it has two associated logical processes, the map of the logical process LP2 has a length of 2, the map of the logical process LP3 has a length of 3, and the map of the logical process LP4 has a length of 1.
[0068] According to an embodiment of the present application, any logical process determines the reference advancement time to be sent to its associated logical process in the following manner: the minimum value is taken from the reference advancement time maintained by the map data structure of the current logical process and the timestamp of the next event to be executed by the current logical process, obtaining a safe time; the safe time is added to the lookahead of the associated logical process, obtaining the reference advancement time to be sent to the associated logical process. According to an embodiment of the present application, for any logical thread, the current executable event is the event whose timestamp is less than or equal to the current safe time. For example, the timestamp Tnull contained in the null message sent from LPj to LPi j,i The calculation can be performed in the following manner:
[0069] First, the minimum timestamp is taken from the map data structure and the timestamp Tnextj of the next event to be executed by the current logical process, obtaining a safe time safetimej;
[0070] Second, the safe time safetimej is added to the lookahead of the logical process LPj and LPi i,j , as the timestamp Tnull contained in the null message sent from LPj to LPi j,i , the formula is as follows:
[0071] safetime = min{Tnull1, Tnull2,..., Tnull m , Tnextj}
[0072] Tnull j,i = safetime + lookahead i,j
[0073] Wherein, each logical process LP can determine a time upper bound of an executable event by updating safetime when it is unable to determine whether it is safe to execute the next event, and events whose timestamps are not greater than safetime can be executed.
[0074] Thus, it can be ensured that events are sequentially advanced between different logical processes without causality logical errors. For example, LP1 sequentially executes two sending events:
[0075] 1. The first sending event of LP0 is S1, and LP0 receives the data packet of LP1 (the data packet is sent at time t1, the communication delay is d1, and d1 >= lookahead01), at this time, LP0 generates an event according to the data packet of LP1, creates a new event (receiving event R1), sets the timestamp attribute of the event to t1+d1, and then inserts the event into the event list of LP0 to wait for being executed.
[0076] 2. The second sending event of LP0 is S2, and LP0 receives the second data packet of LP1 (the data packet is sent at time t2, the communication delay is d2, and d2 >= lookahead01), at this time, LP0 generates an event according to the data packet of LP1, creates a new event (receiving event R2), sets the timestamp attribute of the event to t2+d2, and then inserts the event into the event list of LP0 to wait for being executed.
[0077] Because LP1 sequentially executes the sending events according to the timestamp attribute, t1 <= t2, and considering the high dynamics of low-orbit satellites, d1 <= d2 does not necessarily hold, and thus t1+d1 <= t2+d2 does not necessarily hold, when two nodes are approaching at high speed, d1 > d2, and thus t1+d1 > t2+d2 can hold. At this time, the second receiving event of LP0 should occur before the first receiving event. However, in the simulation, LP0 first creates event R1, and after R1 is created, the arrival of R2 is in an unknown state. If R1 is executed first, the simulation time of LP0 is advanced to t1+d1, and then event t2+d2 is created. Considering that the simulation clock cannot be rolled back, at this time, the simulation has occurred an error, and the simulation fails.
[0078] In order to avoid that R1 is executed first, LP0 advances events according to the following process:
[0079] First, LP0 calculates safetime:
[0080] safetime = min{Tnull1, Tnull2,..., Tnull m , Tnextj}
[0081] Tnullj,i = safetime + lookahed i,j
[0082] That is, only events with timestamp attribute less than or equal to safetime can be executed
[0083] LPi sends null message Tnull to LPj with period lookahed i,j LPj sends null message Tnull to LPi with period lookahed i,j
[0084] LPi sends null message Tnull to LPj with period lookahed j,i LPj sends null message Tnull to LPi with period lookahed j,i
[0085] lookahed i,j = lookahe2 j,i
[0086] This ensures that R1 is not executed by LP0 before R2 is created.
[0087] The bracket {} in min in the calculation of safetime contains Tnull of all associated logical processes, which also ensures that there is no causality logical error when two logical processes need a third logical process as an intermediary to send and receive data packets.
[0088] According to an embodiment of the present application, for any logical process, the synchronization message generated by the logical process is only sent to the associated logical process, and the sending and receiving of the synchronization message between the logical processes is in a non-blocking manner. For example, referring again to Figure 4 , LP4 needs to know the synchronization message from LP3 to determine whether it is safe to execute the next event. LP3 will periodically send synchronization messages to adjacent LP1, LP2 and LP4. Similarly, LP1 will also periodically send synchronization messages to adjacent LP2 and LP3. The technical solution of this embodiment can at least achieve the following beneficial technical effects: this embodiment only sends synchronization messages between local logical processes, i.e., only sends synchronization messages between associated logical processes, and is not limited by the program hardware environment. Local synchronization means that a logical process only interacts with the logical processes connected to its own simulation channel through null messages, and does not need to concern other logical processes. In the environment of multiple cores, multiple processors and clusters, it can be used, which can arbitrarily expand the simulation scale, and has strong scalability and robustness. In other words, the synchronization algorithm sends synchronization messages to associated logical processes for each logical process and manages the synchronization messages of the associated logical processes, so it has better scalability than the conditional event algorithm. In addition, since the synchronization message is also sent and received in a non-blocking manner, the execution efficiency is better than the blocking sending and receiving manner.
[0089] According to the method of the present application
[0090] Illustratively, the multi-logical-process parallel simulation advancement can be carried out according to the flow of Figure 6 According to an example of the present application, the method for supporting parallel discrete event simulation of low earth orbit satellite constellation comprises:
[0091] A1, read simulation node configuration data, and assign low orbit simulation nodes to a plurality of preset logical processes;
[0092] A2, start two logical processes, and place medium orbit satellites and high orbit satellites in the two logical processes respectively;
[0093] A3, start another logical process, and place ground equipment in the logical process;
[0094] A4, determine the lookahead of each pair of associated logical processes, and dynamically determine the communication time between simulation nodes through motion simulation;
[0095] A5, start parallel discrete event simulation, and each logical process (such as LP1, LP2, LP3, …, LPi, LPi+1, LPi+2, LPi+3, …) processes events in the following manner:
[0096] D1, create and initialize a message storage area, set simulation time Simulation Time = 0, set safe time SafeTime = 0, dynamically determine associated logical processes, and initialize the MAP data structure, wherein Tnull is set to 0
[0097] D2, send a synchronization message to the associated logical processes at a preset period;
[0098] D3, determine whether the simulation is ended, if yes, go to D7, if not, go to D4;
[0099] D4, determine whether the timestamp Tnext of the next event <= safe time is true, if yes, go to D5, if not, go to D6;
[0100] D5, perform simulation time advancement of the event to the timestamp Tnext of the next event, and go to D3;
[0101] D6, read the synchronization message of the message storage area, update the reference advancement time and the safe time in the MAP data structure, update the event queue and Tnext, and go to D3;
[0102] D7, end the simulation.
[0103] According to one embodiment of the present application, a simulation system is provided, which is constructed based on the method for supporting parallel discrete event simulation of low-orbit satellite constellation according to the foregoing embodiment, and comprises: a simulation configuration module configured to: allocate all simulation nodes in simulation node configuration data to a plurality of logical processes for management and determine a plurality of pairs of associated logical processes, wherein: all low-orbit simulation nodes are allocated into K groups according to a predetermined allocation rule and a preset group number K, and each group of low-orbit simulation nodes in the K groups is allocated to be managed by one logical process; a motion simulation module configured to: simulate the simulation motion of each simulation node in the simulation node configuration data in a motion simulation model, and dynamically determine the communication delay of the simulation between simulation nodes according to the simulation motion result; a look-ahead quantity determination module configured to: determine the look-ahead quantity of each pair of associated logical processes according to the minimum communication delay between simulation nodes in each pair of associated logical processes across logical processes; and a parallel discrete event simulation module configured to: perform parallel discrete event simulation of low-orbit satellite constellation by using the plurality of logical processes, wherein: the communication behavior of all simulation nodes is represented by events at discrete time points, each event is provided with a time stamp, each logical process determines the events that can be currently executed according to the synchronization message of the associated logical process, the look-ahead quantity and the time stamp of the event to advance the event in sequence and send the synchronization message of the associated logical process to the associated logical process.
[0104] In order to verify the effect of the embodiment of the present application, the inventors also conducted experiments. The experimental data show that, when simulating 1584 satellites and 100 gateway stations in parallel using 7 processor cores, the simulation speed of the embodiment of the present application can be increased by more than 3 times. In general, the present application studies the mobility of low-orbit satellites and the composition of large-scale constellation, proposes a parallel discrete event simulation mechanism for large-scale satellite constellation network communication, distributes the simulation nodes of high-dynamic low-orbit satellites (more than 7.9 km / h) on different computing units (such as CPUs or CPU cores), so that the parallel simulation of complex satellite constellation networks is feasible and effective, the logical process synchronization algorithm used is based on local synchronization and is not limited by the program hardware environment, and can be used in the environment of multi-core, multi-processor and cluster, which can arbitrarily expand the simulation scale and has strong scalability and robustness. The local synchronization is reflected in that the logical process only interacts with the synchronization message of the associated logical process and does not need to pay attention to other logical processes.
[0105] It should be noted that, although the above describes the steps in a specific order, it does not mean that the steps must be performed in the above specific order, and in fact, some of the steps can be performed concurrently or even in a changed order, as long as the required functions can be achieved.
[0106] The present application can be a system, a method, and / or a computer program product. The computer program product can include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present application.
[0107] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium can also include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se.
[0108] Having described above several aspects of the application, any modifications and variations that fall within the scope of the described embodiments can be apparent to those skilled in the art. The foregoing description of embodiments of the 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.
Claims
1. A method of supporting parallel discrete event simulation of a low earth orbit satellite constellation, characterized by, The method comprises: allocating all simulation nodes in simulation node configuration data to a plurality of logical processes for management, and determining a plurality of pairs of associated logical processes, wherein the simulation nodes comprise low-orbit simulation nodes corresponding to each low-orbit satellite in a low-orbit satellite constellation, and there is a need for cross-logical-process communication between the simulation nodes managed by each pair of associated logical processes; simulating the simulation motion of each simulation node in the simulation node configuration data in a motion simulation model, and dynamically determining the communication delay of the simulation between the simulation nodes according to the simulation motion simulation result; determining the lookahead of each pair of associated logical processes according to the minimum communication delay between the simulation nodes in each pair of associated logical processes; performing parallel discrete event simulation of the low-orbit satellite constellation using the plurality of logical processes, wherein the communication behavior of all simulation nodes is represented by events at discrete time points, each event is provided with a timestamp determined based on the simulation communication delay, and each logical process determines the events that can be currently executed according to the synchronization message, the lookahead and the timestamp of the events of the associated logical process to advance the sequential execution of the events and send its own synchronization message to the associated logical process; wherein each logical process is configured to: maintain a message storage area for storing packet messages and synchronization messages from the associated logical threads, wherein the synchronization message is used to carry the reference advance time of the associated logical process; maintain an event queue for storing events of the simulation, wherein at least part of the events are generated according to the received packet messages, and when an event is generated according to a packet message, the timestamp of the generated event is greater than or equal to the reference advance time of the logical process sending the packet message; maintain a map data structure for maintaining the reference advance time of each associated logical process of the current logical process, and update the reference advance time of the corresponding associated logical process according to the synchronization message.
2. The method of claim 1, wherein, The process of allocating all simulation nodes in simulation node configuration data to a plurality of logical processes for management comprises: obtaining simulation node configuration data, which comprises low-orbit simulation nodes corresponding to each low-orbit satellite in a low-orbit satellite constellation and related simulation nodes in communication with the low-orbit satellite constellation; allocating all simulation nodes, which comprises: allocating all low-orbit simulation nodes into K groups according to a predetermined allocation rule and a preset group number K, so that each group of low-orbit simulation nodes in the K groups is managed by one logical process.
3. The method of claim 2, wherein, Any one logical process determines the reference advance time sent to its associated logical process in the following manner: taking the minimum value from the reference advance time maintained by the map data structure of the current logical process and the timestamp of the next event to be executed by the current logical process to obtain a safe time; adding the lookahead of the associated logical process to the safe time to obtain the reference advance time sent to the associated logical process.
4. The method of claim 3, wherein, For any logical thread, the events that can be currently executed are the events whose timestamps are less than or equal to the current safe time.
5. The method of claim 3, wherein, For any logical process, the generated synchronization message is only sent to its associated logical process, and the synchronization messages are transmitted between the logical processes in a non-blocking manner.
6. The method of claim 3, wherein, The simulation nodes related to the low-orbit satellite constellation communication include a ground simulation node corresponding to a ground device, a medium-orbit simulation node corresponding to a medium-orbit satellite, and a high-orbit simulation node corresponding to a high-orbit satellite, When the low-orbit satellite constellation parallel discrete event simulation is performed, the ground simulation node, the medium-orbit simulation node, and the high-orbit simulation node are respectively assigned to be managed by corresponding logical processes.
7. A simulation system constructed on the basis of the method according to one of claims 1 to 6, characterized in that The simulation system comprises: The simulation configuration module is configured to assign all the simulation nodes in the simulation node configuration data to the multiple logical processes for management and determine multiple pairs of associated logical processes, including: assigning all the low-orbit simulation nodes into K groups according to a predetermined assignment rule and a preset group number K, and assigning each group of the low-orbit simulation nodes in the K groups to be managed by one logical process; The motion simulation module is configured to simulate the simulation motion of each simulation node in the simulation node configuration data in a motion simulation model, and dynamically determine the communication delay of the simulation between the simulation nodes according to the simulated simulation motion result; The look-ahead amount determination module is configured to determine the look-ahead amount of each pair of associated logical processes according to the minimum communication delay between the simulation nodes in the pair of associated logical processes across the logical processes; The parallel discrete event simulation module is configured to perform the low-orbit satellite constellation parallel discrete event simulation by using the multiple logical processes, wherein the communication behavior of all the simulation nodes is represented by events at discrete time points, each event is provided with a time stamp, each logical process determines the events that can be currently executed according to the synchronization message, the look-ahead amount, and the time stamp of the events of the associated logical process to advance the event execution in sequence and send the synchronization message of the logical process to the associated logical process.
8. A computer-readable storage medium, characterized in that, A computer program is stored thereon, and the computer program can be executed by a processor to implement the steps of the method in any one of claims 1 to 6.
9. An electronic device, comprising: Comprise: One or more processors; And A memory, wherein the memory is used to store executable instructions; The one or more processors are configured to implement the steps of the method in any one of claims 1 to 6 by executing the executable instructions.
Citation Information
Patent Citations
Parallel discrete event simulation time synchronization method based on time-stamp cutoff
CN103268251A
Parallel simulation method and device of computer system structure based on discrete events
CN115827170A