Simulation de processus Licence Pro de Mécanique

Transcription

Simulation de processus Licence Pro de Mécanique
Simulation de processus
Licence Pro de Mécanique - IUT de Saint-Étienne
Éléments et blocs usuels
Vincent Augusto
2006
1
Introduction
Beginning Time : Date de début d’une
réplication.
Replication Length : Durée d’une réplication, ici 500 UT.
Terminating Condition : Condition d’arrêt eventuelle de la simulation.
Ce document présente les principaux élements
et blocs utilisables dans Arena version 7.01. UT
signifie Unité de Temps, et doit être fixée par le
concepteur du modèle de simulation. Il en est de
même pour UD, qui signifie Unité de Distance. Un
terme en gras désigne une catégorie, et un terme
en italique désigne le paramètre d’une catégorie.
Un terme en petites capitales désigne un
élément ou un bloc.
2
2.2
Queues
Liste des files d’attente.
Éléments
2.1
Replicate
Paramétrage de la simulation.
Name : Nom donné à la file d’attente, ici
file machine.
Ranking Criterion : Règle de tri en vigueur dans la file d’attente (FIFO, LIFO,
Ordre croissant/décroissant selon un attribut).
Si LowValueFirst ou HighValueFirst est
sélectionné, préciser l’attribut sur lequel s’effectuera le tri dans Rule Expression.
2.3
Number of Replication : Nombre de réplications (exécutions de la simulation), ici
10.
Resources
Liste des ressources.
1
Name : Nom donné à la ressource, ici machine.
Integer or Sched ID : Capacité de la ressource, lorsque Capacity or Schedule est
à Capacity. Ici, la capacité est égale à 1.
d’occupation, etc., donnant lieu à des statistiques.
Il est également possible de définir des incidents sur la ressource en question, ainsi que des
notions de préemption.
2.4
Counter
Liste des compteurs.
Name : Nom donné à l’indicateur, ici tps
presence.
2.6
Attributes
Liste des attributs relatifs aux entités du
modèle : chaque entité possède un ou plusieurs
attributs qui lui sont propres.
Name : Nom donné au compteur, ici cpt
pieces.
Limit : Borne supérieure du compteur.
2.5
Tallies
Liste des indicateurs utilisés dans le modèle,
permettant de calculer temps de présence, taux
2
2.8
Name : Nom donné à l’attribut, ici n.
1-D Array Index : S’il s’agit d’un vecteur,
dimension du vecteur. S’il s’agit d’une matrice, nombre de lignes.
2-D Array Index : S’il s’agit d’une matrice, nombre de colonnes.
Initial Values : Valeurs initiales de l’attribut s’il y a lieu. Les valeurs sont données
colonne par colonne, une valeur par ligne
de texte.
Stations
Liste des blocs d’entrée des sous-modèles.
Exemple
On a définit ici un attribut nommé n, initialisé
à 2.
2.7
Variables
Name : Nom donné à la station, ici station machine.
Liste des variables, qui sont communes à
toutes les entités : il s’agit de paramètres globaux,
par opposition aux attributs qui prennent des valeurs relatives aux entités. Les paramètres sont
similaires à ceux des attributs.
2.9
Sequences
Succession de stations parcourues par une entité.
Exemple de paramétrage
On définit ici une variable matrice carrée m
de dimension 2 :
2
4
m=
1.6 7
Name : Nom donné à la séquence, ici sequence fabrication.
Station ID : Station à ajouter à la séquence,
déclarée dans l’élément Stations, ici station machine.
Il est possible d’accéder aux éléments de cette
matrice n’importe où dans le modèle grâce à la
variable m. Par exemple, m(1, 1) est égal à 2. Le
principe est identique pour une variable de dimension 1 (tableau de valeurs).
3
2.10
Distances
Identifier : Nom donné à la carte, ici carte.
Starting Station ID : Station de départ,
déclarée dans l’élément Stations, ici station machine1.
Ending Station ID : Station d’arrivée, déclarée dans l’élément Stations, ici station machine2.
Distance : Distance entre les deux stations,
en UD.
Liste des distance (carte) entre les stations du
modèle.
Tous les couples possibles de stations doivent
être déclarés ici en cas d’utilisation de transporteurs.
2.11
Transporters
Liste des transporteurs entre stations.
3
Name : Nom donné au transporteur, ici
transporteur.
Number of Units : Nombre d’unités pour
ce transporteur, ici 1.
Map ID : Carte (liste des distances), déclarée dans l’élément Distances, ici carte.
Velocity : Vitesse du transporteur, en UD
par UT.
Variables globales et attributs système
Un certain nombre de variables globales sont
définies dans Arena, permettant de connaı̂tre
l’état d’un élément quelconque du modèle :
– MR et NR sont utilisées pour connaı̂tre
l’état d’une ressource à un instant quelconque. Par exemple, MR(machine) renvoie
le nombre total d’unités de la ressource machine, et NR(machine) renvoie le nombre
4
d’unité occupées de cette même ressource.
– NQ permet de connaı̂tre l’état d’une file
d’attente. Par exemple, NQ(file machine)
renvoie le nombre de pièces dans la file d’attente file machine.
– NC permet de connaı̂tre la valeur d’un
compteur. Par exemple, NC(cpt pieces)
renvoie la valeur du compteur cpt pieces.
Mark Attribute : Permet d’affecter à un
attribut la date de création de l’entité courante.
Batch Size : Nombre d’entités à créer ; il est
ici possible de créer les entités par lots.
First Creation : Date de la première création d’entité.
Interval : Intervalle de temps entre deux
création, ici EXP O(5).
Maximum Batches : Nombre d’entités (ou
de lots d’entités) maximum à créer.
Il existe également un certain nombre d’attributs système prédéfinis, que chaque entité du
modèle possède. Ces attributs peuvent librement
être modifiés grâce à un bloc ASSIGN.
Il est possible de placer plusieurs blocs
Create dans un même modèle. De plus, le champ
Mark Attribute est également disponible dans
d’autres blocs, et possède toujours la même fonction.
– NS contient l’ID de la séquence suivie par
l’entité.
– IS contient l’ID de la station actuellement
parcourue par l’entité.
Enfin, un certain nombre de lois de probabilité
sont définies dans Arena, les plus usuelles étant :
–
–
–
–
la
la
la
la
loi
loi
loi
loi
4.2
Destruction d’entités. Il est possible de placer
plusieurs points de sortie dans un même modèle
ou dans plusieurs sous-modèles, bien qu’il soit
toujours possible de n’avoir qu’un seul bloc Dispose.
uniforme : UNIF(a,b).
exponentielle : EXPO(a).
normale : NORM(µ, σ).
triangulaire : TRIA(min,mod,max).
Un grand nombre de variables globales, attributs système et lois existent dans Arena. Le lecteur pourra se reporter à la documentation du
logiciel pour une liste plus exhaustive que celle
présentée ici.
4
4.3
Queue
File d’attente, permettant de stocker les entités dont le parcours a été interrompu. Cela arrive principalement lorsqu’une ressource est indisponible.
Blocs
4.1
Dispose
Create
Création d’entités.
Queue ID : File d’attente déclarée dans
l’élément Queues, ici file machine.
Capacity : Capacité maximale de la file
d’attente, ici 10.
5
4.5
Si une nouvelle entité arrive dans la file d’attente déjà pleine, celle-ci est redirigée vers le
deuxième sortie du bloc. Il est possible d’accéder
au nombre d’entités en attente dans la file n’importe où dans le modèle grâce à la commande
N Q(nom f ile).
4.4
Release
Libération de ressource(s).
Seize
Allocation de ressource(s).
Resource ID : Ressource à libérer, déclarée
dans l’élément Resources, ici machine.
Quantity to Release : Nombre d’unités de
la ressource à libérer, ici 1.
Lorsqu’une tâche est terminée, l’entité doit
libérer la ressource mobilisée.
4.6
Delay
Temps d’attente.
Priority : Permet de séparer deux demandes
de la même ressource en même temps s’il
existe plusieurs blocs Seize sur la même
ressource dans le modèle ; la plus petite
priorité est choisie.
Resource ID : Ressource à allouer, déclarée
dans l’élément Resources, ici machine.
Number of Units : Nombre d’unité de la
ressource à allouer, ici 1.
Une entité attend l’allocation dans une file
jusqu’à ce que la totalité des unités de ressource
demandées soit libres. Seule la première entité de
la file d’attente est candidate à l’allocation. Il est
possible d’accéder au nombre d’unités total d’une
ressource grâce à la commande M R(ressource),
et au nombre d’unités occupées d’une ressource
grâce à la commande N R(ressource).
Duration : Durée du temps d’attente, ici
T RIA(3, 4, 5).
6
4.7
Count
4.9
Compteur d’entités.
Branch
Branchement conditionnel ou probabiliste.
Counter ID : Nom du compteur, déclaré
dans l’élément Counters, ici cpt pieces.
Counter Increment : Valeur à additionner
au passage de chaque entité, généralement
1. Il peut s’agir de la valeur d’un attribut.
4.8
Tally
Réalisation de statistiques (mesure de minimum, maximum, moyenne et écart-type).
Max Number of Branches : Nombre maximal de sorties actives pour une entité.
Attention, cet argument vaut pour la
plupart du temps 1.
Branch Type : Type de sortie :
If : Condition de sortie.
With : Probabilité de sortie.
Else : Sortie par défaut.
Condition or Probability : Condition s’il
s’agit d’un If, probabilité sinon. Dans
l’exemple : If type piece == 1. Attention,
pour une égalité, ne pas oublier de doubler
le signe égal.
Tally ID : Nom de l’indicateur, déclaré dans
l’élément Tallies, ici tps presence.
Value : Valeur de l’indicateur. On peut mesurer plusieurs choses, par exemple :
– un intervalle de temps. On utilise alors le
mot-clef interval en précisant la date de
début de l’intervalle. Dans l’exemple, on
mesure le temps passé par l’entité dans le
système (on suppose date debut marqué
dans le bloc Create).
– l’état d’une variable globale.
Généralement, un bloc Branch comporte
toujours le même type de sortie, déterministe (If )
ou probabiliste (With).
Remarque
En ce qui concerne l’affectation d’une caractéristique en fonction d’une probabilité, les
deux exemples ci-dessous sont parfaitement
équivalents.
7
4.11
Group
Regroupement d’entités.
Utilisation d’un bloc Branch.
Utilisation d’un bloc Assign
et de la loi discrète.
En cas d’utilisation de la loi discrète, les probabilités doivent être additionnées.
4.10
Assign
Match Expression : Seules les entités qui
vérifient l’expression précisée ici seront regroupées.
Group Type : Nature du regroupement ;
généralement, le regroupement est temporaire.
Quantity to Group : Nombre d’entité à regrouper, ici 5.
Modification de la valeur d’un attribut ou
d’une variable.
4.12
Split
Séparation d’entités préalablement regroupées
Variable or Attribute : Nom de la variable ou de l’attribut déclaré dans l’élément
Variables ou Attributes.
Value : Valeur à attribuer. Il peut s’agir d’un
nombre, d’une fonction ou d’une autre variable ou d’un autre attribut.
Plusieurs attributs ou variables peuvent être
affectés dans le même bloc.
Le bloc restitue en sortie le nombre d’entités
qui étaient regroupées.
8
4.13
Station
4.15
Request
Appel d’un transporteur. Ce bloc est équivalent à l’association des blocs Allocate (allocation d’un transporteur sans l’appeller) et Move
(déplacement d’un transporter vers une station
sans allocation).
Point d’entrée d’un sous-modèle.
Beginning Station ID (...) : Station déclarée dans l’élément Stations, ici station machine.
On suppose ici que les blocs Station sont
toujours utilisés comme point d’entrée d’un sousmodèle.
4.14
Priority : Priorité de l’appel au transporteur, ici 1.
Transporter Unit : Nom du transporter
appelé, déclaré dans l’élément Transporters, ici transporter.
Entity Location : Station où se trouve l’entité, déclarée dans l’élément Stations, ici
station machine.
Route
Bloc de sortie/de transfert d’un sous-modèle.
L’entité est redirigée vers une autre station.
4.16
Free
Libération d’un transporteur.
Duration : Durée du transfert, ici 10.
Destination : Nom de la station de destination, ici station machine.
Si l’on a affecté à l’attribut système NS le
nom d’une séquence déclarée dans l’élément Sequences, et si l’on remplit le champ Destination du bloc Route avec la chaı̂ne SEQ, l’entité
est automatiquement redirigée vers la station suivante de sa séquence.
Transporter Unit : Nom du transporteur à
libérer, déclaré dans l’élément Transporters, ici transporteur.
Une fois libéré, le transporter reste dans la
station où il se trouve.
9