Il nostro team sviluppa da decenni modelli di simulazione a eventi discreti per sistemi di processo e confezionamento. Nel 2024 abbiamo adottato JMP per semplificare e rafforzare l'interpretazione dei risultati statistici di questi modelli.
Poiché l'esecuzione dei modelli di simulazione può richiedere molto tempo e denaro, ora utilizziamo JMP per creare metamodelli surrogati, basati su esperimenti progettati che migliorano notevolmente l'efficienza nell'estrazione di informazioni dalle simulazioni. I metamodelli forniscono una comprensione più approfondita del comportamento del sistema rispetto ai risultati tradizionali, come visualizzazioni 3D o statistiche di esecuzione dettagliate fornite durante una singola esecuzione del modello.
Il nostro primo metamodello ha rivelato una soluzione chiara a una sfida analitica di lunga data: con più buffer su una linea di confezionamento, quanto dovrebbe essere grande ciascuno di essi per ottimizzare le prestazioni della linea, considerando le limitate risorse di capitale? Presentiamo diversi altri metamodelli, tra cui il confronto di diverse opzioni di layout per una linea con un meccanismo di unione-deviazione e l'effetto non lineare sulle prestazioni in base alla posizione.
Infine, presentiamo un caso di studio di simulazione di un carrello elevatore utilizzato per supportare una decisione di investimento sulla costruzione di una connessione diretta tra due magazzini. La modellazione surrogata è diventata una parte essenziale del nostro flusso di lavoro di simulazione e JMP ha svolto un ruolo chiave nel rendere questo approccio più accessibile, efficiente e di impatto sia per il nostro team che per i nostri stakeholder.
Ciao, sono Shannon Browning. Sono responsabile tecnico per l'analisi dei sistemi presso Haskell Company. Siamo nuovi utenti di JMP dal 2023, ma abbiamo una lunga esperienza con la simulazione a eventi discreti. La simulazione a eventi discreti è uno strumento comune nei sistemi di produzione e nei sistemi di assistenza, che ci consente di sperimentare in un ambiente virtuale nuove strategie di controllo, nuovi layout, flussi, logiche e così via, prima di implementarli effettivamente sul campo.
Da quando abbiamo adottato JMP, abbiamo ottenuto un grande successo utilizzando quelli che chiamiamo modelli surrogati o metamodelli, modelli di modelli, per fornire un ulteriore livello di comprensione. Quindi, progettiamo esperimenti attorno al modello di simulazione stesso, variando sistematicamente gli input per comprendere e poter osservare i comportamenti del sistema a questo livello superiore.
Ci sono alcune sfide diverse che incontriamo qui rispetto alla progettazione di esperimenti con un tipo di esperimento più fisico o distruttivo. Il tempo di elaborazione è l'unico vincolo. Non ci preoccupiamo dei vincoli materiali o di molte delle restrizioni sulla fattibilità che spingono a fare forse meno repliche o scenari in un DOE tradizionale, il che apre davvero molte opportunità, ma anche alcune sfide interessanti. Molte simulazioni a eventi discreti tendono ad essere di natura stocastica, il che significa che nel modello vengono generate variazioni casuali.
Possiamo usare una tecnica chiamata Common Random Numbers, in cui ogni configurazione diversa viene eseguita più volte, ma ciascuna di queste volte viene eseguita con gli stessi seed casuali. Otteniamo comportamenti sufficientemente simili da poterli trattare come effetti casuali, ad esempio, in un modello a effetti misti. Ma penso che ciò che sarà davvero utile sarà semplicemente approfondire alcune di queste tecniche e dare un'occhiata ad alcune applicazioni diverse.
Ci sono tre diversi casi d'uso che abbiamo trovato interessanti nel corso della nostra analisi. Uno di questi riguarda il problema di lunga data di identificare dove posizionare i buffer su una linea di confezionamento ad alta velocità e altamente automatizzata. Il secondo caso, di cui parleremo, è stato un po' più dettagliato sui controlli e sulla disposizione fisica del sistema di trasporto. E poi il terzo, stiamo analizzando il traffico di carrelli elevatori in uno stabilimento e cercando di capire se un investimento significativo in una modifica del layout possa generare un ritorno sull'investimento o dei risultati.
Mi concentrerò prima sulla simulazione della linea di imbottigliamento. In questa, guardando in basso a sinistra, stiamo rappresentando il sistema più a livello di diagramma di flusso. Siamo semplicemente nello strumento software, che estrae i diversi processori e segnali e li organizza. Ognuno di essi avrà tempi di inattività casuali e, tra questi tempi di inattività, funzioneranno a velocità fisse. C'è un leggero eccesso di velocità, e questo ci permette di vedere come il buffer può disconnetterli nel tempo. Quindi un arresto su un processore non arresta immediatamente quello a monte. E più buffer forniamo, maggiore è l'installazione. Ma ci sono alcuni rendimenti decrescenti. Ci sono alcune risposte non lineari in questo.
In basso a destra mostriamo come potrebbe apparire la dinamica della coda nel tempo: quando qualcosa si ferma, accumuliamo molto rapidamente. Poi, quando ci riprendiamo, si verifica una differenza di velocità, per cui il buffer si riduce nel tempo. Abbiamo un paio di variabili con cui lavorare. L'affidabilità delle macchine, le velocità eccessive, le dimensioni del buffer, ecc. Una delle nostre sfide è rappresentata dalle così tante variabili: con quali lavoriamo? A seconda di dove ci troviamo nel processo decisionale, tende a essere dove vogliamo essere o determina quali variabili possiamo regolare. Quando siamo arrivati qui, avevamo già una vasta selezione di macchine per questo. In realtà, l'unica cosa che rimaneva da fare era considerare questi buffer.
Tradizionalmente, si considerano questi parametri isolatamente. Si direbbe: "Bene, inserisco un buffer qui e poi vario un fattore alla volta". Ma con JMP siamo riusciti a impostare ciascuno di questi buffer in modo che durasse da zero a quattro minuti. Abbiamo eseguito 10 repliche per ogni combinazione. Quindi c'erano nove livelli per ognuno di essi, il che ci ha permesso di ottenere una curvatura di questa risposta piuttosto precisa. Dato che siamo nel mondo della simulazione al computer, ciò significava che c'erano 729 combinazioni diverse.
Il modello funziona abbastanza velocemente, ma lo fa comunque per 10 repliche ciascuna. Abbiamo eseguito questo modello oltre 7.000 volte e ci è voluta mezza giornata o più per analizzare tutti questi scenari. Ma una volta generati i dati, siamo in grado di esaminarli in JMP. Stiamo mostrando il profiler di previsione in alto a destra. Partendo semplicemente dalla baseline di tutti questi buffer a zero, possiamo vedere chiaramente che ottengo la migliore risposta da questa posizione al buffer, una risposta un po' meno buona qui in tre, e in realtà non molto in due. Ma abbiamo anche modellato gli effetti dell'interazione. Possiamo vedere in questo profiler di previsione, quando scegliamo, ad esempio, due minuti e mezzo sul buffer due, e poi due minuti sul buffer tre, la curva su uno diventa ancora più piatta perché non si può dire: "Sfrutterò appieno i vantaggi di tutti e tre contemporaneamente". C'è un'interazione: se metto un sacco di buffer su due, allora tre è meno efficace e così via.
Questa è stata un'intuizione davvero potente. Credo che il piano di progetto originale prevedesse un investimento di circa mezzo milione di dollari per ciascuno di questi tre buffer, e siamo stati in grado di affermare con certezza che il buffer in uno dei tre non era necessario. E quindi possiamo attingere ad almeno mezzo milione di capitale. E poi, il buffer nella terza posizione, potremmo perfezionarlo. Quindi, non investendo l'intero importo in quel particolare buffer. Quindi, ottime intuizioni per il progetto.
Tornando a noi, il prossimo che esamineremo approfondirà un po' di più il funzionamento effettivo del sistema. In questo caso, c'era una linea già esistente e, ricordando dall'ultimo caso, abbiamo visto come quella differenza di velocità eccessiva tra due unità operative consenta di ridurre quel buffer. Avevano apportato miglioramenti al collo di bottiglia del sistema per renderlo più veloce di circa il 10%. Ciò significava che la differenza di velocità eccessiva era notevolmente inferiore. Ciò causava problemi nel funzionamento del sistema di trasporto stesso.
Avevamo due corsie di prodotto in entrata, poi anche una tramoggia fuori linea che riforniva il prodotto, e il complesso di unione-deviazione dove tutto ciò si riuniva. I nostri ingegneri dell'automazione in loco hanno notato che era difficile colmare alcune lacune a causa della distanza. Questa sfida si è presentata con l'aumento della velocità del collo di bottiglia. Utilizzando la simulazione, ci siamo detti, stiamo lavorando per capire cosa succederebbe se spostassimo questo di 3,6 metri a monte? E se lo spostassimo di 7,3 metri a monte?
Ovviamente, tagliare l'acciaio, riorganizzare l'intero nastro trasportatore e mettere a punto tutto è stato un investimento significativo. Anche dal punto di vista della modellazione di eventi discreti è stato un po' più impegnativo per noi, perché abbiamo dovuto ricreare il layout in tre modi diversi. Avevamo il layout originale e poi queste due diverse iterazioni. Abbiamo apportato le modifiche al layout, perfezionato i controlli e poi analizzato il tutto. Quindi, mentre prima dicevo che avremmo potuto eseguire diverse iterazioni, questa un po' più dettagliata, ogni scenario ha comportato un costo leggermente maggiore per apportare queste modifiche al modello.
Una cosa che non ci aspettavamo finché non abbiamo inserito i numeri in JMP era che ci fosse un vincolo a monte. Sapevamo a valle che non avevamo abbastanza spazio tra la macchina successiva e questo complesso di merge-diversion. Ma, spostandolo a 3,6 metri a monte e poi a 7,3 metri a monte, ci siamo accorti che ci stavamo avvicinando troppo a quel componente a monte. Quindi lo abbiamo inserito in JMP. Utilizziamo la piattaforma di adattamento del modello. In questo caso utilizziamo l'adattamento quadratico. E abbiamo potuto constatare che avremmo iniziato a vedere un peggioramento delle prestazioni man mano che ci avvicinavamo sempre di più a monte.
È stata una sorpresa per noi, che forse non avremmo notato senza averlo collegato. Non ce l'ho sullo schermo, ma siamo in grado di estrarre l'equazione di questo adattamento da qui e poi prendere la derivata e trovare il punto di massimo qui. Ma la sfida, ovviamente, è capire qual è l'incertezza attorno a questo punto, da qualche parte tra 12 piedi e 24 piedi.
Un approccio, ovviamente, avrebbe potuto semplicemente creare un modello a 18 piedi (5,5 metri) vicino a dove vediamo questo punto ottimale e poi riadattarlo a quei dati. Ma nel profiler di previsione possiamo anche vedere incertezze intorno alla derivata prima e seconda di quella approssimazione quadratica. Questo può davvero aiutarci a capire. Sappiamo che il massimo tende a collocarsi tra 12 e 24 piedi (3,6-7,2 metri), ma non è chiaro esattamente dove. Ci sono altre variabili che potrebbero confondere questo. Ci sono aspetti pratici su come si può effettivamente costruire il sistema. Ma questo è stato davvero utile per noi per avere un'idea un po' più chiara.
L'ultimo aspetto che esamineremo riguarda il traffico dei carrelli elevatori. In questo stabilimento stavano aumentando la produzione. Non erano ancora arrivati a quel punto, quindi non potevamo osservare empiricamente cosa sarebbe successo. Ma abbiamo creato un modello di diagramma di flusso delle linee di confezionamento e l'abbiamo usato come base per questo modello. Poi abbiamo programmato le regole di assegnazione dei carrelli elevatori, i loro compiti e tutte le operazioni che i carrelli avrebbero dovuto svolgere per fornire il materiale alle linee e rimuoverlo dalle linee.
Una cosa che abbiamo scoperto qui era la necessità di trattare questi carrelli elevatori come variabili categoriche. Quando abbiamo iniziato ad adattare questo modello, abbiamo scoperto che c'era una relazione non lineare. Non ne eravamo certi finché non l'abbiamo trattata come una variabile categorica. Quindi siamo in grado di vedere che senza questo connettore, quando si arriva a cinque carrelli elevatori attivi, qui, non si ottiene alcun vantaggio maggiore dai sei. Poi possiamo anche vedere che qui sono a sei, in questo profilo di previsione, se dovessi aggiungere questo connettore, che era questa innovazione di layout per questa particolare situazione, se dovessimo aggiungere quel connettore, c'è davvero un grande potenziale guadagno qui. Questo è ciò che possiamo usare come base per dire che probabilmente vale l'investimento. È stato un investimento significativo per quella modifica di layout.
Abbiamo anche la possibilità di analizzare questi profili di interazione. Potete vedere chiaramente nel profilo di interazione qui, con e senza questo connettore, che sto davvero limitando il tutto se non avessimo quel connettore. Non c'è davvero nulla che avrebbero potuto fare a livello operativo se non avessero investito nell'eliminazione dei colli di bottiglia o nella decongestione del traffico su questo.
Si tratta di una rapida panoramica di alcuni dei modi in cui abbiamo applicato JMP ai modelli di simulazione che abbiamo già sviluppato. Mi piace dire che questi metamodelli hanno aiutato i nostri analisti di simulazione a vedere la foresta dietro gli alberi. A volte ci si perde nei dettagli con questi modelli a eventi discreti, perché ci sono così tante variabili da gestire e possono generare così tanti dati che può essere difficile ricondurre al problema aziendale o all'elemento che stiamo cercando di risolvere. Apprezzo il vostro tempo e non esitate a contattarci per qualsiasi domanda.