Spacecraft Dynamics And Missions Simulator
- Introduction
- Languages & Libraries
- Project's Structure
- References
- Books
- GitHub Repositories
- Departure & Arrival Orbits
- Spacecraft Properties
- Missions
- Orbit Transfer
- Interplanetary
- Pork Chop Plot
- Interplanetary Transfer
The Spacecraft Simulator
application has the objective to implement all the algorithms used in Orbital Mechanics and integrating them inside a GUI application to simplify the ananlysis.
The application is developed in Python 3.11.2
and uses the following libraries:
numpy 1.24.2
for linear algebra and matrix manipulationmatplotlib 3.7.1
for data visualizationscipy 1.10.1
for numerical intergrationPySide6 6.7.0
for the Grafical User Interface
The front-end is developed in Qt 6.7.0
using the QML
language.
The project is structured in the following folders.
images
: README imagesimg
: icons and images used in the GUIlib
: list of external librarieslib\matplotlib_backend_qtquick
: library for integrating matplotlib in QML
src
: back-end of the applicationtools
: algorithmstools\texture
: list of images for different astronomical objects
ui
: front-end of the applicationui\components
: list of components used in the GUIui\dialogs
: list of dialogsui\pages
: list of pages
generate.bat
: batch file used to compile the file qml.qrc in Pythonmain.py
: root file of the project
Orbital Mechanics for Engineering Students
Authors
Howard D. CurtisISBN
9780080977485Series
Aerospace EngineeringYear
2013Publisher
Elsevier ScienceURL
https://books.google.it/books?id=2U9Z8k0TlTYC
matplotlib_backend_qtquick
Under the menu item Missions \ Departure
it is possible to configure the Departure Orbit. The same discussion is valid for the Arrival Orbit. The orbit can be configured using one of the following representations:
- Cartesian based on the position vector and the velocity vector
- Keplerian based on the orbital elements
- Semi-major axis
- Eccentricity
- Inclination
- Right Ascension of the Ascending Node
- Anomaly of the Perigee
- True Anomaly
- Modified Keplerian based on the following elements
- Periapsis Radius
- Apoapsis Radius
- Inclination
- Right Ascension of the Ascending Node
- Anomaly of the Perigee
- True Anomaly
The user can select the planet as central body. In addition, a preview of the Orbit and the Ground Track can be visioned by the available buttons.
Under the menu item Missions \ Spacecraft Properties
it is possible to configure the Spacecraft Properties in terms of
- Initial Mass
- Specific Impulse of the propulsive system
- Thrust of the propulsive system
Under the menu item Missions \ Current Mission
it is possible to select the mission to analyze:
-
Orbit Transfer to simulate the cost in terms of
$\Delta v$ ,$\Delta t$ , and$\Delta m$ of the transfer between the departure and the arrival orbit. - Interplanetary Transfer to simulate the transfer between to planets of the Solar System.
Under the menu item Missions \ Orbit Transfer
it is possible to configure the maneuvers for the transfer between the departure and the arrival orbits, among the following ones:
- Hohmann Transfer
- Bi-Elliptic Hohmann Transfer
- Plane Change Maneuver
- Apse Line Rotation From Eta
After the transfer has been evaluated, the values of
By clicking on the Save
button, the transfer becomes visible in the main window.
Under the menu item Missions \ Interplanetary \ Pork Chop Plot
it is possible to analyze the cost of the interplanetary transfer bewteen two planets of the Solar System, given a Launch Window and an Arrival Window. Once selected the parameters, by clicking on the Generate
button the Pork Chop Plot is generated, and can be seen by clicking on the Show
button.
After the analysis of the Pork Chop Plot, under the menu item Missions \ Interplanetary \ Interplanetary Transfer
the actual transfer can be simulated, by choosing the effective departure and arrival dates, and the departure and arrival orbits around the planets.