STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
layer2_pressure.py File Reference

Go to the source code of this file.

Namespaces

namespace  engine
namespace  engine.optimizer
namespace  engine.optimizer.layers
namespace  engine.optimizer.layers.layer2_pressure

Functions

np.ndarray engine.optimizer.layers.layer2_pressure.generate_pressure_curve_from_segments (List[Dict[str, Any]] segments, int n_points=200, *, bool allow_rise=False, bool exact_ends=False)
List[Dict[str, Any]] engine.optimizer.layers.layer2_pressure.segments_from_optimizer_vars_pressure (np.ndarray x_segments, int n_segments, float initial_pressure_pa, float min_pressure_pa=1e6)
Dict[str, Any] engine.optimizer.layers.layer2_pressure.layer2_flight_vehicle (PintleEngineConfig config)
float engine.optimizer.layers.layer2_pressure.calculate_required_impulse_from_mass (float target_apogee_m, float rocket_dry_mass_kg, float total_propellant_mass_kg, float target_burn_time_s, *, Optional[np.ndarray] time_s=None, Optional[np.ndarray] mdot_kg_s=None, Optional[np.ndarray] thrust_n=None, Optional[Dict[str, Any]] vehicle=None)
Tuple[float, float, Dict[str, Any], bool] engine.optimizer.layers.layer2_pressure.run_layer2a_minimum_pressures (PintleEngineConfig optimized_config, float initial_lox_pressure_pa, float initial_fuel_pressure_pa, float peak_thrust, float target_apogee_m, float rocket_dry_mass_kg, float max_lox_tank_capacity_kg, float max_fuel_tank_capacity_kg, float target_burn_time, int n_time_points=100, Optional[Callable] update_progress=None, Optional[Callable] log_status=None, float min_pressure_pa=1e6, Optional[float] optimal_of_ratio=None, Optional[float] min_stability_margin=None)
Tuple[PintleEngineConfig, np.ndarray, np.ndarray, np.ndarray, Dict[str, Any], bool] engine.optimizer.layers.layer2_pressure.run_layer2_pressure (PintleEngineConfig optimized_config, float initial_lox_pressure_pa, float initial_fuel_pressure_pa, float peak_thrust, float target_apogee_m, float rocket_dry_mass_kg, float max_lox_tank_capacity_kg, float max_fuel_tank_capacity_kg, float target_burn_time, int n_time_points=200, Optional[Callable] update_progress=None, Optional[Callable] log_status=None, float min_pressure_pa=1e6, Optional[float] optimal_of_ratio=None, Optional[float] min_stability_margin=None, int max_iterations=20, Optional[int] max_evaluations=None, bool save_evaluation_plots=False, Optional[float] min_lox_pressure_floor_pa=None, Optional[float] min_fuel_pressure_floor_pa=None, float min_pressure_slope_psi_per_sec=-25.0, Optional[Callable[[int, float, float], None]] objective_callback=None, Optional[Callable[[np.ndarray, np.ndarray, np.ndarray, Optional[np.ndarray], Optional[np.ndarray]], None]] pressure_curve_callback=None, Optional[Any] stop_event=None, int de_maxiter=5, int de_popsize=2, int de_n_time_points=25, bool use_controller_simulation=False, Optional[Any] controller_config=None)

Variables

str engine.optimizer.layers.layer2_pressure.N2_Z_LOOKUP_CSV = Path(__file__).resolve().parent.parent.parent.parent / "copv" / "n2_Z_lookup.csv"
int engine.optimizer.layers.layer2_pressure.N_SEGMENTS = 8
int engine.optimizer.layers.layer2_pressure.VARS_PER_SEGMENT = 5