Skip to main content

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

sproclib-2.0.4.tar.gz (10.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sproclib-2.0.4-py3-none-any.whl (417.3 kB view details)

Uploaded Python 3

File details

Details for the file sproclib-2.0.4.tar.gz.

File metadata

  • Download URL: sproclib-2.0.4.tar.gz
  • Upload date:
  • Size: 10.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for sproclib-2.0.4.tar.gz
Algorithm Hash digest
SHA256 75227a8b96792042e977d9b24ba8abcd6677f818662e51e963b34742ac7a71fb
MD5 ee99b92336f55102df4a20b14287310d
BLAKE2b-256 e5164e6b2f312fcc0925f67e4f65b69e22a4b29c615709e0b2577101d8d884fa

See more details on using hashes here.

File details

Details for the file sproclib-2.0.4-py3-none-any.whl.

File metadata

  • Download URL: sproclib-2.0.4-py3-none-any.whl
  • Upload date:
  • Size: 417.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for sproclib-2.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9ddf84f2453ee1086b9f1867fb144d6b11a90597a9d9d593fc7fcedc6dfdb60f
MD5 e086f454c692e1f92989f5fb77c3df3f
BLAKE2b-256 d119f64d32cb6cd9656b06e44ffcffa51c3db4eac645c6e20f421dd243a092c1

See more details on using hashes here.

Supported by

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