Nella raffinazione del petrolio, una tecnica di ottimizzazione fondamentale consiste nel fornire un controllo continuo in linea delle variabili di qualità con campionamenti poco frequenti. Ciò richiede un modello predittivo empirico della variabile di qualità basato sulle condizioni del processo in linea. Questo modello viene quindi utilizzato come variabile inferita, che può essere utilizzata in un algoritmo di controllo continuo.
Esistono diverse insidie in cui i modelli con statistiche di adattamento forti non riescono a prevedere accuratamente la variabile di qualità quando implementati online. Molte delle cause di errore del modello sono al di fuori del controllo dell'ingegnere, come condizioni di processo anomale e guasti dei segnali di ingresso. È possibile costruire un modello predittivo che minimizzi l'impatto delle esternalità di processo, ma spesso questo può compromettere l'accuratezza del modello. La sfida dell'ingegnere è quindi costruire modelli predittivi che bilancino accuratezza e affidabilità.
Questo articolo esplora diverse fasi del processo di sviluppo del modello che utilizza JMP per costruire modelli predittivi adatti al controllo di processo online. Utilizzando un componente aggiuntivo personalizzato, è possibile aggregare i dati di processo grezzi in un formato che ne filtra la variabilità. I dati aggregati vengono filtrati utilizzando strumenti come Distribution e Screen Outliers per verificare la presenza di valori anomali e intervalli operativi. Gli input del modello vengono trasformati con formule di colonna per ridurre ulteriormente la variabilità del processo. Infine, il modello viene costruito utilizzando la regressione generalizzata in Fit Model per confrontare gli algoritmi di regressione e ridurre al minimo gli input, migliorando l'affidabilità. Il risultato finale è un modello che fornisce un'accuratezza sufficiente per ottimizzare continuamente il processo in base a un vincolo di qualità, pur rimanendo robusto contro i disturbi di processo/strumentazione.
Ciao, mi chiamo Andrew Weaver. Sono un ingegnere applicativo di controllo presso ExxonMobil. Oggi esploreremo come utilizzare JMP per creare modelli predittivi per il controllo dell'ottimizzazione online. Nelle nostre unità chimiche e di raffinazione, utilizziamo controllori di processo avanzati per garantire il controllo in tempo reale delle unità, sia per mantenere le unità di processo entro i limiti di qualità, sia per promuovere l'ottimizzazione del prodotto riducendo gli scarti.
Questi controllori avanzati si basano su misurazioni in tempo reale per avere una risposta immediata al processo, basata sul feedback proveniente dai dati dei nostri sensori. Una delle principali sfide nella creazione di questi modelli di controllo è che molte delle nostre variabili di qualità vengono effettivamente rilevate tramite un campione di laboratorio e non dispongono di misurazioni continue. Nell'esempio mostrato qui, abbiamo un valore di laboratorio che viene rilevato ogni due ore, ma come mostrato nel grafico in basso, può verificarsi una variazione del processo prima del prelievo del campione. E il nostro controllore avrà bisogno di informazioni per sapere che tale variazione del processo si sta verificando.
La soluzione a questo problema è costruire un modello inferenziale predittivo che utilizzi altri sensori nel processo per costruire un modello predittivo che fornisca al controller online informazioni su quando si verificano queste variazioni di processo nella variabile qualità. Questo consente al nostro modello di apportare modifiche in tempo reale senza attendere i risultati di laboratorio per vedere gli effetti delle modifiche di controllo.
Costruire questo modello può rivelarsi a volte una strategia complessa, e richiede un attento equilibrio tra la conoscenza del proprio dominio ingegneristico e le tecniche di modellazione statistica. Oggi illustreremo in dettaglio come costruire questi modelli in JMP e alcune delle sfide specifiche che si presentano durante la creazione di modelli per il controllo di processo online. Oggi vorrei presentare un esempio semplificato di un processo in cui si potrebbe vedere un modello inferenziale nel controllo di processo online.
Si tratta di una colonna di distillazione che separa un flusso misto di propano e butano nei suoi due componenti. La colonna di testa sarà costituita principalmente da un flusso di propano che bolle nella torre, mentre la colonna di fondo sarà costituita prevalentemente da un flusso di butano che condensa nella torre. La variabile di qualità che vogliamo misurare è la concentrazione di propano nella torre di testa, prelevata tramite un campione di laboratorio.
Prima di iniziare qualsiasi modellazione, è importante comprendere alcune delle caratteristiche fisiche del processo, poiché queste influenzeranno le scelte di modellazione che faremo. Ad esempio, gli effetti della temperatura sulla torre sono molto importanti per gli effetti della distillazione che separa la miscela di butano e propano. All'aumentare della temperatura nella torre, ci aspettiamo che componenti più pesanti, in questo caso il butano, raggiungano la torre e la portino a ebollizione, sporcando il flusso di propano di cui stiamo cercando di effettuare le misurazioni.
Ciò significa che la concentrazione di propano nei gas di testa sarà ridotta. Questo ci aiuterà a informare il modello che qualsiasi effetto della temperatura osservato nel nostro modello predittivo dovrebbe avere un segno negativo con la concentrazione di propano nei gas di testa. Inoltre, disponiamo di dati sulla pressione, che influisce anche sulla distillazione modificando i punti di ebollizione di entrambi i componenti. Anche questo sarà importante da considerare all'inizio della modellazione.
Un'ultima nota riguarda le misurazioni di portata sull'unità. Ne abbiamo diverse e vedremo più avanti che la portata è fortemente correlata alla concentrazione di propano e ai prodotti di testa. In particolare, la portata di alimentazione, la portata di riflusso e la portata del prodotto di testa, rispettivamente i flussi uno, due e tre. L'utilizzo di queste misurazioni di portata nel modello senza alcuna modifica, tuttavia, comporterà alcune sfide in futuro, poiché i flussi grezzi non tengono conto di alcun accumulo nel sistema o della dinamica del sistema. Per utilizzarli, dovremo modificarli da variabili estensive, come sono attualmente, a variabili intensive. E vedremo più avanti come possiamo raggiungere questo obiettivo.
L'aspetto fondamentale dell'esplorazione del sistema fin dall'inizio è che comprendiamo il significato fisico di ciascun input prima di iniziare il processo di creazione del modello. In questo modo, abbiamo una guida chiara su come vogliamo che appaia il modello. Questo garantisce che il nostro modello rifletta il comportamento reale del processo, non solo una correlazione statistica che osserviamo nei dati. Infine, queste informazioni definiranno il modo in cui estraiamo i nostri input, quali input inseriamo in JMP, come li valutiamo, quali variabili trasformiamo e, in definitiva, cosa finisce nel modello finale.
Esaminiamo rapidamente l'intero flusso di lavoro di creazione del modello dall'inizio alla fine per farci un'idea di cosa serve per costruire un modello, quindi passeremo a JMP e analizzeremo alcuni di questi passaggi più in dettaglio. Il primo passo consiste nel selezionare un candidato inferenziale. Si tratta in genere di una variabile di qualità che ha già un campionamento di laboratorio regolare con una grande quantità di dati al suo interno e ha già definito limiti di qualità rispetto ai quali vogliamo effettuare il controllo. Nel nostro caso, si tratterà della concentrazione di propano, il laboratorio di overhead di cui abbiamo parlato nella diapositiva precedente.
Ora è il momento di iniziare un'analisi ingegneristica del processo. Abbiamo iniziato nell'ultima diapositiva, ma ci sono un paio di altre considerazioni da considerare quando si analizzano i propri dati. Innanzitutto, valutare eventuali disturbi non misurati, come variazioni della qualità dell'alimentazione, e il loro effetto sul modello finale. Inoltre, è necessario considerare in quali condizioni operative si prevede che il modello funzioni. Se si opera in un'ampia varietà di condizioni operative, il modello avrà bisogno di dati provenienti da tutte le diverse condizioni in cui l'unità funziona per essere efficace. A questo punto, si valuterà se si dispone di dati sufficienti per iniziare la modellazione o se è necessario eseguire un test dedicato sull'impianto per determinare quali dati è effettivamente necessario estrarre.
Successivamente, è possibile selezionare una variabile di input, come abbiamo fatto nella diapositiva precedente, dove abbiamo esaminato ciascuno dei potenziali input del modello e abbiamo iniziato a esaminare gli effetti fisici che dovrebbero avere sulla variabile inferita. Una volta selezionati i modelli, è il momento di raccogliere i dati. Per la nostra ingegneria di processo, questi provengono in genere da uno storico di processo che memorizza i dati per noi. Questo ci fornisce dati minuto per minuto di ciascuno dei sensori presenti nel nostro processo. Per i modelli con ampia applicabilità, è consigliabile raccogliere dai 6 ai 18 mesi di questi dati in tempo reale, a seconda della frequenza di campionamento del laboratorio. Questo garantisce di avere dati sufficienti per ottenere un modello applicabile a molte condizioni operative diverse.
Successivamente, è il momento di passare alla pulizia dei dati e alla pre-elaborazione. I dati che raccoglieremo saranno dati di un minuto e per tutti i sensori. Quindi avrete molti dati per ogni campione di laboratorio che state analizzando. Dovremo formattare questi dati in chiare coppie XY per ogni campione di laboratorio, e lo faremo più avanti utilizzando un componente aggiuntivo. Dovrete anche iniziare a esaminare lo screening dei valori anomali per segnalare i dati sospetti che avete estratto.
È importante notare che questo non dovrebbe essere fatto utilizzando test puramente statistici, poiché i valori anomali dovrebbero essere effetti fisici del processo che devono essere rimossi. Ad esempio, rimuovere i dati quando le unità non sono in funzione, quando si verificano gravi anomalie o se si determina che i dati dei sensori sono difettosi. Una volta analizzati i dati, possiamo iniziare a costruire i modelli stessi. Una tipica trappola per chi inizia a costruire questi modelli è quella di inserire tutti gli input raccolti in un algoritmo dei minimi quadrati e generare un modello in questo modo. Ma questo non funziona per un paio di motivi diversi.
Il primo è che vogliamo assicurarci che il modello abbia un effetto fisicamente giustificato per ogni input presente. Quando eseguiamo un algoritmo di regressione su più effetti, è molto probabile che vengano inseriti nel modello artefatti che sono buoni o ben adattati statisticamente, ma che non esistono nella realtà. L'ingegnere deve analizzare i segnali e l'entità di ciascuno degli input inseriti nel modello, per assicurarsi che corrispondano alle aspettative ingegneristiche.
La seconda e più sottile ragione è che quando inseriamo questi modelli nel controllo online, dobbiamo assicurarci che siano robusti e affidabili. Ogni input che inseriamo nel modello rappresenta un singolo punto di errore. Se lo strumento collegato all'input dovesse guastarsi, potremmo essere in grado di farlo. Per questo motivo, cerchiamo di ridurre al minimo il numero di input per ridurre la vulnerabilità ai guasti degli strumenti. Una volta costruito un modello, è il momento di iniziare i test. Prima offline per confrontare le previsioni con i nostri nuovi risultati di laboratorio, poi online e integrati con il controller online. Questo è un processo molto ciclico, poiché spesso si scopre che un modello può prevedere molto bene, ma fallirà se sottoposto a controllo a circuito chiuso e l'ingegnere dovrà passare attraverso diverse iterazioni di costruzione di nuovi modelli finché non ne trova uno che funzioni sia come predittore che all'interno del sistema di controllo.
Ora che abbiamo esaminato i passaggi per costruire un modello inferenziale, apriamo JMP e analizziamo alcuni di questi passaggi in modo più dettagliato. Questa prima tabella dati mostra come apparirà il pool di dati grezzi. Si ottengono dati di un minuto per ciascuno dei sensori e per le misurazioni di laboratorio, e questi dati si riferiscono a un periodo di otto mesi. Aprendo una vista grafica di un diagramma di serie temporali della nostra variabile di laboratorio, possiamo vedere che il nostro laboratorio viene preso a intervalli di tempo non frequenti e sembra che il laboratorio abbia preso campioni ogni pochi giorni, con alcuni periodi in cui preleviamo più campioni di laboratorio in un breve lasso di tempo.
Come accennato in precedenza, il formato dei nostri dati non è realmente induttivo per la costruzione di un modello inferenziale, poiché abbiamo bisogno di relazioni XY chiare per ciascuno dei nostri risultati di laboratorio e dei nostri input. Utilizzeremo un componente aggiuntivo personalizzato per aiutarci a costruire una tabella dati semplificata che costruisca quella relazione XY per noi. Aggregheremo i dati selezionando il nostro campione di laboratorio e la nostra data, e poi ci verrà chiesto di iniziare a considerare quale tipo di intervallo di aggregazione vogliamo utilizzare sui nostri dati.
Questo componente aggiuntivo esaminerà la nostra tabella dati. Rileva quando un valore di laboratorio è... Quando il valore di laboratorio è cambiato, quindi calcola la media di ciascuno degli input attorno alla variazione della variabile di laboratorio. Questa operazione può essere personalizzata a livello globale o per ogni singolo input. Inoltre, questa media può essere eseguita con un approccio retrospettivo, partendo dal momento in cui è stato prelevato il campione di laboratorio e risalendo a X minuti prima, oppure con un approccio centrato, prendendo il campione di laboratorio e analizzando un segmento di dati prima e dopo il prelievo del campione.
In definitiva, tutto dipenderà da quanto vi fidate della registrazione temporale dei campioni di laboratorio e dalla variabilità del processo. Nel nostro esempio, imposteremo un intervallo globale di 60 minuti per tutte le variabili. Questo ci darà buoni risultati aggregati. L'esecuzione richiede un paio di minuti. Quindi passiamo direttamente al risultato, che è questa tabella dati in cui potete vedere che abbiamo una riga separata e chiara per ogni singolo risultato di laboratorio, che contiene dati X chiari per tutti i nostri input.
Ora possiamo... Utilizzando questi dati, possiamo iniziare a effettuare lo screening, la pre-elaborazione e, infine, la modellazione. Inizieremo esaminando le distribuzioni per verificare se ci sono effetti nei nostri dati che dovrebbero essere rimossi. Ricordiamo che vogliamo rimuovere i valori anomali non solo dai test statistici, ma anche assicurarci che ogni punto dati che rimuoviamo abbia un significato fisico del processo che lo sottende. Ad esempio, osservando il nostro laboratorio sulla sinistra, vediamo un paio di effetti di coda all'estremità della distribuzione, ma è troppo presto per dire se si tratti di punti dati reali o meno, o se... O se siano semplicemente punti bassi nel nostro normale ambiente di elaborazione.
Tuttavia, se osserviamo il flusso più da vicino a destra, possiamo vedere una lunga coda di flussi di alimentazione bassi e persino alcuni flussi negativi nella distribuzione. Poiché si tratta di alimentazione in ingresso all'unità, è importante catturare le esatte velocità di alimentazione a cui ci aspettiamo che l'unità funzioni normalmente. Dovremo definire una soglia di ciò che un ambiente operativo normale di flusso di alimentazione immette in questa unità. E per questo esempio, imposteremo tale soglia a 10 o a qualsiasi valore inferiore a tale soglia se l'unità non funziona in condizioni normali o è in fase di spegnimento. Selezioneremo tutti i dati prima di 10 ed escludiamoli dal nostro set di dati.
Scorrendo le altre variabili, l'unica altra variabile che salta all'occhio è il flusso tre, ovvero il flusso di riflusso che torna nella torre. Questo ha una portata molto elevata in ingresso, il che è probabilmente indicativo di un grave problema di processo, in quanto non coincide affatto con il resto della nostra finestra operativa. Per questo motivo, nasconderemo ed escluderemo anche questo set di dati.
Ora che abbiamo analizzato i nostri dati, possiamo iniziare a esaminare alcune delle relazioni e a costruirne alcune... E inizieremo a costruire alcune relazioni tra i nostri input e il nostro modello finale. Questi grafici XY sono ordinati in base al miglior adattamento, e possiamo vedere che le nostre temperature quattro e due, che si trovano sul lato superiore della colonna di distillazione, sono le più adatte al nostro laboratorio del propano.
Questo corrisponde alle nostre aspettative ingegneristiche, poiché sappiamo che la temperatura ha un effetto chiave sulla distillazione. Allo stesso modo, osserviamo forti relazioni con la nostra portata e con una delle nostre portate, ovvero la portata del prodotto, e la pressione di testa. Invece di ricorrere a JMP, proviamo a dedurre la relazione tra temperatura e pressione per la distillazione. Possiamo integrare nel modello alcuni concetti noti di equilibrio liquido-vapore, combinando pressione e temperatura in una variabile calcolata, più adatta alla costruzione del modello.
Possiamo farlo utilizzando un altro componente aggiuntivo personalizzato per creare quella che viene chiamata una temperatura compensata dalla pressione, che prenderà la temperatura e la modificherà in base all'effetto della pressione... In base a una pressione di riferimento. Questo è ciò che useremo nel modello definitivo invece della semplice temperatura grezza. Allo stesso modo, come accennato in precedenza, non possiamo usare questo flusso da solo perché è una variabile estensiva e deve prima essere trasformato in una variabile intensiva. Lo faremo creando una nuova colonna e creando un rapporto prodotto/mangime. Il rapporto in questi due flussi insieme trasformerà questi flussi da variabili estensive a variabili intensive, che sono più facili da modellare per i cambiamenti di qualità presenti nei dati. Quindi questo sarà il nostro flusso due diviso il nostro flusso uno.
L'ultimo passaggio prima di iniziare la modellazione è la creazione di una colonna di convalida, che faremo molto velocemente sovrapponendo la colonna di stratificazione. Ora possiamo iniziare a modellare sul serio. La prima tecnica che mostrerò è: se non abbiamo un'idea chiara di quali dovrebbero essere gli input del nostro modello, lo chiameremo approccio "kitchen sink", in cui inseriamo il nostro laboratorio come Y, aggiungiamo la nostra colonna di convalida e inseriamo tutti i nostri input di riga come X, e lo eseguiamo su una piattaforma di regressione generalizzata.
Esamineremo un metodo di stima del sottoinsieme migliore per vedere qual è il sottoinsieme migliore di variabili mentre esaminiamo ciascuna delle combinazioni di variabili. Come potete vedere, abbiamo un plateau in cui siamo in grado di ridurre il numero di variabili senza avere un forte impatto sull'accuratezza del modello. Come accennato in precedenza, vogliamo ridurre il più possibile il numero di variabili nel nostro modello finale per ridurre la nostra dipendenza dai sensori in caso di guasto della strumentazione.
Inoltre, qui notiamo che stiamo selezionando la temperatura due e la pressione uno come input, che come abbiamo visto in precedenza erano forti correlazioni. E abbiamo buone ragioni ingegneristiche per includerli nel modello. Questo è un buon inizio se il processo è meno compreso. Nel nostro caso, però, sappiamo esattamente quali input vogliamo inserire nel modello in base alla nostra analisi ingegneristica. Quindi, invece, li inseriremo di nuovo nel nostro laboratorio, e le nostre X questa volta saranno di nuovo le variabili calcolate utilizzando la nostra colonna di convalida.
Questa volta eseguiremo semplicemente un algoritmo standard dei minimi quadrati. Questo ci fornirà quello che sarà il modello finale che utilizzeremo nel nostro controller. Noterete che il coefficiente r-quadrato lascia un po' a desiderare. Ma questo è normale per l'esecuzione di modelli su grandi sistemi di processo, poiché c'è molta variazione nelle dinamiche della strumentazione che stiamo cercando di elaborare. A volte è molto difficile ottenere modelli con un'accuratezza molto elevata. Ricordate, vogliamo evitare di inserire ulteriori input nel modello per aumentare ulteriormente l'accuratezza, per non rendere il modello suscettibile a guasti della strumentazione.
L'ultima cosa che vogliamo verificare per il controllo online è assicurarci che gli input siano indipendenti l'uno dall'altro e non presentino collinearità tra loro. Possiamo farlo esaminando la colonna VIF e verificando qual è il punteggio VIF per questi input. Se il punteggio VIF è troppo alto, è quasi certo che il modello fallirà quando inserito in un algoritmo di controllo. Tuttavia, poiché il VIF per questi due input è una soglia sufficientemente bassa, possiamo essere certi che entrambi i modelli saranno un predittore ragionevole per questa variabile di qualità e dovremmo essere in grado di iniziare a modellarla nel nostro software di controllo.
Torniamo ora alla presentazione. Abbiamo un modello dedotto che possiamo iniziare a utilizzare nel controllo online. Il modello appena sviluppato verrà quindi utilizzato come input nel nostro controller avanzato. Questo input fornirà al controller un feedback mentre manipola l'unità. E vedrà in tempo reale come il controller sta influenzando la variabile di qualità.
Ancora una volta, questo feedback in tempo reale ci consente di ottimizzare l'unità per ridurre al minimo la qualità del prodotto e di garantire che la qualità del prodotto rimanga sempre entro le nostre tolleranze. Come probabilmente ci si può aspettare, si tratta di un processo ciclico, sia per ottenere un modello che funzioni bene fin dall'inizio, sia per ottenere un modello che, man mano che le condizioni di processo cambiano o l'attrezzatura invecchia, il modello si deteriora e sarà necessario ricominciare da capo per generarne uno nuovo.
In conclusione, questi modelli inferenziali colmano il divario tra il nostro software di controllo continuo e i nostri campioni di laboratorio prelevati a intervalli non frequenti. Ciò evidenzia l'importanza della conoscenza del dominio nella costruzione di modelli statistici. Come ricorderete, abbiamo dedicato molto tempo all'analisi ingegneristica prima ancora di aprire JMP, per assicurarci di sapere esattamente come avrebbe funzionato il modello una volta messo online. Anche al di fuori dell'ingegneria chimica e dell'ingegneria di processo, questo principio è lo stesso. L'analisi ingegneristica dovrebbe guidare il modello, non il contrario. Con queste tecniche, è possibile utilizzare dati limitati e trasformarli in informazioni fruibili, indipendentemente dal settore. Grazie mille per aver seguito il video.