There are a few approaches to creating simulations that affect how we construct our models.
The first approach is to do something called a Discrete-Event Simulation. With this model, we look at our system and think about the sequence of what happens in that system. When we say “what happens” we are interested in particular events where a change is state observed. An example of this is a machine tool starting a job; from a system modelling perspective we need to recognise that it has changed from an idle state to an operational state. Similarly when the machining is finished, the machine returns to an idle state again.
If we imagine that our model can represent such state, we shall also want to have a clock running so that we can record the time at which these events occurs. This will help us understand the performance of the system. As the clock is advanced, we commonly refer to this as a “tick” in the simulation, just like the sound of a mechanical clock as the pendulum swings side to side (or a metronome, even).
So, we have a clock running, and for each “tick” the model records the states of all of the entities within the model. The model is our factory, and the entities are all the things that have states.
However, even in a complex model, there isn’t always a change of state that occurs for every tick of the simulation. So, we are in effect, recording “dead time” where nothing of any importance is happening.
An alternative to this is to still have the clock running, but only to record the changes of state when they occur. This is referred to as “next-event time progression”, and this can drastically reduce the time taken for the simulation to run.
We want the simulation to be as fast as possible, so that we can experiment more; we don’t want a replication of our real system if it takes the same amount of time to run, as this would be of limited help to us.
An alternate way of simulating systems is to model them as a set of continuously changing variables. Such simulations are described as a set of differential equations, and immediately puts many people off as they regard such work as being too theoretical/mathematical.
The most accurate simulations of complex scenarios can include both next-event time progression (DES) and continuous simulation.
One example might be a machine tool that has been set up for a new job. Once the set up has been completed, the cutting tool has been renewed and therefore has no wear. The machine tool changes state and goes into operation. While the job is being processed the tool is continuously worn and when it reaches a certain threshold, it triggers a change in state for the machine, which must be stopped to renew the tool.
In many cases though, we don’t have to simulate to such a degree of detail and it is good practice to start with the simplest model possible (usually a DES) and then iterate the development of that model, adding detail and complexity as driven by the new questions that we want to ask of the simulation.