Sie sind auf Seite 1von 90

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
L
L
L
E
EXIT
entity exits
ProModel Modeling Elements
The main elements are:
LOCATIONS (object)
ENTITIES (object)
ARRIVALS (interaction)
PROCESSING (interaction)
RESOURCES
L
L
L
L
E
EXIT
entity arrivals
entity exits
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 entitys 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 model-
generated 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
(480 minutes).

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.
I F-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
WHI LE-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-WHI LE 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:
I D 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
L L
L
L
L
L
L
L
L
L
L
L
L
L
Single Unit
Single Capacity
Single Unit
Multi-Capacity
Multi-Unit
Single-Capacity
Multi-Unit
Multi-Capacity
Move Logic
Four choices of constructs are available in the Move Logic
field:
MOVEto move the entity to the end of a queue or
conveyor.
MOVE FORto move the entity to the next location in
a specific time.
MOVE ONto move the entity to the next location
using a specific path network.
MOVE WITHto 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
L
L
L
L
E
EXIT
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
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 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
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
I nterfaces - 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 bi-
directional 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
I nterface 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
I nterface 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
Todays 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, dont 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 BatchingCOMBI NE
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 AttachmentJ OI N
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
Todays 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
Todays 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 / I ntroduction This is a one-
or 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 (Users Guide, Reference Manual)
Reference Models
Statement Builder
www.promodel.com/BBS

Das könnte Ihnen auch gefallen