WOLFRAM SYSTEM MODELER

Introduction

An Introduction to System Dynamics

Wolfram Language

In[1]:=
SystemModel["SystemDynamics.UsersGuide.Overview.Introduction"]
Out[1]:=

Information

System Dynamics is a modeling methodology designed by Jay Forrester in the 1960s and 1970s for modeling and simulating mass and information flows of continuous-time systems in the soft sciences.

It is a low-level modeling methodology. The software behind this library is not more complex than that behind the Block library. Thus, the value of this library is not so much in the software modules themselves as it is in the application examples.

System Dynamics is important, because this modeling methodology is widely used by researchers in the life and social sciences.

The methodology is built around the concepts of Levels and Rates. Levels are quantities that can be accumulated, whereas Rates are the quantities that control the increase and/or decrease of the Levels.

Typical examples of Levels and Rates are given in the graph below:

System Dynamics modelers are generally quite "generous" (sloppy) in the use of concepts. This becomes clear when looking at the entries in the above table.

The Levels can be computed from the Rates by a simple differential equation:

The Rates are being controlled by a so-called laundry list, a set of influencing factors that control the rates. Below is a table that provides a possible laundry list for the human birth rate in a population dynamics study:

There are usually many ways to model systems from soft sciences, i.e., different sets of variables constituting a laundry list may lead to quite similar simulation results in the end.

The Rates are usually determined by static non-linear functions of several variables, namely those listed in the laundry list:

Since it is too complicated to identify such a complicated function of multiple arguments, the System Dynamics methodology usually simplifies the functional relationship by assuming a multiplicative relationship between the different input variables:

The individual non-linear functions are now functions of a single argument. They are usually identified from statistical information and are specified in the model as tabular functions.

A simple example of a System Dynamics model is shown below:

This example describes the savings of a person. The savings (a variable that can be accumulated, i.e., a Level) is controlled by income and expenses (Rate variables). There are several categories of income (salary and interest), whereby the interest is proportional to the savings. There are also several categories of expenses, namely bank fees, taxes, utility bills, and cost-of-living expenses. The bank fees are also proportional to the savings. If the parameters are set correctly, the modeler can observe whether his or her savings will grow over time, or whether they will get depleted. Mass flows are represented by lilac connections, whereas information flows are depicted in blue. The two lilac clouds represent sources and sinks of masses. These are dummy models in our library. They were only provided to maintain the look-and-feel of the System Dynamics methodology.

Originally, System Dynamics models were usually encoded in Dynamo, a very simple alphanumeric modeling/simulation language that was in fact already outdated (in comparison with other modeling/simulation environments) at the time it was created.

With the advent of the Macintosh computer in the mid-eighties, Dynamo was rapidly replaced by STELLA, a graphical tool designed for representing System Dynamics models.

Although STELLA offers a graphical user interface, the tool has its drawbacks. It is still a very simple environment. It is not truly hierarchical, and worst of all, it doesn't offer means for documenting models. Yet documentation is very important, especially in soft sciences. What precisely does a particular variable mean? How is it measured? What measurement units are being used? For an electrical resistor or a mechanical inertia, the answer to these questions may be obvious, but this is not the case for many of the soft-science models.

The SystemDynamics Modelica library offers some of the touch and feel of the STELLA software, while providing the modeler with the full power and flexibility of the Modelica environment. Integration of the SystemDynamics Modelica library with other available Modelica libraries allows broadening the applications of the System Dynamics modeling paradigm to engineering domains. The multi-formalism and multi-domain capabilities of Modelica can be exploited to create models of complex and large socio-technical systems that have not been feasible using earlier implementations of the System Dynamics modeling methodology.