Skip to content

Boiler Drum

Boiler drum — natural-circulation drum boiler with shrink-and-swell.

Action space Box((2,)), all actions in [-1, 1]
Observation space Box((7,))
Tracked variable(s) drum level (m), drum pressure (bar)
Episode length 400 steps (800 s at 2 s per step)
Import from target_gym import BoilerDrum, BoilerDrumParams
Cite as boiler_drum-v1

Action space

Actions are normalised to [-1, 1] and mapped onto the plant's real actuator range inside the environment.

# meaning min max
0 fuel -1 1
1 feedwater -1 1

Observation space

7 values. Indices (0, 1) carry the tracked variable(s) that the reward scores.

Rewards

Level and pressure tracking, minus fuel.

Every environment in this suite scores on one contract: the reward is (tracking terms, multiplied) x (1 - weighted costs), bounded in [0, 1], and reaches 1 only while the target is held exactly. See Reward shaping.

Starting state

reset samples the initial condition and the target; state has 11 fields.

Episode end

Termination. High level carries water to the turbine; low level uncovers the tubes.

Truncation. After 400 steps.

Baselines

A tuned PID ships with this environment.

Arguments

parameter default
delta_t 2
max_steps_in_episode 400
V_t 88
V_d 40
V_r 37
V_dc 11
A_d 20
A_dc 0.355
L_r 11
m_metal 300000
C_metal 550
k_friction 25
tau_sr 8
T_d 15
20 more, see the params dataclass