simulation des systemes de production

51
SIMULATION - SYSTÈMES DE PRODUCTION RÉSEAUX DE PETRI - ARENA “All models are wrong but some are useful” Georges E.P. Box, statisticien 1919-2013 Si le problĂšme que vous rencontrez Ă  une solution, il ne sert Ă  rien de s’inquiĂ©ter. Mais s’il n’en a pas, alors s’inquiĂ©ter ne change rien. Adage tibĂ©tain Jean-Louis Boimond Table des matiĂšres I INTRODUCTION À LA SIMULATION ........................................................................................................... 4 I.1 L’ÉTAPE DE MODÉLISATION ............................................................................................................. 5 I.2 LES LIMITES DE LA SIMULATION .................................................................................................... 6 I.3 LES SYSTÈMES À ÉVÉNEMENTS DISCRETS ................................................................................... 6 I.4 LA SIMULATION DES SYSTÈMES DE PRODUCTION .................................................................... 7 I.5 UTILISATION DE L’INFORMATIQUE ................................................................................................ 8 II RAPPELS DE PROBABILITÉS ET STATISTIQUES ..................................................................................... 8 II.1 VARIABLES ALÉATOIRES CONTINUES........................................................................................ 10 II.2 LOIS DE DISTRIBUTION STANDARD ............................................................................................. 11 II.3 VARIABLES ALÉATOIRES DISCRÈTES ......................................................................................... 13 III DONNÉES D'ENTRÉE DU SYSTÈME ........................................................................................................ 15 III.1 CONNAISSANCE PARTIELLE DES DONNÉES ............................................................................ 15 III.2 DONNÉES EXISTANTES (accessibles Ă  la mesure) ......................................................................... 16 IV VÉRIFICATION ET VALIDATION DES MODÈLES ................................................................................. 17 IV.1 VÉRIFICATION ................................................................................................................................... 17 IV.2 VALIDATION ....................................................................................................................................... 18 V INTERPRÉTATION DES RÉSULTATS ........................................................................................................ 19 V.1 ANALYSE DES SYSTÈMES FINIS ..................................................................................................... 21 V.2 ANALYSE DES SYSTÈMES QUI NE SE TERMINENT PAS .......................................................... 22 VI NOTIONS ELÉMENTAIRES SUR LES RÉSEAUX DE PETRI ................................................................. 23 VI.1 GÉNÉRALITÉS .................................................................................................................................... 23 VI.2 GRAPHES D'ÉVÉNEMENTS ............................................................................................................. 25 VI.3 EXEMPLES ........................................................................................................................................... 25 VI.4 AUTRES CLASSES DE RÉSEAUX DE PETRI ................................................................................ 27 VII LE LANGAGE DE SIMULATION ARENA ............................................................................................... 28 VII.1 NOTIONS DE BASE ........................................................................................................................... 28 VII.2 BLOCS PERMETTANT LA CONSTRUCTION D’UN MODÈLE................................................ 31 VII.3 BLOCS PERMETTANT L’ANALYSE D’UN MODÈLE................................................................ 43 VII.4 ANIMATION GRAPHIQUE .............................................................................................................. 47 VII.5 DONNÉES D'ENTRÉES ..................................................................................................................... 50 VII.6 ANALYSE DES RÉSULTATS ........................................................................................................... 51

Upload: others

Post on 31-Oct-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SIMULATION DES SYSTEMES DE PRODUCTION

SIMULATION - SYSTÈMES DE PRODUCTION

RÉSEAUX DE PETRI - ARENA

“All models are wrong but some are useful” Georges E.P. Box, statisticien 1919-2013

Si le problĂšme que vous rencontrez Ă  une solution, il ne sert Ă  rien de s’inquiĂ©ter. Mais s’il n’en a pas, alors s’inquiĂ©ter ne change rien.

Adage tibétain

Jean-Louis Boimond

Table des matiĂšres

I INTRODUCTION À LA SIMULATION ........................................................................................................... 4

I.1 L’ÉTAPE DE MODÉLISATION ............................................................................................................. 5 I.2 LES LIMITES DE LA SIMULATION .................................................................................................... 6 I.3 LES SYSTÈMES À ÉVÉNEMENTS DISCRETS ................................................................................... 6 I.4 LA SIMULATION DES SYSTÈMES DE PRODUCTION .................................................................... 7 I.5 UTILISATION DE L’INFORMATIQUE ................................................................................................ 8

II RAPPELS DE PROBABILITÉS ET STATISTIQUES ..................................................................................... 8

II.1 VARIABLES ALÉATOIRES CONTINUES ........................................................................................ 10 II.2 LOIS DE DISTRIBUTION STANDARD ............................................................................................. 11 II.3 VARIABLES ALÉATOIRES DISCRÈTES ......................................................................................... 13

III DONNÉES D'ENTRÉE DU SYSTÈME ........................................................................................................ 15

III.1 CONNAISSANCE PARTIELLE DES DONNÉES ............................................................................ 15 III.2 DONNÉES EXISTANTES (accessibles à la mesure) ......................................................................... 16

IV VÉRIFICATION ET VALIDATION DES MODÈLES ................................................................................. 17

IV.1 VÉRIFICATION ................................................................................................................................... 17 IV.2 VALIDATION ....................................................................................................................................... 18

V INTERPRÉTATION DES RÉSULTATS ........................................................................................................ 19

V.1 ANALYSE DES SYSTÈMES FINIS ..................................................................................................... 21 V.2 ANALYSE DES SYSTÈMES QUI NE SE TERMINENT PAS .......................................................... 22

VI NOTIONS ELÉMENTAIRES SUR LES RÉSEAUX DE PETRI ................................................................. 23

VI.1 GÉNÉRALITÉS .................................................................................................................................... 23 VI.2 GRAPHES D'ÉVÉNEMENTS ............................................................................................................. 25 VI.3 EXEMPLES ........................................................................................................................................... 25 VI.4 AUTRES CLASSES DE RÉSEAUX DE PETRI ................................................................................ 27

VII LE LANGAGE DE SIMULATION ARENA ............................................................................................... 28

VII.1 NOTIONS DE BASE ........................................................................................................................... 28 VII.2 BLOCS PERMETTANT LA CONSTRUCTION D’UN MODÈLE ................................................ 31 VII.3 BLOCS PERMETTANT L’ANALYSE D’UN MODÈLE ................................................................ 43 VII.4 ANIMATION GRAPHIQUE .............................................................................................................. 47 VII.5 DONNÉES D'ENTRÉES ..................................................................................................................... 50 VII.6 ANALYSE DES RÉSULTATS ........................................................................................................... 51

Page 2: SIMULATION DES SYSTEMES DE PRODUCTION

2

Bibliographie

â–Ș Discrete Event Systems - Modeling and Performance Analysis, Christos G. Cassandras, Aksen Associates

Incorporated Publishers, ISBN 0-256-11212-6.

â–Ș Handbook of Simulation: Principles, Methodology, Advances, Applications, and Practice, J. Bank, Wiley

Interscience, 1998.

â–Ș Introduction to Simulation Using SIMAN. Second Edition, C. Dennis Pegden, R.E. Shannon, R.P. Sadowski,

Ed. Mc Graw-Hill.

â–Ș Simulation Modeling and Analysis with ARENA. T. Altiok, B. Melamed, Elsevier, 2007.

â–Ș Optimisation des flux de production : MĂ©thodes et simulation, A. Ait Hssain, Ed. Dunod, 2000.

â–Ș Du Grafcet aux rĂ©seaux de Petri. R. David, H. Alla, HermĂšs, 1989.

â–Ș Cours de « Simulation informatique des systĂšmes de production », P. Castagna, A. L'Anton, N. Mebarki,

97/98 - IUT OGP Nantes.

â–Ș Cours de « RĂ©seaux de files d'attente et simulation », J. P. Chemla, 96/97 - UniversitĂ© de Tours.

â–Ș ProbabilitĂ©s et statistiques. 3Ăšme Ă©dition, A. Ruegg, Presses Polytechniques Romandes.

Page 3: SIMULATION DES SYSTEMES DE PRODUCTION

3

Arena : blocs, lois de probabilité, variables

bloc ASSIGN ........................................................................................................................................................ 36

bloc BATCH ........................................................................................................................................................ 40

bloc CREATE ...................................................................................................................................................... 31

bloc DECIDE ....................................................................................................................................................... 37

bloc DELAY ........................................................................................................................................................ 33

bloc DISPOSE ..................................................................................................................................................... 32

bloc MATCH ....................................................................................................................................................... 39

bloc PROCESS .................................................................................................................................................... 41

bloc QUEUE ...................................................................................................................................................34, 39

bloc RECORD ..................................................................................................................................................... 43

bloc RELEASE .................................................................................................................................................... 35

bloc RESOURCE ................................................................................................................................................ 35

bloc SEIZE ........................................................................................................................................................... 33

bloc SEPARATE ................................................................................................................................................. 41

bloc STATION .................................................................................................................................................... 48

bloc STATISTIC ................................................................................................................................................. 45

bloc VARIABLE ................................................................................................................................................. 37

loi DISCrete ......................................................................................................................................................... 14

loi EXPOnential .................................................................................................................................................. 12

loi NORMal .......................................................................................................................................................... 13

loi TRIAngular .................................................................................................................................................... 11

loi UNIFform ....................................................................................................................................................... 10

variable NQ .......................................................................................................................................................... 45

variable NR .......................................................................................................................................................... 45

Page 4: SIMULATION DES SYSTEMES DE PRODUCTION

4

I INTRODUCTION À LA SIMULATION

La simulation est un processus qui consiste Ă  :

- Concevoir un modÚle du systÚme (réel) étudié,

- Mener des expérimentations sur ce modÚle (et non pas des calculs),

- Interpréter les observations fournies par le déroulement du modÚle et formuler des

décisions relatives au systÚme.

Le but peut ĂȘtre de comprendre le comportement dynamique du systĂšme, de comparer des

configurations, d’évaluer diffĂ©rentes stratĂ©gies de pilotage, d’évaluer et d’optimiser des

performances.

La simulation est une technique permettant d'Ă©tudier le comportement d'un systĂšme dynamique

en construisant un modĂšle logiciel de celui-ci.

Les domaines d'application sont divers. Sont listĂ©s ci-dessous quelques classes d’applications

et quelques exemples de problÚmes typiques rattachés à ces classes :

â–Ș SystĂšmes de flux de production

- Ă©quilibrage de lignes d’assemblage,

- conception de systĂšmes de transfert entre des postes,

- dimensionnement des stocks d’un atelier,

- comparaison de pilotage de lignes de production.

â–Ș Flux logistiques et systĂšmes de transport

- conception et dimensionnement d’entrepîts,

- dimensionnement d’une flotte de camions,

- étude de procédures de contrÎle des flux de véhicules en circulation.

â–Ș Production des services

- Ă©tude de transactions bancaires,

- gestion de cantines, de restaurants,

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

Modélisation Analyse des

résultats

Page 5: SIMULATION DES SYSTEMES DE PRODUCTION

5

- comparaisons de politiques de maintenance des avions.

â–Ș SystĂšmes informatiques et tĂ©lĂ©communications

- Ă©tude de la file d’attente mĂ©moire d’un serveur,

- Ă©tude des comportements des utilisateurs,

- conception et dimensionnement de hubs.

â–Ș Autres classes d’applications

- domaine militaire (support logistique, coordination des opérations, 
),

- gestion d’hîpitaux (personnel, lits, service d’urgence, 
),

- le nucléaire, la météo, les jeux, ...

➱ MĂ©thodologie gĂ©nĂ©rale

Quatre phases sont classiquement considérées durant le processus de simulation : La

modélisation (représenter le comportement du systÚme), la programmation, l'expérimentation

et l'interprĂ©tation des rĂ©sultats (accompagnĂ©e d’actions).

(a) ExpĂ©rimentation : Il s'agit de construire des thĂ©ories, d’émettre des hypothĂšses, qui

prennent en compte le comportement observé.

Dans ce cours, les modÚles conceptuels seront représentés par des réseaux de Petri, cf. chp. VI ;

les programmes/modĂšles de simulation, ainsi que les expĂ©rimentations Ă  mĂȘme d’extraire des

résultats, se feront dans le cadre du logiciel Arena, cf. chp. VII.

I.1 L’ÉTAPE DE MODÉLISATION

L’étape de modĂ©lisation est une phase essentielle Ă  la simulation au sens oĂč la qualitĂ© des

rĂ©sultats fournis Ă  l’issue des expĂ©rimentations est principalement liĂ©e Ă  la qualitĂ© de la

modélisation.

DiffĂ©rents points doivent ĂȘtre abordĂ©s :

‱ DĂ©finir l'objectif de la modĂ©lisation (liĂ© au cahier des charges) : Pourquoi modĂ©lise-t-on ?

Qu'étudie-t-on ? Que veut-on faire ou améliorer ?

Figure 1 : MĂ©thodologie d'une simulation.

RĂ©sultats

ModĂšle conceptuel

(conditionnĂ© par l’objectif de l’étude)

Programme de simulation

Analyse & Modélisation

Interprétation

& Action

Correction

Correction

VĂ©rification

Programmation

Expérimentation(a)

Validation SystÚme (réel)

Page 6: SIMULATION DES SYSTEMES DE PRODUCTION

6

‱ DĂ©finir les limites du systĂšme (les entrĂ©es, les sorties) et les Ă©lĂ©ments (via la rĂ©alisation d'une

fonction, ou d'un processus) qui le composent.

‱ DĂ©finir les interactions entre ces Ă©lĂ©ments (hiĂ©rarchie).

I.2 LES LIMITES DE LA SIMULATION

La simulation n'est pas une technique d'optimisation au sens propre. Elle ne peut qu'Ă©tablir les

performances d'une solution conçue et imaginée par l'utilisateur. C'est une technique itérative

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 décider de ce qui répond le mieux aux

problÚmes posés.

Les résultats de simulation sont souvent complexes à interpréter. On étudie des phénomÚnes

aléatoires et les techniques d'analyse demandent de la rigueur ; il est souvent difficile de faire

la part du crucial et de l'anecdotique (le modĂšle doit ĂȘtre ni trop grossier, ni trop prĂ©cis), ceci

dans un temps de réalisation souvent contraint.

I.3 LES SYSTÈMES À ÉVÉNEMENTS DISCRETS

Les systÚmes que nous allons considérer, notamment les systÚmes de production, sont dits à

événements discrets. Un tel systÚme est représenté par un modÚle à événements discrets.

L’espace d'Ă©tat est rĂ©gi par des Ă©vĂ©nements discrets au sens oĂč les transitions entre Ă©tats sont

associĂ©es Ă  l'occurrence d'Ă©vĂ©nements discrets asynchrones. Les changements d’état de tels

systĂšmes s’opĂšrent instantanĂ©ment, Ă  des moments discrets dans le temps. Par exemple, si une

variable représente le nombre de piÚces présentes dans un stock alors ses valeurs varient

seulement aux instants oĂč des piĂšces entrent, ou sortent, du stock.

Les systÚmes de trafic (aérien, ferroviaire, naval, 
), les systÚmes de communication, les

systÚmes informatiques sont d'autres exemples de systÚmes dynamiques dont l'activité est due

Ă  des Ă©vĂ©nements discrets, dont certains sont provoquĂ©s (dĂ©part d’un train, appui sur une touche

d'un clavier) et d'autres pas (panne d'un Ă©quipement).

Le modÚle reproduit l'évolution au cours du temps de l'état1 du systÚme sous l'effet des activités

qui y sont rĂ©alisĂ©es. L’évolution d'une simulation Ă©vĂ©nementielle se fait Ă  travers la gestion

d’un Ă©chĂ©ancier : Le modĂšle du systĂšme passe au cours du temps d'un Ă©tat Ă  un autre Ă©tat suite

au déclenchement d'un événement. A chaque événement est associée une fonction à exécuter

laquelle peut modifier l'état du systÚme à travers le déclenchement d'un, ou de plusieurs

événements.

1 L’évolution de l’état est rĂ©gie par des Ă©vĂ©nements discrets contrairement aux systĂšmes continus (rĂ©gis par des

Ă©quations diffĂ©rentielles) oĂč l’état Ă©volue continĂ»ment au cours du temps.

Page 7: SIMULATION DES SYSTEMES DE PRODUCTION

7

I.4 LA SIMULATION DES SYSTÈMES DE PRODUCTION

Un systÚme de production est constitué d'un systÚme opérant (physique), d'un systÚme de

conduite (partie commande) et d'un systĂšme d'informations reliant ces deux derniers. Il est

traversé par un flux d'informations (présence d'une piÚce, état d'une machine) et un flux physique

(matiĂšre premiĂšre, piĂšces). Le systĂšme Ă  simuler peut ĂȘtre existant, Ă  modifier ou non encore

construit.

Les systÚmes automatisés de production - à l'initiative de l'Homme - sont caractérisés par une

forte complexitĂ© et flexibilitĂ©. La simulation de ces systĂšmes nĂ©cessite souvent d’avoir une

approche globale prenant en compte, à la fois, les aspects techniques (caractéristiques des

ressources de production, des capacités de stockage, géométrie du réseau de transport, ...) et

humains (contraintes sociales, travail en équipe, heures supplémentaires, ...).

Le modÚle décrit le fonctionnement du systÚme (sa structure et son comportement dynamique)

avec le degré de détail nécessaire à la résolution du problÚme posé. C'est une représentation de

la circulation des flux de produits :

- Le flux est ralenti par des activités qui mobilisent des ressources (aprÚs avoir attendu

leur disponibilité) pendant un certain temps (durées opératoires, temps de transfert, ...),

- Le flux est contraint par des rÚgles opératoires (gammes, contraintes technologiques),

- Le flux est dirigé par les rÚgles de conduite (systÚme de contrÎle).

L'historique et les statistiques portent sur les déplacements (temps de séjour des piÚces, temps

de transports des piĂšces d'un lieu Ă  un autre, ...), les taux d'engagements des ressources, les

longueurs des files d'attente, ...

Historique, statistiques

Evaluation de performances

SystĂšme de production

ModĂšle

Programme

ÉvĂ©nement X

ÉvĂ©nement C

ÉvĂ©nement B

ÉvĂ©nement A

ÉvĂ©nements

datables

ÉchĂ©ancier

Moteur : Exécution de

l’évĂ©nement dont

la date

d’occurrence est la

plus proche du

temps courant de

la simulation

Page 8: SIMULATION DES SYSTEMES DE PRODUCTION

8

L'évaluation de performances2, en termes de circulation de produits, exploite ces données pour :

- DĂ©terminer des performances absolues (volume de production, temps de cycle

maximum),

- Prédire des performances dans certaines conditions (présence de pannes),

- Faire une analyse de sensibilité (parmi des choix semblables),

- Comparer des alternatives (parmi des choix possibles).

Ces indicateurs de performances sont ensuite agrégés pour des prises de décisions relatives à

l'aide Ă  la conception, Ă  la conduite, ...

I.5 UTILISATION DE L’INFORMATIQUE

Trois approches sont habituellement utilisées pour réaliser une simulation : 1. Ecrire le programme correspondant au problÚme et au systÚme donnés. Les moyens

informatiques sont les langages de programmation généraux (C, Fortran, Pascal, ...). La mise

en Ɠuvre peut ĂȘtre longue, par contre on dispose d’une grande flexibilitĂ©. 2. Le dĂ©veloppement d'un modĂšle de simulation est rĂ©alisĂ© au travers d'un programme Ă©crit par

l'utilisateur à partir de primitives de modélisation offertes par le langage (les langages de

simulation). Ce type de logiciel offre une grande flexibilité mais avec des coûts de

développement parfois importants. Certains langages, comme ARENA (un des principaux

logiciels standards de simulation en France), proposent des primitives de modélisation

particuliÚrement adaptées aux systÚmes de production (primitives de modélisation des

ressources et fonction de transport). 3. Utiliser un logiciel, appelé simulateur, dédié à un type de systÚmes et un type de problÚme.

Le modÚle est donné et il suffit de le paramétrer pour l'adapter au cas étudié. Cette alternative

prĂ©sente l’avantage de ne pas programmer (seules des donnĂ©es sont Ă  entrer), par contre il

n’est pas toujours simple de trouver le logiciel dĂ©diĂ© adaptĂ© au systĂšme et au problĂšme

concernés.

II RAPPELS DE PROBABILITÉS ET STATISTIQUES

Sachant qu'il est impossible – quelle que soit la puissance des ordinateurs - de simuler toutes

les déviations possibles d'un systÚme, l'outil statistique est une alternative pour prendre en

compte, étudier et maßtriser les conséquences des variations aléatoires des systÚmes.

La théorie des probabilités, branche des mathématiques, permet de modéliser et d'étudier des

phénomÚnes aléatoires. On parle alors d'événements aléatoires, de lois de probabilité, de

variables aléatoires, ...

Dans un systÚme de production, de nombreux phénomÚnes ont un caractÚre aléatoire, par

exemple :

- La durée opératoire d'une opération manuelle,

2 L’évaluation de performances se base souvent sur le taux de production (nombre moyen de piĂšces par unitĂ© de

temps), le WIP (Work In Process, nombre total de piĂšces dans le systĂšme Ă  chaque instant), le makespan (intervalle

de temps entre le début et la fin de la production des piÚces).

Page 9: SIMULATION DES SYSTEMES DE PRODUCTION

9

- La durée de vie d'un outil,

- L'absentéisme des opérateurs,

- La période d'arrivée des ordres de fabrication déclenchant une production.

La statistique repose sur l'observation de phénomÚnes concrets. Le but est de recueillir des

données d'observation, de les traiter et de les interpréter. On parle alors de population

d'individus, de variables caractéristiques, d'échantillons, de moyennes, ...

Les modÚles probabilistes permettent de représenter approximativement les données observées

(imprécision, erreurs, répartition dans la population) comme des variables aléatoires suivant

une certaine loi de probabilitĂ© → modĂšles simplificateurs.

L'échantillon étant tiré au hasard, les caractéristiques des données à traiter sont des variables

alĂ©atoires → application de thĂ©orĂšmes de probabilitĂ©s (par exemple, le thĂ©orĂšme central

limite3).

La simulation utilise les résultats des probabilités-statistiques essentiellement pour :

- Approcher des données empiriques par des distributions de probabilités

→ des fonctions intĂ©grĂ©es dans le modĂšle de simulation (lois de distributions),

- Interpréter statistiquement les données générées par le modÚle

→ moyennes, intervalles de confiance, ...

Définition de la probabilité

On considÚre l'ensemble Ω des éventualités possibles résultant d'une épreuve (expérience,

observation ou simulation), chacune de ces éventualités étant appelée événement élémentaire.

Un Ă©vĂ©nement quelconque est dĂ©fini comme un sous-ensemble 𝐮 de Ω contenant tous les

Ă©vĂ©nements Ă©lĂ©mentaires de Ω composant l'Ă©vĂ©nement 𝐮. La probabilitĂ© attachĂ©e Ă  un

Ă©vĂ©nement 𝐮 est un nombre 𝑃(𝐮) compris entre 0 et 1, obĂ©issant Ă  certaines rĂšgles

axiomatiques, en particulier :

- L'événement de l'ensemble vide a une probabilité nulle.

- L'événement Ω a une probabilité égale à 1.

- ∀ 𝐮 ⊆   , on a 0 ≀ 𝑃(𝐮) ≀ 1.

- ∀ 𝐮, đ” ⊆   , on a 𝑃(𝐮 âˆȘ đ”) = 𝑃(𝐮) + 𝑃(đ”) si 𝐮 ∩ đ” = ∅.

Le problĂšme de l'attribution de probabilitĂ©s Ă  un ensemble d'Ă©vĂ©nements peut ĂȘtre rĂ©solu dans

un certain nombre de cas de la façon suivante :

- Si les événements élémentaires sont en nombre fini, on peut procéder à une série de

répétitions de l'épreuve : La fréquence d'apparition de chaque événement permet de

disposer d'une estimation de sa probabilité.

- Si les événements sont en nombre infini, on peut définir sur cet ensemble une densité

de répartition de probabilité.

3 La moyenne d'un Ă©chantillon de taille 𝑛 extrait d'une population quelconque de moyenne 𝜇 et d'Ă©cart type 𝜎 est

distribuĂ©e selon une loi pratiquement normale de moyenne 𝜇 et d'Ă©cart type 𝜎

√𝑛 quand la taille de l'Ă©chantillon est

suffisamment grande. Pour une population de départ de distribution normale, le théorÚme centrale limite est valable

pour tout 𝑛. Pour les distributions rencontrĂ©es dans la pratique courante, plus la taille de l'Ă©chantillon est grande,

plus la loi se rapproche de la loi normale. On peut considĂ©rer qu'Ă  partir de 𝑛 Ă©gale Ă  30, la moyenne d'un

échantillon est distribuée de façon sensiblement normale.

Page 10: SIMULATION DES SYSTEMES DE PRODUCTION

10

II.1 VARIABLES ALÉATOIRES CONTINUES

Une variable alĂ©atoire continue 𝑋 est une fonction Ă  valeurs rĂ©elles dĂ©finie sur un ensemble Ω

(ensemble des Ă©vĂ©nements possibles) telle que l'ensemble des valeurs prises par 𝑋, notĂ© 𝑋(Ω), est un intervalle fini ou infini. Soit par exemple Ω un intervalle [𝑎, 𝑏] reprĂ©sentant l’ensemble

des valeurs possibles du diamùtre des piùces en sortie d’un tour d’usinage.

Exemple de la loi uniforme (UNIF) continue : Soit 𝑋 une variable alĂ©atoire susceptible de

prendre toutes les valeurs d'un intervalle fini [𝑎, 𝑏], sans privilĂ©gier aucune rĂ©gion de [𝑎, 𝑏] (on

parle d'Ă©vĂ©nements Ă©quiprobables). Aussi, la probabilitĂ© que 𝑋 prenne une valeur appartenant

Ă  l'intervalle [𝑱, 𝑣] (⊂ [𝑎, 𝑏]) est proportionnelle Ă  la longueur de [𝑱, 𝑣], d'oĂč

𝑃(𝑱 ≀ 𝑋 ≀ 𝑣) = (𝑣 − 𝑱)/(𝑏 − 𝑎),

soit 𝑃(𝑱 ≀ 𝑋 ≀ 𝑣) = ∫ 𝑓𝑋(đ‘„)đ‘‘đ‘„â€„đ‘Ł

 𝑱 oĂč 𝑓𝑋(đ‘„) = {

1/(𝑏 − 𝑎) si 𝑎 ≀ đ‘„ ≀ 𝑏0 sinon

.

La fonction 𝑓𝑋(đ‘„), appelĂ©e densitĂ© de probabilitĂ©, dĂ©finit le comportement alĂ©atoire

(stochastique) de la variable alĂ©atoire 𝑋 et permet ainsi de caractĂ©riser sa loi de probabilitĂ©

(distribution).

La loi uniforme (distribution of maximum ignorance) est utilisée lorsque l'on a aucune

information exceptĂ©e la connaissance du domaine [𝑎, 𝑏].

𝑓𝑋(đ‘„) est une densitĂ© de probabilitĂ© de la variable alĂ©atoire 𝑋 si, et seulement si,

∀ 𝑎, 𝑏 ∈ 𝑅2, 𝑃(𝑎 ≀ 𝑋 ≀ 𝑏) = ∫ 𝑓𝑋(đ‘„)đ‘‘đ‘„. 𝑏

 𝑎

Remarque : Pour une variable alĂ©atoire continue, considĂ©rer un Ă©vĂ©nement du type « 𝑋 = đ‘„ »

n'a pas de sens (en effet, on a : 𝑃(đ‘„ ≀ 𝑋 ≀ đ‘„) = 0).

La densitĂ© de probabilitĂ© 𝑓𝑋(đ‘„) est telle que :

{𝑓𝑋(đ‘„) ≄ 0, ∀ đ‘„ ∈ 𝑅,

∫ 𝑓𝑋(đ‘„) đ‘‘đ‘„+∞

−∞= 1 (correspondant Ă  la probabiitĂ© de l'Ă©vĂ©nement certain = 1).

Remarque : 𝑓𝑋(đ‘„) est continue sur 𝑅 sauf (Ă©ventuellement) en un nombre fini de points (par

exemple, la densité de la loi uniforme est continue, exceptée en 2 points).

On dĂ©finit la moyenne 𝑀, aussi appelĂ©e espĂ©rance mathĂ©matique 𝐾(𝑋), par :

𝑀 = ∫ đ‘„â€„đ‘“đ‘‹(đ‘„)â€„đ‘‘đ‘„â€„+∞

 −∞.

On dĂ©finit la variance 𝜎2 (𝜎2 ≄ 0), aussi notĂ©e 𝑉𝑎𝑟(𝑋), par :

𝜎2 = (∫ đ‘„2𝑓𝑋(đ‘„)â€„đ‘‘đ‘„â€„+∞

 −∞) − 𝑀2, encore Ă©gale Ă  ∫ (đ‘„ − 𝑀)2𝑓𝑋(đ‘„)â€„đ‘‘đ‘„

 +∞

 −∞.

1

𝑏 − 𝑎

𝑓𝑋(đ‘„)

0 a u v b x

aire =𝑃(𝑱 ≀ 𝑋 ≀ 𝑣)

Page 11: SIMULATION DES SYSTEMES DE PRODUCTION

11

Rappel (Moyenne, variance) : La moyenne constitue un paramĂštre de position qui renseigne

sur l'ordre de grandeur des valeurs prises par la variable alĂ©atoire 𝑋. 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 𝑋 sont concentrĂ©es autour de la moyenne.

Exemple : Dans le cas de la loi uniforme précédente, on a :

𝑀 = ∫ â€„đ‘„

đ‘âˆ’đ‘Žâ€„đ‘‘đ‘„ = 

𝑎+𝑏

2

 𝑏

 𝑎 et 𝜎2 = ∫  

đ‘„2

𝑏−𝑎

 𝑏

â€„đ‘Žâ€„đ‘‘đ‘„â€„ − (

𝑎+𝑏

2)2

=(𝑏−𝑎)2

12.

On dĂ©finit l'Ă©cart type (standard deviation) par 𝜎=√𝜎2.

La plus grande partie des phĂ©nomĂšnes alĂ©atoires rencontrĂ©s dans la pratique peut ĂȘtre Ă©tudiĂ©e

via un nombre restreint de lois de distribution. Nous allons à présent voir les principales lois de

distributions.

II.2 LOIS DE DISTRIBUTION STANDARD

a) LOI TRIANGULAIRE (TRIA)

{

𝑓𝑋(đ‘„) =

2(đ‘„âˆ’đ‘Ž)

(𝑚−𝑎)(𝑏−𝑎) si 𝑎 ≀ đ‘„ ≀ 𝑚,

𝑓𝑋(đ‘„) =2(đ‘âˆ’đ‘„)

(𝑏−𝑚)(𝑏−𝑎) si 𝑚 ≀ đ‘„ ≀ 𝑏,

𝑓𝑋(đ‘„) = 0 sinon.

đ· =  [𝑎, 𝑏] ;  𝑀 =𝑎+𝑚+𝑏

3 ; 𝜎2 = 

𝑎2+𝑚2+𝑏2−𝑎𝑚−𝑎𝑏−𝑚𝑏

18.

Application : On utilise cette loi lorsqu'on dispose d'une estimation du minimum, du maximum

et de la valeur la plus probable.

Exercice : Soient 𝑎 = 0,𝑚 = 2, 𝑏 = 3, calculer 𝑃(1 ≀ 𝑋 ≀ 2,5).

2

𝑏 − 𝑎

a m b x

𝑓𝑋(đ‘„)

aire = 1

Page 12: SIMULATION DES SYSTEMES DE PRODUCTION

12

b) LOI EXPONENTIELLE (EXPO)

{𝑓𝑋(đ‘„) =

1

đ›œđ‘’âˆ’đ‘„/đ›œ siâ€„đ‘„ > 0  (đ›œ > 0),

𝑓𝑋(đ‘„) = 0 sinon.

đ· =  [0, + ∞ [ ;  𝑀 = đ›œâ€„; 𝜎2 =â€„đ›œ2.

Application : Cette loi est souvent utilisée en pratique. Par exemple, dans le cas de temps

séparant les arrivées de 2 « clients » successifs dans l'étude d'un phénomÚne d'attente, ou dans

le cas d'une durée de bon fonctionnement d'un équipement technique.

La loi exponentielle est la seule loi continue à permettre la prise en compte de phénomÚnes sans

mĂ©moire ou sans vieillissement ou sans usure. En effet, la probabilitĂ© que 𝑋 soit supĂ©rieure, ou

Ă©gale, Ă  đ‘„ + đ‘„0, sachant que 𝑋 est supĂ©rieure, ou Ă©gale, Ă  đ‘„0, dĂ©pend de la valeur de đ‘„, et est

indĂ©pendante de la valeur de đ‘„0, soit : 𝑃(𝑋 ≄ đ‘„ + đ‘„0 | 𝑋 ≄ đ‘„0) = 𝑃(𝑋 ≄ đ‘„). Par exemple, il est souvent admis que la durĂ©e de vie 𝑇 d'un dispositif Ă©lectronique obĂ©it Ă  une

loi exponentielle. Aussi la probabilité de bon fonctionnement du dispositif dans un intervalle

de temps [Δ0, Δ0 + Δ], c'est-Ă -dire, 𝑃(𝑇 ≄ Δ + Δ0| 𝑇 ≄ Δ0), dĂ©pend uniquement de la

longueur de cet intervalle, et non de sa position par rapport Ă  l'axe des temps, soit :

𝑃(𝑇 ≄ Δ + Δ0 | 𝑇 ≄ Δ0) = 𝑃(𝑇 ≄ Δ)).

DĂ©monstration : Soient l'Ă©vĂ©nement 𝐮 correspondant au fait que 𝑋 ≄ đ‘„0 et l'Ă©vĂ©nement đ”

correspondant au fait que 𝑋 ≄ đ‘„0 + đ‘„. On a 𝑃(𝑋 ≄ đ‘„0) = ∫ 𝑓𝑋(đ‘„)â€„đ‘‘đ‘„â€„+∞

â€„đ‘„0 et 𝑃(𝑋 ≄ đ‘„0 + đ‘„) =

∫ 𝑓𝑋(đ‘„)â€„đ‘‘đ‘„â€„+∞

â€„đ‘„0+đ‘„. Aussi 𝑃(đ”â€„| 𝐮) Ă©quivaut Ă  𝑃(𝑋 ≄ đ‘„0 + đ‘„â€„| 𝑋 ≄ đ‘„0).

Sachant que : 𝑃(𝐮 ∩ đ”) = 𝑃(𝐮) × 𝑃(đ”â€„| 𝐮) = 𝑃(đ”) × 𝑃(𝐮 |â€„đ”) (probabilitĂ© conditionnelle),

on a 𝑃(đ”â€„| 𝐮) =𝑃(đ”)×𝑃(𝐮 |â€„đ”)

𝑃(𝐮).

Sachant que 𝑃(𝐮 |â€„đ”) Ă©quivaut Ă  𝑃(𝑋 ≄ đ‘„0 | 𝑋 ≄ đ‘„0 + đ‘„) = 1, on a 𝑃(đ”â€„| 𝐮) =𝑃(đ”)

𝑃(𝐮).

Ainsi 𝑃(đ”â€„| 𝐮) =𝑃(đ”)

𝑃(𝐮)=

𝑃(đ‘‹â‰„đ‘„0+đ‘„)

𝑃(đ‘‹â‰„đ‘„0)=

∫1

đ›œâ€„đ‘’âˆ’â€„đ‘ąđ›œâ€„đ‘‘đ‘ą

 +â€„âˆžâ€„đ‘„0+đ‘„

∫1

đ›œâ€„đ‘’âˆ’â€„đ‘ąđ›œâ€„đ‘‘đ‘ą

 +â€„âˆžâ€„đ‘„0

=

−  [đ‘’âˆ’â€„đ‘ąđ›œ]â€„đ‘„0+đ‘„

 + ∞

−  [đ‘’âˆ’â€„đ‘ąđ›œ]â€„đ‘„0

 + ∞ =𝑒− (đ‘„0+đ‘„)đ›œ

đ‘’âˆ’â€„đ‘„0đ›œ

= đ‘’âˆ’â€„đ‘„

đ›œ qui est

fonction de đ‘„ uniquement (indĂ©pendant de đ‘„0).

𝑓𝑋(đ‘„)

0 x

1

đ›œ

Page 13: SIMULATION DES SYSTEMES DE PRODUCTION

13

c) LOI NORMALE (NORM)

đ· = ]−∞, +∞[ ; moyenne = 𝑀 ; variance = 𝜎2.

Application : Cette loi s'applique dans le cas de processus dont la distribution est symétrique et

pour lesquels la moyenne et l'écart type sont estimés. Exemple : Variations de la longueur de

piÚces fabriquées en série.

Cette loi permet de modéliser une donnée qui est la somme d'un grand nombre de données

aléatoires (théorÚme central limite).

Rappel : A la place de la densitĂ© de probabilitĂ© 𝑓𝑋(đ‘„), on peut utiliser la fonction de rĂ©partition

đč𝑋(đ‘„) pour caractĂ©riser la distribution d'une variable alĂ©atoire 𝑋.

On a : đč𝑋(đ‘„) = 𝑃(𝑋 ≀ đ‘„) = ∫  𝑓𝑋(𝑱)â€„đ‘‘đ‘ąâ€„đ‘„

 − ∞ pour −∞ < đ‘„ < +∞.

đč𝑋(đ‘„) est une fonction continue, monotone croissante, telle que đč𝑋(− ∞) = 0 et đč𝑋(+ ∞) = 1,

đč𝑋â€Č (đ‘„) = 𝑓𝑋(đ‘„). Elle permet de calculer des probabilitĂ©s de la forme 𝑃(𝑎 < 𝑋 ≀ 𝑏) sans

effectuer une intĂ©gration (ce qui est le cas en utilisant 𝑓𝑋(đ‘„)) ; en effet 𝑃(𝑎 < 𝑋 ≀ 𝑏) =đč𝑋(𝑏) − đč𝑋(𝑎).

II.3 VARIABLES ALÉATOIRES DISCRÈTES

Une variable aléatoire est discrÚte si elle ne peut prendre qu'un nombre fini de valeurs (par

exemple : Ω ={pile, face} dans le cas du lancer d'une piÚce de monnaie). Pour chaque valeur

đ‘„đ‘–, on associe la probabilitĂ© 𝑝(đ‘„đ‘–) d'apparition de cette valeur.

Pour 𝑁 valeurs, l'ensemble des probabilitĂ©s associĂ©es est tel que :

∑  𝑝(đ‘„đ‘–) 𝑁𝑖=1 =  1 si 𝑁 couvre l'ensemble des valeurs.

Exemple : On définit un systÚme capable de produire quatre types de produits notés 1, 2, 3, 4.

Lors de l'arrivée 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⁄ .

𝑓𝑋(đ‘„)=1

𝜎√2𝜋 𝑒− (đ‘„âˆ’đ‘€)

2/2𝜎2

points d'inflexion

1

𝜎√2𝜋

𝑓𝑋(đ‘„)

0 đ‘„ 𝑀 − 𝜎 𝑀 𝑀 + 𝜎

𝑀 đ‘„

𝑓𝑋(đ‘„)

68% des valeurs

𝜎2 petit

𝜎2 grand

Page 14: SIMULATION DES SYSTEMES DE PRODUCTION

14

La loi est reprĂ©sentĂ©e soit par le diagramme en bĂątons suivant indiquant 𝑝(đ‘„đ‘–) en fonction de

đ‘„đ‘– :

soit par un histogramme4 :

DĂ©finitions

La moyenne (arithmĂ©tique) 𝑀 est Ă©gale Ă  ∑ đ‘„đ‘–đ‘(đ‘„đ‘–)𝑁𝑖=1 .

Exercice : Calculer la moyenne considérée dans l'exemple précédent.

La variance 𝜎2 est Ă©gale Ă  (∑ đ‘„đ‘–2𝑝(đ‘„đ‘–)) − 𝑀

2𝑁𝑖=1 .

On définit la probabilité cumulée (notion utilisée dans le logiciel ARENA) par

𝑝𝑐(đ‘„đ‘–) = ∑  𝑝(đ‘„đ‘™)𝑖𝑙=1 .

Dans l'exemple prĂ©cĂ©dent, on a : 𝑝𝑐(đ‘„1) =1

6,  𝑝𝑐(đ‘„2) =

1

2,  𝑝𝑐(đ‘„3) =

5

6, 𝑝𝑐(đ‘„4) = 1.

Soit đ‘„1, ⋯ , đ‘„đ‘› un ensemble de 𝑛 valeurs discrĂštes possibles, la distribution empirique discrĂšte

DISC(𝑝𝑐(đ‘„1), đ‘„1, ⋯ , 𝑝𝑐(đ‘„đ‘–), đ‘„đ‘– , ⋯ , 𝑝𝑐(đ‘„đ‘›), đ‘„đ‘›) est telle qu’elle retourne la valeur đ‘„đ‘– avec une

probabilitĂ© cumulĂ©e Ă©gale Ă  𝑝𝑐(đ‘„đ‘–)5. Par exemple, la loi DISC(0.3,1, 0.4,2, 1,4) retourne : la

valeur 1 avec une probabilitĂ© Ă©gale Ă  0.3 ; la valeur 2 avec une probabilitĂ© Ă©gale Ă  0.1(= 0.4 −0.3) ; la valeur 4 avec une probabilitĂ© Ă©gale Ă  0.6(= 1 − 0.4).

4 Ensemble de rectangles de mĂȘme largeur dont les surfaces sont proportionnelles aux probabilitĂ©s 𝑝(đ‘„đ‘–). 5 Par construction, on a : 𝑝𝑐(đ‘„1) = 𝑝(đ‘„1) et 𝑝𝑐(đ‘„đ‘›) = 1.

𝑝(đ‘„đ‘–)

1/3

1/6

đ‘„đ‘– 0 1 2 3 4

1/3

1/6

1 2 3 4 0

𝑝(đ‘„đ‘–)

đ‘„đ‘–

Page 15: SIMULATION DES SYSTEMES DE PRODUCTION

15

Application : Les variables aléatoires discrÚtes s'appliquent dans le cas d'injection directe de

données empiriques dans le modÚle. Exemples : Types de piÚces, taille des lots.

III DONNÉES D'ENTRÉE DU SYSTÈME

La qualité des données est aussi importante que la qualité du modÚle (garbage in - garbage

out) ; ceci concerne, par exemple dans le cas d'un systÚme de production, les temps opératoires,

les temps de bon fonctionnement, les taux de rebut, ...

Deux problĂšmes se posent principalement :

P1) Collecte des données

→ lesquelles ? disponibles ? pertinentes ? comment les collecter ?

P2) SystĂšmes stochastiques

→ lecture directe des donnĂ©es empiriques ou tirage Ă  partir d'une distribution

théorique associée ?

Les sources possibles de données sont de nature différente :

- Enregistrement du passĂ© → bases de donnĂ©es Ă  interroger (problĂšmes de mise Ă  jour).

- Observation du systĂšme → ressources humaines (erreurs, nĂ©gligence des extrĂȘmes et

oubli du passé).

- SystĂšmes similaires → attention aux infĂ©rences.

- Affirmation des fournisseurs de matériel (souvent optimistes).

- Estimation des concepteurs (à vérifier).

Deux cas sont à considérer : les données du systÚme (moyenne, minimum, maximum, ...) sont

disponibles ou partiellement connues.

III.1 CONNAISSANCE PARTIELLE DES DONNÉES

C'est le cas des systĂšmes qui n'existent pas encore, ou pour lesquels il est impossible de disposer

des données désirées (temps, ressources). On doit se baser sur l'estimation des opérateurs, des

concepteurs, des fournisseurs de matériel, ...

Trois cas se présentent 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 𝑮 est disponible

On peut alors utiliser (si cela est justifié) :

- Directement 𝑀 comme valeur constante de la variable si la dispersion (Ă©cart type) est petite,

- Une distribution exponentielle (grande dispersion : forte variabilitĂ©) de paramĂštre 𝑀 si la

nature du phénomÚne le justifie.

2. 𝑮𝒊𝒏 et 𝑮𝒂𝒙 sont disponibles

On peut alors utiliser (si cela est justifié) :

- Une distribution uniforme de paramĂštres 𝑀𝑖𝑛 et đ‘€đ‘Žđ‘„, c'est la distribution de l'ignorance

(il n'y a pas de raison de penser que les probabilités ne sont pas équiprobables),

Page 16: SIMULATION DES SYSTEMES DE PRODUCTION

16

- Si les donnĂ©es sont centrĂ©es autour de la moyenne 𝑀 = (𝑀𝑖𝑛 + đ‘€đ‘Žđ‘„) 2⁄ , on peut appliquer

une distribution normale centrĂ©e autour de 𝑀 ; Ă  partir de l'Ă©tendue des donnĂ©es

(𝐾𝑡𝑒𝑛𝑑𝑱𝑒 = đ‘€đ‘Žđ‘„ −𝑀𝑖𝑛), on peut calculer l'Ă©cart type : Si les donnĂ©es sont nombreuses,

𝜎 = 𝐾𝑡𝑒𝑛𝑑𝑱𝑒/6, sinon 𝜎 = 𝐾𝑡𝑒𝑛𝑑𝑱𝑒/4.

3. 𝑮𝒊𝒏, 𝑮𝒂𝒙 et la valeur la plus probable 𝒎 sont disponibles

On peut alors utiliser (si cela est justifié) une distribution triangulaire de paramÚtres

𝑀𝑖𝑛,𝑚,đ‘€đ‘Žđ‘„.

III.2 DONNÉES EXISTANTES (accessibles à la mesure)

Le problÚme P2 n'ayant pas de réponse claire, les logiciels de simulation proposent souvent les

deux possibilités.

Il est souvent intéressant, pour des raisons théoriques et pratiques, de pouvoir décrire une loi de

probabilité par une distribution théorique. Ceci revient à exprimer sous forme analytique les

probabilitĂ©s 𝑝(đ‘„đ‘˜) en fonction de l'indice 𝑘. On peut alors appliquer au calcul des probabilitĂ©s

des méthodes bien connues d'analyse mathématique, évitant ainsi des calculs numériques

fastidieux.

- Si les données empiriques sont directement utilisées, elles sont entrées sous forme de

distributions empiriques cumulatives (histogramme des fréquences : regroupement des

observations en classes, nombres de classes = (O√𝑛𝑏𝑟𝑒 𝑑â€Č𝑜𝑏𝑠𝑒𝑟𝑣𝑎𝑡𝑖𝑜𝑛𝑠)). - Si on veut faire des tirages Ă  partir des distributions thĂ©oriques, il faut :

a) Choisir une distribution en fonction de sa forme (et celle de l'histogramme des données),

b) Estimer ses paramĂštres,

c) Tester l'hypothÚse (la distribution correspond-elle bien aux données ?).

L'étape a) est effectuée, connaissant les caractéristiques des distributions courantes et en

comparant visuellement la distribution théorique et la distribution empirique (histogramme des

fréquences).

L'Ă©tape b) implique l'utilisation des estimateurs classiques.

L'Ă©tape c) peut s'effectuer visuellement, ou en utilisant des tests statistiques d'hypothĂšses (Khi-

deux, Kolmogorov-Smirnov).

Page 17: SIMULATION DES SYSTEMES DE PRODUCTION

17

Exemple : On s'intéresse au temps de traitement d'une machine. On dispose d'un ensemble de

500 valeurs représentant l'intervalle de temps (obtenu à l'aide d'un chronomÚtre) entre chaque

apparition d'une piÚce en sortie de la machine. L'entrée de la machine est toujours

approvisionnée. On considÚre 21 classes pour construire l'histogramme des fréquences.

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

(*) HypothĂšse : Valeurs 𝑀𝑖𝑛 et đ‘€đ‘Žđ‘„ finies.

Une valeur đ‘„ ∈ đ¶đ‘™đ‘Žđ‘ đ‘ đ‘’â€„đ‘›â€„(1 ≀ 𝑛 ≀ 21) âŸș 𝑀𝑖𝑛 + (𝑛 − 1)đ‘€đ‘Žđ‘„âˆ’đ‘€đ‘–đ‘›

21≀ đ‘„ ≀ 𝑀𝑖𝑛 + 𝑛

đ‘€đ‘Žđ‘„âˆ’đ‘€đ‘–đ‘›

21.

Si la valeur 𝑀𝑖𝑛 (respectivement đ‘€đ‘Žđ‘„) = −∞ (respectivement +∞), on considĂšre une classe [−∞, valeur rĂ©elle] (respectivement [valeur rĂ©elle, +∞]).

IV VÉRIFICATION ET VALIDATION DES MODÈLES

Les programmes de simulation se caractérisent par une évolution constante (tests de scénarii,

que se passe-t-il si ?, ...). La difficulté majeure est de savoir :

‱ Comment avoir confiance dans le modùle ?

‱ Comment le transmettre à l'utilisateur ?

Avant de tirer des inférences des résultats statistiques d'un modÚle/programme de simulation,

il faut s'assurer qu'il représente bien le systÚme. Ceci passe habituellement par deux étapes : la

vérification et la validation.

IV.1 VÉRIFICATION

La vérification consiste à s'assurer que le modÚle fonctionne comme le souhaite le concepteur

(sans erreur de logique), ce qui nécessite de pouvoir isoler les erreurs (étape la plus difficile)

afin de les corriger. La vérification est rendue plus facile si on commence par un modÚle simple

Nbre de valeurs

appartenant Ă  la

classe

n°1, n°2, ... (*)

𝑀𝑖𝑛

Cl. 1 
. Cl. 21

đ‘€đ‘Žđ‘„

Page 18: SIMULATION DES SYSTEMES DE PRODUCTION

18

qu'on améliore (enrichi) progressivement. Les techniques (ou comportement à avoir) suivantes

permettent l'isolation des erreurs :

1. Considérer toujours que le modÚle contient des erreurs et les chercher (approche destructive,

plutĂŽt que constructive).

2. Impliquer des personnes non concernées par la conception et l'implémentation.

3. Réviser le modÚle et les données avec l'aide d'au moins un client et un connaisseur du langage

(en plus du développeur).

4. Effectuer des tests :

- Remplacer des temps aléatoires par des constantes,

- Tester seulement une partie du modĂšle,

- Tester le modĂšle dans des conditions limites. Pour cela :

- Augmenter le taux d'arrivée et/ou diminuer le taux de service pour créer des

congestions, ou des phénomÚnes de « famines » de machines,

- Réduire la taille des stocks pour créer des blocages,

- Modifier la distribution des types de piÚces (job mix) pour augmenter l'arrivée des

piÚces de types moins fréquents,

- Augmenter le taux d'occurrence des événements moins fréquents (par exemple

une panne).

5. Générer et analyser la trace du modÚle pour vérifier le cheminement des piÚces, 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 symptĂŽmes

(le raisonnement logique reste la meilleure approche).

8. Eviter des erreurs classiques, notamment vis-Ă -vis :

- De la saisie des données d'entrée,

- De la phase d'initialisation (unités de mesures),

- Du contrĂŽle du flux,

- De l'existence de blocages,

- Des erreurs arithmétiques (parenthÚses, conversion de types, ...),

- Des erreurs d'enregistrement (temps d'arrivée des piÚces, compteurs, ...),

- D'une mauvaise utilisation des primitives ou fonctions du langage.

IV.2 VALIDATION

Trois questions doivent ĂȘtre posĂ©es :

‱ Le modĂšle reprĂ©sente-t-il correctement le systĂšme rĂ©el (validitĂ© conceptuelle) ?

‱ Les donnĂ©es sur le comportement gĂ©nĂ©rĂ©es par le modĂšle sont-elles caractĂ©ristiques

de celles du systÚme réel (validité opérationnelle) ?

‱ L'utilisateur a-t-il confiance dans les rĂ©sultats du modĂšle (confiance) ?

Trois points de vue sont Ă  prendre en compte :

- Celui du développeur,

Page 19: SIMULATION DES SYSTEMES DE PRODUCTION

19

- Celui d'une personne Ă©valuant le modĂšle (superviseur, client),

- Celui de l'utilisateur final (décideur).

Trois types de tests :

1. Le comportement est-il raisonnable ?

- Continuité : Petits changements dans les paramÚtres d'entrée

→ petits changements dans les variables de sortie et les variables d'Ă©tat.

- Consistance : Exécutions presque identiques

→ rĂ©sultats presque identiques (exemple : GĂ©nĂ©rateur alĂ©atoire changĂ©).

- Dégénérescence : Suppression d'une composante (d'un « mode ») du modÚle

→ effets sur les rĂ©sultats (exemple : Une machine supprimĂ©e).

- Conditions absurdes : ParamÚtres d'entrées absurdes

→ rĂ©sultats absurdes (exemple : Porter le budget de la publicitĂ© Ă  l'infini ne doit

pas entraĂźner des ventes infinies).

2. Test des données et de la structure du modÚle

Les thĂ©ories et les hypothĂšses doivent ĂȘtre correctes et la reprĂ©sentation du modĂšle doit ĂȘtre en

adéquation par rapport à l'utilisation désirée.

→ ValiditĂ© de « façade » : Le comportement semble correct pour des personnes familiĂšres avec

le systÚme réel (logique, entrées-sorties).

→ VĂ©rification de la structure et des limites : Correspondance entre le modĂšle conceptuel et le

systÚme de référence.

3. Test du comportement du modĂšle

Il consiste à étudier le comportement du modÚle en relation avec le systÚme de référence.

→ Comparaison de comportements : Tests statistiques pour comparer les rĂ©sultats (Khi-deux,

Kolmogorov-Smirnov, ...).

→ GĂ©nĂ©rer des symptĂŽmes :

- Le modÚle génÚre des difficultés déjà connues dans le systÚme ?

- Le modÚle produit des résultats connus pour des entrées données ?

→ Anomalie de comportement : Une anomalie dans le modĂšle peut amener Ă  dĂ©couvrir

l'anomalie équivalente dans le systÚme réel ?

→ PrĂ©diction de comportement : PrĂ©diction du modĂšle contre des tests sur le terrain.

V INTERPRÉTATION DES RÉSULTATS

Selon le logiciel utilisé, l'exécution d'un programme de simulation peut générer :

Page 20: SIMULATION DES SYSTEMES DE PRODUCTION

20

- Un rapport de simulation comprenant les moyennes, les Ă©carts types, les minimums et

maximums des variables observées, ...

- Un historique de l'Ă©volution de ces variables au cours de la simulation.

La qualité de la moyenne (arithmétique) comme estimateur de la vraie moyenne dépend, entre

autres, du nombre des observations. De mĂȘme, 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 crédibles sur les

performances du systÚme. Il suffit de changer le générateur de nombres aléatoires pour que le

mĂȘme modĂšle gĂ©nĂšre des rĂ©sultats diffĂ©rents. 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 résultats générés par un modÚle jouent le rÎle de mesures sur un échantillon. Il faut donc

les exploiter pour effectuer des procédures statistiques. A chaque variable (inconnue), il faut

associer un intervalle de confiance.

Rappel (Intervalle de confiance) : L'intervalle de confiance [𝑐1, 𝑐2] du paramùtre inconnu 𝜆

est dĂ©fini Ă  l'aide de 2 grandeurs statistiques đ¶1, đ¶2 de telle sorte qu'il recouvre, avec une

probabilitĂ© donnĂ©e 1 − đ›Œ, la (vraie) valeur inconnue de 𝜆, soit :

𝑝(đ¶1 ≀ 𝜆 ≀ đ¶2) = 1 − đ›Œ.

La probabilitĂ© 1 − đ›Œ, associĂ©e Ă  cette estimation par intervalle, est appelĂ©e niveau de confiance

ou seuil de confiance. Les valeurs les plus souvent utilisĂ©es pour 1 − đ›Œ sont : 0,90 ; 0,95 ; 0,99

et 0,999.

Chaque rĂ©alisation des deux statistiques đ¶1, đ¶2 donne lieu Ă  un intervalle de confiance

numĂ©rique [𝑐1, 𝑐2]. La notion de niveau de confiance est alors Ă  interprĂ©ter dans le sens suivant.

Si l'on effectue un grand nombre de rĂ©alisations des deux statistiques (đ¶1, đ¶2), alors la valeur

inconnue du paramĂštre 𝜆 sera recouverte par environ 100(1 − đ›Œ) % des intervalles [𝑐1, 𝑐2] ainsi obtenus.

La longueur d'un intervalle de confiance diminue :

‱ En augmentant la taille 𝑛 de l'Ă©chantillon,

‱ En diminuant la dispersion de la variable alĂ©atoire 𝜆 Ă©tudiĂ©e,

‱ En choisissant un seuil de confiance moins Ă©levĂ© par exemple en prenant 0,90 au lieu

de 0,95. Dans Arena (lorsque le nombre de réplication est supérieur à 1), la demi-largeur

(half width) se rapporte Ă  un intervalle de confiance dont le seuil est Ă©gal Ă  95%.

Il existe deux types de systĂšmes : Les systĂšmes finis – c'est-Ă -dire, ayant un Ă©vĂ©nement de fin

qui détermine la fin de la simulation - et les systÚmes qui ne se terminent pas - c'est-à-dire,

n'ayant pas d'événement de fin de simulation. Par exemple, un commerce qui ouvre et qui ferme

Ă  intervalles rĂ©guliers est un systĂšme fini ; par contre, un hĂŽpital oĂč il y a toujours au moins un

patient est un systĂšme qui n'est pas fini.

Page 21: SIMULATION DES SYSTEMES DE PRODUCTION

21

V.1 ANALYSE DES SYSTÈMES FINIS

Ils sont plus faciles Ă  analyser que les systĂšmes qui ne se terminent pas. On ne peut contrĂŽler

que le nombre des répétitions des expériences. A chaque répétition, on peut utiliser un autre

générateur des nombres aléatoires.

Deux sources de données d'observation :

a) Observations individuelles dans chaque répétition/expérience (par exemple, le temps de

traitement de chaque piĂšce),

b) Moyennes, écarts-types, maximums, minimums des observations dans chaque répétition

(par exemple, le temps de traitement moyen des piĂšces).

Si l’on change le gĂ©nĂ©rateur des nombres alĂ©atoires d'une rĂ©pĂ©tition Ă  l'autre, on peut considĂ©rer

que les observations de type b) d'un ensemble de répétitions sont telles que :

- Elles sont indépendantes,

- Les moyennes sont normalement distribuées.

Cette derniÚre propriété est due au fait qu'elles sont sommes, ou moyennes, d'observations

individuelles (théorÚme central limite).

Les procédures classiques de statistiques peuvent alors s'appliquer pour les moyennes. Pour les

minimums et maximums, certaines procédures 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 différence entre les moyennes, les maximums et

les minimums de deux systÚmes différents.

Cette comparaison de deux systÚmes est utile pour évaluer par exemple la différence entre deux

dimensionnements, deux rĂšgles d'ordonnancement, ... (si l'intervalle de confiance ne contient

pas 0, on peut en déduire que les deux systÚmes sont différents).

Procédure générale :

- Simuler un grand nombre d'expériences/répétitions (minimum 20) et récupérer chaque fois les

observations souhaitées (moyennes, maximum, minimum, ...) ;

- Analyser le comportement du systĂšme en se basant sur la valeur moyenne pour chaque

expérience :

- Utilisation de l'histogramme,

- Calcul de l'intervalle de confiance.

- DĂ©terminer le nombre d’expĂ©riences Ă  l'aide de l'analyse des rĂ©sultats en fonction des

prĂ©cisions souhaitĂ©es pour l'intervalle de confiance. Utiliser la formule 𝑛2 = 𝑛1 (ℎ1/ℎ2)2 oĂč

𝑛1 est le nombre d’expĂ©riences dĂ©jĂ  rĂ©alisĂ©es,

𝑛2 est le nombre total d’expĂ©riences,

ℎ1 est la moitiĂ© de l'intervalle de confiance dĂ©jĂ  obtenu,

ℎ2 est la moitiĂ© de l'intervalle de confiance souhaitĂ©.

- Simuler encore : Soit tout recommencer, soit rajouter les résultats des nouvelles simulations à

ceux des premiĂšres ;

- Analyser : Intervalle de confiance, histogramme.

Page 22: SIMULATION DES SYSTEMES DE PRODUCTION

22

V.2 ANALYSE DES SYSTÈMES QUI NE SE TERMINENT PAS

On s’intĂ©resse Ă  l'Ă©tude des performances stationnaires d’un systĂšme du fait d’un rĂ©gime

transitoire souvent favorable aux performances du systĂšme ; ce peut ĂȘtre, par exemple, le cas

d’un atelier vide au dĂ©but de la simulation. L'Ă©tat stable du systĂšme correspond Ă  son

comportement aprÚs un certain temps et est indépendant de l'état de départ.

Le but est de calculer un intervalle de confiance autour de la moyenne. Deux problĂšmes peuvent

se poser :

- Pas de point de passage précis entre le régime transitoire et le régime stationnaire,

- Corrélation entre les observations.

ProblÚme du régime transitoire

Il existe trois méthodes pour traiter le problÚme du régime transitoire :

- Choisir des conditions de départ qui ressemblent aux conditions de régime permanent

(par exemple : Charger les machines, mettre les piĂšces dans les files d'attente).

- Faire des simulations assez longues pour rendre le régime transitoire insignifiant.

- Ecarter les valeurs enregistrées pendant le régime transitoire. Pour cela, on peut

éventuellement utiliser le filtre de la moyenne glissante (moyenne arithmétique des k

observations récentes) pour réduire la variabilité de la variable.

C'est cette derniÚre méthode qui est couramment utilisée. Il existe certaines rÚgles pour

sélectionner la partie à tronquer, mais il n'y a aucune méthode complÚtement satisfaisante. La

plus utilisée est d'évaluer (visuellement) la période transitoire à l'aide des graphes (courbes,

histogrammes, moyennes mobiles).

Intervalles de confiance

Deux méthodes sont couramment utilisées :

- Répétition d'expériences indépendantes comme pour les systÚmes finis (problÚme du

régime transitoire à chaque fois),

- Longue simulation et décompositions des données générées en sous-ensembles (batchs).

Cette derniÚre méthode consiste à :

- Ecarter le régime transitoire,

- DĂ©composer les observations restantes en 𝑛 batchs de taille 𝑚 et sans chevauchement,

- Remplacer chaque batch đ”đ‘— (𝑗 = 1, 2,⋯ , 𝑛) par 𝑋𝑗, moyenne des 𝑚 observations dans

đ”đ‘— ,

- Calculer l'intervalle de confiance à partir des observations 𝑋𝑗, 𝑗 = 1, 2,⋯ , 𝑛.

Ici encore, les conditions du théorÚme central limite sont considérées vraies et le calcul de

l'intervalle de confiance justifiĂ© (indĂ©pendance et normalitĂ© des observations 𝑋𝑗).

Indications : 𝑛 = 10 𝑙𝑎𝑔∗, 𝑚 de 10 à 20.

CorrĂ©logramme → 𝑙𝑎𝑔∗ : Le plus grand nombre d'observations pour lequel la

corrélation est encore significative.

Cette méthode (présentée pour des variables ne dépendant pas du temps comme le nombre de

piÚces finies) est évidemment applicable pour les variables persistantes (dépendant du temps)

comme les tailles des files d'attente. Il suffit de définir les batchs par des intervalles de temps

réguliers au lieu d'un nombre fixé de données.

Page 23: SIMULATION DES SYSTEMES DE PRODUCTION

23

VI NOTIONS ELÉMENTAIRES SUR LES RÉSEAUX DE PETRI

VI.1 GÉNÉRALITÉS

DĂ©finition (RĂ©seau de Petri)

Un rĂ©seau de Petri (RdP) est un graphe constituĂ© de 2 sortes de nƓuds : Les places (reprĂ©sentĂ©es

par des ronds) et les transitions (représentées par des barres). Le graphe est orienté : Des arcs

vont d'une sorte de nƓuds à l'autre (jamais de places à places, ou de transitions à transitions

directement). Voir exemple dans la figure suivante.

De façon plus formelle, un RdP peut-ĂȘtre dĂ©fini par un 4-uplet < 𝑃, 𝑇, đ‘ƒđ‘ŸĂ©, 𝑃𝑜𝑠𝑡 > tel que :

𝑃 = {𝑃1,  𝑃2, ⋯ , 𝑃𝑛} est un ensemble fini et non vide de places ;

𝑇 = {𝑇1, 𝑇2, ⋯ , 𝑇𝑚} est un ensemble fini et non vide de transitions ;

đ‘ƒđ‘ŸĂ©:  𝑃 ×  𝑇  → {0,  1} est l'application d'incidence avant ;

𝑃𝑜𝑠𝑡:  𝑃 ×  𝑇  → {0,  1} est l'application d'incidence arriùre.

đ‘ƒđ‘ŸĂ©(𝑃𝑖, 𝑇𝑗) est le poids de l'arc (orientĂ©) reliant la place 𝑃𝑖 Ă  la transition 𝑇𝑗 ; ce poids vaut 1 si

l'arc existe et 0 sinon.

𝑃𝑜𝑠𝑡(𝑃𝑖 , 𝑇𝑗) est le poids de l'arc (orientĂ©) reliant la transition 𝑇𝑗 Ă  la place 𝑃𝑖.

Marquage des places

Les places sont marquées par des jetons (points noirs). Les jetons vont circuler dans les places

du fait du franchissement de transitions en suivant certaines rÚgles définies ci-dessous. L'état

du rĂ©seau Ă  un instant 𝑡 est dĂ©fini par le nombre de jetons contenus dans chaque place Ă  l’instant

𝑡. La circulation des jetons reprĂ©sente l'Ă©volution dynamique de l’état du rĂ©seau. Le marquage

initial correspond à celui indiqué sur le dessin et donne la position initiale des jetons.

RĂšgles de fonctionnement et circulation des jetons

Pour qu'une transition puisse ĂȘtre activĂ©e, la prĂ©sence d'un jeton au moins est requise dans

chaque place située en amont de la transition. L'activation (le tir) de la transition a pour effet

de prélever ces jetons des places amont et de rajouter dans chaque place aval un nouveau jeton.

De façon plus formelle, le franchissement (tir) d'une transition 𝑇𝑗 ne peut s'effectuer que si le

marquage de chacune des places 𝑃𝑖 directement en amont de cette transition est tel que :

𝑚(𝑃𝑖) ≄ â€„đ‘ƒđ‘ŸĂ©(𝑃𝑖, 𝑇𝑗) (condition nĂ©cessaire).

Le franchissement (tir) de 𝑇𝑗 consiste Ă  retirer đ‘ƒđ‘ŸĂ©(𝑃𝑖 , 𝑇𝑗) jetons dans chacune des places

directement en amont de 𝑇𝑗 et à ajouter 𝑃𝑜𝑠𝑡(𝑃𝑘, 𝑇𝑗) jetons dans chacune des places 𝑃𝑘

directement en aval de 𝑇𝑗.

𝑃6

𝑃7

𝑃5

𝑃4

𝑃3

𝑇2

𝑇3

𝑇4

𝑇6

𝑇5

𝑇1

𝑃1

𝑃2

Page 24: SIMULATION DES SYSTEMES DE PRODUCTION

24

Exercice : Exprimer sous une forme matricielle les applications đ‘ƒđ‘ŸĂ© et 𝑃𝑜𝑠𝑡 relatives au RdP

prĂ©cĂ©dent. Valider Ă  travers quelques exemples le bon fonctionnement de l’équation

d’évolution du marquage : 𝑀𝑘 = 𝑀𝑙 + (𝑃𝑜𝑠𝑡 − đ‘ƒđ‘ŸĂ©) 𝑇𝑘 𝑙, oĂč 𝑇𝑘 𝑙 est le vecteur de tirs permettant une Ă©volution du vecteur de marquage, de 𝑀𝑙 vers 𝑀𝑘.

Modélisation 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

rÚgle de priorité quelconque lorsque le conflit est effectif (c'est-à-dire lorsque les

transitions aval en compĂ©tition pourraient effectivement ĂȘtre activĂ©es). Ne pas arbitrer

un conflit effectif fait que le comportement du systÚme n'est pas entiÚrement spécifié.

- 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 déroulement d'une tùche : Il

faudrait alors mettre une temporisation sur les transitions. Par ailleurs, si on pense Ă  une place

comme un endroit oĂč une ressource sĂ©journe en attendant de poursuivre son parcours, il peut y

avoir une durée minimale de séjour à respecter : Penser par exemple au séjour d'une piÚce dans

un four pour atteindre une température souhaitée.

On est donc tenté de mettre à la fois :

- Une durée d'activation pour les transitions : Durée pendant laquelle un jeton situé dans

chaque place amont de la transition activée est « réservé » pour cette transition (avant

de disparaĂźtre), et au-delĂ  de laquelle un jeton apparaĂźt dans chacune des places aval ;

- Une durée minimale de séjour dans les places : Durée 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 généralité à ne mettre de temporisations que sur les transitions,

ou que sur les places. La figure suivante montre la transformation d'une transition de durĂ©e Δ

en 2 transitions instantanĂ©es (le dĂ©but et la fin) sĂ©parĂ©es par une place de temporisation Δ.

a b c d

Δ Δ

Page 25: SIMULATION DES SYSTEMES DE PRODUCTION

25

VI.2 GRAPHES D'ÉVÉNEMENTS

Restrictions et capacités de modélisation

Les graphes d'événements sont une sous-classe de RdP pour lesquels toute place a exactement

une transition amont et une transition aval (les situations représentées dans les figures a et b

précédentes sont interdites). Aussi, les graphes d'événements peuvent modéliser des

phénomÚnes de synchronisation, mais pas de concurrence.

A l'opposé, les graphes d'état refusent les configurations représentées dans les figures c et d

précédentes pour ne retenir que celles représentées dans les figures a et b. Aussi, les graphes

d'état, tels que toute transition a exactement une place d'entrée et une place de sortie, permettent

de visualiser des phénomÚnes de concurrence (décision), mais pas de synchronisation.

Une propriété fondamentale des graphes d'événements

Le nombre total de jetons le long de tout circuit d'un graphe d'événements reste constant. Ceci

n'est généralement pas vérifié dans le cas d'un RdP (le nombre de jetons total d'un RdP ne reste

pas nécessairement constant au cours de l'évolution du marquage du réseau).

VI.3 EXEMPLES

Soit une machine représentée dans la figure suivante. Chaque piÚce qui arrive est, soit traitée

immédiatement 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 unités de temps. AprÚs traitement, chaque piÚce sort.

Le RdP suivant modélise ce systÚme.

arrivée

piĂšce

stock ressource

machine

sortie

piĂšce

3 stock

ressource machine libre

ressource machine occupée

Arrivée

piĂšce Sortie

piĂšce

DĂ©marrage

Page 26: SIMULATION DES SYSTEMES DE PRODUCTION

26

Modifications

a) Le modÚle RdP suivant indique une capacité de stockage limitée à 5 piÚces.

b) Le stock en amont de la ressource machine est remplacé par un convoyeur correspondant à

une file composée de 5 compartiments (gestion First-In, First-Out du convoyeur). Le temps

de déplacement du convoyeur est de 6 unités de temps. Le systÚme est représenté par le

modĂšle RdP suivant.

c) La machine a une capacité de traitement de 2 : Elle est capable de traiter 2 piÚces

simultanément. Le systÚme est représenté par le modÚle RdP suivant.

d) La machine a un temps de setup de 1,5 unités de temps. Le systÚme est représenté par le

modĂšle RdP suivant.

3 stock

ressource machine libre

ressource machine occupée

Arrivée

piĂšce Sortie

piĂšce

5

Démarrage Arrivée

piùce 


6/5 6/5 6/5

3

ressources machine libres

ressources machine occupées

Sortie

piĂšce

DĂ©marrage

2

3

ressources machine libres

ressources machine occupées

Sortie

piĂšce

DĂ©marrage

2

1,5

Page 27: SIMULATION DES SYSTEMES DE PRODUCTION

27

VI.4 AUTRES CLASSES DE RÉSEAUX DE PETRI

RĂ©seau de Petri temporel

Ces rĂ©seaux permettent l’analyse de systĂšmes Ă  contraintes de temps. Un intervalle, et non plus

une simple valeur scalaire, est associĂ© aux places et/ou aux transitions. Le fait d’associer un

intervalle [𝑎, 𝑏] Ă  une place fait qu’un jeton prĂ©sent dans cette place devra sĂ©journer au moins

𝑎 unitĂ©s de temps. Il pourra contribuer Ă  la validation d’une transition situĂ©e en aval si son

temps de sĂ©jour est infĂ©rieur Ă  𝑏 unitĂ©s de temps, au-delĂ  le jeton meurt et de ce fait ne

contribuera plus Ă  la validation d’une transition situĂ©e en aval.

Réseau de Petri synchronisé

Un ensemble d'événements externes est associé au RdP ; ces événements permettent le

franchissement de certaines transitions. Un tel RdP est dit synchronisé.

Considérons le RdP modélisant la machine décrite dans VI.3. On associe à ce RdP l'ensemble

d'Ă©vĂ©nements {𝐮, đ·, 𝑆} oĂč 𝐮 dĂ©signe l'Ă©vĂ©nement « ArrivĂ©e piĂšce », đ· l'Ă©vĂ©nement

« DĂ©marrage service », 𝑆 l'Ă©vĂ©nement « Sortie piĂšce ». La figure suivante reprĂ©sente le systĂšme

modélisé par un RdP synchronisé.

Le tir de la transition 𝑇1 est liĂ© Ă  l'occurrence de l'Ă©vĂ©nement 𝐮.

Le tir de la transition 𝑇2 est liĂ© :

- A la validation de la transition, matérialisée par la présence d'au moins un jeton dans la

place « stock » et d'un jeton dans la place « ressource machine libre » ;

- Au dĂ©marrage effectif du service (occurrence de l'Ă©vĂ©nement đ·).

Le tir de la transition 𝑇3 est liĂ© Ă  l'occurrence de l'Ă©vĂ©nement 𝑆.

Réseau de Petri généralisé

Un RdP généralisé est un RdP dans lequel les poids associés aux arcs sont des nombres entiers

strictement positifs. Ces poids peuvent ĂȘtre diffĂ©rents de 0 ou 1.

Tous les arcs, dont le poids n'est pas explicitement spécifié, ont un poids de 1.

Soit un arc reliant une place 𝑃𝑖 Ă  une transition 𝑇𝑗 ayant un poids Ă©gal Ă  𝑝, alors la transition 𝑇𝑗

ne sera validĂ©e que si la place 𝑃𝑖 contient au moins 𝑝 jetons. Lors du franchissement de cette

transition, 𝑝 jetons seront retirĂ©s de la place 𝑃𝑖. Le fait qu'un arc relie une transition 𝑇𝑗 Ă  une place 𝑃𝑖 avec un poids Ă©gal Ă  𝑝, signifie que lors

du franchissement de cette transition, 𝑝 jetons seront ajoutĂ©s Ă  la place 𝑃𝑖.

3 stock

ressource machine libre

ressource machine

occupée

Arrivée

piĂšce Sortie

piĂšce

𝑹 đ‘« S

𝑇1

𝑇2

𝑇3 DĂ©marrage

Assemblage

2

Page 28: SIMULATION DES SYSTEMES DE PRODUCTION

28

VII LE LANGAGE DE SIMULATION ARENA

Le logiciel SIMAN-ARENA6 a été conçu en 1982 par C.D. Pedgen de System Modeling

Corporation, ARENA représentant la version « graphique » de SIMAN. La description du

modÚle (logiciel) du systÚme simulé se fait à l'aide d'un assemblage constitué de mise en série,

en parallÚle ou en feedback de différents blocs fonctionnels, issus de bibliothÚques (templates)

d’ARENA. Une telle approche de modĂ©lisation permet d'obtenir une structure du modĂšle

(logiciel) proche de celle du systÚme (réel) à simuler.

VII.1 NOTIONS DE BASE

Entité : Une entité est un objet qui évolue dans les différents blocs fonctionnels constituant le

modÚle du systÚme. Elle correspond en général à un objet concret, par exemple, une

personne ou une piÚce dans un atelier. Le déplacement des entités au sein des différents

blocs - par exemple le déplacement de piÚces dans un atelier - provoque un changement

d'état du modÚle de simulation, ce qui est analogue aux déplacements des jetons dans

un modĂšle RdP.

Attribut : Un attribut est une variable associée individuellement aux entités (la variable est

locale) pour représenter leurs états ou des paramÚtres qui leur sont propres. Par

exemple, chaque entité, représentant une piÚce circulant dans un atelier, peut avoir les

attributs suivants :

- Type_de_piece afin de désigner le type d'une piÚce (par exemple, Type_de_piece =

A ou B) ;

- Indice_de_priorite afin de désigner l'indice de priorité d'une piÚce (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 modĂšle. Par exemple, la

variable TNOW (variable prédéfinie dans ARENA) désigne la date à laquelle se trouve

la simulation, c'est le temps courant - mis à jour à chaque avancée dans l'échéancier des

Ă©vĂ©nements – s’écoulant durant une simulation du modĂšle.

Le principe de fonctionnement du logiciel ARENA est de permettre l’évolution de chacune des

entités d'un bloc fonctionnel vers un autre, de sa création dans le modÚle à sa destruction.

L’ordonnancement dans le temps des diffĂ©rents Ă©vĂ©nements rattachĂ©s Ă  l'Ă©volution des entitĂ©s

dans les blocs constituant le modĂšle se fait au travers d’un Ă©chĂ©ancier.

Quand une entité rentre dans un bloc fonctionnel, elle déclenche/active le « service » qui lui est

associé, ce qui provoque une modification de l'état du modÚle. 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é représentant une piÚce, présente

dans le bloc, la valeur importante ;

- sur les variables globales du modĂšle logiciel. Par exemple, le passage d’une entitĂ© dans un

bloc Delay provoque un retard pur, ce qui aura une conséquence sur la variable TNOW.

6 Une documentation électronique est fournie avec le logiciel ARENA à travers différents fichiers

(ArenaBEUsersGuide.pdf, ArenaVariablesGuide.pdf, ArenaSEUsersGuide.pdf) accessibles dans le répertoire

\Rockwell Software\Arena\.

Page 29: SIMULATION DES SYSTEMES DE PRODUCTION

29

Un programme (ou modÚle logiciel) élaboré avec ARENA est sauvegardé dans un fichier ayant

pour extension .doe et est constitué :

- d'une partie modÚle, qui représente l'algorithme décrivant les caractéristiques statiques et

dynamiques des différents blocs fonctionnels composant le modÚle ;

- du cadre expérimental, qui regroupe les données précisant les paramÚtres spécifiques à une

simulation donnée (conditions initiales, durée de la simulation, 
).

En fait, les entités traversent uniquement les blocs fonctionnels de la partie modÚle.

Considérons un simple tapis roulant, ayant un temps de transport de 3 unités de temps,

représenté par le modÚle logiciel décrit comme suit :

Le bloc Create, issu du template Basic Process, est tel qu'une entitĂ© est crĂ©Ă©e Ă  partir de l’instant

0, ceci toute les 2 unités de temps.

Le bloc Delay, issu du template Advanced Process, force une entité à séjourner 3 unités de

temps dans le bloc.

Le bloc Dispose, issu du template Basic Process, détruit toute entité entrant dans le bloc.

A travers le menu Run/Setup/Replication Parameters, on peut notamment fixer :

- le nombre de réplications (champ Number of Replications),

- le temps oĂč se termine une rĂ©plication (champ Replication Length).

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),

Page 30: SIMULATION DES SYSTEMES DE PRODUCTION

30

- un commentaire (champ Project Description).

Les 2 fichiers générés par ARENA (au format txt) sont accessibles via le menu

Run/SIMAN/View (voir ci-dessous un listage partiel de ces fichiers).

‱ fichier Exemple.mod : (partie modùle)

; 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 Exemple.exp : (cadre expĂ©rimental)

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;

Page 31: SIMULATION DES SYSTEMES DE PRODUCTION

31

Le modÚle RdP correspondant à la partie modÚle du modÚle logiciel précédent est décrit dans

la figure suivante :

ARENA permet de construire un modÚle en proposant des primitives de représentation

(appelées par la suite, blocs ou modules) plus ou moins détaillées. Il permet également de créer

des animations graphiques pour visualiser le comportement du modĂšle durant la simulation.

Les blocs sont regroupés dans différentes bibliothÚques (templates).

Des liens sont utilisés pour permettre les assemblages en série, en parallÚle, en feedback, entre

les blocs, voir une illustration de tels assemblages dans le RdP qui suit.

VII.2 BLOCS PERMETTANT LA CONSTRUCTION D’UN MODÈLE

a) Create (issu du template Basic Process) : Un bloc Create permet de créer des entités. Celui

représenté dans la figure suivante est intitulé Create 1 (champ Name = Create 1).

Sont indiqués :

- dans le cadre Time Between Arrivals, le temps entre deux crĂ©ations de lots d’entitĂ©s. Par

exemple un temps Ă©gale Ă  2 lorsque : champ Type = Constant et champ Value = 2, ou un

temps régit par une loi exponentielle de moyenne 1 lorsque : champ Type = Expression et

champ Value = EXPO(1),

- la taille des lots (champ Entities per Arrival = 1),

- le nombre total de lots à créer (champ Max Arrivals = Infinite),

- la date de création du premier lot (champ First Creation = 0).

3

2

Page 32: SIMULATION DES SYSTEMES DE PRODUCTION

32

Les valeurs considérées sont telles qu'1 entité est créée toute les 2 unités de temps à partir de

l’instant 0, ceci une infinitĂ© de fois.

Le RdP suivant permet de décrire le bloc Create 1.

Le nombre de tirs de la transition de sortie de ce RdP Ă  un instant t correspond au nombre

d’entitĂ©s sorties du bloc Create au mĂȘme instant t. Notons que le bloc Create n’a pas d’entrĂ©e.

b) Dispose (issu du template Basic Process) : Un bloc Dispose permet de détruire des entités.

Celui représenté dans la figure suivante est intitulé Dispose 1 (champ Name = Dispose 1), une

entité entrant dans ce bloc est immédiatement détruite.

En termes de RdP, ce bloc, qui n’a pas de sortie, Ă©quivaut Ă  une transition puit, c'est-Ă -dire, une

transition sans place située en aval.

Type (Constant), Value (2)

Max

Arrivals

(∞)

Entities per

Arrival (1) First

Creation

(0)

P

Sortie de

l’entitĂ© du

bloc Create

Page 33: SIMULATION DES SYSTEMES DE PRODUCTION

33

c) Delay (issu du template Advanced Process) : Un bloc Delay permet de retarder le passage

d'entités. Celui représenté 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 durée (aléatoire

ou non) indiquée dans le champ Delay Time.

Le RdP suivant permet de décrire un bloc Delay.

Le nombre de jetons présents dans la place correspond au nombre d'entités présentes dans le

bloc Delay.

d) Seize (issus du template Advanced Process) : Une entité présente dans un bloc Seize ne peut

sortir de ce bloc que s’il existe un nombre suffisant de ressources disponibles (le nombre et le

type de ressources Ă©tant spĂ©cifiĂ©s dans le bloc) ; en attendant l’entitĂ© est stockĂ©e (« patiente »)

dans une file d’attente interne au bloc Seize. Le fait qu'une entitĂ© sorte du bloc indique que les

ressources, disponibles en nombre suffisant, sont « saisies » (et donc plus disponibles).

Le bloc représenté dans la figure suivante est intitulé Seize 1 (champ Name = Seize 1). Pour

simplifier la compréhension, considérons que seulement un type de ressource est concerné

(dans l’exemple, Resource 1), alors :

- le nom de la ressource est spécifié dans le champ Resource Name, soit Resource Name =

Resource 1 (l’ajout d’un autre type de ressource donnerait lieu Ă  une ligne supplĂ©mentaire

dans la liste Resources),

- le nombre (minimum) de ressources (de type Resource 1) disponibles est spécifié dans le

champ Units to Seize, par exemple Units to Seize = 1.

Sachant qu'une ressource peut ne pas ĂȘtre disponible, les entitĂ©s, en attente d'un nombre

suffisant de ressources disponibles, sont stockées dans une file d'attente, intégrée (en amont) au

bloc Seize, et dont le nom est indiqué dans le champ Queue Name (soit Queue Name = Seize

1.Queue).

Delay Time

Entrée d'une entité

dans le bloc Delay

Sortie de l'entité

du bloc Delay

Page 34: SIMULATION DES SYSTEMES DE PRODUCTION

34

Le RdP suivant permet de dĂ©crire un bloc Seize dans le cas oĂč un seul type de ressource (dans

l’exemple, Resource 1) est requis.

La transition T pour ĂȘtre activĂ©e doit :

- contenir (au moins) un jeton dans la place P1, ce qui correspond à la présence dans la file

d’attente d'au moins une entitĂ© dans le bloc Seize.

- contenir (au moins) Units to Seize jetons dans la place P2, ce qui signifie qu’au moins Units

to Seize ressources Resource Name sont disponibles.

Le fait de franchir la transition T a pour effet d'îter 1 jeton dans la place P1 et d’îter Units to

Seize jetons dans la place P2, ce qui reprĂ©sente la sortie d’une entitĂ© du bloc Seize et la « saisie »

de Units to Seize ressources Resource Name.

Le nombre de jetons présents dans la place P1 correspond au nombre d'entités présentes (en

attente) dans le bloc Seize.

â–Ș Une file d’attente est caractĂ©risĂ©e (configurĂ©e) par le bloc Queue (issu du template Basic

Process, appartenant au cadre expérimental et donc non traversé par une entité), voir la figure

suivante :

- le champ Name permet de dĂ©clarer une file d’attente, par exemple Seize 1.Queue,

File d’attente

(Seize 1.Queue)

T P1

P2

Units to

Seize

Entrée d'une entité

dans le bloc Seize

Sortie de l'entité

du bloc Seize

Saisie de (Units to Seize = 1) ressources

(Resource Name = Resource 1)

ressources

disponibles

Page 35: SIMULATION DES SYSTEMES DE PRODUCTION

35

- le champ Type permet d’indiquer le mode de gestion de la file d’attente. Par dĂ©faut, le

mode de gestion est de type First In, First Out (FIFO). D’autres modes sont possibles :

Last In, First Out (LIFO), Lowest Attribute Value (LAV), Highest Attribute Value (HAV).

Ces deux derniers modes permettent de prioriser les entitĂ©s prĂ©sentes dans la file d’attente

ayant la plus petite (Lowest), ou la grande (Highest), valeur de l’attribut (dĂ©fini dans le

champ Attribute Name) rattaché au mode de gestion utilisé.

Le bloc Queue permet de dĂ©finir plusieurs files d'attente dans un mĂȘme modĂšle.

â–Ș Les types de ressource, ainsi que le nombre pour chaque type de ressources, sont indiquĂ©s

dans le bloc Resource (issu du template Basic Process, appartenant au cadre expérimental

et donc non traversé par une entité), voir la figure suivante :

- le champ Name permet de déclarer une ressource, par exemple Resource 1,

- le champ Capacity permet de dĂ©finir le nombre d’unitĂ© de la ressource, par exemple 1.

Le bloc Resource permet de dĂ©finir plusieurs types de ressources dans un mĂȘme modĂšle.

e) Release (issu du template Advanced Process) : Un bloc Release permet de « relùcher » des

ressources. Celui représenté dans la figure suivante est intitulé Release 1 (champ Name =

Release 1). Quand une entité entre dans ce bloc, elle libÚre (relùche) la, ou les ressources dont

le nom est spécifié dans le champ Resource Name, par exemple Resource 1, le nombre de

ressources libérées est spécifié dans le champ Units to Release, par exemple 1. On peut noter

que l’exĂ©cution de cette tĂąche est instantanĂ©e, autrement dit le temps de passage d’une entitĂ©

dans un bloc Release est nul. Pour simplifier, seul un type de ressource est concerné (dans

l’exemple, Resource 1), l’ajout d’un autre type de ressource donnerait lieu à une ligne

supplémentaire dans la liste Resources.

Page 36: SIMULATION DES SYSTEMES DE PRODUCTION

36

Le RdP suivant permet de dĂ©crire un bloc Release dans le cas oĂč un seul type de ressource (dans

l’exemple, Resource 1) est libĂ©rĂ©.

Le fait de franchir la transition T' provoque l'apparition de Units to Release jetons dans la place

P1, ce qui reprĂ©sente la sortie d’une entitĂ© du bloc Release et la mise en disponibilitĂ© (le

« relùchement ») de Units to Release ressources Resource Name.

f) Assign (issu du template Basic Process) : Un bloc Assign permet d’assigner une valeur,

notamment, Ă  un attribut, une variable (Ă©ventuellement propre Ă  ARENA, par exemple relative

Ă  l’état d’une ressource), durant l’exĂ©cution d’une simulation. Quand une entitĂ© entre dans un

bloc Assign, l’expression - logique ou mathĂ©matique - spĂ©cifiĂ©e dans le champ New Value est

évaluée et assignée, selon le contenu du champ Type (Attribute, Variable, 
), à un attribut

(rattachĂ© Ă  l’entitĂ© « activant » le bloc) ou une variable. Dans la figure suivante, le bloc intitulĂ©

Assign 1 (champ Name = Assign 1) permet de déclarer :

- une variable Variable 1 Ă  1 ;

- un attribut Attribute 1 Ă  TNOW ;

- une variable Variable 2 Ă  STATE(resource 1). La variable STATE(resource 1) restitue

l’état courant de la ressource resource 1 (les valeurs possibles sont : -1=Idle ; -2=Busy ;

-3=Inactive ; -4=Failed) ;

- une Variable 3 Ă  Attribute 1.

Cet exemple est proposé dans \Exemples\Assign\Assign.doe.

T'

P1

Units to

Release

Entrée d'une entité

dans le bloc Release

Sortie de l'entité

du bloc Release

ressources

disponibles

Page 37: SIMULATION DES SYSTEMES DE PRODUCTION

37

Le RdP suivant permet de décrire le bloc Assign 1.

Le bloc Variable (issu du template Basic Process, appartenant au cadre expérimental et donc

non traversé par une entité) permet de déclarer des variables.

g) Decide (issu du template Basic Process) : Un bloc Decide permet d’aiguiller un flux d’entitĂ©s

vers diffĂ©rents blocs de destination, il comporte une entrĂ©e et plusieurs sorties. L’aiguillage est

rĂ©alisĂ©, selon le contenu du champ Type, d’aprĂšs un critĂšre de type condition, ou probabilitĂ©.

Variable 1 := 1

Attribute 1 := TNOW

Variable 2 := STATE(resource 1)

Variable 3 := Attribute 1

Entrée d'une entité

dans le bloc Assign

Sortie de l'entité

du bloc Assign

Page 38: SIMULATION DES SYSTEMES DE PRODUCTION

38

Les conditions sont par exemple basĂ©es sur des valeurs d’attributs, 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 testée de

maniĂšre sĂ©quentielle (i.e., dans l’ordre de leurs dĂ©clarations dans le bloc). La branche

sélectionnée par une entité est la premiÚre branche pour laquelle la condition de branchement

est satisfaite ; l’entitĂ© est alors aiguillĂ©e vers le bloc correspondant. Si aucune branche n’est

satisfaite, l’entitĂ© est dĂ©truite. Un bloc Decide, intitulĂ© Decide 1 (champ Name = Decide 1), est

dĂ©crit dans la figure suivante. Le critĂšre d’aiguillage vers les 2 sorties possibles est rĂ©alisĂ© Ă 

partir de la condition If Variable 1 >= 1 (avec un résultat True ou False).

Le critÚre utilisé par le bloc Decide 2 est de type probabilité (2 sorties, ayant chacune une

probabilité égale à 0.5, sont possibles).

Page 39: SIMULATION DES SYSTEMES DE PRODUCTION

39

Le RdP suivant permet de décrire un bloc Decide.

Notons que toutes les sorties d’un bloc Decide doivent ĂȘtre connectĂ©es Ă  un bloc

(Ă©ventuellement un bloc Dispose si la sortie n’est pas « utile »).

h) Match (issu du template Advanced Process) : Un bloc Match permet de synchroniser la

progression de deux, voire de plusieurs, entitĂ©s situĂ©es dans diffĂ©rentes files d’attentes. Quand

toutes les files d’attentes, associĂ©es au bloc Match, ont une, voire plusieurs entitĂ©s, ces entitĂ©s

sont libérées, de façon synchrone, vers les sorties correspondantes. Dans la figure qui suit, le

bloc Match 1 (champ Name = Match 1) effectue une synchronisation entre deux entrées. Une

synchronisation se produit lorsqu’au moins une entitĂ© est prĂ©sente dans chacune des deux files

d’attente, Ă  savoir Match 1.Queue1 et Match 1.Queue2. Les entitĂ©s Ă  l’origine de la

synchronisation sont ensuite dirigĂ©es vers les sorties correspondantes. Le fait d’avoir le champ

Type = Any Entities (et non Based on Attribute) fait que la synchronisation ne s’effectue pas en

fonction de la valeur d’un Ă©ventuel attribut (rattachĂ© aux entitĂ©s).

Le bloc Queue (issu du template Basic Process) décrit ci-dessous indique la définition des files

d’attente Match 1.Queue1 et Match 1.Queue2.

Entrée d'une entité

dans le bloc Decide

.

.

.

Sorties du bloc

Decide

critĂšre

de type

condition ou

probabilité

Match 1

Match 1.Queue1

Match 1.Queue2

Page 40: SIMULATION DES SYSTEMES DE PRODUCTION

40

Voir une description du bloc Match 1 Ă  l'aide du RdP suivant.

Notons que toutes les sorties d’un bloc Match doivent ĂȘtre connectĂ©es Ă  un bloc (Ă©ventuellement

un bloc Dispose si la sortie n’est pas « utile »).

i) Batch (issu du template Basic Process) : Un bloc Batch permet de regrouper des entités entre-

elles. Les entitĂ©s une fois regroupĂ©es gĂ©nĂšrent la sortie d’une entitĂ© (notons que cette entitĂ© peut

avoir un nouveau Type d’entitĂ©, ce qui peut ĂȘtre indiquĂ© dans le champ Representative Entity

Type). Le groupement peut ĂȘtre rĂ©versible (ou non) selon que le champ Type = Temporary (ou

Permanent) : un regroupement rĂ©versible (Temporary) permet – en utilisant un bloc Separate -

de dĂ©grouper par la suite les entitĂ©s. Le nombre nĂ©cessaire d’entitĂ©s pour former un groupe est

indiqué dans le champ Batch Size. Une entité arrivant dans un bloc Batch est placée dans la file

d’attente associĂ©e au bloc, ceci tant que le nombre d’entitĂ©s accumulĂ©es dans la file d’attente

n’est pas suffisant pour effectuer un regroupement. Le champ Rule assignĂ© Ă  la valeur By

Attribute permet d’effectuer le regroupement d’entitĂ©s en fonction d’un attribut, dans le cas

contraire (cas par défaut) le champ Rule est assigné à la valeur Any Entity.

Un exemple est décrit dans la figure suivante :

Match 1.Queue1

Match 1.Queue2

Sorties du

bloc Match Entrées du

bloc Match

synchronisation

Page 41: SIMULATION DES SYSTEMES DE PRODUCTION

41

Le RdP suivant décrit le comportement du bloc Batch 1.

j) Separate (issu du template Basic Process) : Un bloc Separate permet de dupliquer des entités

lorsque le champ Type = Duplicate Original. Le nombre de duplication créée est spécifié dans

le champ # of Duplicates. Lorsqu’une entitĂ© entre dans ce bloc et comporte des attributs, les

attributs de toutes les entités dupliquées sont identiques aux valeurs courantes des attributs de

l’entitĂ© Ă  dupliquer. L'entitĂ© originale sort par la sortie Original, les # of Duplicates entitĂ©s

(celles dupliquées) sortent par la sortie Duplicate. Un bloc Separate, intitulé Separate 1 (champ

Name = Separate 1), est décrit dans la figure suivante. Un exemple est donné dans

\Exemples\Separate\Separate.doe.

Le RdP qui suit permet de décrire un bloc Separate.

k) Process (issu du template Basic Process) : Un bloc Process permet de simuler le

comportement, par exemple, d’une machine ou d’un guichet de banque, sachant que diffĂ©rents

Separate Entrée

de

l'entité

Original (sortie de l'entité originale)

Duplicate (sortie de (# of

Duplicates) entités dupliquées

Entrée du

bloc Batch Sortie du

bloc Batch

Batch Size

(2)

Entrée de

l‘entitĂ© Sortie de l’entitĂ©

originale

Sortie de

(# of Duplicates)

entités dupliquées

# of

Duplicates

Page 42: SIMULATION DES SYSTEMES DE PRODUCTION

42

modes de fonctionnement sont autorisés 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 décrit dans la figure

suivante.

Lorsque le champ Action contient la valeur :

i) Delay, le bloc Process se ramĂšne Ă  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 qu’il n’y a pas de contrainte vis-à-vis de la ressource de la machine.

2i) Seize Delay, le bloc Process se ramÚne à la mise en série des blocs Seize et Delay. Il

permet de simuler un process (machine, guichet de banque) nécessitant une, voire plusieurs

ressources (voir le cadre Resources pour assigner le type, ainsi que le nombre, de ressources

concernées) durant un temps (relatif au temps de traitement) minimum indiqué dans le cadre

Delay (le relùchement de la/les ressource(s) est supposé réalisé en aval).

3i) Seize Delay Release, le bloc Process se ramÚne à la mise en série des blocs Seize, Delay

et Release. Il permet de simuler un process (machine, guichet de banque) nécessitant une,

voire plusieurs ressources (voir le cadre Resources pour assigner le type, ainsi que le

nombre, de ressources concernées) durant un temps (relatif au temps de traitement)

minimum indiqué dans le cadre Delay, temps au-delà duquel la, voire les ressources

« saisies » sont relùchées (opération réalisée dans le bloc Release).

4i) Delay Release, le bloc Process se ramÚne à la mise en série des blocs Delay et Release.

Son comportement correspond au cas 3i) sans la gestion de l’allocation de la/les

ressource(s) nécessaire(s) au traitement (cette gestion est supposée réalisée en amont du

bloc).

Le RdP correspondant au cas i) est décrit au VII.2.c. Les RdP correspondant au cas 2i, 3i, 4i

sont issus de concaténation des RdP décrits au VII.2.c,d,e.

Page 43: SIMULATION DES SYSTEMES DE PRODUCTION

43

VII.3 BLOCS PERMETTANT L’ANALYSE D’UN MODÈLE

Les blocs décrits au VII.2 permettent de modéliser un systÚme physique, sans pour autant

fournir d’informations (exceptĂ©es celles donnĂ©es par dĂ©faut dans le rapport final). La collecte

d’informations spĂ©cifiques se fait en utilisant des blocs supplĂ©mentaires. Quelques-uns de ces

blocs sont décrits 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'entités traversant le bloc (Type = Count) (voir 1.a)) ;

- recueillir les temps de passage successif de 2 entités (Type = Time Between) (voir 1.b)) ;

- recueillir les temps mis par les entités traversant une partie (ou l'ensemble) d'un modÚle

(Type = Time Interval) (voir 1.c)).

1.a) Lorsque le champ Type = Count, le bloc Record permet de compter le nombre d'entités qui

transitent par ce bloc. Le compteur s'incrémente d'une valeur (Value, par défaut égale à 1) à

chaque passage d'une entité. Le nom du compteur est spécifié dans le champ Counter Name.

Voir le bloc Statistic (voir 2.b) pour effectuer un enregistrement des données.

1.b) Lorsque le champ Type = Time Between, le bloc Record permet de recueillir les temps de

passage entre 2 entités successives. Le nom du tally7 est spécifié dans le champ Tally Name.

Voir le bloc Statistic (voir 2.b) pour effectuer un enregistrement des données.

7 "To keep a tally of 
" signifie "tenir le compte de 
".

compteur = + 1

transition

Page 44: SIMULATION DES SYSTEMES DE PRODUCTION

44

1.c) Lorsque le champ Type = Time Interval, le bloc Record permet de recueillir les temps mis

par les entités traversant une partie (ou l'ensemble) d'un modÚle. Le nom du tally est spécifié

dans le champ Tally Name.

Par exemple, on souhaite pour chaque entité recueillir la différence entre le temps de sortie du

bloc M et le temps de sortie du bloc N. Soient )(),( itit MN les temps de sortie de l'entité n° i des

blocs N et M respectivement (cf. schéma suivant).

Pour réaliser cela, on dispose :

- Un bloc Assign (cf. VII.2.f) placé juste aprÚs 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 associée individuellement aux entités).

- Un bloc Record 1 (avec Type = Time Interval) placé juste aprÚs 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 schéma suivant pour avoir une vue schématique des blocs N, Assign, M, Record et la

figure suivante oĂč est dĂ©crit un bloc Record de Type Time Interval.

Bloc N Bloc M

tN (i) tM (i)

Bloc N Bloc M

tN (1),

tN (2),

.

.

tM (1),

tM (2),

.

.

Assign

(Attribute 1

= TNOW)

Record 1

(Attribute

Name =

Attribute 1)

tM (1) - tN (1),

tM (2) - tN (2),

.

.

transition

X X(k + 1) - X(k)

X(k) : tps de

franchissement

de l’entitĂ© n° k

Page 45: SIMULATION DES SYSTEMES DE PRODUCTION

45

2) Le bloc Statistic (issu du template Advanced Process, appartenant au cadre expérimental et

donc non traversĂ© par une entitĂ©) permet de collecter des statistiques issues d’un bloc Record

ou de variables ARENA (mise Ă  jour automatiquement par ARENA), telles que le nombre

d’entitĂ©s contenues dans une file d'attente ou le taux d’occupation d’une ressource.

La variable NQ (abrĂ©viation de Number in Queue), permet de disposer du nombre d’entitĂ©s

contenues dans une file d'attente. Par exemple, la variable NQ(Process 1.Queue) permet de

connaĂźtre le nombre d’entitĂ©s prĂ©sentes dans la file d’attente Process 1.Queue.

La variable NR (abréviation de Number of busy Resource units), permet de disposer du taux

d’occupation d’une ressource. Soit une machine constituĂ©e de n ressources, ce qui permet le

traitement en parallĂšle de n piĂšces, une ressource peut ĂȘtre occupĂ©e (busy) ou disponible (idle).

Par exemple, considérons une machine, représentée par un bloc Process 1, utilisant une

ressource Resource 1 de capacité égale à 3 (donnée déclarée dans un bloc Resource), alors la

variable NR(Resource 1) permet de connaßtre le nombre de ressources Resource 1 occupées (ce

nombre pouvant ĂȘtre Ă©gal Ă  0, 1, 2 ou 3).

a) On accÚde à différents types de données statistiques selon la configuration du bloc Statistic :

i) A travers une statistique, notée Statistic 1, on peut disposer de la moyenne, du minimum, du

maximum du nombre d’entitĂ©s prĂ©sentes dans la file d’attente, par exemple,

Process 1.Queue. Pour cela, prendre la configuration suivante :

champ Name = Statistic 1, champ Type = Time-Persistent, champ Expression =

NQ(Process 1.Queue) (voir figure ci-dessous).

2i) A travers une statistique, notée Statistic 2, on peut disposer de la moyenne, du minimum, du

maximum du nombre de ressources, par exemple, Resource 1, occupées. Pour cela, prendre la

configuration suivante :

champ Name = Statistic 2, champ Type = Time-Persistent, champ Expression =

NR(Resource 1) (voir figure ci-dessous).

3i) A travers une statistique, notée Statistic 3, on peut disposer de données statistiques de la file

d'attente, par exemple, Process 1.Queue, classées par catégorie, avec pour chacune des

catégories, son nombre d'occurrences, le temps moyen de chaque occurrence et le pourcentage

des temps d'occurrences par catégorie. Considérons, par exemple, les 3 catégories suivantes :

- Vide lorsque la file d'attente ne contient pas d'entité ;

- Moitie chargee lorsque la file d'attente contient entre 1 et 10 entités ;

Page 46: SIMULATION DES SYSTEMES DE PRODUCTION

46

- Chargee au-delà de 10 entités.

Pour cela, prendre la configuration suivante :

champ Name = Statistic 3, champ Type = Frequency, champ Frequency Type =

Value, champ Expression = NQ(Process 1.Queue), 3 lignes à définir dans le champ

Categories, Ă  savoir :

Constant or Range Value High

Value Category Name Category Option

1 Constant 0

Vide Include

2 Range 0 10 Moitie chargee Include

3 Range 10 1000 Chargee Include

voir figure ci-dessous.

Remarque : La valeur 1000, contenue dans le tableau, correspond à une borne supérieure du

nombre d'entités dans la file d'attente.

4i) A travers une statistique, notée Statistic 4, on peut disposer de données statistiques de la

ressource, par exemple Resource 1, classées par catégorie, avec pour chacune des catégories,

son nombre d'occurrences, le temps moyen de chaque occurrence, et le pourcentage des temps

d'occurrences par catégorie. Considérons, par exemple, les 4 catégories suivantes :

- Zero lorsque la ressource est libre ;

- Une lorsqu'une (seule) ressource est occupée ;

- Deux lorsque 2 ressources sont occupées ;

- Trois lorsque toutes les ressources (c'est-à-dire, 3) sont occupées.

Pour cela, prendre la configuration suivante :

champ Name = Statistic 4, champ Type = Frequency, champ Frequency Type =

Value, champ Expression = NR(Resource 1), 4 lignes Ă  definer dans le champ

Categories, Ă  savoir :

Constant or Range Value Category Name Category Option

1 Constant 0 Zero Include

2 Constant 1 Une Include

3 Constant 2 Deux Include

4 Constant 3 Trois Include

voir figure ci-dessous.

b) Le bloc Statistic permet Ă©galement de sauvegarder les donnĂ©es d’observations individuelles,

acquises tout au long de la simulation, par exemple, issues d’un bloc Record (relatif à un

compteur ou un tally), ou d’une variable ARENA (le nombre d’entitĂ©s contenues Ă  chaque

instant dans une file d'attente, le taux d’occupation à chaque instant d’une ressource). Pour cela,

il suffit de compléter le bloc Statistic en indiquant dans le champ Counter Output File ou Tally

Page 47: SIMULATION DES SYSTEMES DE PRODUCTION

47

Output File (selon que le bloc Record est relatif Ă  un compteur ou un tally) ou Output File (pour

une variable ARENA), le nom du fichier - ainsi que son répertoire si celui-ci est différent du

rĂ©pertoire contenant l’application.

Afin de disposer des données au format csv (abréviation de comma-separated-value, « comma »

signifiant virgule), reconnu notamment par MatLab (via la commande CSVREAD) et Excel, il

suffit de mettre l’extension .csv au fichier de sauvegarde et d’indiquer que le fichier de

sauvegarde est au format texte en cochant la case Write Statistics Output Files as Text accessible

via le menu Run/Setup/Run Control/Advanced.

Par exemple, la statistique, notée Statistic 5, permet via le compteur Record 1 défini dans le

bloc Record 1 de disposer dans le fichier Compteur.csv du nombre d’entitĂ©s qui ont transitĂ© Ă 

tout instant dans ce bloc.

VII.4 ANIMATION GRAPHIQUE

L'animation permet de décrire graphiquement l'évolution dynamique de l'état du systÚme

simulé, notamment à travers une visualisation :

â–Ș du flux des entitĂ©s (par exemple, des piĂšces circulant le long d'une ligne de production),

â–Ș de l'Ă©tat des ressources (par exemple, l'Ă©tat libre (idle), occupĂ©e (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 trĂšs efficace de communication. D'un abord facile, notamment pour

les décideurs non nécessairement initiés aux aspects techniques, elle permet - sous réserve bien

sûr que les conditions de simulation soient crédibles - de mettre en avant les phénomÚnes

étudiés. Elle permet également lors de la conception du modÚle de simulation de vérifier son

bon fonctionnement Ă  travers une visualisation Ă©tape par Ă©tape (voir commande Step â–ș| ) du

cheminement des entités dans le modÚle de simulation.

Un exemple est donné dans le fichier \Exemples\Animation_Un_exemple\Animation.Doe.

➱ Animation des entitĂ©s

Une animation, rattachée aux connecteurs, est proposée par défaut (voir option Animate

Connectors dans le menu Object). Elle permet de visualiser le flux des entités le long des

connecteurs, i.e., les liens reliant les modules entre eux :

Create

Process 0

0

connecteur

Page 48: SIMULATION DES SYSTEMES DE PRODUCTION

48

Notons que le mouvement des entités le long des connecteurs n'a pas d'impact sur le temps de

simulation (TNOW).

La simulation de temps de transport nécessite l'utilisation du bloc STATION du template

Advanced Transfer.

L'image initiale utilisée pour représenter un type d'entité donné est définie dans le bloc Entity

(issu du template Basic Process, appartenant au cadre expérimental et donc non traversé par

une entité). L'image est par défaut celle notée Picture.Report et est indiquée dans le champ

Initial Picture du module Entity. Le changement de l'image associée à une entité se fait via son

passage dans un bloc Assign en assignant une nouvelle image Ă  l'attribut Entity Picture (par

exemple, Type : Entity Picture, Entity Picture : Picture.Truck).

Le menu Edit/Entity Picture permet d'accéder à d'autres images (contenues dans des fichiers

.plb). Le bouton Open permet d’ouvrir un fichier .plb particulier, lequel contient des images.

Par exemple, le fichier machine.plb met Ă  disposition des images relatives Ă  des machines.

Il est également possible de créer ses propres images, lesquelles seront sauvegardées dans un

fichier .plb. Pour créer une image, cliquez sur le bouton Add de droite, ce qui fait apparaßtre une

case grise. Le fait de double cliquer dans cette case permet d’ouvrir une fenĂȘtre (Picture Editor)

oĂč il est possible de concevoir une image. Fermer la fenĂȘtre une fois l’image conçue ; elle

apparaĂźtra alors Ă  la place de la case grise. Le bouton Save permet de sauvegarder dans un fichier

.plb de votre choix la, voire les, image(s) créée(s).

➱ 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 fenĂȘtre issue du menu View/Toolbars
 pour faire apparaĂźtre – si nĂ©cessaire –

cette barre d'outils).

Ces objets sont décrits 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 années,

- Variable permet d'afficher la valeur numérique d'une expression mathématique ou

logique,

- Level affiche la valeur d'une expression relative Ă  des valeurs minimum et maximum

spécifiées,

- Histogram permet d'afficher la distribution de la valeur d'une expression dans une plage

spécifiée,

Affichage d'Ă©tat : Clock Date Variable Level Histogram Plot

Zone d'attente : Queue Image : Resource Global

Page 49: SIMULATION DES SYSTEMES DE PRODUCTION

49

- Plot permet d'afficher les valeurs passées d'une expression sur une plage de temps

spécifiée.

- Zone d'attente :

- Queue permet d'afficher les entités en attente d'un événement spécifié (par exemple, la

disponibilité d'une ressource).

- Image :

- Resource permet de disposer d'un objet (par exemple, une machine) à capacité limitée

pouvant ĂȘtre allouĂ© Ă  des entitĂ©s. 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

spécifiée.

➱ La barre d'outils Dessin (Drawing)

Les objets de cette barre d'outils permettent l'ajout de dessins statiques, ou de texte :

Line Polyline Arc Bezier curve Box Polygon Ellipse Text Couleur

Page 50: SIMULATION DES SYSTEMES DE PRODUCTION

50

VII.5 DONNÉES D'ENTRÉES

Le module Input Analyser d'ARENA permet l'exploitation de données d'entrées en déterminant

automatiquement la loi de probabilité la plus adaptée de la distribution empirique obtenue à

partir des données d'entrée (regroupées dans un fichier).

Les donnĂ©es d’entrĂ©es sont contenues dans un fichier au format .dst oĂč une ligne contient un

nombre (réel). En fait, ce fichier est de type texte et donc lisible, par exemple, via le WordPad.

Voir, Ă  titre d’exemple, le fichier test1.dst, ou test2.dst, dans le rĂ©pertoire

\Exemples\Distribution. Pour analyser un fichier de données (.dst), faire : Rockwell

Software/Arena/Input Analyzer afin d’ouvrir l’application Input Analyzer. Une fois dans cette

application, faire : File/New afin d’ouvrir une fenĂȘtre Input1. AprĂšs avoir cliquĂ© dans la fenĂȘtre

grisée, faire File/Data File/Use Existing
8, ce qui permet de récupérer le fichier (.dst)

contenant les donnĂ©es Ă  convertir en une loi de distribution : il en rĂ©sulte l’affichage d’un

histogramme des données.

Dans la fenĂȘtre grisĂ©e, sont dĂ©crites des informations relatives aux donnĂ©es (le nombre de

donnĂ©es, les valeurs minimale et maximale, la moyenne, l’écart type) et Ă  l’histogramme (la

portĂ©e (la plus petite valeur et la plus grande valeur considĂ©rĂ©es dans l’histogramme), le nombre

d’intervalles (en )( ptsdenbreO et compris entre 5 et 40)).

8 A ce niveau, vous pourriez créer un fichier de données (.dst) correspondant à une certaine

distribution en sélectionnant Generate New
.

Page 51: SIMULATION DES SYSTEMES DE PRODUCTION

51

Pour modifier les paramĂštres de l’histogramme des donnĂ©es, Ă  savoir le nombre d’intervalles,

la borne inférieure (les données ayant des valeurs inférieures étant ignorées) et la borne

supérieure (les données ayant des valeurs supérieures étant ignorées), faire :

Options/Parameters/Histogram
.

Pour trouver la meilleure distribution correspondant Ă  cet histogramme, faire : Fit/Fit All9.

VII.6 ANALYSE DES RÉSULTATS

Le module Output Analyser d'ARENA permet, à l'issue d'une simulation, le calcul de résultats

statistiques tels que la moyenne, l'Ă©cart type, la valeur minimum, la valeur maximum. Il est

également possible de récupérer l'historique complet des valeurs récoltées au cours de la

simulation dans des fichiers (exploitables par exemple via le logiciel Excel).

Outre les tracés de courbes et d'histogrammes, ce module intÚgre différentes fonctions

statistiques, telles que le calcul d'intervalles de confiance, la construction de corrélogrammes,

la comparaison et l'analyse de moyennes, l'analyse de variances, le test d'hypothùses, 


9 « To fit » signifie « ajuster ».