Cours de Simulation

56
SIMULATION SYSTÈMES DE PRODUCTION RÉSEAUX DE PETRI SIMAN - ARENA Jean-Louis Boimond Table des matières I INTRODUCTION À LA SIMULATION ........................................................................................................... 2 I.1 L’ÉTAPE DE MODÉLISATION ............................................................................................................. 4 I.2 LES LIMITES DE LA SIMULATION .................................................................................................... 4 II LA SIMULATION DES SYSTÈMES DE PRODUCTION .............................................................................. 5 II.1 OUTILS DE MODÉLISATION .............................................................................................................. 6 II.2 APPLICATION AUX SYSTÈMES DE PRODUCTION ...................................................................... 7 II.3 UTILISATION DE L’INFORMATIQUE ............................................................................................ 10 III RAPPELS DE PROBABILITÉS ET STATISTIQUES .................................................................................. 11 III.1 VARIABLES ALÉATOIRES CONTINUES ....................................................................................... 12 III.2 LOIS DE DISTRIBUTION STANDARD ........................................................................................... 13 III.3 VARIABLES ALÉATOIRES DISCRÈTES ....................................................................................... 16 IV DONNÉES D'ENTRÉE DU SYSTÈME ........................................................................................................ 18 IV.1 CONNAISSANCE PARTIELLE DES DONNÉES ............................................................................ 18 IV.2 DONNÉES EXISTANTES (accessibles à la mesure) .......................................................................... 19 V. VÉRIFICATION ET VALIDATION DES MODÈLES .................................................................................. 21 V.1 VÉRIFICATION ..................................................................................................................................... 21 V.2 VALIDATION ......................................................................................................................................... 22 VI INTERPRÉTATION DES RÉSULTATS....................................................................................................... 24 VI.1 ANALYSE DES SYSTÈMES FINIS..................................................................................................... 25 VI.2 ANALYSE DES SYSTÈMES QUI NE SE TERMINENT PAS ........................................................ 26 VII NOTIONS ELÉMENTAIRES SUR LES RÉSEAUX DE PETRI ................................................................ 27 VII.1 GÉNÉRALITÉS ................................................................................................................................... 27 VII.2 GRAPHES D'ÉVÉNEMENTS............................................................................................................ 29 VII.3 EXEMPLES.......................................................................................................................................... 29 VII.4 AUTRES CLASSES DE RÉSEAUX DE PETRI ............................................................................... 30 VIII LE LANGAGE DE SIMULATION SIMAN-ARENA ................................................................................ 32 VIII.1 NOTIONS DE BASE .......................................................................................................................... 32 VIII.2 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LA CONSTRUCTION D’UN MODÈLE ......................................................................................................................................................... 36 VIII.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT L’ANALYSE D’UN MODÈLE .... 47 VIII.4 ANIMATION GRAPHIQUE ............................................................................................................ 51 VIII.5 DONNÉES D'ENTRÉES ................................................................................................................... 54 VIII.6 ANALYSE DES RÉSULTATS .......................................................................................................... 55

description

SIMULATIONSYSTÈMES DE PRODUCTIONRÉSEAUX DE PETRISIMAN - ARENA

Transcript of Cours de Simulation

Page 1: Cours de Simulation

SIMULATION

SYSTÈMES DE PRODUCTION

RÉSEAUX DE PETRI

SIMAN - ARENA

Jean-Louis Boimond

Table des matières

I INTRODUCTION À LA SIMULATION ........................................................................................................... 2

I.1 L’ÉTAPE DE MODÉLISATION ............................................................................................................. 4 I.2 LES LIMITES DE LA SIMULATION .................................................................................................... 4

II LA SIMULATION DES SYSTÈMES DE PRODUCTION .............................................................................. 5

II.1 OUTILS DE MODÉLISATION .............................................................................................................. 6 II.2 APPLICATION AUX SYSTÈMES DE PRODUCTION ...................................................................... 7 II.3 UTILISATION DE L’INFORMATIQUE ............................................................................................ 10

III RAPPELS DE PROBABILITÉS ET STATISTIQUES .................................................................................. 11

III.1 VARIABLES ALÉATOIRES CONTINUES ....................................................................................... 12 III.2 LOIS DE DISTRIBUTION STANDARD ........................................................................................... 13 III.3 VARIABLES ALÉATOIRES DISCRÈTES ....................................................................................... 16

IV DONNÉES D'ENTRÉE DU SYSTÈME ........................................................................................................ 18

IV.1 CONNAISSANCE PARTIELLE DES DONNÉES ............................................................................ 18 IV.2 DONNÉES EXISTANTES (accessibles à la mesure) .......................................................................... 19

V. VÉRIFICATION ET VALIDATION DES MODÈLES .................................................................................. 21

V.1 VÉRIFICATION ..................................................................................................................................... 21 V.2 VALIDATION ......................................................................................................................................... 22

VI INTERPRÉTATION DES RÉSULTATS....................................................................................................... 24

VI.1 ANALYSE DES SYSTÈMES FINIS ..................................................................................................... 25 VI.2 ANALYSE DES SYSTÈMES QUI NE SE TERMINENT PAS ........................................................ 26

VII NOTIONS ELÉMENTAIRES SUR LES RÉSEAUX DE PETRI ................................................................ 27

VII.1 GÉNÉRALITÉS ................................................................................................................................... 27 VII.2 GRAPHES D'ÉVÉNEMENTS ............................................................................................................ 29 VII.3 EXEMPLES .......................................................................................................................................... 29 VII.4 AUTRES CLASSES DE RÉSEAUX DE PETRI ............................................................................... 30

VIII LE LANGAGE DE SIMULATION SIMAN-ARENA ................................................................................ 32

VIII.1 NOTIONS DE BASE .......................................................................................................................... 32 VIII.2 DESCRIPTION DE QUELQUES BLOCS PERMETTANT LA CONSTRUCTION D’UN

MODÈLE ......................................................................................................................................................... 36 VIII.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT L’ANALYSE D’UN MODÈLE .... 47 VIII.4 ANIMATION GRAPHIQUE ............................................................................................................ 51 VIII.5 DONNÉES D'ENTRÉES ................................................................................................................... 54 VIII.6 ANALYSE DES RÉSULTATS .......................................................................................................... 55

Page 2: Cours de Simulation

1

Bibliographie

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

Sadowski, Ed. Mc Graw-Hill.

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

Interscience, 1998.

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

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

Optimisation des flux de production : Méthodes et simulation, A. Ait Hssain, Ed. Dunod, 2000.

Probabilités et statistiques. 3ème édition, A. Ruegg, Presses Polytechniques Romandes.

Du Grafcet aux réseaux de Petri. R. David, H. Alla, Hermès, 1989.

Cours de « Simulation des systèmes de production », A. Ait Hssain, Ed. 96/97 - INSA Lyon.

Cours de « Simulation », N. Mebarki, 97/98 - IUT OGP Nantes.

Cours de « Simulation informatique des 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.

Cours de « Simulação de Sistemas Dinâmicos », R. Santos Mendes, 02/03 - UNICAMP - Campinas, Brésil

(http://www.dca.fee.unicamp.br/~rafael/).

Dossier de présentation « Arena. La solution simulation », Ouroumoff Diffusion, Lyon.

Page 3: Cours de Simulation

2

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, appliquée dans ce cours aux systèmes de production,

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,

- évaluation de la charge prévisionnelle,

- étude de la synchronisation entre les réceptions des pièces et l’assemblage.

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.

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 4: Cours de Simulation

3

Production des services

- étude de transactions bancaires,

- gestion de restaurants,

- comparaisons de politiques de maintenance des avions.

Systèmes informatiques et télécommunications

- évaluation de protocoles de gestion des transactions de bases de données,

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

- étude des comportements des utilisateurs,

- conception et dimensionnement de hubs (« moyeu »).

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

On distingue classiquement quatre phases distinctes : 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) Modèle conceptuel : Le modèle n'est qu'une approximation du système, il est conditionné

par l'objectif de l'étude.

(b) Expérimentation : Il s'agit de construire des théories, ou hypothèses, qui prennent en

compte le comportement observé.

Le passage du système au modèle conceptuel est une étape essentielle pour la simulation.

Dans le cadre de ce cours, on utilise une modélisation conceptuelle par réseaux de Petri (cf.

chp. VII). Le passage du modèle conceptuel au modèle/programme de simulation se fait en

utilisant le langage Siman-Arena ; ce langage de simulation permet également d’extraire des

résultats issus de différentes expérimentations (cf. chp. VIII).

Figure 1 : Méthodologie d'une simulation.

Résultats

Modèle conceptuel(a)

Programme de

simulation

Analyse & Modélisation

Interprétation

& Action Correction

Correction

Vérification

Programmation

Expérimentation(b)

Validation

Système (réel)

Page 5: Cours de Simulation

4

I.1 L’ÉTAPE DE MODÉLISATION

L’étape de modélisation est une phase essentielle à la simulation. 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 améliorer, ou faire ?

Définir les éléments du système (via la réalisation d'une fonction, ou d'un processus) et les

limites du système (les entrées, les sorties).

Définir les interactions entre ces éléments (hiérarchie).

Définir la dynamique du système (entités qui circulent entre les éléments, comportement du

système au cours du temps).

Abstraction (choisir les éléments du système pertinents pour l'étude).

Formalisation, conceptualisation : Modèle mathématique (algèbre (max, +), chaînes de

Markov), modèle logiciel (Simulink, Siman-Arena), modèle graphique (réseaux de Petri,

bond graphs).

I.2 LES LIMITES DE LA SIMULATION

Certaines limites sont dues à la technique elle-même, d'autres sont dues aux produits

actuellement disponibles sur le marché (notons qu’une formation sur les logiciels utilisés est

souvent nécessaire) :

La programmation demande un certain niveau d'expertise. La qualité des résultats fournis

lors de l'analyse des solutions est liée à la qualité de la modélisation et au savoir-faire du

« modélisateur » (la modélisation est un métier).

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

entièrement 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.

La difficulté liée à la simulation est double :

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

Souvent pour des raisons financières, on doit aller au plus vite vers une solution finale

(sans passer trop de temps à explorer d’autres solutions intermédiaires).

Page 6: Cours de Simulation

5

II LA SIMULATION DES SYSTÈMES DE PRODUCTION

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

par une forte complexité et flexibilité. Selon un certain point de vue, ils peuvent être spécifiés

par des modèles à événements discrets (un modèle est à événements discrets lorsque l’espace

d'état est à événements discrets, i.e., les transitions entre états sont associées à l'occurrence

d'événements discrets asynchrones). Les systèmes de trafic (aérien, ferroviaire, …), 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).

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 à étudier peut être existant, à modifier ou non

encore construit.

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

L'évaluation de performances1, en terme de circulation de produits, exploite ces données

pour :

- Déterminer des performances absolues (temps de cycle maximum, système sans

panne),

- Prédire des performances dans certaines conditions,

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

- Comparer des alternatives (parmi des choix possibles).

1 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).

Historique,

statistiques

Evaluation de

performances Système de

production

Modèle

Programme

Page 7: Cours de Simulation

6

La simulation permet de répondre à la question « que se passe-t-il si ... ? » pour l'étude de

systèmes de production complexes (structure, comportement dynamique, taille, choix

multiples).

II.1 OUTILS DE MODÉLISATION

Les systèmes de production font partie des systèmes (dynamiques) à événements discrets2.

Parmi les modèles utilisés pour l'étude de ces systèmes, il y a :

- Les réseaux de files d'attente évaluation analytique de performances,

- Les réseaux de Petri analyse des propriétés, évaluation de performances,

simulation,

- Les modèles (et programmes) de simulation.

De façon générale, un modèle est composé :

- De variables,

- D'objets (centres de services, clients, ressources) caractérisés par des attributs :

Fixes (i.e., dont la valeur ne change pas au cours du temps, exemple : Type de

pièce),

ou

variables (i.e., dont la valeur change au cours du temps, exemple : Occupation

d’une machine),

- Des relations entre ces objets (services effectués au cours du temps).

Exemple :

Attributs fixes : Pièces A, Pièces B

Attributs variables : Temps de traitement de la machine M1 (t1A, t1B)

L'état du système à un instant donné est caractérisé par l'ensemble des valeurs des variables

et des attributs de tous les objets. Le modèle reproduit l'évolution au cours du temps de l'état3

du système sous l'effet des activités qui y sont réalisées.

2 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 dans un stock alors ses valeurs varient seulement aux

instants où des pièces entrent, ou sortent, du stock. 3 Dans le cas d’une évolution continue de l’état, le modèle est continu, la description se fait, par exemple, via des

équations différentielles, ou des variables d’état. Dans le cas où les changements d’état s’effectuent,

instantanément, à des instants discrets dans le temps, le modèle est à événements discrets, la description se fait,

par exemple, à l’aide d’un réseau de Petri. Certains problèmes nécessitent des modèles dits hybrides, où

apparaissent conjointement des comportements continus et des comportements dus à des événements discrets.

Pièces A

Pièces B M1

M2

M3 t1A

t1B

Page 8: Cours de Simulation

7

Evolution d'une simulation événementielle : Le modèle du système passe au cours du temps

d'un état à un autre 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.

II.2 APPLICATION AUX SYSTÈMES DE PRODUCTION

1. Pourquoi ?

Complexité croissante, interactions très fortes entre les différents éléments d'un système de

production : Nécessité d'une approche globale.

Prise en compte de tous les aspects (données techniques, géométrie du réseau de transport,

capacité des files d'attente, contraintes sociales, travail en équipe, heures supplémentaires).

2. Indicateurs de performances et prise de décision

A partir de l'historique de circulation des flux de produits, on obtient des valeurs des

indicateurs de performances liés au volume de production, à l'engagement des ressources et

éventuellement à la satisfaction du client.

- Volume de production :

- Nombre et type de pièces produites,

- Nombre et type de pièces défectueuses, ...

- Engagement des ressources :

- Taux d'utilisations : Machines, outils, personnel, stock, ...,

- Temps passé par un élément dans un état : Ressources, machines (en fonctionnement,

inoccupées, en panne), cycle de pièce, ...

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

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

É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

Page 9: Cours de Simulation

8

3. A quel niveau ?

a) La simulation : une aide à la conduite

Le système présente un problème (il ne répond plus aux besoins des utilisateurs).

Bien mettre en évidence les dysfonctionnements par rapport aux besoins et proposer des

solutions permettant de pallier à ces dysfonctionnements au moindre coût.

Définir les performances à mesurer.

Déterminer les ressources goulets (machines, stocks, moyens de manutention,

personnel, ...) qui agissent le plus sur les performances, et pour un scénario de production

donné.

On peut chercher à améliorer le système, soit en agissant sur la capacité des ressources, soit

sur la manière dont on utilise ces ressources (règles de gestion).

Les données à utiliser (recueil non exhaustif) :

- Produits (type, gamme),

- Moyens de production (capacité des machines, coût, taux rebut, disponibilité),

- Systèmes de transfert (nature, caractéristiques),

- Caractéristiques des automates (règles de commande),

- Stocks (nature, capacité, gestion),

- Opérateurs (qualification, nombre, horaires),

- Stratégie(s) de gestion de production,

- Règles de fonctionnement (mode nominal ou dégradé).

Système de

commande

Système

physique

Réalité

Modèle de

commande

Modèle du

système

physique

Simulation Paramétrage automatique

Proposition

de décisions

Résultats Décisions

Page 10: Cours de Simulation

9

b) La simulation : une aide à la traçabilité (implicite/explicite)

L'objectif est de concevoir, développer un système de traçabilité.

Bien mettre en évidence les entités à identifier, recenser le contenu de l'historique des produits

et du (des) processus, définir les informations éventuellement utilisées dans le système de

commande.

Le système de traçabilité devant être adapté à sa structure, conforme à l'attente de

l'environnement et en accord avec les standards et les règlements.

On peut chercher à synthétiser un système de traçabilité qui soit fiable (le reflet de la réalité)

et robuste (l'outil de simulation permettant la prise en compte de différents scenarii possibles,

ceci sans risque pour le système (réel)).

Les données à utiliser (recueil non exhaustif) concernent l'ensemble de l'état (dynamique) du

système piloté dans le but « de retrouver l'historique, l'utilisation ou la localisation d'un article

ou d'une activité, au moyen d'une identification enregistrée (1994, ISO 8402) » :

- Produits, articles, lots (entités),

- Moyens de production (capacité des machines),

- Stocks, systèmes de transfert (état),

- Opérateurs (qualification, nombre, horaires),

- Système d'identification,

- Structure de traitement des données recueillies.

Réalité Simulation

Système de

commande

Système de

traçabilité

Modèle de

commande

Historique (produits,

processus)

Proposition

de décisions

Résultats Décisions Système

physique

Modèle du

système

physique

Identification

Identification

Historique (produits,

processus)

Modèle de

traçabilité

Identification

Identification

Page 11: Cours de Simulation

10

c) La simulation pour définir un futur système

Aide à la décision d'investissement :

Choix technologiques et organisationnels : Equipements, stratégies de gestion de production

(gestion des stocks, taille des lots, seuils de réapprovisionnement, nombre de Kanban),

organisation du travail (cellules, lignes, mixte), choix de gamme.

Evaluation des différents scénarii en fonction des critères les plus pertinents.

Exemples d'applications :

Dimensionnement d'ateliers : Nombre et type des équipements (en fonction du coût),

capacité des stocks, nature du système de transport

Choix de production (étude de rentabilité)

II.3 UTILISATION DE L’INFORMATIQUE

On a trois alternatives : 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. 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. 3. 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 SIMAN, 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). SIMAN est un des principaux

logiciels standards en France (version éducative à prix étudié).

Système de

commande

Système

physique

Conception

du système

Implémentation

Modèle de

commande

Modèle du

système

physique

Simulation Réalité

Page 12: Cours de Simulation

11

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

- 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 centrale

limite4).

La statistique exploratoire ou descriptive (analyse de données) permet de structurer, de

résumer l'information contenue dans les données.

→ Méthodes de classification des individus en groupes homogènes ;

→ Méthodes factorielles (analyse en composantes principales, analyse des

correspondances) résumant les variables par des composantes synthétiques.

La prévision statistique permet de trouver une relation entre une variable et plusieurs

variables → régression linéaire.

La statistique inférentielle5 permet notamment :

- L'estimation de moyennes,

- Le test (ou la vérification) d'hypothèses.

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

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

4 La moyenne d'un échantillon de taille n 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 n

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 n. 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 n égale à 30, la moyenne d'un

échantillon est distribuée de façon sensiblement normale. 5 Inférence : Opération intellectuelle par laquelle on passe d'une vérité (une proposition) à une autre vérité

(proposition), jugée telle en raison de son lien avec la première : La déduction est une inférence.

Page 13: Cours de Simulation

12

→ 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 E 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 A de E contenant tous les

événements élémentaires de E composant l'événement A. La probabilité attachée à un

événement A est un nombre P(A) 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 E a une probabilité égale à 1.

- EA , on a 1)(0 AP .

- EBA , , on a )()()( BPAPBAP si BA .

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é.

III.1 VARIABLES ALÉATOIRES CONTINUES

Une variable aléatoire continue X est une fonction à valeurs réelles définie sur un

ensemble (ensemble des événements possibles, par exemple : = {pile, face} dans le cas

du lancer d'une pièce de monnaie) telle que l'ensemble des valeurs prises par X, noté X(), est

un intervalle fini ou infini.

Exemple de la loi uniforme continue : Soit X une variable aléatoire susceptible de prendre

toutes les valeurs d'un intervalle fini ba, , sans privilégier aucune région de ba, (on parle

d'événements équiprobables). Aussi, la probabilité que X prenne une valeur appartenant à

l'intervalle vu, ( ba, ) est proportionnelle à la longueur de vu, , d'où

,)(ab

uvvXuP

soit

v

udxxfvXuP )()(

où )(xf =

nonsi

bxasiab

0

)(/1.

f(x)

0 a u v b x

aire =

Page 14: Cours de Simulation

13

La fonction )(xf , appelée densité de probabilité, définit le comportement aléatoire

(stochastique) de la variable aléatoire X 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 ba, .

Remarque : Pour une variable aléatoire continue, considérer un événement du type « X = x »

n'a pas de sens. En effet, on a : 0)( xXxP .

)(xf est une densité de probabilité

)1',...(1)(

0)(

certainévénementldeéprobabilitdacdxxf

Rxxf

.

On définit la moyenne M, aussi appelée espérance mathématique E(X), par :

dxxfxM )( .

On définit la variance 2 ( 02 ), aussi notée Var(X), par :

222 )( Mdxxfx

, encore égale à

dxxfMx )()( 2 .

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 X. La variance est une

mesure de la dispersion de ces valeurs autour de leur moyenne. Plus la variance est faible (

0 ), plus les valeurs prises par X sont concentrées autour de la moyenne.

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

b

a

badx

ab

xM

2 et

12

)(

2

2222 abba

dxab

xb

a

.

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.

III.2 LOIS DE DISTRIBUTION STANDARD

a) LOI TRIANGULAIRE

a m b x

f(x)

aire = 1

Page 15: Cours de Simulation

14

nonsixf

bxmsiabmb

xbxf

mxasiabam

axxf

0)(

))((

)(2)(

))((

)(2)(

18

;3

;,222

2 mbabambmabmaMbaD

.

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

maximum et de la valeur la plus probable.

Exercice : Soient 3,2,0 bma , calculer )5,21( XP ). Réponse : 0,75.

b) LOI EXPONENTIELLE

nonsixf

xsiexf x

0)(

)0(01

)( /

22;;,0 MD .

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. En effet, la probabilité que X soit supérieure, ou égale, à 0xx , sachant que X

est supérieure, ou égale, à 0x , dépend de la valeur de x, et est indépendante de la valeur de 0x

(on a : )()( 00 xXPxXxxXP ).

Autrement dit, une loi exponentielle modélise la durée de vie d’un phénomène sans mémoire,

ou sans vieillissement, ou sans usure : la probabilité que le phénomène dure au moins s + t

unités de temps sachant qu’il a déjà duré t unités de temps sera la même que la probabilité de

durer s unités de temps à partir de sa mise en fonction initiale. Par exemple, il est souvent

admis que la durée de vie T d'un dispositif électronique obéit à une loi exponentielle. Aussi la

probabilité de bon fonctionnement dans un intervalle de temps tuu , , c'est-à-dire

)( uTutTP , dépend uniquement de la longueur de cet intervalle, et non de sa position

par rapport à l'axe des temps (on a : )()( tTPuTutTP ).

f(x)

0 x

1

𝛽

Page 16: Cours de Simulation

15

Démonstration : Soient l'événement A correspondant au fait que 0xX et l'événement B

correspondant au fait que xxX 0 . On a

0

)()( 0 xdxxfxXP et

xxdxxfxxXP

0

)()( 0 . Aussi )( ABP équivaut à )( 00 xXxxXP .

Sachant que : )()()()()( BAPBPABPAPBAP (probabilité conditionnelle),

on a )(

)()()(

AP

BAPBPABP

.

Sachant que )( BAP équivaut à 1)( 00 xxXxXP , on a )(

)()(

AP

BPABP .

Ainsi

x

x

xx

x

u

xx

u

x

u

xx

u

e

e

e

e

e

due

due

xXP

xxXP

AP

BPABP

0

0

0

0

0

0

)(

0

0

1

1

)(

)(

)(

)()(

qui est fonction de x uniquement (indépendant de 0x ).

c) LOI NORMALE

,D ; moyenne = M ; 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éries.

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é f (x), on peut utiliser la fonction de répartition

F(x) pour caractériser la distribution d'une variable aléatoire X.

On a :

xduufxXPxF )()()( pour x .

f(x) =

points d'inflexion

1

𝜎 2𝜋

f (x)

0 x M- M M+

M x

f (x)

68% des valeurs

2 petit

2 grand

Page 17: Cours de Simulation

16

F(x) est une fonction continue, monotone croissante, telle que 0)( F et 1)( F ,

)()(' xfxF . Elle permet de calculer des probabilités de la forme )( bXaP ) sans

effectuer une intégration (ce qui est le cas en utilisant )(xf ) ; en effet

)()()( aFbFbXaP .

III.3 VARIABLES ALÉATOIRES DISCRÈTES

Une variable aléatoire est discrète si elle ne peut prendre qu'un nombre fini de valeurs. Pour

chaque valeur ix , on associe la probabilité )( ixp d'apparition de cette valeur.

Pour N valeurs, l'ensemble des probabilités associées est tel que :

1)(

1

N

i

ixp si N 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.

La loi est représentée soit par le diagramme en bâtons suivant indiquant )( ixp en fonction de

ix :

soit par un histogramme6 :

6 Ensemble de rectangles de même largeur dont les surfaces sont proportionnelles aux probabilités p(xi).

p(xi)

1/3

1/6

xi 0

1 2 3 4

1/3

1/6

1 2 3 4 0

p(xi)

xi

Page 18: Cours de Simulation

17

Définitions

La moyenne (arithmétique) M est égale à

N

i

ii xpx1

)( .

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

La variance 2 est égale à

N

i

ii Mxpx1

22 ))(( .

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

i

l

lic xpxp1

)()( .

Dans l'exemple précédent, on a : 1)(,6

5)(,

2

1)(,

6

1)( 4321 xpxpxpxp cccc .

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.

Page 19: Cours de Simulation

18

IV 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).

- Systèmes similaires → attention aux inférences.

- Estimation des opérateurs (humains) → négligence des extrêmes et oubli du passé.

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

- Estimation des concepteurs (à vérifier).

- Considérations théoriques (par exemple le fait que les arrivées de 2 « clients »

successifs dans une file d'attente suivent une loi exponentielle, que les variations de

longueur de pièces en série suivent une loi normale, ...).

Deux cas sont à considérer, soit on a une connaissance partielle des données du

système (moyenne, minimum, maximum, ...), soit on dispose des données du système.

IV.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 M est disponible

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

- Directement M comme valeur constante de la variable si la dispersion (écart type) est

petite,

Page 20: Cours de Simulation

19

- Une distribution exponentielle (grande dispersion : forte variabilité) de paramètre M si la

nature du phénomène le justifie.

2. Min et Max sont disponibles

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

- Une distribution uniforme de paramètres Min et Max, c'est la distribution de l'ignorance

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

- Si les données sont centrées autour de la moyenne M = (Min + Max)/2, on peut appliquer

une distribution normale centrée autour de M ; à partir de l'étendue des données (Etendue

= Max-Min), on peut calculer l'écart type : Si les données sont nombreuses, =

Etendue/6, sinon = Etendue/4.

3. Min, Max et la valeur la plus probable m sont disponibles

On peut alors utiliser (si cela est justifié) une distribution triangulaire de paramètres Min, m

et Max.

IV.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 )( kxp en fonction de l'indice k. 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( nsobservatiodnbre ' )).

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

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.

Page 21: Cours de Simulation

20

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 Min et Max finies.

Une valeur )211( nnClassex 2121

)1(MinMax

nMinxMinMax

nMin

.

Si la valeur Min (respectivement Max) = - (respectivement + ), on considère une classe

[- , valeur réelle] (respectivement [valeur réelle, + ]).

Nbre

de valeurs appartenant à la

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

Min

Cl. 1 …. Cl. n

Max

Page 22: Cours de Simulation

21

V. 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 est correct au sens où il représente bien le système. Ceci passe

habituellement par deux étapes : la vérification et la validation.

V.1 VÉRIFICATION

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

désire (pas d'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 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 (cf. dans SIMAN au bloc TRACE de la bibliothèque

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

Page 23: Cours de Simulation

22

- 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.

V.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,

- 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

Page 24: Cours de Simulation

23

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.

Page 25: Cours de Simulation

24

VI INTERPRÉTATION DES RÉSULTATS

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

- 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 [c1, c2] du paramètre inconnu

est défini à l'aide de 2 grandeurs statistiques 21, CC de telle sorte qu'il recouvre, avec une

probabilité donnée 1 , la (vraie) valeur inconnue de , soit :

1)( 21 CCp .

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 21, CC donne lieu à un intervalle de confiance

numérique [c1, c2]. 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 ( 21, CC ), alors

la valeur inconnue du paramètre sera recouverte par environ %)1(100 des intervalles

[c1, c2 ] ainsi obtenus.

La longueur d'un intervalle de confiance diminue :

En augmentant la taille n de l'échantillon,

En diminuant la dispersion de la variable aléatoire étudiée,

En choisissant un seuil de confiance moins élevé.

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 26: Cours de Simulation

25

VI.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

2112 )/( hhnn où

1n est le nombre d’expériences déjà réalisées,

2n est le nombre total d’expériences,

1h est la moitié de l'intervalle de confiance déjà obtenu,

2h 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 27: Cours de Simulation

26

VI.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 n batchs de taille m et sans chevauchement,

- Remplacer chaque batch jB (j = 1, 2, .., n) par jX , moyenne des m observations dans

jB ,

- Calculer l'intervalle de confiance à partir des observations jX , j = 1, 2, .., n.

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 jX ).

Indications : n = 10. lag*,

m de 10 à 20.

Corrélogramme lag* : 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 28: Cours de Simulation

27

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

VII.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 <P, T, Pré, Post> tel que :

nPPPP ,,, 21 est un ensemble fini et non vide de places ;

mTTTT ,,, 21 est un ensemble fini et non vide de transitions ;

1,0: TPréP est l'application d'incidence avant ;

1,0: TPostP est l'application d'incidence arrière.

),( ji TPréP est le poids de l'arc (orienté) reliant la place iP à la transition jT ; ce poids vaut

1 si l'arc existe et 0 sinon.

),( ji TPPost est le poids de l'arc (orienté) reliant la transition jT à la place iP .

Marquage des places

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

certaines règles (définies ci-dessous). Cette circulation symbolise l'évolution dynamique du

système. Le marquage initial (celui indiqué sur le dessin) 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 jT ne peut s'effectuer que si le

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

),()( jii TPréPPm (condition nécessaire).

Le franchissement (tir) de jT consiste à retirer ),( ji TPréP jetons dans chacune des places

directement en amont de jT et à ajouter ),( jk TPPost jetons dans chacune des places kP

directement en aval de jT .

P6

P7

P5

P4

P3

T2

T3

T4

T6

T5

T1

P1

P2

Page 29: Cours de Simulation

28

Exercice : Exprimer sous une forme matricielle les applications Pré et Post 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 t en 2 transitions instantanées (le début et la fin) séparées par une place de

temporisation t.

On notera aussi l'existence de RdP temporels, pour lesquels on associe aux places et/ou aux

transitions une temporisation dont la valeur peut se situer à l'intérieur d'un intervalle ba, .

a b c d

t t

Page 30: Cours de Simulation

29

VII.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).

VII.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.

L'état du système modélisé par le RdP est représenté par le marquage définissant le nombre

de jetons contenus dans chaque place. L'évolution de l'état (représentant la dynamique du

système) correspond à l'évolution du marquage (produit par le franchissement de transitions).

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 31: Cours de Simulation

30

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.

VII.4 AUTRES CLASSES DE RÉSEAUX DE PETRI

Réseau de Petri synchronisé

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 32: Cours de Simulation

31

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 VII.3. On associe à ce RdP l'ensemble

d'événements SDA ,, où A désigne l'événement « Arrivée pièce », D l'événement

« Démarrage service », S 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 T1 est lié à l'occurrence de l'événement A.

Le tir de la transition T2 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 D).

Le tir de la transition T3 est lié à l'occurrence de l'événement S.

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 Pi à une transition Tj ayant un poids égal à p, alors la transition Tj

ne sera validée que si la place Pi contient au moins p jetons. Lors du franchissement de cette

transition, p jetons seront retirés de la place Pi.

Le fait qu'un arc relie une transition Tj à une place Pi avec un poids égal à p, signifie que lors

du franchissement de cette transition, p jetons seront ajoutés à la place Pi.

Réseau de Petri à arcs inhibiteurs

Un arc inhibiteur est un arc orienté qui part d'une place pour aboutir à une transition (et non

l'inverse). Son extrémité est marquée par un petit cercle. La présence d'un arc inhibiteur entre

une place Pi et une transition Tj signifie que la transition Tj n'est validée que si la place Pi ne

contient aucun jeton. Le franchissement de la transition Tj consiste à retirer un jeton dans

chaque place située en amont de la transition à l'exception de la place Pi , et à ajouter un jeton

dans chaque place située en aval de la transition.

3 stock

ressource machine libre

ressource machine

occupée

Arrivée

pièce Sortie

pièce

A D S

T1

T2

T3 Démarrage

Assemblage

2

transition

franchissable

transition

non franchissable

Page 33: Cours de Simulation

32

VIII LE LANGAGE DE SIMULATION SIMAN-ARENA

SIMAN-ARENA7 - conçu en 1982 par C.D. Pedgen de System Modeling Corporation - est un

langage de simulation du type interaction de processus, 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.

VIII.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 SIMAN) 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 suivre chacune des entités évoluant

d'un bloc fonctionnel vers un autre dans le modèle, de sa création à 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é est introduite 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 :

7 Une documentation électronique est fournie avec le logiciel SIMAN-ARENA à travers différents fichiers

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

\Rockwell Software\Arena\.

Page 34: Cours de Simulation

33

- 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.

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

Page 35: Cours de Simulation

34

A travers le menu Run/Setup/Project Parameters, on peut notamment donner :

- un titre au projet (champ Project Title),

- le nom du programmeur (champ Analyst Name),

- un commentaire (champ Project Description).

Page 36: Cours de Simulation

35

Les 2 fichiers générés par SIMAN-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;

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

Afin de bénéficier d’une animation, nous allons utiliser les templates Basic Process et

Advanced Process. Sont décrits en Annexe les templates Blocks et Elements lesquels

contiennent des blocs plus élémentaires (à chacun de ces blocs correspond une ligne dans les

fichiers générés par SIMAN-ARENA).

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.

3

2

Page 37: Cours de Simulation

36

VIII.2 DESCRIPTION DE QUELQUES 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 :

- la période de création des lots d’entités (par exemple : champ Type = Constant, champ

Value = 2),

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

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.

Type:Value (2)

Max

Arrivals

(∞)

Entities per

Arrival (1) First

Creation

(0)

P

Sortie de

l’entité du

bloc Create

Page 38: Cours de Simulation

37

Le nombre de jetons présents dans la place P correspond au nombre d'entités créées par le

bloc Create 1. 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.

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

Delay Time

Entrée d'une entité

dans le bloc Delay

Sortie de l'entité

du bloc Delay

Page 39: Cours de Simulation

38

(« 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 Quantity, par exemple Quantity = 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).

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 :

représentation graphique de la file

d’attente associée au bloc Seize 1

File d’attente

(Seize 1.Queue)

T P1

P2

Quantity

Entrée d'une entité

dans le bloc Seize

Sortie de l'entité

du bloc Seize

Saisie de (Quantity = 1) ressources

(Resource Name = Resource 1)

ressources

disponibles

Page 40: Cours de Simulation

39

- 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) Quantity jetons dans la place P2, ce qui signifie qu’au moins

Quantity ressources Resource Name sont disponibles.

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

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

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

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

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 Quantity, 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 41: Cours de Simulation

40

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 Quantity 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 Quantity 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 à SIMAN, 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

Quantity

Entrée d'une entité

dans le bloc Release

Sortie de l'entité

du bloc Release

ressources

disponibles

Page 42: Cours de Simulation

41

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,

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 43: Cours de Simulation

42

ou probabilité. 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 44: Cours de Simulation

43

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 45: Cours de Simulation

44

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 46: Cours de Simulation

45

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.

Entrée du

bloc Batch Sortie du

bloc Batch

Batch Size

(2)

Page 47: Cours de Simulation

46

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 d’une machine, sachant que différents 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, la machine 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, la machine nécessite une, voire plusieurs ressources (voir le cadre

Resources pour assigner le type, ainsi que le nombre, de ressources concernées) durant un

Separate Entrée

de

l'entité

Original (sortie de l'entité originale)

Duplicate (sortie de (# of

Duplicates) entités dupliquées

Entrée de

l‘entité Sortie de l’entité

originale

Sortie de

(# of Duplicates)

entités dupliquées

# of

Duplicates

Page 48: Cours de Simulation

47

temps (relatif au temps de traitement) minimum indiqué dans le cadre Delay (le

relâchement de la ressource est supposé réalisé en aval).

3i) Seize Delay Release, idem. au cas 2i) avec une gestion au niveau du relâchement de la

ressource « saisie ».

4i) Delay Release, idem. au cas 3i) sans la gestion de l’allocation de la, voire des

ressources nécessaires au traitement d’une pièce (cette gestion est supposée réalisée en

amont du bloc).

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

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

VIII.3 DESCRIPTION DE QUELQUES BLOCS PERMETTANT L’ANALYSE

D’UN MODÈLE

Les blocs décrits au VIII.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.

compteur = + 1

transition

Page 49: Cours de Simulation

48

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 tally8 est spécifié dans le champ Tally Name.

Voir le bloc Statistic (voir 2.b) pour effectuer un enregistrement des données.

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. VIII.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.

8 "To keep a tally of …" signifie "tenir le compte de …".

Bloc N Bloc M

tN (i) tM (i)

transition

X X(k + 1) - X(k)

X(k) : tps de

franchissement

de l’entité n° k

Page 50: Cours de Simulation

49

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 SIMAN (mise à jour automatiquement par SIMAN), 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).

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

.

.

Page 51: Cours de Simulation

50

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 ;

- 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

Page 52: Cours de Simulation

51

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 SIMAN (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 Output File (selon que le bloc Record est relatif à un compteur ou un tally) ou

Output File (pour une variable SIMAN), 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.

VIII.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

Page 53: Cours de Simulation

52

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 :

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 images créées.

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

Create

Process 0

0

connecteur

Affichage d'état : Clock Date Variable Level Histogram Plot

Zone d'attente : Queue Image : Resource Global

Page 54: Cours de Simulation

53

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,

- 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 55: Cours de Simulation

54

VIII.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…9, 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)).

9 A ce niveau, vous pourriez créer un fichier de données (.dst) correspondant à une certaine

distribution en sélectionnant Generate New….

Page 56: Cours de Simulation

55

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 All10

.

VIII.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, …

10

« To fit » signifie « ajuster ».