Random assignment of work elements to workstations in an assembly line

All topics specific to modeling questions in Enterprise Dynamics
Amir_Ebadi
Posts: 9
Joined: Monday 27 July, 2015 - 13:37

Random assignment of work elements to workstations in an assembly line

Post by Amir_Ebadi »

Hello everyone,
Hope you are doing well,
I am modeling an assembly line which produces one type of product. this product has its required work elements which should be done in assembly line. These work elements should be performed based of their predefined relations which is called precedence relations. indeed, precedence relations demonstrates priorities of each work element and its required time as well.
Assigning of these work elements to each workstation should be done in every repetition of simulation and this process should be keep going until all work elements are assigned to workstations so that accumulative time of work elements assigned to each workstation does not exceed a predefined cycle time. considering above description of the assembly line, I would be grateful if you can help me on questions below :

1- How the work elements should be modeled? to be more precise, which atoms should be used for modeling work elements?
2- How the repetition of work elements assigning to workstations should be modeled?

Your kind support would be highly appreciated.
Thanks and best regards
Amir Ebadi
SimonvdW
Posts: 47
Joined: Thursday 06 January, 2011 - 09:52

Re: Random assignment of work elements to workstations in an assembly line

Post by SimonvdW »

Dear Amir Ebadi,

We have some doubts whether we have understood your question well. Is it correct that you want to model an assembly line using the takt time principle ?

So there are several working stations where elements are assembled to the main product. Each station must perform its task within the takt time interval. Otherwise the seamless flow interrupted. This problem can arise when material is not available at the work station (randomness in delivery) or when the process times in the working stations are variable.

Is this what you want to achieve?
And if so what happens in your case when the takt time is not met ?

What have you done so for in the model?

Regards, Simon
Amir_Ebadi
Posts: 9
Joined: Monday 27 July, 2015 - 13:37

Re: Random assignment of work elements to workstations in an assembly line

Post by Amir_Ebadi »

Dear Mr. Simon

Thanks for your kind support and precise interpretation.

This assembly line should act based on a predefined takt time.
As you mentioned, this assembly line consists of a number of workstations. Work in process (WIP) go down through the workstations and in each workstations a subset of work elements like screwing, inspection, trimming , ... are performed on the WIP and it will be completed along assembly line gradually.
Each workstation seems to finish its process during the predefined takt time. there is no material shortage allowed in this model, but because of stochastic times of work elements, it will be probable to exceed the takt time. but there are buffers between the workstations which will absorb the time variability of workstations times (Cycle time). in case of reaching the buffer capacity, inevitably the material flow will be blocked. in fact the aim of this modelling is to assign the work elements to workstations so that by using the buffers between workstations, this kind of material interruption is avoided.
With regard to above-mentioned points, your interpretation of my model is absolutely correct.

To be more illustrative, please consider a sample assembly line model with three workstations named w1, w2, w3 and five work elements named 1 , 2 , 3 , 4 , 5 which has been attached.
assembly line.mod
(48.57 KiB) Downloaded 294 times
1- Precedence relations between these five work elements has been attached.
precedence graph.jpg
precedence graph.jpg (16.39 KiB) Viewed 8111 times
The numbers shown above the circles are work elements required processing time in terms of second.

2- Sample takt time is 40 seconds.

3- The aim is to assign these five work elements to three workstations so that precedence relation is going to be met. In other words, with regard to precedence relations, firstly work element (1) should be assigned and only after assigning it, work elements (2) and (3) could be assigned and so on. (Question 1 : how this concept should be modeled?)

Note that each work elements should be assigned to only one workstation. (Question 2 : how this concept should be modeled?)
Besides, during assigning the work elements to work stations, predefined takt time in each workstations should be fulfilled. To be more precise, whenever cycle time of workstation reaches up to 40 seconds, successive workstation will be opened and remained work elements are assigned to the new workstation. (Question 3 : how this concept should be modeled?)

Cycle time of every workstation will be determined according to sum of processing time of assigned work elements to considered workstation. (Question 4 : In this case, how the cycle time field of every workstation(server) should be filled?)

Considering above mentioned points, please let me know your valuable points of view and guidelines.

Thanks and best regards
Amir Ebadi
Bram de Vries
Posts: 60
Joined: Thursday 08 January, 2015 - 13:29

Re: Random assignment of work elements to workstations in an assembly line

Post by Bram de Vries »

Dear Amir Ebadi,

I do not competely understand what you mean when you say that work elements should only be assigned to one work station.
Do you mean that a work element can only be assigned to one work station to work at one product at a time? This would mean that work element 3 cannot be assigned to a product at Work Station 1 and at the same time to a different product at Work Station 2 for example.

Or do you mean that a work element can only be assigned to one work station for each product? This would mean that work element 3 could be assigned to a product at Work Sation 1 and at the same time to a different product at Work Station 2, but work element 3 cannot work at the same product first at Work Station 1 and then later at Work Station 2.

Kind regards,

Bram
Amir_Ebadi
Posts: 9
Joined: Monday 27 July, 2015 - 13:37

Re: Random assignment of work elements to workstations in an assembly line

Post by Amir_Ebadi »

Dear Bram
Hope you are doing well,
I would appreciate your kind attention to my inquiry.

Firstly it should be mentioned that there are not different products in this model. Indeed, this assembly line only produces one type of product.
For keeping on the model clarification, Let me explicate the problem more precisely :
The problem of Assembly Line Balancing Problem (ALBP) which I am going to model in ED, has a number of particular hypothesizes in the literature review. As I mentioned in previous post, some of these hypothesizes are:
1- Each work element (screwing, trimming, inspection, …) should be assigned to only one work station. In other words, each work element is allowed to be assigned to only one workstation at the same time and after assigning it to one particular workstation, it could not to be assigned to another workstation at the same time. This is an logical assumption in the real-life assembly lines and should be considered in the modeling.
In my sample model there is only one type of product. So for this unique type of product, the simulation modeling should be done so that each work element is assigned to only one workstation.

For instance, according to sample precedence graph you can see in attachment, one possible assignment of work elements could be as follows :

work elements 1 and 2 with total processing time of 24+8=32 are assigned to workstation 1 and work elements 3,4 and 5 with total processing time of 12+10+7=29 are assigned to workstation 2.
In this instance, work element 1 was assigned to workstation 1, so in the simulation modeling this concept should be considered in such a way that work element 1 which was assigned to workstation 1 will not be allowed to assigned to another workstation at the same time in this loop.

2- In this type of problem, the process of assigning of work elements to workstations should be repeat during simulation process (a repetitive loop) until the finishing conditions are met.
The finishing conditions are either the predefined finishing assumptions or the number of runs in simulation.
In my model, the finishing assumptions are met whenever:
- All of work elements are assigned to workstations so that as mentioned earlier, each work element is assigned to only one workstation
- Cycle time of every workstation (sum of the assigned work elements' processing time) meets the predefined takt time and be equal or lower than it.
3- Precedence relations between work elements should be met during the random assignment of work elements to work stations in each loop. In other words, work elements should be assigned to work stations based on the particular priority which is implied by precedence graph which has been shown in attachment.

To sum up, I would appreciate your kind attention and guidelines with regard to help on below matters:

1- How the assumption of assigning each work element to only one work station at the same time in each loop and for only one type of product should be modeled?

2- How the priority of assigning the work elements based on precedence graph should be considered in the model?

3- How should I make a repetitive loop so that in every repetition, work elements assign to workstations so that matters number 1 and 2 are being met, until the finishing conditions is met (Random assignment of work elements in each loop)

4- How the concept of not exceeding from takt time in every work station,(cycle time < takt time), should be considered in the model?

Thanks and best regards
Amir Ebadi
Attachments
Precedence graph
Precedence graph
precedence graph.jpg (83.41 KiB) Viewed 8076 times
Bram de Vries
Posts: 60
Joined: Thursday 08 January, 2015 - 13:29

Re: Random assignment of work elements to workstations in an assembly line

Post by Bram de Vries »

Dear Amir Ebadi,

Attached you will find an example model for your situation, I hope I understood everything correctly.

The model contains three workstations behind each other, each with a buffer in between. Furthermore I have three tables:

- WorkElements, which has rows corresponding to the several work elements. Each row indicates the cycletime for that work element, whether it has been assigned (1 or 0) and to which work station it has been assigned (1, 2 or 3).

- Successors, which contains for each work elelement a list of immediate successors in the precedence relations.

- Cycletimes, which contains the actual cycletime per workstation.

You will see that each time you press Reset, the assignment of the work elements to the workstations may be a little different. Also the cycletimes may differ. This happens because of the code on the Initialize atom, which is executed when the simulation is reset. The code on the Initialize atom is unfortunately quite complex. I will try to explain it for you. First I define a few variables. The two most important are the Arrays for Candidates and Arrays for Successors). Then, it clears the assignments of the WorkElements table, since these need to be reassigned at the start of every simulation run. After this, I add the first work element (with number 1) to the array of candidates. This is because this is the first work element that needs to be assigned.

What follows is a process to decide which work elements should be assigned to which work stations. I loop over the number of input channels of the initialize atom (notice that the work stations are connected to these input channels). I then do another loop in whic I first determine a random work element from the list of candidates (note that I use the dUniform function for this). I then assign this work element to the current workstation (valIC). I determine the new process time for this station and then I add all the immediate successors of the involved work element to the list of successors. From the list of successors, I will then determine candidate work elements which has not been assigned yet and which will not exceed the takt time of 40 seconds. I add these candidates to the list of candidates and then the loop starts again for this work station and a random work element fromt the list of candidates is again assigned to this work station etc. When no more candidates can be assigned, the process will move on to the next work station.

Finally, the code on the Initialize atom determines the actual process times for the work stations based on the WorkElements table.

I hope my explanation is clear but if you have any questions feel free to contact us again!

Kind regards,

Bram
Attachments
assembly line2.mod
(132.34 KiB) Downloaded 306 times
Amir_Ebadi
Posts: 9
Joined: Monday 27 July, 2015 - 13:37

Re: Random assignment of work elements to workstations in an assembly line

Post by Amir_Ebadi »

Dear Mr. Bram
Hi and hope everything is going well!
Firstly let me thank you for your kind support :)
Your suggested model and comprehensive explanation toward 4DS statements written in Initialize atom fully meet my model's assumption. but there are some issues should be considered regarding your suggested model and I would be grateful if you give me a hand to deal with it.

1- At the moment of opening the model, an error appears that I have attached it with name of Model opening. what is your view about it and how can I solve this error?
2- Whenever I reset the model, the assignment of work elements does not change and another error appears which can be seen in attached named Model reset. how should I resolve this error?
3- The server number 3 does not work. according to table of Cycle time, there is no time value for this server. how this problem should be solved?

I would appreciate your support and looking forward to receive your valuable points.

Best regards
Amir
Attachments
Model reset.txt
(59.82 KiB) Downloaded 266 times
Model opening.txt
(20.4 KiB) Downloaded 290 times
Bram de Vries
Posts: 60
Joined: Thursday 08 January, 2015 - 13:29

Re: Random assignment of work elements to workstations in an assembly line

Post by Bram de Vries »

Hello Amir Ebadi,

I see that you are using ED7.2 for your modeling. I have been using ED9 and this causes your problems. Now I will try to update the model such that it also works in ED7.2

Kind regards,

Bram de Vries
Amir_Ebadi
Posts: 9
Joined: Monday 27 July, 2015 - 13:37

Re: Random assignment of work elements to workstations in an assembly line

Post by Amir_Ebadi »

Dear Mr. Bram
Well noted your points with thanks.
I am looking forward to hearing from you regarding the considered modelling.
Thanks and best regards
Amir
Bram de Vries
Posts: 60
Joined: Thursday 08 January, 2015 - 13:29

Re: Random assignment of work elements to workstations in an assembly line

Post by Bram de Vries »

Dear Amir Ebadi,

Attached you will find my example model which can now be used with ED7.2. I had to replace the arrays from my previous models with tables (ListSuccessors and ListCandidates). I also updated the code on the Initialize atom accordingly (furthermore I added some comments to this code to hopefully clarify it). Please note that the first rows of these new tables are dummy rows and are not really used for anything, the code on the Initialize atom is built on this assumption.

You are correct in saying that the third work station never has a cycletime. This is because I determine the cycletime for each workstation based on the assignment of workelements to it. I add their process times and use this as the parameter for a Negative Exponential distribution at the work stations. However, each assignment that my algorithm makes never assigns any work element to work station 3, this is because all work elements fit to the first work stations. When using the process times you mentioned I find two possible assignments:

Assignment 1:
Work station 1 --> work element 1 & 2, Cycletime is 32
Work station 2 --> work element 3, 4 & 5, Cycletime is 29

Assignment 2:
Work station 1 --> work element 1 & 3, Cycletime is 36
Work station 2 --> work element 2, 4 & 5, Cycletime is 25

As you can see both assignments never cross the takt time of 40 seconds. Please let me know if I misunderstood anythings.

Kind regards,

Bram
Attachments
assembly line3.mod
(34.64 KiB) Downloaded 294 times
Post Reply