thrust#

This module provides the functionality for creating thrust magnitude and direction settings.

Functions#

get_propulsion_input_variables(...)

constant_thrust_magnitude(thrust_magnitude, ...)

Create thrust magnitude settings from a constant thrust magnitude and Isp.

custom_thrust_magnitude(...)

Create thrust magnitude settings from a custom thrust force magnitude function.

custom_thrust_magnitude_fixed_isp(...)

Same as custom_thrust_magnitude(), but with a fixed value for the specific impulse.

custom_thrust_acceleration_magnitude(...)

Create thrust magnitude settings from a custom thrust acceleration magnitude function.

custom_thrust_acceleration_magnitude_fixed_isp(...)

Same as custom_thrust_acceleration_magnitude(), but with a fixed value for the specific impulse.

get_propulsion_input_variables(body_with_guidance: tudatpy.kernel.numerical_simulation.environment.Body = None, independent_variables: list[tudat::propulsion::ThrustIndependentVariables] = [], guidance_input_functions: list[Callable[[], float]] = []) list[Callable[[], float]]#
constant_thrust_magnitude(thrust_magnitude: float, specific_impulse: float) tudatpy.kernel.numerical_simulation.propagation_setup.thrust.ThrustMagnitudeSettings#

Create thrust magnitude settings from a constant thrust magnitude and Isp.

Factory function that creates constant thrust magnitude settings. The specific impulse to use for the thrust is also supplied when applying a mass rate model in the propagation of the vehicle dynamics, relating the thrust to the mass decrease of the vehicle.

Parameters:
  • thrust_magnitude (float) – Value of the constant thrust magnitude.

  • specific_impulse (float) – Value of the constant specific impulse, used to link the thrust model to the mass propagation.

Returns:

Constant thrust magnitude settings object.

Return type:

ConstantThrustMagnitudeSettings

Examples

In this example, we define constant thrust magnitude of 1.5 kN and a specific impulse of 315 s.

# Define constant thrust magnitude settings of 1.5kN, an Isp of 315s
thrust.constant_thrust_magnitude(
    thrust_magnitude=1.5e3,
    specific_impulse=315
)
custom_thrust_magnitude(thrust_magnitude_function: Callable[[float], float], specific_impulse_function: Callable[[float], float]) tudatpy.kernel.numerical_simulation.propagation_setup.thrust.ThrustMagnitudeSettings#

Create thrust magnitude settings from a custom thrust force magnitude function.

Factory function that creates thrust magnitude from a custom thrust force magnitude function. This model defines a thrust force and specific impulse that can vary with time. The thrust acceleration is computed during the propagation by dividing the thrust force by the current vehicle mass. The specific impulse can be used to apply a mass rate model in the propagation the vehicle dynamics, relating the thrust to the mass decrease of the vehicle.

Parameters:
  • thrust_magnitude_function (callable[[float], float]) – Function of time returning the value of the thrust force magnitude.

  • specific_impulse_function (callable[[float], float]) – Function of time returning the value of the specific impulse, useful to link the mass propagation to the thrust model.

Returns:

From function thrust magnitude settings object.

Return type:

FromFunctionThrustMagnitudeSettings

Examples

In this example, we define a thrust force magnitude based on a set of custom functions. The magnitude itself starts from 500N, and linearly increases with time. The specific impulse is constant, at 350s. Note that we use a lambda function to achieve this neatly. Finally, the engine is setup to work for 50s, and be turned off afterwards.

# Define the thrust magnitude function: thrust increases linearly with time
def thrust_magnitude_function(time):
    return 500 + time/2

# Define a lambda specific impulse function: constant at 350s
specific_impulse_function = lambda time: 350

# Define the custom thrust magnitude settings based on the pre-defined functions
thrust.custom_thrust_magnitude(thrust_magnitude_function, specific_impulse_function )
custom_thrust_magnitude_fixed_isp(thrust_magnitude_function: Callable[[float], float], specific_impulse: float) tudatpy.kernel.numerical_simulation.propagation_setup.thrust.ThrustMagnitudeSettings#

Same as custom_thrust_magnitude(), but with a fixed value for the specific impulse.

Parameters:
  • thrust_magnitude_function (callable[[float], float]) – Function of time returning the value of the thrust force magnitude.

  • specific_impulse (float) – Constant value for specific impulse, useful to link the mass propagation to the thrust model.

Returns:

From function thrust magnitude settings object.

Return type:

FromFunctionThrustMagnitudeSettings

custom_thrust_acceleration_magnitude(thrust_acceleration_magnitude_function: Callable[[float], float], specific_impulse_function: Callable[[float], float]) tudatpy.kernel.numerical_simulation.propagation_setup.thrust.ThrustMagnitudeSettings#

Create thrust magnitude settings from a custom thrust acceleration magnitude function.

Factory function that creates thrust magnitude from a custom thrust acceleration magnitude function. This model is similar to the custom_thrust_magnitude(), with the difference being that this function directly provides the thrust acceleration, not the thrust force.

Parameters:
  • thrust_acceleration_magnitude_function (callable[[float], float]) – Function of time returning the value of the thrust acceleration magnitude.

  • specific_impulse_function (callable[[float], float]) – Function of time returning the value of the specific impulse, useful to link the mass propagation to the thrust model.

Returns:

From function thrust magnitude settings object.

Return type:

FromFunctionThrustMagnitudeSettings

custom_thrust_acceleration_magnitude_fixed_isp(thrust_acceleration_magnitude_function: Callable[[float], float], specific_impulse: float) tudatpy.kernel.numerical_simulation.propagation_setup.thrust.ThrustMagnitudeSettings#

Same as custom_thrust_acceleration_magnitude(), but with a fixed value for the specific impulse.

Parameters:
  • thrust_acceleration_magnitude_function (callable[[float], float]) – Function of time returning the value of the thrust acceleration magnitude.

  • specific_impulse (float) – Constant value for specific impulse, useful to link the mass propagation to the thrust model.

Returns:

From function thrust magnitude settings object.

Return type:

FromFunctionThrustMagnitudeSettings

Enumerations#

class ThrustFrames#

Members:

unspecified_thrust_frame_type

inertial_thrust_frame_type

tnw_thrust_frame_type

property name#
class ThrustMagnitudeTypes#

Members:

constant_thrust_magnitude

thrust_magnitude_from_time_function

thrust_magnitude_from_dependent_variables

property name#

Classes#

ThrustMagnitudeSettings

Functional base class to define settings for the thrust magnitude.

ConstantThrustMagnitudeSettings

ThrustMagnitudeSettings-derived class to define settings for constant thrust magnitude.

CustomThrustMagnitudeSettings

ThrustMagnitudeSettings-derived class to define settings for constant thrust magnitude.

class ThrustMagnitudeSettings#

Functional base class to define settings for the thrust magnitude.

thrust_magnitude_type#

Thrust magnitude type object.

Type:

ThrustMagnitudeType

thrust_origin_id#

Reference ID of the thrust origin that should be used (empty if N/A).

Type:

str

class ConstantThrustMagnitudeSettings#

ThrustMagnitudeSettings-derived class to define settings for constant thrust magnitude.

Derived class to provide settings for the thrust magnitude. This class should be used to define a constant thrust magnitude.

thrust_magnitude#

Value of the constant thrust magnitude.

Type:

float

specific_impulse#

Value of the constant specific impulse.

Type:

float

specific_impulse#

Thrust direction vector expressed in the body-fixed reference frame.

Type:

numpy.ndarray

class CustomThrustMagnitudeSettings#

ThrustMagnitudeSettings-derived class to define settings for constant thrust magnitude.

Derived class to provide settings for the thrust magnitude. This class should be used to define a thrust magnitude through a custom function.