vuoi
o PayPal
tutte le volte che vuoi
GUIDA RAPIDA PER SIMAN
Corso di Gestione della Produzione Industriale per Ingegneria Gestionale
Gli elementi di una simulazione sono: entità, attributi, variabili, risorse, code. Le entità sono i ʺplayersʺ che
circolano allʹinterno del sistema, modificano il loro status, influenzano e sono influenzate da altre entità, e Pagina | 1
solitamente rappresentano oggetti reali (ad esempio dei documenti che circolano all’interno di un ufficio). Gli
attributi rappresentano le caratteristiche delle entità, ovvero le descrivono e le differenziano (ad esempio
“documento archiviato” o “non archiviato”). Tutte le entità dello stesso tipo hanno gli stessi attributi, ma
naturalmente con valori diversi. Le variabili riflettono una caratteristica del sistema indipendentemente dalle
entità che circolano; esse sono dunque “globali”, riferendosi al modello più che alla singola entità. Le risorse
sono invece gli oggetti “richiesti” dalle entità, ovvero impiegati, equipaggiamenti, spazi, etc (continuando
l’esempio precedente, una risorsa potrebbe essere l’impiegato che archivia il documento). Nei modelli di
simulazione si dice che le entità utilizzano le risorse e le rilasciano. Dunque le risorse possono essere allocate
alle entità, ma non viceversa. Le code rappresentano il luogo in cui le entità attendono quando non possono
muoversi; esse hanno un proprio nome, solitamente legato a quello della risorsa a cui sono collegate (e.g. una
pila di documenti in attesa di essere archiviati dall’impiegato). Inoltre una coda può avere capacità finita, per
modellare spazi limitati (naturalmente in questi casi bisogna modellare cosa succede quando un’entità
dovrebbe entrare in una coda piena).
Le tecniche di simulazione ad eventi discreti si basano su modelli che permettano di costruire il calendario degli
eventi di un sistema durante un tempo di osservazione, attraverso linguaggi
di simulazione. In una simulazione ad eventi discreti i cambiamenti
avvengono solo in precisi istanti di tempo, e sono in numero finito (per questo
si dice appunto ad eventi discreti). Dal calendario degli eventi ricostruiamo la
storia del funzionamento del sistema, da cui valutiamo gli indici di
prestazione produttiva.
Questo tipo di simulazione è composto da 5 passi fissi:
1. Identificazione degli eventi che cambiano lo stato del sistema.
2. Definizione dei cambiamenti dello stato del sistema per ogni tipo di
evento.
3. Tenere a mente l’orologio della simulazione (il tempo) e il futuro
calendario degli eventi.
4. Saltare da un evento ad un altro, cambiare lo stato, guardare le statistiche
e aggiornare il calendario degli eventi.
5. Definire le regole per l’evento simulation end.
Le parti che confluiscono nel sistema si chiamano entità, oggetti astratti
assimilabili a ciò che vogliamo. Le entità posseggono certi attributi (per
fornire altri esempi, questi possono anche essere tempi di
servizio/processamento) per identificare ed osservare la parte durante la
simulazione. Il funzionamento del sistema viene descritto con variabili. Il
modello utilizzato è il SIMAN (SIMulation ANalysis), le cui istruzioni
permettono di isolare delle attività elementari del sistema produttivo. Tali
funzioni elementari in SIMAN sono descritte da blocchi, assemblati in diverso
modo e scelti. Per studiare un sistema necessitiamo di una sorgente che crei
le entità, che si identifica con il blocco CREATE. Tale blocco è di tipo operation,
e per creare le entità gli operandi sono il numero di parti in lotti NB. In un
sistema produttivo semplice, ad esempio, gli operandi NB valgono 1, cioè si
crea una sola entità per volta (in figura a destra vediamo i blocchi del SIMAN).
L’intervallo di osservazione è definito attraverso l’istante TF da cui parte la
creazione dell’entità (ad esempio l’istante 0), dal Time Between Creation TBC
Claudio Scimeca – Riccardo Scimeca
GUIDA RAPIDA PER SIMAN
Corso di Gestione della Produzione Industriale per Ingegneria Gestionale
(cioè ogni quanto si crea un’entità, supponiamo 10min) e dal massimo numero di entità da creare MC
(supponiamo 100). L’istruzione per i dati supposti sarà “CREATE 1, 0:10, 100”. Una risorsa di capacità unitaria
in SIMAN è modellata attraverso una sequenza di blocchi, ovvero SEIZE attraverso la quale un’entità può
prenderne il controllo, DELAY che costituisce la parte in cui una entità viene lavorata per un tempo pari al
suo tempo di servizio (o sta in attesa nella coda), e RELEASE, con la quale l’entità viene rilasciata rendendo
libera la risorsa. Dopo l’ultimo blocco deve essere inviato un segnale per avvisare che la risorsa è libera e il Pagina | 2
blocco SEIZE può accogliere una nuova entità. Ad ogni risorsa sarà associata una coda con entità diverse da
gestire separatamente. Le istruzioni del System Model per un sistema con una entità con tempo di servizio pari
a 7 ed una risorsa saranno:
CREATE 1, 0:10, 100; QUEQUE, 1; SEIZE, risorsa; DELAY, 7; RELEASE, risorsa; COUNT 1,1 DISPOSE;
Il contatore 1 conta incrementando di 1 ogni volta che entra un’entità, che viene poi distrutta con DISPOSE.
Oltre il System Model si utilizza un altro file: l’Experimental Frame. Gli operandi di questo sono:
PROJECT nome prog, analista, data; DISCRETE max num unità, max num attributi per unità, code;
COUNTERS 1, nome contatore, 100; RESOURCE num risorsa, nome risorsa, capacità; TRACE;
L’ultima istruzione serve per la stampa del calendario degli eventi nel sistema al trascorrere del tempo.
L’andamento nel tempo del contatore fornisce il
valore della produzione cumulata, con la quale
calcoliamo X. Per calcolare TA bisogna valutare
il tempo di ingresso e di uscita dell’entità.
Andremo ad inserire nel System Model il blocco
ASSIGN: A(1)=TNOW dopo CREATE, e il blocco
TALLY 1, INT(1) dopo COUNT. Con il primo
assegniamo il tempo di ingresso identificandolo
con il valore dell’orologio del simulatore, mentre
con il secondo blocco registriamo nel campo 1 il
valore INT(1) che corrisponde al nuovo valore
TNOW sottratto di A(1), ottenendo così TA.
Nell’Experimental Frame TALLY viene associato
con l’istruzione “TALLIES, 1, TATTRA” dove
TATTRA restituisce il tempo di attraversamento.
Le variabili SIMAN DISCRETE CHANGE
VARIABLES indicano quando le risorse sono
occupate e modellizzano i coefficienti di
prestazione. Per esempio si può inserire
nell’Experimental Frame l’istruzione “DSTATS:
1, NR(1), UTMAC, 2, NQ(1), CODAMAC;”. In
questo modo inseriremo una funzione di stato 1,
che vale 0 se la macchina è libera e 1 se occupata,
NR(1) conta il numero di unità impegnate nella
risorsa e UTMAC dà come risultato il coefficiente
di utilizzazione medio della risorsa di nome
MAC (fornisce anche il valore max, min e la
deviazione standard). Inoltre inseriremo una
funzione di stato 2 che vale 0 se non ci sono entità
in attesa e 1 altrimenti, NQ(1) conta le code e
il grado di congestione sarà dato da
Q(1)=NR(1)+NQ(1). Se abbiamo due parti ed
una risorsa dobbiamo utilizzare due CREATE,
una per ciascun tipo di parte, in cui
assegniamo prima la tipologia della parte, poi
il tempo d’ingresso e il tempo di servizio. Un
esempio potrebbero essere queste istruzioni:
Claudio Scimeca – Riccardo Scimeca