3. FiniteBurn#
- class FiniteBurn(state_vector: StateArray, spacecraft: Spacecraft, base_frame: Frame)#
Bases:
DynamicModel
Models the acceleration induced by a finite-duration burn.
Models a continuous thrust phase where the acceleration is computed based on the spacecraft’s mass, thruster performance, and burn duration. Retrieves thrust-related data from the associated thruster model and ensures that the acceleration is applied only within defined thrust arcs.
- Parameters:
state_vector (
StateArray
) –The state vector of the main spacecraft, containing:
All dynamic and static parameters considered in the simulation (position, velocity, estimated parameters).
The reference frame in which the state is defined.
The origin body relative to which the state is expressed.
The epoch corresponding to the state.
spacecraft (
Spacecraft
) – The spacecraft object containing mass properties and an associated finite-burn thruster.
See also
scarabaeus.Thruster
Provides thrust models and performance characteristics for finite burns.
Notes
This model assumes a deterministic thrust profile provided by the thruster model.
The thrust force direction and magnitude are retrieved from the thruster model.
The acceleration is applied only during the defined thrust intervals.
Attributes
Defined thrusting interval(s).
The spacecraft dry mass expressed in kilograms.
The reference frame in which the finite-burn model operates.
The spacecraft object containing mass and thruster data.
The thruster providing thrust magnitude, direction, and duration.
Methods
compute_acceleration
(position, ...)Computes the acceleration due to the finite burn.
compute_partial_by_position
(position, ...)Computes the partial derivative of acceleration with respect to position.
get_thrust_data
(epoch)Retrieves thrust-related data from the spacecraft's thruster at a specific epoch.
- compute_acceleration(position: ArrayWUnits, current_state: dict, epoch: float, body: Body) ArrayWUnits #
Computes the acceleration due to the finite burn.
Determines whether the spacecraft is within an active thrust arc and, if so, calculates the acceleration based on the applied thrust and current mass.
- Parameters:
position (
ArrayWUnits
) – 3x1 vector describing the spacecraft’s position. Expressed in units of kilometers.current_state (
dict
) – Dictionary containing the current state parameters.epoch (
float
) – The current simulation epoch.body (
Body
) – The celestial body associated with the reference frame.
- Returns:
acc_vector – 3x1 vector defining the acceleration due to the finite burn. Expressed in units of \(\frac{km}{s^2}\).
- Return type:
- compute_partial_by_position(position: ArrayWUnits, current_state: dict, epoch: float, body: Body) ArrayWUnits #
Computes the partial derivative of acceleration with respect to position.
This method calculates how the thrust acceleration varies with position, which is important for sensitivity analysis in trajectory optimization.
- Parameters:
position (
ArrayWUnits
) – 3x1 vector describing the spacecraft’s position. Expressed in units of kilometers.current_state (
dict
) – Dictionary containing the current state parameters.epoch (
float
) – The current simulation epoch.body (
Body
) – The celestial body associated with the reference frame.
- Returns:
partials – A 3x3 matrix representing the partial derivative of thrust acceleration with respect to position. Expressed in units of \(\frac{1}{s^2}\).
- Return type:
- get_thrust_data(epoch: float) dict #
Retrieves thrust-related data from the spacecraft’s thruster at a specific epoch.
Queries the thruster model for thrust magnitude, unit direction, mass flow rate, and other related parameters at the specified epoch.
- Parameters:
epoch (
float
) – The simulation epoch at which thrust data is retrieved.- Returns:
data –
- A dictionary containing the following thrust-related data:
wet_mass
(ArrayWUnits) - The total spacecraft mass including fuel.thrust
(ArrayWUnits) - The magnitude of the thrust force.thrust_u_vec
(ArrayWUnits) - The unit vector defining the thrust direction.thrust_ref_frame
(str) - The reference frame in which the thrust is defined.m_dot
(ArrayWUnits) - The mass flow rate of propellant consumption.fuel_mass
(ArrayWUnits) - The remaining fuel mass.
- Return type:
- property arc_intervals: EpochArray#
Defined thrusting interval(s).
- property dry_mass: ArrayWUnits#
The spacecraft dry mass expressed in kilograms.
- property spacecraft: Spacecraft#
The spacecraft object containing mass and thruster data.