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

Functions

Session _helium_stand ()
list[float] _burn (Session session, float seconds=2.0)
float _roughness (list[float] trace)
None test_a_draining_helium_tank_is_stepped_under_its_press_path ()
None test_a_tank_at_rest_asks_for_nothing ()
None test_two_helium_tanks_on_one_manifold_do_not_ring (pytest.MonkeyPatch monkeypatch)
None test_a_tank_draining_onto_a_vented_manifold_asks_for_nothing ()

Detailed Description

Two tanks on one helium press manifold, stepped finer than their press path.

Every LE4 helium burn plotted a 0.5-0.8 s tank-pressure sawtooth, 15-30 psi
deep, with gas running backwards from one tank to the other through the shared
manifold -- and GN2 runs were smooth. It was the coupling step. The session
solved the network once every 25 ms and held each flow for the whole step; the
only time constant it stepped under was the regulator's (~27 ms), but two
ullages trade gas through nothing but their solenoids, which on helium is a few
milliseconds. A solve that found a tank a tenth of a psi above the manifold
sent its gas out for the full 25 ms while the liquid drained, the tank fell,
the other dumped into it, and the pair handed the error back and forth. At a
2 ms step it was gone, and the mean thrust was 170 N higher.

``Session._press_path_timescale`` gives the guard that constant. These check
it is what it says, and that a stand like LE4's no longer rings.

Function Documentation

◆ _burn()

list[float] test_press_path_coupling._burn ( Session session,
float seconds = 2.0 )
protected

◆ _helium_stand()

Session test_press_path_coupling._helium_stand ( )
protected
LE4's layout: a helium bottle, a regulator, one manifold to two
press solenoids, mains into a fixed-pressure engine.

Definition at line 32 of file test_press_path_coupling.py.

Referenced by test_a_draining_helium_tank_is_stepped_under_its_press_path(), test_a_tank_at_rest_asks_for_nothing(), and test_two_helium_tanks_on_one_manifold_do_not_ring().

◆ _roughness()

float test_press_path_coupling._roughness ( list[float] trace)
protected
Mean |second difference| [psi]: zero for a straight line.

Definition at line 84 of file test_press_path_coupling.py.

Referenced by test_two_helium_tanks_on_one_manifold_do_not_ring().

◆ test_a_draining_helium_tank_is_stepped_under_its_press_path()

None test_press_path_coupling.test_a_draining_helium_tank_is_stepped_under_its_press_path ( )

Definition at line 92 of file test_press_path_coupling.py.

References _burn(), _helium_stand(), and min.

◆ test_a_tank_at_rest_asks_for_nothing()

None test_press_path_coupling.test_a_tank_at_rest_asks_for_nothing ( )
No liquid leaving, no constant: a pad hold is not stepped at the
solenoids' zero-flow slope.

Definition at line 110 of file test_press_path_coupling.py.

References _helium_stand().

◆ test_a_tank_draining_onto_a_vented_manifold_asks_for_nothing()

None test_press_path_coupling.test_a_tank_draining_onto_a_vented_manifold_asks_for_nothing ( )
Engine Abort with the fuel loaded and the LOX tank empty (the whole LOX
chill window): the fuel drains by gravity through its open main, and its
press path is the manifold, vented through the empty LOX tank. That
"supply" sits at atmosphere with the tank, so the band was met and the
drain over a step beat a tenth of it: 0.27 ms couplings, 33-79 per 20 ms
step, the panel 40x slower than real time. A vent one node further on
carries nothing across a regulated supply.

Definition at line 137 of file test_press_path_coupling.py.

References max.

◆ test_two_helium_tanks_on_one_manifold_do_not_ring()

None test_press_path_coupling.test_two_helium_tanks_on_one_manifold_do_not_ring ( pytest.MonkeyPatch monkeypatch)

Definition at line 119 of file test_press_path_coupling.py.

References _burn(), _helium_stand(), and _roughness().