You are on page 1of 82

Introduction to ProModel

Week 01
Simulation Modeling & Analysis

June 21, 2000

Overview of ProModel
ProModel is a window-based simulation
tool for simulating and analyzing
production systems.
ProModel is used primarily for modeling
discrete part manufacturing systems.

ProModel Menu

File Menu

Open a new model


Open an existing model
Merge two or more submodels into one
Save the current model
Import models created in earlier versions of ProModel
View a text version of the model
Print either the model text file or the graphic layout of the
model
Modify the printer setup
Create model packages
Exit the ProModel
4

View Menu
The View Menu contains selections for
setting up the model viewing environtment.

Build Menu
The Build Menu consists of all of the
modules for creating and editing a model.
The basic modules:

Locations
Entities
Processing
Arrivals

Optional modules:

Path Networks
Resources
Shifts
Cost
Attributes
Variables
Arrays
Macros
Subroutines
Arrival Cycles
Table Functions
User Distributions
External Files
Streams
9

Two more modules are available in the


Build Menu:
General Information (allow the user to specify
the name of the model, the default time unit,
distance unit, and the graphic library to be used;
the models initialization and termination logic)
Background Graphics (allow the user to create
a unique background for the model using the
tools in the graphics editor)

10

11

Simulation Menu
The simulation Menu controls the execution
of a simulation and contains options for
running a model, defining model
parameters, and defining and running
scenarios.

12

13

Output Menu
The Output Menu starts the ProModel
Output Processor for viewing model
statistics.
It also allows the user to view the trace,
which was generated during simulation
model runtime.

14

15

Tool Menu
The Tools Menu contains various utilities as
follows:

Graphic Editor
StatFit
Expression Search
Options
Customize
QuickBar
16

17

Window Menu
The Window Menu allows you to arrange
the windows (or iconized windows) that are
currently displayed on the screen so that all
windows are visible at once.
It also lets you bring any individual window
to the front of the display.

18

19

Help Menu
The Help Menu accesses the ProModel
Online Help System and provides access to
the ProModel Tutorial.
The PROMODEL Corporation website can
also be accessed from this menu.

20

21

Basic Modeling Elements

Locations
Entities
Arrivals
Processing

22

Locations
Locations define fixed places in the system
where entities are routed for processing,
storage, or some other activities or decision
making.
Locations include machines, waiting areas,
work stations, queues, and conveyor

23

Rules
Capacity of the location Downtimes
Number of units of the location

Multi-capacity
location
Multi-Unit location
24

Location downtimes
Defining scheduled or unscheduled
interruptions
Choice: clock, entry, usage, setup

Clock downtime editor

Setup downtime editor


25

Rule for
selecting incoming entities
queuing for output
selecting a unit

26

Entities
An entity defines anything that a model processes.
Entity examples are parts, products, people or
paperwork should be modeled as entities.
Entities may be

grouped
consolidated into a single entity
split into two or more entities
converted to one or more new entities

27

Grouping entities

Splitting into two or


more entities
28

Joining entities

Converting to other
entities
29

The speed of the entity


(optional, self-moving entities)

30

Processing
Processing defines the routing of entities
through the system and the operations that
take place at each location they enter.
Processing specifies everything that
happens to entities from they enter until
they exit the system.

31

An example model

EntA@Loc1A
EntA

1.0 min

EntA

EntA@Loc2
Join 1
N(3.4,2)

EntC@Loc3
1

EntC

Accum 12
3.0 min

EXIT

EntB@Loc1B
EntB

Arrival
Logic

1.0 min

EntB

Processing Logic
32

33

Operation logic

Move logic

34

Routing rule

35

Arrivals
Arrivals are any entities introduced into the system
Number of entities per arrival
Location of the arrival
Time of the first arrival

Total occurrences of the arrival


Inter-arrival time

36

Optional Modeling Elements

Path Networks
Resources
Shifts and Breaks
Cost
Attributes
Variables
Arrays
Macros

Subroutines
Arrival Cycles
Table Functions
User Distributions
External Files
Streams

37

Path Network
Path Networks model dynamic resources
which travel between locations
Types of path networks are passing, nonpassing, and crane

38

The basis for measuring


movement along the network
(time, speed-distance)

The type of the network


(passing, non-passing, crane)

39

Resources
A resource defines a person, piece of
equipment, or some other device used for
one or more of the following functions:
transporting entities
assisting in performing operations on entities at
locations
performing maintenance on locations
performing maintenance on other resources
40

Number of units
Resource specifications.
Downtimes

41

Resource downtimes
Defining scheduled or unscheduled
interruptions
Choice: clock, usage

42

Resource specifications
defining the operation characteristics of each
resource in the system

43

Shifts and Breaks


Shifts and Breaks define weekly shifts and
breaks for locations and resources

44

Cost
The Cost Dialog box allows you to define
costs for Locations, Entities, and Resources.
Expressions included in this field evaluate
during translation at run-time and required
field information varies between object
types.
Statistical information reflecting cost
automatically generates during run-time and
is part of the General Statistics Report.
45

46

Attributes
Attributes are place holders similar to
variables, but are attached to specific
locations and entities and usually contain
information about that location or entity.
Attributes may contain integers or real
numbers.

47

The name of the attribute


The type of the attribute
(real or integer)

Entity attribute or
Location attribute
A general notes field
for describing the
attributes
48

Variables
Variables are two types: global and local.
Variables can contain either real or integer numbers.
Global variables are place holders defined by the user to
represent changing numeric values.
Local variables are place holders which are only available
within the logic that declared them.
A global variables can be referenced anywhere numeric
expressions are allowed in a model.
Global variables are defined in the Variable Editor.
Local variables are defined with the INT and REAL
statements.
49

The initial value


to be assigned
at the start of simulation
The variables name

The type of variable,


real or integer

This field shows Yes


if an icon for the variable
appears on the layout.

A general notes
field

Method for collecting statistics


-None
-Basic (Total changes, average
minutes per change, current value,
average value)
-Time Series (basic statistics plus
the value history based on time-weighted
50
or observation-based)

Arrays
An array is a matrix of cells that contain
real or integer values.
Each cell in an array works much like a
variable.
A reference to a cell in an array can be used
anywhere a variable can be used.

51

The size of each


dimension of the
array in cells

The name of
the array

Import spreadsheet
data to arrays

The numeric
type (real or integer)
for all cells in the
array

A general notes
field

Export arrays
to spreadsheets

52

Macros
A macro is a place holder for an often used
expression, set of statements and functions,
or any text that might be used in an
expression or logic field.

53

A text to be substituted
where the macro name
is called that may be a complete
expression, an entire logic block, or
even only part of a logic block

A name to
identity the macro

Option to define
the macro as
a run-time interface
parameter
54

Subroutines
A subroutine is a user-defined command
that can be called to perform a block of
logic and optionally return a value.
Subroutines may have parameters (local
variables) which act as variables local to the
subroutine and that take on the values of
arguments (i.e., numeric expressions)
passed to the subroutine.
55

The type of numeric value


that is returned by the
subroutine (none, real,
integer, interactive)

A name that
identifies the
subroutine

One or more statements


to be executed whenever
the subroutine is called

Local variables (real, integer) assigned


to the arguments passed to the subroutine

56

Arrival cycles
An arrival cycle defines a pattern of individual
arrivals which occurs over a certain time period.

Pattern of materials arrival


From
9:00 AM
10:30 AM
11:30 AM
1:00 PM
4:00 PM

Before
10:30 AM
11:30 AM
1:00 PM
4:00 PM
5:00 PM

Percent
10
15
20
15
30

57

Defining the arrival cycle (Arrival cycle edit table)

Assigning arrivals to the arrival cycle (Arrival edit table)

58

Table Functions
A table function provides an easy and
convenient way to retrieve a value based on
an argument (i.e., some other value) that is
passed to the table.
A table function specifies a relationship
between an independent value and a
dependent value.

59

A non-linear and inversely


proportional relationship between
the tolerance for a machining
process and the time required to
process

Processing time (min)

30

20

10

Tolerance ( .001)

10
60

61

User defined distributions


A user-defined distribution represents a
distribution of a data set that cannot fit one
of available built-in distributions.

62

Probability

Distribution of the operation


time
1.0

0.5

Operation time (min)

0.0
2.0

4.0

6.0

8.0

10.0

63

64

External Files
External Files may be used during the
simulation to read data into the simulation
or write data as output from the simulation.
Files can also be used to specify such things
as operation times, arrival schedules, shift
schedules, and external subroutines.

65

66

Stream
A stream is a sequence of independently cycling
random numbers.
Streams are used in conjunction with distributions.
A stream generates random numbers between 0
and 1.
By default, all streams use seed value #1 and are
not reset between replications if multiple
replications are run.
To assign a different starting seed values to a
stream or to cause the seed value to be reset to the
initial seed value between replications, use the
Stream Editor.
67

Stream number (1 to 100)

YES if the stream to be


reset to the initial seed
value for each model
replication

Seed value (1 to 100)

68

69

General Information
The General Information dialog box allow the user
to specify basic information about a model, such
as its name, default time units, default distance
units, and graphic library.
The user also may specify the models
initialization and termination logic.
A notes window is available for specifying
particulars of a model such as the modelers name,
the revision date, modeling assumptions, etc.
70

71

Background Graphics
Background Graphics allow you to enhance
a model by adding a background to the
animation.
Backgrounds can be created using the tools
in the Background Graphics Editor or by
importing an existing background from
another application such as AutoCAD.

72

73

Math Functions

Function Value returned


Type
EXP(X) exponential of X real
LN(X) natural logarithm of X real
RAND(X)
random value n between 0 and X
(0<= n < X)
real
ROUND(X)
rounded value of X
integer
SQRT(X) square root of X real
TRUNC(X)
truncated value of X (i.e. any
decimal fraction is removed) integer
74

Math Functions
Function

Value returned

Type

EXP(X)

exponential of X

real

LN(X)

natural logarithm of X

real

RAND(X)

random value n between


0 and X (0<= n < X)

real

ROUND(X)

rounded value of X

integer

SQRT(X)

square root of X

real

TRUNC(X)

truncated value of X (i.e.


any decimal fraction is
removed)

integer

75

Distribution Functions
Distribution

Notation

Parameters

Uniform

U(a,b)

a=mean, b=half range

Triangular

T(a,b,c)

a=minimum, b=mode, c=maximum

Normal

N(a,b)

a=mean, b=standard deviation

Exponential

E(a)

a=mean

Gamma

G(a,b)

a=shape value, b=scale value

Weibull

W(a,b)

a=shape value, b=scale value

Erlang

ER(a,b)

a=exponential mean value, b=parameter

Beta

B(a,b,c,d)

a=shape value 1, b=shape value 2,


c=lower boundary, d=upper boundary

76

Distribution
Lognormal

Notation
L(a,b)

Parameters
a=mean of the normal, b=standard
deviation of the normal

Inverse
Gaussian

IG(a,b)

a=shape value, b=scale value

Pearson5

P5(a,b)

a=shape value, b=scale value

Pearson6

P6(a,b,c)

a=shape value 1, b=shape value 2,


c=scale value

Binomial

BI(a,b)

a=batch size, b=probability of


"success"

Geometric

Geo(a)

a=probability of "success"

Poisson

P(a)

a=mean

User-defined

Name(<s>)

ID of a user-defined discrete or
continuous distribution as created in
the User Distribution Editor

77

Operation Statements

ACCUM
COMBINE
CREATE
ENTITY()

78

Entity Related Statements

Accum
Combine
Create
Graphic
Group
Join
Load
Match

Move
Rename as
Route
Split As
Ungroup
Unload
Wait
Wait Until
79

Resource Related Statements

Free
Get
Graphic Statement
Jointly get
Use

80

System Functions

General System Functions


Entity-Specific System Functions
Location-Specific System Functions
Resource-Specific System Functions
Downtime-Specific System Functions
Shift and Break Logic Functions
Preemption Logic System Functions
81

Entity-Related Move Logic


Statement
MOVE FOR <time>
MOVE ON <path network>
MOVE WITH <res1>,

82

You might also like