Vensim Guide
Vensim Guide
Vensim Guide
Tutorial
VENSIM PLE
To start working on a new model go to the File menu and select New Model. VENSIM PLE
will return the following dialog box:
You must choose the time horizon of your model (when your simulation will start and finish),
the appropriate time step (how accurately you wish to simulate your model), and the units of
time. Start your model of the deficit in 1988 (enter 1988 in the INITIAL TIME box) and simulate
it through the year 2010. Select a time step of 0.25 years. Check the box saying “Save results
every time step.” Finally, change the units of time from Month to Year.
Click on OK or hit return. To give your model a name, choose the Save As... command from
the File menu and enter the desired name in the text field and click on OK. (VENSIM PLE will
automatically supply the .mdl extension. If you are working with a different version of
VENSIM and see a Show all of type option on the right side of the dialog box, make sure that the
.mdl Fmt Models extension is selected. This allows VENSIM PLE to save the model in a
format that can be used by both Macintosh and IBM-compatible computers.)∗
∗
VENSIM saves every simulation run and custom graph you produce as a separate file. It supplies a .vdf
extension for simulation runs and a .vgd extension for custom graphs. These files cannot be opened from
outside the VENSIM application; they can be opened from inside VENSIM through the Control Panel.
The VENSIM PLE software is designed using the metaphor of a “work bench.” The large blank
area in the middle of the screen is your work area, where you actually develop and analyze your
model. The different buttons on the border of the work area represent the different “tools”
available as you work on your model. The tools on the top horizontal row are for building your
model. The tools on the left vertical row are for model analysis. The tools on the bottom
horizontal row allow you to change the formatting of the model diagram. You will become
familiar with many of these tools as you build the deficit model.
To begin, add a stock representing the outstanding federal debt to your model. To do this click
on the button (the one with the box in it) on the top horizontal toolbar and then click in the
right center of the screen. You use this tool whenever you want to add a stock or level variable
to your model. VENSIM PLE then returns an empty text box and a blinking cursor. Type the
word Debt and then hit the return key. Your screen should now look like this:
You have just created the first variable in your model, the stock of money that constitutes the
federal debt.
Now add the inflow to the stock of debt. Click on the button in the top horizontal tool
menu. Now, click and release once to the left of the Debt stock, move the cursor so that it sits
inside the Debt stock, and click and release again. VENSIM PLE then gives you an empty text
box and a blinking cursor. Type Net Federal Deficit and hit the return key.
Note: The icon (which is supposed to resemble a cloud) represents the boundary of your
model. In this case the “cloud” on the left side of the flow signifies that you do not, at the
moment, care about where the deficit comes from--you are not keeping track of the stock that is
being drained by the deficit flow. You do care, however, where the deficit goes: hence you are
accumulating it in the Debt stock. If your deficit flow has “clouds” on both ends, then you
haven’t hooked the flow to the stock correctly. To fix this, click on the tool and then click
on the flow valve. This action will remove the flow from the model and let you start over again.
You have now created the flow, Net Federal Deficit, which increases the stock of Debt.
At this point you may you wish to change the name of the stock variable from Debt to Federal
Debt. To do this, click on the button (the one without the box in it) on the top horizontal
toolbar and then click on the Debt stock. VENSIM PLE gives you a text box with Debt already
written. You can now edit the text in any way you choose. Click in front of the D, add the word
Federal, and press the return key.
Now you need to create the variables needed to determine the Net Federal Deficit. Assume the
Net Federal Deficit is determined by two variables, Government Revenues and Total
Government Expenses. Click on the button again and add these two variables to your
diagram (click and release on the work area, type the variable name, hit return, and then click
and release again, on a different part of the work area, to add the next variable). Unlike the
previous two variables--Federal Debt, which was a stock, and Net Federal Deficit, which was a
flow
--the new variables are not attached to a valve or a box. These are called auxiliary variables.
To show pictorially that the Net Federal Deficit is determined by Government Revenues and
Total Government Expenses, we connect them with causal arrows. First click on the
button to select the causal arrow tool. Now, click and release on the variable Government
Revenue and then click and release again on Net Federal Deficit. Do the same for Total
Government Expenses. Make sure your causal arrows actually end on the words Net Federal
Deficit. They should not be attached to the cloud, the stock, or directly to the valve. You can
delete arrows using the tool.
Clicking on the button allows you to select the variables you have created and move them to
different places on the screen. To do this, place the arrow cursor over the variable you wish to
move, hold down the mouse button, move the variable to the desired place, and then release the
mouse button. You can also select the “handles” of the causal arrows (the small circles in the
middle of the arrow) and change the curvature of the arrow. Arrange your variables and arrows
so that your diagram looks approximately like this:
Now, you may want to update your diagram by labeling the arrows to show that Government
Revenue and Total Government Expense affect the Net Federal Deficit in different ways.
Specifically, an increase in revenue causes the deficit to decrease, while an increase in expenses
causes the deficit to increase. To do this, first click on the button. Then select the “handle”
of the arrow you wish to label by clicking and releasing on the small circle in the middle of the
arrow (the handle darkens when selected). Now, with the handle selected, click and release the
button on the bottom horizontal toolbar. You then see a pop-up menu that looks like this:
Click and release on the desired label, and it will show up in the diagram.
As a side note, to indicate a delay in a causal arrow, right click it with the “hand” selected. You
can click on “Delay marking” to show a delay in an arrow. You also have the ability to move the
polarity mark to the inside or outside of the arrowhead, which may make it easier to see when
there are many links coming in to a single variable.
Label your two causal arrows so your diagram looks like this:
Now, using the same steps discussed above, complete the stock, flow and feedback so your
diagram looks like this:
You may want to slide the handle of each arrow close to its arrowhead, so each label is clearly
associated with its causal arrow.
Finally, you may wish to label the positive feedback loop you have just created. To do this, click
on the button and then click in the center of the feedback loop. You can use this tool to
create comments that, while having no structural use, can greatly help someone else understand
your model diagram. After clicking in the center of the loop, you should see the following
dialog box:
Click on the Loop Clkwse button in the Shape box; click on Center in the Word Position box;
and type R in the Comment Type box. Your screen should now look like this:
Click on the OK button or hit return. Your screen should now appear as:
Use the comment tool again to add a name to your loop by clicking underneath the “R” and
adding a name such as “Compounding Interest”.
Now that you have developed a complete stock, flow, and feedback representation of the deficit,
you need to write equations for each of the variables. Equation formulation is a critical step in
the process of model building and is a key part of the process of developing a rigorous
understanding of the problem at hand.
To begin writing equations, click on the button on the top horizontal toolbar. The variables
in your diagram become highlighted.
A highlighted variable indicates that the equation for that variable is incomplete.
Start by writing the equations for the exogenous variables. To begin, click on the highlighted
variable Government Revenue. You then see the following dialog box:
Good modeling practice requires that each equation in a model have three elements, the equation
itself, specified units of measure, and complete documentation. You enter the equation in the
box to the right of the = sign. You enter the unit of measure in the text field to the right of the
word Units. Equation documentation or “comment” is entered in the box to the right of the word
Comment.
To write an equation for Government Revenue, click in the box to the right of the = sign.
Assume that government revenue is constant, so that all you need to do is enter the appropriate
number for government revenue.
Government revenue was about 900 billion dollars annually in 1988, so type 900000000000 in
the box. Alternatively you can write 9e11 which is VENSIM PLE shorthand for 9 x 1011.
Now fill in the units. Revenue is a flow variable, so the appropriate unit of measure for this
equation is dollars/time unit. Since you already chose to run the model in time steps of 1 year,
the appropriate unit is dollars/year. Type dollars/year in the units field. (The next time you
specify the units for a variable in this model, dollars/year will appear in the units pull-down
menu. You can click on the arrowhead to the right of the units field to see units already
specified for other variables in the model, and then use the mouse to select from that list when
appropriate.)
Finally, provide a description of this equation in the comment field. A good comment will be
brief but also give the reader some sense of the logic behind the equation as well as state the key
assumptions. For example, one might write for this equation:
Government revenues are assumed to be constant and equal to 900 billion dollars
annually based on the actual value in 1988.
Click on OK or hit return and your diagram will look like this:
Government Revenues is no longer highlighted, since you have just specified its equation.
Following the process above, write equations for the two other exogenous variables, Interest
Rate and Other Government Expense. Use the following information:
• Government expenses, excluding interest on the debt, were approximately 900 billion
dollars in 1988.
• The interest rate paid on the national debt in 1988 was around 7%/year.
With the equations formulated for the exogenous variables, now turn your attention to the
endogenous variables. Writing equations for the stocks and the flows is a little different, so let’s
do an example of each. First we formulate the equation for the stock, Federal Debt.
Again, click on the button in the top horizontal toolbar and then click on Federal Debt,
which displays the following dialog box:
Unlike flows and constants, a stock requires an additional element specified for its formulation.
After you specify the equation, you need to select an initial or starting value.
You enter the equation for the stock in the box to the right of the word Integ. Integ stands for
“integrate” and simply means that the stock at any moment in time is equal to the sum of all the
inflows minus the sum of all the outflows plus the initial value.
When you created the stock, flow, and feedback diagram, you connected the flow Net Federal
Deficit to the stock Federal Debt. VENSIM PLE captures this stock-flow dependency by
providing a list of the required Inputs to the stock Federal Debt on the left side of the equation
dialog box. (The variable we are formulating, Federal Debt, itself also appears in the Inputs
box, but we focus on the input Net Federal Deficit. In general, you will never want to have the
same variable on both the left and right sides of an equation.)
Because the model diagram shows the flow Net Federal Deficit feeding into the stock Federal
Debt, VENSIM has anticipated that the flow is an input to the stock equation and placed the Net
Federal Deficit variable name in the box to the right of Integ. If this is not the case in your
version of VENSIM PLE, then your model diagram is incorrect and needs to be changed—make
sure the flow is attached to the stock).
Below Integ box is the Initial Value box. Here you enter the initial condition or starting point
for the stock. The outstanding federal debt was approximately 2.5 trillion dollars in 1988, so
enter 2500000000000 in the initial value box (alternatively you can write 2.5e12 which is
VENSIM PLE shorthand for 2.5 x 1012). The Initial Value box should look like this:
Now the equation specification for the Federal Debt stock is complete. Your equation indicates
that the federal debt is simply the accumulation of the Net Federal Deficit since 1988 added to
the initial value.
You still need to specify the unit of measure, however, and document your equation in the
comment field. The units should be fairly straightforward. The Federal Debt is a stock and its
units are dollars. Useful comments briefly explain the structure of the equation and highlight the
key assumptions made. A sample comment for Federal Debt is:
The Federal Debt is the accumulation of the Net Federal Deficit plus its initial value.
The initial value is set to 2.5 trillion dollars, which was the approximate outstanding
federal debt in 1988--the starting point for this simulation.
Your dialog box should now look like this:
Now you need to specify the equations for the flow and the auxiliary variables.
Again using the tool on the top horizontal toolbar, click on the Interest Payments variable.
You should see a dialog box that looks like this:
This box is identical to those used to specify the exogenous variables, but there are two other
variables in the required Inputs box. When you developed the stock, flow, and feedback
diagram, you drew causal arrows connecting the variable Federal Debt and constant Interest
Rate to the variable Interest Payments. VENSIM PLE has conveniently recognized this and
provided a list of the required inputs to your equation based on the picture you have already
created. In fact, if you try to write your equation without using the two required inputs,
VENSIM PLE will give you an error message.
The rate of interest payment is simply equal to current debt level multiplied by the interest rate.
To enter this equation first click on the Federal Debt variable in the Inputs box. It now appears
in the equation box. Now type * (alternatively you can click on the button), and then click on
the Interest Rate variable in the Inputs box. Your equation box should now look like this:
To complete the equation, you need to specify the units and document your equation in the
comment field. An appropriate comment might look like the following:
The annual rate of interest payments is equal to the current outstanding federal
debt multiplied by the annual interest rate.
The dialog box for the variable Interest Payments should now look like this:
Following a similar process to the one outlined above, you should now be able to complete your
model.
VENSIM PLE provides five tools for analyzing and understanding the structure of your model.
The tools are represented by the top five buttons on the vertical toolbar on the left edge of the
screen.
By far the most important of these is the unit-checking function. To access this tool, go to the
Model menu and select Units Check.
An important feature of any system dynamics equation is dimensional consistency. This is just a
fancy way of saying that the units of measure must be the same on both the left and right sides of
the equation. As an example, suppose you had chosen the units of the Federal Debt stock to be
dollars and the units of the Interest Rate to be dollars/year. If this were the case, then a units
check would yield the following message:
Followed by:
The problem is that, in this example, the equation for Interest Payments is not dimensionally
consistent: The right and left sides of the equation have different units. The flow Interest
The cause of the problem is that unit of measure for Interest Rate is incorrect. The interest rate
is not measured in dollars per year. An easy way to see this is to recognize that the interest rate
really has nothing to do with the dollars. It could easily apply to any other currency or any other
type of measurement unit. The interest rate is really the ratio of the interest payment you must
make each time period to the amount you owe. As a result, the appropriate unit of measure for
Interest Rate is ($/year)/$ or 1/year. If you enter 1/year into the unit field of the interest rate
variable-run the units check, you should get:
In this example, the unit-checking tool identified an incorrect assumption in a common mental
model of the interest rate. Dimensional consistency is an essential requirement in all models,
and VENSIM PLE’s unit-checking feature often helps you identify serious flaws in both your
understanding of the system under consideration and your resulting model formulations. Always
make sure that the units in your model balance!
The other tools can also be useful. The and the buttons create “causes” and “uses”
trees for the selected variable. To use these tools, you need to first “select” a variable. Do this
by first clicking on the button and then double-clicking on the variable you wish to select.
You can tell which variable is selected by looking at the top border of the VENSIM PLE
window. If you select the variable Federal Debt, the top border will look like this:
Having selected Federal Debt, clicking on the two “causes” and “uses” buttons in sequence
gives you:
The tool identifies all the feedback loops in which the selected variable is a member, and the
VENSIM PLE also has tools to help you analyze the behavior of your model. Before doing this,
however, you must actually simulate the model so you have some behavior to analyze.
To run a simulation, you first need to choose a name for this particular model run. It is helpful to
choose names that suggest some idea of what is being tested rather than simply using name like
SIM1, SIM2, etc. Since this is the base case run for your model, you might choose to call the
run BASE.* The name of the simulation is enterted in the white box in the analysis tool bar. The
default name for any simulation run is Current. Change this to Base.
To run a simulation, click the button and your model will start simulating.
Once the simulation run is completed, you can look at the results of your simulation. VENSIM
PLE provides many tools with which to view simulation output. The most basic, and often most
useful, of these is the strip graph. To create a graph of the Federal Debt, first click on the
tool and then double-click on the stock to select the variable Federal Debt.
To get see a strip graph, click on the button in the left toolbar. You then see:
*
Advanced Tip: VENSIM PLE also offers you the choice of two numerical integration methods, Euler and Runge-Kutta 4.
Runge-Kutta 4 is a more accurate simulation method, but it is also more computationally intensive. Generally it is better to
use the Euler method and change only if you believe you are seeing integration error. Read Business Dynamics, Appendix
A, for further details.
Besides the strip graph, VENSIM PLE provides many other ways to examine simulation output.
The button displays a strip graph of the currently selected variable, along with graphs of all
the variables that determine the selected variable (the causes). Clicking this button gives you:
VENSIM PLE also can present the output in the form of a table rather than a graph. To see a
table simply click on the button.
Having analyzed all this simulation, you may wish to run additional simulations under different
assumptions. For example, what might happen if the prevailing interest rate were 3.5% rather
than 7%?
One way to do this is simply to change the model equation in the variable’s equation box. This
is time-consuming and error-prone, however, since you must remember to go back and change
the parameter back to its original value before testing another assumption. If you change a
variable’s formulation in its equation box, it remains as you specify until you change it again.
So, if you want to alter a variable’s value only once, to observe its effect on the simulation, and
then have the variable revert to its original value, you can use the Parameter Changes button,
Click the button. You screen should now look like this:
To change the interest rate for this simulation, click on Interest Rate and its current value, .07,
will appear in a box. Change that value to .035 and hit return. Before simulating, make sure
you the name of the simulation so that you can compare the two different runs.
Now the simulation will run with the new assumption for the interest rate. Now to run the
Now when you select any of the model output tools, they show the results from both
simulations. The strip graph tool displays:
click on the button and the following dialog box will appear:
This is the Control Panel. Click on the Datasets button and the dialog box will display the
two data sets you have created so far. To eliminate the first run, simply click on it twice.
SyntheSim Mode:
Another way to create multiple trial runs with different variables is to select the Model menu
and choose “Start SyntheSim”. Each exogenous variable will have a slider that can be moved
either way by clicking and dragging. As you move the slide, you’ll see the results of your new
simulation run in mini-graphs next to each endogenous variable. If you click either end of a
slider, you can type in the new value for that variable.
When you’d like to save a set of results, click the “Save Results to…” button next to the stop
sign in the toolbar and then enter a new dataset name. Click the Stop button to go back into
regular mode.