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

Functions

float _cstar_from_pc ()
 _streams (float eta_ox, float eta_fu, float tau_ox, float tau_fu)
chug.ChugChamber _chamber ()
bool bench_a ()
timelag.StreamThermo _lox_stream (float D0)
timelag.StreamThermo _gh2_stream ()
bool bench_b ()
bool bench_c ()
bool bench_d ()
 _boundary_and_frequency (float tau_ox, float tau_fu)
bool bench_e ()
 inertance_closed_form (float K_c, float theta, float tau, float Z, float I)
bool bench_f ()
int main ()

Variables

float PA_PER_BAR = 1.0e5
float D_C = 0.0508
float D_TH = 0.0124
float LSTAR = 2.31
float L_C = 0.104
float MR = 5.0
float PC = 44.8 * PA_PER_BAR
float MDOT_OX = 0.249
float V_CAV = 1.0e-5
float TC = 2038.0
float ETA_CSTAR = 0.75
float TAU_OX_PAPER = 6.6e-3
float TAU_FU_PAPER = 2.2e-3
float TAU_VAP_PAPER = 4.4e-3
float D0_PAPER = 83.0e-6
float F_CHUG_EXPERIMENT = 66.0
float DP_OX_LIMIT = 0.35
float DP_FU_FIXED = 0.5
int A_T = math.pi * (D_TH / 2.0) ** 2
int A_C = math.pi * (D_C / 2.0) ** 2
float MDOT_FU = MDOT_OX / MR
float MDOT_TOT = MDOT_OX + MDOT_FU
float GAMMA = 1.26
float R_G = 640.0
tuple K_G_BAND = (0.35, 0.70)
float CP_G = GAMMA * R_G / (GAMMA - 1.0)
float T_CRIT_O2 = 154.58
float T_BOIL_O2 = 90.19
float H_FG_O2 = 213000.0
float RHO_L_O2 = 1140.0

Detailed Description

Score the two chug time-lag models against EXTERNAL data, not against this codebase.

The anchor is the validation engine of

    M. Leonardi, F. Nasuti, F. Di Matteo, J. Steelant, "A methodology to study the possible
    occurrence of chugging in liquid rocket engines during transient start-up",
    Acta Astronautica 139 (2017) 344-356.                                            [L17]

itself a re-analysis of the NASA gaseous-hydrogen / liquid-oxygen chug rig of ref. [25]. That rig is
useful here for three reasons that no STAR config can supply: it has a MEASURED chug frequency, a
MEASURED stability boundary, and one propellant injected as a GAS — which is the case STAR's old
code could not express at all, because it ran the d^2-law droplet model on both streams.

Four benchmarks, in order of how much they can prove:

  A  Solver vs experiment.  Feed chug.py the paper's own lags and check it reproduces the measured
     66 Hz and the measured Delta_p_ox/pc ~ 0.35 inherent stability limit. Validates the loop
     independently of any lag model.
  B  Lag model vs experiment.  Same chamber, same drop size; compare each model's tau_vap against
     the experiment-derived 4.4 ms (and tau_tot against 6.6 ms).
  C  Convection correction vs textbook.  L17 eq. 8's (1 + 1.5 alpha) against Ranz-Marshall at the
     same droplet Reynolds number.
  D  Blast radius.  What each model does to the lags of STAR's own shipped engines.
  E  THE DECIDER.  Each model's OWN lags driven end-to-end through chug.py, scored on the two
     quantities ref. [25] actually measured. This is the only benchmark that compares models on an
     output rather than on an intermediate, so it is the one that picks the shipping default.

Run: python3 scripts/chug_timelag_benchmark.py
Exit code is 0 when every benchmark that has a pass/fail criterion passes.

Function Documentation

◆ _boundary_and_frequency()

chug_timelag_benchmark._boundary_and_frequency ( float tau_ox,
float tau_fu )
protected
(Delta_p_ox/pc at the gain-margin crossing, chug frequency there).

Definition at line 305 of file chug_timelag_benchmark.py.

References _chamber(), and _streams().

Referenced by bench_e().

◆ _chamber()

chug.ChugChamber chug_timelag_benchmark._chamber ( )
protected

Definition at line 104 of file chug_timelag_benchmark.py.

References _cstar_from_pc().

Referenced by _boundary_and_frequency(), and bench_a().

◆ _cstar_from_pc()

float chug_timelag_benchmark._cstar_from_pc ( )
protected
c* implied by the paper's own operating point: c* = Pc*A_t/mdot.

Definition at line 87 of file chug_timelag_benchmark.py.

Referenced by _chamber().

◆ _gh2_stream()

timelag.StreamThermo chug_timelag_benchmark._gh2_stream ( )
protected

Definition at line 167 of file chug_timelag_benchmark.py.

Referenced by bench_b(), and bench_e().

◆ _lox_stream()

timelag.StreamThermo chug_timelag_benchmark._lox_stream ( float D0)
protected

Definition at line 159 of file chug_timelag_benchmark.py.

Referenced by bench_b(), and bench_e().

◆ _streams()

chug_timelag_benchmark._streams ( float eta_ox,
float eta_fu,
float tau_ox,
float tau_fu )
protected
L17 rig as two ChugStreams. The rig decouples the chamber from the feed lines (L17 fig. 3):
the injector cavities hold constant pressure, so there is no line inertance or resistance to
model — which is exactly why it is a clean test of the chamber+injector loop.

Definition at line 92 of file chug_timelag_benchmark.py.

Referenced by _boundary_and_frequency(), and bench_a().

◆ bench_a()

bool chug_timelag_benchmark.bench_a ( )

Definition at line 112 of file chug_timelag_benchmark.py.

References _chamber(), and _streams().

Referenced by main().

◆ bench_b()

bool chug_timelag_benchmark.bench_b ( )

Definition at line 171 of file chug_timelag_benchmark.py.

References _gh2_stream(), and _lox_stream().

Referenced by main().

◆ bench_c()

bool chug_timelag_benchmark.bench_c ( )

Definition at line 225 of file chug_timelag_benchmark.py.

Referenced by main().

◆ bench_d()

bool chug_timelag_benchmark.bench_d ( )

Definition at line 256 of file chug_timelag_benchmark.py.

Referenced by main().

◆ bench_e()

bool chug_timelag_benchmark.bench_e ( )

Definition at line 322 of file chug_timelag_benchmark.py.

References _boundary_and_frequency(), _gh2_stream(), _lox_stream(), and min.

Referenced by main().

◆ bench_f()

bool chug_timelag_benchmark.bench_f ( )

Definition at line 411 of file chug_timelag_benchmark.py.

References inertance_closed_form().

Referenced by main().

◆ inertance_closed_form()

chug_timelag_benchmark.inertance_closed_form ( float K_c,
float theta,
float tau,
float Z,
float I )
(GM, f [Hz]) of the one-stream loop above, by bisection on the phase equation.

Definition at line 397 of file chug_timelag_benchmark.py.

Referenced by bench_f().

◆ main()

int chug_timelag_benchmark.main ( )

Definition at line 453 of file chug_timelag_benchmark.py.

References bench_a(), bench_b(), bench_c(), bench_d(), bench_e(), bench_f(), and main().

Referenced by main().

Variable Documentation

◆ A_C

int chug_timelag_benchmark.A_C = math.pi * (D_C / 2.0) ** 2

Definition at line 70 of file chug_timelag_benchmark.py.

◆ A_T

int chug_timelag_benchmark.A_T = math.pi * (D_TH / 2.0) ** 2

Definition at line 69 of file chug_timelag_benchmark.py.

◆ CP_G

float chug_timelag_benchmark.CP_G = GAMMA * R_G / (GAMMA - 1.0)

Definition at line 80 of file chug_timelag_benchmark.py.

◆ D0_PAPER

float chug_timelag_benchmark.D0_PAPER = 83.0e-6

Definition at line 64 of file chug_timelag_benchmark.py.

◆ D_C

float chug_timelag_benchmark.D_C = 0.0508

Definition at line 50 of file chug_timelag_benchmark.py.

◆ D_TH

float chug_timelag_benchmark.D_TH = 0.0124

Definition at line 51 of file chug_timelag_benchmark.py.

◆ DP_FU_FIXED

float chug_timelag_benchmark.DP_FU_FIXED = 0.5

Definition at line 67 of file chug_timelag_benchmark.py.

◆ DP_OX_LIMIT

float chug_timelag_benchmark.DP_OX_LIMIT = 0.35

Definition at line 66 of file chug_timelag_benchmark.py.

◆ ETA_CSTAR

float chug_timelag_benchmark.ETA_CSTAR = 0.75

Definition at line 59 of file chug_timelag_benchmark.py.

◆ F_CHUG_EXPERIMENT

float chug_timelag_benchmark.F_CHUG_EXPERIMENT = 66.0

Definition at line 65 of file chug_timelag_benchmark.py.

◆ GAMMA

float chug_timelag_benchmark.GAMMA = 1.26

Definition at line 77 of file chug_timelag_benchmark.py.

◆ H_FG_O2

float chug_timelag_benchmark.H_FG_O2 = 213000.0

Definition at line 83 of file chug_timelag_benchmark.py.

◆ K_G_BAND

tuple chug_timelag_benchmark.K_G_BAND = (0.35, 0.70)

Definition at line 79 of file chug_timelag_benchmark.py.

◆ L_C

float chug_timelag_benchmark.L_C = 0.104

Definition at line 53 of file chug_timelag_benchmark.py.

◆ LSTAR

float chug_timelag_benchmark.LSTAR = 2.31

Definition at line 52 of file chug_timelag_benchmark.py.

◆ MDOT_FU

float chug_timelag_benchmark.MDOT_FU = MDOT_OX / MR

Definition at line 71 of file chug_timelag_benchmark.py.

◆ MDOT_OX

float chug_timelag_benchmark.MDOT_OX = 0.249

Definition at line 56 of file chug_timelag_benchmark.py.

◆ MDOT_TOT

float chug_timelag_benchmark.MDOT_TOT = MDOT_OX + MDOT_FU

Definition at line 72 of file chug_timelag_benchmark.py.

◆ MR

float chug_timelag_benchmark.MR = 5.0

Definition at line 54 of file chug_timelag_benchmark.py.

◆ PA_PER_BAR

float chug_timelag_benchmark.PA_PER_BAR = 1.0e5

Definition at line 45 of file chug_timelag_benchmark.py.

◆ PC

float chug_timelag_benchmark.PC = 44.8 * PA_PER_BAR

Definition at line 55 of file chug_timelag_benchmark.py.

◆ R_G

float chug_timelag_benchmark.R_G = 640.0

Definition at line 78 of file chug_timelag_benchmark.py.

◆ RHO_L_O2

float chug_timelag_benchmark.RHO_L_O2 = 1140.0

Definition at line 84 of file chug_timelag_benchmark.py.

◆ T_BOIL_O2

float chug_timelag_benchmark.T_BOIL_O2 = 90.19

Definition at line 82 of file chug_timelag_benchmark.py.

◆ T_CRIT_O2

float chug_timelag_benchmark.T_CRIT_O2 = 154.58

Definition at line 81 of file chug_timelag_benchmark.py.

◆ TAU_FU_PAPER

float chug_timelag_benchmark.TAU_FU_PAPER = 2.2e-3

Definition at line 62 of file chug_timelag_benchmark.py.

◆ TAU_OX_PAPER

float chug_timelag_benchmark.TAU_OX_PAPER = 6.6e-3

Definition at line 61 of file chug_timelag_benchmark.py.

◆ TAU_VAP_PAPER

float chug_timelag_benchmark.TAU_VAP_PAPER = 4.4e-3

Definition at line 63 of file chug_timelag_benchmark.py.

◆ TC

float chug_timelag_benchmark.TC = 2038.0

Definition at line 58 of file chug_timelag_benchmark.py.

◆ V_CAV

float chug_timelag_benchmark.V_CAV = 1.0e-5

Definition at line 57 of file chug_timelag_benchmark.py.