5. 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 impulsive maneuver for spacecraft dynamics.

Represents an impulsive burn applied to a spacecraft as an instantaneous velocity change (DV). The burn can be defined either directly through a delta-v vector or indirectly via magnitude and direction.

Parameters:
  • delta_v (ArrayWUnits, optional) – The delta-v vector applied during the burn (units: km/s). Defaults to None.

  • dv_magnitude (ArrayWUnits, optional) – The magnitude of the delta-v (units: km/s). Required if dv_unit_vector is used. Defaults to None.

  • dv_unit_vector (ArrayWUnits, optional) – The unit vector of the delta-v direction (unitless). Required if dv_magnitude is used. Defaults to None.

  • t_burn (float, optional) – The epoch at which the impulsive burn is applied. Defaults to 0.

  • base_frame (Frame) – The frame of the propagator. If base_frame = None, defaults to the J2000 frame.

Raises:

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

See also

scarabaeus.FiniteBurn

A model for finite-duration burns.

Notes

The impulsive burn is always applied at t_burn.

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_partial_by_dv(position, ...)

Computes the partial derivative of the acceleration with respect to the delta-v.

compute_partial_by_position(position, ...)

Computes the partial derivative of the impulsive burn acceleration with respect to position.

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

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

Computes the partial derivative of the acceleration with respect to the delta-v.

Parameters:
  • position (np.ndarray) – 3x1 vector describing the spacecraft’s position. Expressed in units of kilometers.

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

  • epoch (float) – Current simulation epoch in seconds.

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

Returns:

jacobian – The 3x3 Jacobian matrix of acceleration with respect to delta-v. Unitless.

Return type:

np.ndarray

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

Computes the partial derivative of the impulsive burn acceleration with respect to position.

Since an impulsive burn directly modifies velocity rather than position, this derivative is always zero.

Parameters:
  • position (np.ndarray) – 3x1 vector describing the spacecraft’s position. Expressed in units of kilometers.

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

  • epoch (float) – Current simulation epoch in seconds.

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

Returns:

partial_a_by_pos – A 3x3 matrix of zeros. Unitless.

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.