• Aucun résultat trouvé

simulation : l'implémentation du modèle conceptuel

4.1 La création d'un modèle générique

La création d'un modèle générique entraîne des difficultés. Certaines techniques doivent être utilisées pour faciliter l'implémentation et permettre non seulement la création d'un simulateur tout à fait générique, mais également afin de simplifier son utilisation. Ces techniques, soit l'utilisation des blocs et des éléments SIMAN, l'utilisation de VBA avec ARENA et l'échange de données entre MS Access et ARENA, sont brièvement traitées dans la présente section.

4.1.1 Utilisation des blocs et éléments SIMAN

ARENA est un outil de simulation général qui permet de créer une simulation à événements discrets en connectant entre eux différents blocs aux fonctions variées. Les notions de base sur la simulation à événements discrets et les différentes fonctions d'ARENA ne seront pas traitées ici. Il sera plutôt question des aspects moins couverts dans les ouvrages de référence. Toutefois, pour de plus amples informations concernant les concepts de base, il est possible de consulter [1], [19] et [24].

Tel qu'il a été mentionné précédemment, ARENA offre plusieurs niveaux de modélisation. Le niveau le plus élevé propose l'utilisation de templates pour faciliter la création du modèle tandis que le niveau le plus bas, et par le fait même le plus flexible, propose l'utilisation de SIMAN et de la programmation VBA ou C/C++. SIMAN est un puissant langage de simulation général pour la modélisation de systèmes discrets, continus et/ou combinés [26]. Tout comme ARENA, SIMAN utilise différents blocs pour générer la séquence dans laquelle vont circuler les entités afin de simuler le système modélisé. Un code SIMAN propre à chaque modèle est ensuite généré, au moment de l'exécution du modèle, selon la séquence créée. De la même façon, lorsqu'une simulation est effectuée

avec ARENA, le logiciel examine la configuration et la paramétrisation de chaque module, puis génère un code SIM AN. De plus, tous les blocs ARENA sont créés à partir des blocs S1MAN, également disponibles dans ARENA. Les blocs SIMAN permettent plus de flexibilité que les modules proposés par ARENA. Ils permettent l'entrée de variables ou d'équations algébriques là où les blocs ARENA équivalents ne permettent que l'entrée de valeurs numériques. Toutefois, l'utilisation de blocs SIMAN nécessite plus de rigueur puisque tous les attributs, variables, stations ou ensembles utilisés par les blocs SIMAN ne sont pas générés automatiquement comme c'est le cas pour les blocs ARENA. Ils devront donc être créés à priori à l'aide des éléments SIMAN correspondants.

Le réseau de distribution développé au chapitre précédent est tout à fait générique. Ainsi, la configuration du réseau et le nombre de nœuds internes peuvent varier d'un scénario à un autre. [33] propose un modèle ARENA pour une chaîne d'approvisonnement où le nombre de détaillants est, à tout fin pratique, illimité. Toutefois, les détaillants n'utilisent aucune ressource et ne possède aucune contrainte de capacité ou de traitement. [26] proposent un exemple intéressant de l'utilisation de SIMAN pour la construction de sous-modèles génériques qui utilisent des ressources propres à chaque sous-modèle. Afin de bien situer la méthode proposée, il est important de rappeler quelques notions reliés à l'utilisation de ARENA et de SIMAN.

Le transfert des entités, dans un modèle de simulation, peut être effectué de différentes façons. Tout d'abord, les entités peuvent circuler d'un bloc à l'autre par une connexion directe entre les blocs. Cette méthode est très utilisée en pratique. Toutefois, pour les systèmes complexes, il est préférable de créer des sous-modèles et d'utiliser des blocs particuliers Station et Route pour assurer le transfert des entités. Les entités entrent ainsi dans le sous-modèle par un bloc Station puis le quittent par un bloc Route qui assure le transfert des entités vers la destination déterminée. Un sous-modèle peut, par exemple, représenter un poste de travail. Toutefois, si un modèle est composé de plusieurs postes de travail, il peut être fastidieux d'utiliser un sous-modèle par poste de travail, d'autant plus si les postes de travail suivent la même logique. Il est donc intéressant de créer un sous- modèle générique qui permet de représenter plus d'un poste de travail à la fois. La méthode pour y arriver est relativement simple. Il s'agit de créer un ensemble, ou un set en langage

ARENA, qui regroupe l'ensemble des postes de travail à représenter. Alors, un ensemble sera assigné à la station plutôt qu'un simple sous-modèle. La même méthode peut être utilisée pour les ressources ou encore pour les files. Ainsi, il est possible de créer un poste de travail générique en générant un ensemble qui regroupe tous les postes de travail à représenter puis en utilisant les blocs Station et Route pour assurer le transfert des entités. En transposant la méthode proposée dans [26] au cas d'un réseau d'approvisionnement et de distribution, il est possible de créer un modèle de simulation pour une entreprise générique de distribution qui permet l'utilisation des ressources propres à chaque site. Le modèle créé dans le cadre du présent projet utilise, afin de conserver un maximum de flexibilité, presqu'exclusivement des blocs et éléments SIMAN, à quelques exceptions près. Toutefois, bien que la démarche proposée par [26] permette d'inclure facilement l'utilisation de ressources, aucune ressource ne sera utilisée dans la première version du simulateur développé. Toutefois, la structure proposée permet de les inclure aisément, au besoin, en suivant la démarche par [26].

4.1.2 Utilisation de VBA avec ARENA

Le logiciel de simulation ARENA intègre également la programmation VBA et C/C++. L'utilisation de la programmation permet d'améliorer la flexibilité d'ARENA. Toutefois, elle requiert de bonnes connaissances et des habilités supplémentaires au niveau de la programmation. Puisque le simulateur développé n'utilise que la programmation VBA, seule l'utilisation de ce langage de programmation est traitée dans la présente section. Deux (2) approches sont disponibles pour l'utilisation de VBA dans ARENA [19]: l'utilisation de blocs VBA et la programmation directe via l'éditeur VBA. La première approche, l'utilisation de blocs VBA, consiste à insérer un bloc VBA directement dans la séquence créée. Ainsi, pendant la simulation, à chaque fois qu'une entité passe par le bloc VBA, la procédure programmée est effectuée. En cliquant directement sur le bloc VBA en question, l'éditeur VBA s'ouvre automatiquement afin de permettre la génération du code. Les procédures de calcul complexes ou les changements de variables particuliers peuvent

53 ainsi être programmés facilement en utilisant le langage VBA. Cette méthode peut s'avérer utile lorsque des problèmes génériques doivent être traités.

La deuxième approche consiste à coder directement les différentes procédures à partir de l'éditeur de VBA. L'éditeur d'ARENA permet l'utilisation de toutes les méthodes et outils standards de VBA: procédures de programmation (Sub, Function, Class, If Endlf Elself

While, Wend, Do, On error et Select Case), la création de formulaires et boîtes de dialogue

et les outils de débuggage. Le code général disponible dans l'éditeur VBA est divisé en plusieurs parties qui correspondent aux différentes étapes de la simulation, de l'initialisation à l'exécution de chaque réplication. Il est donc important d'inscrire le code à exécuter à l'endroit approprié en fonction des objectifs à atteindre de façon à ce que la procédure programmée soit activée au moment voulu. Par exemple, le code inscrit sous

RunBeginSimulation sera exécuté une seule fois, au tout début de la simulation tandis que

le code inscrit sous RunBeginReplication sera exécuté au début de chaque réplication. [19] fournit quelques informations sur l'utilisation de VBA avec ARENA.

L'utilisation de VBA permet donc d'atteindre un niveau de flexibilité accru et de faciliter les procédures de calcul complexes. Ainsi, il est possible de générer un modèle de simulation générique et de limiter la manipulation des paramètres et variables par l'utilisateur en automatisant la plupart des procédures avec VBA.

4.1.3 Échange de données entre MS Access et ARENA

Puisque le réseau d'approvisionnement et de distribution étudié est générique, il est possible que plusieurs paramètres doivent être enregistrés et manipulés. L'entrée manuelle des données dans ARENA, notamment pour des problèmes de taille réelle, peut devenir fastidieuse, d'autant plus si l'utilisateur n'est pas familier avec le logiciel ARENA. La saisie ou la récupération des variables et des paramètres à partir d'une base de données ou d'un chiffrier peut donc s'avérer intéressante. La lecture des données enregistrées dans une base de données de MS Access ou dans un chiffrier Excel est possible, avec ARENA, par l'intermédiaire d'un bloc particulier : le bloc Read/Write [19]. La lecture des données par ARENA est effectuée selon une procédure particulière. Les bases de données et les chiffriers créés doivent donc respecter une structure donnée afin d'assurer la lecture

adéquate des données enregistrées. Puisque le modèle de simulation développé utilise exclusivement des bases de données, seule la démarche d'échange entre MS Access et ARENA est présentée dans la présente section. Toutefois, la procédure à suivre avec Excel est similaire.

La démarche à suivre est divisée en deux (2) étapes : la création de la base de données (MS Access) et la génération d'une séquence de lecture (ARENA). En tout premier lieu, une table doit être créée pour chaque valeur ou groupe de valeurs à lire avec ARENA, et ce, en respectant une structure particulière. Ainsi, si les valeurs sont lues séquentiellement, c'est- à-dire à chaque fois qu'une entité passe par le bloc Read/Write, les données à lire doivent être enregistrées dans la même colonne. Par contre, si les valeurs doivent être lues simultanément, elles doivent être enregistrées sur la même ligne.

Dans un deuxième temps, la séquence de lecture doit être créée. Tout d'abord, le fichier MS Access où les données ont été enregistrées doit être ajouté à la liste des fichiers externes actifs dans ARENA, sous le module Data Module File du Advanced Process Panel. Ce module permet d'enregistrer les paramètres importants reliés à l'utilisation du fichier externe : le type de fichier, son emplacement ainsi que les tables utilisées. Le bloc

Read/Write doit ensuite être ajouté à l'endroit approprié dans le modèle de simulation.

Alors, en cliquant sur le bloc en question, il s'agira d'assigner les variables ou les attributs d'ARENA aux données externes. Ainsi, à chaque passage par le bloc Read/Write, l'entité permet la lecture d'une donnée ou d'un vecteur de données puis assure les assignations nécessaires.

Le bloc Read/Write permet également d'enregistrer des données ou des mesures de performance d'ARENA vers un fichier externe dans le but d'effectuer un post-traitement avec Excel ou MS Access par exemple.

Afin de minimiser la manipulation des variables et des paramètres dans ARENA et de faciliter la saisie des données, un formulaire est créé avec MS Access. Le formulaire vise à remplir adéquatement les bases de données utilisées par ARENA et à effectuer un pré­ traitement des données si nécessaire. Cette méthode est donc utilisée pour créer le simulateur du réseau de distribution développé. Toutes les précisions nécesssaires

concernant l'interface de l'utilisateur et l'échange des données seront apportées dans les sections suivantes.