Buongiorno a tutti. Grazie per la partecipazione. Sono Chris Dennis del team di Ingegneria delle Applicazioni di SUMCO. Per chi non lo sapesse, SUMCO è un'azienda produttrice di wafer di silicio. Produciamo i wafer di silicio che vengono utilizzati come materiale di partenza nel processo di produzione dei semiconduttori. Oggi parlerò di un remix pratico per i grafici di controllo per gestire piccole tirature e big data, e di come trovare alcune soluzioni utilizzando tecniche diverse. Condividerò brevemente il concetto, poi assisterò a una demo live e spiegherò come creare i grafici e come impostare script per personalizzarli e trasformarli in qualcosa di utile per gli ingegneri di processo.
I processi di produzione odierni sono davvero complessi. Le cose si muovono molto velocemente. Ogni giorno in fabbrica avvengono molti cambiamenti. Non è raro avere centinaia di prodotti in produzione e decine di utensili. L'approccio SPC tradizionale genera un grafico per ogni combinazione di parametri, utensili e componenti. Questi possono rapidamente moltiplicarsi in migliaia di grafici. L'elevata frequenza di modifica complica ulteriormente i grafici, perché potrebbero essere aggiunti pochi punti dati a un grafico durante la produzione.
Questo è un esempio di compilazione di carte di controllo provenienti da uno dei processi dei nostri stabilimenti. Come potete vedere, abbiamo molti cambi di componenti e solo poche esecuzioni in ogni carta. Le ipotesi di una carta di controllo ideale falliscono molto rapidamente, perché non abbiamo esecuzioni lunghe e coerenti e i processi cambiano continuamente le condizioni. In questo caso, le ipotesi non sono più valide per la creazione di carte di controllo e possono diventare inefficaci nelle carte stesse. Quando osserviamo il nostro processo, abbiamo più di un singolo parametro che aggiunge complessità. Gli input influenzano gli output e sono correlati tra loro. Se li si rappresenta separatamente, si rischia di perdere la visione d'insieme. Il sistema potrebbe deviare in modo sottile e nascosto e l'SPC classico non riuscirebbe a individuarlo.
E se potessimo cambiare le cose? Invece di rappresentare graficamente i dati grezzi, rappresentiamo graficamente ciò che non ci aspettiamo. Costruiamo un modello che definisca una previsione per ogni punto dati, e poi rappresentiamo graficamente i residui, la differenza tra la realtà prevista, la previsione e la realtà. È lì che risiedono le sorprese.
Ecco un rapido confronto tra i vantaggi dei tradizionali SPC, o carte di controllo modello, e quelli dei tradizionali grafici SPC. I grafici tradizionali sono ottimi per processi stabili, processi semplici, un prodotto alla volta. I grafici basati su modelli sono multivariati. Gestiscono le correlazioni. Rimuovono le normali variazioni e segnalano gli imprevisti. Perfetti. Perfetti per dati disordinati come quelli che abbiamo nel nostro processo.
Possiamo scegliere diversi modelli da utilizzare. Ad esempio, un modello PCA. L'analisi delle componenti principali funziona bene quando si desidera semplicemente confrontare strutture naturali come sensori o dati spettrali. Il modello dei minimi quadrati parziali è ottimo quando si ha una risposta per prevedere un attributo di qualità, e i modelli di regressione funzionano bene per relazioni note semplici. Il trucco sta nello scegliere il modello che si adatta ai dati che si stanno inserendo e nel verificarlo. Parliamo di cosa costruiremo e di come lo facciamo in JMP.
Il primo passo è, consiglio, standardizzare i valori che si tracciano, soprattutto nel caso di una carta di controllo a breve termine, quando i sigma variano e le cose non si allineano, giusto? È una buona idea normalizzare i dati. Aiuta anche con il grafico multivariato, nella mia esperienza, evitare che un parametro domini un segnale e sovrasti gli altri parametri. Mette tutto sullo stesso piano. Il passo successivo sarebbe quello di adattare il modello. In questo caso parlerò di un'opzione e ne mostrerò una che può essere eseguita in JMP standard, senza bisogno di JMP Pro, ovvero il modello PCA. Questo viene utilizzato nella piattaforma di carte di controllo multivariate basate su modello. Possiamo eseguire quel modello e in quel modello traccia i residui, le statistiche T² per ogni punto dati, quindi vogliamo acquisire quei residui e salvarli. Possiamo prenderli e possiamo costruire una carta di controllo a breve termine per osservare come cambia e individuare quegli eventi imprevisti. Naturalmente, l'ultimo passo è impostare limiti e allarmi sul nostro grafico.
Parliamo di alcuni aspetti e del perché questo grafico potrebbe essere davvero utile, o almeno credo che lo sia. Innanzitutto, ognuna di queste linee tratteggiate verticali rappresenta una variazione di prodotto. Tutti i prodotti sono su un unico grafico e posso vedere cosa sta succedendo, vedere dove potrebbe esserci una variazione elevata o alcuni eventi fuori controllo. Il bello del grafico di controllo multivariato basato su modello è che posso approfondire questi punti, e posso prenderli e vedere con un metodo univariato quali parametri sono fuori controllo. Potrei cercare elementi in comune. E poi, posso approfondire ulteriormente il grafico univariato. Penso che il potere del monitoraggio dei residui consista nel fatto che ho 20 parametri impilati in questo grafico per l'esempio che mostrerò, credo dieci prodotti diversi, e lo riduco, e posso arrivare fino a quel singolo grafico che avrei ottenuto moltiplicando 20 per 10... Con ogni strumento ottengo una visualizzazione più semplificata del grafico.
Bene. Perché usare questo approccio? Sembra funzionare bene per linee di prodotto ad alto mix con dati a breve termine. Basato su modelli, quindi meno rumoroso. Aiuta a vedere ciò che conta. È scalabile molto facilmente con gli script. È possibile prendere questo da un tipo di set di strumenti e copiare facilmente la metodologia in un diverso tipo di set di strumenti o in uno scenario diverso. E poi, per l'ingegnere di processo, l'utente che deve andare a vedere tutto questo. Gli strumenti visivi di JMP, il collegamento dinamico dei dati. La possibilità di eseguire il drill-down nei grafici rende davvero veloce e trasparente l'analisi e la risoluzione di un problema, lavorando per arrivare rapidamente al nocciolo dei dati.
Ora, voglio illustrare un esempio concreto e procedere. In questo esempio, fondamentalmente, creerò uno script per creare il grafico, poi analizzerò i passaggi di scripting e apporterò alcune modifiche per migliorare l'aspetto del grafico, rendendolo più utile per gli ingegneri di processo, qualcosa che li aiuterà a svolgere il loro lavoro in modo più rapido e semplice.
Bene. Passiamo a JMP e alla demo live.
Per questa presentazione e sul sito web, ho incluso un diario. Contiene esempi di dati. Contiene esempi di script e dei passaggi per svilupparli. Iniziamo con la tabella dati. Ho una tabella dati. Questi dati sono tutti normalizzati e ripuliti, quindi potete usarli. Ci sono 19 o 20 diversi parametri di processo che sono input per uno strumento. C'è una parte. Questi dati sono già stati preparati, quindi non parlerò della fase di preparazione. Questa è una fase completamente diversa di gestione e configurazione dei dati. Parleremo di come faremo questa analisi. Se iniziamo e facciamo questa analisi manualmente, questo è il flusso di base. Inizierò proprio qui, dalla fase del grafico di controllo multivariato basato sul modello, catturerò i residui e poi costruirò un grafico di controllo a breve termine da lì.
Voglio scrivere questo script. Uno dei trucchi che ho usato per aiutarmi con lo scripting e semplificarlo, anche se non sono un esperto di scripting, è usare il Workflow Builder. Lo attivo e porto quella finestra qui. Imposto la registrazione immediata e la riduco a icona perché non ho bisogno di guardarla in questo momento.
Parliamo di come creare uno script di base. La prima cosa che farò è copiare uno schema per questi tre passaggi, così possiamo farlo. Aprirò una nuova finestra di script. Imposto lo schema. La prima cosa che vogliamo fare è creare il modello, poi i residui, quindi la carta di controllo a breve termine. Lo faremo. Torniamo al nostro modello di analisi dei dati di esempio, la carta di controllo multivariata basata sul modello del processo di qualità. La piattaforma è piuttosto facile da usare. Dobbiamo solo prendere tutti gli input e inserirli nei parametri di processo. La parte, inserirli in un parametro By e premere OK.
Abbiamo un grafico qui. Abbiamo generato il grafico. Questo è il grafico di cui abbiamo parlato. Ha dei link per esaminare ciascuno dei diversi parametri. Andiamo avanti e andiamo... Il prossimo passo è catturare i residui. Per catturare i residui, andrò semplicemente su ogni grafico e salverò i valori di salvataggio delle colonne. È un po' noioso vedermi puntare e cliccare per scorrere queste 9 o 10 parti, quindi mi scuso. Vorrei cantare e ballare, ma non canto e ballo solo con mia moglie perché non sono molto bravo. Andiamo avanti e prendiamone un altro paio. Quello che ha fatto è stato creare una nuova colonna nella tabella dati per il T² per parte e ha inserito quel valore residuo per ogni riga della tabella dati. Ora abbiamo un residuo per ogni punto che possiamo tracciare.
Il passo successivo è tornare al menu del processo di qualità. Possiamo cliccare su "Apri Generatore di Carte di Controllo". Cambieremo perché abbiamo più prodotti. Li inseriremo sullo stesso grafico. Li inseriremo in un grafico di controllo a breve termine. Inizieremo per parte. Prendiamolo e gestiamolo. E poi, invece di tracciare gli input su questi singoli punti, tracceremo i residui. Trasciniamoli sull'asse y. Ora abbiamo un grafico di controllo a breve termine con... Vediamo le diverse modifiche delle parti. C'è "in controllo". C'è "fuori controllo". Le abbiamo per tutte queste diverse parti. Questo è più o meno quello che ci eravamo prefissati di fare fin dall'inizio. Ora chiudo e torniamo indietro. Torniamo indietro e apriamo il nostro Generatore di Workflow e interrompiamo la registrazione. Nel Generatore di Workflow, abbiamo catturato tutti i passaggi per creare questo grafico.
Quello che voglio fare ora è seguire questi passaggi e inserirli nel mio script. Ho il passaggio dei residui del modello a breve termine. Ognuno di questi è un passaggio diverso all'interno del Workflow Builder rispetto ai passaggi che abbiamo eseguito noi. Posso semplicemente prenderli, copiare lo script da qui e aggiungerlo qui. Diamo un'occhiata veloce a quello che abbiamo. Abbiamo il diagramma di controllo multiparametro basato sul modello. Abbiamo un sacco di informazioni specifiche per ogni componente. Poiché voglio che questo sia uno script generale, rimuoverò queste informazioni. Questo mi consentirà di trasferirle a un diverso gruppo di componenti. Renderlo meno specifico, renderlo più trasferibile in seguito. Ora, ho questa linea di chiamata.
Il passaggio successivo, che esamineremo più approfonditamente, richiama anch'esso questo grafico di controllo multivariato basato su modello, ma alla fine vediamo che lo abbiamo salvato come oggetto e che abbiamo salvato i valori dal grafico T².
Ecco cosa voglio fare per catturare quei residui. Barerò un po' perché probabilmente commetterò un errore scrivendo queste cose, ma prenderò una riga qui che sostanzialmente imposta un ciclo per ottenere questi residui, quindi è lo stesso comando T², salva valori. L'unica differenza è che ho notato che aveva un oggetto qui che sto scorrendo e modificando. Metterò il nome di quell'oggetto qui quando creerò quei grafici multivariati.
L'ultimo passaggio è tornare qui e creare il grafico di controllo a breve termine. Lo copio e lo riporto qui. Lo aggiungerò alla sezione dedicata al grafico di controllo a breve termine. Farò un po' di pulizia qui. Assicuratevi di terminare queste istruzioni di comando con un punto e virgola.
Non continuerò questa riga qui, quindi eliminerò questa virgola. Questo è il mio script di base. Ho acquisito tutto dal Workflow Builder e l'ho inserito nello script. Ora sono pronto. Posso eseguire lo script. Ora, ho il grafico multivariato e il grafico di controllo a breve termine. Questo è proprio quello che volevo fare. Se guardo questo, se sono l'utente e dico: "Guarda, una cosa che ho notato subito e che non mi piace è che devo saltare da un grafico all'altro per ottenere informazioni, e mi piace molto questo, dove posso eseguire il drill-down e vedere le diverse cose che stanno succedendo". Voglio prendere quella funzionalità e aggiungerla direttamente a questo grafico. È abbastanza facile da fare con JMP. Possiamo semplicemente andare qui e salvare lo script per questo grafico negli appunti. E poi possiamo prenderlo, incollarlo come livello di passaggio del mouse e incollarlo in Graphlet.
Ora, ce l'abbiamo. È piuttosto semplice. Vorrei aggiungerlo al mio script, ma ho dimenticato di attivare Workflow Builder. La prima volta che l'ho fatto, mentre ci lavoravo, mi sono sentito davvero in colpa e ho pensato: "Oh". Workflow Builder non l'ha comunque catturato quando l'ho fatto, ma c'è una soluzione semplice. Possiamo andare allo script per questo grafico. Possiamo salvare lo script e salvarlo in una finestra di scripting. Possiamo importarlo. Posso guardare e vedere le differenze tra quello e il mio script. È qui sotto nel grafico di controllo a breve termine. La differenza, o dove si differenzia, è che, dopo aver mostrato il pannello di controllo, ho tutte queste informazioni da inviare al report e da creare il Graphlet per impostarlo. Prendo tutto questo, lo riporto qui e lo incollo.
Di nuovo, ho raccolto tutte le informazioni di questa parte. Cancellerò semplicemente quelle righe come ho fatto prima. Assicurandomi di avere la spaziatura corretta. Ora, dovrei avere uno script che creerà quel grafico con un Graphlet. Torniamo qui. Chiudiamolo perché non voglio farlo di nuovo. Chiudiamolo, non ho bisogno di vederlo. Diamo un'occhiata al nostro script. Eseguiamolo e vediamo se abbiamo ottenuto quello che volevamo. Diamo un'occhiata proprio qui. Boom. Ce l'ho fatta. Fantastico. Ora, è un Graphlet, l'ho inserito e... ovviamente, ho ottenuto la stessa cosa. Guarda questo, va bene, ma personalmente vorrei ottenere solo il grafico per la parte che sto guardando quando clicco, senza dover scorrere tutti questi e averli tutti in un unico punto.
Il modo in cui lo farò, e ancora una volta, mi scuso per non averlo spiegato nel dettaglio, ma per risparmiare tempo, aggiungerò un filtro clic. Per aggiungere questo filtro clic. In pratica, andrò qui, che è l'istruzione immagine all'interno del Graphlet. Aggiungerò un comando diverso e definirò la parte in base al clic. Quindi, creerò di nuovo il grafico e aggiungerò un filtro dati locale, in modo da mostrare solo il grafico per quell'elemento. Con questo, si spera che questo ci porti al punto in cui ora ho uno script che posso usare, posso selezionare un punto qui. A questo punto, posso cliccare su questo e generare quel grafico di controllo semplicemente con un clic. Diamo un'occhiata a quello che avevamo originariamente. Questa è la parte 22. Vediamo. Questo grafico e questo grafico non hanno lo stesso aspetto. Quindi potrebbe esserci qualcosa che non va.
Qui mostro due grafici fuori controllo piuttosto forti. Qui ne ho solo uno. La grande differenza, se guardate, è che il numero di componenti principali in questo grafico è cinque. Qui ce ne sono otto. Quando ho aggiunto quel filtro, ho perso la parte all'interno del grafico multivariato che riportava e riduceva le componenti principali per ogni parte a un livello diverso. Se esaminate uno qualsiasi di questi, scoprirete che ora sono tutti a otto, mentre prima nessuno di loro era a otto. Possiamo risolvere il problema. Di nuovo, per risparmiare tempo, aggiungerò solo lo script qui, ma questo è un approccio brute force e sono sicuro che ci sia un approccio migliore in circolazione, ma quello che farò nello script originale è andare dopo aver salvato i residui nella tabella e andare a ottenere manualmente quei residui. Il modo in cui lo faccio in realtà è eseguire solo un valore indipendente delle componenti principali.
Prenderò il valore di quel componente in base all'autovalore che ne esce, e il funzionamento della routine è sostanzialmente basato sul numero di componenti principali maggiore o uguale all'85%. Acquisirò quei dati. Li inserirò in una tabella. E poi potrò usare quella tabella per filtrare. Nel mio filtro di clic, devo aggiungere anche un paio di comandi qui sotto. Quello che farò è, la prima cosa che farò è prendere questo e spiegarlo. Da quella tabella delle componenti principali, selezionerò il valore in cui la parte è uguale a p. Questo è il valore di interesse. E poi, la seconda cosa che farò quando creerò il grafico di controllo multivariato è aggiungere e impostare il numero di componenti. È qualcosa che ho eliminato tutte le altre volte per parte, perché volevo semplificare la regolazione del numero di parti. Grazie a questo, il numero di parti è ora più flessibile e più regolabile.
Ora posso passare a qualsiasi cosa con questo. Vediamo se ho copiato e incollato tutto correttamente. È qui che mi aspetterei che le cose andassero a rotoli, ma vediamo se ha funzionato. Sapete cosa? Lo farò due volte perché non lo so. Ho mostrato un paio di cose che volano e compaiono sullo schermo. La prima cosa che voglio mostrare è che ho questa tabella di parti e componenti. La parte 22 è quella che abbiamo esaminato prima dei cinque componenti. L'ho verificato un paio di volte e sono tutti a posto. Ottimo, ho questa tabella. È quel filtro clic che verrà applicato a ogni parte. Prendo questo valore per assicurarmi di ottenere il grafico corretto. Ecco il mio grafico. Ora ho di nuovo questo grafico di controllo a breve termine. Ogni volta che le linee tratteggiate verticali vanno, cambio parti.
Posso guardare e vedere che ho un sacco di OC e alcune cose che non sono OC. Diamo un'occhiata a cosa ci dice questo grafico. Entriamo, ne prendiamo uno e lo mostriamo sull'altro schermo. Ho questo grafico e posso approfondire questo grafico. Vedo che ci sono diversi punti in cui il grafico di controllo univariante sarebbe fuori controllo. Questo è indicato dal rosso. Posso cliccare su una di queste barre e approfondire quel grafico, e posso guardare quel grafico individuale e dire: "Ok, bene, questo è tutto. Qualunque cosa significhi". Lascerò questo aperto, ma ci andrò, e questo ha tre cose. Cosa sta succedendo qui? Cliccherò e aprirò questo grafico e selezionerò questi tre punti fuori controllo che ho visto qui.
Ora posso andare avanti e, invece di puntare e cliccare, posso guardare il grafico dei contributi dal menu, ma posso visualizzarli tutti contemporaneamente. Non devo cliccare singolarmente su quei grafici. Mi piace molto questa funzione, soprattutto quando si esaminano più elementi, perché sovrappone i grafici di ogni campione, giusto? Posso vedere rapidamente cosa sta succedendo se c'è qualcosa in comune. Questo ha qualcosa qui. Questi no, ma proprio qui al centro, questi quattro elementi sono tutti diversi. Questo per me è interessante. È qualcosa che dovrei approfondire. Quando ho guardato questo, gli stessi quattro input avevano lo stesso segnale qui, ma erano diversi in questo. Forse ho qualche problema sistematico. Inoltre, ovviamente, posso andare avanti e approfondire questo grafico e osservarne alcuni singolarmente, ed è interessante perché erano tutti diversi.
Nessuno di loro aveva un OC, ma lo avevano in direzioni diverse. Due sono alti, uno è basso. È interessante. Per me, questo mi fornisce uno strumento in cui, partendo da un punto di questo grafico, posso andare rapidamente in profondità e cercare punti in comune, per vedere dove potrei voler indagare su qualcosa che sta succedendo.
Mi piace, e darò un paio di spunti di riflessione. Osservando questi grafici, abbiamo riscontrato diversi problemi. Abbiamo riscontrato problemi con le valvole che non si aprivano e chiudevano correttamente. Abbiamo riscontrato problemi con le impostazioni di processo, dove forse stavamo immettendo più gas del necessario. Stiamo sostanzialmente sprecando denaro di cui non abbiamo bisogno, e abbiamo riscontrato problemi, o non dovrei dire problemi, ma abbiamo riscontrato problemi in cui abbiamo portato gli input a un punto di instabilità, che potrebbe quindi aver causato instabilità nel prodotto che forse non misuriamo altrove. Non lo sappiamo.
Si basa semplicemente su questa situazione in cui si esaminano gli input, si può vedere quanto bene funzionano, cercare anomalie negli input e può aiutare a risparmiare denaro ed evitare potenziali problemi.
Questa è la demo. Ho un'altra diapositiva che voglio condividere con voi e di cui parlare. Per quanto riguarda i riferimenti, ne ho diversi. Innanzitutto, ho visto al Discovery l'anno scorso e ho anche rivisto di nuovo JMP online, la presentazione di Mike Anderson sui grafici di controllo a breve termine. Mi è stata molto utile. Poi c'è il libro di Don Wheeler sugli SPC a breve termine. Inoltre, se vi interessa, è molto, molto utile, molto semplice da seguire. Un sacco di cose interessanti. Controllo innovativo, grafici, saggi e imparziali. Anche questo è una miniera di risorse e si integra perfettamente con molti degli argomenti delle applicazioni jump. Lo consiglio. Inoltre, ho trovato nella community di JMP una presentazione sui metodi multivariati. L'ho trovata anche questa molto utile, molto utile. E poi, vorrei ringraziare in modo speciale Jed Campbell del team Rocky Mountain JMP per avermi incoraggiato a perseguire questa idea e per avermi aiutato con alcune delle sfide di scripting lungo il percorso. Grazie per il vostro tempo e vi auguro una buona giornata.