Changelog

Version 2.0.0 (2025-07-09) - Major Refactoring Release

Major Changes

Architecture Refactoring

  • Complete refactoring from monolithic modules to modern modular architecture

  • New package structure with focused, purpose-driven modules:

    • analysis/ - Transfer functions, system analysis, model identification

    • simulation/ - Dynamic process simulation capabilities

    • optimization/ - Economic optimization, parameter estimation

    • scheduling/ - Batch process scheduling tools

    • utilities/ - Control design utilities, math tools, data processing

    • legacy/ - Backward compatibility wrappers (deprecated)

  • Clean separation of concerns - Each package has a specific, well-defined purpose

  • Enhanced maintainability - Easier to find, understand, and extend functionality

  • Improved performance - Import only needed modules for better startup time

Backward Compatibility

  • Legacy package created for seamless migration from v1.x

  • Deprecation warnings guide users to new modular structure

  • 100% API compatibility - Existing code continues to work without changes

  • Migration guide and documentation provided for smooth transition

New Features

  • Enhanced transfer function analysis with improved error handling

  • Advanced PID tuning methods including AMIGO and Lambda tuning

  • Model predictive control utilities in control_utils

  • Enhanced simulation capabilities with multiple solver options

  • Economic optimization tools for production planning

  • State-Task Network scheduling for batch processes

Documentation Updates

  • Complete documentation rewrite for modular structure

  • Migration guide for upgrading from legacy structure

  • Enhanced API documentation with package-specific guides

  • Modern usage examples throughout documentation

  • Legacy compatibility documentation for existing users

Deprecated

  • analysis.py module (use analysis/ package instead)

  • functions.py module (use appropriate modular packages instead)

  • Direct imports from root module (use package-specific imports)

Breaking Changes

None - Full backward compatibility maintained through legacy wrappers.

Migration Path

Old usage (still works with deprecation warnings)

from analysis import TransferFunction
from functions import step_response, tune_pid

New usage (recommended)

from analysis.transfer_function import TransferFunction
from analysis.system_analysis import step_response
from utilities.control_utils import tune_pid

See the migration guide for complete migration instructions.

Version 1.0.0 (2025-07-05)

Initial release of the Standard Process Control Library.

Added

Core Classes

  • PIDController - Full-featured PID controller with anti-windup, bumpless transfer, and setpoint weighting

  • TuningRule - Automated PID tuning with Ziegler-Nichols, AMIGO, and Relay methods

  • ProcessModel - Abstract base class for all process models

  • Tank - Gravity-drained tank model for level control applications

  • CSTR - Continuous Stirred Tank Reactor with Arrhenius kinetics

  • InteractingTanks - Two-tank system for studying complex dynamics

  • LinearApproximation - Linearization tools for nonlinear models

  • TransferFunction - Complete frequency domain analysis capabilities

  • Simulation - ODE integration for process dynamics

  • Optimization - Linear and nonlinear optimization with PyOMO integration

  • StateTaskNetwork - Batch process scheduling and planning

Essential Functions

  • step_response() - Calculate system step response

  • bode_plot() - Generate Bode plots for frequency analysis

  • linearize() - Linearize nonlinear models around operating points

  • tune_pid() - Automated PID parameter tuning

  • simulate_process() - Dynamic process simulation

  • optimize_operation() - Process operation optimization

  • fit_fopdt() - FOPDT model parameter identification

  • stability_analysis() - System stability assessment

  • disturbance_rejection() - Disturbance rejection analysis

  • model_predictive_control() - Basic MPC implementation

Documentation

  • Complete Sphinx documentation with mathematical background

  • API reference for all classes and functions

  • Step-by-step tutorials for common control tasks

  • Working examples demonstrating all major features

  • Theory section with control engineering fundamentals

Examples and Tests

  • examples.py - Comprehensive examples covering all library features

  • test_library.py - Test suite for basic and advanced functionality

  • Tutorial examples for tank control, CSTR temperature control, and batch optimization

Features

Process Control Capabilities

  • PID Control with advanced features (anti-windup, bumpless transfer)

  • Automated Tuning using industry-standard methods

  • Process Modeling for tanks, reactors, and custom systems

  • Frequency Domain Analysis with Bode plots and stability margins

  • Dynamic Simulation with multiple integration methods

  • Optimization for both steady-state and dynamic problems

  • Batch Scheduling using State-Task Networks

Technical Features

  • Python 3.8+ compatibility

  • NumPy/SciPy integration for numerical computing

  • Matplotlib support for visualization

  • PyOMO integration for advanced optimization

  • Comprehensive error handling and input validation

  • Type hints for better code documentation

  • Modular design for easy extension

Documentation

  • Complete API reference with mathematical background

  • Step-by-step tutorials for learning control concepts

  • Working examples for all major features

  • Theory section covering control engineering fundamentals

  • Installation guide and troubleshooting tips

Testing

  • Basic functionality tests for all core components

  • Advanced feature tests for optimization and analysis

  • Example verification to ensure all examples run correctly

  • Input validation tests for error handling

Known Issues

Version 1.0.0

  • Frequency domain analysis may show warnings for edge cases (magnitude calculation near zero)

  • Disturbance rejection analysis uses simplified approximations for transfer function algebra

  • Batch optimization examples may require adjustment of solver tolerances for complex problems

  • CSTR linearization around unstable operating points may not converge

Workarounds:

  • Use appropriate frequency ranges for Bode plot analysis

  • For advanced transfer function operations, consider using the Python Control library alongside this library

  • Adjust optimization solver settings for better convergence

  • Verify steady-state stability before linearization

Future Releases

Planned for Version 1.1.0

Enhanced Features:

  • Cascade Control - Implementation of cascade control structures

  • Feedforward Control - Disturbance feedforward compensation

  • Smith Predictor - Dead time compensation for processes with significant delays

  • Advanced MPC - Multi-input, multi-output model predictive control

  • Fuzzy Logic Control - Fuzzy logic controllers for nonlinear processes

Additional Models:

  • Heat Exchanger - Dynamic models for heat transfer processes

  • Distillation Column - Multi-stage separation process models

  • Plug Flow Reactor - Distributed parameter reactor models

  • Custom Model Builder - GUI or configuration-based model creation

Improved Tools:

  • Parameter Estimation - Automated fitting of model parameters to data

  • Sensitivity Analysis - Robustness analysis for controller designs

  • Economic MPC - Economic optimization in model predictive control

  • Real-time Interface - Tools for connecting to real process data

Planned for Version 1.2.0

Advanced Control:

  • Robust Control Design - H∞ and μ-synthesis methods

  • Adaptive Control - Self-tuning and model reference adaptive control

  • Nonlinear Control - Sliding mode and feedback linearization

  • Multivariable Control - RGA analysis and decoupling methods

Industrial Features:

  • Alarm Management - Process alarm detection and management

  • Data Reconciliation - Measurement error detection and correction

  • Statistical Process Control - SPC charts and process monitoring

  • Safety Systems - Safety instrumented systems (SIS) modeling

Software Engineering:

  • GUI Interface - Graphical user interface for common tasks

  • Database Integration - Process historian and database connectivity

  • Cloud Deployment - Containerized deployment options

  • API Extensions - REST API for web-based applications

Long-term Roadmap

Version 2.0.0 (Major Release)

  • Digital Twin Integration - Complete process digital twin capabilities

  • Machine Learning - AI/ML integration for advanced process control

  • Industrial IoT - Integration with industrial IoT platforms

  • Real-time Optimization - Online optimization for process operations

Community and Ecosystem:

  • Plugin Architecture - Extension system for custom functionality

  • Industry Partnerships - Collaboration with process control vendors

  • Educational Resources - Expanded course materials and certification programs

  • Research Collaboration - Integration with academic research projects

Deprecation Notices

None for Version 1.0.0 (initial release).

Contributing

This project welcomes contributions! Areas where contributions are particularly valuable:

Code Contributions: - Additional process models (heat exchangers, distillation, etc.) - Advanced control algorithms (robust control, adaptive control) - Performance optimizations and bug fixes - Additional tuning methods and industrial algorithms

Documentation: - Additional examples and case studies - Tutorial improvements and corrections - Translation to other languages - Video tutorials and educational content

Testing: - Industrial validation cases - Performance benchmarks - Edge case testing - Cross-platform compatibility testing

See the contributing guidelines for details on how to submit contributions.

Version Support

Current Versions: - 1.0.x - Active development and bug fixes - Future versions - Will maintain backward compatibility within major versions

Python Compatibility: - Python 3.8+ - Minimum supported version - Python 3.11 - Recommended version - Python 3.12 - Tested and supported

Dependencies: - NumPy ≥ 1.20.0 - SciPy ≥ 1.7.0 - Matplotlib ≥ 3.3.0 - PyOMO ≥ 6.0.0 (optional, for advanced optimization)

Release Notes

Each release includes: - Detailed changelog with all changes - Migration guide for breaking changes - Performance improvements and optimizations - Bug fixes and stability improvements - New feature documentation and examples

Subscribe to releases on GitHub to stay updated with new versions and important announcements.