Beruflich Dokumente
Kultur Dokumente
SYSTMES DE PRODUCTION
RSEAUX DE PETRI
SIMAN - ARENA
Jean-Louis Boimond
GNRALITS ................................................................................................................................... 27
GRAPHES D'VNEMENTS ............................................................................................................ 29
EXEMPLES .......................................................................................................................................... 29
AUTRES CLASSES DE RSEAUX DE PETRI ............................................................................... 30
Bibliographie
Introduction to Simulation Using SIMAN. Second Edition, C. Dennis Pegden, R.E. Shannon, R.P.
Sadowski, Ed. Mc Graw-Hill.
Handbook of Simulation: Principles, Methodology, Advances, Applications, and Practice, J. Bank , Wiley
Interscience, 1998.
Discrete Event Systems - Modeling and Performance Analysis, Christos G. Cassandras, Aksen Associates
Incorporated Publishers, ISBN 0-256-11212-6.
Optimisation des flux de production : Mthodes et simulation, A. Ait Hssain, Ed. Dunod, 2000.
Probabilits et statistiques. 3me dition, A. Ruegg, Presses Polytechniques Romandes.
Du Grafcet aux rseaux de Petri. R. David, H. Alla, Herms, 1989.
Cours de Simulation des systmes de production , A. Ait Hssain, Ed. 96/97 - INSA Lyon.
Cours de Simulation , N. Mebarki, 97/98 - IUT OGP Nantes.
Cours de Simulation informatique des systmes de production , P. Castagna, A. L'Anton, N. Mebarki,
97/98 - IUT OGP Nantes.
Cours de Rseaux de files d'attente et simulation , J. P. Chemla, 96/97 - Universit de Tours.
Cours de Simulao de Sistemas Dinmicos , R. Santos Mendes, 02/03 - UNICAMP - Campinas, Brsil
(http://www.dca.fee.unicamp.br/~rafael/).
Dossier de prsentation Arena. La solution simulation , Ouroumoff Diffusion, Lyon.
I INTRODUCTION LA SIMULATION
La simulation est un processus qui consiste :
- Concevoir un modle du systme (rel) tudi,
- Mener des exprimentations sur ce modle (et non pas des calculs),
- Interprter les observations fournies par le droulement du modle et formuler des
dcisions relatives au systme.
Le but peut tre de comprendre le comportement dynamique du systme, de comparer des
configurations, dvaluer diffrentes stratgies de pilotage, dvaluer et doptimiser des
performances.
La simulation est une technique, applique dans ce cours aux systmes de production,
permettant d'tudier le comportement d'un systme dynamique en construisant un modle
logiciel de celui-ci.
CREATE
SEIZE
DELAY
DELAY
10
Operateur
1
DELAY
RELEASE
ASSIGN
Operateur
Date de sortie
DISPOSE
SCHEDULES
Calendrier
VARIABLES
Date de sortie
DSTATS
NR(Machine)
NR(Operateur)
Modlisation
Analyse des
rsultats
Les domaines d'application sont divers. Sont lists ci-dessous quelques classes dapplications
et quelques exemples de problmes typiques rattachs ces classes :
Mthodologie gnrale
Interprtation
& Action
Modle conceptuel
(a)
Programmation
Correction
Vrification
Exprimentation(b)
Rsultats
Correction
Programme de
simulation
Le passage du systme au modle conceptuel est une tape essentielle pour la simulation.
Dans le cadre de ce cours, on utilise une modlisation conceptuelle par rseaux de Petri (cf.
chp. VII). Le passage du modle conceptuel au modle/programme de simulation se fait en
utilisant le langage Siman-Arena ; ce langage de simulation permet galement dextraire des
rsultats issus de diffrentes exprimentations (cf. chp. VIII).
Modle
Systme de
production
Historique,
statistiques
Evaluation de
performances
Programme
Un systme de production est constitu d'un systme oprant (physique), d'un systme de
conduite (partie commande) et d'un systme d'informations reliant ces deux derniers. Il est
travers par un flux d'informations (prsence d'une pice, tat d'une machine) et un flux
physique (matire premire, pices). Le systme tudier peut tre existant, modifier ou non
encore construit.
Le modle dcrit le fonctionnement du systme (sa structure et son comportement dynamique)
avec le degr de dtail ncessaire la rsolution du problme pos. C'est une reprsentation
de la circulation des flux de produits :
- Le flux est ralenti par des activits qui mobilisent des ressources (aprs avoir attendu
leur disponibilit) pendant un certain temps (dures opratoires, temps de transfert, ...),
- Le flux est contraint par des rgles opratoires (gammes, contraintes technologiques),
- Le flux est dirig par les rgles de conduite (systme de contrle).
L'historique et les statistiques portent sur les dplacements (temps de sjour des pices, temps
de transports des pices d'un lieu un autre, ...), les taux d'engagements des ressources, les
longueurs des files d'attente, ...
L'valuation de performances1, en terme de circulation de produits, exploite ces donnes
pour :
- Dterminer des performances absolues (temps de cycle maximum, systme sans
panne),
- Prdire des performances dans certaines conditions,
- Faire une analyse de sensibilit (parmi des choix semblables),
- Comparer des alternatives (parmi des choix possibles).
1
Lvaluation de performances se base souvent sur le taux de production (nombre moyen de pices par unit de
temps), le WIP (Work In Process, nombre total de pices dans le systme chaque instant), le makespan
(intervalle de temps entre le dbut et la fin de la production des pices).
M1
t1A
t1B
M3
Les changements dtat de tels systmes soprent instantanment, des moments discrets dans le temps. Par
exemple, si une variable reprsente le nombre de pices dans un stock alors ses valeurs varient seulement aux
instants o des pices entrent, ou sortent, du stock.
3
Dans le cas dune volution continue de ltat, le modle est continu, la description se fait, par exemple, via des
quations diffrentielles, ou des variables dtat. Dans le cas o les changements dtat seffectuent,
instantanment, des instants discrets dans le temps, le modle est vnements discrets, la description se fait,
par exemple, laide dun rseau de Petri. Certains problmes ncessitent des modles dits hybrides, o
apparaissent conjointement des comportements continus et des comportements dus des vnements discrets.
vnement X
Moteur
chancier
vnement C
vnement B
vnement A
vnements
datables
Excution de
lvnement
dont la date
doccurrence
est la plus
proche
3. A quel niveau ?
a) La simulation : une aide la conduite
Ralit
Paramtrage automatique
Systme de
commande
Systme
physique
Modle de
commande
Proposition
de dcisions
Dcisions
Simulation
Rsultats
Modle du
systme
physique
Le systme prsente un problme (il ne rpond plus aux besoins des utilisateurs).
Bien mettre en vidence les dysfonctionnements par rapport aux besoins et proposer des
solutions permettant de pallier ces dysfonctionnements au moindre cot.
Dfinir les performances mesurer.
Dterminer les ressources goulets (machines, stocks, moyens de manutention,
personnel, ...) qui agissent le plus sur les performances, et pour un scnario de production
donn.
On peut chercher amliorer le systme, soit en agissant sur la capacit des ressources, soit
sur la manire dont on utilise ces ressources (rgles de gestion).
Les donnes utiliser (recueil non exhaustif) :
- Produits (type, gamme),
- Moyens de production (capacit des machines, cot, taux rebut, disponibilit),
- Systmes de transfert (nature, caractristiques),
- Caractristiques des automates (rgles de commande),
- Stocks (nature, capacit, gestion),
- Oprateurs (qualification, nombre, horaires),
- Stratgie(s) de gestion de production,
- Rgles de fonctionnement (mode nominal ou dgrad).
Ralit
Simulation
Systme de
commande
Proposition
de dcisions
Identification
Systme de
traabilit
Modle de
commande
Identification
Historique
Historique
(produits,
processus)
(produits,
processus)
Identification
Systme
physique
Modle de
traabilit
Identification
Dcisions
Rsultats
Modle du
systme
physique
Simulation
Ralit
Modle de
commande
Systme de
commande
Implmentation
Conception
du systme
Modle du
systme
physique
Systme
physique
10
La moyenne d'un chantillon de taille n extrait d'une population quelconque de moyenne et d'cart type est
est suffisamment grande. Pour une population de dpart de distribution normale, le thorme centrale limite est
valable pour tout n. Pour les distributions rencontres dans la pratique courante, plus la taille de l'chantillon est
grande, plus la loi se rapproche de la loi normale. On peut considrer qu' partir de n gale 30, la moyenne d'un
chantillon est distribue de faon sensiblement normale.
5
Infrence : Opration intellectuelle par laquelle on passe d'une vrit (une proposition) une autre vrit
(proposition), juge telle en raison de son lien avec la premire : La dduction est une infrence.
11
aire =
12
x f ( x) dx .
2 x 2 f ( x) dx M 2 , encore gale ( xM ) 2 f ( x) dx .
b
a
b x2
(b a) 2
x
ab
a b
dx
et 2
.
dx
a ba
12
ba
2
2
aire = 1
x
13
2( x a )
f
(
x
)
si a x m
(m a )(b a )
2(b x)
si m x b
f ( x)
(b m)(b a )
f ( x) 0 si non
D a, b ; M
amb
a 2 m 2 b 2 am ab mb
.
; 2
3
18
b) LOI EXPONENTIELLE
f(x)
1
f ( x) e x / si x 0 ( 0)
f ( x) 0 sinon
D 0, ; M ; .
2
Application : Cette loi est souvent utilise en pratique. Par exemple, dans le cas de temps
sparant les arrives de 2 clients successifs dans l'tude d'un phnomne d'attente, ou dans
le cas d'une dure de bon fonctionnement d'un quipement technique.
La loi exponentielle est la seule loi continue permettre la prise en compte de phnomnes
sans mmoire. En effet, la probabilit que X soit suprieure, ou gale, x x0 , sachant que X
est suprieure, ou gale, x0 , dpend de la valeur de x, et est indpendante de la valeur de x0
(on a : P( X x x0 X x0 ) P( X x) ).
Autrement dit, une loi exponentielle modlise la dure de vie dun phnomne sans mmoire,
ou sans vieillissement, ou sans usure : la probabilit que le phnomne dure au moins s + t
units de temps sachant quil a dj dur t units de temps sera la mme que la probabilit de
durer s units de temps partir de sa mise en fonction initiale. Par exemple, il est souvent
admis que la dure de vie T d'un dispositif lectronique obit une loi exponentielle. Aussi la
probabilit de bon fonctionnement dans un intervalle de temps u, u t , c'est--dire
14
au
P ( X x0 x)
fait
x0 x
X x0 x .
que
On
P ( X x0 )
x0
f ( x) dx
et
f ( x) dx . Aussi P( B A) quivaut P( X x0 x X x0 ) .
P( B) P( A B)
P( A)
P( B)
.
P( A)
Ainsi
P ( B ) P ( X x0 x)
P( B A)
P( A)
P ( X x0 )
x x
du
u
e
du
x0 x
( x0 x )
x0
x0
c) LOI NORMALE
f (x)
points d'inflexion
f(x) =
1
2
f (x)
2 petit
2 grand
0
M-
M+
D , ; moyenne = M ; variance = .
2
Application : Cette loi s'applique dans le cas de processus dont la distribution est symtrique
et pour lesquels la moyenne et l'cart type sont estims. Exemple : Variations de la longueur
de pices fabriques en sries.
Cette loi permet de modliser une donne qui est la somme d'un grand nombre de donnes
alatoires (thorme central limite).
Rappel : A la place de la densit de probabilit f (x), on peut utiliser la fonction de rpartition
F(x) pour caractriser la distribution d'une variable alatoire X.
On a : F ( x) P( X x)
f (u ) du pour x .
15
p (x ) 1
i 1
1/3
1/6
xi
0
1
1/6
0
6
xi
Ensemble de rectangles de mme largeur dont les surfaces sont proportionnelles aux probabilits p(xi).
16
Dfinitions
N
xi p( xi ) .
i 1
p c ( xi ) p ( x l ) .
l 1
1
1
5
Dans l'exemple prcdent, on a : pc ( x1 ) , pc ( x2 ) , pc ( x3 ) , pc ( x4 ) 1.
6
2
6
Application : Les variables alatoires discrtes s'appliquent dans le cas d'injection directe de
donnes empiriques dans le modle. Exemples : Types de pices, taille des lots.
17
Deux cas sont considrer, soit on a une connaissance partielle des donnes du
systme (moyenne, minimum, maximum, ...), soit on dispose des donnes du systme.
19
REAL data
Mean = 5,02
NORMAL DISTRIBUTION :
Sq Error = 0,0008231
intervals = 21
Min = -0,4531
Range : -1 to 12
Max = 11,3
NORM.(5,02 ; 1,88)
Max Min
Max Min
.
x Min n
21
21
Max
.
Cl. n
20
V.1 VRIFICATION
La vrification consiste s'assurer que le modle fonctionne comme le concepteur le
dsire (pas d'erreur de logique), ce qui ncessite de pouvoir isoler les erreurs (tape la plus
difficile) afin de les corriger. La vrification est rendue plus facile si on commence par un
modle simple qu'on amliore (enrichi) progressivement. Les techniques (ou comportement
avoir) suivantes permettent l'isolation des erreurs :
1. Considrer toujours que le modle contient des erreurs et les chercher (approche
destructive, plutt que constructive).
2. Impliquer des personnes non concernes par la conception et l'implmentation.
3. Rviser le modle et les donnes avec l'aide d'au moins un client et un connaisseur du
langage (en plus du dveloppeur).
4. Effectuer des tests :
- Remplacer des temps alatoires par des constantes,
- Tester seulement une partie du modle,
- Tester le modle dans des conditions limites. Pour cela :
- Augmenter le taux d'arrive et/ou diminuer le taux de service pour crer des
congestions, ou des phnomnes de famines de machines,
- Rduire la taille des stocks pour crer des blocages,
- Modifier la distribution des types de pices (job mix) pour augmenter l'arrive
des pices de types moins frquents,
- Augmenter le taux d'occurrence des vnements moins frquents (par exemple
une panne).
5. Gnrer et analyser la trace du modle (cf. dans SIMAN au bloc TRACE de la bibliothque
ELEMENTS) pour vrifier le cheminement des pices, les changements d'tat l'issue
d'une attente (au niveau d'une file, par une activit, ...).
6. Utiliser l'animation (technique puissante).
7. Corriger les erreurs en identifiant les vraies causes et ne pas traiter seulement les
symptmes (le raisonnement logique reste la meilleure approche).
8. Eviter des erreurs classiques, notamment vis--vis :
- De la saisie des donnes d'entre,
21
V.2 VALIDATION
Trois questions doivent tre poses :
Le modle reprsente-t-il correctement le systme rel (validit conceptuelle) ?
Les donnes sur le comportement gnres par le modle sont-elles caractristiques
de celles du systme rel (validit oprationnelle) ?
L'utilisateur a-t-il confiance dans les rsultats du modle (confiance) ?
Trois points de vue sont prendre en compte :
- Celui du dveloppeur,
- Celui d'une personne valuant le modle (superviseur, client),
- Celui de l'utilisateur final (dcideur).
Trois types de tests :
1. Le comportement est-il raisonnable ?
- Continuit : Petits changements dans les paramtres d'entre
petits changements dans les variables de sortie et les variables d'tat.
- Consistance : Excutions presque identiques
rsultats presque identiques (exemple : Gnrateur alatoire chang).
- Dgnrescence : Suppression d'une composante (d'un mode ) du modle
effets sur les rsultats (exemple : Une machine supprime).
- Conditions absurdes : Paramtres d'entres absurdes
rsultats absurdes (exemple : Porter le budget de la publicit l'infini ne doit
pas entraner des ventes infinies).
2. Test des donnes et de la structure du modle
Les thories et les hypothses doivent tre correctes et la reprsentation du modle doit tre en
adquation par rapport l'utilisation dsire.
Validit de faade : Le comportement semble correct pour des personnes familires
avec le systme rel (logique, entres-sorties).
Vrification de la structure et des limites : Correspondance entre le modle conceptuel et le
systme de rfrence.
3. Test du comportement du modle
22
23
p(C1 C2 ) 1 .
La probabilit 1 , associe cette estimation par intervalle, est appele niveau de
confiance ou seuil de confiance. Les valeurs les plus souvent utilises pour 1 sont : 0,90 ;
0,95 ; 0,99 et 0,999.
Chaque ralisation des deux statistiques C1 , C2 donne lieu un intervalle de confiance
numrique [c1, c2]. La notion de niveau de confiance est alors interprter dans le sens
suivant. Si l'on effectue un grand nombre de ralisations des deux statistiques ( C1 , C2 ), alors
la valeur inconnue du paramtre sera recouverte par environ 100 (1 ) % des intervalles
[c1, c2 ] ainsi obtenus.
La longueur d'un intervalle de confiance diminue :
En augmentant la taille n de l'chantillon,
En diminuant la dispersion de la variable alatoire tudie,
En choisissant un seuil de confiance moins lev.
Il existe deux types de systmes : Les systmes finis c'est--dire, ayant un vnement de fin
qui dtermine la fin de la simulation - et les systmes qui ne se terminent pas - c'est--dire,
n'ayant pas d'vnement de fin de simulation. Par exemple, un commerce qui ouvre et qui
ferme intervalles rguliers est un systme fini ; par contre, un hpital o il y a toujours au
moins un patient est un systme qui n'est pas fini.
24
25
26
T4
P3
P1
P5
P7
T5
T2
P2
P6
P4
T3
T6
De faon plus formelle, un RdP peut-tre dfini par un 4-uplet <P, T, Pr, Post> tel que :
P P1 , P2 ,, Pn est un ensemble fini et non vide de places ;
T T1 , T2 ,, Tm est un ensemble fini et non vide de transitions ;
Exercice : Exprimer sous une forme matricielle les applications Pr et Post relatives au RdP
prcdent. Valider travers quelques exemples le bon fonctionnement de lquation
dvolution du marquage : = + ( ) ,
o est le vecteur de tirs permettant une volution du vecteur de marquage, de vers .
Modlisation de la concurrence (ou logique) et de la synchronisation (et logique)
- Concurrence la fourniture de jetons dans une place : C'est la convergence d'arcs sur
une place (voir figure a suivante).
- Concurrence la consommation des jetons d'une place : C'est la divergence d'arcs
partir d'une place (voir figure b suivante). Ce conflit structurel doit tre arbitr par une
rgle de priorit quelconque lorsque le conflit est effectif (c'est--dire lorsque les
transitions aval en comptition pourraient effectivement tre actives). Ne pas arbitrer
un conflit effectif fait que le comportement du systme n'est pas entirement spcifi.
- Synchronisation dans la consommation de jetons de plusieurs places : C'est la
convergence de plusieurs arcs sur une transition (voir figure c suivante).
- Synchronisation dans la fourniture de jetons plusieurs places : C'est la divergence
d'arcs partir d'une transition (voir figure d suivante).
On notera aussi l'existence de RdP temporels, pour lesquels on associe aux places et/ou aux
transitions une temporisation dont la valeur peut se situer l'intrieur d'un intervalle a, b.
28
sortie
pice
stock
ressource
machine
ressource machine libre
Dmarrage
Arrive
pice
Sortie
pice
stock
3
ressource machine occupe
L'tat du systme modlis par le RdP est reprsent par le marquage dfinissant le nombre
de jetons contenus dans chaque place. L'volution de l'tat (reprsentant la dynamique du
systme) correspond l'volution du marquage (produit par le franchissement de transitions).
29
Modifications
a) Le modle RdP suivant indique une capacit de stockage limite 5 pices.
ressource machine libre
5
Arrive
pice
Sortie
pice
3
ressource machine occupe
stock
Arrive
pice
6/5
Dmarrage
6/5
6/5
d) La machine a un temps de setup de 1,5 units de temps. Le systme est reprsent par le
modle RdP suivant.
ressources machine libres
2
Dmarrage
1,5
Sortie
pice
3
ressources machine occupes
30
Dmarrage
T3
Arrive
pice
Sortie
pice
T2
stock
3
ressource machine
occupe
Assemblage
transition
franchissable
transition
non franchissable
31
Une documentation lectronique est fournie avec le logiciel SIMAN-ARENA travers diffrents fichiers
(ArenaBEUsersGuide.pdf, ArenaVariablesGuide.pdf, ArenaSEUsersGuide.pdf) accessibles dans le rpertoire
\Rockwell Software\Arena\.
32
- sur l'entit au travers de la valeur de ses attributs. Par exemple, travers un bloc Assign,
on peut affecter l'attribut indice_de_priorite d'une entit reprsentant une pice,
prsente dans le bloc, la valeur importante ;
- sur les variables globales du modle logiciel. Par exemple, le passage dune entit dans
un bloc Delay provoque un retard pur, ce qui aura une consquence sur la variable
TNOW.
Un programme (ou modle logiciel) labor avec ARENA est sauvegard dans un fichier
ayant pour extension .doe et est constitu :
- d'une partie modle, qui reprsente l'algorithme dcrivant les caractristiques statiques et
dynamiques des diffrents blocs fonctionnels composant le modle ;
- du cadre exprimental, qui regroupe les donnes prcisant les paramtres spcifiques
une simulation donne (conditions initiales, dure de la simulation, ).
En fait, les entits traversent uniquement les blocs fonctionnels de la partie modle.
Considrons un simple tapis roulant, ayant un temps de transport de 3 units de temps,
reprsent par le modle logiciel dcrit comme suit :
Le bloc Create, issu du template Basic Process, est tel qu'une entit est cre partir de
linstant 0, ceci toute les 2 units de temps.
Le bloc Delay, issu du template Advanced Process, force une entit sjourner 3 units de
temps dans le bloc.
Le bloc Dispose, issu du template Basic Process, dtruit toute entit entrant dans le bloc.
A travers le menu Run/Setup/Replication Parameters, on peut notamment fixer :
- le nombre de rplications (champ Number of Replications),
- le temps o se termine une rplication (champ Replication Length).
33
34
Les 2 fichiers gnrs par SIMAN-ARENA (au format txt) sont accessibles via le menu
Run/SIMAN/View (voir ci-dessous un listage partiel de ces fichiers).
Le modle RdP correspondant la partie modle du modle logiciel prcdent est dcrit dans
la figure suivante :
3
2
35
Max
Arrivals
()
Entities per
Arrival (1)
First
Creation
(0)
P
Sortie de
lentit du
bloc Create
36
Type:Value (2)
Le nombre de jetons prsents dans la place P correspond au nombre d'entits cres par le
bloc Create 1. Notons que le bloc Create na pas dentre.
b) Dispose (issu du template Basic Process) : Un bloc Dispose permet de dtruire des entits.
Celui reprsent dans la figure suivante est intitul Dispose 1 (champ Name = Dispose 1), une
entit entrant dans ce bloc est immdiatement dtruite.
En termes de RdP, ce bloc, qui na pas de sortie, quivaut une transition puit, c'est--dire,
une transition sans place situe en aval.
c) Delay (issu du template Advanced Process) : Un bloc Delay permet de retarder le passage
d'entits. Celui reprsent dans la figure suivante est intitul Delay 1 (champ Name = Delay
1), quand une entit entre dans ce bloc, elle y reste inconditionnellement pendant la dure
(alatoire ou non) indique dans le champ Delay Time.
Le nombre de jetons prsents dans la place correspond au nombre d'entits prsentes dans le
bloc Delay.
d) Seize (issus du template Advanced Process) : Une entit prsente dans un bloc Seize ne
peut sortir de ce bloc que sil existe un nombre suffisant de ressources disponibles (le nombre
et le type de ressources tant spcifis dans le bloc) ; en attendant lentit est stocke
37
( patiente ) dans une file dattente interne au bloc Seize. Le fait qu'une entit sorte du bloc
indique que les ressources, disponibles en nombre suffisant, sont saisies (et donc plus
disponibles).
Le bloc reprsent dans la figure suivante est intitul Seize 1 (champ Name = Seize 1). Pour
simplifier la comprhension, considrons que seulement un type de ressource est concern
(dans lexemple, Resource 1), alors :
- le nom de la ressource est spcifi dans le champ Resource Name, soit Resource Name =
Resource 1 (lajout dun autre type de ressource donnerait lieu une ligne supplmentaire
dans la liste Resources),
- le nombre (minimum) de ressources (de type Resource 1) disponibles est spcifi dans le
champ Quantity, par exemple Quantity = 1.
Sachant qu'une ressource peut ne pas tre disponible, les entits, en attente d'un nombre
suffisant de ressources disponibles, sont stockes dans une file d'attente, intgre (en amont)
au bloc Seize, et dont le nom est indiqu dans le champ Queue Name (soit Queue Name =
Seize 1.Queue).
reprsentation graphique de la file
dattente associe au bloc Seize 1
Le RdP suivant permet de dcrire un bloc Seize dans le cas o un seul type de ressource (dans
lexemple, Resource 1) est requis.
File dattente
(Seize 1.Queue)
Quantity
Entre d'une entit
dans le bloc Seize
ressources
disponibles
P2
P1
Sortie de l'entit
du bloc Seize
- contenir (au moins) un jeton dans la place P1, ce qui correspond la prsence dans la file
dattente d'au moins une entit dans le bloc Seize.
- contenir (au moins) Quantity jetons dans la place P2, ce qui signifie quau moins
Quantity ressources Resource Name sont disponibles.
Le fait de franchir la transition T a pour effet d'ter 1 jeton dans la place P1 et dter Quantity
jetons dans la place P2, ce qui reprsente la sortie dune entit du bloc Seize et la saisie de
Quantity ressources Resource Name.
Le nombre de jetons prsents dans la place P1 correspond au nombre d'entits prsentes (en
attente) dans le bloc Seize.
Une file dattente est caractrise (configure) par le bloc Queue (issu du template Basic
Process, appartenant au cadre exprimental et donc non travers par une entit), voir la
figure suivante :
- le champ Name permet de dclarer une file dattente, par exemple Seize 1.Queue,
- le champ Type permet dindiquer le mode de gestion de la file dattente. Par dfaut, le
mode de gestion est de type First In, First Out (FIFO).
Le bloc Queue permet de dfinir plusieurs files d'attente dans un mme modle.
Les types de ressource, ainsi que le nombre pour chaque type de ressources, sont indiqus
dans le bloc Resource (issu du template Basic Process, appartenant au cadre exprimental
et donc non travers par une entit), voir la figure suivante :
- le champ Name permet de dclarer une ressource, par exemple Resource 1,
- le champ Capacity permet de dfinir le nombre dunit de la ressource, par exemple 1.
Le bloc Resource permet de dfinir plusieurs types de ressources dans un mme modle.
e) Release (issu du template Advanced Process) : Un bloc Release permet de relcher des
ressources. Celui reprsent dans la figure suivante est intitul Release 1 (champ Name =
Release 1). Quand une entit entre dans ce bloc, elle libre (relche) la, ou les ressources dont
le nom est spcifi dans le champ Resource Name, par exemple Resource 1, le nombre de
ressources libres est spcifi dans le champ Quantity, par exemple 1. On peut noter que
lexcution de cette tche est instantane, autrement dit le temps de passage dune entit dans
un bloc Release est nul. Pour simplifier, seul un type de ressource est concern (dans
lexemple, Resource 1), lajout dun autre type de ressource donnerait lieu une ligne
supplmentaire dans la liste Resources.
39
Le RdP suivant permet de dcrire un bloc Release dans le cas o un seul type de ressource
(dans lexemple, Resource 1) est libr.
P1
Quantity
ressources
disponibles
T'
Le fait de franchir la transition T' provoque l'apparition de Quantity jetons dans la place P1,
ce qui reprsente la sortie dune entit du bloc Release et la mise en disponibilit (le
relchement ) de Quantity ressources Resource Name.
f) Assign (issu du template Basic Process) : Un bloc Assign permet dassigner une valeur,
notamment, un attribut, une variable (ventuellement propre SIMAN, par exemple relative
ltat dune ressource), durant lexcution dune simulation. Quand une entit entre dans un
bloc Assign, lexpression - logique ou mathmatique - spcifie dans le champ New Value est
value et assigne, selon le contenu du champ Type (Attribute, Variable, ), un attribut
(rattach lentit activant le bloc) ou une variable. Dans la figure suivante, le bloc
intitul Assign 1 (champ Name = Assign 1) permet de dclarer :
- une variable Variable 1 1 ;
- un attribut Attribute 1 TNOW ;
- une variable Variable 2 STATE(resource 1). La variable STATE(resource 1) restitue
ltat courant de la ressource resource 1 (les valeurs possibles sont : -1=Idle ; -2=Busy ;
-3=Inactive ; -4=Failed) ;
- une Variable 3 Attribute 1.
Cet exemple est propos dans \Exemples\Assign\Assign.doe.
40
Sortie de l'entit
du bloc Assign
Variable 1 := 1
Attribute 1 := TNOW
Variable 2 := STATE(resource 1)
Variable 3 := Attribute 1
Le bloc Variable (issu du template Basic Process, appartenant au cadre exprimental et donc
non travers par une entit) permet de dclarer des variables.
g) Decide (issu du template Basic Process) : Un bloc Decide permet daiguiller un flux
dentits vers diffrents blocs de destination, il comporte une entre et plusieurs sorties.
Laiguillage est ralis, selon le contenu du champ Type, daprs un critre de type condition,
41
ou probabilit. Les conditions sont par exemple bases sur des valeurs dattributs, de
variables, une expression. Le routage se fait via un ensemble de branches.
Quand une entit entre dans un bloc Decide, chaque condition de branchement est teste de
manire squentielle (i.e., dans lordre de leurs dclarations dans le bloc). La branche
slectionne par une entit est la premire branche pour laquelle la condition de branchement
est satisfaite ; lentit est alors aiguille vers le bloc correspondant. Si aucune branche nest
satisfaite, lentit est dtruite. Un bloc Decide, intitul Decide 1 (champ Name = Decide 1),
est dcrit dans la figure suivante. Le critre daiguillage vers les 2 sorties possibles est ralis
partir de la condition If Variable 1 >= 1 (avec un rsultat True ou False).
Le critre utilis par le bloc Decide 2 est de type probabilit (2 sorties, ayant chacune une
probabilit gale 0.5, sont possibles).
42
critre
de type
condition ou
probabilit
.
.
.
Sorties du bloc
Decide
Notons que toutes les sorties dun bloc Decide doivent tre connectes un bloc
(ventuellement un bloc Dispose si la sortie nest pas utile ).
Match 1.Queue1
Match 1.Queue2
Match 1
Le bloc Queue (issu du template Basic Process) dcrit ci-dessous indique la dfinition des
files dattente Match 1.Queue1 et Match 1.Queue2.
43
synchronisation
Entres du
bloc Match
Match 1.Queue1
Sorties du
bloc Match
Match 1.Queue2
Notons que toutes les sorties dun bloc Match doivent tre connectes un bloc
(ventuellement un bloc Dispose si la sortie nest pas utile ).
i) Batch (issu du template Basic Process) : Un bloc Batch permet de regrouper des entits
entre-elles. Les entits une fois regroupes gnrent la sortie dune entit (notons que cette
entit peut avoir un nouveau Type dentit, ce qui peut tre indiqu dans le champ
Representative Entity Type). Le groupement peut tre rversible (ou non) selon que le champ
Type = Temporary (ou Permanent) : un regroupement rversible (Temporary) permet en
utilisant un bloc Separate - de dgrouper par la suite les entits. Le nombre ncessaire
dentits pour former un groupe est indiqu dans le champ Batch Size. Une entit arrivant
dans un bloc Batch est place dans la file dattente associe au bloc, ceci tant que le nombre
dentits accumules dans la file dattente nest pas suffisant pour effectuer un regroupement.
Le champ Rule assign la valeur By Attribute permet deffectuer le regroupement dentits
en fonction dun attribut, dans le cas contraire (cas par dfaut) le champ Rule est assign la
valeur Any Entity.
Un exemple est dcrit dans la figure suivante :
44
Sortie du
bloc Batch
Batch Size
(2)
j) Separate (issu du template Basic Process) : Un bloc Separate permet de dupliquer des
entits lorsque le champ Type = Duplicate Original. Le nombre de duplication cre est
spcifi dans le champ # of Duplicates. Lorsquune entit entre dans ce bloc et comporte des
attributs, les attributs de toutes les entits dupliques sont identiques aux valeurs courantes
des attributs de lentit dupliquer. L'entit originale sort par la sortie Original, les # of
Duplicates entits (celles dupliques) sortent par la sortie Duplicate. Un bloc Separate,
intitul Separate 1 (champ Name = Separate 1), est dcrit dans la figure suivante. Un
exemple est donn dans \Exemples\Separate\Separate.doe.
45
Entre
de
l'entit
Sortie de lentit
originale
Sortie de
(# of Duplicates)
entits dupliques
46
temps (relatif au temps de traitement) minimum indiqu dans le cadre Delay (le
relchement de la ressource est suppos ralis en aval).
3i) Seize Delay Release, idem. au cas 2i) avec une gestion au niveau du relchement de la
ressource saisie .
4i) Delay Release, idem. au cas 3i) sans la gestion de lallocation de la, voire des
ressources ncessaires au traitement dune pice (cette gestion est suppose ralise en
amont du bloc).
Le RdP correspondant au cas i) est dcrit au VIII.2.c. Les RdP correspondant au cas 2i, 3i, 4i
sont issus de concatnation des RdP dcrits au VIII.2.c,d,e.
transition
compteur = + 1
47
1.b) Lorsque le champ Type = Time Between, le bloc Record permet de recueillir les temps de
passage entre 2 entits successives. Le nom du tally8 est spcifi dans le champ Tally Name.
Voir le bloc Statistic (voir 2.b) pour effectuer un enregistrement des donnes.
transition
X
X(k + 1) - X(k)
X(k) : tps de
franchissement
de lentit n k
1.c) Lorsque le champ Type = Time Interval, le bloc Record permet de recueillir les temps
mis par les entits traversant une partie (ou l'ensemble) d'un modle. Le nom du tally est
spcifi dans le champ Tally Name.
Par exemple, on souhaite pour chaque entit recueillir la diffrence entre le temps de sortie du
bloc M et le temps de sortie du bloc N. Soient t N (i), t M (i) les temps de sortie de l'entit n i des
blocs N et M respectivement (cf. schma suivant).
Bloc N
Bloc M
tN (i)
tM (i)
48
Bloc N
Assign
(Attribute 1
= TNOW)
tN (1),
tN (2),
.
.
Bloc M
tM (1) - tN (1),
tM (2) - tN (2),
.
.
Record 1
(Attribute
Name =
Attribute 1)
tM (1),
tM (2),
.
.
49
2i) A travers une statistique, note Statistic 2, on peut disposer de la moyenne, du minimum,
du maximum du nombre de ressources, par exemple, Resource 1, occupes. Pour cela,
prendre la configuration suivante :
champ Name = Statistic 2, champ Type = Time-Persistent, champ Expression =
NR(Resource 1) (voir figure ci-dessous).
3i) A travers une statistique, note Statistic 3, on peut disposer de donnes statistiques de la
file d'attente, par exemple, Process 1.Queue, classes par catgorie, avec pour chacune des
catgories, son nombre d'occurrences, le temps moyen de chaque occurrence et le pourcentage
des temps d'occurrences par catgorie. Considrons, par exemple, les 3 catgories suivantes :
- Vide lorsque la file d'attente ne contient pas d'entit ;
- Moitie chargee lorsque la file d'attente contient entre 1 et 10 entits ;
- Chargee au-del de 10 entits.
Pour cela, prendre la configuration suivante :
champ Name = Statistic 3, champ Type = Frequency, champ Frequency Type =
Value, champ Expression = NQ(Process 1.Queue), 3 lignes dfinir dans le
champ Categories, savoir :
Constant or Range
Value
Constant
Range
Range
10
High
Value
Category Name
Category Option
Vide
Include
10
Moitie chargee
Include
1000
Chargee
Include
Constant or Range
Value
Category Name
Category Option
Constant
Zero
Include
50
Constant
Une
Include
Constant
Deux
Include
Constant
Trois
Include
51
bon fonctionnement travers une visualisation tape par tape (voir commande Step | ) du
cheminement des entits dans le modle de simulation.
Un exemple est donn dans le fichier \Exemples\Animation_Un_exemple\Animation.Doe.
Animation des entits
Une animation, rattache aux connecteurs, est propose par dfaut (voir option Animate
Connectors dans le menu Object). Elle permet de visualiser le flux des entits le long des
connecteurs, i.e., les liens reliant les modules entre eux :
connecteur
Create
0
Process
0
Notons que le mouvement des entits le long des connecteurs n'a pas d'impact sur le temps de
simulation (TNOW).
La simulation de temps de transport ncessite l'utilisation du bloc STATION du template
Advanced Transfer.
L'image initiale utilise pour reprsenter un type d'entit donn est dfinie dans le bloc Entity
(issu du template Basic Process, appartenant au cadre exprimental et donc non travers par
une entit). L'image est par dfaut celle note Picture.Report et est indique dans le champ
Initial Picture du module Entity. Le changement de l'image associe une entit se fait via
son passage dans un bloc Assign en assignant une nouvelle image l'attribut Entity Picture
(par exemple, Type : Entity Picture, Entity Picture : Picture.Truck).
Le menu Edit/Entity Picture permet d'accder d'autres images (contenues dans des fichiers
.plb). Le bouton Open permet douvrir un fichier .plb particulier, lequel contient des images.
Par exemple, le fichier machine.plb met disposition des images relatives des machines.
Il est galement possible de crer ses propres images, lesquelles seront sauvegardes dans un
fichier .plb. Pour crer une image, cliquez sur le bouton Add de droite, ce qui fait apparatre
une case grise. Le fait de double cliquer dans cette case permet douvrir une fentre (Picture
Editor) o il est possible de concevoir une image. Fermer la fentre une fois limage conue ;
elle apparatra alors la place de la case grise. Le bouton Save permet de sauvegarder dans un
fichier .plb de votre choix la, voire les images cres.
La barre d'outils Animation (Animate)
Cette barre d'outils fournit une interface avec les objets de base de l'animation (cocher la case
Animate de la fentre issue du menu View/Toolbars pour faire apparatre si ncessaire
cette barre d'outils).
Affichage d'tat : Clock Date Variable Level Histogram Plot
Couleur
53
Dans la fentre grise, sont dcrites des informations relatives aux donnes (le nombre de
donnes, les valeurs minimale et maximale, la moyenne, lcart type) et lhistogramme (la
porte (la plus petite valeur et la plus grande valeur considres dans lhistogramme), le
nombre dintervalles (en O( nbre de pts ) et compris entre 5 et 40)).
9
A ce niveau, vous pourriez crer un fichier de donnes (.dst) correspondant une certaine
distribution en slectionnant Generate New.
54
Pour modifier les paramtres de lhistogramme des donnes, savoir le nombre dintervalles,
la borne infrieure (les donnes ayant des valeurs infrieures tant ignores) et la borne
suprieure (les donnes ayant des valeurs suprieures tant ignores), faire :
Options/Parameters/Histogram.
Pour trouver la meilleure distribution correspondant cet histogramme, faire : Fit/Fit All10.
10
55