• Aucun résultat trouvé

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 de

con-voyage

Les liens bi-directionnels qui unissent une navette et un produit. Lorsque un produit

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