ATTENTIONThis FlexSim Community Forum is read-only. Please post any new questions, ideas, or discussions to our new community (we call it Answers) at https://answers.flexsim.com/. Our new Question & Answer site brings a modern, mobile-friendly interface and more focus on getting answers quickly. There are a few differences between how our new Q&A community works vs. a classic, threaded-conversation-style forum like the one below, so be sure to read our Answers Best Practices. |
flexsim.com |
#1
|
|||
|
|||
How to model operators' efficiency?
For production lines, there are machines and operators. Machines are relatively steady, which have steady cycle times and predictable maintenance and breakdown. But Manpower is much more complicated, which may involve fatigue, irregular short break and other emergencies. Thus industrial engineers often define operator efficiencies, e.g., 85%, which means operators are available for processing in 85% time of the whole working shift and in the other 15% of the working hour, the workers are absent and not available for work.
In Flexsim, how to represent this Operator Efficiency parameter? I am thinking of using MTBF and MTTR. Does anyone has a good approach for this? Thanks. |
#2
|
|||
|
|||
Since the operator's resting is a random event that is not influenced by anything else in the model, you could make a user event named MakeOperatorRest with code similar to this:
Code:
double avgRestTime=10; double operatorEfficiency=0.85;//0 is never working, 1 is always working double avgTimeBetweenRests=operatorEfficiency*avgRestTime/(1-operatorEfficiency); //This is just a simple preempting tasksequence that makes him stop whatever he is doing //and rest for a random time with average avgRestTime. You could make a more complicated //task sequence that makes him finish what he's doing, and even go to a break room then take //a break. treenode ts=createemptytasksequence( node("/Operator4",model()) ,0,PREEMPT_ONLY); inserttask(ts,TASKTYPE_DELAY,NULL,NULL,exponential(0,avgRestTime),STATE_IDLE); dispatchtasksequence(ts); //This sets the time for his next break in avgTimeBetweenRests time units. seteventtime("MakeOperatorRest",exponential(0,avgTimeBetweenRests),1,0); You would also need to know (or estimate) the average rest time. It looks quite strange to have an operator rest for .15 seconds every second on average, because he stops suddenly to rest but accelerates to continue. Anyway, I attached a simple model of this in action. Last edited by Alex Christensen; 05-16-2008 at 02:49 PM. Reason: details |
The Following 2 Users Say Thank You to Alex Christensen For This Useful Post: | ||
Liu Bin (05-20-2008) |
#3
|
||||
|
||||
Liu Bin,
We use the MTBF/MTTR for that as well, That works quite nicelly. If you give him a preempting tasksequence (just as Alex describes) instead of using stopobject, you can even sent him to a toilet or a cantine where he waits until his break is over. Steven |
The Following User Says Thank You to Steven Hamoen For This Useful Post: | ||
Liu Bin (05-20-2008) |
#5
|
|||
|
|||
This is not a shot at anyone, it is just as a reminder to everyone here on the forum... if you wish to thank members for their comments please use the thanks button found in their quote. With every post that is made the Flexsim support recieves an email, so with numerous "empty" emails our folders can start to fill up quickly. I know that this can be a hard habit to break because we did not have this option previously, but I know that using this feature would be very appreciated.
|
The Following 3 Users Say Thank You to Dustin Derrick For This Useful Post: | ||
Phil BoBo (05-21-2008) |
Thread | Thread Starter | Forum | Replies | Last Post |
Setting the number of operators | Sung Kim | Q&A | 4 | 02-05-2008 12:31 PM |
Operators on Multiple Networks | Nico Zahn | Q&A | 0 | 10-10-2007 03:02 AM |