Skip to main content

Reinforcement learning suite of process control problems.

Project description


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

TODO: Link example notebooks 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

Citing pc-gym

If you use pc-gym in your research, please cite using the following

@software{pcgym2024,
  author = {Max Bloor and and Jose Neto and Ilya Sandoval and Max Mowbray and Akhil Ahmed and Mehmet Mercangoz and Calvin Tsay and Antonio Del Rio-Chanona},
  title = {{pc-gym}: Reinforcement Learning Envionments for Process Control},
  url = {https://github.com/MaximilianB2/pc-gym},
  version = {0.0.4},
  year = {2024},
}

Other Great Gyms 🔍

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pcgym-0.1.2.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

pcgym-0.1.2-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

Details for the file pcgym-0.1.2.tar.gz.

File metadata

  • Download URL: pcgym-0.1.2.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.9

File hashes

Hashes for pcgym-0.1.2.tar.gz
Algorithm Hash digest
SHA256 31b61211e16c332897aac5b8585c461a07766c26bace8ecf57555cb7c883a04e
MD5 de3090c65e4b064858e29f8962574b6e
BLAKE2b-256 ffe021273bf3d99639947f53a357880fc9b3bb83405611cb13c896c20ff5177c

See more details on using hashes here.

File details

Details for the file pcgym-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pcgym-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 20.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.9

File hashes

Hashes for pcgym-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 300e67f62e1ad2f9853133a4fc037c6d057b28994582c0a046f4a47e6f37f4c9
MD5 3c41aa93041297edce855c6975c96c6a
BLAKE2b-256 3e737a7e0e498fca5bbdaaea669e85e8275a63b5026b847fe13f223848611e62

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page