Getting started with simulation modeling
One of my favorite tools in process engineering is simulation modeling software. I was first introduced to professional process simulation packages in college. I remember sitting in class looking at the powerpoint slides for that day’s lecture on the overhead projector. We go through maybe 20 slides detailing the basic origins of discrete event simulation and then a basic system is introduced, a bank with a single teller and some customers arriving at a certain rate. The professor closes the slideshow and shows the class the simple model they’ve already built in the simulation software. We watch the simulation a few times then begin to discuss some of the outputs. It was surprising to me because it looked so familiar. As soon as I saw it I thought it looked like one of the simulation games I had played called Factorio.
You can maybe guess from the name, but Factorio is a game about building a factory. The premise of the game is fairly simple: you’re an astronaut who has crashed on an alien planet. The goal is to build a rocket ship and escape. In order to build the rocket ship you must build all the infrastructure along the way for each high-tech component and sub assembly of the ship. You start with raw resources like iron ore, coal, and water which you must use and process into simple things like iron plates and wire. With those new materials you can build more advanced things like better mining equipment and conveyor belts. Pretty soon you are managing a complex system of resources, material transport and processing centers.
When I started learning discrete event simulation, having this background and perspective with Factorio was very helpful. After completing the game and building the rocket ship I gained an understanding of how an incredibly complex system needs to operate and coordinate materials, processing, and limited resources to create just one object. From a distance the sprawling city-like masses of conveyor belts, railroads, pipelines and all the processing centers is an incomprehensible mess, but if you break things down into sub-sections, and then look closer you get to a point where it becomes very simple. An entity arrives at a queue, possibly waits for some amount of time, gets processed for another bit of time, then departs. Just like the bank model introduced in my class.
For me discrete event simulation software was like playing Factorio, except I got to define the rules and all the pieces in the game. I could pick what resources are available, how often pieces arrive, and how long it will take to process.
A model is really anything that provides an answer to a “what if” question. A fashion model demonstrates “what if” we wear certain styles of clothes and accessories. How would we look? A simulation model might examine “what if” we design an airplane with a certain profile. What happens to the turbulence?
Typically for me a simulation model is developed to help make a decision, like whether or not to buy new equipment, or help validate a theory, like whether a specific point of a manufacturing process is a bottleneck or not. But I think one of the biggest benefits is simply educating people on how a system works and helping to understand day to day workflow. Meeting with staff, operators, and supervisors to build the model often leads to new perspectives and a deeper understanding of how things worked. People can look at the model and see the production flow, the bottle necks, and all the components of the system very easily.
Of course building a simulation model is quite different than just playing a video game, but exploring complex systems in Factorio break down some of the overwhelming tasks that come with creating actual models.