ImpulsiveBurn#
- class ImpulsiveBurn(delta_v=None, dv_magnitude=None, dv_unit_vector=None, t_burn: float = 0, base_frame: Frame = None)#
Bases:
DynamicModelModels 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 whendv_unit_vectoris provided instead ofdelta_v.dv_unit_vector (
ArrayWUnits, optional) – Unit direction vector of the delta-v (unitless). Required whendv_magnitudeis provided instead ofdelta_v.t_burn (
float, optional) – Epoch at which the burn is applied (TDB seconds). Defaults to0.base_frame (
Frame, optional) – Reference frame for the delta-v vector. Defaults to J2000.
- Raises:
ValueError – If neither
delta_vnor bothdv_magnitudeanddv_unit_vectorare provided.
See also
scarabaeus.FiniteBurnContinuous finite-duration thrust model.
References
Vallado, D. A. (2013). Fundamentals of Astrodynamics and Applications (4th ed.). Microcosm Press.
- Attributes:
base_frameThe base frame at which the impulsive burn occurs
delta_vThe delta-v vector applied in the impulsive burn.
dv_magnitudeThe magnitude of the applied delta-v.
dv_unit_vectorThe unit vector direction of the applied delta-v.
t_burnThe 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:
- 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:
- 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 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.