This project develops a fast, data-driven Digital Twin for a Fluid Catalytic Cracking (FCC) unit—specifically modeling the strongly coupled riser and regenerator. By transitioning from a purely data-driven Deep Neural Network to a Physics-Informed Neural Network (PINN), this surrogate model enforces thermodynamic realities (mass balance and carbon balance) while remaining robust when the optimiser explores the process envelope.
The trained surrogate is coupled with a Multi-Objective Optimization (MOO) algorithm (NSGA-II) to identify the optimal operating configurations that balance chemical production targets, environmental constraints, and economic viability.
Key Objectives:
- Maximize Propylene Yield.
- Minimize CO2 Emissions.
- Maximize Overall Hourly Profit.
- Cascaded Surrogate Architecture: A decoupled, three-network design that prevents the optimizer from suggesting physically impossible states. The Riser Outlet Temperature (ROT) is predicted by one sub-network and fed forward into the yield model, so yields are always conditioned on a self-consistent reactor temperature (this also removes the data-leakage that a naive single network would introduce).
- Physics-Informed Loss Function: Augments the standard MSE with two conservation penalties — a mass balance term (the eight product yields are penalised when they drift beyond a tolerance band around 100%) and a carbon balance term (carbon entering as coke must leave as flue-gas CO and CO2). These keep the surrogate's predictions physically consistent where a black-box model would not.
- Realistic Sensor-Noise Simulation: The dataset is pruned to a compact, well-spread set (K-means nearest-to-centroid) and then corrupted with a per-channel noise model (
SENSOR_SPECS): a percentage-of-reading term plus an absolute floor, applied multiplicatively (log-normal) on flow meters and additively on temperatures, re-drawn every epoch to mimic live refinery telemetry. - Multi-Objective Optimization (MOO): Uses
pymoo's NSGA-II to generate the Pareto front mapping the trade-offs between Profit, CO2, and Propylene.
- Language: Python 3.12
- Deep Learning: PyTorch
- Optimization: pymoo (NSGA-II)
- Search: Optuna (architecture / hyper-parameter search)
- Data Processing: pandas, NumPy, scikit-learn (StandardScaler, KMeans)
- Plotting: matplotlib
See TECHNICAL_README.md for exact version requirements, the full path list, the
seed settings, and a cell-by-cell run guide.
- Clone the repository.
- Install dependencies:
pip install "numpy>=2.0" "pandas>=2.2" "openpyxl>=3.1" "scikit-learn>=1.5" \ "torch>=2.4" "optuna>=4.0" "pymoo>=0.6.1.3" "matplotlib>=3.8"
- Data: place the raw dataset where the notebook expects it, or update the file path at the top of the data-preparation cell.
Usage:
- Data prep + training: run the notebook top to bottom. It prunes and noise-injects the data, runs an Optuna architecture search, then trains the cascaded PINN — minimising the standard MSE together with the mass- and carbon-balance penalties. The script automatically uses CUDA (GPU) if available.
- Multi-Objective Optimization: once training completes, the model is set to
eval()mode and NSGA-II runs over the surrogate to build the Pareto front.
- Constraints enforced during MOO:
- 475 °C ≤ ROT ≤ 575 °C
- Regenerator Dense Bed Temperature ≤ 720 °C
- Profit ≥ 0
- The optimiser returns the most profitable plant configurations that respect these physical boundaries, and the front is dominated by no single benchmark operating point (it improves on the reference case in both profit and CO2).
Visualising results: the optimisation output is plotted as 2D projections of the Pareto front:
- Profit vs. CO2 Emission — the environmental cost of higher profit, with a knee point marking the best-value operating region.
- Operator decision map — Profit vs. CO2 coloured by Propylene production, so all three objectives are visible at once.
- Ishaan Ghosh
- FOSSEE Summer Fellowship, IIT Bombay
- Mentor: Priyam Nayak · Guide: Prof. Prabhu Ramachandran
- Developed as part of computational modelling research for chemical-engineering process optimisation.