MRP Simulation with Simulink - BOM explosion
I study supply chain and manufacturing processes. My target is to create a simulation in Simulink starting from a Sales Order, ending with the Delivery, and showcasing the Materials Requirement Process :
- Sales Order (SO), requiring n
- Products (PR) in Inventory (IN), and if not enough stock available, generate either a
- Manufacturing Order (MO) to produce the Product (PR) if sourced internally, or a
- Purchase Order (PO) if the Product is sourced externally.
- The Product is made of Components linked together through of a Bill of Materials (BOM).
- a BOM is an array of qty of Products. Again, if not enough available, generate a MO or a PO
- The BOM can be multi-level and forms in that case a directed graph (DAG)
I have started with Simulink and the SimEvents Library. Basically, I generate an Entity for the SO, check if stock is available, and if not, check if sourced internally, and ... here I need to "read" the BOM of the Product, to further check availability, etc. This is a recursive process, ending when the leaf has enough stock OR the Product is sourced externally and a PO is created.
I went through the article for_each_subsystem but could not implement it correctly in my use case.
I also tried to query a database to fetch the BOM on demand. This works in Matlab, but not in a Simulink function.
If possible, I would like to create a subsystem for each Product or Component in the multi-level BOM, in order to simulate a flow of n-Customer Orders, and measure the impact on the inventory values, the stress at the internal Assembly departments, etc.
Do you have experience to share with me in that field ? Which blocks would you use to model that situation (especially the BOM explosion). Any help is appreciated.
Thanks.
1 Comment
Answers (1)
See Also
Categories
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!