STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
engine.pipeline.flight_altitude_optimizer Namespace Reference

Classes

class  BurnTimeEval
class  AltitudeOptimizeResult

Functions

float _integrate (np.ndarray times, np.ndarray values)
Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray] truncate_time_series (np.ndarray times, np.ndarray thrust, np.ndarray mdot_O, np.ndarray mdot_F, float burn_time_s)
Tuple[float, float, float] required_propellant_at_burn_time (np.ndarray times, np.ndarray thrust, np.ndarray mdot_O, np.ndarray mdot_F, float burn_time_s)
AltitudeOptimizeResult optimize_minimum_fuel_burn_time (*, np.ndarray times, np.ndarray thrust, np.ndarray mdot_O, np.ndarray mdot_F, float target_apogee_m, float apogee_tolerance_m, Callable[[float], BurnTimeEval] simulate_at_burn_time, Optional[float] min_burn_time_s=None, Optional[float] max_burn_time_s=None, float time_resolution_s=0.05, int max_iterations=24)

Detailed Description

Find minimum-fuel burn time to reach a target apogee for a fixed time-series curve.

For each candidate burn time T we truncate the thrust/mdot curve, load exactly the
propellant required to complete that burn (∫mdot dt), and run flight simulation.
The optimal burn time is the shortest T whose apogee meets the altitude target —
which minimizes fuel mass because fuel_required(T) increases monotonically with T.

Function Documentation

◆ _integrate()

float engine.pipeline.flight_altitude_optimizer._integrate ( np.ndarray times,
np.ndarray values )
protected

Definition at line 43 of file flight_altitude_optimizer.py.

Referenced by required_propellant_at_burn_time().

◆ optimize_minimum_fuel_burn_time()

AltitudeOptimizeResult engine.pipeline.flight_altitude_optimizer.optimize_minimum_fuel_burn_time ( * ,
np.ndarray times,
np.ndarray thrust,
np.ndarray mdot_O,
np.ndarray mdot_F,
float target_apogee_m,
float apogee_tolerance_m,
Callable[[float], BurnTimeEval] simulate_at_burn_time,
Optional[float] min_burn_time_s = None,
Optional[float] max_burn_time_s = None,
float time_resolution_s = 0.05,
int max_iterations = 24 )
Binary-search the shortest burn time that reaches target_apogee_m.

Definition at line 105 of file flight_altitude_optimizer.py.

References max, min, and required_propellant_at_burn_time().

◆ required_propellant_at_burn_time()

Tuple[float, float, float] engine.pipeline.flight_altitude_optimizer.required_propellant_at_burn_time ( np.ndarray times,
np.ndarray thrust,
np.ndarray mdot_O,
np.ndarray mdot_F,
float burn_time_s )
Return (lox_kg, fuel_kg, total_impulse_Ns) for burn truncated to burn_time_s.

Definition at line 88 of file flight_altitude_optimizer.py.

References _integrate(), and truncate_time_series().

Referenced by optimize_minimum_fuel_burn_time().

◆ truncate_time_series()

Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray] engine.pipeline.flight_altitude_optimizer.truncate_time_series ( np.ndarray times,
np.ndarray thrust,
np.ndarray mdot_O,
np.ndarray mdot_F,
float burn_time_s )
Return curve arrays truncated to burn_time_s (interpolated endpoint).

Definition at line 51 of file flight_altitude_optimizer.py.

Referenced by required_propellant_at_burn_time().