Skip to content

Distillation

Binary distillation — Skogestad's "Column A".

Action space Box((2,)), all actions in [-1, 1]
Observation space Box((6,))
Tracked variable(s) yD (mole fraction)
Episode length 200 steps (12000 s at 60 s per step)
Import from target_gym import DistillationColumn, DistillationParams
Cite as distillation-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 L_raw -1 1
1 V_raw -1 1

Observation space

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

Rewards

Both product purities tracked, minus reboiler duty.

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 7 fields.

Episode end

Termination. See check_is_terminal.

Truncation. After 200 steps.

Baselines

A tuned PID ships with this environment.

Arguments

parameter default
delta_t 1
max_steps_in_episode 200
alpha 1.5
M_tray 0.5
M_drum 0.5
F 1
zF_nominal 0.5
qF 1
zF_noise_std 0.03
zF_min 0.4
zF_max 0.6
L_min 2.3
L_max 3.1
V_min 2.8
9 more, see the params dataclass