NOTE: Exercises below may link to supporting files in a GitHub repository. If you follow such links and (at the GitHub website) right-click a file and choose “Save link as…”, it will appear to download a desired file but may in fact fail. A failure will be discovered when trying to open the downloaded file, usually in MATLAB, and learning that it is not in fact a MATLAB script, function, or SimEvents simulation model.
A remedy is to, at the GitHub website, back up to the project root (e.g. Courseware or Software), choose “Download ZIP” for the entire project, and find the desired file within the project's ZIP. Our apologies for the inconvenience.
A production line has two serial workstations. The number of servers at each workstation is [2, 2], and each server has lognormally-distributed processing times with parameters (mu, sigma) of (1, 1). (The lognormal distribution's mean and variance in terms of these parameters are listed at its Wikipedia page.) A job is released into the system approximately every 5 hours, and historical data shows that job inter-release times are approximately exponentially-distributed.
1. Use analytical approximations (including the parallel-servers version of the VUT equation) to estimate the average cycle time for each workstation, and then the average cycle time for the production line. Use the table below to show your calculations.
Workstation 1 | Workstation 2 | |
---|---|---|
m (parallel servers) | 2 | 2 |
te | ||
σe | ||
ce2 | ||
u (utilization) | ||
cd2 (departure process) | (not needed) | |
CTq | ||
CT |
2. Open the simulation model SimpleSerialLine_TwoWks.slx. Configure the model with the parameters above, except use exponentially-distributed processing times instead of lognormal ones (use the same mean). Set the stop time to 100,000 hours, run five simulation replications, and use the Simulation Data Inspector (accessible next to the stop time box) to visualize average cycle time. For context, copy & paste your figure here, and compare to what was computed above using analytical approximations.
3. Repeat (1) except using exponentially-distributed processing times instead of lognormal ones. What do you observe?
BIG PICTURE: This is a straightforward comparison of analytical approximation and simulation results. The difference between (1) and (2) is a processing time SCV of >1.7 versus 1, which should introduce deviation between the analytical approximations and simulation results, corrected in (3).
A production line has four serial workstations. The number of servers at each workstation is [1, 2, 6, 2] with deterministic processing times of [4, 5, 10, 3] hours. Each workstation experiences preemptive failures every 400 minutes (deterministic), which last approximately 80 minutes (deterministic). Jobs are released into the system at a rate of 0.2/hour.
BIG PICTURE: (2) has all workstations with SCVp=0, and (3) involves experimenting with SCVp=1 at each workstation one-by-one. The biggest cycle time increase is expected from larger processing time variability at or upstream of the bottleneck, either at the bottleneck because a single-workstation curve of cycle time versus processing time SCV is linearly increasing, or upstream of the bottleneck because an upstream workstation's processing time variability induces a downstream workstation's arrival process variability, and a single-workstation curve of cycle time versus inter-arrival time SCV is also linearly increasing. (4) reduces SCVia from 1 to 0.213, which should reduce whole-line cycle time. (5) focuses on a single workstation's cycle time, but that workstation is not the bottleneck and has low utilization so a reduction in SCVia should have little impact. (6) also concerns bottleneck intuition - a MTTR reduction effectively increases capacity, and this should be most useful at the bottleneck.
A production line has four serial workstations. Open the MATLAB script SweepParams_SimpleSerialLine_FourWks.m (which controls the simulation model SingleSerialLine_FourWksWithPreempFailures.slx through the wrapper function SimWrapper_SimpleSerialLine_ FourWks.m).
1. Configure the model (in the script’s top section, not the simulation model itself) for each of the following scenarios. In all cases there is one server per workstation. Sweep arrival rates from 0.2 to 0.9 in steps of 0.1, set the stop time to 5,000, and run 10 replications per point. Run the script for each scenario, copy and paste the figure generated by each run below, and explain your results.
Scenario | te at each workstation | ce2 at each workstation | Buffer Capacity at each workstation | Comments |
---|---|---|---|---|
1 | 1 | eps (effectively 0) | Inf | No Processing Time Variability |
2 | 1 | 1 | Inf | Pay for variability with higher CT and WIP |
3 | 0.95 | 1 | Inf | Add capacity |
4 | 1 | 1 | 1 | Pay for variability with reduced TH |
5 | 1 | 0.3 | Inf | Reduce variability |
2. Configure the model (in the script’s top section, not the simulation model itself) for each of the following scenarios. At each of the four workstations te=1 and ce2=1, except for one workstation with ce2=10 as specified in the table below. In all cases there is one server per workstation. Sweep inter-arrival rates from 0.2 to 0.9 in steps of 0.1, set the stop time to 50,000 (5-10x larger than before, to get averages with high variability), and run ten replications per point. Run the script for each scenario, copy and paste the figure generated by each run below, and explain your results.
Scenario | High-variability workstation | Buffer Capacity at each workstation | Comments |
---|---|---|---|
6 | ce2=10 at Workstation 1 | Inf | High variability at station 1 |
7 | ce2=10 at Workstation 4 | Inf | High variability at station 4 |
8 | ce2=10 at Workstation 1 | 1 | High variability at station 1, and system has small buffers |
9 | ce2=10 at Workstation 4 | 1 | High variability at station 4, and system has small buffers |
BIG PICTURE: This was the first exercise given for which Simulink’s Simulation Data Inspector was inadequate – the number of permutations to is too great to try one-by-one manually, and also the output visualizations are more than single-replication traces of statistics measured directly in a simulation. The first five scenarios concern the tradeoffs induced by variability, and how variability must always be paid for in some form. The second four scenarios concern the relative placement of variability in a serial production line; an expected result is that a certain amount of variability upstream is more damaging to overall line performance than the same amount of variability downstream.
A production line has four serial workstations. Open the MATLAB script SweepParams_SimpleSerialLine_FourWks.m (which controls the simulation model SingleSerialLine_FourWksWithPreempFailures.slx through the wrapper function SimWrapper_SimpleSerialLine_ FourWks.m). Configure the model (in the script’s top section, not the simulation model itself) with one server and an infinite-capacity buffer at each workstation, where all servers have an effective processing time of 1 hour and an effective processing time SCV of 10.
BIG PICTURE: A classic theme is that upstream variability is more damaging to whole-line performance than downstream variability, but this exercise is expected to show that it may vary with utilization. A finite buffer with a capacity one is expected to damage whole-line throughput the most when as far upstream as possible, where it can slow the release of work into the system and especially at higher utilizations. However, as far upstream as possible it should also have the greatest reduction on cycle time and work-in-process, especially at higher utilizations. Results for the numbers chosen here are shown in tabulated form below.
Utilization at each workstation | 0.3 | 0.5 | 0.7 | 0.9 |
---|---|---|---|---|
CT, Baseline | 14.29 | 32.57 | 70.56 | 306.22 |
CT, Reduce variability at Wks 1 | 12.29 | 23.38 | 57.67 | 167.43 |
CT, Reduce variability at Wks 2 | 13.12 | 25.25 | 55.95 | 204.70 |
CT, Reduce variability at Wks 3 | 11.42 | 26.82 | 51.12 | 181.09 |
CT, Reduce variability at Wks 4 | 12.61 | 26.25 | 61.35 | 216.10 |
% Improvement | 20% | 28% | 28% | 45% |
Utilization at each workstation | 0.3 | 0.5 | 0.7 | 0.9 | |
---|---|---|---|---|---|
Baseline | WIP | 4.22 | 17.44 | 52.13 | 257.13 |
CT | 14.08 | 34.76 | 74.62 | 285.35 | |
TH | 0.30 | 0.50 | 0.70 | 0.90 | |
Small Buffer at Wks 1 | WIP | 4.70 | 8.67 | 17.21 | 25.24 |
CT | 16.74 | 20.32 | 31.67 | 39.73 | |
TH | 0.28 | 0.43 | 0.54 | 0.64 | |
Small Buffer at Wks 2 | WIP | 5.14 | 23.15 | 2115.9 | 7207.7 |
CT | 17.18 | 46.23 | 3026.2 | 7976.1 | |
TH | 0.30 | 0.50 | 0.62 | 0.62 | |
Small Buffer at Wks 3 | WIP | 4.24 | 20.83 | 1904.0 | 6887.2 |
CT | 14.14 | 41.87 | 2719.7 | 7650.9 | |
TH | 0.30 | 0.50 | 0.62 | 0.63 | |
Small Buffer at Wks 4 | WIP | 5.71 | 23.26 | 1991.9 | 6944.6 |
CT | 19.11 | 46.44 | 2839.0 | 7707.2 | |
TH | 0.30 | 0.50 | 0.62 | 0.62 | |
% Improvement: WIP | 0% | 50% | 70% | 90% | |
% Improvement: CT | 0% | 42% | 58% | 86% | |
% Degradation: TH | 0% | 0% | 11% | 29% |
[This exercise was created as a simulation complement to Hopp & Spearman's “Diagnostics and Improvements” section 9.6 (ed. 2), specifically the first example for increasing throughput in a two-workstation production line.]
A production line has two serial workstations. Each workstation has one server, and experiences calendar time-based preemptive failures. The effective processing time of the servers are [19, 22] minutes, processing time SCVs are [0.25, 1], the MTTF at each workstation is [48, 3.3] hours, and the MTTR at each workstation is [480, 10] minutes. The first workstation has no restrictions on its input buffer's capacity, but space limitations restrict the second workstation's input buffer capacity to 10 jobs. A job is released into the system approximately every 25 minutes, and historical data shows that job inter-release times are approximately exponentially-distributed. Management's desired throughput rate for the line is 2.4 jobs/hour.
Open the simulation model SimpleSerialLine_TwoWksWithPreempFailures.slx, configure it as described, and use it to answer the following questions. In all cases set the stop time to 500,000 minutes, run several simulation replications, use the Simulation Data Inspector to visualize results, and copy & paste your figures to justify your answers. Note that a (mean, SCV) of (19, 0.25) can be realized with a triangular distribution with (min, max, mode) of (0, 44.954, 12.046), and a (mean, SCV) of (22, 1) can be realized with a popular non-negative distribution which always has SCV=1. Assume that both MTTF and MTTR are exponentially-distributed.
BIG PICTURE: This exercise was created as a simulation complement to Hopp & Spearman's diagnostics example because a criticism of the example is that it's a toy problem which does not scale to larger and more complex production lines. Valid criticism or not, what is valuable is that Hopp & Spearman offer a process for diagnosing performance limitations, arguably a critical skill for any industrial engineer.
A production line has two serial workstations, each with a single server. Between the two workstations is a finite buffer that can hold B jobs. The first workstation continues operating unless blocked by a full buffer downstream. A job is released into the system approximately every 1 minute, and historical data shows that job inter-release times are approximately exponentially-distributed.
BIG PICTURE: The purpose of this exercise is to begin exploring the idea of controlling WIP and CT by simply limiting the queue capacity at any workstation. Results should show a tradeoff between better (lower) WIP and CT at the second workstation for smaller values of B, at the expense of worse (lower) throughput. The difference between (1) and (2) is in the variability of processing times. If desired to shorten the exercise, consider eliding part (3), and also limiting the range of B values.