Understanding System Dynamics

advertisement
GEOG 110 – Lab #3 – Understanding System Dynamics
Due Date:
11:59 pm October 14, 2005
Objectives:
Gain some experience in exploratory analysis of system dynamics by
using pulse, step, and ramp disturbances to perturb systems. Also, make
use of sensitivity analysis to identify which variables in a model have high
leverage, and are thus important to the behavior a system will exhibit.
Background: Complex systems in the environment are often in a state of equilibrium,
where not a lot appears to be changing at any given moment. However,
this apparently static appearance can be deceiving: Another facet of many
systems as that they have developed this stable balance over time, and by
changing one particular aspect of the system, you may observe
significantly different behavior and dynamics. Introducing such a change
or perturbation into a stable system (or disturbing it) is an excellent way to
perform an experiment to get a sense of what is going on in a system; to
see how it performs under different conditions.
However, a facet of environmental science that separates it from many
other scientific disciplines is that because we only have one world, we
cannot perform certain kinds of experiments to understand its systems.
This is one of the reasons that simulation modeling is so valuable in
environmental science: By building effective models, we can perform
simulated perturbation experiments to understand system dynamics in a
way that we never could in the physical world. There are three sorts of
perturbations or disturbances that we will work with in this lab exercise:



PULSE
STEP
RAMP
In this exercise, we will use each of these three disturbances to examine
the dynamics of some simulated systems. We will also use sensitivity
analysis on exogenous variables to determine which variables exert high
leverage upon the system dynamics, and are thus key variables for
understanding the system. An exogenous variable is a variable whose
value does not depend on the status of the simulation, thus the name
exogenous variable. An exogenous variable in a model can also be called
model parameters.
Resources:
This lab exercise does not include the background and theory required for
you to understand how to perform perturbation experiments. For that
information, you should look to material from the lectures and Section 3.5
(pp. 77-87) of the course text. At this point, you should have already
successfully completed two labs, and you should be getting comfortable
1
with using STELLA. The course text also includes some background
material on modeling system perturbations in STELLA in Appendix 3.9
(pp. 92-94), detailing the predefined PULSE, STEP, and RAMP functions
you will use to perform perturbation experiments to help you understand
system dynamics.
Procedure:
This exercise follows the treatment of this material in the course textbook
quite closely, both in terms of the material as it is presented (pp. 77-87).
This exercise will make use an infectious disease dynamics model applied
to an aquatic ecosystem that is described in earlier in Chapter 3. You may
wish to read pages 67 through 77 to familiarize yourself with this model’s
components and how they function.
PULSE Perturbation
1. Get STELLA started and open up the infectious disease dynamics
model provided for this exercise. The model (Chap3a.stm) will be in
j:/isis.unc.edu/html/courses/2005spring/geog/110/001/data (which you
can also access using a web browser as previously described). Ignore
the warning about the model containing advances features that are
unavailable in this version of the software.
2. Change the initial value of Sick Fish from 10 to 0.
3. Add a new Flow that flows into Sick Fish, and call it Infected Fish
4. Define its function using the built-in PULSE function (double click on
the flow and you can find the PULSE function in list of built-ins),
setting to add a pulse of 10 sick fish on day 100, and then NEVER
again (i.e. PULSE (10,100,1000), see the description p. 93 for more
information).
5. Run the model to see its dynamics when it is perturbed in this fashion.
6. Have a close look at the graph showing the 3 fish populations’ change
through the course of the two-year model run, and read the description
of the system dynamics provided on page 80 of the text. If you added
the inflow and defined the PULSE function properly, your output
should look similar (but not identical) to that in Figure 3.6 on page 81.
In this exercise, you are going to have to produce interpretations of
system behavior caused by this perturbation and others, so you’ll find
it useful to pay close attention to how the text has described the pattern
produced by this PULSE perturbation. Note that the text doesn’t
interpret the pattern as much as it describes it, by getting the
description to capture the important details of the dynamics, it’s easier
to interpret the system.
7. This is the first case where you will be writing a brief paragraph
explaining why the system exhibits the particular behavior you see
(see Exercises below), so take some time to examine what the model is
doing when you perturb it in this way.
2
STEP Perturbation
8. In order to model a STEP disturbance, we will change the PULSE
function defining how our Infected Fish inflow is defined to a STEP
function. Double-click this flow, and replace the PULSE function
with a STEP function that gives an inflow of 10 fish/day beginning on
day 100 (i.e. STEP (10,100), again refer to p.93 for more information).
STEP(10,100) means to add 10 more sick fish every day starting on
day 100.
9. Run the model to see its dynamics when it is perturbed in this fashion.
10. Your graph output should look like Figure 3.7 once you have changed
the scales of each of the selected stocks that are displayed. To do this,
double-click the graph, and click on each of the selected stocks and
redefine their scales (typing in 0-4000 for Susceptible Fish, 0-800 for
Sick Fish, and 0-3000 for Resistant Fish and then clicking on the Set
button). If you do not change the graph scales to match those in the
text, the graph output will not look the same as Figure 3.7.
11. This is the second case where you will be writing a brief paragraph
explaining why the system exhibits the particular behavior you see
(see Exercises below), so take some time to examine what the model is
doing when you perturb it in this way.
RAMP Perturbation
12. In order to model a RAMP perturbation, we will change the STEP
function defining how our Infected Fish inflow is defined to a RAMP
function. Double-click this flow, and replace the STEP function with
a RAMP function that gives an inflow with a slope of 10 fish/day
beginning on day 100 (i.e. RAMP (10,100), again refer to p.93 for
more information).
13. Run the model to see its dynamics when it is perturbed in this fashion.
14. Your graph output should look like Figure 3.9 once again, after you
have changed the scales of each of the selected stocks that are
displayed.
15. This is the third case where you will be writing a brief paragraph
explaining why the system exhibits the particular behavior you see
(see Exercises below), so take some time to examine what the model is
doing when you perturb it in this way.
Sensitivity Analysis
An excellent way to figure out which of the variables in a model are the
ones that can really have an effect on the output (more technically stated,
those that exert high leverage, or are those to which the model output
shows great sensitivity) is through the use of sensitivity analysis. In this
type of analysis, all the variables in a model run and kept the same, except
for the variable of interest. For that variable, a range of values are used in
3
a sequence of simulations, and the results within that sequence are
compared to get a sense of how the model output will change as that
variable is changed over a reasonable range of values (in this exercise +/50% of the provided initial value).
16. Re-open Chap3a.stm from the course data directory, or remove your
Infected Fish flow, return Sick Fish to an initial value of 10 and reset
the graph scales to a smaller range. We need to return the model to its
initial state (from before we started experimenting with perturbations)
before we perform our sensitivity analysis.
17. We will now run through the example of a sensitivity analysis shown
on page 86-87 (steps b, c , and d) of the course text, using Recovery
Time as the variable of interest and the response of the Sick Fish stock
to gauge its leverage. We will use the Sensi Specs facility under the
run menu to help us do this.
18. In the Run Menu, click on Sensi Specs to open the Sensitivity
Specifications Dialog.
19. Select Recovery_Time from the Allowable Variables and use the >>
button to add it to the Selected (value) list.
20. Click on Recovery_Time in the Selected (value) list to highlight it (it
will turn blue). This will make a variety of the other things in the
dialog available.
21. Leave the # of Runs at 3, leave the Variation Type at Incremental, set
the Start and End values at 4.5 and 13.5 respectively (this is 50% and
150% of the preset value of 9) and click on Set. You should see 3 runs
set up in the display on the right for each of our 3 values of interest
(4.5, 9, 13.5).
22. Click on Graph button to open a dialog to Define the graph.
23. Select the Sick Fish stock from the Available list and add it to the
Selected list with the >> button and click OK. Don’t worry about the
Scale parameters, if you leave them empty, they will be automatically
optimized after the three runs are over.
24. Go into the Run Specs and change the Sim Speed to 0.005 real secs =
1 unit time so the three runs do not take too long.
25. Click on the S-Run menu item in the Run menu to run the model for
the three values of Recovery Time you specified. Your resulting graph
should look like that shown in Figure 3.10
26. Read through steps c & d on page 86 and 87 carefully: This is an
example of how to interpret the results of a sensitivity analysis. For
the rest of the exercise, we will run sensitivity analyses on other
variables, so this example can provide a template for the kind of
approach you should use.
4
27. Go through steps 18-25 again for each of the following variables, that
you should again analyze using a sensitivity analysis consisting of
three runs, varying the value by +/- 50% from its initial value:
 Infectiousness
 Contact Rate
 Fatality Rate
 Resistance Time
Exercises:
1) For each of the three perturbation experiments we preformed in steps 1
through 15 (PULSE (10,100,1000), STEP (10,100), and RAMP (10,100)
observe the behavior of the system and write a brief paragraph explaining
why the system exhibits the particular behavior you see.
2) For each of the four variables listed in step 27 that you performed a
sensitivity analysis upon, provide:
a) A listing of the three values you used for the sensitivity analysis
b) A brief paragraph summarizing how the system responded to the
changes in the exogenous variables and why you think the system
responded that way. You should also state clearly whether you
consider the variable to exert high leverage on the system, low
leverage, or neither. Then state the implications your analysis has for
taking corrective action against disease X.
Lab Report:
See Lab #2 for format and content.
5
Download