Escolar Documentos
Profissional Documentos
Cultura Documentos
Problem Description
Problem Statement
In a manufacturing plant, management is interested in automating the loading/unloading of components
into/from three machines as well as the movement of components between the machines with power
roller conveyors. Two conveyors unload components from the first machine, one for each of 2 types of
component, and move the components for loading into two other machines (that each process one of the
component types). The length of these conveyors is limited and can lead to downtime in the first
machine when one of the conveyors becomes full.
Since lengthening the conveyors increases cost, management wishes to keep the lengths as short as
possible but maintain minimal downtime of the first machine.
SUI Details
A department in a manufacturing plant processes two streams of partially completed components (A and
B) using three different machines. The plant operates 24 hrs/day, 7days/week.
Plant Components and Resources
Components: The manufacturing plant process to types of components: A and B.
Machines: Three machines are used to process the components. Machine M1 processes both types of
components, while machine M2 processes only type A components and machine M3 processes only
type B components. Figure 1 shows the layout of the three machines used to process the components.
M2
M2
M1
M1
B
A
A
M3
M3
B
Figure 1 Current Layout of the Plant
Conveyors: Power roller conveyors are being added to automate the loading/unloading of components
and moving components to and from the machines to improve throughput. Figure 2 shows the layout of
the plant with conveyors.
M2
M2
A
M1
M1
A
A
B
A
B
M3
M3
B
B
Employees: Three employees are responsible for moving and loading components into the machines.
Processing Components
The components are first processed at machine M1 and upon completion each type of component flows
into two separate paths so that A components are processed at machine M2 and B components are
processed at machine M3.
Current Operation: Moving components, loading components into machines and unloading
components out of the machines is done manually and currently the responsibility of 3 employees.
1) One employee is responsible for moving arriving components into machine M1. When the
machine M1 has completed its operation the employee replaces the component with another (if
available) and the moves the component to machine M2 or M3 according to its type.
2) A second employee is responsible for Machine M2. When a type A component is available, the
employee loads machine M2 with the component and removes it when the machine has
completed its processing and places it in pickup area.
3) A second employee is responsible for Machine M3. When a type B component is available, the
employee loads machine M3 with the component and removes it when the machine has
completed its processing and places it in pickup area.
Operation with Conveyors: Conveyors for augmenting throughout will move components between
machines and load/unload components to/from machines automatically. The role of employees are to
load components onto the conveyor that brings components to machine M1 and remove components
from the conveyors that unloads components from machines M2 and M3. Thus one employee is
dedicated to load the conveyor leading to machine M1, while the other two employees unload the
conveyors moving components away from machines M2 and M3.
The conveyors between machine M1 and machines M2 and M3 are of limited length. When one of
these conveyors is full, a component in machine M1 destined for that conveyor will remain in the
machine after processing until space becomes available in on the conveyor. This prevents further
processing in machine M1 and slows down component processing.
Project Goal
The goal of the simulation project is to determine the length of the conveyors between machine M1 and
the two machines M2 and M3 that minimizes the downtime for machine M1.
Parameters
Experimentation
Study: Steady state study.
Observation Interval:
Time units are minutes
Cannot be predetermined because a steady state study is required
Experimentation: The length of each conveyor leading to machines M2 and M3 is initially set to 3
components and can be lengthened to accommodate up to 10 components. The length of each conveyor
is increased using the following strategy.
Initially set the length of the conveyors to 3 components and use experimentation to determine
the percentage of time each conveyor is full and machine M1 is down.
The length of the conveyor with the largest percentage of time full in increased to accommodate
one more component and a new experiment undertaken.
Experiments are repeated until the downtime of M1 less than 10%.
Output
Employees are not modelled given that the focus on the study in on the length of the conveyors
between machine M1 and the other 2 machines.
The conveyor that brings components to machine M1 can be modelled as having an unlimited
length, given that an employee will feed any arriving components when space becomes free on
the conveyor.
Conveyors that remove components from machines M2 and M3 are not modelled. Given that
employees are constantly removing components from these conveyors, it is not expected that the
conveyors can become full. Thus when either machine finishes with a component, the
component is assumed to leave the SUI.
The time for conveyors to move components to the machines are considered negligible.
Structural View
R.Machines
[M2]
Q.Conveyors[M1]
R.Machines
[M1]
Q.Conveyors[M2]
Q.Conveyors[M3]
R.Machines
[M3]
Legend
iC.Component
Behavioural View
CompArrivals
CompProcessing
MoveCOutOfM1
CompProcessing
(Processing in
R.Machines[M1],
component left in
machine)
CompProcessing
(Component processing
in R.Machines[M2] or
R.Machines[M3])
MoveCOutOfM1
Component Lifecycle
Machine M1 Lifecycle
Input
Variable
uCArr
Variable
iC.Component.uType
uProcTimeM1
uProcTime
Range Sequence
N/A 1 component
arrives at each
arrival time.
RVP.DuArr()
RVP.uCompType()
RVP.uProcTimeM1(type)
RVP.uProcTime(machine)
Name
M1, M2, M3
Value
0, 1, 2
Parameters
Description
Name
Q.Conveyors[M2].length
Q.Conveyors[M3].length
Value
3 to 10
3 to 10.
Attributes
busy
component
Description
Set to TRUE when the machine is processing a component and FALSE
otherwise.
References a component entity being processed. Set to NOCOMP to indicate
component is not present in the machine (for machine M1).
Attributes
n
list
length
Description
The number of components on the conveyor.
The list of component entities on the conveyor.
The length of the conveyor. The attribute is used for R.Conveyors[M2] and
R.Conveyors[M3]. The R.Conveyors[M1] is assumed to have an infinite
length.
Behavioural components
Time units: minutes
Observation interval: Steady state study determined during experimentation.
Action: Initialise
TimeSequence
Event SCS
<0>
FOR ix in M1 to M3
R.Machines[ix].busy FALSE
R.Machines[ix].component
NOCOMP
Q.Conveyors[ix].N 0
ENDFOR
Action: Initialise
(the length attributes are assumed to be set)
Output
OUTPUTS
Trajectory Sequences
Description
Name
TRJ[M1Down]
TRJ[TimeConv2Full]
TRJ[TimeConv3Full]
Trajectory set reflects the time that machine M1 is down. M1Down is 1 when
R.Machines[M1].busy is FALSE and R.Machines[M1].component is not NOCOMP and 0
otherwise.
Reflects the time that Q.Conveyors[M2] is full, that is, Q.Conveyors[M2].n =
Q.Conveyors[M2].length.
Reflects the time that Q.Conveyors[M3] is full, that is, Q.Conveyors[M3].n =
Q.Conveyors[M2].length.
Name
percentTimeDown
percentTimeC2Full
percentTimeC3Full
Operator
TRJ[M1Down]
TRJ[TimeConv2Full]
Average
Average
TRJ[TimeConv3Full]
Average
MachineReadyForProcessing()
User-Defined Procedures
Description
Returns the identifier of the Q.Conveyors set into which the component from
R.Machine[M1] can be moved into. The following conditions must be met to move a
component:
1) R.Machines[M1].busy is FALSE
2) R.Machines[M1].component must reference an iC.Component entity (i.e. not
NOCOMP).
3) Space is available for on the conveyor for the component, either:
a. R.Machines[M1].component.type = A (i.e. an A component is in the machine)
and Q.Conveyors[M2].n is less than Q.Conveyors[M2].length OR
b. R.Machines[M1].component.type = B (i.e. a B component is in the machine) and
Q.Conveyors[M3].n is less than Q.Conveyors[M3].length
If 3a is true, return M2, if 3b is true, return M3, otherwise return NONE (no component
can be moved).
Returns the identifier, id, of a member of the R.Machines category under the following
conditions:
1) R.Machines[id].busy is false
2) Q.Conveyors[id].n is non-zero
3) R.Machines[id].component is equal to NOCOMP
If no machine is ready for component processing, NONE is returned.
Input Constructs
Random Variate Procedures
Description
Name
DuCArr()
uCompType()
uProcTime(machine, type)
Data Model
Action: CompArrivals
Arrival of A component.
TimeSequence RVP.DuCArr()
Event
iC.Component SP.Derive(Component)
iC.Component.type RVP.uCompType()
SP.InsertQue(Q.Conveyors[M1], iC.Component)
Behavioural Constructs
Activity: CompProcessing
Processing components at any of the machines. The UDP.MachineReadForProcessing() determines which
machine can start processing. Processing consists of removing a component from the Q.Conveyors[id] leading to
the machine, processing the component (duration determined by RVP.uProcTime(), and removing the component
from the machine. In the case of machines M2 and M3, the component leaves the system after processing. In the
case of machine M1, the component is left in the machine for removal by the conditional action.
Precondition UDP.MachineReadyForProcessing() NONE
Event
id RVP.MachineReadyForProcessing()
R.Machines[id].busy TRUE
R.Machines[id].component Q.RemoveQue(Q.Conveyors[id])
Duration
RVP.uProcTime(id, R.Machines[id].component.type)
Event
R.Machines[id].busy FALSE
IF(id M1) THEN (Conditional action will remove component from machine M1)
R.Machines[id].component NOCOMP
SP.Leave(R.Machines[id].component)
ENDIF
Action: MoveCOutOfM1
Moving a component out of M1 when processing is complete and space is available on conveyor that
is to receive the component.
Precondition UDP.ConveyorReadyForComp() NONE
Event
qid UDP. ConveyorReadyForComp()
SP.InsertQue(Q.Conveyors[qid], R.Machines[M1].component)
R.Machines[M1].component NOCOMP
Interarrival times for components are exponentially distributed with the following means:
o A components: 12.7 minutes
o B components: 15.4 minutes
o These have been revised to provide interarrival times for all components and a data
model for the type of the arriving component below.
Processing times in each machine are also exponentially distributed with the following means:
o Machine M1, A component: 2.1 minutes
o Machine M1, B component: 4.2 minutes
o Machine M2: 9.4 minutes
o Machine M3: 10.5 minutes
Time for moving components on the conveyors take only a few seconds.