Satellite simulation system and satellite simulation method
By constructing a satellite mission model module and a virtualized hardware interface module, the satellite simulation system can operate independently and perform efficient simulations. This solves the problem of low simulation speed in existing systems, improves the simulation speed, and meets the needs of satellite functional testing and emergency fault handling.
Patent Information
- Application Number
- CN202310524559.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-05-10
- Publication Date
- 2026-02-10
- Estimated Expiration
- 2043-05-10
AI Technical Summary
Existing satellite simulation systems have low simulation rates, causing satellite researchers to spend a lot of time on simulation tasks, which affects work efficiency.
The system constructs a satellite service model module, a virtual satellite peripheral interface module, a scheduling interface module, and a virtual satellite stand-alone model module. By removing the operating system and virtualized hardware read/write interfaces, the system enables the independent operation of the satellite service software, simulates real hardware operations, and compiles it into an executable program on a conventional computer system.
It significantly improves the simulation speed of satellite simulation systems, enabling direct compilation into runnable programs on conventional computer systems, increasing the simulation speed by several times or tens of times, and meeting the needs of satellite functional testing and emergency fault handling.
Smart Images

Figure CN116578012B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application mainly relates to the field of satellite simulation technology, in particular to a satellite simulation system and a satellite simulation method. BACKGROUND
[0002] The digital simulation technology of satellites is developing continuously, and a satellite simulation system can be used to simulate the preparation phase and execution phase of a satellite mission. As the types of satellite missions become more and more complex, the preparation time before the satellite enters the mission and the time for executing the mission process can become longer and longer, usually several hours or even longer. If the satellite simulation system uses a simulation speed of 1 times to simulate the working condition of the satellite, the user of the satellite simulation system will need to wait for a long time to complete the entire satellite simulation task, which seriously affects the work efficiency of the satellite researchers. Therefore, in the actual use of the satellite simulation system, it is hoped that the satellite simulation system can have a faster simulation speed.
[0003] The existing satellite simulation system is mainly implemented based on a virtual CPU, and satellite on-board software is loaded in the virtual CPU to simulate the real satellite state. However, the simulation speed of the satellite simulation system based on the virtual CPU is basically 1 to 2 times, and the user of the satellite simulation system still needs to spend a lot of time in the complete satellite simulation task, and there is a problem that the simulation speed of the satellite simulation system is too low, which affects the work efficiency of the satellite researchers. SUMMARY
[0004] The technical problem to be solved by the present application is to provide a satellite simulation system and a satellite simulation method, which can improve the simulation speed of the satellite simulation system.
[0005] The technical solution adopted by the present application to solve the above technical problem is a satellite simulation system, which comprises a satellite on-board model module, a virtual satellite peripheral interface module, a scheduling interface module, a virtual satellite single-machine model module, and a space environment model module. The construction method of the satellite on-board model module comprises: removing the operating system in the satellite on-board software and virtualizing the hardware read-write interface in the satellite on-board software; the virtual satellite peripheral interface module comprises a virtual satellite peripheral interface data structure body, which is used to exchange data between the satellite on-board model module and the virtual satellite single-machine model module; the scheduling interface module is used to acquire and forward data between the satellite on-board model module and the virtual satellite single-machine model module; the space environment model module is used to simulate the space environment where the satellite is located, and the virtual satellite single-machine model module is used to simulate the functions and internal logic of the satellite single-machine and / or subsystem in the space environment.
[0006] In an embodiment of the present application, the satellite on-board model module comprises a virtual internal register unit and a virtual on-board clock unit, and the method for constructing the satellite on-board model module further comprises: setting the internal register addresses of the satellite on-board software as an array and generating the virtual internal register unit; setting the threads of each subsystem in the satellite on-board software as a function, and the initialization function of each subsystem is executed only once; setting the mode of reading and writing data in the satellite on-board software as reading and writing from the virtual satellite peripheral interface module; re-setting the data reading and writing operation triggered by an interrupt in the satellite on-board software as directly triggering the data reading and writing operation when the data is ready; constructing a virtual on-board clock for maintaining the on-board time and generating the virtual on-board clock unit; setting the storage mode of the satellite on-board software as a little-endian mode; and compiling the modified satellite on-board software into a dynamic link library to generate the satellite on-board model module.
[0007] In an embodiment of the present application, the virtual satellite peripheral interface data structure body comprises a whether-updated flag, a data pointer address and a data valid length field, and the process of exchanging data between the satellite on-board model module and the virtual satellite single-machine model module according to the virtual satellite peripheral interface data structure body comprises: when the satellite on-board model module sends a command to the virtual satellite single-machine model module, the virtual satellite peripheral interface module performs the following steps: applying a memory of a corresponding size for the data pointer in the virtual satellite peripheral interface data structure body according to the actual length of the command, and assigning the actual length of the command to the data valid length field; copying the content of the command to the memory pointed by the data pointer; and setting the whether-updated flag as updated.
[0008] In an embodiment of the present application, the process of exchanging data between the satellite on-board model module and the virtual satellite single-machine model module according to the virtual satellite peripheral interface data structure body further comprises: when the satellite on-board model module receives data from the virtual satellite single-machine model module, the virtual satellite peripheral interface module performs the following steps: judging whether there is virtual satellite single-machine data update; if there is virtual satellite single-machine data update, copying the updated virtual satellite single-machine data to the corresponding virtual satellite single-machine data storage address in the satellite on-board model module; and if there is no virtual satellite single-machine data update, skipping the operation of copying the virtual satellite single-machine data.
[0009] In an embodiment of the present application, the data exchanged between the satellite on-board model module and the virtual satellite single-machine model module comprises one or more of a single-machine telemetry request command, single-machine telemetry data, an up-loaded remote control instruction code, a satellite telemetry data frame and a single-machine remote control command.
[0010] In an embodiment of the present application, the satellite on-board model module comprises at least one running period, and the satellite on-board model module sequentially executes each subsystem function in the current running period.
[0011] In an embodiment of the present application, the scheduling interface module comprises a single-machine telemetry data structure, the single-machine telemetry data structure comprising a whether-updated flag, a data pointer address, and a data valid length field, and the process of the scheduling interface module acquiring and forwarding data between the satellite on-board model module and the virtual satellite single-machine model module comprises: when the scheduling interface module receives a single-machine telemetry packet transmitted by the virtual satellite single-machine model module, the scheduling interface module performs the following steps: applying memory according to the length of the single-machine telemetry packet, and pointing the data pointer address to the first address of the memory; copying the data of the single-machine telemetry packet into the memory pointed to by the data pointer address; updating the data valid length field to the length of the single-machine telemetry packet; and setting the whether-updated flag to updated.
[0012] In an embodiment of the present application, the step of the satellite on-board model module acquiring data from the single-machine telemetry data structure comprises: judging whether the whether-updated flag is updated or not updated, if the whether-updated flag is updated, taking the data of the single-machine telemetry packet from the data pointer address, and if the whether-updated flag is not updated, not processing.
[0013] In an embodiment of the present application, the virtual satellite peripheral interface module comprises one or more of a universal asynchronous receiver-transmitter unit, a controller area network unit, a synchronous serial port unit, and a satellite orbit instruction unit.
[0014] In an embodiment of the present application, the virtual satellite single-machine model module comprises one or more of a global navigation satellite system unit, an optical fiber gyroscope unit, a star sensor unit, and a reaction wheel unit.
[0015] In an embodiment of the present application, the space environment model module comprises one or more of a dynamics model unit, an energy source model unit, and a thermal control model unit.
[0016] In an embodiment of the present application, the virtual satellite single-machine model module and the space environment model module are constructed based on the concept of classes and objects in the programming language C++.
[0017] The application also provides a satellite simulation method for exchanging data between the satellite service model module, the scheduling interface module and the virtual satellite single-machine model module. The scheduling interface module performs the following steps: judging whether there is a single-machine telemetry request command from the satellite service model module, and if so, forwarding the single-machine telemetry request command to the virtual satellite single-machine model module; obtaining single-machine telemetry data fed back by the virtual satellite single-machine model module and forwarding the single-machine telemetry data to the satellite service model module; judging whether there is an upper-layer inputted remote control instruction, and if so, obtaining a corresponding upper-layer inputted remote control instruction code and forwarding the remote control instruction code to the satellite service model module; scheduling the satellite service model module according to the upper-layer inputted remote control instruction code and obtaining a scheduling result fed back by the satellite service model module; obtaining a satellite telemetry data frame from the satellite service model module and forwarding the satellite telemetry data frame to a measurement and control front end of ground analysis software; obtaining a single-machine remote control command from the satellite service model module and forwarding the single-machine remote control command to the virtual satellite single-machine model module; obtaining a single-machine telemetry request command of a current service cycle from the satellite service model module and forwarding the single-machine telemetry request command to the virtual satellite single-machine model module; judging whether there is an exit simulation instruction, and if so, ending the satellite simulation method; the satellite service model module performs the following steps: obtaining the upper-layer inputted remote control instruction code from the scheduling interface module and updating an on-board time and a service cycle; obtaining the latest single-machine telemetry data from the scheduling interface module; outputting the satellite telemetry data frame to the scheduling interface module; outputting the single-machine remote control command to the scheduling interface module; outputting the single-machine telemetry request command of the current service cycle and feeding back the scheduling result to the scheduling interface module.
[0018] In the process of constructing the satellite service model module, the technical scheme of the application removes the operating system in the satellite service software so that the satellite service software can be independent of the operating system and the CPU, and the hardware read-write interface in the satellite service software is mapped by virtualization to simulate the read-write operation behavior of the real hardware, so that the satellite service software can be independent of the hardware CPU or the virtual CPU when running. The satellite service model module can make the modified satellite service software run independently, and there is no need to develop a satellite computer hardware module such as a virtual CPU, thereby effectively reducing the development difficulty of the satellite simulation system. The data structure body of the virtual satellite peripheral interface module and the scheduling interface module can realize the data exchange between the satellite service model module and the virtual satellite single-machine model module. The virtual satellite single-machine model module can simulate the functions and internal logic of the satellite single-machine and subsystems to realize the closed loop of the whole satellite information flow.
[0019] The technical solution of this application is based on real satellite mission software, which can ensure that the satellite simulation system simulates the real behavior and state of the satellite to the greatest extent, and retains the execution logic and behavior of the real satellite mission software at the mission level. The satellite simulation system can be directly compiled into an executable program in a conventional computer system. Moreover, the processing power of conventional computer servers is strong, which can further improve the simulation speed of the satellite simulation system by several times or tens of times, so as to better meet various application scenarios such as satellite function testing, verification, and emergency response drills. Attached Figure Description
[0020] To make the above-mentioned objectives, features and advantages of this application more apparent and understandable, the specific embodiments of this application will be described in detail below with reference to the accompanying drawings, wherein:
[0021] Figure 1 This is an exemplary architecture diagram of a satellite simulation system according to an embodiment of this application;
[0022] Figure 2 This is an exemplary architecture diagram of a satellite simulation system according to another embodiment of this application;
[0023] Figure 3 This is an exemplary schematic diagram showing that a satellite needs to execute different satellite service subsystems in different operating cycles;
[0024] Figure 4 This is an exemplary flowchart of a satellite simulation method according to an embodiment of this application. Detailed Implementation
[0025] To make the above-mentioned objectives, features and advantages of this application more apparent and understandable, the specific embodiments of this application will be described in detail below with reference to the accompanying drawings.
[0026] Many specific details are set forth in the following description in order to provide a full understanding of this application. However, this application may also be implemented in other ways different from those described herein, and therefore this application is not limited to the specific embodiments disclosed below.
[0027] As indicated in this application and claims, unless the context clearly indicates otherwise, the words "a," "an," "an," and / or "the" are not specifically singular and may include plural forms. Generally speaking, the terms "comprising" and "including" only indicate the inclusion of explicitly identified steps and elements, which do not constitute an exclusive list, and the method or apparatus may also include other steps or elements.
[0028] Flowcharts are used in this application to illustrate the operations performed by the system according to embodiments of this application. It should be understood that the preceding or following operations are not necessarily performed in exact order. Instead, various steps can be processed in reverse order or simultaneously. Furthermore, other operations may be added to these processes, or one or more steps may be removed from these processes.
[0029] This application proposes a satellite simulation system that can be applied to scenarios such as simulating satellite function testing, verification, and emergency response drills.
[0030] Figure 1 This is an exemplary architecture diagram of a satellite simulation system according to an embodiment of this application, with reference to... Figure 1 As shown, the satellite simulation system 100 includes a satellite service model module 110, a virtual satellite peripheral interface module 120, a scheduling interface module 130, a virtual satellite single-machine model module 140, and a space environment model module 150. The construction method of the satellite service model module 110 includes step S001: removing the operating system from the satellite service software and virtualizing the hardware read / write interfaces in the satellite service software; the virtual satellite peripheral interface module 120 includes a virtual satellite peripheral interface data structure, which is used to exchange data between the satellite service model module 110 and the virtual satellite single-machine model module 140; the scheduling interface module 130 is used to acquire and forward data between the satellite service model module 110 and the virtual satellite single-machine model module 140; the space environment model module 150 is used to simulate the space environment in which the satellite resides, and the virtual satellite single-machine model module 140 is used to simulate the functions and internal logic of the satellite single machine and / or subsystems in the space environment.
[0031] For example, the operating system in the satellite mission software includes the VxWorks operating system, and removing the operating system from the satellite mission software includes deleting the relevant code of the operating system.
[0032] In constructing the satellite service model module 110, the technical solution of this application removes the operating system from the satellite service software, allowing the satellite service software to operate independently of both the operating system and the CPU. By virtualizing the hardware read / write interfaces in the satellite service software, the read / write operations of real hardware can be simulated, enabling the satellite service software to run independently of either a hardware CPU or a virtual CPU. The satellite service model module 110 allows the modified satellite service software to run independently without the need to develop additional satellite service computer hardware modules such as virtual CPUs, thus effectively reducing the development difficulty of the satellite simulation system 100. The data structure of the virtual satellite peripheral interface module 120 and the scheduling interface module 130 enable data exchange between the satellite service model module 110 and the virtual satellite stand-alone model module 140. The virtual satellite stand-alone model module 140 can simulate the functions and internal logic of satellite stand-alone units and subsystems to achieve a closed loop of the entire satellite information flow.
[0033] Figure 2 This is an exemplary architecture diagram of a satellite simulation system according to another embodiment of this application, with reference to... Figure 2 As shown, in some embodiments, the satellite service model module 110 includes a virtual internal register unit 111 and a virtual service clock unit 112. The method for constructing the satellite service model module 110 further includes the following steps:
[0034] Step S002: Set the internal register addresses of the satellite service software to an array and generate a virtual internal register unit 111. For example, the internal register addresses can be set to an array of appropriate size according to actual needs to achieve virtualization operations.
[0035] Step S003: Set the thread of each subsystem in the satellite operation software as a function, and execute the initialization function of each subsystem only once. For example, the subsystem may include the satellite's attitude control system.
[0036] Step S004: Set the data reading and writing method in the satellite service software to read and write from the virtual satellite peripheral interface module 120. For example, step S004 is equivalent to mapping the data reading and writing method to the corresponding interface's data structure.
[0037] Step S005: Reset the data read / write operation triggered by interrupt in the satellite service software to trigger the data read / write operation directly when the data is ready.
[0038] Step S006: Construct a virtual satellite service clock for maintaining onboard time and generate a virtual satellite service clock unit 112. For example, onboard time is used to represent satellite time, and the virtual satellite service clock unit 112 can be represented by a global structure variable.
[0039] Step S007: Set the storage mode of the satellite service software to little-endian mode.
[0040] Step S008: Compile the modified satellite service software into a dynamic link library to generate the satellite service model module 110. For example, the compilation environment includes a Windows operating system.
[0041] This application makes adaptation modifications to the satellite service software according to the aforementioned steps S001 to S008. By using arrays of appropriate size to virtualize internal registers, memory, and the service clock, the modified satellite service software can run independently without relying on a hardware CPU or virtual CPU.
[0042] In some embodiments, the virtual satellite peripheral interface data structure includes an update flag, a data pointer address, and a data valid length field. The process of exchanging data between the satellite service model module 110 and the virtual satellite stand-alone model module 140 according to the virtual satellite peripheral interface data structure includes: when the satellite service model module 110 sends a command to the virtual satellite stand-alone model module 140, the virtual satellite peripheral interface module 120 performs the following steps:
[0043] Step S011: Allocate memory of the corresponding size for the data pointer in the virtual satellite peripheral interface data structure according to the actual length of the command, and assign the actual length of the command to the data validity length field; Step S012: Copy the content of the command to the memory pointed to by the data pointer; Step S013: Set the update flag to updated. For example, steps S011 to S013 enable the satellite service model module 110 to complete the write operation to the virtual satellite peripheral interface module 120, allowing the satellite service model module 110 to perform corresponding operations without relying on the hardware interface, thereby significantly improving the simulation speed of the satellite simulation system 100. The data structure of the virtual satellite peripheral interface data structure is shown below:
[0044] typedef struct / / Virtual satellite peripheral interface data structure
[0045] {
[0046] u8 refresh; / / Flag indicating whether it has been updated, 1 indicates it has been updated, 0 indicates it has not been updated.
[0047] u8*data; / / Data pointer address, storing the actual data transmitted by the peripheral interface.
[0048] u32 length; / / Data validity length field, indicating the length of valid data stored at the data pointer address.
[0049] }
[0050] In some embodiments, the process of exchanging data between the satellite service model module 110 and the virtual satellite stand-alone model module 140 according to the virtual satellite peripheral interface data structure further includes: when the satellite service model module 110 receives data from the virtual satellite stand-alone model module 140, the virtual satellite peripheral interface module 120 performs the following steps:
[0051] Step S021: Determine if there is a virtual satellite standalone data update; Step S022: If there is a virtual satellite standalone data update, copy the updated virtual satellite standalone data to the corresponding virtual satellite standalone data storage address in the satellite service model module 110; Step S023: If there is no virtual satellite standalone data update, skip the operation of copying the virtual satellite standalone data. For example, steps S021 to S023 enable the satellite service model module 110 to complete the read operation of the virtual satellite peripheral interface module 120, allowing the satellite service model module 110 to perform corresponding operations without relying on the hardware interface, thereby significantly improving the simulation speed of the satellite simulation system 100.
[0052] In some embodiments, the data exchanged between the satellite service model module 110 and the virtual satellite stand-alone model module 140 includes one or more of the following: stand-alone telemetry request commands, stand-alone telemetry data, uploaded remote control command codes, satellite telemetry data frames, and stand-alone remote control commands. Exemplarily, stand-alone telemetry data and uploaded remote control command codes from different virtual satellite stand-alone models can be forwarded to the satellite service model module 110 via the scheduling interface module 130. Satellite telemetry data frames, stand-alone remote control commands, and stand-alone telemetry request commands issued by the satellite service model module 110 can be transmitted to the virtual satellite stand-alone model module 140 via the scheduling interface module 130.
[0053] Figure 3 This is an exemplary schematic diagram illustrating that a satellite needs to execute different satellite service subsystems during different operational cycles. In some embodiments, the satellite service model module 110 includes at least one operational cycle, and the satellite service model module 110 sequentially executes the functions of each subsystem in the current operational cycle. For example, refer to... Figure 3As shown, the operating cycle of the satellite service model module 110 includes cycle A 310, cycle B 320, cycle C 330, and cycle D 340. Taking a satellite service cycle of 250ms as an example, each time the satellite service model module 110 executes an operating cycle, the satellite's onboard time increases by 250ms, and the satellite service model module 110 enters the next operating cycle. The service threads executed in each operating cycle are different. In cycle A 310, the subsystem functions include: service, data acquisition, orbit, attitude determination, attitude control, remote control, telemetry, and carrier management; in cycle B 320, the subsystem functions include: service, data acquisition, orbit, attitude determination, attitude control, remote control, telemetry, and power; in cycle C 330, the subsystem functions include: service, data acquisition, orbit, attitude determination, attitude control, telemetry, and carrier management; in cycle D 340, the subsystem functions include: service, data acquisition, orbit, attitude determination, attitude control, telemetry, health, and carrier management.
[0054] In some embodiments, the scheduling interface module 130 includes a stand-alone telemetry data structure, which includes an update flag, a data pointer address, and a data validity length field. The process by which the scheduling interface module 130 acquires and forwards data between the satellite service model module 110 and the virtual satellite stand-alone model module 140 includes the following steps after the scheduling interface module 130 receives a stand-alone telemetry packet transmitted by the virtual satellite stand-alone model module 140:
[0055] Step S031: Allocate memory according to the length of the single-unit telemetry packet, and point the data pointer address to the starting address of the memory; Step S032: Copy the data of the single-unit telemetry packet to the memory pointed to by the data pointer address; Step S033: Update the data valid length field to the length of the single-unit telemetry packet; Step S034: Set the update status flag to updated. For example, through steps S031 to S034, the single-unit telemetry data structure includes the latest single-unit telemetry data, allowing the scheduling interface module 130 to perform corresponding operations without relying on the hardware interface, thereby significantly improving the simulation speed of the satellite simulation system 100.
[0056] For example, the data structure of the stand-alone telemetry data structure and the virtual satellite peripheral interface data structure can be the same. The data structure of the stand-alone telemetry data structure is shown below:
[0057] typedef struct / / Standalone telemetry data structure
[0058] {
[0059] u8 refresh; / / Flag indicating whether it has been updated, 1 indicates it has been updated, 0 indicates it has not been updated.
[0060] u8*data; / / Data pointer address, storing single-machine telemetry data packets
[0061] u32 length; / / Data validity length field, indicating the length of valid data stored at the data pointer address.
[0062] }
[0063] In some embodiments, the step of the satellite service model module 110 obtaining data from the single-unit telemetry data structure includes: determining whether the update flag is updated or not; if updated, retrieving the data of the single-unit telemetry packet from the data pointer address; if not updated, no processing is performed. For example, after obtaining the remote control command code, the satellite service model module 110 needs to clear the variables in the single-unit telemetry data structure to avoid repeatedly executing the same command. Satellite telemetry data frames, single-unit remote control commands, and single-unit telemetry request commands are all stored in data structures. Satellite telemetry data frames are forwarded to ground parsing software for parsing and display, while single-unit remote control commands and single-unit telemetry request commands are forwarded to the corresponding single-unit models in the virtual satellite single-unit model module 140 for processing.
[0064] refer to Figure 2 As shown, in some embodiments, the virtual satellite peripheral interface module 120 includes one or more of the following: a Universal Asynchronous Receiver / Transmitter (UART) unit 121, a Controller Area Network (CAN) unit 122, a synchronous serial port unit 123, and a satellite orbit command unit 124. In some embodiments, the virtual satellite stand-alone model module 140 includes one or more of the following: a Global Navigation Satellite System (GNSS) unit 141, a fiber optic gyroscope unit 142, a star sensor unit 143, and a reaction wheel unit 144. In some embodiments, the space environment model module 150 includes one or more of the following: a dynamics model unit 151, an energy model unit 152, and a thermal control model unit 153.
[0065] In some embodiments, the virtual satellite stand-alone model module 140 and the space environment model module 150 are constructed based on the concepts of classes and objects in the C++ programming language. For example, this allows for better reuse of the modules and reduces the development workload of the satellite simulation system 100.
[0066] The technical solution of this application is based on real satellite mission software, which can ensure that the satellite simulation system 100 simulates the real behavior and state of the satellite to the greatest extent, and retains the execution logic and behavior of the real satellite mission software at the mission level. The satellite simulation system 100 can be directly compiled into an executable program in a conventional computer system. Moreover, the processing power of conventional computer servers is strong, which can further improve the simulation speed of the satellite simulation system 100 by several times or tens of times, so as to better meet various application scenarios such as satellite function testing, verification, and emergency response drills.
[0067] This application also includes a satellite simulation method using the satellite simulation system 100 as described above, the satellite simulation method being used to exchange data between the satellite service model module 110, the scheduling interface module 130, and the virtual satellite stand-alone model module 140. Figure 4 This is an exemplary flowchart of a satellite simulation method according to an embodiment of this application, with reference to... Figure 2 and Figure 4 As shown, Figure 4 The execution entity of the process within the dashed box on the left is the scheduling interface module 130. Figure 4 The main execution entity of the process within the dashed box on the right is the satellite service model module 110. After the satellite simulation method begins execution, the satellite service model is loaded in step S410.
[0068] refer to Figure 4As shown, the scheduling interface module 130 performs the following steps: In step S420, it determines whether there is a single-unit telemetry request command from the satellite service model module 110. If there is a single-unit telemetry request command, it forwards the single-unit telemetry request command to the virtual satellite single-unit model module 140 in step S430. If there is no single-unit telemetry request command, it jumps to step S450; In step S440, it obtains the single-unit telemetry data fed back by the virtual satellite single-unit model module 140 and forwards it to the satellite service model module 110; In step S450, it determines whether there is an uploaded remote control command. If there is an uploaded remote control command, it obtains the corresponding uploaded remote control command code in step S460 and forwards it to the satellite service model module 110. If there is no uploaded remote control command, it jumps to step S470. In step S470, the satellite service model module 110 is scheduled according to the remote control command code and the scheduling result fed back by the satellite service model module 110 is obtained; in step S530, satellite telemetry data frames are obtained from the satellite service model module 110 and forwarded to the telemetry and control front end of the ground analysis software; in step S540, single-machine remote control commands are obtained from the satellite service model module 110 and forwarded to the virtual satellite single-machine model module 140; in step S550, single-machine telemetry request commands for the current service cycle are obtained from the satellite service model module 110 and forwarded to the virtual satellite single-machine model module 140; in step S560, it is determined whether there is an exit simulation command. If there is an exit simulation command, the satellite simulation method ends; if there is no exit simulation command, the process jumps to step S420.
[0069] Continue to refer to Figure 4 As shown, the satellite service model module 110 performs the following steps: in step S480, it obtains the remote control command code from the scheduling interface module 130 and updates the onboard time and the service cycle; in step S490, it obtains the latest single-unit telemetry data from the scheduling interface module 130; in step S500, it outputs the satellite telemetry data frame to the scheduling interface module 130; in step S510, it outputs the single-unit remote control command to the scheduling interface module 130; in step S520, it outputs the single-unit telemetry request command for the current service cycle and feeds back the scheduling result to the scheduling interface module 130 (i.e., feeds back the scheduling result to step S470).
[0070] For example, fully executing steps S420 to S560 is equivalent to completing one operating cycle of the satellite mission software. In step S560, it is determined whether there is an exit simulation command. If there is no exit simulation command, the next operating cycle begins. The exit simulation command can be issued by the user of the satellite simulation system 100, for example, by the user of the satellite simulation system 100 clicking the exit simulation button on the human-computer interaction interface.
[0071] For example, the satellite simulation method described above can be implemented as a computer program, stored on a hard disk, and loaded into a processor for execution. When implemented as a computer program, the satellite simulation method can also be stored as an article of manufacture on a computer-readable storage medium. For example, computer-readable storage media can include, but are not limited to, magnetic storage devices (e.g., hard disks, floppy disks, magnetic stripes), optical discs (e.g., compact discs (CDs), digital multifunction discs (DVDs)), smart cards, and flash memory devices (e.g., electrically erasable programmable read-only memory (EPROM), cards, sticks, key drives). Furthermore, the various storage media described herein can represent one or more devices and / or other machine-readable media for storing information. The term "machine-readable medium" can include, but is not limited to, wireless channels and various other media (and / or storage media) capable of storing, containing, and / or carrying code and / or instructions and / or data.
[0072] It should be understood that the embodiments described above are merely illustrative. The embodiments described herein may be implemented in hardware, software, firmware, middleware, microcode, or any combination thereof. For hardware implementation, the processor may be implemented within one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, and / or other electronic units designed to perform the functions described herein, or combinations thereof.
[0073] Some aspects of this application can be executed entirely by hardware, entirely by software (including firmware, resident software, microcode, etc.), or by a combination of hardware and software. The aforementioned hardware or software may be referred to as a "data block," "module," "engine," "unit," "component," or "system." The processor may be one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DAPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, or combinations thereof. Furthermore, aspects of this application may manifest as computer products residing in one or more computer-readable media, including computer-readable program code. For example, computer-readable media may include, but are not limited to, magnetic storage devices (e.g., hard disks, floppy disks, magnetic tapes, etc.), optical discs (e.g., compressed CDs, digital multifunction DVDs, etc.), smart cards, and flash memory devices (e.g., cards, sticks, key drives, etc.).
[0074] A computer-readable medium may contain a propagated data signal containing computer program code, for example, on baseband or as part of a carrier wave. This propagated signal may take various forms, including electromagnetic, optical, and so on, or suitable combinations thereof. A computer-readable medium can be any computer-readable medium other than a computer-readable storage medium, which can be connected to an instruction execution system, apparatus, or device to enable communication, propagation, or transmission of a program for use. The program code located on the computer-readable medium can be propagated through any suitable medium, including radio, cable, fiber optic cable, radio frequency signals, or similar media, or any combination of the above media.
[0075] The basic concepts have been described above. Obviously, for those skilled in the art, the above disclosure is merely illustrative and does not constitute a limitation of this application. Although not explicitly stated herein, those skilled in the art may make various modifications, improvements, and corrections to this application. Such modifications, improvements, and corrections are suggested in this application, and therefore remain within the spirit and scope of the exemplary embodiments of this application.
[0076] Furthermore, this application uses specific terms to describe embodiments of the application. For example, "an embodiment," "one embodiment," and / or "some embodiments" refer to a particular feature, structure, or characteristic related to at least one embodiment of the application. Therefore, it should be emphasized and noted that "an embodiment," "one embodiment," or "an alternative embodiment" mentioned twice or more in different locations in this specification do not necessarily refer to the same embodiment. In addition, certain features, structures, or characteristics in one or more embodiments of the application can be appropriately combined.
[0077] In some embodiments, numbers describing the quantity of components and attributes are used. It should be understood that such numbers used in the description of embodiments are modified in some examples with the terms "approximately," "approximately," or "generally." Unless otherwise stated, "approximately," "approximately," or "generally" indicates that the numbers are allowed to vary by ±20%. Accordingly, in some embodiments, the numerical parameters used in the specification and claims are approximate values, which may be changed depending on the characteristics required by individual embodiments. In some embodiments, numerical parameters should take into account specified significant digits and employ a general method of digit reservation. Although the numerical ranges and parameters used to confirm their breadth of scope in some embodiments of this application are approximate values, in specific embodiments, such values are set as precisely as feasible.
Claims
1. A satellite simulation system, characterized in that, It includes a satellite service model module, a virtual satellite peripheral interface module, a scheduling interface module, a virtual satellite standalone model module, and a space environment model module. The method for constructing the satellite service model module includes: removing the operating system from the satellite service software and virtualizing the hardware read / write interfaces in the satellite service software; The virtual satellite peripheral interface module includes a virtual satellite peripheral interface data structure, which is used to exchange data between the satellite service model module and the virtual satellite stand-alone model module. The scheduling interface module is used to acquire and forward data between the satellite service model module and the virtual satellite stand-alone model module. The scheduling interface module performs the following steps: determining if there is a stand-alone telemetry request command from the satellite service model module; if so, forwarding the stand-alone telemetry request command to the virtual satellite stand-alone model module; acquiring stand-alone telemetry data fed back by the virtual satellite stand-alone model module and forwarding it to the satellite service model module; determining if there is an uploaded remote control command; if so, acquiring the corresponding uploaded remote control command code and forwarding it to the satellite service model module; scheduling the satellite service model module according to the uploaded remote control command code and acquiring the scheduling result fed back by the satellite service model module; acquiring satellite telemetry data frames from the satellite service model module and forwarding them to the telemetry and control front end of the ground analysis software; acquiring stand-alone remote control commands from the satellite service model module and forwarding them to the virtual satellite stand-alone model module; acquiring stand-alone telemetry request commands for the current service cycle from the satellite service model module and forwarding them to the virtual satellite stand-alone model module. The space environment model module is used to simulate the space environment in which the satellite is located, and the virtual satellite unit model module is used to simulate the functions and internal logic of the satellite unit and / or subsystems in the space environment.
2. The satellite simulation system as described in claim 1, characterized in that, The satellite service model module includes a virtual internal register unit and a virtual service clock unit. The method for constructing the satellite service model module further includes: Set the internal register addresses of the satellite service software into an array and generate the virtual internal register units; Each subsystem in the satellite service software is set as a function, and the initialization function of each subsystem is executed only once. The data reading and writing method in the satellite service software is set to read and write from the virtual satellite peripheral interface module; The data read / write operation triggered by interruption in the satellite service software is reconfigured to be triggered directly when the data is ready. Construct a virtual satellite service clock for maintaining onboard time, and generate the virtual satellite service clock unit; Set the storage mode of the satellite service software to little-endian; and The modified satellite service software is compiled into a dynamic link library to generate the satellite service model module.
3. The satellite simulation system as described in claim 1, characterized in that, The virtual satellite peripheral interface data structure includes an update flag, a data pointer address, and a data validity length field. The process of exchanging data between the satellite service model module and the virtual satellite standalone model module based on the virtual satellite peripheral interface data structure includes the following steps when the satellite service model module sends a command to the virtual satellite standalone model module: Allocate memory of the corresponding size for the data pointer in the virtual satellite peripheral interface data structure according to the actual length of the command, and assign the actual length of the command to the data valid length field; Copy the contents of the command to the memory pointed to by the data pointer; Set the update flag to updated.
4. The satellite simulation system as described in claim 3, characterized in that, The process of exchanging data between the satellite service model module and the virtual satellite stand-alone model module according to the virtual satellite peripheral interface data structure further includes: when the satellite service model module receives data from the virtual satellite stand-alone model module, the virtual satellite peripheral interface module performs the following steps: Determine if there are any virtual satellite standalone data updates; If there is an update to the virtual satellite standalone data, the updated virtual satellite standalone data will be copied to the corresponding virtual satellite standalone data storage address in the satellite service model module. If there is no virtual satellite standalone data update, skip the operation of copying the virtual satellite standalone data.
5. The satellite simulation system as described in claim 1, characterized in that, The data exchanged between the satellite service model module and the virtual satellite stand-alone model module includes one or more of the following: stand-alone telemetry request commands, stand-alone telemetry data, uploaded remote control command codes, satellite telemetry data frames, and stand-alone remote control commands.
6. The satellite simulation system as described in claim 1, characterized in that, The satellite service model module includes at least one operating cycle, and the satellite service model module sequentially executes the functions of each subsystem in the current operating cycle.
7. The satellite simulation system as described in claim 1, characterized in that, The scheduling interface module includes a single-machine telemetry data structure, which includes an update flag, a data pointer address, and a data validity length field. The process by which the scheduling interface module acquires and forwards data between the satellite service model module and the virtual satellite single-machine model module includes: when the scheduling interface module receives a single-machine telemetry packet transmitted by the virtual satellite single-machine model module, the scheduling interface module performs the following steps: Memory is allocated according to the length of the single-machine telemetry packet, and the data pointer address is set to the starting address of the memory. Copy the data of the single-machine telemetry packet to the memory pointed to by the data pointer address; Update the data valid length field to the length of the single-machine telemetry packet; Set the update flag to updated.
8. The satellite simulation system as described in claim 7, characterized in that, The steps for the satellite service model module to obtain data from the single-machine telemetry data structure include: determining whether the update flag is updated or not; if it is updated, then retrieving the data of the single-machine telemetry packet from the data pointer address; if it is not updated, then no processing is performed.
9. The satellite simulation system as described in claim 1, characterized in that, The virtual satellite peripheral interface module includes one or more of the following: a universal asynchronous transceiver unit, a controller local area network unit, a synchronous serial port unit, and a satellite orbit command unit.
10. The satellite simulation system as described in claim 1, characterized in that, The virtual satellite stand-alone model module includes one or more of the following: a global navigation satellite system unit, a fiber optic gyroscope unit, a star sensor unit, and a reaction wheel unit.
11. The satellite simulation system as described in claim 1, characterized in that, The space environment model module includes one or more of the following: a dynamics model unit, an energy model unit, and a thermal control model unit.
12. The satellite simulation system as described in claim 1, characterized in that, The virtual satellite stand-alone model module and the space environment model module are constructed based on the concepts of classes and objects in the C++ programming language.
13. A satellite simulation method, using the satellite simulation system as described in any one of claims 1-12, wherein the satellite simulation method is used to exchange data between a satellite service model module, a scheduling interface module, and a virtual satellite single-machine model module, characterized in that, The scheduling interface module performs the following steps: It determines whether there is a single-unit telemetry request command from the satellite service model module; if so, it forwards the single-unit telemetry request command to the virtual satellite single-unit model module; it obtains the single-unit telemetry data fed back by the virtual satellite single-unit model module and forwards it to the satellite service model module; it determines whether there is an uploaded remote control command; if so, it obtains the corresponding uploaded remote control command code and forwards it to the satellite service model module; it schedules the satellite service model module according to the uploaded remote control command code and obtains the scheduling result fed back by the satellite service model module; it obtains satellite telemetry data frames from the satellite service model module and forwards them to the telemetry and control front end of the ground analysis software; it obtains a single-unit remote control command from the satellite service model module and forwards it to the virtual satellite single-unit model module; it obtains the single-unit telemetry request command for the current service cycle from the satellite service model module and forwards it to the virtual satellite single-unit model module; it determines whether there is an exit simulation command; if so, it terminates the satellite simulation method. The satellite service model module performs the following steps: obtaining the uploaded remote control command code from the scheduling interface module and updating the onboard time and service cycle; obtaining the latest single-unit telemetry data from the scheduling interface module; and outputting satellite telemetry data frames to the scheduling interface module. Output stand-alone remote control commands to the scheduling interface module; Output the single-machine telemetry request command for the current satellite mission cycle and feed back the scheduling result to the scheduling interface module.
Citation Information
Patent Citations
Universal full-digital housekeeping simulation platform
CN105137807A