Last updated on 16th July 2024
Benjamin Schumann, PhD developed a factory simulation using the Simudyne SDK.
Dr. Schumann wrote two blog posts on the Simudyne SDK, and the model that he implemented in the software that can be found here for more context:
The model consists of several agent classes that interact. In essence, it is a linear sequence of conveyors and machines with products flowing through them along the red arrows:
All agents "live" in the Factory
This is the main model file. It loads the input data (which conveyors to connect to which machines), initializes all agents and puts initial products into conveyors and machines. This is also where Simudyne steps through model ticks (i.e. advances time).
As shown below, the main part executes the Simudyne agent paradigm by:
We also regularly add new products into the very first conveyor at a rate of 1000 products per minute.
We have 6 conveyors, each with a length of 9000 meters (it is a big factory) and a speed of 2.223 meters per second.
These are stored in the Conveyor class. Conveyors can do various things:
There are a few more functions that mimic conveyor "physics", such that it is an accumulating conveyor where products need to travel along the length of it before being able to queue or exit.
Each machine can always only work on 1 product. It has no built-in queue (that is the purpose of the conveyors). Machines can do 3 things:
Each product is an agent with a fixed length of 0.1m (so we determine how many can be stored on conveyors). Each product also tracks how long it already spent on a machine (to trigger exiting a machine after the cycle time is done) as well as its (physical) position on a conveyor until it reaches the exit edge.
You must make sure that your model applies these parameters: