Simulation Using Promodel

advertisement
Simulation Using Promodel
System Definition
• What is a system?
----System is a collection of elements that functions
together to achieve a desired goal
• A system consists of multiple elements
• Elements are interrelated & work in cooperation
• A system exists for achieving specific objectives
SYSTEM to ProModel MODEL
entity arrivals
L
E
L
L
entity exits
L
EXIT
ProModel Modeling Elements
entity arrivals
The main elements are:
• LOCATIONS (object)
• ENTITIES (object)
L
E
L
• ARRIVALS (interaction)
• PROCESSING (interaction)
L
• RESOURCES
entity exits
L
EXIT
ProModel™ - Sequence
• It is usually easier if you draw a picture /
flow chart / etc.
• It is also usually easier to work backwards
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
…
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.
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.
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.
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.
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.
ProModel™ - Arrivals
Things to define for “Arrivals” under the
“Build” tab:
• Entity Name
• Location of arrival
• Quantity at each arrival
• First time of arrival (default is when the
system FEL causes the arrival)
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
• 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.
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.
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.
ProModel™ - Variables
• Variables are used for tracking system,
location and entity performance.
• Can be used for verification purposes.
• Essentially there is no limit on the number of
variables that can be issued.
VARIABLE (continued)
• INC/DEC statements
– INC variable ID,
increment value DEC
variable ID, decrement
value
– default
increment/decrement
value is one.
• +, -, / , *, =
• Valid in any logic field
(operation, move logic)
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.
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.
ProModel™ - Distributions
Distributions are declared in ProModel shorthand,
thusly:
• N(12,3) means a normal distribution with mean 12
and standard deviation of 3.
• U(10,1) means a uniform distribution with a center
of 10 and a half-width of 1 (ranges from 9 to 11).
• T(1,2,3) means a triangular distribution with a
minimum of 1, a mode of 2, and a maximum of 3.
• E(5) means an exponential distribution with a
mean time between events of 5.
ProModel™ - Distributions
• All distribution types have theoretical
expected values and variances
• The expected values are to be used for model
verification in comparison to the modelgenerated confidence intervals.
Limits of ProModel Student version
•
•
•
•
•
20 Locations
8 Entity Types
8 Resource Types
5 Attributes
15 RTI parameters
Buiding your First Model
Customers visit the neighborhood barbershop Fantastic
Dan for a haircut.
• The customer interarrival time is exponentially distributed
with an average of 10 minutes.
• 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:
Fantastic Dan Model
a. About how many customers does Dan
process per day?
b. What is the average number of customers
waiting to get a haircut? What is the
maximum?
c. What is the average time spent by a
customer in the salon?
d. What is the utilization of Barber Dan?
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.
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.
Using Attributes 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
The Haircut Time for All
Customers
Continued
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?
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
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:
• Sequences: Program statements are executed one
after another.
• Decisions: One of two blocks of program code is
executed based on a test for some condition.
• Loops: One or more statements are executed
repeatedly as long as a specified condition is true.
IF-THEN-ELSE Statement
• An IF block allows a program to decide on a
course of action based on whether a certain
condition is true or false.
• A program block of the form:
IF condition THEN
action1
ELSE
action2
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.
ProModel™ - Arrival Cycles
• Used to meter arrivals, such as when lot sizing is
used
• Used to create a variable arrival cycle. This can
model the customer flow to more accurately reflect
peak vs. slow periods.
ProModel™ - Arrival Cycles
Build -> More Elements -> Arrival Cycles
Fields:
• ID – The user-defined name
• Qty /% - Defines the basis for the total number of
arrivals per cycle occurrence
• Cumulative – Selects whether the cumulative
format is used for the data table.
• Table – Forwards the user to the edit field.
ProModel™ - Arrival Cycles
Table Editing
• Two fields: Time and Qty / %.
The time field is always cumulative in terms of
hours.
• The arrivals are randomly spaced within the arrival
band.
• Once the table is defined, the next task is to
summon it from the Arrivals menu.
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.
Customer Arrival Pattern at
Fantastic Dan
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.
Multiunit Locations.
• Locations are modeled as single capacity but
multiple units.
• These are locations consisting of two or more
parallel and interchangeable processing units.
• Each unit shares the same sources of input and the
same destinations for output, but each may have
independent operating characteristics.
• This method provides more flexibility in the
assignment of downtimes and in selecting an
individual unit to process a particular entity.
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.
Multi-Unit / Multi-Capacity /
Multiple Locations
L
Single Unit
Single Capacity
L
L
L
L
Multi-Unit
Single-Capacity
LL
Single Unit
Multi-Capacity
LL LL
LL L
L
Multi-Unit
Multi-Capacity
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 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).
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.
• The rounds go on to a paint booth, where they are converted into
painted logs. Painting takes Exponential (5) minutes. Painted logs go
to the store.
• Consider a material handling time of one minute between each
process.
Make a simulation model and run the simulation for 10 hours.
Poly Furniture Factory
ProModel™ - Resources
A Resource is person,
equipment item, or
device that performs the
following functions:
• Entity transport
• Assisting in operations
(such as an inspection)
• Location maintenance
• Resource maintenance
L
E
L
L
L
EXIT
ProModel™ - Resources
• Resources can consist of one or more units
with common characteristics, such as a group
of forklifts.
• Resources can be dynamic (requiring a path
network) or static. Downtimes are also
included as part of the model.
• Resources have names and name-index
numbers. Path networks also have names
and nodes.
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).
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
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
• DTs – As for Locations, Clock and Usage only.
Individual units can be selected.
• Stats – As for Locations
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
• Pts – Used for graphical location of icons
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.
• 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.
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.
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 nonexclusive (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
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
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
ProModel™ - Path Networks
Path Segment Editing
• From and To - The beginning and ending
segment nodes.
• BI – Used to specify whether uni- or bidirectional travel is allowed on the segment.
• Distance (or Time) – The specified distance
between the nodes. Default is based on the
network graphic layout
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.
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
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
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.
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.
ProModel™ - Shifts & Breaks
• Applies to Locations and Resources
• Used to model a more typical workweek than
the 40-hour continuous model.
• Build -> Shifts -> Define
• The editor window gives the user a menu,
and a one-week block of time in graphical
layout.
ProModel™ - Shifts & Breaks
• Creating a block of time can be done by dragging
the cursor (similar to path networks). However,
there are rules to be followed in this phase:
• Shift blocks cannot overlap other shift blocks.
• Break blocks must be drawn on top of a shift block.
Break blocks also cannot overlap other break
blocks.
ProModel™ - Shifts & Breaks
• Once created, time blocks can be edited by selecting
the block and adjusting the parameter of interest. If
changing, don’t forget to update the data.
• Assigning shifts are done for locations and resources.
Keep in mind that these are going to be specific
resources / locations assigned to a specific shift
regime. Sub-units can be independently assigned as
well.
ProModel™ - Shifts & Breaks
The shift files must be defined, as well as the
priorities for the following events:
• Ending shift – An entity of higher priority can
cause delaying of the end-of-shift event, otherwise
the shift ends and work stops.
• Off shift – Will stay unavailable unless forced by a
higher-priority item.
• Starting Break – Will go on break unless
interrupted by a higher priority item.
• Break – Will stay on break unless interrupted.
ProModel™ - Shifts & Breaks
Shift-specific logic:
• Skip – Causes the skipping of a scheduled off-shift or break
time
• Priority – Changes the priority value of the shift block if
desired.
• DTLEFT() – Returns the remaining off-shift time
• ForLocation(), ForResource() – Boolean flag for type of
shift block encountered. Returns TRUE if the type matches
the function call.
• Resource() – Returns the name-index number of the
resource currently processing the off-shift logic.
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.
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.
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.
ProModel™ - Downtimes
• These are elements used to model situations
where a part of the simulation is not
available for operations.
• The setup field is available for Locations and
Resources, primarily.
• Types of downtimes include intentional (e.g.
maintenance or breaks) and casualty.
ProModel™ - Downtimes
• For locations, select the Build -> Locations
sequence.
• For a given location, go to the DTs field and
select the task button.
• There are four types of downtime: clock,
entry, usage, and setup.
ProModel™ - Downtimes
Types of Downtimes:
• Clock – models downtimes on a time basis,
regardless of entity usage. Downtime begins
if no entity is being processed.
• Entry – models downtimes on an entry usage
basis, after the triggering entity has left the
location.
ProModel™ - Downtimes
Types of Downtimes:
• Usage – models downtimes on a time basis,
regardless of entity usage. Blocked time is not
included which differs from clock. Also, usage is
only available for single-capacity locations.
• Setup – models downtimes on an entry change
basis, when the triggering entity has arrived at the
location. Available only for single-cap locations, it
models the setup time to swap tooling.
ProModel™ - Downtimes
Clock Fields
• Frequency: Time between successive
downtimes, can be scalar or expression.
• First time: Determined by frequency logic if
left blank.
• Priority: Code assigned if downtime is
preemptive, default is “99” if not assigned.
ProModel™ - Downtimes
Clock Fields
• Scheduled: Determines whether the
downtime is scheduled. If yes, the hours
spent in downtime are not considered when
determining utilization, percent down, etc.
• Logic: Where the delay is defined, either as a
“wait” statement or something more complex
that utilizes an attribute, etc.
ProModel™ - Downtimes
Entry Fields
• Frequency: Number of entities between
successive downtimes, can be scalar or
expression.
• First time: Determined by frequency logic if
left blank.
• Logic: Delay action defined as for clock.
ProModel™ - Downtimes
Usage Fields
• Frequency: Usage time (not blocked)
between successive downtimes, can be scalar
or expression.
• First time: Determined by frequency logic if
left blank.
• Priority: As defined for clock.
• Logic: Delay action defined as for clock.
ProModel™ - Downtimes
Setup Fields
• Entity: The incoming entity. The reserved
word “ALL” can be used for identical setups,
but logic will be needed to model the delay
properly.
• Prior Entity: The previous entity. “ALL”
can be used here as well.
• Logic: Delay action defined as for clock.
ProModel™ - Downtimes
Today’s exercise for the prologue is to do the
following:
• Create a downtime field for the machining and
inspection activities. When they go down, the
waiting time for recovery is defined as follows:
• Inspection: U(15,2) with frequency of 150 min,
unscheduled
• Machining: T(12,15,20) with frequency of 10 hours,
scheduled, and N(20,3) with frequency of E(100)
parts
ProModel™ - Downtimes
Today’s exercise for the prologue, continued:
• Compare the input queue length, utilization,
and throughput (e.g. the total good parts) for
the one machine and two inspector case.
As always, remember to use 95% C.I.s.
ProModel™ - Reporting
• Within the output viewer, “Sheet Properties”
must be selected from the task bar, and the
confidence intervals, etc., are in the
additional reports section.
• Each report section has to be set up
individually.
ProModel™ - Reporting
Key items that are useful for reports are:
• Locations: Maximum Contents (for queues),
Current Contents (for queues), Average Time
Per Entry (Locations with no blockages,
backs up the operation variable), Pct
Utilization (for operations)
• Entity Activity – All times and the exits (for
throughput)
ProModel™ - Reporting
• Variables: Total Changes (functions as a de facto
counter),
• Average Time Per Change,
• Min/Max Times (for operation tracking variables)
• Current value (for counter variables, and for some
operational items)
• average value (for operation variables)
ProModel™ - Reporting
• With respect to the variable reports, it is
important to remember that the Total
Changes count is done after the warmup
period, while the Max, Min, Current, and
Average all function and track during the
entire simulation run. So, for throughput in a
given steady state period, use the Total
Changes field.
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.
ProModel™ - Reporting
• Reporting the experiment is a vital part of the
process. There is a reason that the experiment was
run in the first place. The key elements for this
course is as follows:
• Executive Summary / Introduction – This is a oneor two-paragraph statement of what the problem is,
including background information, limitations, etc.
This sets the scene for the reader.
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.
THE ROAD TO SELF SUFFICIENCY
•
•
•
•
•
On-Line Help
Documentation (User’s Guide, Reference Manual)
Reference Models
Statement Builder
www.promodel.com/BBS
Download