|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
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 |
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.
|
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().
|
protected |
Definition at line 104 of file chug_timelag_benchmark.py.
References _cstar_from_pc().
Referenced by _boundary_and_frequency(), and bench_a().
|
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().
|
protected |
Definition at line 167 of file chug_timelag_benchmark.py.
|
protected |
Definition at line 159 of file chug_timelag_benchmark.py.
|
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().
| bool chug_timelag_benchmark.bench_a | ( | ) |
Definition at line 112 of file chug_timelag_benchmark.py.
References _chamber(), and _streams().
Referenced by main().
| 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().
| bool chug_timelag_benchmark.bench_c | ( | ) |
Definition at line 225 of file chug_timelag_benchmark.py.
Referenced by main().
| bool chug_timelag_benchmark.bench_d | ( | ) |
Definition at line 256 of file chug_timelag_benchmark.py.
Referenced by main().
| 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().
| bool chug_timelag_benchmark.bench_f | ( | ) |
Definition at line 411 of file chug_timelag_benchmark.py.
References inertance_closed_form().
Referenced by main().
| 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().
| int chug_timelag_benchmark.main | ( | ) |
| int chug_timelag_benchmark.A_C = math.pi * (D_C / 2.0) ** 2 |
Definition at line 70 of file chug_timelag_benchmark.py.
| int chug_timelag_benchmark.A_T = math.pi * (D_TH / 2.0) ** 2 |
Definition at line 69 of file chug_timelag_benchmark.py.
Definition at line 80 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.D0_PAPER = 83.0e-6 |
Definition at line 64 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.D_C = 0.0508 |
Definition at line 50 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.D_TH = 0.0124 |
Definition at line 51 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.DP_FU_FIXED = 0.5 |
Definition at line 67 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.DP_OX_LIMIT = 0.35 |
Definition at line 66 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.ETA_CSTAR = 0.75 |
Definition at line 59 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.F_CHUG_EXPERIMENT = 66.0 |
Definition at line 65 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.GAMMA = 1.26 |
Definition at line 77 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.H_FG_O2 = 213000.0 |
Definition at line 83 of file chug_timelag_benchmark.py.
| tuple chug_timelag_benchmark.K_G_BAND = (0.35, 0.70) |
Definition at line 79 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.L_C = 0.104 |
Definition at line 53 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.LSTAR = 2.31 |
Definition at line 52 of file chug_timelag_benchmark.py.
Definition at line 71 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.MDOT_OX = 0.249 |
Definition at line 56 of file chug_timelag_benchmark.py.
Definition at line 72 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.MR = 5.0 |
Definition at line 54 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.PA_PER_BAR = 1.0e5 |
Definition at line 45 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.PC = 44.8 * PA_PER_BAR |
Definition at line 55 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.R_G = 640.0 |
Definition at line 78 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.RHO_L_O2 = 1140.0 |
Definition at line 84 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.T_BOIL_O2 = 90.19 |
Definition at line 82 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.T_CRIT_O2 = 154.58 |
Definition at line 81 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.TAU_FU_PAPER = 2.2e-3 |
Definition at line 62 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.TAU_OX_PAPER = 6.6e-3 |
Definition at line 61 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.TAU_VAP_PAPER = 4.4e-3 |
Definition at line 63 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.TC = 2038.0 |
Definition at line 58 of file chug_timelag_benchmark.py.
| float chug_timelag_benchmark.V_CAV = 1.0e-5 |
Definition at line 57 of file chug_timelag_benchmark.py.