Maneuver#
- class Maneuver(thrust=None, mass_flow=None, start_time=None, end_time=None, ux=None, uy=None, uz=None)#
Bases:
objectDefines 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 thanend_time.end_time (
ArrayWUnits, optional) – Burn end epoch (TDB seconds). Must be strictly greater thanstart_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.FiniteBurnForce model that evaluates Maneuver polynomials during propagation.
scarabaeus.ManeuverParserUtility for loading Maneuver objects from a file.
- Attributes:
end_timeBurn end epoch in seconds (TDB).
mass_flowPropellant mass-flow rate polynomial (kg/s).
start_timeBurn start epoch in seconds (TDB).
thrustThrust-magnitude polynomial stored in kN.
uxX-component of the unit thrust-direction vector (unitless polynomial).
uyY-component of the unit thrust-direction vector (unitless polynomial).
uzZ-component of the unit thrust-direction vector (unitless polynomial).
- property end_time: EpochArray | None#
Burn end epoch in seconds (TDB).
- Return type:
EpochArrayorNone
- 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), orNoneif not set.- Return type:
ArrayWUnitsorNone
- property start_time: EpochArray | None#
Burn start epoch in seconds (TDB).
- Return type:
EpochArrayorNone
- 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), orNoneif not set.- Return type:
ArrayWUnitsorNone
- property ux: ArrayWUnits | None#
X-component of the unit thrust-direction vector (unitless polynomial).
- Return type:
ArrayWUnitsorNone
- property uy: ArrayWUnits | None#
Y-component of the unit thrust-direction vector (unitless polynomial).
- Return type:
ArrayWUnitsorNone
- property uz: ArrayWUnits | None#
Z-component of the unit thrust-direction vector (unitless polynomial).
- Return type:
ArrayWUnitsorNone