La modellazione dei processi produttivi presenta delle sfide quando le misurazioni avvengono su scale temporali diverse. Un'azienda di questo tipo produce vetro contenente SeO2, la cui volatilità alle alte temperature di fusione causa una significativa evaporazione, che viene catturata da un filtro antipolvere. A complicare le cose, la polvere carica di SeO2 è tossica e pone delle sfide per lo smaltimento. Prevedere il contenuto di SeO2 nella polvere consente di riciclarla nel processo produttivo, promuovendo una produzione sostenibile, circolare e a zero rifiuti e una riduzione dei costi.
Il processo di produzione del vetro è continuo, con letture dei sensori ogni minuto per le variabili di input. Tuttavia, la misurazione del contenuto di SeO2 nella polvere avviene a intervalli più lunghi, richiedendo un accumulo di polvere sufficiente per l'omogeneizzazione. In questa presentazione, illustriamo lo sviluppo di un modello predittivo per la concentrazione di SeO2 nella polvere utilizzando un set di dati limitato. Per garantire che i parametri di processo siano mediati per tutta la durata del campionamento della polvere, utilizziamo simulazioni Monte Carlo, sfruttando la variabilità dei parametri di processo.
Con JMP Pro, descriviamo i metodi di raccolta e preparazione dei dati, nonché il successivo utilizzo dei dati simulati per costruire modelli predittivi per la concentrazione di SeO2. Esploriamo la potenziale applicabilità di questa metodologia a settori che affrontano sfide simili, come quello chimico o biotecnologico, dove è comune modellare processi con scale temporali e incertezze diverse.
Ciao. Mi chiamo Drejc Kopac e questo è un lavoro svolto in collaborazione con il mio collega e co-presentatore, Matej Emin, e il professor Philip Ramsey.
L'intervento verte sulla previsione degli effluenti derivanti dal processo di fusione del vetro, concentrandosi sulla modellazione di un processo continuo con campionamento sparso in lotti di polvere del filtro.
Questo progetto è stato realizzato in collaborazione con il più grande produttore di vetro sloveno e l'obiettivo era quello di creare un modello predittivo della composizione della polvere di un filtro per riciclarla.
Per prima cosa, visualizziamo ciò che stiamo modellando. Ecco lo schema 3D di un forno per la fusione del vetro, e possiamo vederne le dimensioni rispetto a un essere umano. La materia prima entra nel forno e viene fusa, e poi il vetro scorre lungo i canali fino alla linea di produzione. Possiamo vedere due scambiatori di calore in cui i gas di scarico vengono scambiati con il filtro.
Possiamo anche vedere due bruciatori, uno a sinistra e uno a destra, che si attivano periodicamente. Questa periodicità induce una variabilità a breve termine nel set di dati. Le condizioni in questa fornace e le proprietà dei gas di combustione sono cruciali per il nostro lavoro, ed è su questo che ci concentreremo.
Per mettere le cose in prospettiva, ecco uno schema di processo raffigurato in un'ottica di economia circolare. Come accennato, i gas di combustione attraversano lo scambiatore di calore. Qui vengono raffreddati e poi catturati dal filtro elettrostatico. Qui il gas viene ulteriormente raffreddato e miscelato con idrossido di calcio, che lo purifica.
I gas di scarico depurati escono dal filtro attraverso il camino, mentre le polveri vengono raccolte in grandi sacchi. È qui che entriamo nel vivo della questione. È possibile riciclare questi 300-400 chilogrammi di polveri al giorno nella caldaia invece di smaltirli? Per riciclarli, dobbiamo conoscere la composizione delle polveri del filtro. Questa è stata la parte principale del progetto.
Il problema principale con questa polvere e il suo riciclaggio è il selenio. Il selenio agisce come decolorante del vetro. Il biossido di selenio è volatile alle temperature di fusione del vetro, quindi evapora rapidamente e viene successivamente catturato dal filtro. Questa polvere del filtro è trattata come rifiuto pericoloso, quindi il suo smaltimento è costoso. La domanda è: esiste un modo per riciclare questi 300-400 chilogrammi di polvere al giorno nel forno? Devo dire che non si tratta di una quantità enorme, considerando le circa 150 tonnellate di vetro prodotte al giorno.
Il problema è che il colore del vetro è estremamente sensibile alla concentrazione di selenio. Ciò significa che la concentrazione di selenio dovrebbe essere nota con precisione. Le misurazioni e l'analisi chimica di questa polvere sono costose e richiedono molto tempo. In questo caso, la possibile soluzione sarebbe quella di costruire un modello predittivo. Ma le sfide sono numerose.
In primo luogo, il processo di produzione del vetro è continuo, con letture dei sensori ogni minuto. Sono presenti oltre 40 sensori online che misurano diverse temperature, consumo di gas, potenza del riscaldatore, velocità di fusione del vetro, ecc. La sfida in questo caso era come costruire un modello predittivo per il biossido di selenio nel campione di polvere basato su un campionamento sparso di polvere del filtro, su diverse scale temporali di questo campionamento e, naturalmente, su numerosi parametri di processo.
Di solito, quando iniziamo un progetto come questo, l'approccio più tipico è raccogliere dati storici, incontrarci con gli esperti dell'azienda, come i responsabili degli impianti di processo, e fare uno screening iniziale dei dati e un brainstorming. Noi lo abbiamo fatto. Abbiamo raccolto dati storici per oltre un anno e abbiamo cercato di identificare i parametri influenti con esperti del settore.
Qui a destra, un po' sfocato ovviamente, possiamo vedere un tipico grafico multivariato che mostra le correlazioni tra i parametri. Questo grafico spesso ci aiuta a ridurre il numero di parametri influenti nel modello.
Spesso, ottenere un set di dati di questo tipo, visualizzabile e analizzabile, richiede molto tempo, soprattutto quando si tratta di dati industriali. Vi mostrerò brevemente come si presentano i dati grezzi dei report SCADA.
Ad esempio, questo è un tipico report aziendale relativo ai dati di un giorno. Si può notare che i parametri non sono disposti in colonne come siamo abituati, ma in righe. Scorrendo verso il basso, si noterà che il nome del parametro cambia ogni minuto e il valore è scritto qui. Scorrendo verso il basso, si noterà che ci sono più di 30 o 40 parametri pari scritti in righe anziché in colonne.
D'altra parte, c'è una seconda parte di questo set di dati che è in realtà già ordinata in colonne. Qui potete vedere che i parametri sono effettivamente inseriti in colonne. La sfida qui era riordinare o riformattare questo set di dati per includerlo in JMP. Abbiamo scritto uno script semplice, diciamo JSL. Ve lo mostrerò brevemente.
Questo JSL, questo script del linguaggio di scripting JMP, entra in questo ciclo. Qui, ogni 24 ore di dati è un altro fattore di processo. Questo in realtà esegue un ciclo su questo set di dati e lo inserisce nelle colonne, quindi collega le colonne dalla seconda parte di questo set di dati. Questo è lo script che abbiamo usato. Alla fine, siamo arrivati a questo bel set di dati, che è ordinato come siamo abituati. In colonne, con tutti questi parametri qui, ovviamente, sono resi anonimi. È a intervalli di un minuto. Questa è la prima parte. Come ho detto, spesso ci vuole un po' di tempo per arrivare a questa fase.
Inizialmente, è importante visualizzare i dati in modo da avere un'idea di cosa potrebbero dirci. Qui possiamo vedere una serie di grafici X e Y. Questo ci mostra chiaramente una variabilità a breve termine nei dati. Questa variabilità a breve termine, questi picchi di 20 minuti, corrispondono all'intervallo di 20 minuti tra il cambio del lato del bruciatore, quindi a sinistra o a destra. La maggior parte della variabilità a breve termine si verifica durante questo intervallo di 20 minuti. Questa è stata un'informazione importante per noi quando abbiamo campionato la polvere del filtro.
Per confermare questo periodo di 20 minuti nel set di dati, utilizziamo la piattaforma di serie temporali di JMP. Questo ci ha mostrato chiaramente questa periodicità e questo ritardo di +/- 20 minuti dovuto all'accensione del bruciatore sinistro o destro. Insieme ad altre competenze specifiche, come il tempo di transizione dell'effluente dalla fusione al filtro, che è di circa 15 secondi, e il tempo di estrazione della polvere dal filtro, che è di circa un minuto, sono state utilizzate in seguito per combinare campioni di polvere, misurazioni e parametri di processo. Questi passaggi sono stati piuttosto cruciali all'inizio, prima ancora del campionamento della polvere.
Sulla base di tutte queste informazioni, delle competenze specialistiche e dei test precedenti, anch'essi condotti internamente, uno dei parametri più influenti per il contenuto di biossido di selenio dovrebbe essere la portata del filtro in vetro. Pertanto, abbiamo richiesto al produttore il piano tariffario del filtro, che viene preparato con un mese di anticipo, e abbiamo selezionato le date migliori o ottimali per il campionamento fisico della polvere del filtro. Abbiamo mirato a valori minimi, massimi e, in qualche modo, intermedi per la portata. In questo modo, cerchiamo di coprire in modo ottimale lo spazio dei parametri.
Una volta individuate le date in cui la linea di produzione avrebbe funzionato a tali ritmi, ci siamo recati in fabbrica, abbiamo raccolto la polvere e l'abbiamo omogeneizzata. Successivamente, la polvere è stata inviata all'istituto esterno, dove è stata eseguita l'analisi ICP OES per determinarne la composizione. Eravamo particolarmente interessati al contenuto di biossido di selenio.
Ecco alcune fotografie del processo. A destra, questa non è la tipica giornata nell'ufficio di un data scientist. Ma questo compito è stato svolto da noi stessi, poiché era un passaggio cruciale per ottenere dati di qualità. Non volevamo rischiare di avere campioni confusi o, non so, etichettati in modo errato o simili.
Una volta ricevuti i risultati dall'istituto esterno, li abbiamo effettivamente inseriti nel set di dati. Qui potete vedere il set di dati originale, ma ora c'è una colonna chiamata "Risultati IGR". In pratica, in alcuni periodi, ci sono valori che corrispondono al contenuto di biossido di selenio durante i periodi in cui catturiamo questa polvere.
Una volta ottenuto questo set di dati, possiamo iniziare a modellarlo. Abbiamo iniziato con un modello molto semplice. Abbiamo utilizzato nove punti dati in cui è stato determinato il biossido di selenio. Questi punti dati sono molto... Siamo molto fiduciosi riguardo a questi punti dati perché l'ora e la data sono ben note e la polvere è stata costantemente omogeneizzata.
Inoltre, erano disponibili anche altri punti dati, cinque, ottenuti da vari campionamenti con big bag effettuati internamente. Tuttavia, il tempo di questi cinque punti dati è stato determinato solo approssimativamente a causa del campionamento grossolano della polvere dai big bag. Ci aspettiamo che questi punti dati inducano una maggiore incertezza nel modello. Tuttavia, senza includere questi punti aggiuntivi, i modelli sono statisticamente non significativi. Dobbiamo estendere il set di dati anche con questi punti.
Ci siamo concentrati su tre parametri di input, ovvero il flusso di gas naturale, la velocità di aspirazione del vetro e la potenza dei riscaldatori elettrici. Questi parametri sono stati considerati i più influenti e hanno mostrato valori approssimativamente costanti durante il campionamento. In questa sede, ho accennato al fatto che abbiamo preso i valori mediani di questi parametri durante il periodo di campionamento delle polveri.
Ecco anche i grafici di quei parametri alle date in cui è stata effettuata la campionatura della polvere. Abbiamo utilizzato un semplice metodo standard dei minimi quadrati per la modellazione e abbiamo incluso le interazioni di secondo ordine. Il risultato finale è stato il seguente modello. Ve lo mostrerò in JMP. Questi sono i nove punti ottenuti dal nostro campionamento della polvere e cinque punti aggiuntivi dal campionamento big-bag. Si tratta di un modello semplice e pulito, che include le interazioni di secondo ordine.
Naturalmente, possiamo vedere che il nostro R² è buono, quindi prossimo a uno. Il valore P è basso. Si potrebbe dire che questo è un modello statisticamente significativo. Inoltre, il valore P per i fattori è basso. Ciò significa che tutti quei fattori sono importanti. Ma il problema o le criticità di questo semplice modello possono essere viste nel profiler qui in basso. Mi limiterò a ingrandire un po' in questo modo.
Il problema principale, riscontrato anche dagli esperti dell'azienda, era la forte correlazione tra il contenuto di biossido di selenio, il flusso di gas naturale e la potenza del riscaldatore. Se ci spostiamo agli estremi di questi valori, possiamo osservare che il contenuto di biossido di selenio risulta sovrastimato o sottostimato.
Inoltre, possiamo osservare che, considerando il parametro del tasso di estrazione, se ci spostiamo agli estremi, come un tasso di estrazione di 130 tonnellate al giorno, la barra di errore aumenta, ovvero l'incertezza sulla previsione del biossido di selenio aumenta notevolmente. Questi erano già alcuni avvertimenti del modello che ci avrebbero aiutato a ritenere che non si tratti di un modello statisticamente significativo. Quindi, un modello semplice non ha previsto molto bene le nuove misurazioni. C'erano alcune previsioni fisicamente irrealistiche.
Abbiamo notato che forse anche altri parametri avrebbero potuto influenzare il livello di biossido di selenio, ma non abbiamo potuto includerli data la scarsità del set di dati. Come accennato, il profiler di previsione ha indicato grandi incertezze ai valori estremi dello spazio dei parametri. Per ottenere un modello migliore, avremmo dovuto considerare più parametri di processo.
Naturalmente, eravamo limitati a sole nove misurazioni e non volevamo inviare altri campioni di polvere per l'analisi, perché richiedevano molto tempo e denaro. Ci siamo chiesti se le informazioni sulla variazione del processo potessero apportare informazioni aggiuntive al set di dati esistente, perché anche altri parametri avrebbero potuto avere un impatto.
Qui, abbiamo iniziato a pensare in termini di variabilità dei dati. Innanzitutto, la determinazione del biossido di selenio da parte del laboratorio esterno presenta un'incertezza di misura. Questa è già una variazione nella misurazione, che possiamo utilizzare. Inoltre, per ciascuno di questi intervalli di campionamento di 20 minuti, ci sono 18 punti dati da letture del sensore di 18 minuti, escludendo ovviamente i due minuti durante l'accensione del bruciatore. Queste 18 misurazioni presentano le relative distribuzioni. Qui, ne mostro solo cinque per vedere come si presentano.
La nostra idea era che, date queste medie di distribuzione, in realtà utilizzassimo le mediane, poiché alcune distribuzioni erano leggermente asimmetriche. Date le dispersioni della distribuzione, possiamo selezionare casualmente valori da queste popolazioni di partenza e generare così un set di dati sintetico utilizzando un approccio Monte Carlo.
Insieme ad esperti di processo, abbiamo considerato 13 parametri di input tra tutti questi parametri di processo. Questi 13 sono stati considerati i più influenti. Inoltre, erano distribuiti normalmente, o almeno approssimativamente normalmente durante i periodi di campionamento. Non presentavano valori anomali, artefatti anomali e derive temporali a breve termine. Questa era la nostra richiesta iniziale: avere fattori con distribuzioni ottimali.
Un aspetto molto importante a cui abbiamo dovuto prestare attenzione è stato preservare le correlazioni tra i fattori, per mantenere inalterata la relazione tra i parametri di processo. Si può immaginare che, avendo due parametri altamente correlati, e scegliendo un valore casuale di uno dei due parametri come molto alto, anche l'altro parametro, di cui si sceglie un valore casuale, dovrebbe essere sbilanciato verso valori più alti. Queste correlazioni tra i parametri dovrebbero essere preservate nella selezione casuale, nell'approccio Monte Carlo, ovviamente. Lo abbiamo fatto tramite matrici di covarianza.
Probabilmente conoscete questo metodo multivariato, l'analisi multivariata in JMP. Posso mostrarvelo. Una volta ripulito questo set di dati, per ogni misurazione della polvere, possiamo costruire questi grafici multivariati, che ora sono qui. Sono stati eseguiti nove grafici multivariati o analisi. Per ciascuna di queste analisi, possiamo estrarre questa matrice di covarianza. Questo ci fornisce informazioni su come questi parametri sono correlati tra loro.
Per ogni campionamento di polvere, viene generata la matrice di covarianza corrispondente. Abbiamo esportato queste matrici. Qui abbiamo usato Python perché in NumPy esiste un metodo chiamato "normale multivariata". Lo abbiamo usato per generare distribuzioni normali multidimensionali, tenendo conto di tali covarianze. Sono sicuro che questo potrebbe essere fatto anche in JMP con qualche script, ma per noi è stato un po' più facile farlo in Python perché siamo un po' più abituati a usare questi metodi lì.
Utilizzando questo, possiamo sostanzialmente generare un set di dati sintetico. Lo abbiamo fatto utilizzando quelle matrici. Sono stati generati cinquecento valori sintetici per ogni campione di polvere scelto. Abbiamo utilizzato nove punti dati, diciamo nove intervalli, di quei campioni affidabili che abbiamo raccolto noi stessi e anche omogeneizzato.
Ma poi abbiamo utilizzato anche un'ulteriore misurazione, ricavata da un campionamento big-bag, che presentava un contenuto di biossido di selenio molto basso. Questo è stato necessario per estendere lo spazio dei parametri verso valori bassi di biossido di selenio. Vi mostrerò come appare.
Questi sono i set di dati simulati o sintetici. Potete vedere 5.000 righe, quindi 500 volte 10. Naturalmente, le correlazioni tra i parametri qui vengono preservate. Lo abbiamo verificato. Questo è, diciamo, un set di dati molto valido per una modellazione più dettagliata, perché ora abbiamo dati sufficienti a disposizione. Abbiamo subito pensato di modellarlo con reti neurali. L'abbiamo fatto e i risultati hanno mostrato un buon modello statistico.
Utilizziamo una semplice rete neurale con tre funzioni TanH e un livello nascosto, quindi un approccio molto semplice. I valori R², sia per l'addestramento che per la convalida, sono molto elevati. A proposito, abbiamo suddiviso quei 5.000 punti dati in due terzi per l'addestramento e un terzo per la convalida. Inoltre, i grafici "Effettivo per Previsto" mostrano un modello statisticamente significativo.
Abbiamo quindi esportato questo modello. Torniamo a JMP. Potete cliccare qui e salvare le formule di previsione. Ma ancora più importante... torno alla presentazione. Ancora più importante, volevamo testare questa previsione del modello con altri dati di campionamento big-bag in nostro possesso. Utilizziamo questi dati di campionamento big-bag come punti di convalida.
Qui abbiamo una misurazione effettiva del biossido di selenio, e qui il valore previsto del biossido di selenio. Rappresentando questi due numeri nel grafico "Effettivo per Previsto", abbiamo visto che il modello prevede abbastanza bene altre misurazioni. Quindi solo un sacco grande, quindi il numero uno, due campioni da questo sacco grande, sono leggermente sovrastimati. La retta "Effettivo per Previsto" qui ha un R² di 0,86 basato su queste misurazioni. Eravamo piuttosto soddisfatti di questo risultato e il passo successivo è stato presentarlo al personale aziendale.
Ancora più importante, lo presentiamo con questo profiler. In questo profiler, abbiamo richiamato un simulatore, che potete trovare sotto questo triangolo rosso. Qui, invece di avere un singolo valore del contenuto di biossido di selenio, che ora è previsto in base a questi 13 parametri di processo, abbiamo effettivamente cercato di simulare la distribuzione di questo biossido di selenio utilizzando le incertezze su questi parametri di processo durante il periodo in cui questo contenuto è stato inserito nel big bag. Qui determiniamo effettivamente la media e la deviazione standard di questi parametri di processo durante questo intervallo. Sulla base di questi valori, qui, potremmo effettivamente simulare la previsione per il biossido di selenio.
Inoltre, possiamo vedere in questo profiler che le risposte sono più complesse di un semplice comportamento lineare o forse quadratico. Ci sono molte interazioni all'interno di questi parametri. Ma, cosa ancora più importante, il simulatore per la dispersione predittiva ci ha fornito questa distribuzione del biossido di selenio in questo lotto, in questo grande sacco. Infatti, la piattaforma di distribuzione in JMP ci ha mostrato che la distribuzione normale a due miscele è la migliore per questo caso. Siamo stati molto soddisfatti di questo risultato perché ci ha mostrato che questa distribuzione corrisponde effettivamente al valore misurato in seguito.
Il passaggio cruciale che ho menzionato prima è stato quello di tenere conto delle correlazioni, ovvero della covarianza tra i fattori. Abbiamo testato cosa succede se non includiamo queste correlazioni nella simulazione Monte Carlo. Qui potete vedere il grafico Effettivo/Previsto delle stesse misurazioni, ma dove abbiamo simulato il set di dati sintetici senza utilizzare queste covarianze. Possiamo vedere che, innanzitutto, l'intervallo di questa previsione del biossido di selenio è irrealistico, è troppo ampio e inoltre i punti sono molto più dispersi.
Confrontando i due modelli, quello corretto in blu e quello sbagliato, in cui non consideriamo la correlazione come un fattore di rischio per il rosso, possiamo vedere che quello blu è molto migliore. Naturalmente, mostra previsioni molto più realistiche per il biossido di selenio.
In conclusione, nonostante il campionamento di polvere scarso e il set di dati iniziale ridotto, abbiamo ricavato un utile modello predittivo per il contenuto di biossido di selenio nella polvere del filtro. Abbiamo visto che l'approccio Monte Carlo era effettivamente quello richiesto, considerando la complessità del processo e il set di dati limitato. Inoltre, la modellazione a rete neurale che abbiamo utilizzato era in effetti... Abbiamo testato anche altri metodi, ma il modello a rete neurale si è dimostrato migliore perché quei parametri non sono in realtà altamente correlati, ma interagiscono tra loro. Quindi la rete neurale ha preservato queste interazioni.
La capacità predittiva del modello è stata testata con nuovi campionamenti di polvere, che hanno mostrato previsioni realistiche e di utilità pratica. La conclusione più importante è che questo approccio ha portato a un recupero del 100% della polvere di scarto del filtro in un tentativo pilota. In questo modo, è stato sostituito il 60% di una costosa materia prima primaria per la decolorazione del vetro e, naturalmente, è stato eliminato completamente il costo dello smaltimento della polvere del filtro.
Ecco fatto. Grazie mille.