astro.ContinuousBurn#
- class hohmannpy.astro.ContinuousBurn(start_time, end_time, masses=None, inertial=False)#
The base class for all burns whose acceleration is delivered over a continuous.rst period of time.
This can be passed to
Satellite’sburnsparameter during instantiation to schedule it for that satellite. However, this class doesn’t define the burn profile so it should never be directly instantiated. Instead, use its children such asFunctionContinuousBurn.This is an extension of
Perturbationso within propagators continuous.rst burns are essentially treated as just another form of propagation.- Parameters:
start_time (Any[float,
Time]) – The time at which the burn is to begin. Can either be the relative time since mission start in seconds or aTimeobject.end_time (Any[float,
Time]) – The time at which the burn is to end. Can either be the relative time since mission start in seconds or aTimeobject.inertial (bool) – Whether the
velocity_changeis parameterized in planet-centered inertial coordinates.masses (Any[Optional[scipy.BSpline, Callable]]) – The mass can optionally change over the course of the burn. If it does, the masses of the satellite over time can be provided as either a (N, 2) lookup table of (time, mass) entries where the first row is the mass at
start_timeand the last is the mass atend_timeor alternatively as a function. Can not be a lambda function as this interferes with parallel processing capabilities.
- Variables:
start_time (Any[float,
Time]) – The time at which the burn is to begin. Can either be the relative time since mission start in seconds or aTimeobject.end_time (Any[float,
Time]) – The time at which the burn is to end. Can either be the relative time since mission start in seconds or aTimeobject.masses (Any[Optional[scipy.BSpline, Callable]]) – The mass can optionally change over the course of the burn. If it does, the masses of the satellite over time can be provided as either a (N, 2) lookup table of (time, mass) entries where the first row is the mass at
start_timeand the last is the mass atend_timeor alternatively as a function. Can not be a lambda function as this interferes with parallel processing capabilities.
- evaluate(time, state, satellite)#
Takes in the current time and planet-centered inertial state (the position and velocity) and returns the acceleration due to this burn.
- 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 burn.