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