Skip to content
/ pc-gym Public
forked from MaximilianB2/pc-gym

Reinforcement learning environments for process control applications.

License

Notifications You must be signed in to change notification settings

GSpen1/pc-gym

 
 

Repository files navigation


Reinforcement learning environments for process control

Quick start ⚡

Setup a CSTR environment with a setpoint change

import pcgym

# Simulation variables
nsteps = 100
T = 25

# Setpoint
SP = {'Ca': [0.85 for i in range(int(nsteps/2))] + [0.9 for i in range(int(nsteps/2))]} 

# Action and observation Space
action_space = {'low': np.array([295]), 'high': np.array([302])}
observation_space = {'low': np.array([0.7,300,0.8]),'high': np.array([1,350,0.9])}

# Construct the environment parameter dictionary
env_params = {
    'N': nsteps, # Number of time steps
    'tsim':T, # Simulation Time
    'SP' :SP, 
    'o_space' : observation_space, 
    'a_space' : action_space, 
    'x0': np.array([0.8, 330, 0.8]), # Initial conditions [Ca, T, Ca_SP]
    'model': 'cstr_ode', # Select the model
}

# Create environment
env = pcgym.make_env(env_params)

# Reset the environment
obs, state = env.reset()

# Sample a random action
action = env.action_space.sample()

# Perform a step in the environment
obs, rew, done, term, info = env.step(action)

Documentation

You can read the full documentation here!

Installation ⏳

The latest pc-gym version can be installed from PyPI:

pip install pcgym

Examples

Example notebooks with training walkthroughs, implementing constraints, disturbances and the policy evaluation tool can be found here.

Implemented Process Control Environments 🎛️

Environment Reference Source Documentation
CSTR Hedengren, 2022 Source
First Order Sytem N/A Source
Multistage Extraction Column Ingham et al, 2007 (pg 471) Source
Nonsmooth Control Lim,1969 Source

Paper 📚

The associated pre-print paper can be found here. If you use our software in your work please cite the following:

@article{bloor2024pcgymbenchmarkenvironmentsprocess,
      title={PC-Gym: Benchmark Environments For Process Control Problems}, 
      author={Maximilian Bloor and José Torraca and Ilya Orson Sandoval and Akhil Ahmed and Martha White and Mehmet Mercangöz and Calvin Tsay and Ehecatl Antonio Del Rio Chanona and Max Mowbray},
      year={2024},
      eprint={2410.22093},
      archivePrefix={arXiv},
      primaryClass={eess.SY},
      url={https://arxiv.org/abs/2410.22093}, 
}

Other Great Gyms 🔍

About

Reinforcement learning environments for process control applications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%