Professional Documents
Culture Documents
1
Flow Chart-Example 2
Same bank as before, but with two tellers and 40% of arriving customers first sit at a desk and fill
out forms. Time to fill forms takes between 2.5 and 5.5 minutes. Assume total customers in the
bank cannot exceed 13.
2
Flow Chart-Example 3
Same bank as in example 2, but with an ATM and a drive-
thru window. The waiting line for ATM is limited to 3
customers. For customers arriving at the lobby, assume
40%-40%-20% for customer directly joining the queue, sit
down to fill forms and joining the ATM waiting line,
respectively. The time to complete the ATM transaction
follows normal distribution with mean = 2 minutes, and
standard deviation =.5 minutes.
3
Flow Chart-Example 3
For the drive-through line, cars arrive according to
exponential distribution with a mean of 5 minutes.
Service time for drive-thru window is triangular with
minimum of 1 minutes, mode of 2 minutes and maximum
of 5 minutes. There are only two tellers serving the two
teller windows inside the lobby of the bank and the drive-
through window. Also, assume only three cars can wait in
line for drive-thru service.
4
Flow Chart-Example 3
5
Simulation Using Promodel
What is a system?
----System is a collection of elements that functions
together to achieve a desired goal
A system consists of multiple elements
7
SYSTEM to ProModel MODEL
entity arrivals
L E
entity exits
L EXIT
8
ProModel Modeling Elements
The main elements are: entity arrivals
L E
LOCATIONS (object)
ENTITIES (object)
L
ARRIVALS (interaction)
PROCESSING (interaction)
L
RESOURCES
entity exits
L EXIT
9
ProModel™ - Sequence
It is usually easier if you draw a picture / flow chart / etc.
It is also usually easier to work backwards
10
ProModel™ - Sequence
Once a clear picture of what is required is defined, then
declare and define the following modules within
ProModel:
Locations
Entities
Arrivals
Processing
Variables
…
11
ProModel™ - Locations
Locations represent fixed places in the system where
entities are routed for processing,delay, storage, decision
making, or some other activity.
some type of receiving locations to hold incoming entities.
processing locations where entities have value added to
them.
12
ProModel™ - Locations
Things to define in the Location module found under
the “Build” tab:
Name
Capacity – How many entities at a time
Units – How many of this location type
DTs – Downtime logic (covered later)
Rules – Decision rules (FIFO, random, etc.)
Color, size, and layout placement can be done.
13
ProModel™ - Entities
Anything that a model can process is called an entity.
Some examples are parts or widgets in a factory,
patients in a hospital, customers in a bank or a grocery
store,and travelers calling in for airline reservations.
The entities are often also limited in number,
depending upon the program type, so creativity may
again be required.
Entities are discrete units that can be bundled. This
aspect is covered later.
14
ProModel™ - Entities
Things to define in the “Entities” module under the
“Build” tab:
Name
Speed of Travel (default is 150 fpm)
Color, size, etc.
Attributes are set by a separate module under “Build”
and cover locations and entities. This is a future topic
as well.
15
ProModel™ - Arrivals
The mechanism for defining how entities enter the
system is called arrivals. Entities can arrive singly or in
batches.
Can be a single occurrence, infinite, or anything in
between, as defined in the logic.
Each entity entering the system will have its own arrival
protocol.
16
ProModel™ - Arrivals
Things to define for “Arrivals” under the “Build” tab:
Entity Name
Location of arrival
Quantity at each arrival
First time of arrival
17
ProModel™ - Arrivals
Things to define for “Arrivals” under the “Build” tab,
continued:
Batch size: the number of entities arriving at a time
(Qty each).
Frequency: the time between the arrivals of successive
entities
Occurrences :the total number of batches of arrivals
The batch size, time between successive arrivals, and
total number of batches can be either constants or
random (statistical distributions).
First Time:the first time that the arrival pattern is to
begin is termed
18 Logic – Special conditions, etc.
ProModel™ - Processing
This is where the meat of the program is defined.
Processing describes the operations that take place at a
location
such as the amount of time an entity spends there, the
resources it needs to complete processing,and anything else
that happens at the location, including selecting an entity’s
next destination.
19
ProModel™ - Processing
Things to define for “Processing” under the “Build” tab:
Incoming Entity (one entry allowed)
Location – where the entity is NOW
Operation – What logical steps are to be applied to the
entity at the location above. Can be waits, updates on
tracking variables, costing, etc.
Output – Declare the SAME entity unless you are
really intending to change entities in this step.
20
ProModel™ - Processing
Things to define for “Processing” under the “Build” tab,
continued:
Destination – The target location. Can be more than
one, but each location is defined separately, using the
return key. If more than one location is used as a
target, you need rules for selection.
Rule – This section defines the logic for how and
which location gets the entity, whether as a preloaded
subroutine or a user-defined subroutine.
Move Logic – Used for Resources, primarily.
21
ProModel™ - Variables
22
VARIABLE (continued)
INC/DEC statements +, -, / , *, =
INC variable ID, Valid in any logic field
increment value DEC (operation, move logic)
variable ID, decrement
value
default
increment/decrement
value is one.
23
ProModel™ - Variables
Things to define for “Variables” under the “Build” tab:
ID – Declares the variable name
Type – Integer or real, default is integer
Initial Value
Notes – Useful for large programs to track what this
variable is supposed to do.
Icon – This tells you when a counter appears on the
layout.
24
ProModel™ - other elements
More items available, and to be discussed later:
Resources – Forklifts and the like.
Path Networks – used to constrain movements
within a shop model, for example.
Arrays, Macros, User Distributions, etc. help
convert the process into a definable model.
Background Graphics can be used for labeling and
identifying components in a layout.
25
ProModel™ - Distributions
26
ProModel™ - Distributions
27
Limits of ProModel Student version
20 Locations
8 Entity Types
8 Resource Types
5 Attributes
15 RTI parameters
28
Building your First Model
Customers visit the neighborhood barbershop Fantastic
Dan for a haircut.
The customer interarrival time is triangular distribution
with min 7, mode 8, and max 9
Dan (the barber) takes anywhere from 8 to 10 minutes,
uniformly distributed (mean and half-width of 9 and 1
minute respectively) for each haircut.This time also includes
the initial greetings and the transaction of money at the end
of the haircut.
Run the simulation model for one day (480 minutes). Find
these answers:
29
Cont…
30
Cont…
31
Cont…
Locations
window
32
Cont…
33
Cont…
34
Cont…
35
Cont…
36
Cont…
37
Cont…
38
Cont…
39
Cont…
40
Cont…
41
42
Cont…
43
44
45
46
Cont…
47
Cont…
48
49
Cont…
50
Cont…
51
Cont…
a. About how many customers does Dan process per day?
Entity summary
total exits=52 customer
52
Cont…
c. What is the average time spent by a customer in the
salon?
Or The average time spent by a customer in the barbershop?
32.28 minutes
Entity summary
average time in system(min) = 30.13
average time in system(min)=
average time waiting + average time in operation + average time blocked
d. What is the utilization of Barber Dan?
Location summary
Dan, utilization= 98.07%
e 53
Cont…
e. Explain the difference between total entries and total
exits?
Total entries=59, total exits=52, and the currently
quantity in system =7
55
56
Repeat the simulation for Dan’s barber model by using a
warm up period = 2 hours
57
Note that the simulation runs for 2 hours ( which is the
warm up period)+ run time ( 8 hours)
58
Replicates : the repetition of a test or complete
experiment with different random number seeds
59
[9.85, 7.91]
60
61
Repeat the simulation for Dan’s barber model with
replicates = 5
62
The results are shown for average of repetitions.
63
Another Example_ Bank with one teller
Bank with one teller; Arrival of customers follows
exponential distribution with an average of one
customer every 2 minutes. Service time follows
normal distribution with an average of 2.4 minutes
and a standard deviation of .5 minutes. Waiting line
is limited to 7 customers. Simulate the operation
from 11 a.m. to 1 p.m. Let the warm-up period be 2
hours with 30 replicates
64
Modeling Bank with
one teller
65
Modeling the problem: Entities
66
Locations
67
Processing
68
69
Arrivals
70
Another Example_ Bank with one teller
71
Another Example_ Bank with one teller
72
Another Example_ Bank with one teller
73
Another Example_ Bank with one teller
Out put
74
Another Example_ Bank with one teller
75
Another Example_ Bank with one teller
76
Another Example_ Bank with one teller
77
Errors may occur
78
Another Example_ Bank with two teller
Same bank as before, but with two tellers and 40% of
arriving customers first sit at a desk and fill out forms
with capacity of 3 . Time to fill forms takes between
2.5 and 5.5 minutes. Then two teller will be to serve
them . Assume total customers in the bank cannot
exceed 13.
79
Another Example_ Bank with two teller
Same bank as before, but with two tellers and 40% of
arriving customers first sit at a desk and fill out forms
with capacity of 3 . Time to fill forms takes between
2.5 and 5.5 minutes. Then two teller will be to serve
them . Assume total customers in the bank cannot
exceed 13.
80
Note the teller_window
includes two units inserted
81
below .
82
Here, The entity picture is replaced with four graphics, each one
with different color. Uncheck new, then choose the picture with
its color
Graphic 3
Graphic 1
83
Graphic 2 Graphic 4
84
85
customer at desk will
go to teller waiting line
so first 1 teller line and
no need for blk number
for desk
1 refers to that there is one route is allowed not both of them, either
getting to the desk or to the waiting line. one route ONLY is allowed.
Randomly selects a location listed in a block of routings based on a
probability. Several probability routings should be used together and the
sum of
86
all probabilities must equal one. The entity will wait to be routed
87
88
89
90
Another Example_ Bank with two teller
91
Another Example_ Bank with two teller
92
Another Example_ Bank with two teller
93
Another Example_ Bank with two teller
94
Another Example_ Bank with two teller
Lobby
Total number of customers served = 59.33
96
Another Example_ Bank with two teller
Errors
97
ProModel™ - Attributes
Two types: Entity and Location. Entity is more
common.
Attributes can be examined and acted upon by the
logic in any part of the program from arrivals to
departures.
Some examples of attributes are part type, customer
number, and time of arrival of an entity, as well as
length, weight, volume, or some other characteristic
of an entity.
Attributes of an entity are copied over whenever an
entity is cloned. This happens when entities are split,
for example.
98
ATTRIBUTES
Carry information about the object (entity, location), either
for decision making or for output reporting
Are assigned to and stay with entities
Defined at: Build | Attribute
Assigned to entities at: Build | Arrivals – Logic
Used and Modified during the simulation at: Build |
Processing
• Reflect changing values
• Gather information
• Location rules / routing rules…
• If…then, etc.
99
ProModel™ - Attributes
Within ProModel, select the Attribute field from the drop-
down Build menu.
The required elements are “name”, “type” (integer/real),
and classification.
Values are assigned in the logic.
Attributes are especially useful when assigning a user
condition for routing.
100
Decision Statements
In ProModel you can make use of several general
control statements for decision making. ProModel
meets the modern standards of
structured program design.
sequences, decisions, and loops:
102
continued
WHILE-DO Loop
The WHILE-DO block repeats a group of statements
continuously while a condition remains true. If the condition
is false, the loop is bypassed.
DO-WHILE Loop
The DO-WHILE block repeats a group of statements
continuously while a condition remains true. This loop will
be executed at least once; use it for processes that will be
executed at least once and possibly more.
GOTO Statement
The GOTO block jumps to the statement identified by the
designated label. A label should follow the normal rules for
names. A colon follows a label.
103
Example _Using Attributes and IFTHEN to Track Customer
Types
Problem Statement:
Customers visit the neighborhood barbershop Fantastic Dan
for a haircut. Among the customers there are 20 percent
children, 50 percent women, and 30 percent men. The
customer interarrival time is triangularly distributed with a
minimum, mode, and maximum of seven, eight, and nine
minutes respectively. The haircut time (in minutes) depends
on the type of customer and is given in following Table. This
time also includes the initial greetings and the transaction of
money at the end of the haircut. Run the simulation model
for one day (480 minutes).
104
Example _Using Attributes and IFTHEN to Track Customer
Types
Problem Statement:
Note that the haircut time (in minutes) depends on the type of
customer. This differs than the previous example, the hair cut
was the same for all. So we didn’t need attributes their but here
we need it.
105
The Haircut Time for All
Customers
106
Cont…
a. About how many customers of each type does Dan
process per day?
b. What is the average number of customers of each type
waiting to get a haircut? What is the maximum?
c. What is the average time spent by a customer of each
type in the salon?
What is the maximum?
107
Modelling
Build:
Locations: 1. customer line 2. Dan
Entities : 1. customer 2. children ( graphic 1)
3. Women ( graphic 2) 4. men ( graphic 3)
Attribute : attr1
More elements => user defined table, ID= customer_type
Arrivals : logic: attr1= customer_type
Processing
Simulation option
108
109
110
111
User Defined Tables
112
User Defined Tables
113
Its better to write it at Logic window to assure
that the same names are taken
114
To allow three routs, first 1 must be selected for the
three types of customer not only for the first type.
This is done by routing rule, start new block.
Uncheck new entity, if it is unchecked, the * appears
near the route, and the route is undefined. Quantity is
Don’t forget wait 1
If * appears in route 2 and 3, there will be an error in
simulation, routes undefined
If attr1=1 then
{ Graphic 1 Route 1}
Else
{ If attr1=2 then
{Graphic 2 Route 2}
Else
{Graphic 3 Route 3 }}
116
117
897\8
118
119
solution
Same as route 2
120
Simulation outputs
121
Cont…
a. About how many customers of each type does Dan
process per day?
Customer type: total exits
Children: 7
Women: 22
Men:15
b. What is the average number of customers of each type
waiting to get a haircut? What is the maximum?
Here the average and maximum for all customer types
because the arrivals are customer not customer- type
for the waiting line
122
Cont…
Average : 7.05
Maximum: 16
123
Other way
Using Attributes and IFTHEN to Track Customer
Types
But this way don't track each type of customers
The difference in building process
124
No operation
The output is customer and there is one
route only
125
The output is customer
126
If Attr1
= 1 Then
{Graphic 1 WAIT U(8, 2)}
Else
{If Attr1 = 2 Then
{ Graphic 2 WAIT U(12, 3) }
Else
{Graphic 3 WAIT U(10, 2) }}
127
128
cannot track each type of customers
129
cannot track each type of customers
130
131
Cycle Time
The Clock and Log are functions built into ProModel to
allow us to keep track of system events such as cycle
time, lead time, or flow time within the system.
The Clock function returns the current simulation clock
time in hours, minutes, or seconds.
The value returned is real.
The Log function is used to subtract an expression from
the current simulation clock time and stores the result
with a text string header.
Time_In = Clock()
Log "Cycle Time =", Time_In
132
Example : Clock and log model
Clients visit the neighborhood center for a haircut Client
interarrival time is uniformly distributed with a mean and
half width of 2 and 1minutes respectively. The center
opens from 8 a.m. to 4 p.m.
At the first six hours from the opening the client visit
the teller in the auditor window then go to the next
teller at service 1 window. The related service time at
each window are given in following Table.
Then from 2 p.m to 4 p.m the service changes to, so
client visit the teller in loan window to get it, then go
to the next teller at service 2 window The related
service time at each window are given in following
Table
133
Activity / service time TIME ( min)
Auditor window T(5,6,8)
Service 1 window U (1,2)
Loan window T (4.5,5,7)
Service 2 window N(2.1,1.3)
141
142
results
143
Results
Total exit 78 client
Avg time in system 12.42 min
Avg time per entity at loan 5. 20 min
window
Total entries 22 clients
Avg time per entity at auditor 6.40 min
window
Total entries 58
Log
Max 477.8
Min 8.34
Avg 250.33
Number of observation 78
144
145
ProModel™ - Arrival Cycles
146
ProModel™ - Arrival Cycles
147
ProModel™ - Arrival Cycles
Table Editing
Two fields: Time and Qty / %.
148
ProModel™ - Arrival Cycles
Arrivals Editing
The fields affected are the Qty each, Number of
Occurrences and Frequency
Qty Each – Use the expression for the numerical quantity
for the whole cycle, and select the cycle by name from the
drop-down menu.
Number of Occurrences – Defines the number of cycles
expected per simulation run
Frequency – Sets the time between the start of on cycle
until the start of the next cycle. This must be longer than
the cycle time or you will get a runtime error.
149
ProModel™ - Arrival Cycles
Problem Statement:
Customers visit the neighborhood barbershop Fantastic Dan
for a haircut. Among the customers there are 20 percent
children, 50 percent women, and 30 percent men. If the arrival
quantity of customers is normally distributed with an average
of 100 and standard deviation of 5 minutes respectively. the
number of times to repeat the cycle is infinite and the time
between the start of each cycle is 30 hours.
The haircut time (in minutes) depends on the type of customer
and is given in following Table. This time also includes the
initial greetings and the transaction of money at the end of the
haircut. Run the simulation model 60 hours
150
ProModel™ - Arrival Cycles
151
Customer Arrival Pattern at Fantastic Dan
152
Customer Arrival Pattern at Fantastic Dan
153
Customer Arrival Pattern at Fantastic Dan
154
Customer Arrival Pattern at Fantastic Dan
155
Customer Arrival Pattern at Fantastic Dan
156
157
error
solution
158
a. About how many customers of each type does Dan
process per day?
b. What is the average number of customers of each type
waiting to get a haircut? What is the maximum?
c. What is the average time spent by a customer of each type
in the salon?
159
160
Multicapacity locations.
Locations are modeled as a single unit with
multicapacity.
All elements of the location perform identical
operations.
When one element of the location is unavailable due
to downtime, all elements are unavailable. Only
clock-based downtimes are allowed.
161
Multiunit Locations.
Locations are modeled as single capacity but
multiple units.
162
Multiple, single-capacity locations
Locations are modeled as individual and single
capacity.
Usually noninterchangeable locations are modeled
as such.
By modeling as individual locations, we gain the
flexibility of modeling separate downtimes for each
element.
In addition, we now have complete flexibility to
determine which element will process a particular
entity.
163
Multi-Unit / Multi-Capacity / Multiple
Locations
L L Multi-Unit LL LL
Multi-Unit
Single-Capacity LL L Multi-Capacity
L L L
164
IAT T(7, 8, 9)
Simulation run (8 hr)
Service time
U (5,1)
165
Single unit
Single capacity
Single unit
multicapacity
166
Multiunit
Single capacity
Multiunit
Multicapacity Multi location or multiple
location
167
Single unit
Single capacity
168
Single unit
Multiple capacity
169
Multiple unit
Single capacity
170
Multiple location
Multiple capacity
171
Comparison of Techniques
Multiunit/multi capacity Single unit/ single capacity
172
Entity and Entries
ENTITY()
Use ENTITY() to determine what type of entity is
processing when an entity type of ALL is specified at a
location.
ENTITY(value)
ENTITY(3) returns the name-index number of the third
entity in the group.
173
Example
All cars from the motor pool must be washed after
sending to parking. All cars except vans require 5 minutes
to wash, and vans require an 20 minutes.
All interarrival time is exponentially distributed of 1 min
Wait 1 minute in parking for all.
Simulate for 8 hours.
1. how many cars and vans being served?
2. what is the average total time spent in the system for
cars and vans.
what is the average time for all at washing and
parking locations.
174
Example
All cars from the motor pool must be washed after
sending to parking. All cars except vans require 5 minutes
to wash, and vans require an 20 minutes.
The cars interarrival time is exponentially distributed of 1
min
Wait 1 minute in parking for all.
Simulate for 8 hours.
1. how many cars and vans being served?
2. what is the average total time spent in the system for
cars and vans.
what is the average time for all at washing and
parking locations.
175
176
177
178
Entries()
Returns the total entries to a location. This function
returns an integer
All cars from the motor pool must be washed after
sending to parking. All cars except vans require 5 minutes
to wash, and vans require an 20 minutes.
All interarrival time is exponentially distributed of 1 min
Wait 1 minute in parking for all.
Before washing processes 10 entities, the entity is car and
we want to wait 5 minutes.
After washing processes 10 entities, the entity is van and
we want to wait 20 minutes.
179
180
181
Move Logic
Four choices of constructs are available in the Move Logic
field:
• MOVE—to move the entity to the end of a queue or
conveyor.
• MOVE FOR—to move the entity to the next location in
a specific time. Move for 1 min
• MOVE ON—to move the entity to the next location
using a specific path network.
• MOVE WITH—to move the entity to the next location
using a specific resource (forklift, crane).
182
Poly Furniture Factory
Wooden logs are received at the receiving dock of the Poly Furniture
Factory at the rate of one every 10 minutes.
Logs go to the splitter, where four pieces are made from each log.
The splitting time is Normal (4,1) minutes.
The individual pieces go to the lathe, where they are turned for
another Triangular (3,6,9) minutes and made into rounds.
183
Poly Furniture Factory
184
Poly Furniture Factory
Wooden logs are received at the receiving dock of the Poly
Furniture Factory at the rate of one every 10 minutes.
Wooden Logs go to the splitter, where four pieces are made from
each log. The splitting time is Normal (4,1) minutes.
The Wooden logs either they go to the bin then to lathe , or they
directly go to the lathe for Triangular (3,6,9) minutes.
190
191
192
ProModel™ - Resources
A Resource is person, L E
equipment item, or
device that performs the
following functions: L
Entity transport
Assisting in operations
L
(such as an inspection)
Location maintenance
Resource maintenance L EXIT
193
ProModel™ - Resources
Resources can consist of one or more units with common
characteristics, such as a group of forklifts.
194
ProModel™ - Resources
Static Resources
Will appear in only one location during the
operation of the model, however, it can be used
logically to move entities between locations.
There is no status light, but the resource will be
green when in use and red when down (if no other
graphics are used).
195
ProModel™ - Resources
Dynamic Resources
Requires definition of the Path Network before
creation, since it will be referenced in the
Specifications dialog box.
The Specifications dialog box defines the rules by
which the resource will operate.
Each Resource is defined using the Build ->
Resources task sequence
196
ProModel™ - Resources
Fields for Building Resources, continued
Specs – Provides exact details for Resource
implementation. set the speed, and define pickup /
delivery times.
Search – Separate from the one in Specifications, this
refers to the work search (where the jobs are) or the
park search (where idle time is allowed)
Logic – Logic defined for when networks are
accessed or left, to define any optional logic to be
executed whenever a resource enters or leaves a
particular path node
Pts – Used for graphical location of icons where
multiple resources may appear graphically
197
ProModel™ - Resources
Specs, continued
Resource and Entity Search – These define the rules for
selecting the next resource and entity to be used.
Motion – These define the speeds and handling times for
entities processed by the resource.
198
Static Resources
In each move logic put
MOVE with Forktruck for 1 min THEN FREE
Note
If the resource is static, a time (FOR <time>) may be
specified for the move.
The resource used to make the move is only freed if
the THEN FREE option is used.
At the exit don’t use .
199
ProModel™ - Resources
Fields for Building Resources
Name – The user-defined name of the resource
Units – The program will give it a suffix similar to the
location 1
DTs – As for Locations, Clock and Usage only. Individual
units can be selected.
Stats – The desired statistics, if any, to gather for this
resource. Statistics can be collected over all units of a
resource, or individually for each
200
201
202
203
ProModel™ - Resources
Dynamic Resources
Resource Searches:
Work Search – A list of locations where entities are
waiting for pickup. Can be exclusive (can only service its
list), or non-exclusive (will default to the Resource
Search rule if no work is available in its list)
Park Search – A list of nodes where the resource will
park if no work is available
204
ProModel™ - Path Networks
Select from Build -> Path
Networks
Name – The network name
Type - Passing or non-passing,
where the network segment has
to be clear to run a resource
along it
T/S – Selects the basis for
measuring movement along the
node, either as Time or Speed
and Distance
205
ProModel™ - Path Networks
Paths – The number of path segments in the network.
Clicking on the heading button opens the edit table
Interfaces - The number of location-node interfaces
in the network (entity dropoff / pickup points)
Mapping – Used to specify nodes for restricting
movements
Nodes – The number of nodes in the network,
controlled using the Node Edit table
206
ProModel™ - Path Networks
Path Segment Editing
From and To - The beginning and ending segment nodes.
207
ProModel™ - Path Networks
Interface Editing
Node - The node number
Location – Used to specify what location is attached
to a node number. Locations can be only interfaced
with one node, but a node can be interfaced with
multiple locations
Mapping Editing – Multiple-branch networks will
select paths with the minimum path length. Mapping
forces a specified path for a given node destination.
208
ProModel™ - Path Networks
Node Editing
Node - The node number
Limit – The maximum number of resources that can
occupy a given node. Blank means unlimited.
Path networks are assigned to resources using the
resource dialog box described earlier
209
ProModel™ - Path Networks
Neat ways to avoid trouble
Start by defining the nodes in the “Node” menu. Make all
locations singles, and left click to get the node spot. One
node for each location.
Then, assign the nodes logically with the Interface editor
by double-left-click on the spots just created
210
ProModel™ - Path Networks
Neat ways to avoid trouble, continued
Next, build the network from the Paths editor using the
left click, right click to set pairings.
Pay attention to which direction you are setting the
segments, since that will be the direction assigned if the
segment is a unidirectional one.
211
ProModel™ - Path Networks
Today’s exercise:
Using the prologue model we have developed over the
course of the lab, create a resource (forklift) and the
associated path network.
212
213
ProModel™ - Path Networks
214
ProModel™ - Path Networks
215
ProModel™ - Path Networks
216
Receivin splitter bin lathe painting storage
g
Receivin
g - 2.3
splitter
2.3 - 3∫5 8
bin
5∫3 - 1.5
lathe
8 1.5 - 12
Painting
12 - 26.5
storage
26.5 -
ProModel™ - Path Networks
218
Please note
227
In the case where only one unit of the Worker resource is
available, that unit could be used for a total elapsed time
of two hours if a second unit never becomes available
during the process.
USE 2 Worker FOR 1 HR
228
if one unit is captured and used for one hour after which
time the second unit is then captured, the remaining one
man-hour of time will be divided between the two units
and together will complete it in half an hour. In this case,
the entity would be processed in an elapsed time of 1.5
hours.
229
230
231
Temporary Batching—GROUP/UNGROUP
For such temporary batching, use the GROUP statement.
For unbatching, use the UNGROUP statement.
Note : the capacity of the location where Grouping
occurs must be at least as large as the group size.
Quantity of entities into a single GROUP shell entity.
The group retain their identities, attributes, and resources
and are divided from the group when an UNGROUP
statement is encountered.
GROUP <expression> AS <entity name>
Group 20 as GR
232
Temporary
Batching—GROUP/UNGROUP
A factory produces three type of entities A,B,C and each
type of entity received in the following table :
Quantity each Occurrence Frequency
ENT_A 7 10 20
ENT_B 5 10 20
ENT_C 8 10 20
As receiving each type will be prepared as the following
service type depend on the type of the entity:
Service time locations
ENT_A E(2) Loc_A
ENT_B U(3,1) Loc_B
ENT_C N(2.1,2) Loc_C
233
After that 20 entities will be grouped at turning centre ;
location as temporary batch and then the batch will wait 2
min in the turning canter machine
Then the batch will be travelled to the inspection location,
one inspector checks the individual entities for 2 min
then 3 lathe machines (Lathe_A, lathe_B and lathe_C are
used to machining the entities , ( each machine is
specialized for one type of entities )
lathing time
Simulate for 8 hours ENT_A 2 min
ENT_B 3 min
ENT_C 4 min
234
Group/ungroup
from to move
Ent-A Loc_A Wait E(2) turning MOVE FOR 1.2
Ent-B Loc_B Wait U(3,1) turning MOVE FOR 1.5
Ent-C Loc_C Wait N(2.1,2) turning MOVE FOR 1.35
All Turning center Group 20As
batch
Batch Turning center Wait 2 Inspection MOVE FOR 3
Batch Inspection Ungroup
Ent-A Inspection Use inspector Lathe_A MOVE FOR 2
for 2
Ent-B Inspection Use inspector Lathe_B MOVE FOR 2
for 2
Ent-C Inspection Use inspector Lathe_C MOVE FOR 2
for 2
Ent-A Lathe_A Wait 2 exit MOVE FOR 0
Ent-B Lathe_B Wait 3 exit MOVE FOR 0
Ent-C Lathe_C Wait 4 exit MOVE FOR 0
235
Group/ungroup
MOVE FOR 0
236
237
238
239
GROUP/UNGROUP
240
Variable
Variables are of two types: global and local.
Global variables are place holders defined by the user to
represent changing numeric values.
Local variables are place holders which are available only
within the logic that declared them. Local variables
function as though they were temporary attributes defined
in a specific logic .
Variables can contain either Real numbers or Integers,
BUILD >> Variables
241
Variable
242
Variable
243
Variable
244
Variable
245
Variable
246
Variable
247
Variable
This edit table is used to define Variables used globally in the model. A description of each field is given below.
Icon This field shows "Yes" if an icon for the variable appears on the layout. A variable’s icon looks like
a counter and displays the variable’s value.
ID The variable’s name.
Type The type of variable, real or integer.
Initial Value The initial value of the variable to be assigned at the start of the simulation. By default,
initial values are 0, but can be changed in the edit table to whatever value you want. Any expression can
be entered here (including previously defined variables) except attributes and system functions.
Stats ProModel collects statistics for each variable on three levels of detail, None, Basic, and Time
Series.
• None No statistics are collected for this variable during simulation.
• Basic Collects basic statistics such as total changes, average minutes per change, current value, and
average value.
• Time Series Collects all the basic statistics plus the value history based on time or observations. When
you select Time Series, ProModel collects either time-weighted or observation-based statistics for the
variable
248 depending upon the type selected.
Variable
249
Variable
Variable Layout
An icon to show a variable’s value during a simulation may be placed anywhere on the layout. The
window below shows the icons for the variables Current and Total at the right side of the screen.
Each icon has been labeled with a background graphic.
250
Variable
251
Variable
A variable’s icon can be customized as necessary by simply double clicking on the icon and choosing
Edit. A dialog box appears as shown below for specifying the characteristics of the variable icon or
counter.
How to edit a variable’s icon:
1. Double click on the icon.
2. Click on the Digit Color, Frame, or Font buttons to adjust the respective setting.
3. Click on OK.
4. All other variable icons that you create from now on will retain these modifications.
252
Variable
253
Variable
254
Variable
255
Variable
256
Variable
257
Variable
258
Variable
259
Variable
260
Permanent Batching—COMBINE
In some situations, multiple entities of the same type
or different types are batched together permanently.
After batching, a single batch entity is formed,
alternatively with a different name.
In such permanent batching, the characteristics of the
individual entities are lost; that is, the individual
entities cannot be ungrouped later.
When defining the location, the capacity of the
location where you use the COMBINE statement
should be at least as large as the combined quantity.
COMBINE <expression> {AS <new entity name>}
COMBINE 2 AS batch
261
Permanent Batching—COMBINE
Combine
Entity-Related Operation Statement
Syntax samples
COMBINE <expression> {AS <new entity name>}
COMBINE Var1
COMBINE 3 AS EntQ
COMBINE Var1 as ENT(Attr1)
262
Permanent Batching—COMBINE
Description
Accumulates and consolidates a specified quantity of entities into an entity,
optionally with a different name. Unlike the GROUP statement, combined
entities lose their identities and attributes and cannot be ungrouped later. Use
COMBINE when several entities need to be combined, such as when eight spark
plugs are combined in a box. Note that after several entities have been combined
at a location, no additional statistics will be collected for any of the combined
entities at that location.
When specifying COMBINE <expression> AS <new entity name> in the
operation logic, there must be another operating block at the same location. In
this case, the incoming entity at the new operating block is the new entity name
specified in the COMBINE statement.
Valid In
Operation logic only. COMBINE may not be used in combination
with CREATE, GROUP, UNGROUP, LOAD, UNLOAD, SPLIT AS, or other
combine statements in the same process logic.
263
Permanent Batching—COMBINE
Components
<expression>
The number of entities to combine. Negative values generate an error
message. If this expression evaluates to zero, it is ignored. If it evaluates to
one, then no entities are actually combined, but the entity that encountered the
combine statement is renamed (if the AS option has been specified).
This expression is evaluated every time an entity encounters the COMBINE
statement, so the amount of entities to be combined can vary as the simulation
progresses. If an entity arrives that changes this expression to a number lower
than the number of entities already waiting to be combined, all of the entities
waiting to be combined are combined, including the entity that just arrived.
AS <new entity name>
The optional name of the resulting entity. If left off, the new entity will have
the same name as the last combined entity or the output entity name.
264
Permanent Batching—COMBINE
265
Combine example
A factory received three type of entities A,B and C to
locA, locB and locC with capacities 70,50,80
respectievely
As receiving each type will be prepared
After that 20 entities will be grouped as permanent batch
at the turning machine( capacity =20) and wait 2 min in
the machine
Then the batches will be travelled to the inspection
location, one inspector checks the batch for 2 min
Then one lathe machine is used to machining the batch for
5 min
Material handling 1 min
266
267
268
269
Permanent Attachment— JOIN
Sometimes one or more entities are attached permanently
to another entity, as in an assembly operation.
The assembly process is a permanent bonding: the
assembled entities lose their separate identities and
properties. The individual entities that are attached cannot
be separated again.
Entities to be joined must be routed to the current location
with a JOIN rule. JOIN 4 EntA
270
Permanent Attachment— JOIN
Join
Entity-Related Operation Statement
Syntax samples
JOIN <expression> <entity name> {,<priority>}
JOIN 4 EntA
JOIN Var1 EntA, 1
Description
Joins a specified quantity of a designated entity type to the current entity. The
entities joined to the current entity lose their identities and any resources owned by
the joining entities are transferred automatically to the base entity. Use JOIN to
simulate a component being assembled to a main part, such as when wings are
attached to the fuselage of an airplane.
Entities to be joined must be routed to the current location with a JOIN rule. The
current entity waits until enough entities to fill its request have been routed to the
current location with a JOIN rule.
271
Permanent Attachment— JOIN
Valid In
Operation logic only. More than one JOIN statement may be used in the same logic.
Components
<expression>
The number of entities to be joined. A zero value is ignored and a negative value generates an
error. This expression is evaluated when each entity first encounters it, but is not re-evaluated
as the requested entities are joined.
<entity name>
The entity type to be joined to the base entity. Joining entities must come from a JOIN routing
and lose their identity once joined.
272
Permanent Attachment— JOIN
Example:
A certain location on an assembly line manufacturing cars attaches doors built on another
assembly line. When the Body of the car arrives at the Assembly location, we attach a left door,
Ldoor, and a right door, Rdoor, with a JOIN statement. The paint station paints the doors and
routes them to Assembly with a JOIN rule. Note that the Body will wait until we join both
doors before routing to the next location.
273
Memories arrives at paint with occurrences 100 and
frequency = 1.5 min.
Mother boards arrive at assembly with occurrences 50 and
frequency = 3 min..
The paint station paints the memory for 30 minutes and
routes them to Assembly with a JOIN rule
A certain location on an assembly line manufacturing
motherboards attaches 2 memories built on another
assembly line. When the motherboard arrives at the
Assembly location, we attach memory.
Then body will be routed to the cleaning station .
274
Routing rules
join
Join
Syntax samples
Join {<expression>}
Description
Selects a location whenever a Join request is issued at that location. Since a joining
entity does not require capacity, there is no need to check for available capacity at
the destination. Multiple Join requests are filled according to the oldest waiting
request with the highest priority. Entities routed with the Join routing rule are not
actually sent to their destination until a Join statement is encountered at the
destination location.
Valid In
The rule field of the Routing edit table only.
Components
<expression>
The total entities output from the process. This expression is valid only for the first
routing of a routing block. For more information on this expression, see Processing.
275
Routing rules
join
276
Routing rules
join
277
join
278
join
279
join
280
281
282
283
284
285
ProModel™ - Downtimes
Location Downtimes
A downtime stops a location or resource from operating. A
down resource or location no longer functions and is not
available for use.
286
ProModel™ - Downtimes
Location Downtimes
For single capacity locations, downtimes may be based on
clock time, usage time, number of entities processed,a
change in entity type, or called using the DOWN
statement. Multi-capacity locations have only clock and
called downtimes.
287
ProModel™ - Downtimes
For locations, select the Build -> Locations sequence.
For a given location, go to the DTs field and select the
task button.
Resource Downtimes
Resource downtimes refer to the times when a resource is
unavailable due to scheduled events like breaks and shift
changes, or unscheduled events like illness and random
failures.
288
ProModel™ - Downtimes
For scheduled events, it is much easier and more
straightforward to define these downtimes using the Shift
Editor (see Shifts & Breaks).
289
ProModel™ - Downtimes
How to specify a location downtime:
1. Select the desired location in the edit table.
2. Click on the DTs... button. This brings up the downtime
selection menu shown here for single-capactiy locaitons.
(Multi-capacity locations will only have the Clock and
Called options.)
3. Each selection opens an edit table for specifying the
required elements of the downtime.
290
ProModel™ - Downtimes
How to define resource downtimes:
1. Select Resources from the Build menu.
2. Select the resource for which the downtime is to be
defined.
3. Click the DTs... button from the Resources edit table.
4. Select the downtime basis: Clock or Usage.
5. Enter the required information in either the Clock
Downtime or Usage Downtime edit table. Each of these
tables is described in the following pages.
293
Clock-Based Downtime
List A list of the individual units of the resource to be
affected by the downtime. You may list individual units of
the resource, specify ALL, or leave blank to affect all
units.
• 1,2 Units 1 and 2 only
• 1-3,5 Units 1 through 3 and 5 only
• none You may use none to indicate that no unit will
adopt this downtime. This is useful in creating a run-time
interface.
294
Clock-Based Downtime
Node This field applies only to dynamic resources and
defines the node to which the resource will travel to go
down. If no node is entered, the resource stays at the
current node.
Logic... Specific logic to be performed when the
downtime begins. , typically a WAIT statement Wait 5 min
295
Usage-Based Downtime
A usage-based downtime is a downtime based on how
long a resources has been used, such as how often a
forklift needs to be refueled. Usage-based downtimes for
resources are specified through the Usage Downtimes edit
table shown below.
models downtimes on a time basis, regardless of entity usage.
Also, usage is only available for single-capacity locations.
296
Usage-Based Downtime
Usage downtimes are used to model downtimes that occur
after a location has been operating for a certain amount of
time, such as if a machine fails due to wear after so many
hours of operation.
Usage downtimes are different from clock downtimes
because usage downtimes are based on location operation
time, which does not include blocked time. Clock
downtimes are based on total elapsed simulation time
(operation time, blocked time, idle time).
Usage downtimes are available only for single-capacity
locations.
297
ProModel™ - Resources
The Usage Downtime Editor consists of the edit table
shown below.
298
ProModel™ - Resources
Details on New Things
Specs – Subunits include the defined path network
(not assigned if static), the node specifications, the
search logic for resources and entities, and motion
rules. (Net1, N1)
Node specifications – the “home” node is where the
resource begins the simulation. Check the “Return
Home” if the resource is to return to the home node if
idle. Otherwise, it waits where it is.
299
ProModel™ - Resources
300
Dts for clock type
301
Dts for clock type
302
Dts for USAGE type
303
Dts for USAGE type
304
Shits and breaks
The Shift Assignment module allows you to model
everyday, real-life situations involving scheduling and
availability issues, and you can easily define logic to
control the way your model handles these problems.
If you have an employee that works a split shift, assign
two shifts to the resource with the corresponding start
times. If you have a processing location that can only be
used during specifically scheduled hours, set up a separate
shift for that location.
305
Shits and breaks
306
Shits and breaks
Youtube
https://www.youtube.com/watch?v=hhZu7xro8gE
https://www.youtube.com/watch?v=LWyy_y7Kqc4
https://www.youtube.com/watch?v=XMLTOOIXHCY
307
Shifts and breaks
308
Shifts and breaks
309
Shits and breaks
310
Shits and breaks
311
Shits and breaks
Build: shifts: define: shift for resource from 8 – 8 at 12-1 break
312
Shits and breaks
Build: shifts: assign
313
ProModel™ - Reporting
Reporting the Results
The last step in the simulation procedure is to make
recommendations for improvement in the actual system
based on the results of the simulated model. These
recommendations should be supported and clearly
presented so that an informed decision can be made.
Documentation of the data used, the model(s) developed
and the experiments performed should all be included as
part of a final simulation report.
A simulation has failed if it produces evidence to support
a particular change which is not implemented; especially
if it is economically justified.
.
314
ProModel™ - Reporting
Reporting the Results
The process of selling simulation results is largely a
process of establishing the credibility of the model. It is
not enough for the model to be valid, the client or
management must also be convinced of its validity if it is
to be used as an aid in decision making. Finally, the results
must be presented in terms that are easy to understand and
evaluate. Reducing the results to economic factors always
produces a compelling case for making changes to a
system.
315
ProModel™ - Reporting
Reporting the Results
In presenting results it is important to be sensitive to the
way in which recommendations are made. It helps to find
out whether recommendations are being sought or
whether a simple summary of the results is wanted
316
ProModel™ - Reporting
317
ProModel™ - Reporting
export
Summary data
export
318
ProModel™ - Reporting
319
ProModel™ - Reporting
320
ProModel™ - Reporting
321
ProModel™ - Reporting
322
ProModel™ - Reporting
323
ProModel™ - Reporting
On ProModel the reporting broken up into discrete
elements.
It is also a little more complicated to get the confidence
intervals printed automatically. The sheet modification
tool is on the taskbar, and has to be assigned for each
report page, each time it is used.
324
ProModel™ - Reporting
325
ProModel™ - Reporting
Solution Process – This section addresses the process
involved in solving the problem stated in the
summary. Pseudocode, flow charts, and a description
of the program highlights (such as why a particular
construction was used) are appropriate here. Detailed
logic statements are not.
Results – This section is used to report the results of
the simulation, and the significant highlights for
results. Tables are usually useful here with
appropriate commentary and 95 % C. I. s.
326
Use reports from previous
examples to discuss with student
327
Stat::Fit
Consider an experiment where we've measured the
time to failure for 50 identical electrical components.
Data points are as follows:
328
Stat::Fit
Notice that only one variable has been measured -- the
components' lifetimes. There is no notion of response and
predictor variables; rather, each observation consists of
just a single measurement. The objective of an analysis for
data like these is to describe the full distribution of
possible lifetimes. This is distribution fitting with
univariate data.
329
Stat::Fit
330