Maneuver#

class Maneuver(thrust=None, mass_flow=None, start_time=None, end_time=None, ux=None, uy=None, uz=None)#

Bases: object

Defines a finite-burn maneuver as a collection of time-polynomial parameters.

Each scalar parameter — thrust magnitude \(F(t)\), mass-flow rate \(\dot{m}(t)\), and thrust-direction components \(u_x(t),\,u_y(t),\,u_z(t)\) — is represented as a 6th-order polynomial in ephemeris time:

\[p(t) = \sum_{k=0}^{6} c_k\, t^k\]

and stored as a 7-element coefficient vector \([c_0, c_1, \ldots, c_6]\). Constant profiles set only \(c_0\); the remaining coefficients default to zero.

The thrust-induced acceleration at time \(t\) is:

\[\mathbf{a}(t) = \frac{F(t)}{m(t)}\,\hat{u}(t)\]

where \(m(t)\) is the spacecraft mass and \(\hat{u}(t) = [u_x,\,u_y,\,u_z]^T\) is the unit thrust-direction vector. Thrust is stored internally in kN so that dividing by mass in kg directly yields acceleration in km/s².

Parameters:
  • thrust (ArrayWUnits, optional) – Thrust magnitude polynomial (any force unit; stored internally in kN).

  • mass_flow (ArrayWUnits, optional) – Propellant mass-flow rate polynomial (kg/s).

  • start_time (ArrayWUnits, optional) – Burn start epoch (TDB seconds). Must be strictly less than end_time.

  • end_time (ArrayWUnits, optional) – Burn end epoch (TDB seconds). Must be strictly greater than start_time.

  • ux (ArrayWUnits, optional) – X-component of the unit thrust-direction vector (unitless polynomial).

  • uy (ArrayWUnits, optional) – Y-component of the unit thrust-direction vector (unitless polynomial).

  • uz (ArrayWUnits, optional) – Z-component of the unit thrust-direction vector (unitless polynomial).

Notes

All polynomial coefficient arrays are zero-padded to length 7 (6th-order) and stored in ascending degree order internally (index 0 = constant term). Thrust is always converted to and stored in kN so that dividing by spacecraft mass in kg yields acceleration directly in km/s².

See also

scarabaeus.FiniteBurn

Force model that evaluates Maneuver polynomials during propagation.

scarabaeus.ManeuverParser

Utility for loading Maneuver objects from a file.

Attributes:
end_time

Burn end epoch in seconds (TDB).

mass_flow

Propellant mass-flow rate polynomial (kg/s).

start_time

Burn start epoch in seconds (TDB).

thrust

Thrust-magnitude polynomial stored in kN.

ux

X-component of the unit thrust-direction vector (unitless polynomial).

uy

Y-component of the unit thrust-direction vector (unitless polynomial).

uz

Z-component of the unit thrust-direction vector (unitless polynomial).

property end_time: EpochArray | None#

Burn end epoch in seconds (TDB).

Return type:

EpochArray or None

property mass_flow: ArrayWUnits | None#

Propellant mass-flow rate polynomial (kg/s).

The coefficient array is in descending degree order: index 0 holds the highest-order (t⁶) coefficient and index 6 holds the constant term.

Returns:

7-element polynomial with units [kg/s⁷, kg/s⁶, …, kg/s] (highest to lowest degree), or None if not set.

Return type:

ArrayWUnits or None

property start_time: EpochArray | None#

Burn start epoch in seconds (TDB).

Return type:

EpochArray or None

property thrust: ArrayWUnits | None#

Thrust-magnitude polynomial stored in kN.

The coefficient array is in descending degree order: index 0 holds the highest-order (t⁶) coefficient and index 6 holds the constant term.

Returns:

7-element polynomial with units [kN/s⁶, kN/s⁵, …, kN] (highest to lowest degree), or None if not set.

Return type:

ArrayWUnits or None

property ux: ArrayWUnits | None#

X-component of the unit thrust-direction vector (unitless polynomial).

Return type:

ArrayWUnits or None

property uy: ArrayWUnits | None#

Y-component of the unit thrust-direction vector (unitless polynomial).

Return type:

ArrayWUnits or None

property uz: ArrayWUnits | None#

Z-component of the unit thrust-direction vector (unitless polynomial).

Return type:

ArrayWUnits or None