modeling a FIRST-IN FIRST-OUT type problem

Use this forum to discuss any issues relating to Systems Dynamics and Systems Thinking.
Post Reply
DDLin26
Junior Member
Posts: 2
Joined: Tue Jan 05, 2010 6:13 pm

modeling a FIRST-IN FIRST-OUT type problem

Post by DDLin26 »

I am modeling an industrial process. The system produces a quantity of 12 of Part X.


Part X goes through machine A--> machine B --> machine C. At each machine, there needs to be a time hold before releasing to the next machine. How do I make sure that the FIRST part X that goes into machine B is the FIRST part X that flows out of machine B and into machine C?

For the purposes of this model, we must model at the individual part level. Part X is subscripted (s1-s12) to create individual parts. Is there a built in function that does the first-in-first-out requirement?
LAUJJL
Senior Member
Posts: 1477
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

Post by LAUJJL »

The process is not very clear for me. you can tell the the first part X that goes into machie B is the first part that flows out of machine B but it will be the first part to flow into machine C if it is idle and that there is no previous part still waiting to be processed, unless it takes the same time for each machine to process each part. If is the case the problem is very simple.

If it takes a different time del for each machine to process each part and each part is entering the first machine one after the other in increasing order, you can describe the process for each machine by a fixed delay.
You need two subscripts say part = (p1-p12) and machine = A,B,C. if the time part 4 enters the machine B is t, then it goes out of machine B at time t plus del(p4,B).
The problem is that for the part to enter the next machine that machine must be idle and there must not be another part already waiting to be processed by the same machine. One must then have a variable say idle subscripted by machine that tells if a machine is idle and equal to - the part number that was previously processed or if working and equal to the part that is being processed.
One can then determine if the part that went out of a machine can enter the next one if the variable idle(machine) of the next machine is negative and the negative number tells that the part having being previously processed is the part multiplied by -1 plus one.

Example: if part 4 is goint out of the machine B at time 6, it will enter the machine C at a time greater than equal to 6 when the variable telling the state of the machine C is equal to -3 equal to (4 * -1) + 1, idle(C) = -3, that tells that the machine C is free and had just processed the part 3 that preceeds part 4.
One can imagine probably other methods.
JJ

[Edited on 1-12-2010 by LAUJJL]
tomfid
Administrator
Posts: 4023
Joined: Wed May 24, 2006 4:54 am

Post by tomfid »

Have you looked at QUEUE FIFO ?
Post Reply