Standard Process Control Library for chemical process control - Semantic API for chemical plant design using familiar ML patterns
Project description
SPROCLIB - Standard Process Control Library
A comprehensive Python library for chemical process control, providing essential classes and functions for PID control, process modeling, simulation, optimization, and advanced control techniques.
SPROCLIB provides a semantic API for chemical plant design that uses familiar patterns from machine learning frameworks like TensorFlow and Keras.
Installation
pip install sproclib
Features
- Semantic Plant Design: Intuitive API similar to ML frameworks for building complex chemical processes
- Process Units: CSTR, pumps, heat exchangers, distillation columns, reactors, and tanks
- Economic Optimization: Built-in optimization algorithms for cost minimization and profit maximization
- PID Controllers: Classical and advanced PID control implementations with auto-tuning
- Analysis Tools: Transfer functions, simulation, and system identification
- Advanced Control: Model predictive control, state-space controllers, and IMC
- Transport Models: Continuous and batch transport for liquids and solids
Quick Start
Create and optimize a chemical plant in just a few lines:
from sproclib.unit.plant import ChemicalPlant
from sproclib.unit.pump import CentrifugalPump
from sproclib.unit.reactor import CSTR
# Define plant
plant = ChemicalPlant(name="Process Plant")
# Add units
plant.add(CentrifugalPump(H0=50.0, eta=0.75), name="feed_pump")
plant.add(CSTR(V=150.0, k0=7.2e10), name="reactor")
# Connect units
plant.connect("feed_pump", "reactor", "feed_stream")
# Configure optimization
plant.compile(
optimizer="economic",
loss="total_cost",
metrics=["profit", "conversion"]
)
# Optimize operations
plant.optimize(target_production=1000.0)
Advanced Example
# Traditional PID control example
import sproclib as spc
# Create a PID controller
controller = spc.PIDController(kp=1.0, ki=0.1, kd=0.05)
# Create a tank model
tank = spc.Tank(volume=100, area=10)
# Simulate step response
response = spc.step_response(tank, time_span=100)
Requirements
- Python 3.8+
- NumPy >= 1.20.0
- SciPy >= 1.7.0
- Matplotlib >= 3.3.0
License
MIT License
Author
Thorsten Gressling gressling@paramus.ai
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sproclib-3.0.1.tar.gz.
File metadata
- Download URL: sproclib-3.0.1.tar.gz
- Upload date:
- Size: 24.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9dd87e894a50313d18cf229013ceb58404d5a1bc7f9588f43b5a1e95265cf33d
|
|
| MD5 |
bbbd62ea042468dbb4c3e42f4a47f222
|
|
| BLAKE2b-256 |
163d4c9fb4948278aab8462e6e3d0aafd3be69c2e82c8393ed9aac38d6936ea4
|
File details
Details for the file sproclib-3.0.1-py3-none-any.whl.
File metadata
- Download URL: sproclib-3.0.1-py3-none-any.whl
- Upload date:
- Size: 776.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7176776159bf00705a6bd94028bdbf0744d851ab7db735bc72c844e7806535f9
|
|
| MD5 |
8859e4f0bcbe56ef2ed6c664b8c5de8b
|
|
| BLAKE2b-256 |
a62fcb85610af419cdee14ff308889992e7feb6ad86d3fd073d28311366f0fd9
|