Simulation Using Promodel

Download Report

Transcript Simulation Using Promodel

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

L entity arrivals E L L L entity exits EXIT

ProModel Modeling Elements

The main elements are: •

LOCATIONS

(object) •

ENTITIES

(object) •

ARRIVALS

(interaction) •

PROCESSING

(interaction) •

RESOURCES

L L entity arrivals E L L entity exits 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 factory, patients in a hospital, or widgets customers in a 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 • Color, size , etc. (default is 150 fpm)

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: t he number of entities arriving at a time (Qty each). • Frequency: entities • Occurrences the time between the arrivals of successive :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

thusly: are declared in ProModel shorthand, • N(12,3) means a normal distribution and standard deviation of 3.

with mean 12 • 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 mean time between events of 5.

with a

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 Find these answers: (480 minutes).

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

clone

d

. 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

Problem Statement:

Types

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

current simulation.

is used to subtract an expression from the • 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 Single Unit Multi-Capacity L L L L Multi-Unit Single-Capacity L L L L L L 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 L L L E 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

other graphics are used).

(if no

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 this refers to the

work search

or the

park search Specifications

, (where the jobs are) (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

Interfaces -

The number of location-node interfaces in the network (entity dropoff / pickup points)

Mapping –

movements Used to specify nodes for restricting

Nodes –

The number of nodes in the network, controlled using the Node Edit table

ProModel™ - Path Networks

• • •

Path Segment Editing From

and

To -

segment nodes. The beginning and ending

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

• • •

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 priorities

must be defined, as well as the 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

time – Causes the skipping of a scheduled off-shift or break

Priority

desired.

– Changes the priority value of the shift block if

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

left blank.

: Determined by

frequency

logic if

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

left blank.

: Determined by

frequency

logic if

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

left blank.

: Determined by

frequency

logic if

Priority Logic

: As defined for

clock

.

: 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 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 (User ’ s Guide, Reference Manual) • Reference Models • Statement Builder • www.promodel.com/BBS