|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Public Member Functions | |
| __init__ (self, PintleEngineConfig base_config) | |
| Dict[str, Any] | optimize_coupled (self, Dict[str, Any] design_requirements, Dict[str, Any] constraints, int max_iterations=10, float convergence_tolerance=0.01, bool use_time_varying=True) |
Public Attributes | |
| base_config = base_config | |
| pintle_optimizer = ComprehensivePintleOptimizer(base_config) | |
| chamber_optimizer = ChamberOptimizer(base_config) | |
| list | iteration_history = [] |
Protected Member Functions | |
| Dict[str, Any] | _optimize_chamber_time_varying (self, PintleEngineConfig config, Dict[str, Any] design_requirements, Dict[str, Any] constraints, float burn_time, float P_tank_O, float P_tank_F) |
| Dict[str, float] | _extract_pintle_params (self, PintleEngineConfig config) |
| Dict[str, float] | _extract_chamber_params (self, PintleEngineConfig config) |
| float | _calculate_relative_change (self, Dict[str, float] params_prev, Dict[str, float] params_current) |
Coupled optimizer that iteratively solves pintle and chamber optimization. The optimization problem is: - Pintle geometry → affects chamber pressure, efficiency, stability - Chamber geometry → affects pintle flow rates, pressure drops, spray Solution approach: 1. Initialize with initial guesses 2. Optimize pintle (with current chamber geometry) 3. Optimize chamber (with current pintle geometry) 4. Check convergence (geometry changes < tolerance) 5. Repeat until converged
Definition at line 23 of file coupled_optimizer.py.
| engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.__init__ | ( | self, | |
| PintleEngineConfig | base_config ) |
Definition at line 39 of file coupled_optimizer.py.
|
protected |
Calculate maximum relative change between parameter sets.
Definition at line 454 of file coupled_optimizer.py.
References max.
Referenced by optimize_coupled().
|
protected |
Extract chamber geometry parameters for convergence checking.
Definition at line 443 of file coupled_optimizer.py.
Referenced by optimize_coupled().
|
protected |
Extract pintle geometry parameters for convergence checking.
Definition at line 429 of file coupled_optimizer.py.
Referenced by optimize_coupled().
|
protected |
Optimize chamber geometry across entire burn time. This accounts for: - Ablative recession (chamber volume grows, throat area grows) - Graphite recession (throat area may grow if graphite erodes) - Time-varying Cf (thrust coefficient changes with geometry) - Time-varying efficiency (L* changes affect combustion efficiency) Objective: Minimize error in average thrust over burn time
Definition at line 271 of file coupled_optimizer.py.
References chamber_optimizer, and max.
Referenced by optimize_coupled().
| Dict[str, Any] engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.optimize_coupled | ( | self, | |
| Dict[str, Any] | design_requirements, | ||
| Dict[str, Any] | constraints, | ||
| int | max_iterations = 10, | ||
| float | convergence_tolerance = 0.01, | ||
| bool | use_time_varying = True ) |
Optimize pintle and chamber geometry with full coupling.
Parameters:
-----------
design_requirements : dict
- target_thrust: float [N]
- target_burn_time: float [s]
- target_stability_margin: float
- P_tank_O: float [Pa]
- P_tank_F: float [Pa]
- target_Isp: Optional[float] [s]
constraints : dict
- max_chamber_length: float [m]
- max_chamber_diameter: float [m]
- min_Lstar: float [m]
- max_Lstar: float [m]
- min_expansion_ratio: float
- max_expansion_ratio: float
- max_engine_weight: Optional[float] [kg]
- max_vehicle_length: Optional[float] [m]
- max_vehicle_diameter: Optional[float] [m]
max_iterations : int
Maximum number of coupling iterations
convergence_tolerance : float
Relative change tolerance for convergence (e.g., 0.01 = 1%)
use_time_varying : bool
If True, optimize chamber across entire burn time (accounts for ablative recession)
If False, optimize at t=0 only
Returns:
--------
results : dict
- optimized_config: PintleEngineConfig
- iteration_history: List of iteration results
- convergence_info: Dict with convergence status
- performance: Final performance metrics
Definition at line 45 of file coupled_optimizer.py.
References _calculate_relative_change(), _extract_chamber_params(), _extract_pintle_params(), _optimize_chamber_time_varying(), engine.pipeline.chamber_optimizer.ChamberOptimizer.base_config, engine.pipeline.comprehensive_optimizer.ComprehensivePintleOptimizer.base_config, engine.pipeline.comprehensive_optimizer.VehicleLevelOptimizer.base_config, base_config, chamber_optimizer, max, engine.pipeline.comprehensive_optimizer.VehicleLevelOptimizer.pintle_optimizer, and pintle_optimizer.
| engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.base_config = base_config |
Definition at line 40 of file coupled_optimizer.py.
Referenced by optimize_coupled().
| engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.chamber_optimizer = ChamberOptimizer(base_config) |
Definition at line 42 of file coupled_optimizer.py.
Referenced by _optimize_chamber_time_varying(), and optimize_coupled().
| list engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.iteration_history = [] |
Definition at line 43 of file coupled_optimizer.py.
| engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.pintle_optimizer = ComprehensivePintleOptimizer(base_config) |
Definition at line 41 of file coupled_optimizer.py.
Referenced by optimize_coupled().