Skip to content

Choosing an environment

Every task shares one interface, so moving from one to another means changing a name. Pick by what you want your method to face, and start with the simplest task that shows it. Every name below works with tg.make, and each task's page says what it observes and how it is scored.

import target_gym as tg

env, params = tg.make("first_order")

By what you want to test

You want to test Start with Then
That a training loop runs at all first_order cstr
A nonlinear plant with one input cstr ph_neutralization, unstable_cstr
An open-loop unstable plant unstable_cstr
Two inputs acting on coupled outputs four_tank distillation, boiler_drum
A response that first moves the wrong way (non-minimum phase) boiler_drum four_tank
Hidden state behind a few measurements hvac glass_furnace, reactor, cement_kiln
A transport delay cement_kiln
Anticipation across hours of plant memory hvac reactor
Costs priced in money battery wind_turbine, hvac, reactor
A trip on a variable nothing scores compressor_surge
An aircraft, from a level hold to paths plane plane3d_heading, then plane3d_circle, plane3d_racetrack, plane3d_figure8
A reference that moves plane_sine plane_energy, patrol
A reference you cannot see patrol_bearing_only
Several agents sharing one cost formation Multi-agent formation

Every task

What each task asks, in one line from its page, with its size. Obs and Act are the observation and action lengths, and the episode is the scored one.

Aircraft

Task Name What it asks Obs Act Episode
Altitude hold plane Hold an A320-class airliner at a target altitude in light-to-moderate turbulence with throttle and elevator. 10 2 280 steps, 4.67 min
Altitude and airspeed plane_energy Walk a ladder of eight altitude levels while holding a commanded airspeed, with the same airliner as plane. 10 2 1600 steps, 26.7 min
Altitude - sinusoid plane_sine Track an altitude that moves as a sinusoid, with the same airliner, throttle and elevator as plane. 10 2 480 steps, 8 min
3D heading plane3d_heading Hold a target altitude and turn onto and hold a target heading with the 3D airliner, using throttle, elevator and aileron. 15 3 300 steps, 5 min
3D circle plane3d_circle Hold altitude while orbiting a fixed circle kilometres across with the 3D airliner. 17 3 300 steps, 5 min
3D holding pattern plane3d_racetrack Fly a holding pattern, two straight legs joined by half circles, at a target altitude with the 3D airliner. 21 3 650 steps, 10.8 min
3D figure-8 plane3d_figure8 Follow a twisted figure-8 that climbs and descends, with the 3D airliner. 21 3 400 steps, 6.67 min
Patrol - wingman patrol Fly as a wingman: reach and hold a slot fixed in the lead aircraft's frame, behind, beside and above or below it, while the lead flies a patrol route that turns onto a new rate every minute. 26 3 200 steps, 3.33 min
Patrol - wingman, bearing-only patrol_bearing_only The patrol task flown from a passive sensor: the wingman sees range, azimuth and elevation to the lead instead of the lead's relative state. 21 3 200 steps, 3.33 min
Formation formation Fly a lead and two wingmen in a V, every aircraft controlled by the policy. 74 9 200 steps, 3.33 min

Process Control

Task Name What it asks Obs Act Episode
CSTR cstr Hold the concentration of reactant A in a cooled, exothermic stirred-tank reactor at a target drawn at reset, by setting the coolant temperature. 3 1 150 steps, 37.5 min
First order first_order Drive a single first-order lag to a target drawn at reset. 2 1 150 steps, 7.5 s
Four-tank four_tank Hold the levels of the two lower tanks of Johansson's quadruple-tank process with two pumps. 6 2 1200 steps, 20 min
pH neutralisation ph_neutralization Hold the pH of a stirred tank, where strong acid meets strong base in a carbonate buffer, at a target by setting the base flow. 3 1 300 steps, 25 min
Distillation distillation Hold both product purities of a 40-tray binary distillation column (Skogestad's Column A) with reflux and boilup. 7 2 200 steps, 3.33 h
Unstable CSTR unstable_cstr Hold the concentration of A in a jacketed exothermic reactor on its open-loop unstable middle steady state, commanding the coolant through a lagging jacket while the feed temperature drifts unmeasured. 4 1 1200 steps, 60 min

Industrial / Energy

Task Name What it asks Obs Act Episode
Glass Furnace glass_furnace Hold the crown temperature of a regenerative float-glass furnace on a slowly walking setpoint by setting the fuel flow. 5 1 1600 steps, 13.3 h
Reactor reactor Follow a drifting power demand on a 3 GW pressurised-water reactor with the control rods. 4 1 864 steps, 2.4 h
Building HVAC hvac Keep a heavyweight, well-insulated single-zone building at its comfort setpoint through occupied hours and a night setback, with hydronic heating, over a week of heating-season weather. 7 1 720 steps, 7.5 days
Cement Kiln cement_kiln Hold the free lime in the clinker leaving a 3000 t/day rotary kiln with fuel and kiln speed. 8 2 700 steps, 5.83 h
Boiler Drum boiler_drum Hold the drum level and the steam pressure of a 160 MW natural-circulation drum boiler with fuel and feedwater, while the turbine's steam draw moves. 7 2 400 steps, 13.3 min
Compressor Surge compressor_surge Hold the header pressure of a variable-speed compressor on a stepped setpoint while the consumers' demand ramps between levels, with the drive speed and an anti-surge recycle valve. 7 2 1200 steps, 2 min

Renewable Energy

Task Name What it asks Obs Act Episode
Wind Turbine wind_turbine Hold the electrical power of the NREL 5 MW reference turbine at a curtailed setpoint in turbulent, above-rated wind, with blade pitch and generator torque. 5 2 400 steps, 100 s
Battery battery Follow a grid dispatch schedule, one setpoint per 5-minute market block, with a 1 MW / 2 MWh lithium-ion battery. 5 1 360 steps, 30 min