Notre équipe développe des modèles de simulation à événements discrets pour les procédés et les systèmes d'emballage depuis plusieurs décennies. En 2024, nous avons adopté JMP afin de simplifier et d'améliorer l'interprétation des résultats statistiques issus de ces modèles.
L'exécution des modèles de simulation pouvant être longue et coûteuse, nous utilisons désormais JMP pour créer des métamodèles de substitution, basés sur des plans d'expériences qui améliorent considérablement l'efficacité de l'extraction d'informations à partir des simulations. Ces métamodèles fournissent une compréhension plus approfondie du comportement du système que les résultats traditionnels, tels que les visuels 3D ou les statistiques d'exécution détaillées fournies lors d'une seule exécution.
Notre premier métamodèle a révélé une solution claire à un défi analytique de longue date : avec plusieurs zones tampons sur une ligne de conditionnement, quelle taille doit avoir chacune pour optimiser les performances de la ligne compte tenu des ressources financières limitées ? Nous présentons plusieurs autres métamodèles, notamment une comparaison de plusieurs options d'agencement pour une ligne avec un mécanisme de fusion-déviation et l'effet non linéaire sur les performances en fonction de son emplacement.
Enfin, nous présentons une étude de cas de simulation de chariot élévateur utilisée pour appuyer une décision d'investissement concernant la construction d'une liaison directe entre deux entrepôts. La modélisation par substitution est devenue un élément essentiel de notre processus de simulation, et JMP a joué un rôle clé pour rendre cette approche plus accessible, plus efficace et plus performante, tant pour notre équipe que pour nos parties prenantes.
Bonjour, je m'appelle Shannon Browning. Je suis responsable technique de l'analyse système chez Haskell. Nous utilisons JMP depuis 2023, mais nous avons une longue expérience de la simulation à événements discrets. Cette dernière est un outil courant dans les systèmes de fabrication et de service. Elle nous permet de tester, dans un environnement virtuel, de nouvelles stratégies de contrôle, de nouveaux agencements, des flux, des logiques, etc., avant de les mettre en œuvre sur le terrain.
Depuis l'adoption de JMP, nous avons obtenu de très bons résultats en utilisant ce que nous appelons des modèles de substitution ou métamodèles, des modèles de modèles, pour fournir un niveau d'analyse supplémentaire. Nous concevons donc des plans d'expériences autour du modèle de simulation lui-même, en faisant varier systématiquement les entrées pour comprendre et observer les comportements du système à ce niveau supérieur.
Nous rencontrons ici des difficultés différentes de celles rencontrées avec les plans d'expériences, qui privilégient des expériences physiques ou destructives. Le temps de calcul est la seule contrainte. Nous ne nous soucions pas des contraintes matérielles ni des nombreuses restrictions de faisabilité qui nous poussent à réduire le nombre de réplications ou de scénarios dans un plan d'expériences traditionnel, ce qui ouvre de nombreuses perspectives, mais aussi des défis intéressants. De nombreuses simulations à événements discrets sont de nature stochastique, ce qui signifie que des variations aléatoires sont générées dans le modèle.
Nous pouvons utiliser une technique appelée « nombres aléatoires communs » où chaque configuration est exécutée plusieurs fois, mais chacune de ces exécutions avec les mêmes valeurs aléatoires. Nous obtenons des comportements suffisamment similaires pour les traiter comme des effets aléatoires, par exemple dans un modèle à effets mixtes. Mais je pense qu'il serait vraiment utile d'explorer ces exemples et d'en étudier différentes applications.
Trois cas d'utilisation différents nous ont convaincus. Le premier concerne un problème récurrent : identifier l'emplacement des zones tampons sur une ligne de conditionnement à grande vitesse hautement automatisée. Le deuxième, plus détaillé, porte sur les commandes et l'agencement physique du transport. Enfin, le troisième cas d'utilisation porte sur la circulation des chariots élévateurs dans une installation et tente de déterminer si un investissement important dans une modification de l'agencement serait rentable ou rentable.
Je vais d'abord aborder la simulation de la ligne d'embouteillage. Dans celle-ci, en bas à gauche, nous représentons le système sous forme d'organigramme. Nous sommes simplement dans l'outil logiciel, en train de déplacer les différents processeurs et signaux et de les organiser. Chacun d'eux connaîtra des temps d'arrêt aléatoires, et entre ces temps d'arrêt, ils fonctionneront à des fréquences fixes. Il y a un léger excès de vitesse, ce qui nous permet de voir que le tampon peut les déconnecter à temps. Ainsi, l'arrêt d'un processeur n'arrête pas immédiatement celui en amont. Et plus le tampon est important, plus l'installation est importante. Mais il y a des rendements décroissants. Il y a des réponses non linéaires.
En bas à droite, nous illustrons la dynamique de la file d'attente au fil du temps : lorsqu'un incident s'arrête, nous accumulons rapidement beaucoup de données. Ensuite, lors de la reprise, un différentiel de vitesse se produit, ce qui fait que la mémoire tampon se vide progressivement. Nous devons gérer plusieurs variables : la fiabilité des machines, les survitesses, la taille des mémoires tampon, etc. L'un de nos défis réside dans la multitude de variables : lesquelles utiliser ? Selon notre stade de décision, la valeur tend à être celle que nous souhaitons atteindre ou détermine les variables que nous pouvons ajuster. À ce stade, nous avions déjà sélectionné de nombreuses machines. En réalité, il ne nous restait plus qu'à examiner ces mémoires tampon.
Traditionnellement, on les considère isolément. On se dit : « Bon, je vais mettre un tampon ici, puis faire varier un facteur à la fois. » Mais avec JMP, nous avons configuré chacun de ces tampons pour une durée comprise entre zéro et quatre minutes. Nous avons répliqué chaque combinaison à dix reprises. Il y avait donc neuf niveaux pour chacune d'elles, ce qui nous a permis d'obtenir une courbe de réponse assez précise. Comme nous sommes dans un monde de simulation informatique, cela signifie qu'il y avait 729 combinaisons différentes.
Le modèle s'exécute assez rapidement, mais toujours pour 10 réplications chacune. Nous avons exécuté ce modèle plus de 7 000 fois, et il a fallu au moins une demi-journée pour exécuter tous ces scénarios. Une fois les données générées, nous pouvons les analyser dans JMP. Le profileur de prédiction est affiché en haut à droite. En partant de zéro pour tous ces tampons, nous constatons clairement que j'obtiens la meilleure réponse de cette position au tampon, une réponse un peu moins bonne ici au tampon trois, et très peu au tampon deux. Nous avons également modélisé les effets d'interaction. Nous observons dans ce profileur de prédiction que, lorsque nous choisissons, par exemple, deux minutes et demie sur le tampon deux, puis deux minutes sur le tampon trois, la courbe sur le tampon un s'aplatit, car on ne peut pas tirer pleinement parti des trois simultanément. Il existe une interaction : si je mets beaucoup de tampons sur le tampon deux, le tampon trois est moins efficace, et ainsi de suite.
Cette idée a été très éclairante. Je pense que le plan initial du projet prévoyait un investissement d'environ un demi-million de dollars pour chacune de ces trois zones tampons, et nous avons pu affirmer avec certitude que la zone tampon de l'une d'elles n'était pas nécessaire. Nous pouvons donc mobiliser au moins un demi-million de dollars de capital. Enfin, nous avons pu affiner la zone tampon en troisième position, sans investir intégralement dans cette zone. C'est donc une excellente idée pour le projet.
Pour revenir à la situation suivante, nous allons examiner plus en détail le fonctionnement du système. Dans ce cas précis, une ligne était déjà en place, et comme nous l'avons vu précédemment, nous avons étudié comment la différence de survitesse entre deux unités opérationnelles permettait de réduire la marge. Le goulot d'étranglement du système avait été amélioré pour accélérer son fonctionnement d'environ 10 %. Cela signifiait que la différence de survitesse était nettement inférieure, ce qui a entraîné des problèmes de fonctionnement du système de convoyage.
Nous avions deux voies d'entrée de produits, une trémie hors ligne pour le réapprovisionnement et le complexe de fusion-déviation où tout cela se rejoignait. Nos ingénieurs en automatisation sur site ont constaté qu'il était difficile de combler certains écarts en raison de la distance. Ce problème s'est posé lorsque le goulot d'étranglement s'est intensifié. Nous avons donc décidé, par simulation, d'étudier le problème en déplaçant ce flux de 3,6 mètres en amont. Et 7,3 mètres en amont ?
Évidemment, la découpe de l'acier, la réorganisation du convoyeur et la mise au point ont représenté un investissement important. Du point de vue de la modélisation à événements discrets, c'était un peu plus complexe, car nous avons dû recréer l'agencement de trois manières différentes. Nous avions l'agencement d'origine, puis deux itérations distinctes. Nous avons modifié l'agencement, peaufiné les commandes, puis analysé le tout. Comme je l'ai dit plus tôt, nous pouvions exécuter plusieurs itérations différentes, celle-ci étant un peu plus détaillée, mais chaque scénario impliquait un coût légèrement supérieur pour ces ajustements de modèle.
Une chose à laquelle nous ne nous attendions pas vraiment avant d'intégrer les données dans JMP était la contrainte en amont. Nous savions en aval que nous manquions d'espace entre la machine suivante et ce complexe de fusion-dérivation. Mais en remontant à 3,6 mètres en amont, puis à 7,3 mètres en amont, nous nous rapprochions trop de cette partie en amont. Nous allons donc intégrer cela dans JMP. Nous utilisons la plateforme de modèle d'ajustement, et ici, nous utilisons l'ajustement quadratique. Nous avons constaté que les performances commençaient à se dégrader à mesure que nous nous rapprochions de l'amont.
C'était une petite surprise pour nous de ne pas l'avoir remarqué sans l'avoir branché. Je ne l'ai pas à l'écran, mais nous pouvons extraire l'équation de cet ajustement, puis calculer la dérivée et trouver le point maximum ici. Mais le défi, bien sûr, réside dans l'incertitude autour de ce point, entre 3,6 et 7,3 mètres.
Une approche aurait bien sûr pu consister à créer un modèle à 5,5 mètres près du point optimal, puis à l'ajuster à partir de ces données. Cependant, le profileur de prédiction permet également de détecter les incertitudes autour des dérivées première et seconde de cet ajustement quadratique. Cela peut nous aider à mieux comprendre. Nous savons que ce maximum tend à se situer entre 3,6 et 7,3 mètres, mais nous ne savons pas précisément où. D'autres variables peuvent perturber ce processus. Il existe des aspects pratiques pour la construction du système. Mais cela nous a été très utile pour obtenir un aperçu plus complet.
Le dernier point que nous examinerons concerne la circulation des chariots élévateurs. Cette usine augmentait sa production. Ce n'était pas encore le cas, nous ne pouvions donc pas observer empiriquement ce qui allait se passer. Nous avons donc construit un organigramme des lignes de conditionnement et l'avons utilisé comme point de départ pour ce modèle. Nous avons ensuite programmé les règles de répartition des chariots élévateurs, leurs tâches et toutes les opérations qu'ils effectueraient pour alimenter et évacuer les matériaux des lignes.
Nous avons constaté ici la nécessité de traiter ces chariots élévateurs comme des variables catégorielles. Lors de l'ajustement initial de ce modèle, nous avons constaté l'existence d'une relation non linéaire. Nous n'en étions pas certains avant de traiter cette variable comme une variable catégorielle. Nous avons alors constaté que sans ce connecteur, lorsqu'on arrive à cinq chariots élévateurs actifs, on ne tire aucun avantage des six. Nous constatons également qu'à six, dans ce profil de prédiction, si j'ajoutais ce connecteur, qui constituait une innovation de configuration pour cette situation particulière, le gain potentiel serait considérable. C'est sur cette base que nous pouvons affirmer que l'investissement en vaut probablement la peine. Ce changement de configuration représentait un investissement important.
Nous pouvons également consulter ces profils d'interaction. Vous pouvez clairement constater, sur le profil d'interaction ici, que, avec et sans ce connecteur, l'absence de ce dernier est une contrainte majeure. Sur le plan opérationnel, ils n'auraient rien pu faire sans investir dans le désengorgement ou la décongestion du trafic.
Voici un bref aperçu de certaines des façons dont nous appliquons JMP aux modèles de simulation que nous avons déjà développés. J'aime à dire que ces métamodèles ont aidé nos analystes en simulation à voir plus clair. On peut parfois se perdre dans les détails avec ces modèles à événements discrets, car ils impliquent une multitude de paramètres et peuvent générer une quantité de données telle qu'il peut être difficile de les relier au problème métier ou à l'élément que nous cherchons à résoudre. Merci de votre temps et n'hésitez pas à nous contacter si vous avez des questions.