ostk.astrodynamics.flight.Maneuver

class Maneuver(
self: ostk.astrodynamics.flight.Maneuver,
states: list[ostk.astrodynamics.trajectory.State],
)

Bases: pybind11_object

Spacecraft Maneuver class. Store an acceleration and mass flow rate profile of a spacecraft maneuver.

Constructor.

Parameters:

states (list[State]) -- An list of states, must be sorted, must include the CartesianPosition, CartesianVelocity, CartesianAcceleration and MassFlowRate subsets.

Methods

calculate_average_specific_impulse

Calculate the average specific impulse of the maneuver.

calculate_average_thrust

Calculate the average thrust of the maneuver.

calculate_delta_mass

Calculate the delta mass of the maneuver.

calculate_delta_v

Calculate the delta-v of the maneuver.

calculate_mean_thrust_direction_and_maximum_angular_offset

Calculate the mean thrust direction in the Local Orbital Frame and its maximum angular offset w.r.t.

constant_mass_flow_rate_profile

Create a maneuver from a constant mass flow rate profile.

get_interval

Get the interval of the maneuver.

get_states

Get the states.

is_defined

Check if the maneuver is defined.

to_constant_local_orbital_frame_direction_maneuver

Create a maneuver with a constant thrust acceleration direction in the Local Orbital Frame.

to_tabulated_dynamics

Convert the maneuver to tabulated dynamics.

calculate_average_specific_impulse(
self: ostk.astrodynamics.flight.Maneuver,
initial_spacecraft_mass: ostk.physics.unit.Mass,
) ostk.core.type.Real

Calculate the average specific impulse of the maneuver.

Parameters:

initial_spacecraft_mass (Mass) -- The initial mass of the spacecraft.

Returns:

The average specific impulse (s).

Return type:

float

calculate_average_thrust(
self: ostk.astrodynamics.flight.Maneuver,
initial_spacecraft_mass: ostk.physics.unit.Mass,
) ostk.core.type.Real

Calculate the average thrust of the maneuver.

Parameters:

initial_spacecraft_mass (Mass) -- The initial mass of the spacecraft.

Returns:

The average thrust (N).

Return type:

float

calculate_delta_mass(
self: ostk.astrodynamics.flight.Maneuver,
) ostk.physics.unit.Mass

Calculate the delta mass of the maneuver.

Returns:

The delta mass (always positive) (kg).

Return type:

Mass

calculate_delta_v(
self: ostk.astrodynamics.flight.Maneuver,
) ostk.core.type.Real

Calculate the delta-v of the maneuver.

Returns:

The delta-v value (m/s).

Return type:

float

calculate_mean_thrust_direction_and_maximum_angular_offset(
self: ostk.astrodynamics.flight.Maneuver,
local_orbital_frame_factory: ostk.astrodynamics.trajectory.LocalOrbitalFrameFactory,
) tuple[ostk.astrodynamics.trajectory.LocalOrbitalFrameDirection, ostk.physics.unit.Angle]

Calculate the mean thrust direction in the Local Orbital Frame and its maximum angular offset w.r.t. the maneuver's thrust acceleration directions.

Parameters:

local_orbital_frame_factory (LocalOrbitalFrameFactory) -- The local orbital frame factory.

Returns:

The mean thrust direction and its maximum angular offset.

Return type:

Tuple[LocalOrbitalFrameDirection, Angle]

static constant_mass_flow_rate_profile(
states: list[ostk.astrodynamics.trajectory.State],
mass_flow_rate: ostk.core.type.Real,
) ostk.astrodynamics.flight.Maneuver

Create a maneuver from a constant mass flow rate profile.

Parameters:
  • instants (list[Instant]) -- An array of instants, must be sorted.

  • acceleration_profile (list[numpy.ndarray]) -- An acceleration profile of the maneuver, one numpy.ndarray per instant.

  • frame (Frame) -- A frame in which the acceleration profile is defined.

  • mass_flow_rate (float) -- The constant mass flow rate (negative number expected).

Returns:

The created maneuver.

Return type:

Maneuver

get_interval(
self: ostk.astrodynamics.flight.Maneuver,
) ostk.physics.time.Interval

Get the interval of the maneuver.

Returns:

The interval.

Return type:

Interval

get_states(
self: ostk.astrodynamics.flight.Maneuver,
) list[ostk.astrodynamics.trajectory.State]

Get the states.

Returns:

The states.

Return type:

list[State]

is_defined(self: ostk.astrodynamics.flight.Maneuver) bool

Check if the maneuver is defined.

Returns:

True if the maneuver is defined, False otherwise. (Always returns true).

Return type:

bool

to_constant_local_orbital_frame_direction_maneuver(
self: ostk.astrodynamics.flight.Maneuver,
local_orbital_frame_factory: ostk.astrodynamics.trajectory.LocalOrbitalFrameFactory,
maximum_allowed_angular_offset: ostk.physics.unit.Angle = Angle.Undefined(),
) ostk.astrodynamics.flight.Maneuver

Create a maneuver with a constant thrust acceleration direction in the Local Orbital Frame.

The new Maneuver contains the same states as the original Maneuver, but the thrust acceleration direction is constant in the Local Orbital Frame. Said direction is the mean direction of the thrust acceleration directions in the Local Orbital Frame of the original Maneuver. The thrust acceleration magnitude profile is the same as the original.

If defined, a runtime error will be thrown if the maximum allowed angular offset between the original thrust acceleration direction and the mean thrust direction is violated.

Parameters:
  • local_orbital_frame_factory (LocalOrbitalFrameFactory) -- The local orbital frame factory.

  • maximum_allowed_angular_offset (Angle, optional) -- The maximum allowed angular offset to consider (if any). Defaults to Undefined.

Returns:

The constant local orbital frame direction maneuver.

Return type:

Maneuver

to_tabulated_dynamics(
self: ostk.astrodynamics.flight.Maneuver,
frame: ostk.physics.coordinate.Frame = GCRF,
interpolation_type: ostk.mathematics.curve_fitting.Interpolator.Type = <Type.BarycentricRational: 0>,
) ostk::astrodynamics::dynamics::Tabulated

Convert the maneuver to tabulated dynamics.

Parameters:
  • frame (Frame, optional) -- The frame in which the acceleration profile is defined. Defaults to the default acceleration frame.

  • interpolation_type (Interpolator.Type, optional) -- The interpolation type to use. Defaults to the default interpolation type.

Returns:

The tabulated dynamics.

Return type:

Tabulated