Cours Simulation
Cours Simulation
S SY YS ST T M ME ES S D DE E P PR RO OD DU UC CT TI IO ON N
R R S SE EA AU UX X D DE E P PE ET TR RI I
S SI IM MA AN N - - A AR RE EN NA A
Jean-Louis Boimond
Plan
I Introduction la simulation
I.1 Ltape de modlisation
I.2 Les limites de la simulation
II La simulation des systmes de production
II.1 Outils de modlisation
II.2 Application aux systmes de production
II.3 Utilisation de l'informatique
III Rappels de probabilits et statistiques
III.1 Variables alatoires continues
III.2 Lois de distribution standard
III.3 Variables alatoires discrtes
IV Donnes d'entre du systme
IV.1 Connaissance partielle des donnes
IV.2 Donnes existantes (accessibles la mesure)
V Vrification et validation des modles
V.1 Vrification
V.2 Validation
VI Interprtation des rsultats
VI.1 Analyse des systmes finis
VI.2 Analyses des systmes qui ne se terminent pas
VII Notions lmentaires sur les rseaux de Petri
VII.1 Gnralits
VII.2 Graphes d'vnements
VII.3 Exemples
VII.4 Autres classes de rseaux de Petri
VIII Le langage de simulation SIMAN-ARENA
VIII.1 Notions de base
VIII.2 Description de quelques blocs permettant la construction dun modle
VIII.3 Description de quelques blocs permettant lanalyse dun modle
VIII.4 Animation graphique
VIII.5 Donnes d'entres
VIII.6 Analyse des rsultats
1
Annexe : Utilisation des templates Elements et Blocks
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
([Link]
Dossier de prsentation Arena. La solution simulation , Ouroumoff Diffusion, Lyon.
2
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.
Les domaines d'application sont divers. Sont lists ci-dessous quelques classes dapplications
et quelques exemples de problmes typiques rattachs ces classes :
Systmes de flux de production
- quilibrage de lignes dassemblage,
- conception de systmes de transfert entre des postes,
- dimensionnement des stocks dun atelier,
- comparaison de pilotage,
- valuation de la charge prvisionnelle,
- tude de la synchronisation entre les rceptions des pices et lassemblage.
Flux logistiques et systmes de transport
- conception et dimensionnement dentrepts,
Calendrier
SCHEDULES
CREATE
Operateur
SEIZE
10
DELAY
DISPOSE
Date de sortie
VARIABLES
Date de sortie
ASSIGN
NR(Machine)
NR(Operateur)
DSTATS
Operateur
RELEASE
1
DELAY
1
DELAY
Modlisation Analyse des
rsultats
3
- dimensionnement dune flotte de camions,
- tude de procdures de contrle des flux de vhicules en circulation.
Production des services
- tude de transactions bancaires,
- gestion de restaurants,
- comparaisons de politiques de maintenance des avions.
Systmes informatiques et tlcommunications
- valuation de protocoles de gestion des transactions de bases de donnes,
- tude de la file dattente mmoire dun serveur,
- tude des comportements des utilisateurs,
- conception et dimensionnement de hubs ( moyeu ).
Autres classes dapplications
- domaine militaire (support logistique, coordination des oprations, ),
- gestion dhpitaux (personnel, lits, service durgence, ),
- le nuclaire, la mto, les jeux, ...
Mthodologie gnrale
On distingue classiquement quatre phases distinctes : La modlisation (reprsenter le
comportement du systme), la programmation, l'exprimentation et l'interprtation des
rsultats (accompagne dactions).
(a) Modle conceptuel : Le modle n'est qu'une approximation du systme, il est conditionn
par l'objectif de l'tude.
(b) Exprimentation : Il s'agit de construire des thories, ou hypothses, qui prennent en
compte le comportement observ.
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-Arean ; ce langage de simulation permet galement dextraire des
rsultats issus de diffrentes exprimentations (cf. chp. VIII).
Figure 1 : Mthodologie d'une simulation.
Rsultats
Modle conceptuel
(a)
Programme de
simulation
Analyse & Modlisation
Interprtation
& Action
Correction
Correction
Vrification
Programmation
Exprimentation
(b)
Validation
Systme (rel)
4
I.1 LTAPE DE MODLISATION
Ltape de modlisation est une phase essentielle la simulation. Diffrents points doivent
tre abords :
Dfinir l'objectif de la modlisation (li au cahier des charges) : Pourquoi modlise-t-on ?
Qu'tudie-t-on ? Que veut-on amliorer, ou faire ?
Dfinir les lments du systme (via la ralisation d'une fonction, ou d'un processus) et les
limites du systme (les entres, les sorties).
Dfinir les interactions entre ces lments (hirarchie).
Dfinir la dynamique du systme (entits qui circulent entre les lments, comportement du
systme au cours du temps).
Abstraction (choisir les lments du systme pertinents pour l'tude).
Formalisation, conceptualisation : Modle mathmatique (algbre (max, +), chanes de
Markov), modle logiciel (Simulink, Siman-Arena), modle graphique (rseaux de Petri,
bond graphs).
I.2 LES LIMITES DE LA SIMULATION
Certaines limites sont dues la technique elle-mme, d'autres sont dues aux produits
actuellement disponibles sur le march (notons quune formation sur les logiciels utiliss est
souvent ncessaire) :
La programmation demande un certain niveau d'expertise. La qualit des rsultats fournis
lors de l'analyse des solutions est lie la qualit de la modlisation et au savoir-faire du
modlisateur (la modlisation est un mtier).
La simulation n'est pas une technique d'optimisation au sens propre. Elle ne peut qu'tablir
les performances d'une solution conue et imagine par l'utilisateur. C'est une technique
entirement itrative qui ne propose pas de solution finale mais qui permet seulement
l'utilisateur d'envisager des choix possibles. En tout tat de cause, c'est lui qui devra dcider
de ce qui rpond le mieux aux problmes poss.
La difficult lie la simulation est double :
Les rsultats de simulation sont souvent complexes interprter. On tudie des
phnomnes alatoires et les techniques d'analyse demandent de la rigueur ; il est souvent
difficile de faire la part du crucial et de l'anecdotique (le modle doit tre ni trop grossier,
ni trop prcis).
Souvent pour des raisons financires, on doit aller au plus vite vers une solution finale
(sans passer trop de temps explorer dautres solutions intermdiaires).
5
II LA SIMULATION DES SYSTMES DE PRODUCTION
Les systmes automatiss de production - l'initiative de l'Homme - sont caractriss
par une forte complexit et flexibilit. Selon un certain point de vue, ils peuvent tre spcifis
par des modles vnements discrets (un modle est vnements discrets lorsque lespace
d'tat est vnements discrets, i.e., les transitions entre tats sont associes l'occurrence
d'vnements discrets asynchrones). Les systmes de trafic (arien, ferroviaire, ), les
systmes de communication, les systmes informatiques sont d'autres exemples de systmes
dynamiques dont l'activit est due des vnements discrets, dont certains sont provoqus
(dpart dun train, appui sur une touche d'un clavier) et d'autres pas (panne d'un quipement).
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 performances
1
, 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),
1
Lvaluation de performances se base souvent sur le temps de cycle (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).
Historique,
statistiques
Evaluation de
performances
Systme de
production
Modle
Programme
6
- Comparer des alternatives (parmi des choix possibles).
La simulation permet de rpondre la question que se passe-t-il si ... ? pour l'tude de
systmes de production complexes (structure, comportement dynamique, taille, choix
multiples).
II.1 OUTILS DE MODLISATION
Les systmes de production font partie des systmes (dynamiques) vnements discrets
2
.
Parmi les modles utiliss pour l'tude de ces systmes, il y a :
- Les rseaux de files d'attente valuation analytique de performances,
- Les rseaux de Petri analyse des proprits, valuation de performances,
simulation,
- Les modles (et programmes) de simulation.
De faon gnrale, un modle est compos :
- De variables,
- D'objets (centres de services, clients, ressources) caractriss par des attributs :
Fixes (i.e., dont la valeur ne change pas au cours du temps, exemple : Type de
pice),
ou
variables (i.e., dont la valeur change au cours du temps, exemple : Occupation
dune machine),
- Des relations entre ces objets (services effectus au cours du temps).
Exemple :
Attributs fixes : Pices A, Pices B
Attributs variables : Temps de traitement de la machine M1 (t1A, t1B)
L'tat du systme un instant donn est caractris par l'ensemble des valeurs des variables
et des attributs de tous les objets. Le modle reproduit l'volution au cours du temps de l'tat
3
du systme sous l'effet des activits qui y sont ralises.
2
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,
Pices A
Pices B
M1
M2
M3
t1A
t1B
7
Evolution d'une simulation vnementielle : Le modle du systme passe au cours du temps
d'un tat un autre suite au dclenchement d'un vnement. A chaque vnement est associe
une fonction excuter laquelle peut modifier l'tat du systme travers le dclenchement
d'un, ou de plusieurs vnements.
II.2 APPLICATION AUX SYSTMES DE PRODUCTION
1. Pourquoi ?
Complexit croissante, interactions trs fortes entre les diffrents lments d'un systme de
production : Ncessit d'une approche globale.
Prise en compte de tous les aspects (donnes techniques, gomtrie du rseau de transport,
capacit des files d'attente, contraintes sociales, travail en quipe, heures supplmentaires).
2. Indicateurs de performances et prise de dcision
A partir de l'historique de circulation des flux de produits, on obtient des valeurs des
indicateurs de performances lis au volume de production, l'engagement des ressources et
ventuellement la satisfaction du client.
- Volume de production :
- Nombre et type de pices produites,
- Nombre et type de pices dfectueuses, ...
- Engagement des ressources :
- Taux d'utilisations : Machines, outils, personnel, stock, ...,
- Temps pass par un lment dans un tat : Ressources, machines (en fonctionnement,
inoccupes, en panne), cycle de pice, ...
Ces indicateurs de performances sont ensuite agrgs pour des prises de dcisions relatives
l'aide la conception, la conduite, ...
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
vnement C
vnement B
vnement A
vnements
datables
chancier
Moteur
Excution de
lvnement
dont la date
doccurrence
est la plus
proche
8
3. A quel niveau ?
a) La simulation : une aide la conduite
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
donne.
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).
Systme de
commande
Systme
physique
Ralit
Modle de
commande
Modle du
systme
physique
Simulation
Paramtrage automatique
Proposition
de dcisions
Rsultats
Dcision
9
b) La simulation : une aide la traabilit (implicite/explicite)
L'objectif est de concevoir, dvelopper un systme de traabilit.
Bien mettre en vidence les entits identifier, recenser le contenu de l'historique des produits
et du (des) processus, dfinir les informations ventuellement utilises dans le systme de
commande.
Le systme de traabilit devant tre adapt sa structure, conforme l'attente de
l'environnement et en accord avec les standards et les rglements.
On peut chercher synthtiser un systme de traabilit qui soit fiable (le reflet de la ralit)
et robuste (l'outil de simulation permettant la prise en compte de diffrents scenarii possibles,
ceci sans risque pour le systme (rel)).
Les donnes utiliser (recueil non exhaustif) concernent l'ensemble de l'tat (dynamique) du
systme pilot dans le but de retrouver l'historique, l'utilisation ou la localisation d'un article
ou d'une activit, au moyen d'une identification enregistre (1994, ISO 8402) :
- Produits, articles, lots (entits),
- Moyens de production (capacit des machines),
- Stocks, systmes de transfert (tat),
- Oprateurs (qualification, nombre, horaires),
- Systme d'identification,
- Structure de traitement des donnes recueillies.
Ralit
Simulation
Systme de
commande
Systme de
traabilit
Modle de
commande
Historique
(produits,
processus)
Proposition
de dcisions
Rsultats Dcisions
Systme
physique
Modle du
systme
physique
Identification
Identification
Historique
(produits,
processus)
Modle de
traabilit
Identification
Identification
10
c) La simulation pour dfinir un futur systme
Aide la dcision d'investissement :
Choix technologiques et organisationnels : Equipements, stratgies de gestion de production
(gestion des stocks, taille des lots, seuils de rapprovisionnement, nombre de Kanban),
organisation du travail (cellules, lignes, mixte), choix de gamme.
Evaluation des diffrents scnarii en fonction des critres les plus pertinents.
Exemples d'applications :
Dimensionnement d'ateliers : Nombre et type des quipements (en fonction du cot),
capacit des stocks, nature du systme de transport
Choix de production (tude de rentabilit)
II.3 UTILISATION DE LINFORMATIQUE
On a trois alternatives :
1. Ecrire le programme correspondant au problme et au systme donns. Les moyens
informatiques sont les langages de programmation gnraux (C, Fortran, Pascal, ...). La mise
en uvre peut tre longue, par contre on dispose dune grande flexibilit.
2. Utiliser un logiciel, appel simulateur, ddi un type de systmes et un type de problme.
Le modle est donn et il suffit de le paramtrer pour l'adapter au cas tudi. Cette alternative
prsente lavantage de ne pas programmer (seules des donnes sont entrer), par contre il
nest pas toujours simple de trouver le logiciel ddi adapt au systme et au problme
concerns.
3. Le dveloppement d'un modle de simulation est ralis au travers d'un programme crit par
l'utilisateur partir de primitives de modlisation offertes par le langage (les langages de
simulation). Ce type de logiciel offre une grande flexibilit mais avec des cots de
dveloppement parfois importants. Certains langages, comme SIMAN, proposent des
primitives de modlisation particulirement adaptes aux systmes de production (primitives
de modlisation des ressources et fonction de transport). SIMAN est un des principaux
logiciels standards en France (version ducative prix tudi).
Systme de
commande
Systme
physique
Conception
du systme
Implmentation
Modle de
commande
Modle du
systme
physique
Simulation Ralit
11
III RAPPELS DE PROBABILITS ET STATISTIQUES
Sachant qu'il est impossible quelque soit la puissance des ordinateurs - de simuler
toutes les dviations possibles d'un systme, l'outil statistique est une alternative pour prendre
en compte, tudier et matriser les consquences des variations alatoires des systmes.
La thorie des probabilits, branche des mathmatiques, permet de modliser et d'tudier des
phnomnes alatoires. On parle alors d'vnements alatoires, de lois de probabilit, de
variables alatoires, ...
Dans un systme de production, de nombreux phnomnes ont un caractre alatoire, par
exemple :
- La dure opratoire d'une opration manuelle,
- La dure de vie d'un outil,
- L'absentisme des oprateurs,
- La priode d'arrive des ordres de fabrication dclenchant une production.
La statistique repose sur l'observation de phnomnes concrets. Le but est de recueillir des
donnes d'observation, de les traiter et de les interprter. On parle alors de population
d'individus, de variables caractristiques, d'chantillons, de moyennes, ...
Les modles probabilistes permettent de reprsenter approximativement les donnes
observes (imprcision, erreurs, rpartition dans la population) comme des variables alatoires
suivant une certaine loi de probabilit modles simplificateurs.
L'chantillon tant tir au hasard, les caractristiques des donnes traiter sont des variables
alatoires application de thormes de probabilits (par exemple, le thorme centrale
limite
4
).
La statistique exploratoire ou descriptive (analyse de donnes) permet de structurer, de
rsumer l'information contenue dans les donnes.
Mthodes de classification des individus en groupes homognes ;
Mthodes factorielles (analyse en composantes principales, analyse des
correspondances) rsumant les variables par des composantes synthtiques.
La prvision statistique permet de trouver une relation entre une variable et plusieurs variables
rgression linaire.
La statistique infrentielle
5
permet notamment :
- L'estimation de moyennes,
- Le test (ou la vrification) d'hypothses.
4
La moyenne d'un chantillon de taille n extrait d'une population quelconque de moyenne et d'cart type est
distribue selon une loi pratiquement normale de moyenne et d'cart type
n
= soit
=
v
u
dx x f v X u P ) ( ) (
o ) (x f =
non si
b x a si a b
0
) ( / 1
.
13
La fonction ) (x f , appele densit de probabilit, dfinit le comportement alatoire
(stochastique) de la variable alatoire X et permet ainsi de caractriser sa loi de probabilit
(distribution).
La loi uniforme (distribution of maximum ignorance) est utilise lorsque l'on a aucune
information excepte la connaissance du domaine [ ] b a, .
Remarque : Pour une variable alatoire continue, considrer un vnement du type X = x
n'a pas de sens. En effet, on a : 0 ) ( = x X x P .
) (x f est une densit de probabilit
= =
+
) 1 ' , . . . ( 1 ) (
0 ) (
certain vnement l de probabilit d a c dx x f
R x x f
.
On dfinit la moyenne M, aussi appele esprance mathmatique E(X), par :
+
= dx x f x M ) ( .
On dfinit la variance
2
( 0
2
), aussi note Var(X), par :
2 2 2
) ( M dx x f x
|
\
|
=
+
, encore gale
+
dx x f M x ) ( ) (
2
.
Rappel (Moyenne, variance) : La moyenne constitue un paramtre de position, qui renseigne
sur l'ordre de grandeur des valeurs prises par la variable alatoire X. La variance est une
mesure de la dispersion de ces valeurs autour de leur moyenne. Plus la variance est faible
( 0 ), plus les valeurs prises par X sont concentres autour de la moyenne.
Exemple : Dans le cas de la loi uniforme prcdente, on a :
+
=
=
b
a
b a
dx
a b
x
M
2
et
12
) (
2
2
2
2
2
a b b a
dx
a b
x b
a
= |
\
| +
.
On dfinit l'cart type (standard deviation) par =
2
.
La plus grande partie des phnomnes alatoires rencontrs dans la pratique peut tre tudie
via un nombre restreint de lois de distribution. Nous allons prsent voire les principales lois
de distributions.
1
b a
f(x)
0
a u v b x
aire = ) ( v X u P
14
III.2 LOIS DE DISTRIBUTION STANDARD
a) LOI TRIANGULAIRE
=
non si x f
b x m si
a b m b
x b
x f
m x a si
a b a m
a x
x f
0 ) (
) )( (
) ( 2
) (
) )( (
) ( 2
) (
[ ]
18
;
3
; ,
2 2 2
2
mb ab am b m a b m a
M b a D
+ +
=
+ +
= = .
Application : On utilise cette loi lorsqu'on dispose d'une estimation du minimum, du
maximum et de la valeur la plus probable.
Exercice : Soient 3 , 2 , 0 = = = b m a , calculer ) 5 , 2 1 ( X P ). Rponse : 0,75.
b) LOI EXPONENTIELLE
=
> > =
non si x f
x si e x f
x
0 ) (
) 0 ( 0
1
) (
/
[ [
2 2
; ; , 0 = = + = M D .
f(x)
1
0
x
2
b a
a m b x
f(x)
aire = 1
15
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,
0
x x + , sachant que X
est suprieure, ou gale,
0
x , dpend de la valeur de x, et est indpendante de la valeur de
0
x . Autrement dit, on a : ) ( ) (
0 0
x X P x X x x X P = + .
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
[ ] t u u + , , c'est--dire ) ( u T u t T P + , dpend uniquement de la longueur de cet intervalle,
et non de sa position par rapport l'axe des temps (on a : ) ( ) ( t T P u T u t T P = + ).
Dmonstration : Soient l'vnement A correspondant au fait que
0
x X et l'vnement B
correspondant au fait que x x X +
0
. On a
+
=
0
) ( ) (
0
x
dx x f x X P et
+
+
= +
x x
dx x f x x X P
0
) ( ) (
0
.
Aussi ) ( A B P quivaut ) (
0 0
x X x x X P + .
Sachant que : ) ( ) ( ) ( ) ( ) ( B A P B P A B P A P B A P = = (probabilit conditionnelle),
on a
) (
) ( ) (
) (
A P
B A P B P
A B P
= .
Sachant que ) ( B A P quivaut 1 ) (
0 0
= + x x X x X P , on a
) (
) (
) (
A P
B P
A B P = .
Ainsi
x
x
x x
x
u
x x
u
x
u
x x
u
e
e
e
e
e
du e
du e
x X P
x x X P
A P
B P
A B P
+
+
+
+
= =
(
(
(
(
= =
+
= =
0
0
0
0
0
0
) (
0
0
1
1
) (
) (
) (
) (
) (
qui est fonction de x uniquement (indpendant de
0
x ).
16
c) LOI NORMALE
] [ + = , 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 :
= =
x
du u f x X P x F ) ( ) ( ) ( pour + < < x .
F(x) est une fonction continue, monotone croissante, telle que 0 ) ( = F et 1 ) ( = + F ,
) ( ) (
'
x f x F = . Elle permet de calculer des probabilits de la forme ) ( b X a P < ) sans
effectuer une intgration (ce qui est le cas en utilisant ) (x f ) ; en effet
) ( ) ( ) ( a F b F b X a P = < .
III.3 VARIABLES ALATOIRES DISCRTES
Une variable alatoire est discrte si elle ne peut prendre qu'un nombre fini de valeurs. Pour
chaque valeur
i
x , on associe la probabilit ) (
i
x p d'apparition de cette valeur.
Pour N valeurs, l'ensemble des probabilits associes est tel que :
f(x) =
2 2
2 / ) (
2
1
M x
e
points d'inflexion
1
2
f (x)
0
x
M- M M+
M
x
f (x)
2
grand
2
petit
17
1 ) (
1
=
=
N
i
i
x p
si N couvre l'ensemble des valeurs.
Exemple : On dfinit un systme capable de produire quatre types de produits nots 1, 2, 3, 4.
Lors de l'arrive des ordres de fabrication, on sait que la probabilit d'avoir un produit 1 est
gale 1/6, celle d'avoir un produit 2 est gale 1/3, celle d'avoir un produit 3 est gale 1/3
et celle d'avoir un produit 4 est gale 1/6.
La loi est reprsente soit par le diagramme en btons suivant indiquant ) (
i
x p en fonction de
i
x :
soit par un histogramme
6
:
Dfinitions
La moyenne (arithmtique) M est gale
=
N
i
i i
x p x
1
) ( .
6
Ensemble de rectangles de mme largeur dont les surfaces sont proportionnelles aux probabilits p(x
i
).
p(x
i
)
1/3
1/6
x
i
0
1 2 3 4
1/3
1/6
1 2 3 4
0
p(x
i
)
x
i
18
Exercice : Calculer la moyenne considre dans l'exemple prcdent.
La variance
2
est gale
N
i
i i
M x p x
1
2 2
)) ( ( .
On dfinit la probabilit cumule (notion utilise dans le logiciel SIMAN-ARENA) par
=
=
i
l
l i c
x p x p
1
) ( ) ( .
Dans l'exemple prcdent, on a : 1 ) ( ,
6
5
) ( ,
2
1
) ( ,
6
1
) (
4 3 2 1
= = = = x p x p x p x p
c c c c
.
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.
19
IV DONNES D'ENTRE DU SYSTME
La qualit des donnes est aussi importante que la qualit du modle (garbage in -
garbage out) ; ceci concerne, par exemple dans le cas d'un systme de production, les temps
opratoires, les temps de bon fonctionnement, les taux de rebut, ...
Deux problmes se posent principalement :
P1) Collecte des donnes
lesquelles ? disponibles ? pertinentes ? comment les collecter ?
P2) Systmes stochastiques
lecture directe des donnes empiriques ou tirage partir d'une distribution
thorique associe ?
Les sources possibles de donnes sont de nature diffrente :
- Enregistrement du pass bases de donnes interroger (problmes de mise jour).
- Observation du systme ressources humaines (erreurs).
- Systmes similaires attention aux infrences.
- Estimation des oprateurs (humains) ngligence des extrmes et oubli du pass.
- Affirmation des fournisseurs de matriel (souvent optimistes).
- Estimation des concepteurs ( vrifier).
- Considrations thoriques (par exemple le fait que les arrives de 2 clients successifs
dans une file d'attente suivent une loi exponentielle, que les variations de longueur de
pices en srie suivent une loi normale, ...).
Deux cas sont considrer, soit on a une connaissance partielle des donnes du
systme (moyenne, minimum, maximum, ...), soit on dispose des donnes du systme.
IV.1 CONNAISSANCE PARTIELLE DES DONNES
C'est le cas des systmes qui n'existent pas encore, ou pour lesquels il est impossible
de disposer des donnes dsires (temps, ressources). On doit se baser sur l'estimation des
oprateurs, des concepteurs, des fournisseurs de matriel, ...
20
Trois cas se prsentent souvent : On dispose seulement de la moyenne, on dispose seulement
du minimum et du maximum, ou on dispose seulement du minimum, de la valeur la plus
probable ( de la moyenne, voir la loi triangulaire) et du maximum.
1. Seule la moyenne M est disponible
On peut alors utiliser (si cela est justifi) :
- Directement M comme valeur constante de la variable si la dispersion (cart type) est
petite,
- Une distribution exponentielle (grande dispersion : forte variabilit) de paramtre M si la
nature du phnomne le justifie.
2. Min et Max sont disponibles
On peut alors utiliser (si cela est justifi) :
- Une distribution uniforme de paramtres Min et Max, c'est la distribution de l'ignorance
(il n'y a pas de raison de penser que les probabilits ne sont pas quiprobables),
- Si les donnes sont centres autour de la moyenne M = (Min + Max)/2, on peut appliquer
une distribution normale centre autour de M ; partir de l'tendue des donnes (Etendue
= Max-Min), on peut calculer l'cart type : Si les donnes sont nombreuses, =
Etendue/6, sinon = Etendue/4.
3. Min, Max et la valeur la plus probable m sont disponibles
On peut alors utiliser (si cela est justifi) une distribution triangulaire de paramtres Min, m
et Max.
IV.2 DONNES EXISTANTES (accessibles la mesure)
Le problme P2 n'ayant pas de rponse claire, les logiciels de simulation proposent
souvent les deux possibilits.
Il est souvent intressant, pour des raisons thoriques et pratiques, de pouvoir dcrire une loi
de probabilit par une distribution thorique. Ceci revient exprimer sous forme analytique
les probabilits ) (
k
x p en fonction de l'indice k. On peut alors appliquer au calcul des
probabilits des mthodes bien connues d'analyse mathmatique, vitant ainsi des calculs
numriques fastidieux.
- Si les donnes empiriques sont directement utilises, elles sont entres sous forme de
distributions empiriques cumulatives (histogramme des frquences : regroupement des
observations en classes, nombres de classes = O( ns observatio d n
bre
' )).
- Si on veut faire des tirages partir des distributions thoriques, il faut :
a) Choisir une distribution en fonction de sa forme (et celle de l'histogramme des
donnes),
b) Estimer ses paramtres,
c) Tester l'hypothse : distribution correspond bien aux donnes.
21
L'tape a) est effectue, connaissant les caractristiques des distributions courantes et en
comparant visuellement la distribution thorique et la distribution empirique (histogramme
des frquences).
L'tape b) implique l'utilisation des estimateurs classiques.
L'tape c) peut s'effectuer visuellement, ou en utilisant des tests statistiques d'hypothses (Khi-
deux, Kolmogorov-Smirnov).
Exemple : On s'intresse au temps de traitement d'une machine. On dispose d'un ensemble de
500 valeurs reprsentant l'intervalle de temps (obtenu l'aide d'un chronomtre) entre chaque
apparition d'une pice en sortie de la machine. L'entre de la machine est toujours
approvisionne. On considre 21 classes pour construire l'histogramme des frquences.
REAL data Data pts =500 intervals = 21 Range : -1 to 12
Mean = 5,02 StdDev = 1,88 Min = -0,4531 Max = 11,3
NORMAL DISTRIBUTION : NORM.(5,02 ; 1,88)
Sq Error = 0,0008231
(*) Hypothse : Valeurs Min et Max finies.
Une valeur ) 21 1 ( n n Classe x
21 21
) 1 (
Min Max
n Min x
Min Max
n Min
+ .
N
bre
de valeurs appartenant la
classe n 1, n2, ... (*)
Min
Cl. 1 . Cl. n
Max
22
Si la valeur Min (respectivement Max) = - (respectivement + ), on considre une classe
[- , valeur relle] (respectivement [valeur relle, + ]).
23
V. VRIFICATION ET VALIDATION DES MODLES
Les programmes de simulation se caractrisent par une volution constante (tests de
scnarii, que se passe-t-il si ?, ...). La difficult majeure est de savoir :
Comment avoir confiance dans le modle ?
Comment le transmettre l'utilisateur ?
Avant de tirer des infrences des rsultats statistiques d'un modle/programme de simulation,
il faut s'assurer qu'il est correct au sens o il reprsente bien le systme. Ceci passe
habituellement par deux tapes : la vrification et la validation.
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 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).
24
8. Eviter des erreurs classiques, notamment vis--vis :
- De la saisie des donnes d'entre,
- De la phase d'initialisation (units de mesures),
- Du contrle du flux,
- De l'existence de blocages,
- Des erreurs arithmtiques (parenthses, conversion de types, ...),
- Des erreurs d'enregistrement (temps d'arrive des pices, compteurs, ...),
- D'une mauvaise utilisation des primitives ou fonctions du langage.
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.
25
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
Il consiste tudier le comportement du modle en relation avec le systme de rfrence.
Comparaison de comportements : Tests statistiques pour comparer les rsultats (Khi-deux,
Kolmogorov-Smirnov, ...).
Gnrer des symptmes :
- Le modle gnre des difficults dj connues dans le systme ?
- Le modle produit des rsultats connus pour des entres donnes ?
Anomalie de comportement : Une anomalie dans le modle peut amener dcouvrir
l'anomalie quivalente dans le systme rel ?
Prdiction de comportement : Prdiction du modle contre des tests sur le terrain.
26
VI INTERPRTATION DES RSULTATS
Selon le logiciel utilis, l'excution d'un programme de simulation peut gnrer :
- Un rapport de simulation comprenant les moyennes, les carts types, les minimums et
maximums des variables observes, ...
- Un historique de l'volution de ces variables au cours de la simulation.
La qualit de la moyenne (arithmtique) comme estimateur de la vraie moyenne dpend, entre
autres, du nombre des observations. De mme, l'cart type est biais pour un petit nombre
d'observations. On peut utiliser son rapport la moyenne pour mesurer la dispersion des
valeurs (en plus du minimum et du maximum).
Un tel rapport de simulation ne suffit pas pour tirer des conclusions crdibles sur les
performances du systme. Il suffit de changer le gnrateur de nombres alatoires pour que le
mme modle gnre des rsultats diffrents. L'animation graphique n'est pas suffisante non
plus. En fait, on a souvent tendance se contenter du rapport de simulation et/ou de
l'animation, surtout quand le projet est en retard.
Les rsultats gnrs par un modle jouent le rle de mesures sur un chantillon. Il faut donc
les exploiter pour effectuer des procdures statistiques. A chaque variable (inconnue), il faut
associer un intervalle de confiance.
Rappel (Intervalle de confiance) : L'intervalle de confiance [c
1
, c
2
] du paramtre inconnu
est dfini l'aide de 2 grandeurs statistiques
2 1
, C C de telle sorte qu'il recouvre, avec une
probabilit donne 1 , la (vraie) valeur inconnue de , soit :
= 1 ) (
2 1
C C p .
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
2 1
, C C donne lieu un intervalle de confiance
numrique [c
1
, c
2
]. 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 (
2 1
, C C ), alors
la valeur inconnue du paramtre sera recouverte par environ % ) 1 ( 100 des intervalles
[c
1
, c
2
] 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.
27
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.
VI.1 ANALYSE DES SYSTMES FINIS
Ils sont plus faciles analyser que les systmes qui ne se terminent pas. On ne peut contrler
que le nombre des rptitions des expriences. A chaque rptition, on peut utiliser un autre
gnrateur des nombres alatoires.
Deux sources de donnes d'observation :
a) Observations individuelles dans chaque rptition/exprience (par exemple, le temps
de traitement de chaque pice),
b) Moyennes, carts-types, maximums, minimums des observations dans chaque
rptition (par exemple, le temps de traitement moyen des pices).
Si lon change le gnrateur des nombres alatoires d'une rptition l'autre, on peut
considrer que les observations de type b) d'un ensemble de rptitions sont telles que :
- Elles sont indpendantes,
- Les moyennes sont normalement distribues.
Cette dernire proprit est due au fait qu'elles sont sommes, ou moyennes, d'observations
individuelles (thorme central limite).
Les procdures classiques de statistiques peuvent alors s'appliquer pour les moyennes. Pour
les minimums et maximums, certaines procdures de statistiques s'appliquent encore.
A partir des observations de type b), on peut calculer en particulier :
- Des intervalles de confiance autour de la moyenne, du maximum et du minimum,
- Des intervalles de confiance autour de la diffrence entre les moyennes, les maximums
et les minimums de deux systmes diffrents.
Cette comparaison de deux systmes est utile pour valuer par exemple la diffrence entre
deux dimensionnements, deux rgles d'ordonnancement, ... Si l'intervalle de confiance ne
contient pas 0, on peut en dduire que les deux systmes sont diffrents.
Procdure gnrale :
- Simuler un grand nombre d'expriences/rptitions (minimum 20) et rcuprer chaque fois
les observations souhaites (moyennes, maximum, minimum, ...) ;
- Analyser le comportement du systme en se basant sur la valeur moyenne pour chaque
exprience :
- Utilisation de l'histogramme,
- Calcul de l'intervalle de confiance.
28
- Dterminer le nombre expriences l'aide de l'analyse des rsultats en fonction des
prcisions souhaites pour l'intervalle de confiance. Utiliser la formule
2
2 1 1 2
) / ( h h n n = o
1
n est le nombre dexpriences dj ralises,
2
n est le nombre total dexpriences,
1
h est la moiti de l'intervalle de confiance dj obtenu,
2
h est la moiti de l'intervalle de confiance souhait.
- Simuler encore : Soit tout recommencer, soit rajouter les rsultats des nouvelles simulations
ceux des premires ;
- Analyser : Intervalle de confiance, histogramme.
VI.2 ANALYSE DES SYSTMES QUI NE SE TERMINENT PAS
On sintresse l'tude des performances stationnaires dun systme du fait dun rgime
transitoire souvent favorable aux performances du systme ; ce peut tre, par exemple, le cas
dun atelier vide au dbut de la simulation. L'tat stable du systme correspond son
comportement aprs un certain temps et est indpendant de l'tat de dpart.
Le but est de calculer un intervalle de confiance autour de la moyenne. Deux problmes
peuvent se poser :
- Pas de point de passage prcis entre le rgime transitoire et le rgime stationnaire,
- Corrlation entre les observations.
Problme du rgime transitoire
Il existe trois mthodes pour traiter le problme du rgime transitoire :
- Choisir des conditions de dpart qui ressemblent aux conditions de rgime permanent
(par exemple : Charger les machines, mettre les pices dans les files d'attente).
- Faire des simulations assez longues pour rendre le rgime transitoire insignifiant.
- Ecarter les valeurs enregistres pendant le rgime transitoire. Pour cela, on peut
ventuellement utiliser le filtre de la moyenne glissante (moyenne arithmtique des k
observations rcentes) pour rduire la variabilit de la variable.
C'est cette dernire mthode qui est couramment utilise. Il existe certaines rgles pour
slectionner la partie tronquer, mais il n'y a aucune mthode compltement satisfaisante. La
plus utilise est d'valuer (visuellement) la priode transitoire l'aide des graphes (courbes,
histogrammes, moyennes mobiles).
Intervalles de confiance
Deux mthodes sont couramment utilises :
- Rptition d'expriences indpendantes comme pour les systmes finis (problme du
rgime transitoire chaque fois),
- Longue simulation et dcompositions des donnes gnres en sous ensembles (batchs).
Cette dernire mthode consiste :
- Ecarter le rgime transitoire,
- Dcomposer les observations restantes en n batchs de taille m et sans chevauchement,
29
- Remplacer chaque batch
j
B (j = 1, 2, .., n) par
j
X , moyenne des m observations dans
j
B ,
- Calculer l'intervalle de confiance partir des observations
j
X , j = 1, 2, .., n.
Ici encore, les conditions du thorme central limite sont considres vraies et le calcul de
l'intervalle de confiance justifi (indpendance et normalit des observations
j
X ).
Indications : n = 10. lag*,
m de 10 20.
Corrlogramme lag* : Le plus grand nombre d'observations pour lequel la
corrlation est encore significative.
Cette mthode (prsente pour des variables ne dpendant pas du temps comme le nombre de
pices finies) est videmment applicable pour les variables persistantes (dpendant du temps)
comme les tailles des files d'attente. Il suffit de dfinir les batchs par des intervalles de temps
rguliers au lieu d'un nombre fix de donnes.
30
VII NOTIONS ELMENTAIRES SUR LES RSEAUX DE PETRI
VII.1 GNRALITS
Dfinition (Rseau de Petri)
Un rseau de Petri (RdP) est un graphe constitu de 2 sortes de nuds : Les places
(reprsentes par des ronds) et les transitions (reprsentes par des barres). Le graphe est
orient : Des arcs vont d'une sorte de nuds l'autre (jamais de places places, ou de
transitions transitions directement). Voir exemple dans la figure suivante.
De faon plus formelle, un RdP peut-tre dfini par un 4-uplet <P, T, Pr, Post> tel que :
{ }
n
P P P P , , ,
2 1
L = est un ensemble fini et non vide de places ;
{ }
m
T T T T , , ,
2 1
L = est un ensemble fini et non vide de transitions ;
{ } 1 , 0 : T P r P est l'application d'incidence avant ;
{ } 1 , 0 : T P ost P est l'application d'incidence arrire.
) , (
j i
T P r P est le poids de l'arc (orient) reliant la place
i
P la transition
j
T ; ce poids vaut
1 si l'arc existe et 0 sinon.
) , (
j i
T P Post est le poids de l'arc (orient) reliant la transition
j
T la place
i
P .
Marquage des places
Les places sont marques par des jetons (points noirs) qui vont circuler dans les places selon
certaines rgles (dfinies ci-dessous). Cette circulation symbolise l'volution dynamique du
systme. Le marquage initial (celui indiqu sur le dessin) donne la position initiale des jetons.
Rgles de fonctionnement et circulation des jetons
Pour qu'une transition puisse tre active, la prsence d'un jeton au moins est requise dans
chaque place situe en amont de la transition. L'activation (le tir) de la transition a pour effet
de prlever ces jetons des places amont et de rajouter dans chaque place aval un nouveau
jeton.
De faon plus formelle, le franchissement (tir) d'une transition
j
T ne peut s'effectuer que si le
marquage de chacune des places
i
P directement en amont de cette transition est tel que :
31
) , ( ) (
j i i
T P r P P m (condition ncessaire).
Le franchissement (tir) de
j
T consiste retirer ) , (
j i
T P r P jetons dans chacune des places
directement en amont de
j
T et ajouter ) , (
j k
T P Post jetons dans chacune des places
k
P
directement en aval de
j
T .
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).
Temporisation des places et/ou des transitions
A priori, on peut penser l'activation d'une transition comme au droulement d'une tche : Il
faudrait alors mettre une temporisation sur les transitions. Par ailleurs, si on pense une place
comme un endroit o une ressource sjourne en attendant de poursuivre son parcours, il peut y
avoir une dure minimale de sjour respecter : Penser par exemple au sjour d'une pice
dans un four pour atteindre une temprature souhaite.
On est donc tent de mettre la fois :
- Une dure d'activation pour les transitions : Dure pendant laquelle un jeton situ dans
chaque place amont de la transition active est rserv pour cette transition (avant
de disparatre), et au del de laquelle un jeton apparat dans chacune des places aval ;
- Une dure minimale de sjour dans les places : Dure pendant laquelle tout jeton qui
vient d'tre produit dans une place ne peut pas encore servir l'activation de transitions
aval.
En fait, il n'y a aucune perte de gnralit ne mettre de temporisations que sur les transitions,
ou que sur les places. La figure suivante montre la transformation d'une transition de dure t
en 2 transitions instantanes (le dbut et la fin) spares par une place de temporisation t.
a b c d
t
t
32
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 [ ] b a, .
VII.2 GRAPHES D'VNEMENTS
Restrictions et capacits de modlisation
Les graphes d'vnements sont une sous-classe de RdP pour lesquels toute place a exactement
une transition amont et une transition aval (les situations reprsentes dans les figures a et b
prcdentes sont interdites). Aussi, les graphes d'vnements peuvent modliser des
phnomnes de synchronisation, mais pas de concurrence.
A l'oppos, les graphes d'tat refusent les configurations reprsentes dans les figures c et d
prcdentes pour ne retenir que celles reprsentes dans les figures a et b. Aussi, les graphes
d'tat, tels que toute transition a exactement une place d'entre et une place de sortie,
permettent de visualiser des phnomnes de concurrence (dcision), mais pas de
synchronisation.
Une proprit fondamentale des graphes d'vnements
Le nombre total de jetons le long de tout circuit d'un graphe d'vnements reste constant. Ceci
n'est gnralement pas vrifi dans le cas d'un RdP (le nombre de jetons total d'un RdP ne
reste pas ncessairement constant au cours de l'volution du marquage du rseau).
VII.3 EXEMPLES
Soit une machine reprsente dans la figure suivante. Chaque pice qui arrive est, soit traite
immdiatement par la ressource machine, soit mise en attente dans le stock ( capacit infinie)
jusqu' ce que la ressource machine soit disponible. Le temps de traitement de la ressource
machine est de 3 units de temps. Aprs traitement, chaque pice sort.
arrive
pice
stock
ressource
machine
sortie
pice
33
Le RdP suivant modlise ce systme.
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).
Modifications
a) Le modle RdP suivant indique une capacit de stockage limite 5 pices.
b) Le stock en amont de la ressource machine est remplac par un convoyeur correspondant
une file compose de 5 compartiments (gestion First-In, First-Out du convoyeur). Le
temps de dplacement du convoyeur est de 6 units de temps. Le systme est reprsent par
le modle RdP suivant.
3
stock
ressource machine libre
ressource machine occupe
Arrive
pice
Sortie
pice
Dmarrage
3
stock
ressource machine libre
ressource machine occupe
Arrive
pice
Sortie
pice
5
Dmarrage
Arrive
pice
6/5
6/5 6/5
34
c) La machine a une capacit de traitement de 2 : Elle est capable de traiter 2 pices
simultanment. Le systme est reprsent par le modle RdP suivant.
d) La machine a un temps de setup de 1,5 units de temps. Le systme est reprsent par le
modle RdP suivant.
VII.4 AUTRES CLASSES DE RSEAUX DE PETRI
Rseau de Petri synchronis
Un ensemble d'vnements externes est associ au RdP ; ces vnements permettent le
franchissement de certaines transitions. Un tel RdP est dit synchronis.
Considrons le RdP modlisant la machine dcrite dans VII.3. On associe ce RdP l'ensemble
d'vnements { } S D A , , o A dsigne l'vnement Arrive pice , D l'vnement
Dmarrage service , S l'vnement Sortie pice . La figure suivante reprsente le
systme modlis par un RdP synchronis.
3
ressources machine libres
ressources machine occupes
Sortie
pice
Dmarrage
2
3
ressources machine libres
ressources machine occupes
Sortie
pice
Dmarrage
2
1,5
3
stock
ressource machine libre
ressource machine
occupe
Arrive
pice
Sortie
pice
A
D
S
T
1
T
2
T
3
Dmarrage
35
Le tir de la transition T
1
est li l'occurrence de l'vnement A.
Le tir de la transition T
2
est li :
- A la validation de la transition, matrialise par la prsence d'au moins un jeton dans la
place stock et d'un jeton dans la place ressource machine libre ;
- Au dmarrage effectif du service (occurrence de l'vnement D).
Le tir de la transition T
3
est li l'occurrence de l'vnement S.
Rseau de Petri gnralis
Un RdP gnralis est un RdP dans lequel les poids associs aux arcs sont des nombres entiers
strictement positifs. Ces poids peuvent tre diffrents de 0 ou 1.
Tous les arcs, dont le poids n'est pas explicitement spcifi, ont un poids de 1.
Soit un arc reliant une place P
i
une transition T
j
ayant un poids gal p, alors la transition T
j
ne sera valide que si la place P
i
contient au moins p jetons. Lors du franchissement de cette
transition, p jetons seront retirs de la place P
i
.
Le fait qu'un arc relie une transition T
j
une place P
i
avec un poids gal p, signifie que lors
du franchissement de cette transition, p jetons seront ajouts la place P
i
.
Rseau de Petri arcs inhibiteurs
Un arc inhibiteur est un arc orient qui part d'une place pour aboutir une transition (et non
l'inverse). Son extrmit est marque par un petit cercle. La prsence d'un arc inhibiteur entre
une place P
i
et une transition T
j
signifie que la transition T
j
n'est valide que si la place P
i
ne
contient aucun jeton. Le franchissement de la transition T
j
consiste retirer un jeton dans
chaque place situe en amont de la transition l'exception de la place P
i
, et ajouter un jeton
dans chaque place situe en aval de la transition.
Assemblage
2
transition
franchissable
transition
non franchissable
36
VIII LE LANGAGE DE SIMULATION SIMAN-ARENA
SIMAN-ARENA
7
- conu en 1982 par C.D. Pedgen de System Modeling Corporation - est un
langage de simulation du type interaction de processus, ARENA reprsentant la version
graphique de SIMAN. La description du modle (logiciel) du systme simul se fait
l'aide d'un assemblage constitu de mise en srie, en parallle ou en feedback de diffrents
blocs fonctionnels, issus de bibliothques (templates) dARENA. Une telle approche de
modlisation permet d'obtenir une structure du modle (logiciel) proche de celle du systme
(rel) simuler.
VIII.1 NOTIONS DE BASE
Entit : Une entit est un objet qui volue dans les diffrents blocs fonctionnels constituant le
modle du systme. Elle correspond en gnral un objet concret, par exemple, une
personne ou une pice dans un atelier. Le dplacement des entits au sein des
diffrents blocs - par exemple le dplacement de pices dans un atelier - provoque un
changement d'tat du modle de simulation, ce qui est analogue aux dplacements
des jetons dans un modle RdP.
Attribut : Un attribut est une variable associe individuellement aux entits (la variable est
locale) pour reprsenter leurs tats ou des paramtres qui leur sont propres. Par
exemple, chaque entit, reprsentant une pice circulant dans un atelier, peut avoir
les attributs suivants :
- Type_de_piece afin de dsigner le type d'une pice (par exemple, Type_de_piece =
A ou B) ;
- Indice_de_priorite afin de dsigner l'indice de priorit d'une pice (par exemple,
Indice_de_priorite = faible ou importante) ;
- Date_arrivee_ds_le_modele (par exemple, Date_arrivee_ds_le_modele = TNOW).
Variable globale : Une variable globale concerne l'ensemble du modle. Par exemple, la
variable TNOW (variable prdfinie dans SIMAN) dsigne la date laquelle se trouve
la simulation, c'est le temps courant - mis jour chaque avance dans l'chancier
des vnements scoulant durant une simulation du modle.
Le principe de fonctionnement du logiciel ARENA est de suivre chacune des entits voluant
d'un bloc fonctionnel vers un autre dans le modle, de sa cration sa destruction.
Lordonnancement dans le temps des diffrents vnements rattachs l'volution des entits
dans les blocs constituant le modle se fait au travers dun chancier.
7
Une documentation lectronique est fournie avec le logiciel SIMAN-ARENA travers diffrents fichiers
([Link], [Link], [Link]) accessibles dans le rpertoire
\Rockwell Software\Arena\.
37
Quand une entit est introduite dans un bloc fonctionnel, elle dclenche/active le service
qui lui est associ, ce qui provoque une modification de l'tat du modle. Un service peut
agir :
- 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).
38
A travers le menu Run/Setup/Project Parameters, on peut notamment donner :
- un titre au projet (champ Project Title),
- le nom du programmeur (champ Analyst Name),
- un commentaire (champ Project Description).
39
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).
fichier [Link] : (partie modle)
; Model statements for module: Create
2$ CREATE, 1,HoursToBaseTime(0.0),Entity 1:HoursToBaseTime(2):NEXT(0$);
;
; Model statements for module: Delay
0$ DELAY: 3,,Other:NEXT(1$);
;
; Model statements for module: Dispose
1$ DISPOSE: Yes;
0$, 1$, 2$ sont des tiquettes.
fichier [Link] : (cadre exprimental)
PROJECT,"Premier exemple","ISTIA",,,No,Yes,Yes,Yes,No,No,No,No,No,No;
REPLICATE, 1,,HoursToBaseTime(10),Yes,Yes,,,,24,Hours,No,No,,,Yes;
Le modle RdP correspondant la partie modle du modle logiciel prcdent est dcrit dans
la figure suivante :
ARENA permet de construire un modle en proposant des primitives de reprsentation
(appeles par la suite, blocs ou modules) plus ou moins dtailles. Il permet galement de
crer des animations graphiques pour visualiser le comportement du modle durant la
simulation. Les blocs sont regroups dans diffrentes bibliothques (templates).
Afin de bnficier dune animation, nous allons utiliser les templates Basic Process et
Advanced Process. Sont dcrits en Annexe les templates Blocks et Elements lesquels
contiennent des blocs plus lmentaires ( chacun de ces blocs correspond une ligne dans les
fichiers gnrs par SIMAN-ARENA).
VIII.2 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LA
CONSTRUCTION DUN MODLE
3
2
40
a) Create (issu du template Basic Process) : Un bloc Create permet de crer des entits. Celui
reprsent dans la figure suivante est intitul Create 1 (champ Name = Create 1). Sont
indiqus :
- la priode de cration des lots dentits (cadre Time Between Arrivals, par exemple :
champ Type = Constant, champ Value = 2),
- la taille des lots (champ Entities per Arrival = 1),
- le nombre total de lots crer (champ Max Arrivals = Infinite),
- la date de cration du premier lot (champ First Creation = 0).
Les valeurs considres sont telles qu'1 entit est cre toute les 2 units de temps partir de
linstant 0, ceci une infinit de fois.
Le RdP suivant permet de dcrire le bloc Create 1.
Le nombre de jetons prsents dans la place P correspond au nombre d'entits cres par le
bloc Create 1.
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.
Time Between
Arrivals (2)
Max
Arrivals
()
Entities per
Arrival (1)
First
Creation
(0)
P
41
En termes de RdP, ce bloc 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 RdP suivant permet de dcrire un bloc Delay.
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
( 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).
Delay Time
Entre d'une entit
dans le bloc Delay
Sortie de l'entit
du bloc Delay
42
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 [Link]).
Le RdP suivant permet de dcrire un bloc Seize dans le cas o un seul type de ressource (dans
lexemple, Resource 1) est requis.
La transition T pour tre active doit :
- 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.
reprsentation graphique de la file
dattente associe au bloc Seize 1
File dattente
(Seize [Link])
T
P1
P2
Quantity
Entre d'une entit
dans le bloc Seize
Sortie de l'entit
du bloc Seize
Saisie de (Quantity = 1) ressources
(Resource Name = Resource 1)
ressources
disponibles
43
- 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 [Link],
- 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.
44
Le RdP suivant permet de dcrire un bloc Release dans le cas o un seul type de ressource
(dans lexemple, Resource 1) est libr.
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\[Link].
T'
P1
Quantity
Entre d'une entit
dans le bloc Release
Sortie de l'entit
du bloc Release
ressources
disponibles
45
Le RdP suivant permet de dcrire le bloc Assign 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,
Variable 1 := 1
Attribute 1 := TNOW
Variable 2 := STATE(resource 1)
Variable 3 := Attribute 1
Entre d'une entit
dans le bloc Assign
Sortie de l'entit
du bloc Assign
46
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).
47
Le RdP suivant permet de dcrire un 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 ).
h) Match (issu du template Advanced Process) : Un bloc Match permet de synchroniser la
progression de deux, voire de plusieurs, entits situes dans diffrentes files dattentes. Quand
toutes les files dattentes, associes au bloc Match, ont une, voire plusieurs entits, ces entits
sont libres, de faon synchrone, vers les sorties correspondantes. Dans la figure qui suit, le
bloc Match 1 (champ Name = Match 1) effectue une synchronisation entre deux entres. Une
synchronisation se produit lorsquau moins une entit est prsente dans chacune des deux files
dattente, savoir Match 1.Queue1 et Match 1.Queue2. Les entits lorigine de la
synchronisation sont ensuite diriges vers les sorties correspondantes. Le fait davoir le champ
Type = Any Entities (et non Based on Attribute) fait que la synchronisation ne seffectue pas
en fonction de la valeur dun ventuel attribut (rattach aux entits).
Le bloc Queue (issu du template Basic Process) dcrit ci-dessous indique la dfinition des
files dattente Match 1.Queue1 et Match 1.Queue2.
Entre d'une entit
dans le bloc Decide
.
.
.
Sorties du bloc
Decide
critre
de type
condition ou
probabilit
Match 1
Match 1.Queue1
Match 1.Queue2
48
Voir une description du bloc Match 1 l'aide du RdP suivant.
Notons que toutes les sorties dun bloc Match doivent tre connectes un bloc
(ventuellement un bloc Dispose si la sortie nest pas utile ).
i) 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\[Link].
Match 1.Queue1
Match 1.Queue2
Sorties du
bloc Match
Entres du
bloc Match
synchronisation
49
Le RdP qui suit permet de dcrire un bloc Separate.
j) Process (issu du template Basic Process) : Un bloc Process permet de simuler le
comportement dune machine, sachant que diffrents modes de fonctionnement sont autoriss
selon le contenu du champ Action (situ dans le cadre Logic lorsque le champ Type =
Standard).
Un bloc Process, intitul Process 1 (champ Name = Process 1), est dcrit dans la figure
suivante.
Lorsque le champ Action contient la valeur :
i) Delay, la machine se ramne un simple bloc Delay, ce qui permet de simuler un temps
de traitement (voir le cadre Delay Type pour assigner un temps de traitement) et le fait
quil ny a pas de contrainte vis--vis de la ressource de la machine.
Entre de
lentit
Sortie de lentit
originale
Sortie de
(# of Duplicates)
entits dupliques
Separate
Entre
de
l'entit
Original (sortie de l'entit originale)
Duplicate (sortie de (# of
Duplicates) entits dupliques
50
2i) Seize Delay, la machine ncessite une, voire plusieurs ressources (voir le cadre
Resources pour assigner le type, ainsi que le nombre, de ressources concernes) durant un
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.
VIII.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LANALYSE
DUN MODLE
Les blocs dcrits au VIII.2 permettent de modliser un systme physique, sans pour autant
fournir dinformations (exceptes celles donnes par dfaut dans le rapport final). La collecte
dinformations spcifiques se fait en utilisant des blocs supplmentaires. Quelques-uns de ces
blocs sont dcrits ci-dessous. Un exemple est donn dans le fichier
\Exemples\Record_Statistic\Stat_File.doe.
1) Le bloc Record (issu du template Basic Process) permet, selon le contenu du champ Type,
de :
- compter le nombre d'entits traversant le bloc (Type = Count) (voir 1.a)) ;
- recueillir les temps de passage successif de 2 entits (Type = Time Between) (voir 1.b)) ;
- recueillir les temps mis par les entits traversant une partie (ou l'ensemble) d'un modle
(Type = Time Interval) (voir 1.c)).
1.a) Lorsque le champ Type = Count, le bloc Record permet de compter le nombre d'entits
qui transitent par ce bloc. Le compteur s'incrmente d'une valeur (Value, par dfaut gale 1)
chaque passage d'une entit. Le nom du compteur est spcifi dans le champ Counter Name.
Voir le bloc Statistic (voir 2.c) pour effectuer un enregistrement des donnes.
compteur = + 1
transition
51
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 tally
8
est spcifi dans le champ Tally Name.
Voir le bloc Statistic (voir 2.c) pour effectuer un enregistrement des donnes.
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 ) ( ), ( i t i t
M N
les temps de sortie de l'entit n i des
blocs N et M respectivement (cf. schma suivant).
Pour raliser cela, on dispose :
- Un bloc Assign (cf. VIII.2.f) plac juste aprs le bloc N afin d'assigner le temps de
passage, savoir TNOW, de chaque entit dans un attribut, not par exemple Attribute 1
(un attribut est une variable associe individuellement aux entits).
- Un bloc Record 1 (avec Type = Time Interval) plac juste aprs le bloc M afin de
disposer des temps de parcours de la sortie du bloc N au bloc M. Le lien avec l'attribut
Attribute 1 se fait via le champ Attribute Name.
Voir le schma suivant pour avoir une vue schmatique des blocs N, Assign, M, Record et la
figure suivante o est dcrit un bloc Record de Type Time Interval.
8
"To keep a tally of " signifie "tenir le compte de ".
Bloc N Bloc M
t
N
(i)
t
M
(i)
transition
X
X(k + 1) - X(k)
X(k) : tps de
franchissement
de lentit n k
52
2) Le bloc Statistic (issu du template Advanced Process, appartenant au cadre exprimental et
donc non travers par une entit) permet, selon le contenu du champ Type, de :
- collecter durant la simulation des statistiques issues de variables SIMAN, telles que le
nombre dentits contenues dans une file d'attente (variable NQ, cf. 2.a), le taux
doccupation dune ressource (variable NR, cf. 2.b) (Type = Frequency) ;
- spcifier les fichiers dans lesquels seront sauvegardes les donnes dobservations
individuelles, par exemple :
- celles issues dun bloc Record (relatif un compteur ou un tally) (Type = Count
ou Tally) (cf. 2.c)) ;
- celles issues dune variable SIMAN (le nombre dentits contenues chaque
instant dans une file d'attente, le taux doccupation chaque instant dune
ressource (Type = Frequency) (cf. 2.c)).
2.a) Lorsque le champ Type = Frequency et le champ Frequency Type = Value, le bloc
Statistic permet, travers la variable NQ (abrviation de Number in Queue) - mise jour
automatiquement par SIMAN, de disposer du nombre dentits contenues dans une file
d'attente. Par exemple, en supposant dfini une file d'attente intitule Process [Link], la
variable Statistic 3 (champ Name = Statistic 3) permet de connatre le nombre dentits
prsentes chaque instant dans la file dattente Process [Link] lorsque le champ Expression
= NQ(Process [Link]) (voir figure ci-dessous).
Bloc N Bloc M
t
N
(1),
t
N
(2),
.
.
t
M
(1),
t
M
(2),
.
.
Assign
(Attribute 1
= TNOW)
Record 1
(Attribute
Name =
Attribute 1)
t
M
(1) - t
N
(1),
t
M
(2) - t
N
(2),
.
.
53
2.b) Lorsque le champ Type = Frequency et le champ Frequency Type = Value, le bloc
Statistic permet, travers la variable NR (abrviation de Number of busy Resource units) -
mise jour automatiquement par SIMAN, de disposer du taux doccupation dune ressource.
Par exemple, une machine constitue de n ressources permet le traitement en parallle de n
pices. Une ressource peut tre occupe (busy), soit disponible (idle). Par exemple,
considrons une machine, reprsente par un bloc Process 1, utilisant une ressource Resource
1 de capacit gale 3 (donne dclare dans un bloc Resource), la variable Statistic 4
(champ Name = Statistic 4) permet de connatre le nombre de ressources Resource 1 occupes
au cours du temps (ce nombre pouvant tre gal 0, 1, 2 ou 3) lorsque le champ Expression
=NR(Resource 1) (voir figure ci-dessous).
2.c) Le nom du fichier - ainsi que son rpertoire si celui-ci est diffrent du rpertoire
contenant lapplication - dans lequel sont enregistres les donnes issues dun bloc Record ou
dune variable SIMAN (NQ ou NR) est indiqu dans le champ Counter Output File ou Tally
Output File (selon que le bloc Record est relatif un compteur ou un tally) ou Output File
(pour une variable SIMAN NQ ou NR). Le contenu du champ Type est respectivement gal
Counter, Tally ou Frequency selon que les donnes sont issues dun compteur, dun tally ou
dune variable SIMAN (NQ ou NR). Afin de disposer des donnes au format csv (abrviation
de comma-separated-value, comma signifiant virgule), il suffit de mettre lextension .csv
au fichier de sauvegarde. Ce format est reconnu notamment par MatLab (via la commande
CSVREAD) et Excel. Au pralable, il faut indiquer que le fichier de sauvegarde est au format
texte ; pour cela cocher la case Write Statistics Output Files as Text accessible via le menu
Run/Setup/Run Control/Advanced.
VIII.4 ANIMATION GRAPHIQUE
L'animation permet de dcrire graphiquement l'volution dynamique de l'tat du systme
simul, notamment travers une visualisation :
du flux des entits (par exemple, des pices circulant le long d'une ligne de
production),
de l'tat des ressources (par exemple, l'tat libre (idle), occupe (busy) ou inactive
(inactive) d'une machine, d'un robot),
de l'volution des variables, des attributs (par exemple, le contenu d'une variable
indiquant le temps de traitement d'une machine, l'tat d'un stock).
L'animation est un moyen trs efficace de communication. D'un abord facile, notamment pour
les dcideurs non ncessairement initis aux aspects techniques, elle permet - sous rserve
bien sr que les conditions de simulation soient crdibles - de mettre en avant les phnomnes
54
tudis. Elle permet galement lors de la conception du modle de simulation de vrifier son
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\[Link].
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 :
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 [Link] 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 : [Link]).
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 [Link] 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).
Create
Process
0
0
connecteur
55
Ces objets sont dcrits ci-dessous :
- Affichage d'tat :
- Clock permet d'afficher le temps de simulation en heures, minutes et secondes,
- Date permet d'afficher le temps de simulation en jours, mois et annes,
- Variable permet d'afficher la valeur numrique d'une expression mathmatique ou
logique,
- Level affiche la valeur d'une expression relative des valeurs minimum et maximum
spcifies,
- Histogram permet d'afficher la distribution de la valeur d'une expression dans une
plage spcifie,
- Plot permet d'afficher les valeurs passes d'une expression sur une plage de temps
spcifie.
- Zone d'attente :
- Queue permet d'afficher les entits en attente d'un vnement spcifi (par exemple, la
disponibilit d'une ressource).
- Image :
- Resource permet de disposer d'un objet (par exemple, une machine) capacit limite
pouvant tre allou des entits. Une ressource peut tre dans l'tat idle, busy ou
inactive. Durant la simulation, l'image d'une ressource change en fonction de son tat.
- Global permet d'associer des images une expression (variable, attribut). Durant la
simulation, l'image de l'expression change en fonction sa valeur par rapport une
valeur spcifie.
La barre d'outils Dessin (Drawing)
Les objets de cette barre d'outils permettent l'ajout de dessins statiques, ou de texte :
Affichage d'tat : Clock Date Variable Level Histogram Plot
Zone d'attente : Queue
Image : Resource Global
Line Polyline Arc Bezier curve Box Polygon Ellipse Text Couleur
56
VIII.5 DONNES D'ENTRES
Le module Input Analyser d'ARENA permet l'exploitation de donnes d'entres en
dterminant automatiquement la loi de probabilit la plus adapte de la distribution empirique
obtenue partir des donnes d'entre (regroupes dans un fichier).
Les donnes dentres sont contenues dans un fichier au format .dst o une ligne contient un
nombre (rel). En fait, ce fichier est de type texte et donc lisible, par exemple, via le
WordPad. Voir, titre dexemple, le fichier [Link], ou [Link], dans le rpertoire
\Exemples\Distribution. Pour analyser un fichier de donnes (.dst), faire : Rockwell
Software/Arena/Input Analyzer afin douvrir lapplication Input Analyzer. Une fois dans cette
application, faire : File/New afin douvrir une fentre Input1. A prs avoir cliquer dans la
fentre grise, faire File/Data File/Use Existing
9
, ce qui permet de rcuprer le fichier (.dst)
contenant les donnes convertir en une loi de distribution : il en rsulte laffichage dun
histogramme des donnes.
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 ) ( pts de nbre O 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.
57
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 All
10
.
VIII.6 ANALYSE DES RSULTATS
Le module Output Analyser d'ARENA permet, l'issue d'une simulation, le calcul de rsultats
statistiques tels que la moyenne, l'cart type, la valeur minimum, la valeur maximum. Il est
galement possible de rcuprer l'historique complet des valeurs rcoltes au cours de la
simulation dans des fichiers (exploitables par exemple via le logiciel Excel).
Outre les tracs de courbes et d'histogrammes, ce module intgre diffrentes fonctions
statistiques, telles que le calcul d'intervalles de confiance, la construction de corrlogrammes,
la comparaison et l'analyse de moyennes, l'analyse de variances, le test d'hypothses,
10
To fit signifie ajuster .
58
ANNEXE : UTILISATION DES TEMPLATES ELEMENTS ET BLOCKS
A.1 PRSENTATION DE SIMAN-ARENA
Le langage SIMAN-ARENA s'articule autour d'un ensemble de programmes organiss selon
le schma suivant ; soit exemple, le nom du programme correspondant au modle (logiciel) du
systme considr. On retrouve dans le schma les 2 programmes constituant le modle
logiciel, savoir le programme, nomm [Link], issu de la partie modle, et le
programme, nomm [Link], issu du cadre exprimental. Ces 2 programmes sont des
fichiers de type texte, i.e., lisible par exemple via le logiciel Notepad.
Les fichiers [Link], [Link], [Link], [Link] sont fournis par
SIMAN/ARENA (ces fichiers sont placs dans le rpertoire \Rockwell Software\Arena afin de
compiler et linker les 2 programmes ([Link] et [Link]).
[Link]
[Link]
[Link]
(compilateur SIMAN)
[Link]
(linkeur SIMAN)
[Link]
(compilateur SIMAN)
exemple.e
(donnes
compiles)
exemple.m
(modle
compil)
[Link]
[Link]
[Link]
partie modle
(cheminement des entits)
cadre exprimental
(condition de simulation)
sorties
particulires
sorties
standards
.doe : modle anim
.p : modle non anim
59
Reprenons l'exemple du tapis roulant considr dans la section VIII.1. Soit un tapis roulant,
ayant un temps de transport de 3 units de temps, reprsent dans SIMAN-ARENA par le
modle logiciel dcrit comme suit :
Les blocs Create, Delay, Dispose sont issus du template Blocks. Le bloc Create cre 1 entit
partir de linstant 0, ceci toute les 2 units de temps. Le bloc Delay force une entit
sjourner 3 units de temps dans le bloc. Le bloc Dispose dtruit toute entit entrant dans le
bloc.
Les blocs Project, Replicate sont issus du template Elements. Le bloc Project permet
notamment de donner un nom au projet (Premier exemple) et le nom du programmeur
(ISTIA), de manire analogue l'entte d'un programme informatique. Le bloc Replicate
permet notamment de fixer le temps o se termine la simulation, ici gale 10 units de temps
(champ : Replication Length).
Les 2 fichiers - de type texte - gnrs par SIMAN-ARENA (accessibles l'aide du menu
Run/SIMAN/View) sont lists ci-dessous.
fichier [Link] : (partie modle)
0$ CREATE, [Link]NEXT(1$);
1$ DELAY: 3,,Other:NEXT(2$);
2$ DISPOSE: No;
0$, 1$, 2$ sont des tiquettes.
fichier [Link] : (cadre exprimental)
PROJECT, "Premier
exemple","ISTIA",,Yes,No,Yes,No,No,No,No,No;
REPLICATE, 1,0.0,10,Yes,Yes,0.0,,,24.0,Hours,No,No;
2 3
10
60
Le modle RdP correspondant la partie modle du modle logiciel prcdent est dcrit dans
la figure suivante :
ARENA est l'environnement de programmation graphique de SIMAN, il permet de construire
un modle en proposant des primitives de reprsentation plus ou moins dtailles. Il permet
galement de crer des animations graphiques pour visualiser le comportement du modle
durant la simulation. Les primitives de reprsentation sont regroupes dans diffrentes
bibliothques (templates). Les 2 templates contenant les blocs les plus lmentaires sont :
- Le template Blocks qui regroupe les blocs fonctionnels lmentaires de SIMAN
relativement la partie modle ; un bloc est l'quivalent d'une ligne du fichier .mod.
L'utilisation de ce template entrane gnralement l'utilisation du template Elements.
- Le template Elements qui regroupe les blocs fonctionnels lmentaires de SIMAN
relativement au cadre exprimental ; un bloc est l'quivalent d'une ligne du fichier .exp.
Ces templates ne sont pas disponibles par dfaut dans lenvironnement de SIMAN-ARENA,
pour permettre d'attacher (importer) un template non fourni par dfaut, utiliser le menu
File/Template Panel/Attach.
A.2 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LA
CONSTRUCTION DU MODLE
a) CREATE (issu du template Blocks) : Ce bloc permet de crer des entits. On peut prciser
la date de premire cration (champ : First Creation), la priode de cration (champ : Interval)
et la taille des lots (champ : Batch Size) ainsi que le nombre total de lots crer (champ :
Maximum Batches) (cf. figure suivante).
3
CREATE DELAY
DISPOSE
2
2
3
61
Voir une description de ce bloc l'aide du RdP suivant.
Le nombre de jetons prsents dans la place P correspond au nombre d'entits cres par le
bloc CREATE.
b) DISPOSE (issu du template Blocks) : Une entit entrant dans ce bloc est immdiatement
dtruite (cf. figure suivante). C'est l'quivalent d'une transition puit, c'est--dire, d'une
transition sans place amont.
Interval ()
Maximum
Batches
()
Batch Size
(1)
First
Creation
(0)
P
62
c) DELAY (issu du template Blocks) : Quand une entit entre dans ce bloc, elle y reste
inconditionnellement pendant la dure (alatoire ou non) indique dans le bloc (champ :
Duration) (cf. figure suivante).
Voir une description de ce bloc l'aide du RdP suivant.
Le nombre de jetons prsents dans la place P correspond au nombre d'entits prsentes dans le
bloc DELAY.
d) QUEUE, SEIZE (issus du template Blocks) : Pour entrer dans un bloc SEIZE, une entit
doit disposer d'un certain nombre de ressources (le nom de la ressource est spcifi dans le
champ Resource ID, le nombre de ressources ncessaires est spcifi dans le champ Number
of Units). Afin de simplifier la comprhension, le type de ressources (Resource ID) rclames
est suppos unique. Sachant qu'une ressource peut tre occupe, est place en amont du bloc
SEIZE un bloc QUEUE qui va reprsenter une file d'attente dans laquelle seront stockes les
entits en attente d'une, voire de plusieurs ressources ncessaires l'entre des entits dans le
bloc SEIZE aval (cf. figure suivante).
Duration (0)
Entre d'une entit
dans le bloc DELAY
Sortie de l'entit
du bloc DELAY
P
63
Voir une description dun bloc QUEUE et dun bloc SEIZE l'aide du RdP suivant.
La transition T pour tre active doit :
- Contenir (au moins) un jeton dans la place P1, ce qui correspond la prsence d'(au
moins) une entit dans le bloc QUEUE en attente d'une, voire de plusieurs
ressources.
- Contenir (au moins) Number of Units jetons dans la place P2, ce qui signifie qu'une
entit prsente dans le bloc QUEUE doit pouvoir disposer du nombre requis de
ressources ( savoir Number of Units ressources Resource ID).
Le fait de franchir la transition T a pour effet d'ter 1 jeton dans la place P1 et dter Number
of Units jetons dans la place P2, ce qui reprsente la sortie dune entit du bloc SEIZE et la
saisie de Number of Units ressources Resource ID.
bloc
QUEUE
bloc
SEIZE
T
P1
P2
Number
of Units
(1)
Entre d'une entit
dans le bloc QUEUE
Entre de l'entit
dans le bloc SEIZE
Sortie de l'entit
du bloc SEIZE
Sortie de l'entit
du bloc QUEUE
64
Le bloc QUEUE est caractris (configur) par le bloc QUEUES issu du template Elements,
travers :
- Le champ Name qui permet de nommer le bloc QUEUE, par exemple, stock machine 1 ;
- Le champ Ranking Criterion qui indique le mode de gestion du bloc QUEUE. Par
dfaut, le mode de gestion est de type First In, First Out (FIFO).
Le bloc QUEUES permet de dfinir plusieurs blocs QUEUE, au sens o il peut y avoir
plusieurs files d'attente dans un mme modle.
Le bloc SEIZE est li au bloc RESOURCES issu du template Elements, travers le champ
Name qui permet de nommer la, ou les ressources qui vont tre saisies.
e) RELEASE (issu du template Blocks) : Quand une entit entre dans ce bloc, elle libre
(relche) la, ou les ressources dont le nom est spcifi dans le champ Resource ID (le nombre
de ressources libres est spcifi dans le champ Quantity to Release) (cf. figure suivante).
Voir une description l'aide du RdP suivant.
Le fait de franchir la transition T' provoque l'apparition de Quantity to Release jetons dans la
place P1. Afin de simplifier le graphe prcdent, le type de ressources (Resource ID) libres
est suppos unique. Le fait de franchir cette transition correspond ce quune entit sorte du
bloc RELEASE et la mise en disponibilit de Quantity to Release ressources (Resource ID).
T'
P1
Quantity
to Release
(1)
Entre d'une entit
dans le bloc RELEASE
Sortie de l'entit
du bloc RELEASE
65
Comme pour le bloc SEIZE, le bloc RELEASE est li au bloc RESOURCES, issu du template
Elements, travers le champ Name qui permet de nommer la, ou les ressources qui vont tre
libres.
f) ASSIGN (issu du template Blocks) : Ce bloc permet dassigner une valeur un attribut, une
variable ou ltat dune ressource, durant lexcution dune simulation. Quand une entit
entre dans un bloc ASSIGN, lexpression - logique ou mathmatique - spcifie dans le champ
Value est value et assigne lattribut (rattach lentit prsente dans le bloc), la variable
ou ltat de la ressource, spcifi dans le champ Variable or Attribute (cf. figure suivante).
Les blocs VARIABLES et ATTRIBUTES, issus du template Elements, permettent de
dclarer respectivement les variables et les attributs. Le bloc STATESETS, issus du template
Elements, permet de dfinir pour une ressource un tat non standard (i.e., autre que Idle, Busy,
Inactive, et Failed).
Voir une description du bloc ASSIGN l'aide du RdP suivant.
g) BRANCH (issu du template Blocks) : Ce bloc permet daiguiller un flux dentits vers
diffrents blocs de destination, il comporte une entre et plusieurs sorties.
Le routage se fait via un ensemble de branches. A chaque branche sont rattaches deux
oprandes :
- la condition de branchement, indique dans le champ Condition or Probability,
spcifie la condition pour laquelle une entit slectionne la branche ;
Attribut_1 := val_1
Variable_1 := val_2
Attribut_2 := val_3
STATE(machine_1) := val_4
.
.
.
Entre d'une entit
dans le bloc ASSIGN
Sortie de l'entit
du bloc ASSIGN
66
- le label destination, indiqu dans le champ Send To Label, aiguille lentit vers le bloc
appropri.
Quand une entit entre dans un bloc BRANCH, 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 indiqu via le label destination. Si aucune
branche nest satisfaite, lentit est dtruite.
Quatre types de test sont possibles :
- If, Condition, Send To Label ;
- With, Probability, Send To Label permet un branchement probabiliste (la somme des
probabilit de toutes les branches ne peut pas dpasse 1) ;
- Else, Send To Label ;
- Always, Send To Label.
Voir une description de ce bloc l'aide du RdP suivant.
h) MATCH (issu du template Blocks) : Ce bloc permet de synchroniser la progression de
deux, voire de plusieurs entits situes dans diffrents blocs QUEUE. Le lien entre ces blocs
QUEUE et le bloc MATCH se fait via des labels (indiqus dans les champs Label des blocs
QUEUE et dans les champs Queue Label du bloc MATCH), ce qui ncessite de cocher
loption Detach des blocs QUEUE afin de les dtacher . Quand tous les blocs QUEUE
associs au bloc MATCH ont une, voire plusieurs entits, ces entits sont libres vers les
Entre d'une entit
dans le bloc BRANCH
Sorties
.
.
.
Slection dune transition :
- If, Condition, Send To Label
- With, Probability, Send To Label
- Else, Send To Label
- Always, Send To Label
BRANCH
Condition
Probability
If
With
Else
Always
67
blocs spcifis travers des labels de destination (indiqus dans les champs Destination
Label). Notons que les entits issues dun bloc QUEUE sont dtruites si le label de destination
correspondant nest pas indiqu (cf. figure suivante).
Voir une description de ce bloc l'aide du RdP suivant.
i) DUPLICATE (issu du template Blocks) : Ce bloc permet de dupliquer des entits et de les
envoyer vers diffrents blocs via des labels (indiqus dans les champs Duplicate Destination).
QUEUE
Q_1
QUEUE
Q_2
MATCH
Lab_dest_1
Lab_dest_2
Lab_1
Lab_2
bloc QUEUE Q_1
Lab_dest_1
Lab_dest_2
bloc QUEUE Q_2
blocs QUEUE
Q_1 et Q_2
bloc MATCH
Lab_1
Lab_2
68
Le nombre de duplication cre est spcifi dans le champ Quantity to Duplicate. 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.
Voir une description de ce bloc l'aide du RdP suivant.
A.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT UNE ANALYSE DU
MODLE
Les blocs dcrits dans A.2 ont pour objectif de modliser un systme physique. La collecte de
rsultats spcifiques un systme donn se fait en utilisant des blocs supplmentaires.
Quelques uns de ces blocs sont dfinit ci-dessous.
a) Le bloc COUNT, issu du template Blocks, permet de compter le nombre d'entits qui
transitent par ce bloc. Le bloc COUNT, dont le nom est spcifi dans le champ Counter ID,
est li au bloc COUNTERS, issu du template Elements, travers le champ Name, ce dernier
permet de dclarer (dfinir) le (ou les diffrents) bloc(s) COUNT prsent(s) dans la partie
modle. Voir plus bas en ce qui concerne un ventuel enregistrement des donnes.
DUPLICATE
.
.
.
Quantity to
Duplicate
Entre de lentit
dans le bloc DUPLICATE
.
.
.
Sortie de lentit
Sorties des
N entits
dupliques
Quantity to
Duplicate := N
69
b) Le bloc TALLY, issu du template Blocks, permet :
- De recueillir les temps de passage successif de 2 entits. Pour cela, indiquer BET
(pour BETween) dans le champ Value.
- De recueillir les temps mis par les entits traversant une partie (ou l'ensemble) d'un
modle. Par exemple, on souhaite pour chaque entit recueillir la diffrence entre le
temps de sortie du bloc fonctionnel M et le temps de sortie du bloc fonctionnel N.
Soient ) ( ), ( i t i t
M N
les temps de sortie de l'entit n i des blocs N et M respectivement
(cf. schma suivant).
Pour raliser cela, on dispose :
- Un bloc ASSIGN (cf. A.2.f) (juste) aprs le bloc N afin d'assigner le temps de
passage, savoir TNOW, de chaque entit dans un attribut, not par exemple
Tps_entre (un attribut est une variable associe individuellement aux entits).
- Un bloc TALLY (juste) aprs le bloc M afin de disposer des temps de parcours de la
sortie du bloc N au bloc M. Pour cela, indiquer dans le champ Value la donne
INT(Tps_entre) (INT pour INTerval).
(Voir le schma suivant).
Le bloc TALLY
11
est li au bloc TALLIES, issu du template Elements, travers le champ
Name, ce dernier permet de nommer le (ou les diffrents) bloc(s) TALLY utilis(s) dans la
partie modle. Voir plus bas en ce qui concerne un ventuel enregistrement des donnes.
Le bloc ASSIGN est li au bloc ATTRIBUTES, issu du template Elements, travers le champ
Name qui permet de nommer un attribut.
Remarque : Il est possible dassigner pour chaque entit sortant dun bloc CREATE son temps
de cration (TNOW) dans un attribut (Tps_entre) sans utiliser un bloc ASSIGN (situ juste en
11
To keep a tally of signifie tenir le compte de .
Bloc N Bloc M
t
N
(i)
t
M
(i)
Bloc N Bloc M
t
N
(1),
t
N
(2),
.
.
t
M
(1),
t
M
(2),
.
.
ASSIGN
(Tps_entre
= TNOW)
TALLY
(Value =
INT(Tps_
entre))
t
M
(1) - t
N
(1),
t
M
(2) - t
N
(2),
.
.
TALLIES
ATTRIBUTES
70
aval du bloc CREATE). Pour cela il suffit de mettre lattribut Tps_entre dans le champ Mark
Attribute du bloc CREATE (voir la figure dcrivant le bloc CREATE).
c) La variable NQ (abrviation de Number in Queue) est mise jour automatiquement par
SIMAN et permet de disposer du nombre dentits contenues dans un bloc QUEUE durant la
simulation. Par exemple, en supposant dfini un bloc QUEUE intitul Stock_1, la variable
NQ(Stock_1) permet de connatre le nombre dentits prsentes chaque instant dans le bloc
QUEUE intitul Stock_1.
Une variable NQ est dclare dans un bloc DSTATS, issu du template Elements, travers les
champs :
- SIMAN Expression, dans lequel on indique NQ(Stock_1) ;
- Name, utilis pour identifier le rsultat donn dans le rapport lissue de la
simulation, soit par exemple Evolution_Stock_1 ;
- Output File, pour un ventuel enregistrement des donnes.
d) La variable NR (abrviation de Number of busy Resource units) est mise jour
automatiquement par SIMAN et permet de connatre durant la simulation le taux doccupation
dune ressource. Par exemple, une machine constitue de n ressources permet le traitement en
parallle de n pices. Une ressource peut tre occupe (busy) (cf. bloc SEIZE), soit disponible
(idle) (cf. bloc RELEASE). Par exemple, en supposant dfinie une ressource Machine_1 de
capacit gale 3 (dclare dans un bloc RESOURCES), la variable NR(Machine_1) permet
de connatre le nombre de ressources Machine_1 occupes au cours du temps (ce nombre
pouvant tre gal 0, 1, 2 ou 3).
Une variable NR est dclare dans un bloc DSTATS, issu du template Elements, travers les
champs :
- SIMAN Expression, dans lequel on indique NR(Machine_1) ;
- Name, utilis pour identifier le rsultat donn dans le rapport lissue de la
simulation ;
- Output File, pour un ventuel enregistrement des donnes.
Enregistrement des donnes issues dun bloc COUNT ou TALLY, dune variable NQ ou
NR : Le rpertoire ainsi que le nom du fichier dans lequel sont enregistres les donnes issues
respectivement dun bloc COUNT ou TALLY ou dune variable NQ ou NR est indiqu entre
guillemets travers le champ Output File respectivement du bloc COUNTERS, TALLIES ou
DSTATS (pour les variables NQ ou NR). Afin de disposer des donnes au format csv
(abrviation de comma-separated-value, comma signifiant virgule), il suffit de mettre
lextension .csv au fichier de sauvegarde (par exemple : D:\Simulation\Fichier_1.csv ). Ce
format est reconnu notamment par MatLab (via la commande CSVREAD) et Excel. Au
pralable, il faut indiquer que le fichier de sauvegarde est au format texte ; pour cela faire :
Run/Setup/Run Control/Advanced, puis cocher la case Write Statistics Output Files as Text.