Académique Documents
Professionnel Documents
Culture Documents
Elaboré par
Feiza GHEZAIL-HAMDI et Nadra BOHLI
TP Simulation/ARENA – IIA4 2020/2021 2
Sommaire
2. Illustration
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.
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 (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.
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 :
- 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.
TP Simulation/ARENA – IIA4 2020/2021 4
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.
a) Create (issu du template Basic Process) : Un bloc Create permet de créer des entités.
Les champs de ce bloc sont les suivants :
- le champ Name où l’on peut donner un nom au bloc ;
- le cadre Time Between Arrivals, comportant les champs :
le champ Type pour définir le type de création et d’entrée des entités,
le champ Value pour définir la période de création des lots d’entité,
le champ Entities per Arrival pour définir le nombre d’entité par lot (taille des
lots) en entrée à chaque période de création),
le champ Max Arrivals qui détermine le nombre total de lots à créer,
le champ First Creation qui définit la date de création du premier lot.
b) Dispose (issu du template Basic Process) : Un bloc Dispose permet de détruire des
entités. Ainsi, une entité entrant dans ce bloc est immédiatement détruite.
d) Seize (issus du template Advanced Process) : Une entité présente dans un bloc Seize ne
peut sortir de ce bloc que s’il existe un nombre suffisant de ressources disponibles (le
nombre et le type de ressources étant spécifiés dans le bloc) ; en attendant l’entité est
stockée (« patiente ») dans une file d’attente interne au bloc Seize. Le fait qu'une entité
sorte du bloc indique que les ressources, disponibles en nombre suffisant, sont « saisies »
(et donc plus disponibles).
L’ajout d’une ressource (par le bouton Add), crée automatiquement une nouvelle
ressource ; chaque ajout d’un nouveau type de ressource, donne lieu à une ligne
supplémentaire dan la liste Resources que l’on peut paramétrer :
le champ type indique le type de la ressource, parmi la liste des types créés,
le champ Resource Name permet de spécifier le nom de la nouvelle ressource,
le champ Quantity spécifie le nombre (minimum) de ressources disponibles.
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.
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é) :
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é) :
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. Les
attributs de ce bloc dont les suivants :
TP Simulation/ARENA – IIA4 2020/2021 7
le champ Variable permet de définir une variable et à quelle valeur elle est
associée. Cette valeur peut être une constante telle que « 1 » ou encore elle peut
restituer l’état courant d’une ressource déjà définie (les valeurs possibles sont : -
1=Idle ; -2=Busy ; -3=Inactive ; -4=Failed),
le champ Attribute qui représente les attributs,
h) Decide (issu du template Basic Process) : Un bloc Decide permet d’aiguiller un flux
d’entités vers différents blocs de destination, il comporte une entrée et plusieurs sorties.
L’aiguillage est réalisé, selon le contenu du champ Type, d’après un critère de type
condition, ou probabilité. 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
TP Simulation/ARENA – IIA4 2020/2021 9
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).
Remarque : Une fois les blocs placés, il faut les relier. Le lien se fait par le biais du
connecteur qui se trouve dans la barre d'outils ( ).
Les blocs décrits précédemment 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 tels
que le bloc Record et le bloc Static.
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)) ;
TP Simulation/ARENA – IIA4 2020/2021 10
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.c) 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 fonctionnel M et le temps de sortie du bloc fonctionnel N. Soient t N (i ) et t M (i) les
temps de sortie de l'entité n° i des blocs N et M respectivement (cf. schéma suivant).
TP Simulation/ARENA – IIA4 2020/2021 11
2.a) Lorsque le champ Type = Frequency et le champ Frequency Type = Value, le bloc
Statistic permet, à travers la variable NQ (abréviation de Number in Queue) - mise à jour
automatiquement par SIMAN, de disposer du nombre d’entités contenues dans une file
d'attente. Par exemple, en supposant défini une file d'attente intitulée Process 1.Queue, la
variable Statistic 3 (champ Name = Statistic 3) permet de connaître le nombre d’entités
présentes à chaque instant dans la file d’attente Process 1.Queue lorsque le champ
Expression = NQ(Process 1.Queue) (voir figure ci-dessous).
2.b) Lorsque le champ Type = Frequency et le champ Frequency Type = Value, le bloc
Statistic permet, à travers la variable NR (abréviation de Number of busy Resource units) -
mise à jour automatiquement par SIMAN, de disposer du taux d’occupation d’une
ressource. Par exemple, une machine constituée de n ressources permet le traitement en
parallèle de n pièces. Une ressource peut être occupée (busy), soit 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), la
variable Statistic 4 (champ Name = Statistic 4) permet de connaître le nombre de
ressources Resource 1 occupées au cours du temps (ce nombre pouvant être égal à 0, 1, 2
ou 3) lorsque le champ Expression =NR(Resource 1) (voir figure ci-dessous).
2.c) Le nom du fichier - ainsi que son répertoire si celui-ci est différent du répertoire
contenant l’application - dans lequel sont enregistrées les données issues d’un bloc Record
ou d’une variable SIMAN (NQ ou NR) est indiqué dans le champ Counter Output File ou
Tally Output File (selon que le bloc Record est relatif à un compteur ou un tally) ou Output
File (pour une variable SIMAN NQ ou NR). Le contenu du champ Type est respectivement
égal à Counter, Tally ou Frequency selon que les données sont issues d’un compteur, d’un
tally ou d’une variable SIMAN (NQ ou NR). Afin de disposer des données au format csv
(abréviation de comma-separated-value, « comma » signifiant virgule), il suffit de mettre
l’extension .csv au fichier de sauvegarde. Ce format est reconnu notamment par MatLab
(via la commande CSVREAD) et Excel. Au préalable, il faut indiquer que le fichier de
sauvegarde est au format texte ; pour cela cocher la case Write Statistics Output Files as
Text accessible via le menu Run/Setup/Run Control/Advanced.
Les blocs précédemment décrits, ont pour objectif de modéliser un système physique. La
collecte de résultats spécifiques à un système donné se fait en utilisant des blocs
supplémentaires. Quelques uns de ces blocs sont définit ci-dessous.
a) Le bloc COUNT, issu du template Blocks, permet de compter le nombre d'entités qui
transitent par ce bloc. Le bloc COUNT, dont le nom est spécifié dans le champ Counter ID,
est lié au bloc COUNTERS, issu du template Elements, à travers le champ Name, ce
TP Simulation/ARENA – IIA4 2020/2021 13
dernier permet de déclarer (définir) le (ou les différents) bloc(s) COUNT présent(s) dans la
partie modèle.
Le bloc TALLY11 est lié au bloc TALLIES, issu du template Elements, à travers le champ
Name, ce dernier permet de nommer le (ou les différents) bloc(s) TALLY utilisé(s) dans la
partie modèle. Voir plus bas en ce qui concerne un éventuel enregistrement des données.
Le bloc ASSIGN est lié au bloc ATTRIBUTES, issu du template Elements, à travers le
champ Name qui permet de nommer un attribut.
TP Simulation/ARENA – IIA4 2020/2021 14
Certains blocks n’apparaissent pas lors du lancement du logiciel, on peut donc les rajouter
comme suit :
Run
TP Simulation/ARENA – IIA4 2020/2021 15
Il est également possible de tester si le modèle est correct ou s’il existe des erreurs de
modélisation par l’option « Check Model » :
II. Illustration
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.
Les valeurs considérées sont telles qu'une (1) entité est créée toute les 2 unités de temps à
partir de l’instant 0, ceci une infinité de fois. Le bloc Delay force, donc, une entité à
séjourner 3 unités de temps dans le bloc.
Les blocs Project, Replicate sont issus du template Elements. Le bloc Project permet
notamment de donner un nom au projet (Premier exemple) et le nom du programmeur
(ISTIA), de manière analogue à l'entête d'un programme informatique. Le bloc Replicate
permet notamment de fixer le temps où se termine la simulation, ici égale à 10 unités de
temps (champ : Replication Length).
Les 2 fichiers - de type texte - générés par SIMAN-ARENA (accessibles à l'aide du menu
Run/SIMAN/View) sont listés ci-dessous.
TP1
Partie II
Dans la chaîne de production du produit fini PF1, nous maintenons les valeurs de la loi
normale (µ=6 min et σ= 2 min) pour la machine d’usinage.
L’entreprise décide maintenant de produire un deuxième type de produit fini PF2 fabriqué
à partir de la matière première MP2. Ce produit est réalisé en utilisant la même ligne de
fabrication. Cependant, les temps de traitement au niveau de la machine d’usinage suivent
pour ce produit une loi normale de paramètres µ=7 min et σ= 3 min. A l’entrée de la ligne
de fabrication, 35% des pièces sont de types 1 et 65% sont de type 2. Le temps entre deux
arrivées successives suit une loi exponentielle de moyenne 10 minutes.
A l’issue du contrôle qualité, on observe maintenant que 75% des pièces sont acceptées
(conformes aux exigences du client) et que 25% sont rejetées (Non conformes). Si les
deux types de pièces sont présentes au niveau d’une des deux machines (dans une file
d’attente), la priorité est donnée au traitement de la pièce de type PF1 par rapport à PF2.
Les variables : créez deux types de matrice : une matrice (2 lignes et 1 colonne) de
la moyenne µ (nommée Moyenne) et une matrice (2 lignes et 1 colonne) de l’écart
type σ (nommée Ecart type) en fonction du Jobtype. Cette création se fait à travers
le bloc Variables.
Les ressources : créez les deux machines USIN et CTRQ avec la gestion des files
d’attente correspondante.
Machine USIN: Lowest Attribute Value
Machine CTRQ : Lowest Attribute Value
Partie III
Afin de réduire les dépenses et les gaspillages, on décide de recycler les produits finis non
conformes ayant des non conformités retouchables (estimés à 15% de la production). Ces
derniers repassent alors par la machine USIN pour être réparées. Elles ne sont pas
prioritaires par rapport aux pièces normales.
Le temps de traitement au niveau de la machine d’usinage suit alors une loi normale de
paramètres µ et σ dépendant du type de la pièce (PF1/PF2) et de son état (normale ou
retouchée) dont les valeurs sont les suivantes :
µ σ
Type 1 Type 2 Type 1 Type 2
Pièce normale 6 7 2 3
Pièce refaite 3 4 1 1
TP2
I. Animation graphique
L'animation est un moyen très efficace de communication. D'un abord facile, notamment
pour les décideurs non nécessairement initiés aux aspects techniques, elle permet - sous
réserve bien sûr que les conditions de simulation soient crédibles - de mettre en avant les
phénomènes étudiés. Elle permet également lors de la conception du modèle de simulation
de vérifier son bon fonctionnement à travers une visualisation étape par étape du
cheminement des entités dans le modèle de simulation.
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 :
Connecteur
Notons que le mouvement des entités le long des connecteurs n'a pas d'impact sur le temps
de simulation (TNOW).
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.
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.
TP Simulation/ARENA – IIA4 2020/2021 22
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).
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.
Les objets de cette barre d'outils permettent l'ajout de dessins statiques, ou de texte :
TP Simulation/ARENA – IIA4 2020/2021 23
Le bloc "Expression" :
Ce bloc se configure comme le bloc "variable" précédemment expliqué mais au lieu des
entiers, il permet de saisir des expressions entières.
Le bloc "Statics" :
Ce bloc permet de paramétrer des variable et de les utiliser parla suite dans la configuration
des blocs utilisés.
Travail demandé
L’entreprise reçoit une commande de 60 pièces des deux types de produit fini.
1. Modéliser le fonctionnement de l’atelier sur ARENA sachant que l’alimentation en
pièces brutes au niveau de chacune des lignes se fait à 50% pour les pièces de type 1 et
50% par les pièces de type 2. (Nombre de réplications : 10, Longueur d’une
réplication : 1440 minutes).
2. Analyser les performances de cet atelier.
3. Déterminer la quantité de PF1 et PF2 à lancer sur chaque ligne de fabrication afin de
réduire le temps de production tout en assurant l’équilibrage des deux lignes.