|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Classes | |
| class | RegulatorModel |
| class | RegulatorDropout |
Functions | |
| str | get_feed_pressure_model (Any config) |
| RegulatorModel | regulator_from_config (Any config) |
| Tuple[np.ndarray, np.ndarray] | generate_dome_regulated_pressure_curve (float P_set_pa, *, float burn_time_s, int n_points=200, Optional[Sequence[float]] P_inlet_pa=None, Optional[float] P_inlet_0_pa=None, Optional[float] P_inlet_end_pa=None, Optional[RegulatorModel] regulator=None) |
| Tuple[np.ndarray, np.ndarray, np.ndarray] | dome_regulated_tank_pair (float initial_lox_pa, float initial_fuel_pa, float burn_time_s, int n_points=200, *, Optional[Sequence[float]] copv_pressure_pa=None, Optional[float] copv_initial_pa=None, Optional[float] copv_end_pa=None, Optional[RegulatorModel] regulator=None) |
Variables | |
| float | _PA_PER_PSI = 6894.757 |
Feed tank/manifold pressure vs time — blowdown segments vs dome-regulated (Phys §6.2). The dome-regulated curve is the regulator's setpoint plus its supply-pressure effect (SPE): a dome regulator's outlet rises as its inlet falls, by a ratio that belongs to the regulator, not to the code: the Aqua 1092 datasheet gives 10 psi per 1000 psi of inlet drop, the 2026-09-25 config audit reads TB 1031 at 17. So the ratio is a field with its source, and the inlet is the COPV's own blowdown -- never a fraction of the setpoint. What this module used to add and no longer does: a ±9 psi two-sine "ripple" (no measured spectrum exists; test T6 would provide one), an inlet running from 1.2x the setpoint down to 0.84x (a regulator delivering its setpoint from an inlet below it), a fixed 10 psi/1000 psi SPE labelled as one regulator's, and a "lockup droop" that lockup -- a no-flow condition -- does not produce.
| Tuple[np.ndarray, np.ndarray, np.ndarray] engine.optimizer.feed_pressure_model.dome_regulated_tank_pair | ( | float | initial_lox_pa, |
| float | initial_fuel_pa, | ||
| float | burn_time_s, | ||
| int | n_points = 200, | ||
| * | , | ||
| Optional[Sequence[float]] | copv_pressure_pa = None, | ||
| Optional[float] | copv_initial_pa = None, | ||
| Optional[float] | copv_end_pa = None, | ||
| Optional[RegulatorModel] | regulator = None ) |
LOX and fuel regulated manifold curves for Layer 2 / the time solver. Both tanks hang off the same COPV, so both see the same inlet history: ``copv_pressure_pa`` (a trace, one value per point) or the ``copv_initial_pa``/``copv_end_pa`` pair. Without either the curves are the flat setpoints.
Definition at line 118 of file feed_pressure_model.py.
References generate_dome_regulated_pressure_curve().
| Tuple[np.ndarray, np.ndarray] engine.optimizer.feed_pressure_model.generate_dome_regulated_pressure_curve | ( | float | P_set_pa, |
| * | , | ||
| float | burn_time_s, | ||
| int | n_points = 200, | ||
| Optional[Sequence[float]] | P_inlet_pa = None, | ||
| Optional[float] | P_inlet_0_pa = None, | ||
| Optional[float] | P_inlet_end_pa = None, | ||
| Optional[RegulatorModel] | regulator = None ) |
Eq. (6.2): regulated outlet = setpoint + SPE x (inlet drop since t = 0). The inlet history is ``P_inlet_pa`` (one value per output point, e.g. the COPV blowdown trace) or, failing that, a straight line from ``P_inlet_0_pa`` to ``P_inlet_end_pa``. With no inlet history there is nothing for the SPE to act on and the curve is the flat setpoint. Raises RegulatorDropout when the inlet falls below outlet + ``regulator.min_differential_pa``. Returns (time_s, P_tank_pa).
Definition at line 74 of file feed_pressure_model.py.
References max.
Referenced by dome_regulated_tank_pair().
| str engine.optimizer.feed_pressure_model.get_feed_pressure_model | ( | Any | config | ) |
Return ``blowdown`` or ``dome_regulated`` from design requirements.
Definition at line 43 of file feed_pressure_model.py.
| RegulatorModel engine.optimizer.feed_pressure_model.regulator_from_config | ( | Any | config | ) |
RegulatorModel from ``design_requirements.regulator_*``; unset fields are recorded assumptions (ideal regulator), never silent constants.
Definition at line 52 of file feed_pressure_model.py.
|
protected |
Definition at line 21 of file feed_pressure_model.py.