Third-body accelerations
Settings for a third-body and central gravitational acceleration are defined identically to direct gravitational accelerations. During the creation and processing of the acceleration models, TudatPy distinguishes three different cases, for the body \(A\) undergoing the acceleration, the body \(B\) exerting the acceleration, and the body \(C\) as the center of propagation.
Contents:
Third-body perturbation
The central body is non-inertial (e.g. is not the SSB), and the acceleration is not exerted by central body. The acceleration is then computed from:
This is the typical third body perturbation, for instance for the case where \(A\) is a spacecraft orbiting the Moon, \(B\) is the Earth and \(C\) is the Moon
Central gravitational acceleration
The central body is non-inertial (e.g. is not the SSB), and the acceleration is exerted by the central body. If the body undergoing the acceleration itself possesses a gravity field, the gravitational back-reaction is accounted for when setting up the gravitational acceleration.
The backreaction (accounted for by the second term) becomes relevant when computing the mutual dynamics of two natural bodies. For instance, when propagating the Moon w.r.t. the Earth, and adding the point-mass gravitational acceleration of the Earth on the Moon, the following acceleration will be used:
with \(\mathbf{r}\) the position of the Moon w.r.t. the Earth. The backreaction is taken into account by using the sum of the gravitational parameters (as opposed to only the gravitational parameter of the Earth).
Direct gravitational acceleration
The central body is inertial (e.g. is the SSB). In this case, the direct acceleration is used:
Note
We stress that the above works equally well for point-mass, spherical-harmonic and mutual-spherical-harmonic accelerations (see examples below).
Examples
When propagating the dynamics of a spacecraft w.r.t. the Moon, the following will add the third-body point-mass acceleration of the Earth:
acceleration_settings_on_vehicle = dict(
Earth = [ propagation_setup.acceleration.point_mass_gravity( ) ] )
SelectedAccelerationMap accelerationSettings;
accelerationSettings[ "Apollo" ][ "Earth" ].push_back(
std::make_shared< AccelerationSettings >( central_gravity ) );
while the following will add the third-body spherical-harmonic acceleration of the Earth (zonal coefficients up to degree 4)
maximum_degree = 4
maximum_order = 0
acceleration_settings_on_vehicle = dict(
Earth = [ propagation_setup.acceleration.spherical_harmonic_gravity(maximum_degree, maximum_order) ] )
- language
cpp
Note that above two code blocks are identical to those given as example in the API documentation
entries of point_mass_gravity()
and
spherical_harmonic_acceleration()
. It is through the definition
of the central body that a direct, central or third-body acceleration is created.