Intermediate Modeling and Steady-State Statistical Analysis
Intermediate Modeling and Steady-State Statistical Analysis
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 1 of 42
What We’ll Do ...
• Model 6-1: Electronic assembly/test system from
Chapter 4
Modify with Stations, Transfers, Routes, animation of entity
movement
• Model 6-2: A small manufacturing system
Entity-dependent Sequences
Data requirements and availability
Verification (debugging)
• Statistical analysis of steady-state simulations
Warmup and run length
Truncated replications
Batching
Other methods and goals
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 2 of 42
Model 6-1: The Electronic Assembly
and Test System with Part Transfers
• Generalize earlier model – all part transfers now
take 2 minutes (not instant) … want to animate
Includes arriving parts to prep areas, departing parts to the
appropriate exit, and all internal part transfers
• Need new concepts
Stations – location where some process occurs
– Arrivals, manufacturing cells, departures
– Each Station given a unique name
– Entry points for sections of model logic
– Station markers represent stations in the flowchart/animation
Station Transfers –send entities between Stations without
direct connection
– Several different types – we’ll use Routes here, which allow for
positive transfer time, but no other delays like “room” or transporters
– Route paths represent Routes in the flowchart/animation
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 3 of 42
Adding the Route Logic – From Arrival
• Stations and Station Transfers affect both the
model logic and the animation
• Start with Model 4-3 … change to Model 6-1
• For incoming parts (A and B) delete connection
from Assign modules to “Prep” Process modules
Replace with Station/Route module pairs
– Station module (Advanced Transfer panel) – define entity’s current
location
Module Name vs. Station Name
– Route module (Advanced Transfer panel) – send entity out
Route Time, Destination Station
No direct connections exiting from the Route modules –
Route module’s Destination Station defines that
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 4 of 42
Adding the Remaining Route Logic
• Add Station modules for entry to each Prep area
Station names are Prep A Station, Prep B Station,
and are the destination stations for Routes after arrivals
• Process modules for Prep A, Prep B unchanged
• After prep, entities connected to Route module to
send to next station (sealer)
• Similar changes for the rest of the model
Station modules for incoming parts into sealer, rework,
each of three Record modules (entity exit points)
Route modules for outgoing parts out of sealer inspection,
rework inspection (two for each Decide module – pass/fail)
• Could run model now, get correct results … but
no animation of transfers …
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 5 of 42
Altering the Animation – Station
Markers, Routes
• Add animation for Stations and Routes
• Station button , Animate Transfer toolbar
Attach Identifier to it from pull-down list of station names
Get cross hairs, place (click) marker in animation
Can place several station markers for the same logical
station (to represent incoming, outgoing sides)
Can drag station markers around later
• Route button from Animate Transfer toolbar
Options for appearance of entities as they travel the route
Get cross hairs; click in origin, destination Station Markers
– Intermediate clicks for corners along the route
Can drag around endpoints, corners later
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 6 of 42
Altering the Animation – Entity Pictures
• Part B arrivals are in batches of four parts/batch
But constant travel time to Prep B implies they travel “on
top of each other” so it looks like just one part B
Try – change Route time from 2 to EXPO(2), see
separation along the route
• Create illusion to animate the batch
Assign module just after Part B Arrive
Add assignment of Entity Picture to Picture.Batch B
Edit/Entity Pictures to draw the new picture
– Copy Picture.Part B and rename it Picture.Batch B
– Double-click on picture, Picture Editor to get four circles
When batch arrives to Prep B change to single circle (4)
– Add Assign module after Prep B Arrival Station
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 7 of 42
Model 6-2:
A Small Manufacturing System
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 14 of 42
Variable Data Module
• Basic Process panel
• Factor variable
Speed factor at Cell 3 – need a two-row vector
– Assume new (faster) machine is #1, old (slower) machine is #2
– Set to 0.8 for index 1, and set to 1.0 for index 2
• Transfer Time variable
Holds transfer-time constant of 2 minutes between stations
Just a scalar, not a vector or matrix
Used for model generality – if all transfer times changed,
this makes it easy to implement this change
• These are the Initial Values of variables … any
entity can change them
But they’re constant in this model
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 15 of 42
Set Data Module
• Basic Process panel
• Define three sets
Resource set, Cell 3 Machines
– For new and old machine (in that order) at Cell 3
– Resource Names – could have already defined them in Resource
data module, or can define them here
Entity Picture set, Part Pictures
– To attach to entities once their part type is determined
– Picture Names – could have already defined them elsewhere
(Edit/Entity Pictures), or can define them here
Entity Type set, Entity Types
– To attach to entities once their part type is determined
– Entity Types – define them here
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 16 of 42
Advanced Set Data Module
• On Advanced Process panel
• Needed since Set data module does not have
“Other” category for Type
Need to form a set of Sequences to attach the right one to
arriving entities once their part type is determined
Define Name of set to be Part Sequences
Set Type is “Other”
Members subdialog – Add rows, type in names in “Other”
column (have to remember or look up the Sequence
names)
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 17 of 42
Run/Setup and Edit/Entity Pictures
• Run/Setup Dialog
Replication Parameters Tab
– Replication Length = 32 Hours
– 24 Hours/Day
– Base Time Units = Minutes
• Edit/Entity Pictures
Create three custom pictures – Picture.Part 1,
Picture.Part 2, Picture.Part 3
Copy blue, red, and green ball pictures
Rename them
Picture Editor to put white numbers inside via Text object
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 18 of 42
Part Arrivals
• Create module for arrival of one part
One-at-a-time, Time Between Arrivals is exponential with
meant 13 minutes
Don’t know the part type yet …
• Assign module for part attributes
Part Index = draw from DISC probability distribution
– Pairs cumulative probability, value
Entity.Sequence = Part Sequences(Part Index)
– Part Index attribute already assigned … order matters
– Index into Part Sequences (Advanced) Set
Entity.Type = Entity Types(Part Index)
Entity.Picture = Part Picture(Part Index)
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 19 of 42
Release Arriving Entity into System
• Use previously defined Sequences, assigned to
entity via (Advanced) Set of Sequences
• Send arriving entity through a Station module to
define its current station location
Station Name = Order Release
Other five station names already defined via Sequences
• Route module to start it on its way
Route Time = Transfer Time (a Variable previously
defined) Minutes
Destination Type = Sequential
– Arena will direct this entity according to its own sequence
– It just arrived so Arena initializes its JobStep attribute
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 20 of 42
Logic for Cell 1
• Station module to define the station location
Station Name = Cell 1, on pull-down list for stations since
it was previously defined in Sequences
• Cell 1 Process module
Action = Seize Delay Release
Resources subdialog
– Type = Resource (not Set … yet)
– Resource Name = Cell 1 Machine, Quantity to seize = 1
Delay Type = Expression
– Expression = Cell 1 Times(Part Index) Minutes, using the
previously-defined Expression Cell 1 Times
• Route module from Cell 1
Destination Type = Sequential
Station already defined (on incoming side)
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 21 of 42
Logic for Cells 2 and 4
• Incoming Station module – similar to Cell 1
Except for names of Module and Station
• Process module
Action, Resources, Delay Type – similar to Cell 1
Expression for Delay time = Process Time
– Attribute defined in Sequence module for each job type at this point
in its sequence for Cells 2 and 4
– Note that Part Type 2 visits Cell 2 twice in its sequence, with
different delay-time distributions … this data structure is general
enough to handle this
• Outgoing Route module – similar to Cell 1
Except for name of Module
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 22 of 42
Logic for Cell 3
• Station, Route modules – similar to Cells 1, 2, 4
• Process module
Action, Delay Type – similar to Cells 1, 2, 4
Resources subdialog
– Type = Set, Set Name = Cell 3 Machines
– Selection Rule for set = Cyclical
Maybe Preferred Order would have been better???
– Save Attribute = Machine Index (will be 1 or 2)
Expression for Delay time =
Process Time * Factor(Machine Index)
to multiply by 0.8 if entity gets the new machine (#1), using
the preciously-defined vector variable Factor
See book for alternative (cute) expression that avoids the
need for the vector variable Factor
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 23 of 42
Digression: Data Structures
• Why an Expression for processing times at Cell 1
rather than entity Attribute assigned in
Sequences as for the other cells?
Frank answer: Just to show the use of Expression
Could easily have treated Cell 1 like the others
• Conversely, could have used Expression for
processing times at Cells 3 and 4
Problem with Cell 2: Part 2 visits it twice with different
processing-time distributions, so would have to indicate
which visit somehow
Moreover, this is a very small model
• Moral: Think carefully about data structure!
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 24 of 42
Logic for Exiting the System
• Station module to define this location
Station Name = Exit System
• Dispose module
Record Entity Statistics box is checked
Will generate one of the outputs we want, cycle time (time
in system) separated out by part type, since they map onto
the entity types for this model
So don’t need separate Record modules here to collect
cycle times
• Model would run at this point, give correct output
results … but develop animation to show queues,
resources, and movement …
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 25 of 42
Animation
• Pull animation away from logic, data modules
• Move, resize, reorient queues for realism
• Animate Routes (all movement possibilities)
Thick “bundles” of routes — Shift key, Snap to Grid
Heed clockwise direction
Draw lines to define route “lanes”
• Import, modify AutoCAD .dxf file for backdrop
and resource pictures (see text)
• Fine-tune resource pictures
Layers for seize point
• In animation, note that entities travel at very
different rates, pass each other … realistic???
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 26 of 42
Verification
• System Model “Code”
• Validation: Is Model = System?
• Verification: Is “Code” = Model? (debugging)
• The Truth: Can probably never completely verify,
especially for large models
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 27 of 42
Verification (cont’d.)
• Some techniques to attempt verification
Eliminate error messages (obviously)
Single entity release, Step through logic
– Set Max Batches = 1 in Arrive
– Replace part-type distribution with a constant
“Stress” model under extreme conditions
Performance estimation — like slide-rule decimal
placement
Look at generated SIMAN .mod and .exp files
– Run/SIMAN/View menu option
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 28 of 42
Statistical Analysis of Output from
Steady-State Simulations
• Recall: Difference between terminating, steady-
state simulations
Which is appropriate depends on model, study
• Now, assume steady-state is desired
Be sure this is so, since running and analysis is a lot harder
than for terminating simulations
• Naturally, simulation run lengths can be long
Opportunity for different internal computation order
Can change numerical results
Underscores need for statistical analysis of output
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 29 of 42
Warm Up and Run Length
• Most models start empty and idle
Empty: No entities present at time 0
Idle: All resources idle at time 0
In a terminating simulation this is OK if realistic
In a steady-state simulation, though, this can bias the
output for a while after startup
– Bias can go either way
– Usually downward (results are biased low) in queueing-type models
that eventually get congested
– Depending on model, parameters, and run length, the bias can be
very severe
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 30 of 42
Warm Up and Run Length (cont’d.)
• Remedies for initialization bias
Better starting state, more typical of steady state
– Throw some entities around the model
– Can be inconvenient to do this in the model
– How do you know how many to throw and where? (This is what
you’re trying to estimate in the first place.)
Make the run so long that bias is overwhelmed
– Might work if initial bias is weak or dissipates quickly
Let model warm up, still starting empty and idle
– Run/Setup/Replication Parameters: Warm-up Period (time units!)
– “Clears” all statistics at that point for summary report, any Outputs-
type saved data from Statistic module of results across replications
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 31 of 42
Warm Up and Run Length (cont’d.)
• Warm-up and run length times?
Most practical idea: preliminary runs, plots
Simply “eyeball” them
Be careful about variability — make multiple replications,
superimpose plots
Also, be careful to note “explosions”
• Possibility – different Warm-up Periods for
different output processes
To be conservative, take the max
Must specify a single Warm-up Period for the whole model
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 32 of 42
Warm Up and Run Length (cont’d.)
• Create a single overall output performance
measure for Model 6-2 … modify it into Model 6-3
Measure is time-average total number of parts in system
Statistic module
– Time-Persistent type, Name and Report Label Total WIP
– Expression (via Expression Builder … details in book)
EntitiesWIP(Part 1) + EntitiesWIP(Part 2) + EntitiesWIP(Part 3)
– Output File Total WIP History.dat to save within-run data
Animated plots disappear, can’t overlay plots from multiple replications … will use
Output Analyzer to plot the saved data
Speed up the run
– Run/Run Control/Batch Run (No Animation)
– Uncheck boxes in Run/Setup/Project Parameters, Dispose modules
Lengthen Replications to 5 days, do 10 Replications
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 33 of 42
Warm Up and Run Length (cont’d.)
• In Output Analyzer
New data group, Add the file Total WIP History.dat
Graph/Plot or
Add Total WIP History.dat, Replications = All, enter
Title, axis labels
No apparent explosion
Warm-up about 2000 min.; round up to 2 days (2880 min.)
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 34 of 42
Truncated Replications
• If you can identify appropriate warm-up and run-
length times, just make replications as for
terminating simulations
Only difference: Specify Warm-up Period in
Run/Setup/Replication Parameters
Proceed with confidence intervals, comparisons, all
statistical analysis as in terminating case
• Model 6-4: modify Model 6-3 (10 replications)
Warm-Up period = 2 Days
Stick with 10 replications
Delete Output File in Statistic module
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 35 of 42
Truncated Replications (cont’d.)
• Get cross-replications 95% confidence-interval
Half Widths in Reports
For average Total WIP, got 16.39 6.51
Without the Warm-up, this was 15.35 4.42
To sharpen the comparison of the effect of the Warm-up,
did 100 (rather than 10) replications with and without it:
– With Warm-up: 15.45 1.18
– Without Warm-up: 14.42 0.86
Half Widths with Warm-up are larger since each replication
is based on the last 3 days, not all 5 days
• Smaller confidence intervals? Have choice:
More replications, same length
Same number of replications, each one longer
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 36 of 42
Batching in a Single Run
• If model warms up very slowly, truncated
replications can be costly
Have to “pay” warm-up on each replication
• Alternative: Just one R E A L L Y long run
Only have to “pay” warm-up once
Problem: Have only one “replication” and you need more
than that to form a variance estimate (the basic quantity
needed for statistical analysis)
– Big no-no: Use the individual points within the run as “data” for
variance estimate
– Usually correlated (not indep.), variance estimate biased
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 37 of 42
Batching in a Single Run (cont’d.)
• Break each output record from the run into a few
large batches
Tally (discrete-time) outputs: Observation-based
Time-Persistent (continuous-time): Time-based
• Take averages over batches as “basic” statistics
for estimation: Batch means
Tally outputs: Simple arithmetic averages
Time-Persistent: Continuous-time averages
• Treat batch means as IID
Key: batch size for low correlation (details in text)
Still might want to truncate (once, time-based)
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 38 of 42
Batching in a Single Run (cont’d.)
• Modify Model 6-4 into Model 6-5
One replication of 50 days (about the same effort as 10
replications of 5 days each)
A single 2-day Warm-up Period
Statistic module, save WIP data once again for plot
How to choose batch
size?
Equivalently, how to
choose the number of
batches for a fixed run
length?
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 39 of 42
Batching in a Single Run (cont’d.)
• Arena will automatically attempt to form 95%
confidence intervals on steady-state output
measures via batch means from within each
single replication
“Half Width” column in reports from one replication
– Category Overview if you just have one replication
– Category by Replication report if you have multiple replications
Ignore if you’re doing a terminating simulation
Uses internal rules for batch sizes (details in text)
Won’t report anything if your run is not long enough
– “(Insufficient)” if you don’t have the minimum amount of data Arena
requires even to form a c.i.
– “(Correlated)” if you don’t have enough data to form nearly-
uncorrelated batch means, required to be safe
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 40 of 42
Batching in a Single Run (cont’d.)
• Results from Model 6-5:
Category Overview report, average total WIP: 13.64 1.38
Half Width considerably smaller than for truncated
replications (10 replications, 5 days each, 2-day Warm-ups)
– Here we spend only a total of 2 days warming up, and with
truncated replications we spent 10 2 = 20 days warming up
• Can check batch-means half widths during run
Arena variables THALF(Tally ID), DHALF(Dstat ID)
• Can decide on your own batch sizes, form batch
means and c.i.’s “by hand” with Output Analyzer
Why? Use in statistical comparison procedures
More information in book
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 41 of 42
What To Do?
• Several approaches, methods for steady-state
statistical analysis … many more exist
• Opinion:
Try to avoid steady-state simulation … look at goal of
project
If you really do want steady-state
– First try Warm-up, truncated replications
– If model warms up slowly, making truncated replications inefficient,
consider Arena’s batch-means methods in a single long run with a
single Warm-up Period at its beginning … can’t use statistical
methods in PAN or OptQuest, though
• Other methods, goals – references in text
Simulation with Arena Chapter 6 – Intermediate Modeling & Steady-State Statistical Analysis Slide 42 of 42