Vous êtes sur la page 1sur 35

Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Executive Master of Engineering


GENERALISTE

Système des Systèmes


System of Systems –SoS
Chapitre 5 : Travaux dirigés – Modélisation d’un système de production en utilisant
les évènements discrets

Enseignant : Moncef HAMMADI – Maître de conférences-HDR, ISAE- ISM-Supméca – Paris


Email : moncef.hammadi@isae-supmeca.fr

Page 78
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Chapitre 5 : Travaux dirigés – Modélisation d’un système de production en


utilisant les évènements discrets
Introduction
Notre objectif est de créer un modèle à événements discrets qui simule les processus de fabrication
et d’expédition d’un petit atelier. Les matières premières livrées au quai de réception sont stockées
jusqu'à ce que le traitement soit effectué sur la machine à commande numérique (CNC).
Phase 1. Création d'un modèle simple d’un atelier
Nous allons commencer par créer un modèle simple simulant l’arrivée des palettes à l’atelier, leur
stockage sur le quai d’expédition et leur arrivée à la zone des chariots élévateurs.
1. Créez un nouveau modèle. Dans l'assistant Model wizard, définissez le nom
du modèle : Job Shop et les unités de temps du modèle (Model time units :
minutes).
2. Ouvrez la palette de présentation (Presentation). La palette comporte
plusieurs formes que vous pouvez utiliser pour dessiner une animation de
modèle, notamment un rectangle, une ligne, un ovale, une polyligne et une
courbe.
3. Dans la palette Presentation, sélectionnez la forme de l'image, puis faites-la
glisser dans le diagramme principal. Vous pouvez utiliser la forme d'image
pour ajouter des images dans plusieurs formats graphiques, notamment PNG,
JPEG, GIF et BMP, à votre présentation.
4. La boîte de dialogue qui vous invite à choisir le fichier image que la forme affichera apparaît.
5. Accédez à l'emplacement du dossier contenant les fichiers associés à ce cours et sélectionnez
l’image layout.png. Notre diagramme du type d’agent principal devrait ressembler à l’image
suivante :

Page 79
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

AnyLogic ajoute l’image dans sa taille originale au diagramme principal, mais vous pouvez
également modifier la largeur ou la longueur de l’image. Si vous déformez les proportions de
l’image vous pouvez revenir à la taille originale de l’image en ouvrant la vue Propriétés
(Properties ) et en cliquant sur Rétablir la taille originale (Reset to original size).
6. Sélectionnez l'image dans l'éditeur graphique. Dans la vue Propriétés (Properties ), cochez la
case Verrouiller (Lock) pour verrouiller l'image.
Verrouillage des formes :
• Vous pouvez verrouiller une forme pour vous assurer qu’elle ne répond pas au clic de votre
souris et que vous ne pouvez pas la sélectionner dans l’éditeur graphique. Vous trouverez cela
très utile lorsque vous dessinez des formes au-dessus de dispositions représentant des
installations telles que des usines ou des hôpitaux.
• Si vous devez déverrouiller une forme, cliquez avec le bouton droit de la souris dans l'éditeur
graphique et sélectionnez Déverrouiller toutes les formes (Unlock All Shapes) dans le menu.
Eléments de balisage
Notre prochaine étape consiste à utiliser la palette Balisage d'espace pour placer des formes de
marquage d'espace au-dessus de la présentation de l'atelier. La palette comprend un élément
Chemin (Path), trois éléments Nœud (Node), un élément Attracteur (Attractor) et des formes de
rayonnage à palettes.
Créer un réseau :
Les chemins et les nœuds sont des éléments de balisage d'espace qui définissent les emplacements
des agents :
• Un nœud (Node) est un endroit où les agents peuvent résider ou effectuer une opération.
• Un chemin (Path) est un itinéraire que les agents peuvent utiliser pour se déplacer entre les
nœuds.
Ensemble, les nœuds et les chemins constituent un réseau que les agents d’un modèle peuvent
utiliser pour se déplacer sur les chemins les plus courts entre leurs nœuds d’origine et de
destination. Vous créez généralement un réseau lorsque les processus de votre modèle ont lieu dans
un espace physique défini et que des agents et des ressources sont en mouvement. On suppose que
les segments de réseau ont une capacité illimitée et que les agents n'interfèrent pas les uns avec les
autres.
Maintenant que vous connaissez un peu les réseaux et leurs composants, nous sommes prêts à
créer un réseau qui définira les chemins de déplacement des palettes de notre modèle. La

Page 80
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

première étape consiste à utiliser des nœuds rectangulaires pour définir des zones spécifiques sur
la présentation de l’atelier.
7. Ouvrez la palette Space Markup et faites glisser l'élément Nœud rectangulaire (Rectangular
Node) sur le diagramme principal (Main Diagram). Redimensionnez le noeud. Le nœud doit
ressembler à la figure ci-dessous.

8. Nommez le nœud créé receivingDock.


9. Dessinez un nœud pour définir l’emplacement où les agents du modèle gareront les chariots
élévateurs une fois ceux-ci inactifs ou si les agents n’en ont plus besoin pour mener à bien une
tâche. Utilisez un autre nœud rectangulaire (Rectangular Node) pour tracer l'aire de
stationnement comme indiqué dans la figure ci-dessous, puis nommez ce nœud forkliftParking.

Nous allons tracer un chemin de mouvement pour guider les chariots élévateurs de notre
modèle.
10. Procédez comme suit pour tracer une trajectoire de mouvement qui guidera les chariots
élévateurs à fourche de notre modèle :
a. Dans la palette Space Markup, cliquez deux fois sur l'élément Path pour activer son mode
de dessin.
b. Dessinez le chemin d'accès comme indiqué dans la figure ci-dessous en cliquant sur la
bordure de receiverDock, en cliquant sur le diagramme pour ajouter le point de retournement
du chemin, puis en cliquant sur la bordure du noeud forkliftParking.

Page 81
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Si vous avez correctement connecté les nœuds, les points de connexion du chemin d’accès afficheront
des rehauts cyan chaque fois que vous sélectionnez le chemin.
Par défaut, les chemins dans AnyLogic 8 sont bidirectionnels. Toutefois, vous pouvez limiter le
mouvement le long d'une trajectoire sélectionnée dans une direction en effaçant la propriété
Bidirectional, puis en définissant la direction du mouvement. Vous pouvez afficher la direction d’un
chemin donné en le sélectionnant, puis en affichant la flèche de direction qui s’affiche dans l’éditeur
graphique.
11. Définissez le stockage de votre modèle en faisant glisser l’élément Pallet Rack de la palette
Space Markup sur la présentation et en plaçant son couloir sur le chemin. Un rack de palette
correctement placé affichera une surbrillance verte indiquant qu'il est connecté au réseau.

Porte-palette (Pallet rack)


L'élément de balisage d'espace pour les rayonnages à palettes représente graphiquement les rayonnages
à palettes que vous voyez souvent dans les magasins et les zones de stockage. Comme vous pouvez le
voir ci-dessous, l'élément a trois configurations alternatives

a) un rack, une allée b) un rack, deux allées c) deux racks, une allée

Page 82
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Pendant l'exécution, l'élément Pallet Rack gère les agents que le modèle stocke dans les cellules à un
ou plusieurs niveaux disponibles sur le(s) côté(s) de l'allée.
12. Dans la zone Properties (Propriétés) du rack à palettes, procédez comme suit :
a. Définissez le type (Type) sur : two racks, one aisle
b. Nombre de cellules (Number of cells) : 10
c. Niveau de hauteur (Level height) : 10
Dans la section Position and size :
d. Longueur (Length) : 160
e. Profondeur gauche du porte-palette (Left pallet rack depth) : 14
f. Profondeur droite du porte-palette (Right pallet rack depth) : 14
g. Largeur d'allée (Aisle width) : 11
13. Une fois ces modifications terminées, le rayonnage à palettes doit ressembler à celui illustré à la
figure ci-dessous. Si nécessaire, déplacez le rayonnage à palettes de sorte que son allée centrale repose
sur le chemin. Assurez-vous que le rayonnage à palettes est connecté au réseau en cliquant deux fois
dessus pour le sélectionner. Votre premier clic sélectionnera l'ensemble du réseau, et le second
sélectionnera le rack de palettes. Le rayonnage à palettes devrait afficher une surbrillance verte
indiquant qu'il est connecté au réseau.

Nous avons balisé l’espace de notre modèle en dessinant les emplacements et chemins importants au-
dessus de notre présentation. Nous allons maintenant utiliser la bibliothèque de modélisation de
processus d’AnyLogic (Process Modeling Library - PML) pour modéliser les processus.
Bibliothèque de modélisation de processus (PML)
Les blocs de la bibliothèque de modélisation de processus d’AnyLogic vous permettent d’utiliser des
combinaisons d’agents, de ressources et de processus pour créer des modèles centrés sur les processus
de systèmes réels. Vous avez entendu parler des agents et des ressources précédemment dans cette
section, et nous allons nous appuyer sur cette base en définissant les processus comme des séquences
d'opérations incluant des files d'attente, des retards et l'utilisation des ressources.
14. Faites glisser l'élément Source de la palette de la bibliothèque de modélisation de processus
sur le diagramme graphique et nommez le bloc sourcePallets. Alors que le bloc Source agit

Page 83
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

généralement comme un point de départ du processus, notre modèle l'utilisera pour générer des
palettes.
15. Dans la zone Properties du bloc sourcePallets, procédez comme suit pour vous assurer que
les palettes du modèle arrivent toutes les cinq minutes et apparaissent dans le nœud
receivingDock.
a. Dans la zone Arrivals defined by, cliquez sur Interarrival time.
b. Dans la zone Interarrival time, tapez 5 et sélectionnez minutes dans la liste de droite pour
que les palettes arrivent toutes les cinq minutes.
c. Dans la zone Location of arrival, cliquez sur Network/ GIS node dans la liste.
d. Dans la zone Node, cliquez sur receivingDock dans la liste.

Comment faire référence à des éléments de modèle à partir des paramètres du bloc :
Les paramètres du bloc offrent deux manières de sélectionner un élément graphique :
• Vous pouvez sélectionner un élément graphique dans la liste des éléments valides et
disponibles qui s'affiche à côté du paramètre.

• Vous pouvez sélectionner un élément graphique en cliquant sur le bouton de sélection


qui apparaît à côté de la liste. Si vous cliquez sur le bouton de sélection, vos choix seront limités aux
éléments disponibles et valides que vous pouvez sélectionner en cliquant dans l'éditeur graphique.
Continuez à construire le diagramme en ajoutant d'autres blocs de la bibliothèque de modélisation de
processus.

Page 84
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

16. Faites glisser le bloc RackStore de la palette de la bibliothèque de modélisation de processus


(Process Modeling Library) sur le diagramme et placez-le près du bloc sourcePallets afin
qu'ils soient automatiquement connectés, comme indiqué dans le diagramme ci-dessous.

Le bloc RackStore place les palettes dans les cellules d’un rack de palettes donné.
17. Dans la zone Propriétés du bloc rackStore, procédez comme suit :
a. Dans la zone Nom, tapez storeRawMaterial.
b. Dans la liste Pallet / Rack system, cliquez sur palletRack.
c. Dans la liste Emplacement de l'agent Agent Location (queue), cliquez sur receiveDock
pour spécifier l'emplacement où les agents attendent d'être stockés.

18. Ajoutez un bloc Delay pour simuler l'attente des palettes dans le rack, puis nommez le bloc
rawMaterialInStorage.
Vous avez probablement remarqué qu'AnyLogic connecte automatiquement le port droit du bloc
au port gauche du bloc suivant. Chaque bloc de la bibliothèque de modélisation de processus a un
port d'entrée gauche et un port de sortie droit, mais vous ne devez connecter que les ports d'entrée
aux ports de sortie.

19. Dans la zone Propriétés du bloc rawMaterialInStorage, procédez comme suit :


a. Dans la zone Delay time, tapez triangulaire(15, 20, 30) et sélectionnez minutes dans
la liste.

Page 85
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

b. Cochez la case Maximum capacity pour vous assurer que les agents ne resteront pas
bloqués dans l'attente de leur retrait du stockage.

20. Ajoutez un bloc RackPick, connectez-le au diagramme, puis nommez-le pickRawMaterial.


Dans notre modèle, le bloc RackPick supprime une palette d'une cellule du rack, puis la
déplace vers la destination spécifiée.

21. Dans la zone Properties du bloc pickRawMaterial, procédez comme suit :


a. Dans la liste Pallet rack / Rack system, cliquez sur palletRack pour sélectionner le
rack de palette qui fournira les palettes aux agents.
b. Dans la liste Node, cliquez sur forkliftParking pour spécifier où les agents doivent
garer les chariots élévateurs.

22. Ajouter un bloc Sink. Le bloc Sink supprime les agents et constitue généralement le point
final d'un organigramme.

23. Nous avons terminé la construction de ce modèle simple et vous pouvez maintenant
l’exécuter et observer son comportement. Exécuter le modèle (expérience Job Shop /
Simulation).

Page 86
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Si le message d'erreur Exception lors de l'exécution d'un événement discret s'affiche, vous
devez connecter votre rack de palettes au réseau. Vous devez sélectionner la forme du rack
dans l’éditeur graphique, la déplacer jusqu’à ce que son allée affiche une surbrillance verte
indiquant qu’elle est connectée au réseau, puis ré-exécuter le modèle.

Phase 2 : Ajout de ressources


Continuons à développer notre modèle en ajoutant des ressources de chariots élévateurs à fourche-
pour stocker les palettes dans le rayonnage puis les déplacer vers la zone de production.
Ressources :
Les ressources sont des objets que les agents utilisent pour effectuer une action donnée. Un agent doit
obtenir la ressource, effectuer l'action, puis libérer la ressource.
Voici quelques exemples de ressources :
• Médecins, infirmières, équipements et fauteuils roulants d’un modèle hospitalier
• les véhicules et les conteneurs d’un modèle de chaîne logistique
• Les chariots élévateurs et les ouvriers d’un modèle d’entrepôt
Il existe trois types de ressources : statique, mobile et portable.
• Les ressources statiques sont liées à un emplacement spécifique et ne peuvent pas être déplacées.
• Les ressources en mouvement peuvent être déplacées indépendamment.
• Les ressources portables peuvent être déplacées par des agents ou par des ressources déplacées.
Dans AnyLogic, le bloc ResourcePool de la bibliothèque Process Modeling définit chaque ensemble
ou groupe de ressources. Les unités de ressources peuvent avoir des attributs individuels et chaque
ressource possède un diagramme graphique dans lequel vous pouvez ajouter des éléments tels que des
tableaux de statistiques, des paramètres et des fonctions.
Les ressources de notre modèle sont les chariots élévateurs à fourche qui déplacent les palettes de la
zone de déchargement vers un rack, puis les acheminent des palettes du rack à la zone de production.
1. Dans la palette Process Modeling Library, faites glisser le bloc ResourcePool sur le diagramme
principal. Vous n'êtes pas obligé de connecter le bloc à l'organigramme.

Page 87
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

2. Nommez le bloc forklifts


3. Dans la zone Properties du bloc chariots élévateurs, cliquez sur le bouton create a custom
type. De cette façon, nous créons un nouveau type de ressource.

4. Dans l'assistant de création d'un nouvel agent :


a. Dans la zone Agent Type Name, tapez ForkliftTruck.
b. Cliquez sur Suivant (Next)

c. Sur la page suivante, dans la liste à gauche de l'Assistant, développez la zone


Warehouses and Container Terminals (Entrepôts et terminaux de conteneurs), puis
cliquez sur la figure d'animation en 3D Fork Lift Truck (Chariot élévateur à
fourche).

Page 88
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

d. Cliquez sur Finish.


Le diagramme de types d'agent ForkliftTruck s'ouvre et affiche la forme d'animation sélectionnée
dans l'assistant.
5. Cliquez sur l'onglet Main pour revenir au diagramme principal.

Vous verrez que le type de ressource ForkliftTruck a été sélectionné dans le paramètre New
ressource unit du bloc ResourcePool.

6. Modifiez les autres paramètres du type de ressource de forklifts :


a. Capacity : 5
b. Speed : 1 m/s
c. Home location (nodes) : forkliftParking

Nous avons défini nos ressources, mais nous devons toujours nous assurer que les blocs
d’organigrammes de notre modèle les utiliseront lors des processus de simulations.
7. Dans la zone Propriétés du bloc storeRawMaterial, procédez comme suit :
a. Cliquez sur la flèche pour développer la zone Ressources.
b. Cochez la case Use resources to move.
c. Dans la liste Resource sets (alternatives), sélectionnez forklifts pour vous assurer que
le bloc d’organigrammes utilise les ressources sélectionnées - dans notre cas, les
chariots élévateurs à fourche - pour déplacer les agents. Cliquez sur le bouton Plus, puis
sur forklifts dans la liste des ressources du modèle.

Page 89
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

d. Dans la zone Return home, sélectionner l’option if no other tasks pour assurer que
les chariots élévateurs à fourche retournent à leur domicile une fois leurs tâches
terminées.

8. Dans la zone Properties du bloc pickRawMaterial, procédez comme suit :


a. Cliquez sur la flèche pour développer la zone Ressources.
b. Cochez la case Use resources to move.
c. Dans la liste Resource sets (alternatives), cliquez sur forklifts pour vous assurer que
le bloc d'organigrammes utilise les chariots élévateurs à fourche pour déplacer les
agents.
d. Dans la zone Return home, cliquez sur if no other tasks pour vous assurer que les
chariots élévateurs à fourche retournent à leur domicile une fois leurs tâches terminées.

Page 90
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Si les ressources de notre modèle déplacent un agent, le bloc RackStore (ou RackPick) les saisit,
les transfère à l’emplacement de l’agent, s’attache à l’agent, le déplace dans la cellule, puis libère
les ressources.
9. Exécuter le modèle

Vous verrez les chariots élévateurs ramasser les palettes et les stocker dans le rayonnage à
palettes. Après un bref délai, ils déplacent les palettes vers la zone de stationnement du chariot
élévateur où les palettes disparaissent.
Phase 3. Créer une animation 3D
Présentation des objets de la caméra
Les objets de caméra d’AnyLogic vous permettent de définir la vue qui s’affiche dans la fenêtre 3D.
En substance, l’objet caméra "prend" la photo que vous voyez. Vous pouvez également créer plusieurs
objets de caméra pour afficher différentes zones d'une même scène 3D ou pour afficher un seul objet
sous différents points de vue. Si vous utilisez plusieurs objets de caméra, vous pouvez facilement
passer d'une vue à une autre lors de l'exécution.

Page 91
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

1. Dans la palette Présentation, faites glisser l'objet Camera sur le diagramme principal afin qu'il
soit en face de la présentation du magasin.
2. Faites glisser l'élément 3D window sur le diagramme principal, puis placez-le sous le
diagramme de processus.

Fenêtre 3D
En plus d'avoir la possibilité d'ajouter plusieurs caméras à votre modèle, vous pouvez
également ajouter plusieurs fenêtres 3D qui afficheront chacune la même scène 3D d'un point
de vue différent.
3. Laissez la caméra "prendre" la photo pour la fenêtre 3D. Dans la zone Properties de la fenêtre
3D, cliquez sur camera dans la liste Camera.
4. Empêchez la caméra de prendre une photo sous le plancher en sélectionnant l'option Limited
to Z above 0 dans la liste Navigation type.

5. Exécutez le modèle.
Lorsque vous créez une fenêtre 3D, AnyLogic ajoute une zone d'affichage qui vous permet de
naviguer facilement vers la vue 3D au moment de l'exécution. Pour basculer vers cette vue 3D,

cliquez sur le bouton Toggle developer panel dans la fenêtre de simulation, puis cliquez
sur [window3d].

Page 92
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

6. Effectuez une ou plusieurs des opérations suivantes pour naviguer en 3D au moment de


l’exécution :
• Pour déplacer la caméra vidéo vers la gauche, la droite, l'avant ou l'arrière, faites glisser la souris
dans la direction sélectionnée.
• Pour rapprocher ou éloigner la caméra du centre de la scène, tournez la molette de la souris.
• Pour faire pivoter la scène par rapport à la caméra, faites glisser la souris tout en maintenant les
touches ALT et le bouton gauche de la souris enfoncés.
7. Choisissez la vue que vous souhaitez afficher au moment de l'exécution, cliquez avec le
bouton droit de la souris sur la scène 3D, puis cliquez sur Copier l'emplacement de la caméra.

8. Fermez la fenêtre de simulation.


9. Dans la zone Properties de la caméra, appliquez l’emplacement de la caméra que vous avez
sélectionné à l’étape précédente en cliquant sur Paste coordinates from clipboard..

10. Exécutez le modèle pour afficher la vue 3D à partir de la nouvelle position de la caméra, puis
fermez la fenêtre de simulation.

Page 93
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

11. Développez la zone Space Markup de la palette Pedestrian, puis double-cliquez sur l'icône
de l'élément Wall (Mur) pour activer le mode de dessin sur le mur.

12. Procédez comme suit pour dessiner des murs autour de la zone de travail de la maquette
d’atelier :
a. Cliquez sur l'emplacement dans l'éditeur graphique où vous souhaitez commencer à
dessiner le mur.
b. Déplacez le pointeur dans n'importe quelle direction pour tracer une ligne droite, puis
cliquez à un point quelconque où vous souhaitez changer de direction.
c. Double-cliquez à l'endroit où vous souhaitez arrêter de dessiner le mur.

13. Procédez comme suit pour modifier la couleur et la texture de remplissage du mur :
a. Dans la zone Properties du mur, développez la section Apparence.
b. Dans le menu Couleur, cliquez sur Other colors.
c. Dans la boîte de dialogue Colors, sélectionnez la couleur que vous souhaitez appliquer
au mur à partir de la palette ou du spectre.
Vous pouvez également définir un niveau de transparence (utilisez le curseur Transparency dans la
boîte de dialogue Colors) ou personnaliser le mur avec toute texture fournie (cliquez sur l'élément
Textures dans le menu Couleurs).

Page 94
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Dans cette section, nous utilisons des murs pour décorer notre modèle, sachant que les murs peuvent
aussi être utilisés comme des obstacles.
14. Accédez à la section Position and size du mur et réglez la Z-Height sur 40. AnyLogic définit
automatiquement la hauteur de la forme sur 20 pixels pour lui donner du volume dans une vue
3D, mais nous avons maintenant augmenté sa hauteur à 40 pixels.
15. Tracez un autre mur entre les sorties, puis modifiez les paramètres dans la zone Properties du
deuxième mur afin de les adapter au premier.

16. Exécutez le modèle et visionnez l'animation 3D.


Vous constaterez que l’animation de notre modèle utilise des formes cylindriques pour
représenter les palettes, mais nous corrigeons le problème en créant un type d’agent définissant
une animation personnalisée pour les palettes.

17. Dans la zone Properties du bloc sourcePallets, sous la liste New agent, cliquez sur le lien
create a custom type.
18. Dans l'assistant de création d'un agent, procédez comme suit :
a. Dans le champ Agent type name, tapez Pallet.

Page 95
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

b. Cliquez sur Next.


c. Sur la page suivante de l'assistant, développez la section Warehouses and Container
Terminals dans la liste de gauche, puis cliquez sur la figure d’animation 3D Pallet.
d. Cliquez sur Finish.

AnyLogic crée le type d'agent Pallet et ouvre le diagramme Pallet qui affichera l'animation
sélectionnée dans l'assistant. Notre prochaine étape consistera à ajouter une animation de produit en
plus de l'animation de palette, mais nous allons d'abord agrandir la vue pour nous permettre de regarder
de plus près la palette.
19. A l'aide de la barre d'outils Zoom, agrandissez le diagramme de la Palette à 500%, puis déplacez
le canevas vers la droite et vers le bas pour afficher le point d'origine de l'axe et la forme
d'animation de la palette.

20. Procédez comme suit pour ajouter de l’animation de produit à l’animation de palette.
a. Dans la palette Objets 3D, développez la zone Boxes.
b. Faites glisser l’objet Box 1 Closed dans le coin supérieur gauche de la palette.

Page 96
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

21. Puisque cette boîte semble être trop grande par rapport à la palette, adapter l’échelle de la boîte
comme en figure ci-dessous.

22. Dans la zone Properties de la boîte, développez la section Position, puis remplacez la
coordonnée Z de la boîte par 2. Notre modification reflète le fait que nous souhaitons placer
des boîtes sur les palettes et que la hauteur de chaque palette est d’environ 2 pixels.
23. Ajoutez trois boîtes en copiant la première boîte trois fois. Pour copier la boîte, sélectionnez-
la, puis maintenez la touche CTRL enfoncée pendant que vous faites glisser la boîte.
Notre palette contient maintenant quatre boîtes fermées et vous pouvez maintenant redéfinir le
niveau de zoom sur 100% en cliquant sur le bouton Zoom to 100% de la barre d’outils.

24. Retournez au diagramme principal (Main).


Si vous ouvrez la zone Properties du bloc sourcePallets, vous verrez que Pallet est sélectionné
comme New agent. Ce bloc générera des agents du type Pallet.
25. Exécutez le modèle.
Vous verrez que les formes des palettes ont remplacé les cylindres multicolores. Toutefois, si
vous zoomez sur la scène 3D, vous remarquerez que les chariots élévateurs à fourche ne
transportent pas de palettes. Nous allons corriger ce problème en déplaçant l’animation de la
palette de notre modèle de manière à ce que les chariots élévateurs à fourche puissent prendre
les palettes.

26. Dans la vue des projets (Projects), double-cliquez sur le type d'agent ForkliftTruck pour ouvrir
son diagramme, puis déplacez la cellule forkliftWithWorker figure d'une cellule vers la droite.
La forme de l’animation est maintenant au bon endroit et les palettes de notre modèle sont
alignées sur les fourches des chariots élévateurs.

Page 97
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

27. Ouvrez le diagramme principal et, dans la zone Properties du rack, dans la zone Number of
levels, tapez 2.

28. Dans la zone Properties du bloc d'organigramme storeRawMaterial, définissez le paramètre


Elevation time per level sur 30 secondes.
29. Dans la zone Properties du bloc pickRawMaterial, définissez le paramètre Drop time per level
sur 30 secondes.
30. Exécutez le modèle et vous verrez un rack à palettes à deux niveaux.

Phase 4. Modélisation de la livraison de palettes par camions


Dans cette partie, nous allons ajouter les camions qui livrent les palettes à l'atelier. Commençons par
créer un type d’agent pour les représenter.
1. Dans la palette Bibliothèque de modélisation de processus, faites glisser l'élément Type d'agent
sur le diagramme principal.
2. Dans l'assistant de création d'un agent (New agent), procédez comme suit :
a. Dans la zone Agent type Name, tapez Truck.
b. Cliquez sur Next.
c. Sur la page suivante de l’assistant, développez la section Road transport dans la liste
sur la gauche, puis cliquez sur la figure d'animation 3D Truck.

Page 98
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

d. Cliquez sur Finish.


Ajoutons deux éléments supplémentaires à notre réseau : un nœud où les camions apparaîtront et le
chemin qu’ils suivront jusqu’au quai de réception.
3. Ouvrez le diagramme principal (Main).
4. Sous la palette Space Markup, cliquez sur l'élément Point Node et faites-le glisser vers
l'entrée de l'allée.

5. Nommez le noeud exitNode.


6. Dessine un chemin pour connecter l'exitNode au receiveDock

Assurez-vous que tous les éléments de marquage de l'espace se connectent au réseau.


7. Créez un autre diagramme de processus pour définir la logique de déplacement des chariots
élévateurs en connectant les blocs de la bibliothèque de modélisation de processus dans
l'ordre suivant :

Le bloc Source génère un camion.


 Le premier bloc MoveTo conduit le camion à l'entrée de l'atelier.
Les blocs de diagramme MoveTo déplacent les agents vers de nouveaux emplacements sur
le réseau. Si des ressources sont attachées à l'agent, elles vont suivre son chemin.
 Le bloc Delay simule le déchargement de la palette.
 Le deuxième bloc MoveTo éloigne le camion.
 Le bloc Sink supprime le camion du modèle.
8. Nommez le bloc source sourceDeliveryTrucks.
9. Dans la zone Properties du bloc sourceDeliveryTrucks, procédez comme suit pour qu'un
nouvel agent du type Truck (Camion) personnalisé arrive à l'entrée de l'allée une fois par heure
à une vitesse spécifique :
a. Dans la liste Arrivals defined by, cliquez sur Interarrival time.

Page 99
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

b. Dans la zone Interarrival time, tapez 1 et sélectionnez les heures (hours) dans la liste
de droite.
c. Dans la liste New agent, cliquez sur Truck.
d. Dans la liste Location of arrival, cliquez sur Network / GIS.
e. Dans la liste Node, cliquez sur exitNode.
f. Dans la zone Speed, tapez 40 et sélectionnez kilometers per hour dans la liste de
droite.

10. Nommez le premier bloque MoveTo drivingToDock.


11. Dans la zone Properties du bloc drivingToDock, dans la liste Node, cliquez sur receivingDock
pour définir la destination de l'agent.

12. Renommez le bloc Delay en unloading.


13. Dans la zone Properties du bloc de unloading, procédez comme suit :
a. Dans la zone Type, cliquez Until stopDelay() is called.
b. Dans la liste Agent location, cliquez sur receivingDock.

Page 100
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

La durée de l’opération dépend de la rapidité avec laquelle les palettes sont déchargées et enlevées par
des chariots élévateurs. Nous considérerons cette opération comme terminée lorsque le bloc
RackStore aura fini de stocker les palettes, et nous le modéliserons en modifiant le mode de
fonctionnement du bloc Delay.
Contrôler par programme le temps de retard :
En général, vous spécifierez un Delay time pour le bloc Delay. Il peut s'agir d'une durée fixe telle que
cinq minutes ou d'une expression stochastique produisant un temps de retard tel que triangular(1, 2,
6).
Vous pouvez également contrôler par programme la durée de l’opération et arrêter le retard si
nécessaire en appelant la fonction correspondante du bloc. Si vous devez arrêter d’attendre tous les
agents qui se trouvent dans le Delay, appelez la fonction du bloc stopDelayForAll(). Une autre
fonction, stopDelay(agent), met fin à l'opération et libère l'agent spécifié.
14. Nommez le deuxième block MoveTo drivingToExit.
15. Dans le bloc drivingToExit. Dans la liste Node de la zone Properties, cliquez sur exitNode
pour définir le nœud de destination.

Les deux blocs Source de notre modèle génèrent deux types d’agent : les camions (trucks) qui
apparaissent toutes les heures et les palettes (pallet) qui sont générées toutes les cinq minutes.
Comme nous voulons que les palettes apparaissent lors du déchargement du camion, nous
allons modifier le mode d'arrivée du bloc Source qui les génère.
Génération de l'agent de contrôle :

Page 101
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Vous pouvez faire en sorte que le bloc Source génère des agents à des intervalles définis en
définissant le paramètre du bloc Arrivals defined by sur Calls of inject() function. Vous
pourrez contrôler la création de l'agent au moment de l'exécution en appelant la fonction du
bloc inject(int n). Cette fonction génère le nombre donné d'agents au moment de l'appel. Vous
définissez le nombre d'agents que le bloc va générer à l'aide d'un argument de fonction tel que
sourcePalltets.inject (12) ;
16. Dans la zone Properties du bloc sourcePallets, dans la liste Arrivals defined by, cliquez sur
la fonction Calls of inject() function.

17. Procédez comme suit pour que le bloc sourcePallets génère des palettes lorsqu'un camion
entre dans le bloc unloading:
a. Dans la zone Properties du bloc unloading, développez la section Actions.
b. Dans la zone On enter, tapez ce qui suit : sourcePallets.inject(16);
Cette fonction Java garantit que notre modèle génère 16 palettes à chaque fois qu'un
camion commence à décharger.

Maintenant que nous avons ajouté des camions à notre modèle, faisons en sorte que le premier
camion de livraison apparaisse au démarrage du modèle afin que nous n'ayons pas à attendre une
heure avant la fin du modèle.
18. Dans la zone Properties de l'agent principal (Main), développez la section Agent actions,
puis tapez la fonction Java suivante dans la zone On startup:
sourceDeliveryTrucks.inject(1);

Page 102
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Code de démarrage du modèle :


Le modèle du Startup code s’exécute à l’étape finale de l’initialisation du modèle après la
construction, la connexion et l’initialisation des blocs du modèle. C’est un emplacement pour
des activités supplémentaires d’initialisation et de démarrage, telles que des événements.
19. Dans la zone Properties du bloc storeRawMaterial, développez la section Actions et dans la
zone On exit, tapez ce qui suit :
if( self.queueSize() == 0 )
unloading.stopDelayForAll();
Dans cet exemple, self est un raccourci que nous utilisons pour faire référence au bloc
storeRawMaterial à partir de sa propre action.

20. Exécuter le modèle.


21. Si le camion est mal aligné comme indiqué dans la figure ci-dessous, procédez comme suit
pour le réparer.

a. Dans l'arborescence des projets, double-cliquez sur le type d'agent Truck pour ouvrir
son diagramme et afficher la figure de l'animation du camion.
b. Dans l’éditeur graphique, sélectionnez la forme du camion, puis utilisez la poignée
ronde ou la propriété Rotation Z, ° dans la zone Properties de la forme pour faire
pivoter le camion à -180 degrés.

Page 103
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Nous avons modifié la position du camion, mais nous devrons également modifier les paramètres par
défaut d’AnyLogic pour nous assurer que le programme ne le fera pas pivoter une seconde fois.
22. Procédez comme suit pour modifier le paramètre par défaut d’AnyLogic:
a. Dans la zone Projects, cliquez sur Truck.
b. Dans la zone Properties du type d’agent Truck, cliquez sur la flèche pour développer
la zone Movement.
c. Décochez la case Rotate animation towards movement.

23. Ouvrez le diagramme principal (Main).


24. Pour vous assurer que les palettes sont correctement positionnées dans le nœud de réseau
receivingDock., ouvrez la palette Space Markup et faites glisser un Attracteur (Attractor)
dans receivingDock. Laissez-le faire face à l'entrée.

Attracteurs dans les nœuds


Les attracteurs nous permettent de contrôler l'emplacement de l'agent dans un nœud.
• Si le nœud définit la destination vers laquelle nos agents se déplacent, les attracteurs
définissent les points cibles exacts à l'intérieur du nœud.
• Si le nœud définit l'emplacement en attente, les attracteurs définissent les points exacts où les
agents attendent à l'intérieur du nœud.
Les attracteurs définissent également l'orientation de l'animation de l'agent pendant que celui-
ci attend à l'intérieur du nœud. Ici, nous utilisons un attracteur dans ce but particulier.
Vous pouvez ajouter des attracteurs en les faisant glisser individuellement dans le diagramme
principal (Main). Toutefois, si les attracteurs forment une structure régulière, vous devez
utiliser l'assistant spécial pour ajouter plusieurs attracteurs en même temps. L’assistant propose

Page 104
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

différents modes de création, ainsi que l’option pour effacer tous les attracteurs. Vous pouvez
l’afficher en cliquant sur le bouton Attracteurs (Attractors) dans la zone Properties du nœud.
25. Exécutez le modèle pour vérifier le comportement du camion.
L'animation devrait fonctionner comme prévu.

Phase 5. Modélisation de machines CNC


Dans cette partie, nous allons simuler les machines CNC qui traitent des matières premières. Nous
allons commencer par marquer l’espace et utiliser des nœuds de points pour définir les emplacements
des machines à commande numérique.
1. Dans la palette Space Markup, faites glisser l'élément Point Node sur la présentation du
magasin et nommez-le nodeCNC1.
2. Copiez ce nœud pour marquer l’espace réservé à la deuxième machine CNC.
AnyLogic nommera le deuxième nœud nodeCNC2.

nodeCNC1

nodeCNC2

Nous devrons créer des chemins pour connecter ces deux nœuds à notre réseau. Les chariots
élévateurs de notre modèle en auront besoin pour atteindre les machines à commande
numérique.

Page 105
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

3. Dans la palette Space Markup, cliquez sur l'élément Path et tracez les tracés comme illustré
dans la figure ci-dessous. Pour connecter un chemin à un nœud de point, cliquez sur le centre
du nœud de point.
REMARQUE : Assurez-vous que les chemins que vous tracez connectent les nœudsCNC1 et
nodeCNC2 au réseau. Vous pouvez tester la connexion d’un chemin en cliquant deux fois pour
la sélectionner. Si le chemin est connecté au réseau, des points forts cyan apparaissent autour
de ses extrémités.

Une machine à commande numérique est une unité de ressources. Nous l’ajouterons à notre
modèle en créant un type de ressource et en utilisant le bloc ResourcePool pour définir le pool
de ressources.
4. Dans la palette Process Modeling Library, cliquez et faites glisser le bloc ResourcePool sur
le diagramme principal (Main).
5. Dans la zone Properties du bloc ResourcePool, procédez comme suit :
a. Dans la zone Nom, tapez cnc.
b. Dans la liste Ressource type, cliquez sur Static pour indiquer qu'il s'agit d'une
ressource statique.

Avec notre pool de ressources complet, nous sommes prêts à créer un nouveau type de ressource.
6. Sous la liste New resource unit, cliquez sur le lien create a custom type.

Page 106
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

7. Dans l'assistant de création d'un agent, procédez comme suit :


a. Dans la zone Agent type name, tapez CNC.
b. Cliquez sur Next.
c. Sur la page suivante de l'assistant, développez la dernière section (CNC Machines) et
sélectionnez CNC Vertical Machining Center 2 State 1.
d. Cliquez sur Finish.
8. Fermez le diagramme du nouveau type de CNC et revenez au diagramme principal (Main).
9. Dans la zone Properties du bloc cnc ResourcePool, procédez comme suit pour placer les deux
machines CNC de notre modèle aux emplacements définis par nos nœuds de points, nodeCNC1
et nodeCNC2.
a. Dans la liste Capacity defined, cliquez sur By home location.
L'option By home location définit le nombre de ressources comme étant égal au
nombre de nœuds d'emplacement d'accueil que vous avez définis pour ce pool de
ressources.
b. Cliquez sur le bouton plus (+), puis ajoutez nodeCNC1 et nodeCNC2 dans la liste Home
location (nodes).
Après avoir ajouté les nœuds, la liste devrait ressembler à la figure ci-dessous.

Nous sommes prêts à modifier l’organigramme utilisé par notre modèle pour définir le comportement
des palettes en ajoutant un bloc Seize qui saisira une machine à commande numérique. Plus tard, un
bloc Delay simulera le traitement des matières premières par une machine CNC et un bloc Release
libérera une machine CNC afin qu’elle puisse traiter la matière première de la palette suivante.

Page 107
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

REMARQUE : N'oubliez pas que l'organigramme de notre modèle comporte déjà un bloc
pickRawMaterial qui simule la ressource en mouvement (les chariots élévateurs à fourche) qui
achemine des palettes vers la machine CNC.
10. Dans l’organigramme qui définit le comportement des palettes, faites glisser les blocs
pickRawMaterial et sink vers la droite pour laisser de la place pour un nouveau bloc.
11. Dans la palette Process Modeling Library, faites glisser le bloc Seize et insérez-le dans
l’organigramme des palettes après le bloc rawMaterialinStorage.

12. Dans la zone Properties du bloc Seize, procédez comme suit :


a. Dans la zone Name, tapez seizeCNC.
b. Sous l'option Resource sets, cliquez sur le bouton plus (+), puis sur cnc.
Cette étape permet de s’assurer que le bloc Seize saisira une ressource du pool cnc.
13. Dans la zone Properties du bloc d’organigrammes pickRawMaterial, procédez comme suit :
a. Dans la liste Destination is, cliquez sur : Seized resource unit.
b. Dans la liste Resource, cliquez sur cnc.
Ce bloc simule la manière dont les palettes sont transportées vers la machine CNC saisie plutôt que
vers la zone de stationnement des chariots élévateurs.
14. Procédez comme suit pour simuler le traitement des matières premières par la machine CNC :
a. Ajoutez un bloc Delay, placez-le immédiatement après pickRawMaterial et nommez-
le processing.

15. Dans la zone Properties du bloc Delay, procédez comme suit :


a. Dans la zone Delay, tapez triangular(2, 3, 4) et sélectionnez minutes dans la liste de
droite.
b. Cochez la case Maximum capacity pour permettre aux machines de traiter plusieurs
palettes.

Page 108
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Chaque agent qui arrive au bloc Delay doit avoir l’une des deux machines à commande numérique de
notre modèle.
16. Dans la palette Process Modeling Library, faites glisser le bloc de libération (Release) sur
l’organigramme des palettes et placez-le après le bloc processing.
17. Nommez ce bloc releaseCNC.

Si vous exécutez le modèle, vous verrez que, lorsque les processus sont simulés correctement,
l’animation 3D dessine une palette au milieu de la forme de la machine CNC. Cela se produit
lorsque la machine CNC, la palette qu’elle traite et l’emplacement de l’animation utilisent tous
le même nœud de point. Pour résoudre le problème, nous devrons déplacer la machine CNC
vers la droite et la faire pivoter pour faire face à la palette.

18. Dans la vue Projetcs, double-cliquez sur l'agent de type CNC pour ouvrir son diagramme.
19. Déplacez l'animation vers la droite et faites pivoter la forme de la machine CNC à l'aide de la
poignée ronde ou en définissant la propriété Rotation de la figure sur 90 degrés.

Nous sommes prêts à utiliser deux formes d’animation 3D similaires pour animer la machine
CNC: une forme représente la machine inactive et l’autre représente la machine lorsqu’elle
traite les matières premières. Nous définirons des valeurs dynamiques pour la propriété Visible
de chaque forme, ce qui permettra à notre modèle d’utiliser l’état de la machine CNC pour
déterminer quelle forme le modèle affichera au moment de l’exécution.
20. Procédez comme suit pour modifier le paramètre de visibilité de la forme d’animation CNC:
a. Sélectionnez la forme d'animation CNC.

b. Passez votre souris sur l'icône des paramètres statiques qui s'affiche en regard de
l'étiquette Visible et cliquez sur Dynamic value.

Page 109
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

L'icône devient une icône de propriétés dynamiques et une zone dans laquelle
vous pouvez définir les affichages d'expressions dynamiques. Vous pouvez utiliser la
zone pour entrer une expression Java qui renvoie une valeur true ou false.
c. Dans la boîte, tapez isBusy()
Cette fonction standard pour une ressource AnyLogic renvoie true lorsque la ressource
est occupée. Dans notre cas, la fonction affichera la forme de l'animation 3D lorsque la
machine CNC traite des matières premières.

Propriétés dynamiques :
Lorsque vous définissez une expression pour la valeur dynamique d'une propriété, notre
modèle réévalue l'expression sur chaque image d'animation au cours de l'exécution,
puis utilise la valeur résultante comme valeur actuelle de la propriété. En fournissant
des valeurs dynamiques pour la position, la hauteur, la largeur ou la couleur d’une
forme, les utilisateurs AnyLogic peuvent animer leurs modèles.
Si vous n'entrez pas de valeur dynamique, la propriété conserve la valeur statique par
défaut tout au long de la simulation.
Les blocs d’organigrammes peuvent avoir:

Paramètres statiques qui conservent la même valeur tout au long de la simulation


sauf si une fonction set_parameterName(new value) la modifie.

Propriétés dynamiques dont la valeur est réévaluée chaque fois qu'un nouvel agent
entre dans le bloc.

Les paramètres de code qui vous permettent de définir des actions à exécuter à
un moment clé du bloc d’organigramme, telles que l’action On enter ou On exit. Dans

Page 110
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

la plupart des cas, vous trouverez les paramètres de code dans la zone Properties du
bloc d’un diagramme, dans la section Actions.
• Le petit triangle situé sur l’icône de paramètre indique que vous pouvez cliquer sur
l’icône et basculer entre l’éditeur de valeur statique et le champ dans lequel vous pouvez
entrer l’expression dynamiquement réévaluée de la valeur.
21. Procédez comme suit pour ajouter une forme d'animation supplémentaire qui ne sera visible
que lorsque la machine CNC ne traite pas de matière brute.
a. Ouvrez la palette 3D objects contenant les objets 3D prêts à être utilisés par AnyLogic.
b. Développez la zone CNC machines et faites glisser la forme CNC Vertical
Machining Center 2 State 2 sur le diagramme de la CNC.
c. Faites pivoter la forme et placez-la directement sur la première figure d'animation.
d. Dans la zone Visible, passez à l’éditeur de valeurs dynamiques et tapez isIdle() en tant
qu’expression dynamique de la propriété Visible de la forme.

22. Développez la section People de la palette Objets 3D et faites glisser la forme Worker sur le
diagramme de la CNC.

23. Exécuter le modèle et observer le processus.


Vous verrez comment les chariots élévateurs transportent des palettes vers des machines à
commande numérique pour les traiter. Vous devriez également voir des machines CNC
animées, modifiant les formes 3D en fonction de leur état.

Page 111
Executive Master of Engineering - GENERALISTE Module: Système des Systèmes

Nous avons terminé notre modèle simple qui simule les processus de fabrication et d’expédition dans
un petit atelier. Vous avez maintenant une connaissance de base des ressources AnyLogic et de la
façon de les utiliser. Vous savez également comment utiliser un diagramme créé à partir de blocs de
la bibliothèque de modélisation de processus (Process Modeling Library) pour définir la logique de
processus.
Exercice : Comme exercice, on vous propose d’étendre le modèle précèdent pour modéliser la manière
dont les palettes contenant les pièces finies sont déplacées vers une autre zone de stockage sur le quai
d'expédition où elles resteront jusqu'à leur expédition. Vous avez déjà utilisé les blocs dont vous aurez
besoin pour modéliser cette partie du processus. Vous pouvez donc ajouter vous-même cette logique.

Page 112

Vous aimerez peut-être aussi