
# Python | # Spark | # Flask | # MySQL | # AWS |
# SQL | # Hadoop | # Django | # PostgreSQL | # Azure |
# VBA | # Kafka | # SQLite | # GCP | |
# Flink | # MongoDB | # cloud on-premises |
time: | June 2017 – January 2021 |
role: | Data Scientist |
company: | Grupa Azoty |
Grupa Azoty, a state-owned company, produces fertilizers in large chemical plants that operate 24 hours a day, 7 days a week. Stopping such a plant is extremely costly. The process of shutting down and restarting alone can result in expenses of several million PLN, with the primary cost being the consumption of natural gas. Chemical plants are shut down to conduct planned repairs, and these stoppages are planned well in advance to organize specialized repair companies, spare parts, and backup production.
In this situation, any unplanned stoppage of these large chemical plants would result in long downtimes and a significant decline in the economic efficiency of the facility. The management of Grupa Azoty expected the creation of a system capable of identifying malfunctions and any symptoms that could indicate the time and place of upcoming failures. Experts understood that only an intelligent predictive system for identifying failures could effectively support the organization of planned shutdowns for chemical plants.
PROJECT IMPLEMENTATION
I began the project by collecting data from one selected chemical plant. The data was transmitted through a system called „InTouch,” which monitored parameters such as atmospheric conditions, temperature, pressure, vibrations, and more. This information was recorded as time series data with varying intervals, from a few seconds to several minutes. My first task was to standardize the data intervals. Initially, I used SQL to create a table, as the data was stored in a relational database. I then implemented Apache Kafka to collect streaming data.
After building a data lake with selected data from several weeks, I started searching for anomalies in the readings from the monitoring systems. The challenge was that an upcoming failure was indicated by a complex pattern formed from data collected from various sensors. Furthermore, parts of the chemical plant often degraded gradually, requiring long-term monitoring to detect subtle changes in performance.
It quickly became apparent that the scale of data collection was so large that I had to implement Apache Hadoop and Apache Spark infrastructures to conduct long-term analysis and process the large datasets. Autoregressive models such as ARMA and ARIMA proved very useful. The scope of the work extended far beyond typical data scientist tasks.
Different types of plant components required different diagnostic methods. Ultimately, the project was not completed because the scale of the research exceeded the time I had available to develop the predictive model.
PROJEKT: WYKRYWANIE ANOMALII W DZIAŁANIU INSTALACJI CHEMICZNYCH
Grupa Azoty, będąca spółką skarbu państwa, produkuje nawozy sztuczne w ogromnych instalacjach chemicznych, które działają 24 godziny na dobę, 7 dni w tygodniu. Zatrzymanie takiej instalacji jest niezwykle kosztowne. Sam proces zatrzymania i ponownego uruchomienia wiąże się z wydatkami rzędu kilku milionów złotych, a głównym kosztem jest zużycie gazu ziemnego. Instalacje chemiczne są zatrzymywane w celu przeprowadzenia planowanych napraw. Tego typu zatrzymania są planowane z dużym wyprzedzeniem, aby zorganizować specjalistyczne firmy naprawcze, części zamienne oraz zabezpieczyć produkcję zastępczą.
W związku z tym każde nieplanowane zatrzymanie instalacji oznaczałoby bardzo długie przestoje i znaczące pogorszenie efektywności ekonomicznej zakładu. Zarząd Grupy Azoty oczekiwał stworzenia systemu, który byłby w stanie identyfikować usterki oraz wszelkie symptomy wskazujące na czas i miejsce nadchodzącej awarii. Eksperci zdawali sobie sprawę, że tylko inteligentny system predykcyjny do wykrywania anomalii mógłby efektywnie wspierać planowanie zatrzymań instalacji.
REALIZACJA PROJEKTU
Projekt rozpocząłem od zebrania danych z jednej wybranej instalacji chemicznej. Dane były przesyłane za pomocą systemu „InTouch”, który monitorował parametry takie jak warunki atmosferyczne, temperatura, ciśnienie, wibracje i inne. Informacje te były rejestrowane jako szeregi czasowe, które miały różną gradację – od kilku sekund do kilku minut. Moim pierwszym zadaniem było ujednolicenie tych danych pod względem okresów gradacji. Na początku użyłem SQL do stworzenia tabeli, ponieważ dane były składowane w relacyjnej bazie danych. Następnie wdrożyłem Apache Kafka do zbierania danych strumieniowych.
Po stworzeniu data lake z wybranymi danymi z kilku tygodni, zacząłem poszukiwać anomalii w odczytach z systemów monitorujących. Problemem był fakt, że o nadchodzącej awarii decydował skomplikowany wzorzec utworzony z danych pochodzących z różnych sensorów. Dodatkowo, poszczególne elementy instalacji chemicznych często ulegały stopniowej degradacji, co oznaczało konieczność długotrwałej obserwacji, aby zidentyfikować subtelne zmiany w ich działaniu.
Szybko okazało się, że skala zbieranych danych była tak ogromna, że konieczne było wdrożenie infrastruktury Apache Hadoop oraz Apache Spark do prowadzenia długotrwałych analiz i przetwarzania dużych zbiorów danych. Bardzo pomocne okazały się modele autoregresyjne, takie jak ARMA i ARIMA. Zakres prac znacząco wykraczał poza standardowe działania data scientist.
Różnorodność elementów instalacji wymagała zastosowania różnych metod diagnostycznych. Ostatecznie projekt nie został ukończony, ponieważ rozmiar badań przekroczył czas, który miałem do dyspozycji na opracowanie modelu predykcyjnego.