Courses: Introduction to GoldSim:

Unit 8 - Representing Complex Dynamics: Feedback Loops

Lesson 13 - Unit 8 Summary

In this Unit, we explored the complex dynamics that can be generated by feedback loops.

Feedback loops are present in one form or another in most real-world systems. Feedback loops represent a looping chain of cause and effect. A simple example of a feedback is as follows: the more chickens we have, the more eggs that are produced; the more eggs that are produced, the more chickens we have. Note that the terms “feedback” and “cause and effect” intentionally imply that the relationship between the variables is dynamic and the system changes over time.

This Unit illustrated how feedback loops can generate complex dynamic behavior in models. 

The key points that we covered were as follows:

  • There are two kinds of feedback loops: positive feedback loops and negative feedback loops. Positive feedback loops are self-reinforcing. Positive feedback loops generate growth and amplify changes. Negative feedback loops are self-correcting. Negative feedback loops drive systems toward equilibrium and balance.
  • There is a very well-developed and extensive academic literature surrounding the methodology and modeling techniques for analyzing and understanding the behavior of systems governed by such loops (and delays) referred to as system dynamics. The system dynamics methodology uses causal loop diagrams as a visual tool to represent the feedback structure of systems.
  • GoldSim automatically analyzes your entire model to identify "who affects who", in order to ensure that the "upstream" elements are calculated prior to the "downstream" elements. This is referred to as the causality sequence.
  • Feedback loops have a looping causality sequence. GoldSim allows you to create looping systems if and only if the loop contains a state variable.  State variables are outputs whose value is computed based on the historical value of the element’s inputs (as opposed to being a function of the current value of the element’s inputs).  These outputs can be thought of as having “memory” of what has happened before. The primary output of a Reservoir is a classic example. All state variables have, by definition, an initial value.
  • Lookup Table elements can be used to create lookup tables, or more generally (if there is more than one independent variable), a response surface. Response surfaces provide a powerful and flexible way to represent complex relationships between variables that cannot readily be expressed using equations.
  • In many engineered (and social and organizational) systems, there is active feedback control designed directly into the system to make it behave in a specified manner.  A thermostat is the classic example of this (the heating and/or cooling rate is adjusted based on the current temperature). 
  • The Controller element can be used to represent active feedback control processes. Controllers use feedback control to influence the state of a “process” and adjust it to a desired value (a target).  A “process” could conceptually involve something quite complex (e.g., an entire chemical plant), but typically will be something much more specific (e.g., a single tank in that plant). The state is some property of the process that we want to control (e.g., the volume of water in the tank). The state is referred to as the process variable. In GoldSim, the process variable is usually the main output of a Pool or Reservoir (and hence a state variable). The goal of the Controller is to produce an output that when fed back into the process directs the process variable back toward the target.
  • The Controller has three different (user-selected) control methods by which it determines the Controller output: Dead Band, Proportional and PID.
  • When building a model that involves outflows from a stock that have active or passive feedback control as the stock approaches a bound, it is critical for you have a very good understanding of how the real system actually works such that you represent realistic control systems in your model. In many systems, in order to be realistically represented, different outflows would likely need to be treated in different ways as the bound is approached: some would need to be turned on and off using (using a Dead Band Controller), others would need to gradually be changed (e.g., using a Proportional Controller), and others would need to be prioritized (and hence reduced perhaps) once the bound is reached (and outflow is constrained).
  • The interaction of multiple feedback loops can generate very complex endogenous behavior in a system, even in cases where the system appears to be conceptually simple. Predator-prey systems provide a good example of this.

In addition to feedback loops, many real-world systems involve significant time delays.  That is, when one variable changes, it may not have an immediate impact on other variables, but will have a delayed impact. Such delays can also generate complex dynamics (particularly when combined with feedback loops). We will discuss delays in the next Lesson.