This is the repository for the Honours Programme Bachelor (HPB) project of Dominik Stiller ([email protected]) at TU Delft. The aim is to investigate the short-term effects of radiation pressure on the Lunar Reconnaissance Orbiter. The project is supervised by Dr. Dominic Dirkx ([email protected]).
The simulations use the TU Delft Astrodynamics Toolbox Tudat. All models are implemented in the feature/radiation_pressure_modeling branch of my Tudat fork and will be merged soon.
Links:
- See the paper for a comprehensive overview of methods and results
- See the final presentation for an overview of the motivation and key results
- See the poster for preliminary results
- See the project plan for a somewhat outdated overview
- See the references folder for any mentioned literature
Code structure:
simulations/
: C++ code for Tudat simulationslropy/
: Python code to run the simulations and load outputsanalysis/
: Jupyter notebooks to analyze the simulations
Precision orbit determination for geodetic applications requires force models even for small perturbations. Radiation from the Sun and Moon is a significant source of perturbation in lunar orbits and inadequate modeling of radiation pressure can lead to large position errors. In this project, we investigated the short-term effect of radiation pressure on the Lunar Reconnaissance Orbiter (LRO), which has a position knowledge requirement of 50 m to 100 m in total and below 1 m radially. We compared models of varying complexity to determine the benefits and computational cost of high-accuracy radiation pressure modeling.
We found that (1) the accelerations differ greatly depending on the Sun position, (2) only a paneled spacecraft model can account properly for changing orientation and geometry of LRO, and (3) a constant-albedo model is sufficient for lunar radiation, which is dominated by the thermal component. A spherical harmonics model for lunar albedo increases computational cost with little gain in the attained accuracy. If radiation pressure is neglected, the along-track position errors can be as large as 1100 m and the radial error varies periodically with an amplitude of up to 24 m, highlighting the importance of adequate force modeling to meet LRO's orbit determination requirements.
For more information, read the paper.
- Download the necessary SPICE kernels into
spice/lro/
. - Clone
https://github.com/tudat-team/tudat-bundle
and update submodules to latest versions. - Build Tudat with the following commands:
cmake -DCMAKE_PREFIX_PATH="${conda_path}" \
-DCMAKE_CXX_STANDARD=14 \
-DBoost_NO_BOOST_CMAKE=ON \
-DCMAKE_BUILD_TYPE=Release \
-DTUDAT_BUILD_TESTS=OFF \
-DTUDAT_BUILD_WITH_JSON_INTERFACE=OFF \
-GNinja \
-S . -B build
cmake --build build
- See the
tudat-bundle
readme for more details, particularly on setting up the Conda environment. - If you do not have write access to
/usr/local
, add-DCMAKE_INSTALL_PREFIX=~/.local/usr/local
to the configure command. The--prefix
option does not work with Tudat.
- Install Tudat using
cmake --install build
. - Build the simulations using
simulations/build.sh
. - Create and activate a virtual environment, then install the packages from
requirements.txt
. - Change to
lropy/
directory and runbin/run.sh
to run the simulation selected inlropy/run/__main__.py
.
- Set the environment variable
SPICE_BASE
to point to yourspice/
folder
- Analyze the results using the notebooks in
analysis/
.