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