TEP Studio¶
This documentation explains how to use the Python simulator for the modified Tennessee Eastman Process (TEP).
It assumes you are comfortable copying commands into a terminal, but it does not assume prior knowledge of the codebase, process simulation, reinforcement learning, or MkDocs.
What the simulator provides¶
The package wraps the legacy temexd_mod.c Tennessee Eastman model through a native CFFI extension and exposes practical Python interfaces for:
- direct process simulation with
TennesseeEastmanProcess; - Gymnasium-style control experiments with
GymTEPEnv; - named trajectory datasets with
TrajectoryDataset; - deterministic finite-horizon rollout with
OptimizationAdapter; - closed-loop decentralized control with
ClosedLoopSimulationandRickerMultiLoopController; - an interactive Dash + Plotly interface (the "Simulation Studio") for runs, disturbances, and dataset generation;
- validation runs, metrics, figures, reports, and manifests.
The simulator does not define a complete benchmark by itself. A study still needs to define the task objective, constraints, disturbance policy, train/test split, baselines, and evaluation protocol.
Quickstart by audience¶
Install with pip install tep-studio (add [ui] for the web studio), then pick the path that matches your work, and keep the Cookbook handy for task recipes.
- Process / control engineers — run the closed loop, inject disturbances, change setpoints, plot, and export data. Start with
python -c "import tep_studio as t; t.quickstart()", then Closed-Loop Control and the Interface (Studio). Thetepcommand-line tool (tep run,tep dataset,tep list) covers no-code runs. - ML / RL researchers —
import tep_studioregisters a standard Gymnasium environment:gymnasium.make("TennesseeEastman-v0"), with a configurablereward_fn. See Gymnasium and RL and Working with Data. - Control theorists — get a local linear state-space model with
OptimizationAdapter.linearize(...), run step tests viatep_studio.analysis, and bring your own controller through theControllerprotocol. See Optimization and the Cookbook.
Recommended reading path¶
- Read Getting Started and install the package.
- Run First Simulation to make sure the simulator works.
- Keep the Cookbook open for copy-paste recipes for common tasks.
- Read Core Concepts to understand states, measurements, actions, disturbances, shutdowns, and intervals.
- Use Working with Data if you need CSV, pandas, supervised learning, system identification, or offline RL data.
- Use Gymnasium and RL if you want an environment with
reset()andstep(). - Use Optimization for deterministic rollout, finite-difference gradients, and linearization.
- Use Closed-Loop Control to stabilize the plant with the decentralized controller.
- Use the Interface (Studio) to run, visualize, and export simulations interactively.
- Use Validation before relying on results in a report or paper.