2. Domain primer: start here¶
In short
- Nine short chapters take you from the engine as a control system to the reward, one physical idea each. They build up to the Engine Lab, an in-browser, LUMEN-like surrogate engine on which a PI controller and trained PPO and SAC agents run live, and close with how real hot-fire tests and DLR's simulator work.
- Every chapter follows the same pattern: a question, a picture you can play with, the equations, what it means for the agent, and a short self-check.
- All equations live on one equation sheet. Each entry says what DLR's LUMEN model does and what the surrogate does instead.
- The physics in four lines:
- Chamber pressure is thrust, and mixture ratio is flame temperature.
- Two turbine valves feed one heat budget to two pumps, so both valves move both outputs.
- The oxidiser side answers in half a second; the fuel side answers through the chamber wall's heat, over 5–24 s.
- Mixture ratio, the noisiest measurement, guards the fastest-acting limit.
This primer is the physics you need to read the LUMEN Control Challenge critically and to design for it. It covers what the controlled variables mean, why the two actions couple, where the slow and fast dynamics come from, what the constraints protect, and what a hot-fire test looks like. It assumes the RL; it does not assume combustion or turbomachinery. Equations are the ones the DLR group itself uses, each linked to where it appears. Everything else links to References.
About the widgets and the Lab
DLR's simulator is not public (§7.1). The widgets run a surrogate: a reduced expander-bleed engine written for this site and calibrated to the static gains, settling times and overshoot DLR publishes for its LUMEN model (model card). It shows the right mechanisms at roughly the right sizes and speeds. Its numbers are not DLR's and say nothing quantitative about the challenge.
How to use it¶
-
The engine as a control system
Thrust is chamber pressure, mixture ratio is temperature, and two valves set both. Widget: the valve plane.
-
Where the turbine power comes from, and why both turbines share one heat budget. Widget: the engine at steady state.
-
Flow coefficients, dead time and rate limits, and why valve models broke sim-to-real twice. Widget: a valve step.
-
Settling times from half a second to 24 s, and a pressure overshoot 75 % larger than the final change. Widget: TFV and TOV steps.
-
Constraints and the operating map
Cooling, injection and turbopump limits, and which set points two valves can hold. Widget: the operating map.
-
What the controller actually reads, and why mixture ratio is the noisiest signal. Widget: delay and noise.
-
DLR's reward and observation design, term by term, and what this repo's environment changes. Widget: the tracking reward.
-
Everything above in one simulator. Presets show a schedule, PI, PPO and SAC, or you, turning the knobs. You can perturb the engine and compare runs.
-
Hot fire, simulators and glossary and Equation sheet
What a test looks like, how DLR's model is built and how good it is, the vocabulary, and every equation in one place.
Reading time is about ninety minutes with the widgets. If you only have twenty minutes:
- Read Fast chamber, slow heat.
- Open the Lab on the TFV step.
- Then open it on the PI controller.
The whole problem on one page¶
Two valve commands go in every 0.05 s (20 Hz in the challenge; the surrogate on this site uses 0.1 s), and chamber pressure and mixture ratio come out. The chain between them, as LUMEN implements it (each box is covered in one of the chapters):
flowchart TB
TFV["TFV command"] --> VF["valve: dead time,<br/>rate limits"] --> FT["fuel turbine power"]
TOV["TOV command"] --> VO["valve: dead time,<br/>rate limits"] --> OT["LOX turbine power"]
HEAT["warm methane enthalpy<br/>(chamber wall heat)"] -. "slow, 5–24 s" .-> FT
HEAT -.-> OT
FT --> FP["fuel pump speed"] --> MF["fuel flow"]
OT --> OP["LOX pump speed"] --> MO["LOX flow"]
MF --> PCC["chamber pressure<br/>∝ total flow"]
MO --> PCC
MF --> ROF["mixture ratio<br/>= LOX / fuel"]
MO --> ROF
PCC -. "more heat at higher pressure" .-> HEAT
MF -. "more coolant: colder methane" .-> HEAT
PCC --> S["sensors: delayed, noisy"]
ROF --> S
S --> CTRL["controller"]
The dotted arrows close the slow loop that makes the fuel side hard: more chamber pressure means more wall heat, but more coolant flow means colder methane for the turbines.
One valve step in five moments¶
The TFV step is the most instructive single experiment on this engine. Open each moment in the Lab (surrogate; the times match DLR's model to within about 25 %, see the model card).
| t after the step | What happens | Why it matters | |
|---|---|---|---|
| 0–0.05 s | nothing: valve dead time | a controller acting on its own latest command sees no effect yet | open |
| 0.1–2 s | fuel turbine spins up; fuel flow, then pressure rise; mixture ratio falls | the fast response: both outputs move, in opposite directions | open |
| about 2 s | pressure peaks about 6.5 bar above where it started | in DLR's model the peak is "75 % larger than the static gain" (p. 73) | open |
| 2–20 s | more coolant through the same heat: colder methane, weaker turbines, pressure sags | the slow loop; a PI tuned on the peak is too weak for the sag | open |
| about 20 s | settled at about +3.4 bar, −0.55 in mixture ratio, 100 K colder methane | DLR's model: +3.7 bar, −0.6, −110 K (Table 4.6) | open |