Chapitre V μ Étude de la validité d’ORCA-FMS en simulation
3. Présentation de la simulation
3.2. Modèle de simulation utilisé
La cellule flexible du cas d’étude a été modélisée sous NetLogo en collaboration avec
Thé-rèse Bonte du laboratoire TEMPO, équipe PSI. Cette cellule est illustrée sur la figure 5.6.
Dans ce modèle, chaque entité (produit, ressource et nœud) est représentée par une tortue. Un
comportement peut être associé à chaque tortue et des informations peuvent être déposées au
niveau des nœuds. Chaque nœud décisionnel du cas d’étude contrôle deux aiguillages : un
premier où deux chemins convergent puis un second où le chemin diverge vers deux autres. Les décisions sont prises avant le premier aiguillage. Toutes les décisions sont prises par les
78
La topologie du réseau est représentée par des tortues « nœuds » reliées par des liens. Le
ré-seau est ainsi modélisé par un graphe dans lequel il est facile de calculer le plus court chemin (algorithme de Dijsktra).
Deux races (i.e. breed en Netlogo) de tortues sont utilisées dans cette modélisation :
des tortues dont la position est statique permettant de représenter les nœuds du réseau. Ces nœuds peuvent être de différents types μ les nœuds « intersection », les nœuds« ressource », les nœuds « de décision », les nœuds « chargement », les nœuds «
dé-chargement ».
des tortues qui évoluent sur le réseau représentant les navettes et les produits. Deux races de liens sont utilisées :
Les liens orientés qui lient les nœuds du réseau et représentent le système decon-voyage
Les liens bi-directionnels qui unissent une navette et un produit. Lorsque un produitest lancé dans le système il est lié à une navette par ce type de lien jusqu’à la fin de sa
fabrication.
Les produits terminés ou en attente sont représentés à côté du poste de chargement-déchargement. Les produits en cours de fabrication sont associés à la navette les transportant
pour plus de clarté. Lorsqu’un produit ne dispose d’aucune ressource pour effectuer sa
pro-chaine opération, il attend (en circulant) sur la boucle principale du convoyeur afin de ne pas bloquer les autres produits. Finalement la ressource 1 effectue à la fois l’entrée et la sortie des
produits dans le système.
Figure 5.6– Représentation Netlogo du cas d’étude
machine
broken machine
shuttle on a waiting loop loaded with a « L » product
shuttle on a machine blocked shuttle running shuttle
decision point position sensor
waiting products processed products loading unit unloading unit Produits terminés Produits en attente Chargement Déchargement Ressource Ressource en panne
Navette e atte te d’u e ressource
Navette sur une ressource Navette bloquée Navette en déplacement Capteur de position Nœud co ve ge t Poste de Chargement /déchargement
79 Fonctionnement général :
La simulation est à temps discrétisé. À chaque incrément de l’horloge, les tortues « navettes » qui sont susceptibles d’avancer et pour qui c’est physiquement possible (ie. l’espace
inter-navette et les priorités aux intersections sont respectés) avancent. La inter-navette réagit ensuite en
fonction de sa nouvelle position. Lorsqu’ une navette a besoin des champs de potentiel sur un nœud, celui-ci met à jour ses champs en fonction de ce qu’il reçoit des ressources. Ainsi les
champs ne sont calculés que si nécessaire.
Les algorithmes suivants présentent le fonctionnement général de différentes fonctions du simulateur.
Création du réseau ()
Lecture de la topologie du réseau
Lecture de la description des navettes (dimensions, vitesse) Lecture des produits, de leur date de lancement, de leur priorité
Go ()
Avancer_les_navettes
Avancer heure (tick en netlogo)
Avancer_les_navettes ()
Pour chaque navette (ask navette en netlogo)
calculer_prochaine_position_théorique (calcule la prochaine position théorique en fonction de sa vitesse indépendamment des autres navettes)
Pour chaque navette
regarder s’il y aura des collisions avec d’autres navettes Si oui :
Appliquer les règles de priorité et/ou règles de précédence et avancer_la_navette (navette prioritaire)
Si non
Avancer_la_navette (navette courante)
Avancer_la_navette (n)
Avancer s
Si navette sur nœud de chgt μ gere_chgt Si navette sur nœud de dechgt μ gere_dechgt Si navette sur nœud ressource μ gere_ressource Si navette sur nœud de décision μ gere_decision
Gere_chgt ()
Si t=heure de fin de chargement
La navette s’affecte au prochain produit (Création d’un lien navette/produit)
Calcul de la ressource de destination à l’aide des champs de potentiel
Calcul du chemin le plus court vers la prochaine destination
80
Si t=heure de fin de déchargement
Mettre le produit sur la navette en stock
Calculer la prochaine destination (nœud de parking ou nœud de chargement) Gere_ressource ()
Si t=heure de fin de l’opération courante Si pas de prochaine opération
Prochaine destination = nœud de déchargement Si prochaine opération
Calcul de la ressource destination à l’aide des champs de potentiel Si prochaine ressource=ressource actuelle
Rester au même endroit
Sinon
Calcul du chemin le plus court vers la prochaine destination
Gere_decision ()
Si destination != nœud de déchargement
Calcul de la ressource destination à l’aide des champs de potentiel
Calcul de la ressource destination à l’aide des champs de potentiel ()
Calculer les champs émis par les différentes ressources (selon le mode de calcul actif) Choisir la ressource qui émet le plus grand champ
Les données d’entrées (état des ressources, ordres de fabrication, etc.) et de sorties (état des
indicateurs, logs, etc.) sont lues/écrites dans des fichiers textes pour faciliter les interactions
(imports/exports de données) avec d’autres composants logiciels (optimiseur, traceur de
GANTT, etc.).
Les simulations présentées dans ce chapitre ont été lancées en vitesse accélérée dans NetLogo et les résultats ont été obtenus en moins de 5 secondes.