Member-only story
Introduction à la simulation avec NetLogo : comment créer une petite usine ?

NetLogo a été conçu comme un logiciel d’introduction à un type de simulation qui permet de mettre en action plusieurs agents, chacun avec son comportement propre. Aussi connue sous le nom d’Agent Based Modeling. Dans les faits, ce logiciel est utilisé professionnellement, en particulier pour les simulations sociales, en épidémiologie et en biologie. Il est accessible sans connaissance préalable en programmation tant le langage qu’il utilise est simple. C’est donc l’outil parfait pour une petite introduction.
Simuler une usine sous NetLogo peut être un moyen de vérifier rapidement des hypothèses. Toutefois, si vous souhaitez vous y mettre sérieusement, je ne saurai que vous recommander des logiciels de jumeaux numériques de chaînes de production comme Anylogic et FlexSim, ou, en fonction du problème à résoudre, des bibliothèques de simulation en Julia et Python.
Le code ce modèle est disponible sur GitHub.
Notre chaîne de production
Nous allons utiliser différents types d’agents:
- Des caisses de pièces. Pour simplifier, nous allons imaginer qu’il s’agit de petits robots qui se baladent de poste en poste, avec une logique prédéfinie.
- Des machines de production. Nous allons imaginer que notre processus est celui d’une forge par estampage, qui frappe des lopins d’acier rouge entre deux matrices pour leur donner une forme, les polie et les finit par usinage. Nous allons détailler plus tard ces opérations. Chaque opération a une durée et un coût par pièce associé.
- Des postes de contrôle, qui permettent de supprimer les mauvaises pièces. Il y aura un poste de contrôle par machine. L’un des intérêts de la simulation sera justement de mesurer l’impact financier de la suppression des contrôles intermédiaires.
- A l’entrée de la chaîne, un poste d’approvisionnement matière et en sortie, un bureau des expéditions qui facture le client et fait rentrer de l’argent.
Quelques illustrations pour visualiser les machines en question: