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

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

Detailed Description

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.

Function Documentation

◆ dome_regulated_tank_pair()

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().

◆ 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().

◆ get_feed_pressure_model()

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.

◆ regulator_from_config()

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.

Variable Documentation

◆ _PA_PER_PSI

float engine.optimizer.feed_pressure_model._PA_PER_PSI = 6894.757
protected

Definition at line 21 of file feed_pressure_model.py.