Polypropylene Plant 3 (PP3) is the third polypropylene production unit at Slovnaft. The PP3 unit processes propylene, a by-product of refining processes, to produce isotactic polypropylene granules. These granules are a versatile thermoplastic polymer widely used across various industries, including packaging, automotive parts, textiles, and more.

Slovnaft like any other modern chemical plant rely on efficient process control to ensure safety, product quality, and energy optimization.

Slovnaft has recently finished Modernization of the PP3 Unit. They Increased production capacity, lowered emissions and improved safety standards.

The polymerization reaction is exothermic, meaning it releases heat, which causes the reactor temperature to rise. This heat must be carefully controlled to ensure safe and efficient operation. Temperature regulation is achieved through cooling valves and a heat exchanger system, which remove excess heat and maintain optimal conditions for the reaction.

As part of the project, I focused on modeling and system identification of both the reactor and the heat exchanger, which are critical components for maintaining process stability and control.

In this project, I focused on designing discrete-time models of the reactor and heat exchanger using regression-based approaches. Specifically, I applied ARX (AutoRegressive with eXogenous input), ARMAX (AutoRegressive Moving Average with eXogenous input), and FIR (Finite Impulse Response) models to capture the dynamic behavior of the system.

All model identification was performed using SIPPY, an open-source Python library designed for identifying dynamic systems from data. SIPPY works with discrete-time signals, supports multiple model structures, and is well-suited for tasks such as simulation, prediction, and model validation.

To improve model accuracy, I divided the dataset into segments. This segmentation approach allows the models to learn from different parts of the process behavior, helping to reduce over-fitting and improve generalization.

Below is an example of one training segment, where I performed both prediction and simulation using all the regressive models (ARX, ARMAX, FIR) developed during the project. This comparison helps evaluate model performance under various dynamic conditions.

Heat Exchanger – Training Data

While our models were trained on selected training segments, it was essential to evaluate their performance on unseen data. To ensure the models generalize well and do not simply memorize the training data, a validation segment was introduced. This step allowed us to test prediction accuracy and verify the model’s ability to reflect real system behavior under different conditions.

Heat Exchanger – Validation Data

As part of our work on modeling the polypropylene reactor, I applied model evaluation metrics to assess how well our data-driven models performed. One key metric that was used was the Root Mean Square Error (RMSE). RMSE quantifies how far the model’s predictions are from the actual values.

SegmentModelPhaseRMSE PredictionRMSE SimulationStability
Train 1ARXTraining8.81E-05Unstable
Train 1ARMAXTraining1.05E-041.76E-03Stable
Train 1FIRTraining9.64E-049.69E-04Stable
Train 2ARXTraining6.76E-058.22E-04Stable
Train 2ARMAXTraining8.37E-05Unstable
Train 2FIRTraining6.66E-046.70E-04Stable
Validation 1ARXValidation1.87E-031.23E-03Stable
Validation 1ARMAXValidation1.86E-03Unstable
Validation 1FIRValidation1.79E-049.37E-04Stable

To make the process of system identification more accessible and user-friendly, I developed an open-source application using the Gooey Python library. This tool combines the flexibility of a Command Line Interface (CLI) with the convenience of a Graphical User Interface (GUI).

In conclusion, I achieved the understanding of the polypropylene polymerization process, applying regressive models, working with discrete-time models, and developing an application with both GUI and CLI for broader accessibility.

Some of the future improvements I discussed are already in progress, for example continuous-time system identification. I also want to focus on integrating neural networks, improving Gooey working as a human-machine interface, refactoring into object-oriented code for modularity and future scalability and enhancing advanced process visualization (APV).

This work represents a solid foundation for future development I want to be a part of.

Categories: Projects