propagation_setupΒΆ
This module contains submodules to define settings for the numerical propagation of states of natural and artificail bodies. A detailed overview of the propagation framework in Tudat can be found in the user guide .
As a short overview of how the submodules below are used in the context of a propagation:
Defining state derivative model settings for propagation of translational, rotational and mass dynamics: acceleration, torque and mass_rate, with thrust-specific models in thrust
Defining settings for the numerical integration: integrator
Defining settings for saving additional (dependent) variables in addition to the state variables: dependent_variable
Combining settings into a full propagation settings: propagator
More details on the procedure and options in creating environment models and bodies can be found in our user guide. For the use of the environment models during a numerical propagation (for instance for custom models) see here.
Modules
FunctionsΒΆ
|
Function to create a set of acceleration models from a dictionary of bodies linked to acceleration model types. |
|
Function to create a set of acceleration models from a dictionary of bodies linked to acceleration model types. |
|
Function to create a set of mass-rate models from associated settings. |
- create_acceleration_models(body_system: tudatpy.kernel.dynamics.environment.SystemOfBodies, selected_acceleration_per_body: dict[str, dict[str, list[tudatpy.kernel.dynamics.propagation_setup.acceleration.AccelerationSettings]]], bodies_to_propagate: list[str], central_bodies: list[str]) dict[str, dict[str, list[tudat::basic_astrodynamics::AccelerationModel<Eigen::Matrix<double, 3, 1, 0, 3, 1> >]]]ΒΆ
Function to create a set of acceleration models from a dictionary of bodies linked to acceleration model types.
Function to create a set of acceleration models from a map of bodies and acceleration model types. The propagated bodies and central bodies are provided as two separate lists with the same order.
- Parameters:
body_system (SystemOfBodies) β System of bodies to be used in the propagation.
selected_acceleration_per_body (Dict[str, Dict[str, List[AccelerationSettings]]]) β Key-value container, with key denoting the body undergoing the acceleration, and the value containing an additional key-value container, with the body exerting acceleration, and list of acceleration settings exerted by this body.
bodies_to_propagate (list) β List of bodies to propagate.
central_bodies (list) β List of central bodies, each referred to each propagated body in the same order.
- Returns:
AccelerationMap β Set of accelerations acting on the bodies to propagate, provided as dual key-value container (dictionary), similar to the acceleration settings input, but now with
AccelerationModellists as inner value- Return type:
Examples
In this example, the acceleration model includes a spherical harmonic (degree and order 5) gravitational acceleration and aerodynamic acceleration exerted by the Earth, as well as point-mass gravity exerted by the Sun and the Moon. The variable
accelerations_settings_vehicledenotes the list of bodies exerting accelerations and the types of accelerations, while the variableacceleration_settingsassociates this list with the body undergoing the acceleration ("Vehicle").# Define bodies that are propagated. bodies_to_propagate = ["Vehicle"] # Define central bodies. central_bodies = ["Earth"] # Define accelerations acting on Vehicle accelerations_settings_vehicle = dict( Sun=[propagation_setup.acceleration.point_mass_gravity()], Moon=[propagation_setup.acceleration.point_mass_gravity()], Earth=[propagation_setup.acceleration.spherical_harmonic_gravity(5, 5), propagation_setup.acceleration.aerodynamic()] ) # Create global accelerations settings dictionary acceleration_settings = {"Vehicle": accelerations_settings_vehicle} # Create acceleration models acceleration_models = propagation_setup.create_acceleration_models( bodies, acceleration_settings, bodies_to_propagate, central_bodies)
- create_torque_models(body_system: tudatpy.kernel.dynamics.environment.SystemOfBodies, selected_torque_per_body: dict[str, dict[str, list[tudatpy.kernel.dynamics.propagation_setup.torque.TorqueSettings]]], bodies_to_propagate: list[str]) dict[str, dict[str, list[tudat::basic_astrodynamics::TorqueModel]]]ΒΆ
Function to create a set of acceleration models from a dictionary of bodies linked to acceleration model types.
Function to create a set of acceleration models from a map of bodies and acceleration model types. The propagated bodies is provided as a list.
- Parameters:
body_system (SystemOfBodies) β System of bodies to be used in the propagation.
selected_torque_per_body (Dict[str, Dict[str, List[TorqueSettings]]]) β Key-value container, with key denoting the body undergoing the torque, and the value containing an additional key-value container, with the body exerting torque, and list of torque settings exerted by this body.
bodies_to_propagate (list) β List of bodies to propagate.
- Returns:
Set of torques acting on the bodies to propagate, provided as dual key-value container, similar to the torque settings input, but now with
TorqueModellists as inner value- Return type:
TorqueModelMap
Examples
In this example, the following torques are exerted on the vehicle: spherical-harmonic gravitational torque (up to order 4 and degree 4) and aerodynamic torque exerted by the Earth, second-degree gravitational torque exerted by the Sun and the Moon. The variable
torques_settings_vehicledenotes the list of bodies exerting torques and the types of torques, while the variabletorque_settingsassociates this list with the body undergoing the torque.# Define bodies that are propagated bodies_to_propagate = ["Vehicle"] # Define torques per each exerting body torque_settings_vehicle = dict( Sun=[propagation_setup.torque.second_degree_gravitational()], Moon=[propagation_setup.torque.second_degree_gravitational()], Earth=[propagation_setup.torque.spherical_harmonic_gravitational(4, 4), propagation_setup.torque.aerodynamic()] ) # Create global torque settings dictionary torque_settings = {"Vehicle": torque_settings_vehicle} # Create torque models torque_models = propagation_setup.create_torque_models( bodies, torque_settings, bodies_to_propagate )
- create_mass_rate_models(body_system: tudatpy.kernel.dynamics.environment.SystemOfBodies, selected_mass_rates_per_body: dict[str, list[tudatpy.kernel.dynamics.propagation_setup.mass_rate.MassRateModelSettings]], acceleration_models: dict[str, dict[str, list[tudat::basic_astrodynamics::AccelerationModel<Eigen::Matrix<double, 3, 1, 0, 3, 1> >]]] = None) dict[str, list[tudat::basic_astrodynamics::MassRateModel]]ΒΆ
Function to create a set of mass-rate models from associated settings.
Function to create a set of mass-rate models from a map of bodies and mass-rate model types. If the mass-rate depends on any acceleration models (e.g. thrust), the acceleration models must be provided as an input.
- Parameters:
body_system (SystemOfBodies) β System of bodies to be used in the propagation.
selected_mass_rates_per_body (Dict[str, List[MassRateModelSettings]]) β Key-value container, with key denoting the body with changing mass, and the value containing a list of mass rate settings (in most cases, this list will have only a single entry)
acceleration_models (dict[str, list[AccelerationModel]]) β Sorted list of acceleration models, as created by
create_acceleration_models()
- Returns:
Set of mass-rate models, as key-value container, same as the settings input, with the difference that the rate settings objects have been processed into the associated objects calculating the actual mass-rate changes.
- Return type:
MassRateModelMap