astro.Perturbation#
- class hohmannpy.astro.Perturbation#
Base class for implementing perturbations from Keplerian two-body orbital mechanics. These are designed to be used in conjunction with a non-Keplerian propagator such as
CowellPropagatororEnckePropagator.Child classes must implement
evaluate(). This is called on each timestep of propagation byPropagator.propagate()to return thw perturbing acceleration for a given orbital state.- abstractmethod evaluate(time, state, satellite)#
Takes in the current time and planet-centered inertial state (the position and velocity) and returns the perturbing acceleration.
- Parameters:
time (float) – Current time in seconds since propagation began.
state (np.ndarray) – Current translational state in planet-centered inertial coordinates given as (position, velocity).
satellite (
Satellite) – The satellite object experiencing the perturbing acceleration. It is passed so that attributes of the satellite can be used in computing perturbing acceleration, such as theballistic_coeffbyAtmosphericDrag. However, the state of the satellite should never be accessed directly, only via the passedstateparameter.
- Returns:
acceleration (np.ndarray) – Acceleration due to this perturbation.