orbital.maneuver

class orbital.maneuver.Maneuver(operations)

A Maneuver is a collection of operations, and class methods are provided to easily create maneuvers which ensure orbits are propagated to the correct position between impulse operations.

classmethod set_apocenter_radius_to(apocenter_radius)

Maneuver for setting apocenter radius.

classmethod set_pericenter_radius_to(pericenter_radius)

Maneuver for setting pericenter radius.

classmethod set_apocenter_altitude_to(apocenter_altitude)

Maneuver for setting apocenter altitude.

classmethod set_pericenter_altitude_to(pericenter_altitude)

Maneuver for setting pericenter altitude.

classmethod change_apocenter_by(delta)

Maneuver for changing apocenter.

classmethod change_pericenter_by(delta)

Maneuver for changing pericenter.

classmethod hohmann_transfer_to_radius(radius)

Maneuver for a hohmann transfer to given radius.

Initial orbit must be circular. Will raise apocenter from position at time of application.

classmethod hohmann_transfer_to_altitude(altitude)

Maneuver for a hohmann transfer to given altitude.

Initial orbit must be circular. Will raise apocenter from position at time of application.

classmethod set_inclination_to(inclination)

Maneuver for setting inclination.

classmethod change_inclination_by(delta)

Maneuver for changing inclination.

Operations

Note

The operations below are used to construct the user-friendly maneuvers, as created using the Maneuver class methods.

To construct maneuvers manually using operations, one must be careful. A SetApocenterRadiusTo operation can only be applied if the orbital position is at perigee, therefore it should be preceded by a PropagateAnomalyTo operation, with argument f=0.

class orbital.maneuver.ChangeApocenterBy(delta)

Operation for changing apocenter radius. At time of application, orbit position must be at pericenter.

velocity_delta(orbit)

Return velocity delta of impulse.

class orbital.maneuver.ChangeInclinationBy(delta)

Operation for changing inclination. At time of application, orbit position must be at the ascending or descending node.

velocity_delta(orbit)

Return velocity delta of impulse.

class orbital.maneuver.ChangePericenterBy(delta)

Operation for changing pericenter. At time of application, orbit position must be at apocenter.

velocity_delta(orbit)

Return velocity delta of impulse.

class orbital.maneuver.Circularise(raise_pericenter=True)

Operation for circularising an orbit.

velocity_delta(orbit)

Return velocity delta of impulse.

class orbital.maneuver.PropagateAnomalyBy(**kwargs)

Operation for propagating anomaly by a given amount.

One (and only one) of these parameters must be passed in:

Parameters:
  • M (float) – Mean anomaly

  • E (float) – Eccentric anomaly

  • f (float) – True anomaly

time_delta(orbit)

Return the time delta to propagate the orbit by.

Parameters:

orbit (orbital.elements.KeplerianElements) – Orbit

class orbital.maneuver.PropagateAnomalyTo(**kwargs)

Operation for propagating to time in future where anomaly is equal to value passed in.

One (and only one) of these parameters must be passed in:

Parameters:
  • M (float) – Mean anomaly

  • E (float) – Eccentric anomaly

  • f (float) – True anomaly

time_delta(orbit)

Return the time delta to propagate the orbit by.

Parameters:

orbit (orbital.elements.KeplerianElements) – Orbit

class orbital.maneuver.SetApocenterAltitudeTo(apocenter_altitude)

Operation for setting apocenter altitude. At time of application, orbit position must be at pericenter.

velocity_delta(orbit)

Return velocity delta of impulse.

class orbital.maneuver.SetApocenterRadiusTo(apocenter_radius)

Operation for setting apocenter radius. At time of application, orbit position must be at pericenter.

velocity_delta(orbit)

Return velocity delta of impulse.

class orbital.maneuver.SetInclinationTo(inclination)

Operation for setting inclination. At time of application, orbit position must be at the ascending or descending node.

velocity_delta(orbit)

Return velocity delta of impulse.

class orbital.maneuver.SetPericenterAltitudeTo(pericenter_altitude)

Operation for setting pericenter altitude. At time of application, orbit position must be at apocenter.

velocity_delta(orbit)

Return velocity delta of impulse.

class orbital.maneuver.SetPericenterHere

Operation for setting pericenter to current location (in preparation for a maneuver to an elliptical orbit. Initial orbit must be circular.

class orbital.maneuver.SetPericenterRadiusTo(pericenter_radius)

Operation for setting pericenter radius. At time of application, orbit position must be at apocenter.

velocity_delta(orbit)

Return velocity delta of impulse.