Vous êtes sur la page 1sur 38

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 6 : Travaux dirigés - Modélisation des piétons dans un aéroport

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


Email : moncef.hammadi@isae-supmeca.fr

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

Chapitre 6 : Travaux dirigés - Modélisation des piétons dans un aéroport


Introduction
La simulation de la circulation des piétons est un élément important de la construction, de l’agrandissement ou
de la restructuration d’installations telles que les centres commerciaux, les aéroports, les gares ferroviaires et
les stades. Ces analyses peuvent aider les architectes à améliorer leurs conceptions, les propriétaires
d’installations examinent les modifications éventuelles apportées à un bâtiment et les autorités civiles simulent
des itinéraires d’évacuation possibles. Les flux piétonniers pouvant être complexes, ils nécessitent une
simulation complète.
Les piétons suivent des règles de base déterminées par des études théoriques détaillées ; ils se déplacent
à des vitesses prédéterminées, évitent les espaces physiques tels que les murs et autres personnes, et
utilisent les informations relatives aux foules qui les entourent pour ajuster leur distance et leur vitesse.
Les résultats ont été prouvés à maintes reprises dans des études sur le terrain et des applications clients.
Vous pouvez créer des métriques telles que le temps de trajet total entre des points spécifiés et faire
varier vos simulations pour mettre en évidence ces métriques en période de congestion maximale.
Enfin, vous pouvez importer des dispositions d'arrière-plan, des plans d'étage et des cartes et créer
plusieurs vues 3D qui faciliteront la compréhension de votre analyse de flux piétonniers.
AnyLogic peut vous aider à résoudre ces problèmes de circulation piétonnière :
 Calcul du temps et du débit : Supposons que vous concevez un supermarché, un métro, une
gare ou un aéroport. Si votre objectif est de créer une présentation qui minimise le temps de
déplacement et assure que les flux piétonniers ne se gênent pas, une simulation AnyLogic peut
facilement tester des conditions de volume normales, spéciales ou de pointe.
 Analyse d'impact du trafic piétonnier : Les gestionnaires de zones très fréquentées telles que
les parcs de loisirs, les musées et les stades peuvent utiliser une simulation pour comprendre
comment des modifications, telles qu'un nouveau kiosque ou un panneau publicitaire déplacé,
affecteront leurs activités, la durée de leur parcours, et l'expérience client.
 Analyse d'évacuation : La fréquence accrue des catastrophes naturelles ou d'origine humaine
rend importante l'évaluation et l'optimisation des plans d'évacuation. La modélisation des
événements d'urgence peut aider les agences de gestion des urgences à élaborer des plans
d'évacuation efficaces permettant de sauver des vies.
Dans ce chapitre nous construisons un modèle simulant la manière dont les passagers se déplacent
dans un petit aéroport qui héberge deux compagnies aériennes, chacune avec son propre portail.
Les passagers arrivent à l'aéroport, s'enregistrent, passent le point de contrôle de sécurité puis se
rendent dans la zone d'attente. Après le début de l’embarquement, les représentants de chaque

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

compagnie aérienne vérifient les billets de leurs passagers avant de leur permettre de monter à
bord.
Nous allons utiliser une approche en six phases pour développer notre modèle. Dans la phase finale,
vous apprendrez à lire les données de vol de la base de données (disponibles dans un tableur
Microsoft Excel) et à configurer les piétons en leur affectant des informations de vol.
Phase 1. Définir le flux piétonnier simple
Au cours de notre première phase, nous utiliserons la bibliothèque pour piétons d’AnyLogic
(Pedestrian Library) pour créer un modèle simple d’aéroport où les passagers arrivent, puis se rendent
à la porte.
Bibliothèque des piétons :
 Les méthodes de modélisation traditionnelles telles que les événements discrets et la mise en
file d'attente risquent de ne pas bien fonctionner dans les zones très fréquentées par les piétons.
 La bibliothèque pour piétons d’AnyLogic simule les flux de piétons dans des environnements
«physiques» en vous permettant de créer des modèles de bâtiments et de zones avec un grand
nombre de piétons tels que des stations de métro, des points de contrôle de sécurité et des rues.
 Les piétons de votre modèle se déplacent dans un espace continu tout en réagissant les uns aux
autres. Cela vous permet de collecter des données sur la densité de piétons d'une zone donnée,
de garantir des niveaux de performance acceptables pour les points de service avec une charge
hypothétique, d'estimer la durée pendant laquelle les piétons resteront dans des zones
spécifiques et de détecter les problèmes potentiels causés par des modifications de l'intérieur,
telles que l'ajout ou la suppression d'obstacles.
Dans la plupart des cas, vous allez commencer à créer un modèle dynamique pour les piétons en
ajoutant la disposition du bâtiment simulé, puis en dessinant les murs par-dessus.
1. Créez un nouveau modèle et nommez-le Airport. Sélectionnez minutes comme unités de temps
du modèle.
2. Faites glisser une image de la palette de présentation (Presentation) sur le diagramme
principal.
3. Choisissez le fichier image que vous souhaitez afficher. Dans cet exemple, vous sélectionnerez
le fichier image terminal.png dans le dossier contenant les fichiers associés à ce cours.
4. Sur le diagramme principal, placez l’image dans le coin inférieur gauche du cadre bleu. Si
l'image est déformée, cliquez sur le bouton Reset to original size, puis cochez la case Lock
pour verrouiller la forme de l'image.

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

Nous allons maintenant utiliser un ensemble de formes de marquage d’espace de la palette


Pedestrian Library d’AnyLogic pour définir l’espace de notre modèle pour piétons. Vous
pouvez utiliser des formes de balisage d'espace pour dessiner des murs, des services
(emplacements tels que des tourniquets et des guichets où les piétons reçoivent des services) et
des zones d'attente.
Formes de marquage d'espace pour les modèles des piétons :

Nous allons utiliser des murs, des objets dans l’espace simulé de notre modèle que les piétons
ne peuvent pas traverser, pour créer notre modèle. En termes simples, nous sommes sur le point
d’utiliser les trois formes de balisage ci-dessous pour placer des «murs AnyLogic» au-dessus
des murs qui apparaissent dans notre image.

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

Les murs :
: Utilisez cette forme pour dessiner les murs extérieurs et intérieurs.
: Utilisez cette forme pour dessiner des zones rectangulaires telles que des
espaces de travail inaccessibles aux piétons.
: Utilisez cette forme pour dessiner des obstacles circulaires tels que des colonnes,
des piscines et des fontaines.
5. Utilisez la palette Pedestrian Library pour dessiner les murs de l’aéroport. Double-cliquez
sur l'élément Wall que vous trouverez dans la section Space Markup de la palette Pedestrian
Library, puis tracez le mur autour du bord de l'aéroport en cliquant avec votre souris chaque
fois que vous souhaitez ajouter un point. Lorsque vous êtes prêt à définir le point final du mur,
double-cliquez sur votre souris.
Changeons l’aspect de notre mur en choisissant une nouvelle couleur et une nouvelle hauteur.
6. Accédez aux propriétés du mur, puis sélectionnez Color: dodgerBlue dans la section
Apparence.
Maintenant que nous avons défini les murs du bâtiment et choisi leur couleur, nous allons
utiliser l’élément de balisage spécial Ligne (Line) cible pour garantir que les piétons de notre
modèle apparaissent à l’entrée de l’aéroport, puis se dirigent vers la porte.
Ligne cible (Target Line):
Dans un modèle de dynamique des piétons, l'élément Ligne cible définit les emplacements où les
piétons apparaissent dans l'espace simulé, où ils attendent (bien que ces zones définissent généralement
des emplacements d'attente) et leur destination.
7. Définissez l'emplacement où apparaissent les passagers de votre modèle en faisant glisser
l'élément Target Line de la palette Pedestrian Library sur le diagramme, comme illustré dans
la figure ci-dessous.

8. Nommez la ligne arrivalLine


9. Définissez une deuxième ligne cible vers laquelle les passagers se déplaceront après leur entrée
dans l'aéroport, placez-la dans la zone de la porte, comme indiqué dans la figure ci-dessous,
puis nommez-la gateLine1.

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

Les éléments de ligne cible et les formes de marquage de l'espace de votre modèle doivent se
trouver à l'intérieur des murs. Si l'une des formes de marquage d'espace de votre modèle touche
un mur, le message d'erreur «Exception during the discrete event execution: Unreachable
target…» peut s'afficher lors de l'exécution du modèle.
Nous avons marqué l’espace qui définit notre modèle piétonnier simple et nous allons maintenant
utiliser un organigramme pour définir la logique de processus du modèle.
Définition de la logique de flux piétonniers à l'aide de blocs d'organigrammes de la bibliothèque
Pedestrian Library :
Vous utiliserez un organigramme pour définir les processus qui se déroulent dans vos modèles de
dynamique piétonnière. Les piétons de votre modèle passent par un diagramme et effectuent les
opérations définies par les blocs.
Les blocs les plus importants de la bibliothèque piétonne sont :

: Ce bloc génère des piétons un peu comme le bloc Source qui génère des agents dans
un organigramme standard de la bibliothèque de modélisation de processus. Vous utiliserez
généralement ce bloc comme point de départ de votre flux de piétons.

: Ce bloc oblige les piétons à se rendre à une cible spécifiée.

: Ce bloc simule la manière dont les piétons reçoivent les services aux points de
service.

: Ce blocage oblige les piétons à attendre pendant un temps donné à un endroit spécifié.

: Ce bloc utilise des conditions spécifiées pour acheminer les piétons vers
plusieurs itinéraires ou processus.

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

: Ce bloc dispose des piétons et est généralement le point final du flux de piétons.
10. Commencez par faire glisser le bloc PedSource de la palette Pedestrian Library sur notre
diagramme principal (Main).

11. Puisque nous voulons que les passagers arrivent au hasard à un taux moyen de 100 passagers
par heure, accédez aux propriétés du bloc pedSource, puis tapez 100 dans la case Arrival rate.
12. Spécifiez l'emplacement où les passagers apparaissent dans le système simulé en cliquant sur
ArrivalLine dans la liste Target Line.

13. Ajoutez un bloc PedGoTo pour simuler le mouvement des piétons à l'emplacement spécifié,
puis connectez-le à pedSource. Puisque nous voulons que nos passagers se rendent à la porte,
nommez l'objet goToGate1.
Pour connecter les blocs, ajoutez un nouveau bloc de la palette au diagramme graphique et placez-
le près d'un autre bloc.

14. Spécifiez la destination du mouvement en sélectionnant gateLine1 dans la liste déroulante


Ligne cible.

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

15. Ajoutez un bloc PedSink pour éliminer les piétons entrants. Les organigrammes pour piétons
commencent généralement par un bloc PedSource et se terminent par un bloc PedSink. Votre
organigramme devrait ressembler à la figure ci-dessous.

16. Exécutez le modèle. Dans l'animation 2D, vous verrez les piétons se déplacer de l'entrée de
l'aéroport à la porte.

Phase 2. Dessin d'animation 3D


Ajoutons une animation 3D à notre modèle, en 3D éléments (3D window, camera) et un modèle 3D
de passager. Nous allons commencer par attribuer une forme d'animation 3D personnalisée au passager
(Pedestrian type).
Si vous souhaitez ajouter une animation 3D, des attributs personnalisés ou collecter des
statistiques pour les piétons, vous devez créer un type de piéton personnalisé.
1. Dans la palette Pedestrian Library, faites glisser l’élément Pedestrian Type sur le diagramme
principal.
2. Dans l’assistant New agent, entrez le nom du nouveau type de piéton Passenger puis cliquez
sur Next.

3. Sur la page Agent animation, sélectionnez le premier élément de la liste Général : Person,
puis cliquez sur Finish.

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

4. Une fois le diagramme Passenger ouvert, retournez au diagramme principal (Main).


5. Depuis la palette Presentation, faites glisser l’élément Camera sur le diagramme principal et
placez-la face au terminal.

6. Faites glisser la fenêtre 3D (3D Window) sur le diagramme principal et placez-la sous l'image
de la structure du terminal.

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

7. Ouvrez les propriétés de la fenêtre 3D, puis sélectionnez caméra dans la liste Caméra.

8. Nous voulons que notre bloc d'organigramme pedSource crée des piétons de notre type de
passager personnalisé. Ouvrez les propriétés pedSource, puis sélectionnez Passenger dans la
zone New pedestrian de la section Pedestrian.

9. Exécutez le modèle et vous verrez des piétons passer de l'entrée à la porte à l'intérieur du
bâtiment. Vous pouvez passer à une vue 3D sélectionnant [window3d].

10. Parcourez la scène pour obtenir la meilleure vue, cliquez avec le bouton droit à l'intérieur de
la scène 3D, puis cliquez sur Copy camera location.

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

11. Fermez la fenêtre de simulation, ouvrez les propriétés de la caméra, puis appliquez la caméra

optimale que vous avez sélectionnée à l'étape précédente en cliquant sur Paste coordinates

from clipboard
12. Exécutez le modèle une deuxième fois et affichez la vue 3D fournie par la nouvelle position de
la caméra.

Phase 3. Ajout de points de contrôle de sécurité


Dans cette troisième phase, nous allons commencer à modéliser les processus qui se déroulent à
l'intérieur de l'aéroport en ajoutant des points de contrôle de sécurité. Tous les points de contrôle de
sécurité sont des points de service.
Services dans les modèles piétons :
Dans les simulations de circulation des piétons, les services sont les objets, tels que les tourniquets, les
caisses, les guichets et les distributeurs de billets, où les piétons reçoivent des services.
Si un service est utilisé, les autres piétons feront la queue jusqu'à ce qu'il soit disponible.
Vous devrez suivre un processus en deux étapes pour définir les services que les piétons de votre
modèle utiliseront. La première de ces deux étapes consiste à utiliser les formes de balisage Service
with Lines et Service with Area pour dessiner les services de votre modèle de piéton.
• - Cette forme de balisage définit un service tel qu'un tourniquet ou une zone de
caisse où les piétons attendent en ligne jusqu'à ce que le service soit disponible.
• - Cette forme de balisage définit un service tel qu'une billetterie ou une banque avec
une file d'attente électronique où les piétons attendent dans une zone de bureau voisine jusqu'à ce que
le service soit disponible.
Après avoir dessiné les services de votre modèle, vous définirez la logique du flux piéton en ajoutant
le bloc PedService de la bibliothèque piétonne au diagramme.
Nous ajouterons cinq points de contrôle de sécurité, ce qui signifie que nous ajouterons cinq services
et cinq files d'attente individuelles pour chaque point de service.

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

1. Faites glisser l'élément Service with Lines de la palette Pedestrian Library sur la disposition
du terminal. Par défaut, un service aura deux points de service et deux lignes de file d'attente
qui mènent aux points de service.

2. Ouvrez la zone de propriétés Service With Lines, utilisez la zone Name pour nommer la forme
scpServices, dans ce cas, «scp» (security checkpoints) ce que signifie points de contrôle de
sécurité, puis changez l’option Type of service en Linear.

Une fois que vous avez changé le type de service d'un service de point à un service linéaire, les
formes de service changeront de points en lignes.
Services linéaires et ponctuels dans les modèles piétons :
Un service piéton peut être un service linéaire ou un service ponctuel.
• Dans un service linéaire comme un tourniquet, les piétons se déplacent continuellement du point de
départ de la ligne au point d'arrivée de la ligne.
• Dans un service ponctuel comme un guichet, les services aux piétons ont lieu à un point spécifique
où les piétons attendent le temps de retard donné.
Nous utilisons un service linéaire pour nous assurer que les passagers de notre modèle marchent le
long de la ligne de service et passent par le détecteur de métaux du contrôle de sécurité. Maintenant,

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

nous allons nous assurer que le point de service linéaire traverse verticalement le support d'espace qui
représente le détecteur de métaux.
3. Utilisez la poignée ronde au-dessus du centre de la forme pour faire pivoter le service.

4. Déplacez le service de manière à ce que le premier service linéaire traverse le rectangle qui
représente le cadre du détecteur de métaux.

Comment déplacer des éléments en ignorant la grille :


Si vous souhaitez déplacer un élément sans l'aligner automatiquement sur la grille, maintenez la touche
ALT enfoncée tout en déplaçant l'élément ou utilisez le bouton Activer / Désactiver la grille de la barre

d'outils pour désactiver la grille.


Formes de balisage d'espace complexes
Les formes de balisage d'espace complexes sont constituées de plusieurs formes de composants. Par
exemple, la forme Service avec lignes est composée de formes de balisage d'espace Service et Ligne
de file d'attente, tandis que la forme Service avec zone est composée des formes Service et de la zone

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

polygonale. Vous devrez prêter une attention particulière à ces règles lorsque vous travaillez avec des
formes de balisage d'espace complexes :
• Votre premier clic sélectionnera la forme de balisage d'espace complexe complet (Service avec
lignes).
• Après avoir sélectionné la forme de balisage d'espace complexe, vous pouvez cliquer sur n'importe
quelle forme de composant pour la sélectionner (Ligne de service ou de file d'attente).
5. Sélectionnez la prochaine ligne de service

6. Placez avec précision la ligne de service au-dessus du deuxième espace réservé du point de
contrôle de sécurité, puis ajustez l'emplacement de la file d'attente.

7. Accédez aux propriétés de la forme Service avec lignes, puis définissez le nombre de services
(Number of services) et le nombre de lignes (N of queues) sur 5.
8. Si nécessaire, ajustez les nouvelles lignes de service et de file d'attente. Une fois cette étape
terminée, les formes de service doivent ressembler à celles de la figure ci-dessous.

Maintenant que nous avons dessiné les services, nous allons les ajouter à la logique de notre modèle.
Nous utiliserons un bloc spécial Bibliothèque pour piétons (Pedestrian Library) nommé PedService
pour simuler la façon dont les passagers se déplacent dans nos services de contrôle de sécurité.

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

9. Ajoutez le bloc PedService à l'organigramme entre les blocs PedSource et PedGoTo pour que
les piétons passent par le service que nous avons défini à l'aide de la forme Service avec lignes
référencée, puis nommez-le securityCheck.

10. Accédez aux propriétés du bloc securityCheck. Sélectionnez les services scpServices en tant
que Services.
11. Étant donné que nous supposons qu'il faut entre 1 à 2 minutes pour passer par le point de
contrôle de sécurité, tapez uniform(1, 2) minutes comme délai (Delay time).

12. Ajoutons maintenant des modèles 3D des points de contrôle de sécurité. À l'aide de la palette
d'objets 3D (3D Objects), des éléments détecteur de métaux (Metal Detector) et Scanner
XRay (XRay Scanner) de la section Aéroport (Airport), dessinez cinq points de contrôle de
sécurité. Vous verrez la boîte de message, vous invitant à modifier l'échelle de l'objet 3D.
Sélectionnez l'option Ne plus me demander (Do not ask me again) et cliquez sur OK.

13. Exécutez le modèle. Vous verrez que les passagers sont désormais scannés aux points de
contrôle de sécurité.

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

Phase 4. Ajout d'installations d'enregistrement


Nous sommes prêts à simuler les installations d'enregistrement de l'aéroport d'une manière qui
représente les différentes façons dont les passagers peuvent s'enregistrer pour leur vol.
1. Dessinez des lieux d'enregistrement avec une autre forme Service with Lines . Cette fois, nous
aurons besoin de quatre points de service et d'une file d'attente.
2. Nommez les services checkInServices.

3. Placez la forme à l'emplacement indiqué dans la figure ci-dessous. Pour que la ligne ressemble
à ce que vous voyez sur la figure, déplacez la ligne à l'emplacement requis, puis placez le point
final où la ligne commence à tourner.
Ajoutez plus de points saillants à la ligne. Cliquez avec le bouton droit sur la ligne de file
d'attente et choisissez Add points dans le menu contextuel. Ajoutez plus de points en cliquant
à l'endroit où vous souhaitez placer les points saillants de la ligne. Terminez de dessiner la ligne
en double-cliquant.
Ci-dessous les étapes pour construire la ligne d’attente.

   
4. Dans les propriétés de checkInServices, définissez le Type de file d'attente sur Serpentine.
Utilisez cette option pour simuler des files d'attente serpentines (également appelées "zigzag").

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

Vous verrez que la file d'attente a des bordures maintenant. Dans l'animation 3D, ils
apparaîtront comme des barrières de ceinture.

5. Ajoutez un autre bloc PedService et nommez-le checkInAtCounter.

6. Dans les propriétés du bloc, sélectionnez la forme de balisage d'espace checkInServices pour
l’option Services.
7. Dans la mesure où nous supposons qu'il faut entre 2 et 4 minutes pour s'enregistrer, tapez
uniform(2, 4) minutes pour l’option.

8. Ajoutez le bloc PedSelectOutput pour acheminer les passagers vers différentes branches de
l'organigramme.
9. Connectez le bloc checkInAtCounter aux blocs d'organigramme existants, comme illustré dans
la figure ci-dessous.

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

Comment dessiner des connecteurs


Les blocs de l'organigramme de votre modèle se connectent automatiquement lorsque vous les
placez les uns à côté des autres, mais vous pouvez également utiliser un connecteur pour
connecter manuellement les blocs. Pour dessiner un connecteur, double-cliquez sur le port du
premier bloc, puis cliquez sur le port d'un autre bloc. Si vous devez ajouter un angle dans la
ligne de connexion, ajoutez-le en un clic.
Après avoir dessiné le connecteur, vous pouvez ajouter des points de retournement en double-
cliquant sur le connecteur et en faisant glisser les points qui apparaissent. Pour supprimer un
point, double-cliquez dessus.
10. Étant donné que nous supposons que 30% de nos passagers s'enregistreront en ligne et 70%
s'enregistreront au comptoir, nous modéliserons ce comportement en définissant la Probabilité
1 de pedSelectOutput sur 0.3 et la Probabilité 2 : 0.7. Cette action acheminera 30% des
passagers vers la branche supérieure de l'organigramme et 70% des passagers vers la branche
inférieure. Vous devez définir Probabilité 3, Probabilité 4 et Probabilité 5 sur 0 pour
empêcher AnyLogic d'acheminer les passagers vers les trois ports de sortie inférieurs du bloc.

11. Ajoutons des modèles 3D prêts à l'emploi à la zone d'enregistrement de l'aéroport. Sous l'onglet
Objets 3D de la palette, développez la section People, puis ajoutez deux copies d'Office Worker
et de Woman 2 au diagramme.

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

12. Définissez la zone non accessible aux passagers. Ajoutez l'élément Rectangular Wall dans la
section Space markup de la palette Pedestrian Library et placez-le comme indiqué dans la
figure ci-dessous. Dans les propriétés du mur, définissez Visible sur no pour rendre ce mur
invisible lors de l'exécution du modèle.

13. Dans l'onglet Objets 3D (3D Objects) de la palette, sélectionnez la section Office, puis faites
glisser quatre copies de l'objet Table sur le diagramme. Étant donné que les tableaux ne sont
pas orientés dans la bonne direction, utilisez la zone Position de leur section Propriétés pour
définir la Rotation, Z: 90 degrés.

14. Exécutez le modèle. Vous verrez des passagers s'enregistrer et passer par le détecteur de
métaux.

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

Nous voulons que les passagers attendent avant d'aller à la porte d'embarquement. Pour ce faire, nous
devons dessiner la zone d'attente où les passagers attendront, puis ajouter un bloc de diagramme
(PedWait) pour simuler l'attente.

15. Dessinez la zone d'attente avant les portes à l'aide de l'élément Polygonal Node
de la section Space Markup de la palette Pedestrian Library. Passez en mode dessin et
dessinez la zone comme indiqué dans la figure ci-dessous en cliquant avec votre souris chaque
fois que vous souhaitez ajouter un point. Lorsque vous avez terminé, double-cliquez avec votre
souris.

16. Ajoutez le bloc PedWait à l'organigramme entre PedService et PedGoTo.

17. Modifiez les propriétés du bloc en sélectionnant la zone dans la liste Area, puis en définissant
le Delay time sur uniform(15, 45) minutes.

18. Exécutez à nouveau le modèle et vous verrez les passagers maintenant attendre dans la zone
d'attente avant de se diriger vers la porte.

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

Exercice1 : Ajoutez d'autres fonctions d'enregistrement sur la partie droite (figure ci-dessous) et
configurer PedSelectOutput pour séparer le flux piétons vers plus de branches.

Phase 5. Définition de la logique d'embarquement


Dans cette phase, nous simulerons les processus qui ont lieu à la porte de notre aéroport. Le point de
contrôle des billets, que chaque passager doit passer avant d'embarquer dans son avion, dispose d'une
ligne pour les passagers en classe affaires, qui sont desservis en premier, et une autre pour les passagers
en classe économique. Nous ajouterons des informations personnalisées aux piétons pour distinguer
les passagers en classe affaires des passagers en classe économique.
1. Dans l'arborescence Projects, ouvrez le diagramme de type d'agent Passenger en double-
cliquant sur l'élément Passenger.
2. Ajoutez un paramètre dans la palette Agent pour définir la classe du passager.
Nommez-le business et définissez Type: Boolean. Si le paramètre est égal à True, il s'agit d'un
passager de classe affaires, sinon (si le paramètre est false), il s'agit d'un passager de classe
économique.

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

Nous voulons distinguer les passagers dans l'animation 3D, à savoir animer les passagers classe
affaires et économie avec différents modèles 3D. Pour ce faire, nous utiliserons l'objet Person
3D existant pour représenter les passagers en classe économique et ajouterons une autre forme
3D (Office Worker) pour représenter les passagers en classe affaires.
3. Ajoutez l’objet 3D Person de la section People pour animer les passagers de classe
économique, puis ajoutez l'objet 3D Office worker de la section Office pour animer un
passager de classe affaires. Placez les deux figures près de l'origine de l'axe (0,0), comme
indiqué sur la figure ci-dessous :

4. Modifiez la visibilité de ces objets. Tout d'abord, cliquez sur la forme Office worker. Nous
voulons que cette forme ne soit visible que lorsqu'il s'agit d'un passager en classe affaires, c'est-
à-dire lorsque son paramètre business est égale à vrai (true). Basculez vers l'éditeur de valeur
dynamique de la propriété Visible en cliquant sur l'icône à droite du libellé Visible, puis tapez
business dans la zone. Ce faisant, nous rendons cette forme 3D visible uniquement lorsque le
paramètre business du piéton est vrai (true).

5. Maintenant, sélectionnez l'objet 3D person (vous pouvez le faire à partir de l'arborescence des
projets) et définissez Visible sur !business. Cette forme ne sera ainsi visible que si le passager
est un passager économique.

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

Le symbole ! est l'opérande booléen NON. L’expression !business revient vrai lorsque business est
NON vrai, lorsque le passager n'est pas un passager en classe affaires mais un passager en classe
économique.
Nous voulons mettre en place la classe des passagers à leur arrivée au terminal de l'aéroport.
6. Revenez au diagramme principal (Main) et ajoutez une fonction à partir de la palette d'agent.
Nommez-la setupPassenger.

7. Configurez la fonction comme suit :


Créez un argument pour passer le passager nouvellement créé à la fonction :
Name: ped
Type: Passenger
• Le code de la fonction définit la fréquence à laquelle les passagers en classe affaire
apparaissent dans le modèle : ped.business = randomTrue(0.15);

Dans ce cas, ped est l'argument de la fonction, de type Passenger. Après avoir configuré le passager
comme type d'argument, nous pouvons accéder directement au champ personnalisé de l’activité de

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

piéton de type business simplement avec ped.business. La fonction randomTrue(0.15) renvoie true
dans une moyenne de 15% des cas, ce qui signifie qu'une moyenne de 15% des passagers de notre
modèle voyageront en classe affaires.
8. Appelez cette fonction lorsqu'un nouveau piéton est créé par le bloc pedSource. Dans la zone
des propriétés pedSource, cliquez sur la flèche pour développer la section Actions, puis entrez
le code suivant dans la zone On exit: setupPassenger(ped);

Ici, nous appelons notre fonction setupPassenger pour le piéton nouvellement créé. Ce piéton
est passé à la fonction via son argument.
Dessinez deux services avec des lignes pour la porte supérieure, un pour la classe affaires et un
pour les passagers en classe économique.
9. Dessinez un Service avec Ligne , définissant la ligne prioritaire (Type of
service : Point ; Nb of services :1, N of queues : 1). Nommez ce service business1.

10. Ajoutez un service de plus avec Line et nommez-le economy1.

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

11. Dessinez une zone à la porte avec l'élément de mur rectangulaire ( ), puis
ajoutez une table et deux modèles 3D de femme à la table. Dans les propriétés du mur,
définissez Visible sur non (Visible to no) pour rendre ce mur invisible lors de l'exécution du
modèle.

On va insérer les blocs dans l'organigramme entre les objets pedWait et goToGate1.
12. Ajoutez PedSelectOutput pour acheminer les passagers en classe affaires et en classe
économique vers différentes lignes.
13. Ajoutez deux blocs PedService: businessBoarding1 et economyBoarding1 pour simuler le
processus de vérification des billets des passagers à la porte d'embarquement.

14. Étant donné que le bloc PedSelectOutput achemine les passagers en classe affaires et en classe
économique vers différentes lignes, sélectionnez Use: Conditions, puis tapez ped.business
dans la zone Condition 1. Cette expression sera vraie (true) pour tous les passagers en classe
affaires, ce qui signifie qu'ils suivront la branche supérieure de l'organigramme et rejoindront
la ligne prioritaire. Après avoir configuré les conditions pour les prochains ports de sortie du
bloc (true, false, false), le modèle dirigera tous les autres passagers vers le deuxième port de
sortie.

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

15. Pour le bloc businessBoarding1 de type PedService, choisissez business1 comme Services.
Puisqu'il faut entre deux et cinq secondes pour vérifier le billet d'un passager, vous pouvez
légèrement modifier le délai (Delay time).
16. Pour economyBoarding1, définissez Services : economy1, ajustez le délai (Delay time).
17. Exécutez le modèle. Vous verrez des passagers passer le point de contrôle, et un petit nombre
d'entre eux empruntera la ligne prioritaire.

Vous pouvez tester l’effet de la modification des temps d’attentes (Delay time) sur la simulation.
Phase 6. Configuration des vols à partir de la feuille de calcul MS Excel
Dans cette phase, nous modéliserons la façon dont les avions décollent à des heures précises selon un
calendrier stocké dans un fichier Excel.
Base de données AnyLogic :
Chaque modèle AnyLogic dispose désormais d'une base de données intégrée pour lire les données
d'entrée et écrire la sortie de simulation.
Avec la base de données, vous pouvez :
• Lire les valeurs des paramètres et configurer les modèles.
• Créer des populations d'agents paramétrées.
• Générer des arrivées d'agents dans les modèles de processus.
• Consigner les activités de l'organigramme, les événements, les transitions des diagrammes d'états,
etc.
• Afficher l'utilisation des ressources, les temps d'attente, de traitement et de déplacement.
• Stocker et exporter des statistiques, des ensembles de données et des journaux personnalisés.
• Exportez les données vers une feuille de calcul MS Excel.

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

Vous pouvez facilement importer la base de données dans votre projet AnyLogic à partir d'une base
de données externe ou d'une feuille de calcul. Vous pouvez également créer des tables de base de
données vides et entrer des données manuellement.
Nous allons montrer comment importer des données de la base de données.
1. Nous allons montrer comment importer des données de la base de données .
2. Dans la vue Projects, cliquez avec le bouton droit sur la base de données et sélectionnez
Import database tables... dans le menu contextuel. Vous allez sélectionner le fichier
Flights.xlsx dans le dossier associé à ce cours.
3. Vous verrez la feuille Excel Sheet1 ajouté dans la liste à droite (Slect table(s) you want to
import). Cliquez sur OK pour importer des données de la table de base de données sélectionnée
dans votre modèle

4. Dans la vue Projects, vous verrez l'élément Sheet1 ajouté sous l'élément Database. Double-
cliquez dessus et vous verrez les données stockées dans cette table affichées dans l'éditeur de
table. Le tableau contient trois colonnes contenant des informations sur la destination du vol,
l'heure de départ et le numéro de porte.

Nous allons maintenant créer un nouveau type d'agent : Flight.


5. Ajoutez une population d'agents vide pour le nouveau type d'agent Flight en faisant glisser
l'élément Agent de la palette des agents vers le diagramme principal.

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

6. Dans l'assistant de création du nouvel agent, procédez comme suit:


a. Sélectionnez Population of agents.
b. Sélectionnez l'option I want to create a new agent type. Cliquez sur Next.
c. Spécifiez l’option Agent type name : Flight. Le nom de la population sera pré-rempli
comme flights. Sélectionnez l'option Use database table et cliquez sur Next.
d. Sur la page suivante de l'assistant, laissez les paramètres par défaut (nous utiliserons les
données du tableau sheet1 de la base de données intégrée au modèle). Cliquez sur Next.
e. La page suivante propose de créer des paramètres destination, departTime et gate pour
chaque agent du type Flight. C'est exactement ce dont nous avons besoin. Cliquer sur Next
pour continuer.
f. Comme nous n'aurons pas besoin d'animer les vols, sélectionnez None pour l'animation.
g. Cliquez sur Finish
7. Dans la vue Projects, double-cliquez sur Flight pour ouvrir son diagramme. Sur le diagramme
de Flight, vous verrez trois paramètres différents :
• destination, Type: string.
• departureTime. Type: Date.
• gate, Type: int.
Ces paramètres stockent la destination, l'heure de départ du vol, et le numéro de porte.

8. Ajoutez une Collection de la palette d'Agent au diagramme Flight, nommez-la


passengers, puis définissez l’option Collection classe sur LinkedList et l’option Elements
class sur Passenger. Cette collection stockera la liste des passagers qui ont acheté des billets
pour le vol.

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

Les collections :
Les collections définissent des objets de données qui regroupent plusieurs éléments en une
seule unité pour stocker, récupérer et manipuler des données agrégées. Ils représentent
généralement des éléments de données qui forment un groupe naturel.
9. Maintenant que nous avons créé le type d'agent Flight, nous allons ajouter un paramètre de vol
flight au diagramme des passagers et définir le type de paramètre sur Flight. Ce paramètre
stockera le vol du passager.

10. Revenez au diagramme principal (Main) et ajoutez un paramètre pour définir la durée du temps
d'embarquement. Nommez le nouveau paramètre boardingTime, puis choisissez Type: Time,
Unit: minutes et Valeur par défaut (Default value): 40.

11. Sélectionnez la fonction setupPassenger que nous avons créée précédemment pour terminer
notre processus de configuration. La fonction utilise maintenant la fonction random() pour
sélectionner au hasard le vol que le passager prendra dans la liste des vols disponibles.
Le vol est stocké dans le paramètre flight de passager, et AnyLogic ajoute le passager à une
collection de passagers qui prennent le même vol. Modifiez le code dans la section Corps de la
fonction (Function body) :

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

La fonction dateToTime() convertit la date donnée en heure du modèle par rapport à la date de
début et aux paramètres d'unité de temps du modèle. La fonction add() ajoute un élément à la
collection.

Utilisation du contenu d'une collection


Vous pouvez utiliser les fonctions suivantes pour gérer le contenu de la collection :
• int size() - Retourne le nombre d'éléments dans la collection.
• boolean isEmpty() - Retourne true si la collection n'a pas d'éléments, false sinon.
• add(element) - Ajoute l'élément spécifié à la fin de cette collection.
• clear() - Supprime tous les éléments de la collection.
• get(int index) - Retourne l'élément à la position spécifiée dans la collection.
• boolean remove(element) - Supprime l'élément spécifié de la collection s'il est présent. Renvoie true
si la liste contient l'élément spécifié.
• boolean contains(element) - Retourne vrai si cette collection contient l'élément spécifié.
12. Définissez la deuxième porte :
• Ajoutez deux éléments Service avec lignes : business2 et economy2.
• Dessinez le mur rectangulaire, la table et les figures de femmes.
• Dessinez la ligne cible (Target Line) gateLine2.

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

13. Ajoutez deux autres blocs PedService, businessBoarding2 et economyBoarding2, qui sortent
de PedSelectOutput et entrent dans PedGoTo. Laissez PedSelectOutput diriger les passagers
vers quatre ports différents.
14. Ajoutez un autre bloc PedGoTo pour modéliser la façon dont les passagers se déplacent vers
la deuxième porte. Sélectionnez gateLine2 comme ligne cible du bloc (Target line).

15. Pour businessBoarding2, définissez Services: business2. Pour economyBoarding2, définissez


Services: economy2. Pour les deux, définissez la durée de service (Service time) : uniform(2,
5) secondes.
16. Avec nos vols configurés, nous pouvons changer les conditions pedSelectOutput1 qui
définissent la porte que nos passagers sélectionnent.

Événements dynamiques
Nous allons maintenant utiliser des événements dynamiques qui planifient les actions définies par
l'utilisateur d'un modèle pour planifier les actions de départ et d'embarquement. Un modèle peut
avoir plusieurs instances du même événement dynamique planifiées simultanément et elles peuvent
être initialisées par des données qui sont stockées dans les paramètres de l'événement.
Vous devez utiliser des événements dynamiques dans votre modèle:
• Lorsque vous vous attendez à ce que plusieurs événements, effectuant des actions similaires,
soient planifiés en même temps.
• Lorsque l'action de votre événement dynamique dépend d'informations spécifiques

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

REMARQUE : Étant donné qu'AnyLogic représente un événement dynamique en tant que classe
Java, le nom de votre événement dynamique doit commencer par une lettre majuscule.
17. Ajoutez deux éléments d'événement dynamique (Dynamic Event) de la palette d'agent au diagramme
principal.

18. L'événement dynamique DepartureEvent planifie le départ d'un avion en supprimant le vol de
la population d'agents contenant les vols à venir. Utilisez la figure ci-dessous pour vous aider
à configurer l'événement.

19. Le deuxième événement dynamique, BoardingEvent, planifie l'embarquement de l'avion, puis


crée une instance de l'événement dynamique DepartureEvent qui planifie le départ du vol dans
40 minutes.

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

Vous créez une instance d'un événement dynamique en appelant la méthode


create_<DynamicEventName>. Dans notre cas, nous utilisons la fonction
create_DepartureEvent() pour créer une instance d'un événement dynamique que nous avons
nommé DepartureEvent.
20. Modifiez le paramètre Delay ends du bloc pedWait de On delay time expiry à On free()
function call pour garantir que les passagers qui doivent attendre pour monter à bord de leur
avion attendent l'annonce dans la zone d'attente.

21. Définissez une fonction startBoarding pour modéliser le début du processus d'embarquement
de l'avion. Cette fonction parcourt les passagers qui attendent d'embarquer pour le vol donné
et leur permet d'embarquer en mettant fin à leur retard dans le bloc pedWait avec l'appel de la
fonction du bloc free().

Dans cet exemple, nous utilisons une boucle "for" pour parcourir la collection de de
passagers passengers définie à l'intérieur de l’objet flight. Les passagers qui montent à bord
de l'avion doivent ainsi quitter la salle d'attente.
Itération à travers une population d'agents à l'aide de la boucle "for" :
Les deux formes de la boucle "for" sont le moyen le plus simple pour itérer AnyLogic à travers les
agents d'une population :

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

Syntaxe Exemple

22. Définissez une fonction planBoardings pour planifier l'embarquement pour tous les vols
enregistrés. La fonction parcourt les agents de la population de vols (flights) dans une boucle
‘’for ‘’. Elle permet aux vols qui doivent décoller avant la fin de leur temps d'embarquement
de commencer immédiatement l'embarquement. Les vols qui ne remplissent pas cette condition
commenceront leur processus d'embarquement 40 minutes avant leur heure de départ, comme
nous l'avons défini dans le paramètre boardingTime.

L'opérateur if vérifie la condition spécifiée. Si l'embarquement du vol sélectionné a lieu, nous


planifions le départ et autorisons l'embarquement en appelant la fonction startBoarding (en passant
la référence à ce vol comme valeur d'argument de la fonction). Sinon, nous planifions
BoardingEvent.
23. Dans la zone Actions de l'agent principal Main, dans la zone On startup, ajoutez l'appel de la
fonction planBoardings().

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

Nous devons lier le point de départ de la simulation à une date spécifique dans le fichier Excel qui
définit l'heure de départ.
24. Dans l’arborescence Projects, sélectionnez l’option Simulation pour activer ses propriétés.
Dans la section Model Time, définissez la date de vol de la base de données comme date de
début. Définissez la date de début (Start time) sur 21/12/2014, 12:00:00. Dans la liste Stop
date, définissez la date d'arrêt sur 21/12/2014, 22:00:00.

25. Utilisez la palette Images pour ajouter un élément Horloge qui affichera la date du modèle.

26. Exécutez le modèle. Vous verrez des passagers attendre l'annonce d'embarquement dans la
zone d'attente, puis se diriger vers leur porte d'embarquement.
Dans le cas où un message d’erreur s’affiche pendant la compilation, vous pouvez voir la liste des
problèmes dans la fenêtre en bas. Vous pouvez annuler l’exécution en cliquant sur Cancel et chercher
l’erreur à corriger, en la cliquant deux fois.

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

En cliquant sur l’erreur, AnyLogic vous permettra d’accéder à l’objet ou la fonction qui contient
l’erreur.

Vous pouvez également cliquer sur l’option Proceed de la fenêtre d’exécution, pour voir si l’erreur
bloque la simulation.
En cliquant sur Run, une fenêtre s’affichera et donnera des détails sur l’erreur.

En cliquant sur l’option ‘Console’, des détails sur le problème seront affichés ce qui aidera à
résoudre le problème.

Pour rappel, la bibliothèque des piétons de la version gratuite Personal Learning Edition
d’Anylogic permet une simulation d’un phénomène d’une durée maximale d’une heure. Pour pouvoir
simuler un modèle de plusieurs heures, il faut la version professionnelle qui est payante.

Vous pouvez modifier le paramètre Delay time des services d’embarquement à uniform(20,50)
pour pouvoir une meilleure simulation.

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

Vous trouverez peut-être ce modèle plus complexe que ceux que nous avons abordés
précédemment, d'autant plus que nous avons montré comment utiliser AnyLogic pour définir une
logique personnalisée qui s'appuie sur des événements, des fonctions et des graphiques d'action.
Pour passer à l'étape suivante du développement de vos propres projets de simulation, nous vous
encourageons à utiliser la fonction d'aide d'AnyLogic ainsi que les exemples de modèles qui illustrent
chacun une technique de modélisation spécifique.

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

Références
Carlock, P. G., and R. E. Fenton. System of systems (SoS) enterprise systems for information-intensive organizations.
Systems Engineering 4(4):242–261. 2001.

Grigoryev, I. AnyLogic 7 in three days. A quick course in simulation modeling, 2016.

Jamshidi, M. Theme of the IEEE SMC 2005, Waikoloa, Hawaii, USA. http://ieeesmc2005.unm.edu/, October 2005.

Jamshidi, M. Systems of systems engineering: principles and applications. CRC press, 2008.

Manthorpe, W. H. The emerging joint system of systems: a systems engineering challenge and opportunity for APL, John
Hopkins APL Technical Digest 17(3):305–310. 1996
Luskasik, S. J. Systems, systems of systems, and the education of engineers. Artificial Intelligence for Engineering Design,
Analysis, and Manufacturing. 12(1):11–60. 1998
Pei, R. S. Systems of systems integration (SoSI)—a smart way of acquiring Army C4I2WS systems. Proceedings of the
Summer Computer Simulation Conference, pp. 134–139. 2000.

Page 150

Vous aimerez peut-être aussi