ImpulsiveBurn#

class ImpulsiveBurn(delta_v=None, dv_magnitude=None, dv_unit_vector=None, t_burn: float = 0, base_frame: Frame = None)#

Bases: DynamicModel

Models an instantaneous velocity change (delta-v) maneuver.

An impulsive burn approximates a finite-duration thrust as an instantaneous velocity discontinuity applied at epoch \(t_\text{burn}\). The post-burn velocity is:

\[\mathbf{v}^+ = \mathbf{v}^- + \Delta\mathbf{v}\]

The delta-v vector can be supplied directly or decomposed into a scalar magnitude \(|\Delta v|\) and a unit direction vector \(\hat{u}\):

\[\Delta\mathbf{v} = |\Delta v|\,\hat{u}\]
Parameters:
  • delta_v (ArrayWUnits, optional) – The delta-v vector applied during the burn (units: km/s).

  • dv_magnitude (ArrayWUnits, optional) – Magnitude of the delta-v (units: km/s). Required when dv_unit_vector is provided instead of delta_v.

  • dv_unit_vector (ArrayWUnits, optional) – Unit direction vector of the delta-v (unitless). Required when dv_magnitude is provided instead of delta_v.

  • t_burn (float, optional) – Epoch at which the burn is applied (TDB seconds). Defaults to 0.

  • base_frame (Frame, optional) – Reference frame for the delta-v vector. Defaults to J2000.

Raises:

ValueError – If neither delta_v nor both dv_magnitude and dv_unit_vector are provided.

See also

scarabaeus.FiniteBurn

Continuous finite-duration thrust model.

References

Vallado, D. A. (2013). Fundamentals of Astrodynamics and Applications (4th ed.). Microcosm Press.

Attributes:
base_frame

The base frame at which the impulsive burn occurs

delta_v

The delta-v vector applied in the impulsive burn.

dv_magnitude

The magnitude of the applied delta-v.

dv_unit_vector

The unit vector direction of the applied delta-v.

t_burn

The time at which the impulsive burn occurs.

Methods

compute_TCM_covariance_gates([sig1, sig2, ...])

Computes the covariance matrix for a Trajectory Correction Maneuver (TCM).

compute_TCM_simplified_covariance([sig1, ...])

Computes a simplified 3x3 covariance matrix for Trajectory Correction Maneuver (TCM) errors.

compute_acceleration(position, ...)

Computes the acceleration due to the impulsive burn.

compute_TCM_covariance_gates(sig1=3.3333333333333337e-06 km/sec, sig2=0.0033333333333333335 unitless, sig3=1.1666666666666666e-05 km/sec, sig4=0.0033333333333333335 unitless) ArrayWUnits#

Computes the covariance matrix for a Trajectory Correction Maneuver (TCM).

Computes the rotated covariance matrix P based on the input sigma values and the direction of the delta-v.

Parameters:
  • sig1 (ArrayWUnits, optional) – Sigma value for velocity uncertainty. Defaults to 0.00001 km/s.

  • sig2 (ArrayWUnits, optional) – Sigma value for direction uncertainty Defaults to 0.01 unitless.

  • sig3 (ArrayWUnits, optional) – Additional sigma for velocity. Defaults to 0.000035 km/s.

  • sig4 (ArrayWUnits, optional) – Additional sigma for direction uncertainty. Defaults to 0.01 unitless.

Returns:

covar_rotated – The rotated 3x3 covariance matrix. Expressed in units of \(\frac{km^2}{s^2}\).

Return type:

ArrayWUnits

compute_TCM_simplified_covariance(sig1=0.0033333333333333335 unitless, sig2=3.3333333333333335e-05 km/sec, sig34=0.011635528346628864 rad) ArrayWUnits#

Computes a simplified 3x3 covariance matrix for Trajectory Correction Maneuver (TCM) errors.

Parameters:
  • sig1 (ArrayWUnits, optional) – Proportional error component. Defaults to (0.01 / 3) unitless.

  • sig2 (ArrayWUnits, optional) – Fixed velocity error. Defaults to (10e-5 / 3) km/s.

  • sig34 (ArrayWUnits, optional) – Pointing error. Defaults to 2/3 degrees in radians.

Returns:

iso_covar – The 3x3 isotropic covariance matrix. Expressed in units of \(\frac{km^2}{s^2}\).

Return type:

ArrayWUnits

compute_acceleration(position: ndarray, current_state: dict, epoch: float, body: CelestialBody) ndarray#

Computes the acceleration due to the impulsive burn.

Applies an instantaneous velocity change at the specified burn time..

Parameters:
  • position (np.ndarray) – Spacecraft position vector in the reference frame (size: 3x1, units: km).

  • current_state (dict) – Dictionary containing the current state parameters.

  • epoch (float) – Current simulation epoch (units: sec).

  • body (CelestialBody) – The celestial body associated with the simulation.

Returns:

acc – The acceleration due to the impulsive burn (size: 3x1, units: km/s^2).

Return type:

np.ndarray

property base_frame: Frame#

The base frame at which the impulsive burn occurs

property delta_v: ArrayWUnits#

The delta-v vector applied in the impulsive burn. Expressed in units of \(\frac{km}{s}\).

property dv_magnitude: ArrayWUnits#

The magnitude of the applied delta-v. Expressed in units of \(\frac{km}{s}\).

property dv_unit_vector: ArrayWUnits#

The unit vector direction of the applied delta-v. Unitless.

property t_burn: float#

The time at which the impulsive burn occurs.