A heterogeneous parallel computing method for satellite orbit prediction using numerical methods

By using CPU + GPU heterogeneous parallel calculation method in satellite orbit prediction, the calculation of overpowering acceleration and integration process in numerical method are parallelized, and the problems of high complexity and slow speed of numerical method orbit calculation in the prior art are solved, and efficient satellite orbit prediction is achieved.

CN114722617BActive Publication Date: 2025-04-22INST OF COMPUTING TECH CHINESE ACAD OF SCI
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202210409337.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-19
Publication Date
2025-04-22
Estimated Expiration
2042-04-19

AI Technical Summary

Technical Problem

The prior art is difficult to realize parallel calculation of numerical satellite orbits, resulting in high computational complexity and slow speed, which cannot meet the real-time orbit prediction needs of thousands of satellites.

Method used

The CPU + GPU heterogeneous parallel computing method is adopted, and the calculation process of the overpower acceleration and integration process are changed from serial to parallel by calling a large number of threads, and the calculation process independent of the satellite position is performed by the CPU to reduce repeated calculations and reduce the amount of calculation.

Benefits of technology

It greatly improves the calculation speed of satellite orbit prediction, and can meet the real-time simulation needs of low-orbit giant constellations. The time-consuming ratio remains at around 80, and the calculation speed is 233.4 times that of CPU alone.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114722617B_ABST
    Figure CN114722617B_ABST
Patent Text Reader

Abstract

The present invention discloses a heterogeneous parallel computing method for satellite orbit prediction using a numerical method, and a heterogeneous environment composed of CPU+GPU based on a CUDA architecture, wherein the method comprises the following steps: S1, calling the CPU to perform parameter initialization required for calculating satellite orbits using a numerical method, including initializing the environment for orbit calculation and calculation target information, and the conversion of the orbit time coordinate system and the geographic coordinate system; S2, calling the GPU to calculate the orbit data of all satellites in parallel using a numerical method based on the parameters initialized by the CPU. The present invention separates the calculation process that is independent of the satellite position and performs a calculation once by the CPU, and transmits the result to the GPU in the form of parameters for orbit parallel calculation, thereby reducing a large amount of repeated calculations in the process of solving the perturbation force, reducing the amount of calculation of the entire calculation process, and also reducing the difficulty of parallelizing the perturbation force calculation process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of satellite communications, and in particular to satellite orbit prediction in a simulation process before satellite communication network construction, and more particularly to a heterogeneous parallel computing method for satellite orbit prediction using a numerical method. Background Art

[0002] Satellite Internet is currently a hot development direction of global satellite communication systems. Satellite orbit prediction is of great significance to satellite constellation design and network topology calculation.

[0003] The principle of satellite orbit calculation is: during its operation, the satellite will be affected by various perturbations such as the earth's gravity and move in a circular motion. By analyzing the perturbations acting on the satellite, and then establishing and solving the acceleration differential equation, the speed and position of the satellite at any moment can be obtained, thereby realizing satellite orbit prediction.

[0004] Under the existing technology, the calculation methods of satellite orbits are mainly divided into three categories: analytical method, numerical method and semi-analytical method. Among them: the principle of the analytical method is to simplify the satellite's motion model and perturbation force model, such as simplifying the satellite's motion model to a two-body model that only includes the satellite and the center of the earth, so that the analytical expression of the satellite trajectory can be obtained and solved directly by the analytical expression. In addition, the common simplified general perturbation model (SGP4) also belongs to the analytical method. The analytical method can quickly calculate the orbital position of the satellite, but the accuracy is low and it relies on two-line orbit elements (TwoLine Element, TLE) file; The numerical method is the main method for precise orbit prediction at present. Its principle is to calculate the main perturbations that affect the motion of satellites, such as the gravity of the earth, the gravity of the sun, the gravity of the moon, the atmospheric drag, the pressure of sunlight, etc., and obtain the satellite's acceleration differential equation through the perturbation model, and then integrate and solve it through various integral methods (such as the Runge-Kutta method) to obtain the motion orbit of the satellite. Its characteristics are high calculation accuracy, but high calculation complexity and slow calculation speed; The principle of the semi-analytical method is similar to the numerical method. Its characteristics are to simplify some perturbations that affect short-period motion, thereby reducing the calculation complexity of long-period orbit prediction. Therefore, it is mainly used for long-period orbit calculations, but not suitable for short-period orbit calculations. At present, there are technologies for GPU-based SGP4 parallel computing methods, but there is a lack of technologies related to parallel computing of numerical method orbits with higher accuracy.

[0005] Currently, the mainstream method for accurately predicting satellite orbits is the numerical method. By solving the various perturbations acting on the satellite, an acceleration differential equation is established, and the satellite orbit is solved by integral method. However, this method has the problems of complex solution process, slow calculation speed, and cannot meet the real-time orbit prediction needs of thousands of satellites. The reason is that the existing technology does not realize parallel computing of the numerical method.

[0006] The existing orbit parallel calculation related technologies are mainly the parallelization algorithm of the SGP4 model, and lack the parallelization scheme of the numerical method. However, SGP4 has the following main problems: (1) SGP4 is an analytical method with low calculation accuracy. The orbit error after 24 hours of calculation is about 2km; (2) SGP4 relies on TLE files. TLE is the mean root number of the satellite and can only be obtained by observation. Using the instantaneous root number will cause greater errors. Therefore, this method can only predict the orbit of the launched satellite, but cannot predict the orbit of the unlaunched satellite.

[0007] Therefore, in order to meet the orbit prediction and simulation needs of the current satellite Internet giant constellations, it is urgent to solve the orbit parallel calculation problem of numerical methods. Summary of the invention

[0008] Therefore, the purpose of the present invention is to overcome the defects of the above-mentioned prior art and provide a heterogeneous parallel computing method for satellite orbit prediction using numerical methods to solve the orbit parallel computing problem of numerical methods.

[0009] The present invention discloses a heterogeneous parallel computing method for satellite orbit prediction using a numerical method, and a heterogeneous environment composed of a CPU+GPU based on a CUDA architecture. The method comprises the following steps: S1, calling a CPU to execute parameter initialization required for calculating satellite orbits using a numerical method, including initializing an environment for orbit calculation and calculation target information, and conversion between an orbital time coordinate system and a geographic coordinate system; S2, calling a GPU to calculate orbital data of all satellites in parallel using a numerical method based on parameters initialized by the CPU.

[0010] In some embodiments of the present invention, in step S1, the CPU executes the following steps: S11, obtaining satellite data corresponding to the giant constellation simulation, reading the number of satellites, the initial position of each satellite, the satellite mass, the drag coefficient, the predicted start time, and the predicted end time; S12, obtaining data related to the calculation of perturbation force in the giant constellation simulation file; S13, performing coordinate system conversion on the coordinate data of each satellite to convert it to the coordinate system required by the orbit calculation process; S14, the CPU completes memory initialization to allocate storage space for all satellites to store their related data; S15, initializing the calculation of satellite perturbation force parameters, including calculating the current position of all satellites, the earth's gravity coefficient, the precession nutation matrix, and the reference system conversion matrix and transmitting them to the GPU.

[0011] In some embodiments of the present invention, step S14 includes: applying for GPU global video memory to store data required during GPU operation; applying for CPU memory to store satellite orbit data obtained by GPU operation, wherein the memory size is (double)×6×N sat , where N sat It is the number of satellites in the giant constellation, and the data type is double.

[0012] In some embodiments of the present invention, step S2 includes calling the GPU, allocating a thread to each satellite and executing the following steps in parallel by all threads at each moment from the prediction start moment to the prediction end moment: S21, using the perturbation force parameters initialized by the CPU as input, using the numerical method to parallelly calculate the perturbation force of the satellite; S22, based on the perturbation force of the satellite calculated in step S21, obtaining the satellite acceleration differential equation based on the numerical method, and solving the differential equation to obtain the velocity and position vector of the satellite at the next moment and storing them in the GPU memory. Preferably, the fourth-order Runge-Kutta method is used to solve the differential equation.

[0013] Preferably, the method further includes the following steps: S3, after all threads complete the orbit calculation, the CPU reads the orbit calculation results of all satellites from the GPU video memory and stores them in the memory allocated by the CPU; S4, the CPU writes the satellite orbit data into the simulation file and releases the video memory space and memory space allocated for the orbit calculation.

[0014] In some embodiments of the present invention, in the CUDA architecture, the number of threads in each thread block is an integer multiple of 32, and the number of thread blocks is set to:

[0015] (N sat -1) / 32*n+1

[0016] Among them, 32*n represents the number of threads in each thread block.

[0017] Preferably, the number of threads in each thread block is 128.

[0018] Compared with the prior art, the advantages of the present invention are: the present invention uses CPU+GPU heterogeneous parallel computing, and changes the perturbation force acceleration calculation and integration process from serial to parallel by calling a large number of threads, which greatly improves the calculation speed. At the same time, the present invention adopts the parallelization of the perturbation force acceleration calculation process, and parallelizes the solution of the perturbation force, the most complex calculation part in the numerical method of calculating satellite orbits. The present invention decomposes the calculation process of the perturbation force into two processes: initialization of the perturbation force solution and calculation of the perturbation force. By separating the calculation process that is not related to the satellite position (such as the calculation process of the range matrix, the precession nutation matrix, etc.), the CPU performs a calculation once, and the result is passed to the GPU in the form of parameters, so that a large number of repeated calculations are reduced in the perturbation force solution process, the calculation amount of the entire calculation process is reduced, and the difficulty of parallelization of the perturbation force calculation process is also reduced. In this way, the numerical method of calculating satellite orbits is decomposed, the acceleration and integration process of the satellite are parallelized, and the CPU+GPU heterogeneous computing method is used to calculate multi-satellite orbits, which speeds up the process of numerical calculation of satellite orbits. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] The embodiments of the present invention are further described below with reference to the accompanying drawings, in which:

[0020] Figure 1 A schematic diagram of a flow chart of a heterogeneous parallel computing method for satellite orbit prediction using a numerical method according to an embodiment of the present invention;

[0021] Figure 2 A schematic diagram of the GPU parallel computing principle according to an embodiment of the present invention;

[0022] Figure 3 Schematic diagram of the comparison between the parallel computing speed of the present invention and the CPU serial computing speed according to an embodiment of the present invention. DETAILED DESCRIPTION

[0023] In order to make the purpose, technical solutions and advantages of the present invention more clearly understood, the present invention is further described in detail by specific embodiments below. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.

[0024] The purpose of the present invention is to solve the problem of real-time and accurate prediction of multiple satellite orbits. The numerical method for extrapolating satellite orbits is relatively complex and slow, and cannot meet the real-time calculation of satellite Internet orbits composed of thousands of satellites. Therefore, the present invention provides a parallel computing solution of the numerical method to meet the real-time satellite orbit prediction in the simulation process of a giant constellation containing a large number of satellites.

[0025] First, the overall idea of ​​the present invention is briefly introduced. The present invention realizes parallel calculation of numerical satellite orbit prediction by adopting a CPU+GPU heterogeneous platform based on the CUDA framework. By performing complexity analysis on the calculation process of the high-precision perturbation force model, the high-precision perturbation force acceleration calculation process and the integration process are parallelized respectively, and the GPU is used to realize multi-threaded parallel calculation of multiple satellite orbits, so as to improve the calculation speed of multi-satellite orbit prediction and meet the accurate real-time prediction of low-orbit constellation orbits.

[0026] According to an embodiment of the present invention, the present invention provides a heterogeneous parallel computing method for satellite orbit prediction using a numerical method, decomposes the process of calculating the satellite orbit using a numerical method corresponding to a giant constellation, and respectively sends the entire calculation process to a CPU and a GPU for calculation, wherein the process of solving the perturbation force acceleration and the solution integration process with large calculation amount are parallelized and sent to the GPU for operation, and other parts with relatively small calculation amount, such as time calculation, coordinate system conversion, and earth deflection coefficient calculation process, are sent to the CPU for execution, and the specific steps can be divided into three parts: the first part is executed by the CPU, and the initialization process before the GPU parallel calculation of the satellite orbit is performed on the CPU, the environment and calculation target information of the orbit calculation are initialized, the orbit time coordinate system and the geographic coordinate system are converted, and the data is copied to the GPU memory for GPU parallel calculation; the second part is executed by the GPU, and the GPU performs parallel calculation of the satellite orbit, mainly including parallel solution of the perturbation force on the satellite, establishment of differential equations and parallel integration process; the third part is transferred from the GPU to the CPU, and the CPU reads the calculation results from the GPU memory and performs coordinate system conversion, and finally releases the corresponding video memory and internal memory to complete the calculation of the entire heterogeneous computing process.

[0027] Each part is described in detail below.

[0028] like Figure 1 As shown in the figure, based on the simulation requirements of a giant constellation (assuming there are N satellites), satellite orbit prediction is started, and the initial satellite orbit data is input to the CPU+GPU heterogeneous platform, and then the following calculations are performed:

[0029] Part 1: Initialization before CPU completes parallel computing

[0030] Step 1: Read the initial position of the satellite and calculate the parameters, including the number of satellites, satellite mass, drag coefficient, initial position, prediction start time, prediction end time, simulation step size and other information read by the CPU.

[0031] Step 2: Read the perturbation force related data, that is, the CPU reads from the file the earth orientation and earth gravity coefficient related to the calculation of the earth's gravity; the planetary ephemeris, solar and lunar nutation, and planetary nutation data related to the calculation of planetary perturbation force and sunlight pressure; the atmospheric coefficient data related to the calculation of atmospheric drag, etc.

[0032] Step 3: Perform coordinate system conversion and time system conversion. Since the satellite orbit calculation process requires the coordinate system to be ECI (Earth Inertial Coordinate System), and the initial orbit coordinate system generally input is ECEF (Earth Centered Earth Fixed Coordinate System), it is necessary to perform coordinate system conversion. In addition, the time format generally input is the Gregorian calendar, which needs to be converted into the simplified Julian day.

[0033] Step 4: Complete memory initialization, including applying for GPU memory space to store data required during GPU calculations, such as atmospheric coefficient data, and applying for a block of size (double) × 6 × N sat (where N sat is the number of satellites in the giant constellation, double is the data type, and N in the embodiment of the present invention sat =N) is used to store the calculated orbital data (velocity vector and position vector).

[0034] Step 5: Complete the initialization of perturbation force related data calculation, including calculating the planetary position (i.e., initial orbit) at the current moment, the earth's gravity coefficient, the reference frame conversion matrix, the range matrix, the precession nutation matrix, and the earth's gravity coefficient affected by the tidal effect, and use them as input for calculating the satellite orbit at the next moment in the parallel calculation process. The initialized perturbation force related coefficients are copied to the GPU using the cudaMemcpy function, including copying the satellite's initial orbit data to the GPU and copying the earth's gravity coefficient to the GPU.

[0035] Part 2: Parallel Computation of Giant Constellation Satellite Orbits Using GPUs

[0036] Step 6: Call the GPU. Functions in the CUDA architecture can be divided into three categories: host functions, global functions, and device functions. The specific usage methods are shown in Table 1. Among them, host functions are called and executed by the CPU, global functions are called by the CPU and executed by the GPU, and device functions are called and executed by the GPU. After the CPU completes the orbit calculation initialization, call the kernel function in the global function: Kernel<<<(N sat-1) / 128+1,128>>>, enter the blocking waiting GPU execution program, because the CUDA stream processor (Stream Multiprocessor, SM) is based on thread bundles (warp) as a unit, every 32 threads are scheduled together, according to one embodiment of the present invention, the number of threads in the thread block is an integer multiple of 32, 128, in order to improve the parallel efficiency, the number of thread blocks is taken as (N sat -1) / 128+1, so that one thread is assigned to each satellite to perform parallel calculations on the satellite orbit.

[0037] Step 7: The GPU calculates the perturbation force in parallel. For example, in the embodiment of the present invention, if there are N satellites, N threads are called, and each thread corresponds to the orbit calculation of one satellite. The satellite communication network is mainly low-orbit satellites, and the main perturbation forces of low-orbit satellites during movement are: the gravity of the earth, the gravity of other planets, the atmospheric resistance, and the perturbation force of sunlight pressure. The calculation functions of these forces are rewritten into device functions in the present invention, which can be directly called in the GPU execution process to realize parallel calculation, such as Figure 2 As shown, the calculation of these forces in each thread is designed to be executed serially within one thread. This is because the calculation complexity of the earth's perturbation force is much higher than that of the other three perturbations. The serial design has little effect on the calculation speed and also avoids acceleration write conflicts. Except for atmospheric drag, the input parameters required for other perturbations have been uniformly initialized in step 5 and stored in the global memory of the GPU. The pointer to the starting point of the memory space is passed into the device function. The thread number of each thread can be obtained according to the following formula:

[0038] tid=blockDim.x×blockIdx.x+threadIdx.x

[0039] Among them, tid is the thread number, blockDim is the dimension of the thread block, blockDim.x is the size of the thread block in the x dimension, blockIdx is the ID of the thread block, and threadIdx is the thread ID in the thread block. Each thread can store the calculation results into the corresponding GPU memory space according to the thread number.

[0040] Table 1

[0041]

[0042]

[0043] Step 8: GPU parallel calculation integration. The acceleration differential equations of the motion of N satellites can be generated through the perturbation force calculation results of step 7. The fourth-order Runge-Kutta integrator on the GPU is called to integrate and calculate the satellite orbits, that is, to solve the differential equations. The velocity and position vectors of the satellite at the next moment are obtained by parallel calculation and stored in the corresponding GPU memory space.

[0044] Step 9: Store the calculation results. After all threads complete the orbit calculation, the CPU reads the calculation results from the GPU and stores them in the memory. That is, the satellite orbit data calculated by N threads is copied into the CPU. The simulation time is changed according to the simulation step length h. It is determined whether the current time reaches the predicted end time. If not, part of the GPU video memory is released, the data pointer is recorded, the current time is modified and jump to step 5.

[0045] Part 3: CPU completes orbit calculation

[0046] Step 10: After the satellite orbit is calculated through the previous steps, the GPU will convert the coordinates as needed, write the data to the file, and output the data;

[0047] Step 11: Release the CPU memory and GPU video memory. After the data is written, the requested video memory space and memory space will be released, and the program ends the parallel computing process.

[0048] In order to better illustrate the effect of the present invention, the present invention experimentally compares the computational efficiency of a CPU computing structure serial computation numerical method and a CPU+GPU heterogeneous computing structure parallel computation numerical method of the present invention.

[0049] The experimental environment is shown in Table 2.

[0050] Table 2

[0051]

[0052] The orbital data selected for the experiment comes from the GPS precise ephemeris published by NASA. The step size is 10s, and the 1-hour orbital data from 1 satellite to 1000 satellites are calculated in parallel.

[0053] The acceleration results of heterogeneous computing of the present invention are as follows Figure 3As shown in the figure, the time efficiency ratio is used to measure the ratio of the actual prediction time to the time consumed by the calculation. When the value is greater than 1, it indicates that the calculation structure meets the real-time requirements. It can be seen that when the number of satellites is less than 10, the CPU calculation speed is faster than the heterogeneous calculation speed. This is because the number of threads is small at this time, and the advantages of parallelism are not brought into play. At the same time, the data transfer between the memory and the video memory and the GPU startup process consume a certain amount of time, resulting in a slower heterogeneous calculation speed. However, as the number of satellites increases, the CPU calculation time increases linearly, while the GPU+CPU heterogeneous calculation time does not increase significantly. This is because threads are called to use a large number of CUDA cores to calculate each satellite orbit at the same time during the orbit calculation process. When the number of satellites reaches 500, the CPU calculation can no longer meet the demand. When the number of satellites reaches 1000, the time efficiency ratio of the CPU+GPU heterogeneous computing method remains at around 80, and the calculation speed is 233.4 times that of using the CPU alone.

[0054] The present invention is based on the CPU+GPU heterogeneous parallel computing scheme of CUDA. Through the complexity analysis of the numerical satellite orbit calculation process, it is found that the most complex calculation part in the numerical orbit calculation process is the perturbation force acceleration calculation and integration process. In order to speed up the calculation speed of multiple satellite orbits, the present invention uses CPU+GPU heterogeneous parallel computing, and changes the perturbation force acceleration calculation and integration process from serial to parallel by calling a large number of threads, which greatly improves the calculation speed. At the same time, the present invention adopts: parallelization of the perturbation force acceleration calculation process. The most complex calculation part in the numerical method of solving satellite motion is the solution of the perturbation force. The present invention decomposes the perturbation force calculation process into two processes: initialization of the perturbation force solution and calculation of the perturbation force. By separating the calculation process that is not related to the satellite position (such as the calculation process of the range matrix, the precession nutation matrix, etc.), the CPU performs a calculation once, and the result is passed to the GPU in the form of parameters, so that a large number of repeated calculations are reduced in the perturbation force solution process, the calculation amount of the entire calculation process is reduced, and the difficulty of parallelization of the perturbation force calculation process is also reduced. It can be seen that the GPU-based numerical precise orbit parallel calculation method proposed in the present invention decomposes the numerical satellite orbit calculation process, parallelizes the acceleration and integration process of the satellite, and uses the CPU+GPU heterogeneous computing method to calculate the orbits of multiple satellites, thereby speeding up the numerical satellite orbit calculation process. Experiments have shown that the calculation speed of using i7-7700+GTX 1050Ti to calculate 1,000 satellites is 233 times that of using i7-7700 alone, which greatly speeds up the orbit calculation speed and can meet the real-time simulation requirements of low-orbit giant constellations.

[0055] It should be noted that although the above describes the various steps in a specific order, it does not mean that the various steps must be executed in the above specific order. In fact, some of these steps can be executed concurrently or even in a different order as long as the required functions can be achieved.

[0056] The present invention may be a system, a method and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for causing a processor to implement various aspects of the present invention.

[0057] Computer readable storage medium can be a tangible device that holds and stores instructions used by an instruction execution device. Computer readable storage medium can include, for example, but is not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (non-exhaustive list) of computer readable storage medium include: a portable computer disk, 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 disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, for example, a punch card or a protruding structure in a groove on which instructions are stored, and any suitable combination thereof.

[0058] The embodiments of the present invention have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The selection of terms used herein is intended to best explain the principles of the embodiments, practical applications, or technical improvements in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A heterogeneous parallel computing method for satellite orbit prediction using numerical methods, wherein: The method is based on a heterogeneous environment consisting of a CPU+GPU of a CUDA architecture, and is characterized in that the method comprises the following steps: S1. Calling the CPU to perform the initialization of parameters required for calculating the satellite orbit using the numerical method, including initializing the environment and calculation target information of the orbit calculation, and the conversion between the orbit time coordinate system and the geographic coordinate system; wherein the CPU executes the following steps: S11, obtaining satellite data corresponding to the giant constellation simulation, reading the number of satellites, the initial position of each satellite, the satellite mass, the drag coefficient, the prediction start time, and the prediction end time; S12, obtaining data related to calculating perturbation forces in a giant constellation simulation file; S13, performing coordinate system conversion on the coordinate data of each satellite to convert it into the coordinate system required by the orbit calculation process; S14, the CPU completes memory initialization to allocate storage space for all satellites to store their related data, including: applying for GPU global video memory to store data required in the GPU operation process; and applying for CPU memory to store satellite orbit data obtained by GPU operation, where the memory size is double×6×N sat , where N sat is the number of satellites in the giant constellation, double is the data type; S15, initialization of satellite perturbation parameters calculation, including calculation of the current position of all satellites, the earth's gravity coefficient, the precession nutation matrix, and the reference frame conversion matrix, and transmission to the GPU; S2, calling the GPU to calculate the orbital data of all satellites in parallel based on the parameters initialized by the CPU using a numerical method, wherein when calling the GPU, a thread is allocated to each satellite and all threads execute the following steps in parallel at each moment from the prediction start time to the prediction end time: S21, using the perturbation force parameters initialized by the CPU as input, using a numerical method to parallelly calculate the perturbation force of the satellite; S22. Based on the perturbation force of the satellite calculated in step S21, obtain the satellite's acceleration differential equation based on the numerical method, and solve the differential equation to obtain the velocity and position vector of the satellite at the next moment and store them in the GPU memory.

2. The method according to claim 1, characterized in that In step S22, the fourth-order Runge-Kutta method is used to solve the differential equation.

3. The method according to claim 1, characterized in that: The method further comprises the steps of: S3. After all threads complete orbit calculation, the CPU reads the orbit calculation results of all satellites from the GPU video memory and stores them in the memory allocated by the CPU.

4. The method according to claim 3, characterized in that The method further comprises the steps of: S4. The CPU writes the satellite orbit data into the simulation file and releases the video memory space and the memory space allocated for orbit calculation.

5. The method according to claim 1, characterized in that In the CUDA architecture, the number of threads in each thread block is an integer multiple of 32, and the number of thread blocks is set to: (N sat -1) / 32*n+1 Among them, 32*n represents the number of threads in each thread block.

6. The method according to claim 5, characterized in that The number of threads in each thread block is 128.

7. 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 any method described in claims 1 to 6.

8. An electronic device, characterized in that: include: one or more processors; A storage device for storing one or more programs, when the one or more programs are executed by the one or more processors, enables the electronic device to implement the steps of the method as claimed in any one of claims 1 to 6.

Citation Information

Patent Citations

  • SGP4 track model integrated parallel method based on GPU

    CN111127295A