Process Control Package API Documentation

Complete API documentation for the Standard Process Control Library (SPROCLIB).

Note

Recommended for New Development: Use the modern modular packages listed below.

Quick Navigation

Most Common APIs:

Specialized APIs:

Package Overview

Modern Modular Architecture

The SPROCLIB API is organized into focused packages, each serving specific purposes:

API Organization

Core Analysis and Control
  • analysis/ - Transfer functions, frequency domain analysis, system identification

  • simulation/ - Dynamic simulation, ODE solvers, control loop integration

  • utilities/ - PID tuning, mathematical tools, data processing

Process Modeling
  • units/ - Process equipment (tanks, reactors, pumps, valves)

  • transport/ - Pipeline systems, fluid flow, multiphase transport

  • controllers/ - Control algorithms and implementations

Optimization and Planning
  • optimization/ - Economic optimization, parameter estimation

  • scheduling/ - Batch process scheduling, State-Task Networks

Common Usage Patterns

Basic Control Design:

from sproclib.analysis import TransferFunction
from sproclib.utilities import tune_pid, step_response

# Create process model
process = TransferFunction.first_order_plus_dead_time(K=2.0, tau=5.0, theta=1.0)

# Tune controller
params = tune_pid({'K': 2.0, 'tau': 5.0, 'theta': 1.0}, method='amigo')

# Analyze performance
response = step_response(process, time_span=30)

Process Simulation:

from sproclib.units import Tank, CentrifugalPump
from sproclib.simulation import ProcessSimulator

# Create process components
tank = Tank(A=10.0, h_max=5.0)
pump = CentrifugalPump(H0=50.0, eta=0.75)

# Simulate dynamics
simulator = ProcessSimulator([tank, pump])
result = simulator.run(time_span=100, dt=0.1)

Economic Optimization:

from sproclib.optimization import EconomicOptimizer
from sproclib.units import CSTR

# Define process
reactor = CSTR(V=150.0, k0=7.2e10)

# Optimize operation
optimizer = EconomicOptimizer(reactor)
optimal_conditions = optimizer.maximize_profit(
    constraints={'conversion': 0.8, 'temperature': (300, 400)}
)

Getting Started

For Beginners: 1. Start with ../user_guide for step-by-step tutorials 2. Explore Analysis Package for basic control concepts 3. Practice with ../examples for hands-on learning

For Experienced Users: 1. Explore Optimization Package for advanced features 2. Consult Utilities Package for specialized tools

For Developers: 1. See ../contributing for development guidelines 2. Review package source code for implementation details 3. Contribute examples and improvements via GitHub

Support and Resources

  • Documentation: Complete guides and examples throughout this site

  • GitHub Issues: Bug reports and feature requests

  • Examples: Working code in ../examples

  • Theory: Mathematical background in ../theory