LongCut logo

System Dynamics for Beginners Hands on Training

By System Dynamics Society

Summary

## Key takeaways - **Limits to Growth Archetype**: The 'limits to growth' is a common system dynamics archetype where growth creates conditions that inhibit that growth, seen in examples from bacteria in a flask to human populations. [00:18] - **Behavior Patterns: Exponential, Sigmoid, Overshoot**: System behavior can be exponential growth (no limits), sigmoid curve (limits with no delay), or overshoot and oscillation/collapse (limits with delays). [02:49] - **Modeling Limits to Growth in Stella**: A basic 'limits to growth' model can be built in software like Stella, starting with population, birth rate, and death rate, then adding carrying capacity to influence death rates. [10:04] - **Impact of Delays in System Dynamics**: Introducing delays into a system's response to limits, such as a 30-year delay in death rate response to carrying capacity, can lead to overshoot and oscillation patterns instead of immediate stabilization. [27:16] - **Software Differences in System Dynamics**: While Stella, PowerSim Studio, and Vensim differ in interface and some quirks (like case sensitivity or error reporting), the core System Dynamics methodology and object types remain consistent. [46:21] - **Outside-In Modeling Approach**: A recommended approach to building models is 'outside-in,' starting with constants, then stocks, then flows and auxiliaries, to manage logic, units, and ensure adherence to the System Dynamics methodology. [49:38]

Topics Covered

  • The Basic Limits to Growth Model: Growth Inhibiting Itself
  • Overshoot and Collapse: When Growth Exceeds Limits
  • Exponential Growth: The Result of No Limits
  • Accessing System Dynamics Recordings and Resources
  • System Dynamics Philosophy: Structure Determines Behavior

Full Transcript

my screen here

okay

okay can you all see that

yes okay great okay so again

um good awesome okay so again limits to

growth is a very common archetype or

structure in System Dynamics you'll see

it in many different types of models and

context so knowing how to build this

basic model type is is very helpful

because it's something you can draw on

for a range of different problems right

and basically what this refers to is

when a population or an organism or an

institution or anything is growing and

while it is growing it creates

conditions which then inhibit that

growth right so you can think of it as

for example bacteria in a an Erlenmeyer

flask or you know a beaker that as they

the population of bacteria in that flask

is growing they're producing waste

products which then start to poison the

population and limit that growth right

um you know this can be applied to human

population it can be a applied to you

know the oil sector right are they

relevant for Nigerian audience that as

uh we're producing more oil there are

more oil spills which create problems

and backlash to that industry so as

something grows it's creating conditions

that inhibit that growth that's the

basic limits to growth model this is a

very very famous model that was

developed

um you know by a very famous group of

System Dynamics modelers back in the in

the 60s and 70s

um so there's a lot there I'm not going

to get into all of that now but you can

read books about this if you want to

um yeah Jurgen randers danella Meadows

and Dennis Meadows for example

okay so basically what this model

structure looks like uh in a causal Loop

diagram format is that you have a

population that's growing and I think

we've talked before about you know

reinforcing and balancing Loops right

this audience I hope is familiar with

that terminology so the bigger the

population

um you know the more growth that you

have because you have more people having

more babies or more bacteria reproducing

more or whatever your thing is right but

then they also are producing

um effects which lead to those limits

right so for a human population it might

be as the population grows you have more

pollution you have more conflict you

have more disease whatever it is that's

then kind of leading to something that

inhibits that growth so the growth is

reinforcing and the limits to the growth

are balancing

okay

um and so what Behavior does this

produce

um well if there are either no limits or

the limits are very far off or the

limits are themselves growing uh you get

exponential growth right because that's

when the reinforcing Loop is dominating

you know if you have a human population

that's growing in a very well resourced

environment and there's basically

at this point no limits to speak of

you're going to get exponential growth

however if you have that environment

um and those limits that are giving uh

instant and accurate

um uh responses to the growth then

you're going to see this kind of sigmoid

curve right because you're going to have

at first exponential growth and then as

the balancing Loop starts to come in and

dominate that growth is going to slow

until it approaches zero at the limits

right

um so again this is only if you have

signals from the limits that are you

don't have a delay effect right you have

signals from the limits that are

immediate and that the growth responds

to those those limits and we'll see what

this looks like in a minute when we

build the model

um more commonly you're going to have

more of an overshoot and oscillation

pattern right and this is what happens

when the signals from the limits or the

response of the balancing Loop is either

is delayed or you have the limits

themselves might change right so if

you're in an environment where

um you know your the population is

growing producing pollution and that

pollution itself harms the environment

such that then it is less able to

accommodate a growing population then

you're also going to lead to this

pattern in an extreme version of this

pattern is the overshoot and collapse

right where you exceed the limit so far

that you degrade the resource to the

point where it cannot recover

and we have many examples of this in the

real world from the collapse of North

Atlantic Fisheries to

um you know the erosion of topsoil and

the American Plains during the Dust Bowl

where you just overshoot the limits so

far that the system collapses and cannot

recover right and so this happens when

uh the there's a significant delay in

the signals you're getting from the

limits uh or when there's extreme

degradation of the resource okay so that

was a whirlwind introduction

so let's uh let's try building a basic

limits to growth model

um and here again is the is the patterns

right so exponential growth when there's

no limits uh sigmoid curve or s-shaped

growth when there's limits but no delay

and then either overshoot and

oscillation or overshoot and collapse

when there are delays

okay I think that oh um and then yeah I

just had a few more examples of what

this could look like in the real world

um so it doesn't necessarily have to be

a population

uh here's a I pulled out a few examples

of limits to growth models from the

literature so this one is talking about

um what happens when you are over

pumping your groundwater table right so

the groundwater is helping your

agricultural growth but then at the same

time you're producing conditions that

will eventually inhibit that growth

because you're drawing down the

groundwater you're depleting the

resource right so there's a limits to

growth

um or common one is when you have a an

industry that's growing right and as you

are creating more customer orders you're

and selling more products you get more

Revenue which leads to new product

development uh but then eventually your

company is going to kind of overgrow its

ability to provide

uh these products and because it's

becoming too complex and you might have

um you might have a a overshoot and

collapse or overshoot an oscillation

type of thing happening

and then on a personal level you know

thinking about how you're trying to

um manage your metabolism manage your

weight you can also have a limits to

growth thing there so the point I'm

trying to make here is that

um there's a lot of different limits to

growth patterns that show up in

different kinds of systems so this is a

very common pattern and it's something

that you can reproduce in a system of

your choice

okay

any questions about that before we try

to build the model and so um

I will should I take us to about uh 10

40 I'm gonna say right

um

and then Len can take over is that about

right I'm just trying to look at the

timing here

any of the organizers want to

chime in when should I try to wrap up

I think a half an hour more would be

great

okay sure perfect okay so I will I will

go till like 10 45-ish and then and then

Len can take over okay

um and yeah so any questions so Victor

is the challenge is a big city so right

okay so yeah if you're saying a big city

could also exhibit a limits to growth

pattern for sure you know as the city

grows it's creating uh complexity and

challenges uh you know maybe drawing

down resources or creating traffic right

that's going to inhibit some of the

growth of that City absolutely you could

apply limits to growth model to that

um

any other questions

okay all right well let's get into it

and I can

um

show you all how to uh build a basic

limits to growth model

um

so I'm going to do it in Stella but if

you have ven Sim or another modeling

platform feel free to open that as well

and hopefully you can still follow along

um the platforms are very similar you're

going to be you know especially when

we're doing something relatively simple

they're pretty similar so you should be

able to follow along hopefully but if

you have any questions

um you know feel free to to pipe up I

know there's events and experts here too

other than me that can also help so you

can even put something in the chat and

if I don't see it someone else might get

it

um okay so let me share here and I will

walk us through this

hello Lara yeah

sorry to jump in so I would suggest we

populate our questions in the Q a or in

the chat box so we'll then take

everything together towards the end that

way we're able to save some time

yeah yeah that's fine and just just um

yeah because it is going to be a little

bit hard for me to kind of be

demonstrating the model and checking the

chat and you know so um if if somebody

else has if somebody puts a question in

the chat and somebody else

that would be that would be great so

feel free

yeah almost all the questions so I'll

let you know okay great but I'm also

saying that like we have some uh some

more advanced modelers on this call I

know so if somebody puts a question in

the chat that somebody else has an

answer to feel free to answer it does

not have to be me if you know the answer

so great yeah

awesome awesome okay sure

um

okay yeah and uh for example I see uh

Abu just asked a question which is

better uh feel free to weigh in there's

different opinions on this and and

anyone who's used them feel free to

weigh in and I'll answer at the end but

for now let me go into

um into demonstration here okay

let's see so

um we are going to build a basic limits

to growth structure and it's going to

look like this okay so I'm gonna do it

based on human population in our poultry

model we based it on poultry population

basically we had population of chickens

growing and then things like climate

change and crowding um and the Imp you

know the Confluence of crowding and heat

events kind of coming in and limiting

that growth so it is the basic limits to

growth model

um but for this model we're going to

look at uh human population so I got my

new model up here

I got Stella can you all see that

sometimes when I switch screens with the

with still it doesn't

you can't see it can you see the the

model page

yes I can okay

so a short question do you have to

install it on your PC or or can you do

it also on the web

uh there yeah there is a web version I

believe I have not used it uh so if

somebody has please weigh in

um you can download a free trial version

of Stella you can also download a free

version of vencim uh so there's many

different options

um but like I said if you know if you

have it uh in front of you to follow

along that's always the the best way to

learn and my uh experience you know if

you kind of listen to it it's not quite

as effective so

um yeah so feel free to go ahead and and

pull that up uh if you have your

modeling software in front of you that

would be great

um so I'm gonna I'm gonna reproduce this

basic stock and flow structure which you

just saw right so we have our stock I

can't spell this is always the problem

when I'm typing in front of people okay

uh and let me zoom in a little bit here

so you can see that a little bit

okay so we have our population here okay

that's our stock

remember stock is something that is an

amount of something right that can be

growing or declining and then we have

our uh births flow coming in

and we have our deaths flow coming out

okay

so this is the same thing that we had

with our poultry but in this case I'm

going to say it's like a human

population and when I build a new model

I'm always going to save it

so if my computer crashes I can recover

it so I will just call this the LTG

model or

Nigerian

SD okay

all right so save your model all right

so now we have that basic stock and flow

structure

um but we now have a couple of

converters we need to add in two and and

then connect it all up right so when we

have a um a stock and flow structure

with population we typically have a

birth rate and a death rate that help us

to calculate the birth and death flow so

we're going to put that in okay

all right so I'm going to put those in

okay

I'm gonna have death rate over here

okay

and then the um

the births and debts as you can see are

calculated by multiplying the amount of

population by the birth rate and the

death rate so can you see where the re

where the feedback loops are coming in

right right here this is a feedback loop

because the more population you have uh

that's going to impact the births that

are coming into that population so the

more births you have also the more

population you have the more deaths that

are coming in right

okay

so this is a this is a very basic

population model that I'm building here

well nicer there we go

okay

and you know now that we have the

structure we're going to save it

we're going to put some numbers in it

let me pause a minute here see what the

questions are

okay great thank you Len answering the

question about comparing the two

different softwares yeah

um I will just say briefly that I like

to use Stella uh for teaching because I

feel like it's a little bit more

intuitive interface for very beginners

but as you get into more advanced

modeling

um

they're I think they're much more

comparable and um

yeah but I I often use it for teaching

just because for if you're a brand new

beginner I find it a little bit easier

to learn on

um that's just my opinion however it

costs money uh and

there are student versions of it that

are pretty cheap but it does cost money

okay any other questions about this

basic model structure before I put some

numbers in it

okay all right I'm gonna move on then

okay so here's um here's the numbers I'm

gonna put

okay

um and I haven't put the limits to

growth piece in it yet but I'm just

building the basic population model that

we're going to use to to address this

okay

um so I'm going to say that my initial

population is 1 million and my birth

rate is going to be 0.012 which is 12

births per thousand people

um

so remember I can put numbers in my

model by clicking on it and then going

to the equation tab over here for those

of you that use Stella

so my initial initial population is

going to be 1 million

okay

and I'll put a unit here I'll put people

and then my birth rate is going to be

0.012 like I said okay

that is what I said isn't it let me just

double check

all right yeah

um as I mentioned the births is going to

be an equation that is equal to the

birth rate times the population okay

and the death rate I'm going to set up

is .004

so that's uh four deaths per thousand

people per year now

um I should have mentioned that we're

going to be running this on an annual

time step so remember that everything in

Stella because it is a dynamic model is

per time step right per year

okay so death rate times the population

okay

now I need to set my model run

parameters okay

um and I'm going to do that uh

up here under run specs

okay

I'm going to run the model for 100 years

with a Delta time of one

year

okay

okay

and I'm going to graph my output so I

can see what it looks like okay so I put

a graph down that's the graph here

and I want to graph my stock usually

when you're looking at a System Dynamics

model you want to see how the stock

behaves because that's typically the

variable that you're most interested in

and that's going to exhibit the dynamic

behavior that you want to track right

um so I'm going to go down to this box

here and say that I want a graph

population

okay

and I'm moving a little fast just

because of the you know the time crunch

here

um hopefully you're all able to follow

along okay so now I'm going to run the

model and see what happens

what okay what do you think is going to

happen based on the model I just set up

any ideas

so remember my birth rate is 12 per

000 population and my death rate is 4

per thousand population I'm running it

for 100 years what Behavior do you think

we're going to see based on what I

talked about earlier in the presentation

I think you're nearly exponential growth

yeah good that's what I would expect

right because we don't have any limits

and uh in in this case the uh birth

feedback loop is going to be stronger

than the death feedback loop because the

rate is higher right all right so let's

see if that's true

Yep looks like exponential growth to me

okay

all right now I'm going to put a limits

to growth piece in uh any questions

before I do that about what I just did

or about the model process

okay

um

all right seeing none let me move along

here okay

so now I'm going to add a limits to

growth piece right so this is going to

be a piece that pushes back on the

population growth

by having effect an effect on death

rates so remember we talked about like

one way that could play out is that as a

population grows it's creating pollution

the pollution may be

um you know causing cancers or deaths of

some kind right that's the way that it

could work

um so I'm gonna go in here

and add this structure where I have a

carrying capacity that's an ecological

term meaning the amount of population

that the ecosystem can support

and then I'm going to have that have an

effect on the death rate okay so I'm

going to build that into the model

all right

so I have my carrying capacity down here

and then I have

here and maybe I'll move this so it's a

little bit less messy

connect that up

it's going to come in here

come here

okay and then I also am connecting

um

the population to the effective carrying

capacity because the way that this works

right is that as the population grows

the effect of that pollution or that

um you know carrying capacity impact is

going to be stronger right so I have to

take both those things into account

so let me put that in there there's an

arrow

okay

here we go

all right and now I need to put numbers

on it need to parameterize that piece of

it okay

um so I'm going to set the carrying

capacity of the system at 1.45 million

population to be clear I'm just kind of

making up these numbers as a simple

model demonstration if you were going to

do this in a real system you could try

to parametrize this based on real data

of some kind

um but these numbers are basically made

up

um

so I'm going to make this into

one million four hundred fifty thousand

okay now there's many ways to

look at this type of impact the

effective carrying capacity and death

rates the way I'm going to do it is

through a graphical function so this

might be a little bit new for uh folks

um

but basically what I'm going to do is

I'm going to set up the impact of the

carrying capacity on the death rate so

how strong that impact is

is a function of how close the

population is to its carrying capacity

so for example if the population is

getting close to

1.45 million which is the carrying

capacity there's going to be a really

strong impact of that on the Death Race

um which is what this graph is

describing right

um

so

I am going to go in here

back to Stella

okay

and the way that we're going to do this

is we're going to first enter into the

equation box

that we want this to be a function of

the population divided by the carrying

capacity okay

so I'm going to put that down here

then I'm going to go to this little

graphical

tab okay down here graphical function

and I'm going to hit that I want my my

function to be graphical

and you can then draw what you want the

shape of this to look like okay so

notice that down here on the x-axis I

have population over carrying capacity

that is the independent variable and

then I have the effect of the carrying

capacity on death rates up here

and so you see that this is going to

vary between about zero and two so in

other words the population can be up to

two times the carrying capacity or two

times over what the carrying capacity is

and then the effect of the carrying

capacity and death rates is going to

vary between 0 and 50. again I'm kind of

making up these numbers but I'm I'm

trying to make it be like a stronger and

stronger impact as as this gets higher

right

so I'm going to put this here

this is going to be between 0 and 50.

and then Stella has this great little

thing where I can basically draw a

graphical function

right and I'm going to make it kind of

uh

a curve like this so you can see that

like

the effect is 0 up to when population

gets about to about like you know

I think that's like 60 percent of what

the carrying capacity is

um so you can play around with this you

will see that changing this graphical

function does have a pretty big impact

on what your um

on what your model is going to look like

that's one of the things I'd love for

you to play around with you know once

I'm done with this but I'm going to make

it look a little bit like that okay

yours might look a little different

that's okay

because the point is to play around with

it

all right so there we go I'm done with

that

okay and you can see that because I made

it a graphical function I have a little

squiggle here that's what that means

it's a graphical function

okay and then I'm going to make the

death rate equal to

whoops come here come back here I'm

going to make the death rate equal to

.004 times the effective carrying

capacity so the effective carrying

capacity is going to increase the the

death rate

okay

so I'm going to change that equation

and put the effective carrying capacity

into that equation

all right

now I'm going to run the model again

and see what happens

okay whoops

so now it's a little hard to see what

the scale here

um but you can see that rather than

increasing exponentially now I have kind

of leveled off and have a little bit of

a sigmoid growth curve happening right

so the population is not going much

above a million

so remember I said that we have more of

a sigmoid growth curve when uh the

response to the limits is instantaneous

right there's no delay in here I haven't

put a delay in the function yet so as

soon as that population hits you know a

level of that's close to carrying

capacity there's an immediate signal

that increases death rates and we have a

decline in or a multiplier of the death

rates right so we can kind of see that

by looking at um

we can see the death rates here you know

initially go up and then stabilize uh

which is driving this Behavior right

okay

okay

now I'm just going to do one more thing

quickly and I know I'm going through

this very quick

um but to see a different type of

behavior

let's see what happens when we put a

delay in here okay

so Stella has a built-in function called

a delay and what this means is that

um the equation or the signal takes a

certain amount of time right to to

perpetuate through the system

um

so we're going to change our equation

for the death rate to have a delay in it

and the delay built in is is structured

like this there's the input which is the

equation there's a duration of the delay

and then these there's the initial value

okay

so in our case the input is going to be

the effective carrying capacity times

the death rate

the delay is going to be let's say 30

years 30 is the time unit so 30 years

and then the initial value is going to

be .004 because that was the initial

death rate

so let me go in and change that

I'm going to put the delay in here

and like I said it's a built-in so you

can find it in the menu over here

a lot of different kinds of delays we're

not going to be worrying about that

right now so like I said uh the the

function is the input comma the time

and then the initial value okay

all right

and you know what I'm going to make this

graph comparative so we can see the

difference between the two runs here

all right

where the three runs we're going okay so

now that I put a delay in there let's

see what happens

and lo and behold we have now

uh an overshoot and collapse or

overshoot an oscillation we could run it

for longer to see if it's going to

recover if it's an overshoot and

oscillation pattern but you can tell

that you know it's different than our

second run which immediately stabilized

at a level below the carrying capacity

right

um in this case because we have a delay

the population grows past the carrying

capacity and then suddenly gets a

stronger signal and comes back down

right so that's the overshoot and

oscillation pattern and then this is our

run one here where we just had the

exponential growth and we hadn't added

in that carrying capacity yet so right

here in this graph you can kind of see

those three behaviors that we talked

about over here which is the exponential

growth the um the sigmoid curve it's

hard to see the sigmoid because of the

scale on this graph but it is a it is a

sigmoid and then the overshoot and

oscillation pattern okay

all right I know that was really fast

any um

in like five the five ten minutes uh any

any questions about that so that is a

basic limits to growth model that's what

it looks like so you can use this to

model a wide range of systems any system

in which you have that limits to growth

pattern where you have something growing

but then you also have the growth

impacting the conditions of that very

growth uh in a negative way

so you can use this in a wide range of

contexts the poultry model we used it

for poultry sector growth and then we

looked at how that impacts things like

demand for poultry and crowding and heat

impacts that are going to impact the

growth

all right any questions I'll leave this

up here while I

answer questions so you all can take a

look at the structure still

or for those of you who have been

following along anything that you're

running into any problems or or

clarifications as you're trying to build

the model

okay well maybe I guess was this helpful

like was this um was this at the right

was this at the right level here because

uh is it over okay

I see some thumbs up I I had no idea

what the audience is going to be in

terms of like your level of System

Dynamics so this was like this is the

lesson I do on like week three of my

class

hoping that was about the right level

um

quite nice explanation so I'm sorry I

have not installed this Della already

but uh I will try it afterwards

okay great yeah that is the thing

the thing up and do it step by step

um because that's what that's the way I

would recommend learning it yeah you

really have to do it you have to model

by doing yeah

uh Lori have a question

um sorry I just generally with the lead

uh you presented this application and

you switched to the PDF file will this

PDF file be available after this session

sure yeah I can make it available

actually I can pop it in the I think I

can pop a PDF in the chat right now

let's see

yeah just just if you're going to cite

it or use it just just cite me please

because this is a something I developed

for my class so it's oh sure yeah just

don't yeah thank you I will put it in

the chat

all right where if there are no further

questions I guess uh uh Lena can be uh

over to you unless there's anything else

okay I'm I'm ready wait a few seconds

here

sorry Lynn thanks a lot Lara it was very

explanatory so uh I believe that's why

you don't have any questions yet so let

land take over and we'll see if there

are other questions towards the end of

the meeting

okay that works um I am definitely going

to have some issues because I I'm not at

home and I don't have my dual monitor

system

so I'm running off my laptop so please

forgive me if you see weird screens as I

switch back and forth

so I'm going to do a share screen

here and I can only share one screen so

that's the one that's going to be shared

and now hopefully you see a

um

ven Sim copy on the left and a power Sim

Studio copy on the right

can someone give me a signal yes okay

all right now I'm going to go to

PowerPoint

because also

uh as Laura said I wasn't 100 sure

what might be happening today

so

I too am we're using a little bit of

training material and some of you have

seen this before

just uh

a plug for System Dynamics here

and I every year at the conference now

for I don't know how many years I've

done a

a webinar called starting from scratch

so I've got this nice

clean slate in Stella or vencim or

Studio or Insight maker and I want to

start putting objects on it and I found

in my teaching that a lot of people get

really lost when they're converting

ideas and mental models

from their minds or from paper and

putting them into software

so I'm going to try to go through this

quickly first I ask the question what is

it we do when we create a model

it's only an abstraction of reality

uh also I need somebody to watch the

chat I forgot to say that

okay what else are we creating are we

creating an interface a flight simulator

to allow access to people other than

ourselves

maybe our professor maybe a client maybe

a organization what would we like them

to see

and when we put that model in that

interface together we have what I call

an application most of us don't build

applications we just build models

and then finally

and I I'm assuming Laura's got students

they probably have to write a report

about the model and its results

so I I try to think about that before I

start working

and here's some terminology I use let's

say I'm building a model that's a bit

bigger than what Laura showed us and one

part of it might be that population

one part of it might have something to

do with the economy

this is from my background in in surface

and groundwater modeling and energy

modeling and I call these modules

so I made a conscious decision as I'm

modeling to separate the kinds of things

I'm looking at

and literally separate them on the

screen

unfortunately all three of the major

softwares do it in a very different way

I'll show that to you once I've finished

that I have what I call the model

then I could put an interface on it

and I would have an application and as I

said earlier you may not be adding an

interface to your model

that's a lot of work believe me

some working definitions

I call a module a separate part of a

model

it can stand alone with little exchange

of variables with other modules

so Laura's example of the population

model imagine reusing that in many many

different problem situations

you just change the names of the

variables obviously you change the

values but you can reuse that construct

and in the last webinar I talked about

archetypes of which limits to growth is

one

reusable

and a model is just everything you did

all the code all the variables you

created to represent your problem

and finally an interface is access to

the model

one quick question is that do you see

that zoom bar

I hope you don't

okay because it was blocking things for

me all right here we go

forward

so

when you're building a model you have

different kinds of variables

one group of variables I call is the

exogenous

that's data that typically comes from

external sources Laura already mentioned

that we might be getting data from

reports Etc we might have a published

birth rate of published death rates a

published carrying capacity these are

exogenous outside of your system

Dynamics thinking

and then of course you have all the

internal calculations all your

endogenous variables

that's why people engage us to help them

solve problems because we know how to do

that

and then finally well not finally but

you might also create variables just to

enable an interface and remember if

you're not building an interface this is

not really a problem unless you yourself

would like to see the way the data is

presented in a different way

and then finally

as you get better at modeling and get

more experience

you will find that

you'll start creating variables just for

testing and debugging

both your logic your mental model and

how good you are at using the tool that

you use you know Vincent Stella Studio

whatever

that's it

so if you have a variable on your screen

my hypothesis is that it's got to fit in

one of these four categories

most of us are only concerned with the

bottom two

but as you progress in your skill it

will expand

and we don't know how much you're going

to expose to the user

that's why I tried to put some animation

there to show that's a conscious

decision by you and your clients

okay so if you look up on Wikipedia

how many software modeling packages are

there you'll see a whole bunch

and you'll see packages and you'll say

to yourself I didn't know that could do

System Dynamics

well

you can bend and twist it to do System

Dynamics

but the big three I call them

are IC Systems Stella architect

there are multiple versions available

there's a 30-day demonstration free

version

powersim Studio

powersim as is the name of the company

studio is the product it also has

multiple versions it has a studio demo

again a 30-day limit

and then it also has Studio Express

which is a free completely free version

with no time limit and then Ventana

produces vencim again multiple versions

Vincent ple is the free version and

there's no time limit

okay maybe your tool isn't there but the

concepts are still applicable I was

supposed to skip this slide

so this comes from Nikki Zimmerman's uh

presentation gosh sometime in I think

2020 or 2021 it's available at the

System Dynamics Society website

and she talks about the steps in

preparing

the problem definition step

you know identifying key variables

Behavior over time and let's face it we

can't do all that in this session

and then you're going to build stock and

flow diagrams model equations simulate

and finally analyze what you did

so my exercise was actually a population

model for this presentation

and I wanted to say I had an initial

population of a thousand persons

a population a stock a bathtub which is

the integral of that growth rate which

we haven't identified and its initial

value is initial population

and then a growth rate of 1.1 and

depending on what tool you use

there are different ways to specify what

the units are

so it could be 1.1 percent per year

or here's an example of 0.011 that has a

unit of 1 over year

and then finally growth is simply the

population

times the growth rate

okay

and if you can see the top of the screen

there of course I've already thought

about the problem definition I've

identified all my variables

I figured out how long the model would

like to run and I've set the DT the

Delta time

so before before you do anything what

I'm asking is

have you decided what your time unit is

are you doing a model that's producing

things year by year

do you have a time step a DT

and in each of the three major tools

this is where you would find that kind

of thing

has a duration a start and a stop time

been chosen how long will the model run

does it start in year 2023 or is it Year

One

it's up to you

have you established a set of units for

the model even before starting have you

thought about that are you going to

measure humans as

persons are you going to measure them as

people

Etc

what kind of software compatibility do

you want to maintain

almost all three of the major products

have compatibility issues back in time

this shouldn't be a problem for

beginners because you're starting out

now

but let's say you're on the internet and

you Google something and you find a

great Stella model from 1983 and you

find out that the current version of

Stella won't open it that's okay you can

contact the folks at IC Systems and they

will

translate it for you

have you got a naming convention how do

you name your variables

I base my naming on a memo from MIT

that's about 20

two years old

and this is how things are named

stocks have the first letter capitalized

of every major word

flows and auxiliaries are all in lower

case

and constants are in capital letters

and I put this other here as a joke if

you can think of another object then

maybe you can come up with your own

convention why is this important or

useful if you print out a listing of

variables

your reader will instantly know which

variables are stocks flows auxiliaries

and constants

got it

let's skip this last one

okay if you just Place objects on the

screen

here's ventana's fence him this is what

you see

this is what you see in power Sim Studio

and this is what you see in Stella

architect

okay

couple of things about this notice that

they're different

and also notice that they're the same

System Dynamics as a methodology is

limited to a four maybe five different

kinds of objects in a model

okay

notice that they all use arrows

to connect certain kinds of variables

and they use pipes to connect other

kinds of variables

right

but even after today I doubt that any of

you would have any difficulty looking at

a model

in any three of the softwares

you would be able to identify that hey

the rectangles are stocks

these these pipe looking things with

with a directional arrow on them are

flows

and then if you use the naming

convention you would know what the

constants were

what the auxiliaries or Stella calls

them converters were

it's not that difficult because what

we're doing here is implementing a

method in software

this is not Fortran or python or COBOL

or any other Computing language that

isn't constrained by a methodology this

is System Dynamics

see if I can get my cursor to move

okay and as you get uh into this more

and more especially if if you're an

instructor or become an instructor

uh the place I used to work we developed

rules for example notice how I have

initial population as an external

variable here

our programming team which was as big as

30 people said

if the initial value is other than zero

our team requires you to have a variable

called initial something

it's just just a quirk of where I worked

okay now after you put that on the

screen

if you hit x squared in Stella or f x f

of x and Benson

you notice that

the screen goes black

prevents him

Studio doesn't change

and Stella gives you all these warning

messages

okay

here's the problem for simple models not

a big deal

what what I've seen is students will put

30 40 50 variables on a screen and

without identifying them just creating

them and placing them on a screen they

go to the definition window the entire

screen gives them an error and they're

now in panic mode

where do I start what do I do

right don't model this way please

I recommend What's called the outsidian

approach now the only way this works is

if you did some thinking

if you used your protein computer

you know up in your head

to help you plan a little bit so I add

constants first

it distinguishes exogenous from

endogenous

it indicates potential opportunities to

grow the model scope

right

I might have a variable called

I don't know

system dynamicists annual salary

and I put that in as an exogenous

variable and someday I'd like to build a

model to add on

to how that gets determined

that's what I mean by growing the model

scope from a constant

it highlights the potential policy

variables what will people be sliding if

you know what I mean

what will they be able to increase or

decrease

and then finally and probably the most

important part is it determines what

units you'll be using

second I go to add stocks or levels

that sets up unit inheritance

right so if you add a stock and you know

you've got a constant called initial

population measured in people well then

the stocks unit should be people

obviously model transparency

and then I iterate through auxiliaries

and rates

and that helps me to manage the logic

reinforce that inheritance of units

and finally and importantly for us

enforce the SD methodology you can build

non-system Dynamics models with System

Dynamics software

foreign

ER part of this particular presentation

I analyzed

325 models that were submitted to the

conference

there were actually models submitted

that had no stocks in them

couldn't be System Dynamics

so we're going to use the outside in I'm

going to go through this quickly and

then jump to the tool

we're going to do constants then stocks

then flows and auxiliary so your screen

would start to look something like this

in stages

likewise for ven Sim

and likewise for Stella

okay if if you're writing a report for

faculty for clients Etc I highly

recommend this rubric that comes from

What's called the electronic Oracle it's

a textbook quite old

you'll get these slides from Boon me or

kalichi

as you're building you're filling this

in

so that people who don't like to look at

so-called spaghetti

they'll be able to read in prose what it

was you did why you did it when you did

it things of that sort

now let me see if I can get out of yes I

can get out of PowerPoint can everyone

still see the screen

yes okay great so excuse me on my left

I've got Vince him and on my right I've

got power Sim studio and I don't have a

current uh

license for Stella architect so I'm

gonna go grab a variable here

invents him a

and drop it on the screen and since I

know it's a constant I'm going to call

it initial

population

okay and then I'm immediately going to

go up here to define it

and notice what happened

those of your events and users may or

may not know this it changed the writing

to lowercase

you saw me type it in uppercase and it

changed it to lowercase that's just a

quirk invincing

you'll see some magic here so I'm going

to Define it and I'm going to make it be

1000 and what's my unit and I'm going to

do person

I don't like to do plurals typically and

voila Magic

it changed it back to capital letters

because internally

for those who didn't know this vents him

has a switch

that will change

the the case you know upper lower case

structure of an object based on what is

in the object

okay

let's go over to studio and do the same

thing the studio has a separate

construct a separate picture for

constants

and I'm a terrible typist but I'm going

to Define it right here

equals

one one two three

and again syntax is painful

that Studios Syntax for assigning a unit

when I hit enter

it says hey that unit doesn't exist

would you like to create it

I say yes

and a person and persons for plural

they just hit finish

now the nice thing about this at least

from my point of view is I have a

running model in both softwares that

does absolutely nothing

but it's correct it has no unit errors

units are okay

yeah well this is a warning hey you

created a variable but you don't do

anything with it

and Studio doesn't do that it uses that

visual feedback

so if I were to Define this guy and make

a mistake here let's get rid of one of

those

it uses a visual feedback to tell you

when things are incorrect or incomplete

back I could have just now let's close

that I'll use the undo button

get it correct again okay maybe I should

pause

speak up chat whatever

you need to do all right now I'm going

to go did I have any other constants

does anybody remember

I don't know if ROM is still online but

he's seen this many times

I think there's a constant called uh

growth rate so I'm going to grab an

auxiliary

again I'm going to type in

capital letters

I don't have to

then I go to the and I Define

immediately

and if you remember it was 1.1 so in

vents him you would do this as

0

.

011

and the units would be 1 divided by a

year

I think Benson capitalizes here I can

check the syntax

and that one seems to be okay right

notice it kept the capitals because it

knows it's a constant

see I'm a terrible typist

growth rate equals 1.1

I prefer to use percent

notice again syntax differences

Studio has a built-in unit called year

but it's yr

vencim does also but it's called y-e-a-r

done now I put my stock

and that is population

right

it doesn't like that

so I'm going to connect initial

population to population

go back and Define population

and the initial value I'll just pick it

from this list because I'm a terrible

typist

and vincim is still upset and the reason

for that is

invents him this is a stock

but a stock that has no inflow and no

outflow

so vents him rules say it's not

completely defined

that's just a quirk invincing

I'll do the same in studio

population

[Music]

I'll grab a link

it's what this is telling me is yes

you've linked it but you're not using it

that's what the yellow pound sign and

this is saying hey you didn't give me a

definition

so I'll open this guy

and I'd like you to look right here with

your eyes if you can read this under the

word unit I will double click population

and Studio inherited the unit that's

what I meant by unit inheritance a

little bit earlier in the slides

and then both you'll see in vents him in

a minute but both Venison and Studio

change the

the style of the arrow

to say this is an initializer

it's not providing information

throughout the model run it's just an

initializer

all right and then finally we had a

growth rate

whoops I clicked off it

I often do that in vencim

I better delete it

do it again

or WTH growth I'll call it

get another connector connect this to

this connect this

to this

move things around a little bit maybe

make this a little prettier

see if I can do that there we go and now

I'll Define growth

and growth is simply the growth rate

times

that's another habit of mine I like to

keep spaces between operators

times population

ah

I do a lot of work in Vincent but you

probably can tell what's my obvious

choice

all right and population still acting

weird

check

incomplete equation for population how

can that be

what

what happened to the whole definition

that's right it's just the growth let me

check syntax oh and it says it's okay

that's another vencim Quirk by the way

notice the change in color here that's

to show it's an initializer

let me do that quickly in studio

did it wrong

sorry about this

I'm having

it's the demo effect right

growth get my link or connector link

population to growth

and then like growth rate to growth

and go in here and simply say growth

rate

base

times

population

and it inherited the unit figured it out

done two working models

I cheated a little bit I didn't

do the stop time the start time all of

those kinds of things did not do that

so if we go back to

the little session we did on archetypes

way back in March or April

um I was looking at the naira conversion

problem and saying are there examples of

the archetypes including limited limits

to growth

in this whole process of converting old

naira into new naira bills currency

and we talked about a little bit about

this simple model which didn't go very

far

and is very uh mechanistic in some sense

just old naira becoming new right naira

at a certain rate per day of people

trading them in

and we talked about some some of the

things that Laura hinted at

the softer variables the um

lookups some people call them look up

some people call them dimensionless

multipliers Etc and you'll have access

to all of this and I promise I will

convert this to Ben Sim

for you and maybe someone who's a Stella

user can volunteer to convert this model

to Stella

and I can just run it

and remember if you weren't at the

earlier session this is based on news

articles

concerning that currency conversion that

caliche suggested might be a good

problem

okay what I'm going to do in the chat

once I get out of these screens is

[Music]

um

give you all the archetypes in Stella

Vincent and studio if you don't have

them already

so let me minimize these guys

here do a stop share

and see you

okay any questions right now I know that

was also quick

also I will put the archetypes

um webinar slides as a PDF which is

I'll stick that also into the uh the

chat here and just to see if you give me

a second

thank you

they should be able to do that

if I can find it

so here let's go with the uh here comes

the Stella

archetypes

give me a second here I'll get the event

Sim those of you are vencing users

and then finally the studio archetypes

which include of course

the limits to growth that Laura talked

about

and

what else

those of you who did not see

the first video

there's the YouTube link to that

and I think that's it for right now

put my video back on

let's let's try a little let's try a

little something here because we have

the power of Zoom

down at the bottom of your screen you'll

see a reactions icon

a smiling face with a plus sign

if you open that

anyone who's taken a formal System

Dynamics class

please click the thumbs up

if you've taken a formal class in System

Dynamics

I guess I have to click the thumbs up

they're starting to come through

great okay so the Assumption then is or

Laura and I were challenged because many

of you have not taken a course before

you might not know what a stock a flow

is conceptually

so that that

I guess that's some information for the

chapter and maybe we can work together

to do things that are even simpler than

this or at least provide you access to

information

right

those of you who

um know about the system Dynamic Society

at systemdynamics.org

there are about

70 or 80 System Dynamics courses listed

there I can't remember where exactly

uh I don't know if caliche was able to

join us

I guess not but there are a lot of

courses listed there

is a tremendous amount of free

information that's not copyrighted and

of course there's a lot of pirated

information that is copyrighted and is

available on the internet

and then if you're willing to wait until

next summer

the society does a very intensive summer

school

you're given a month to work on homework

problems and then

uh there's a four day very intensive

live session to discuss problems

work on models ask questions things of

that sort

but I guess you know I'm trying to uh

give a pep talk

don't give up

don't worry

there are lots of experts willing to

help there's lots of material

maybe via the the Nigeria chapter we can

handle that

but it's a long road I've been doing

this since oh my gosh

I guess I am a grandfather too since

about 1992

and I thought that gee I'm a software

guy this should be kids stuff

it's just software right I can do it

and I learned my lesson very quickly

and then took the courses from MIT

and in you know core System Dynamics and

then a lot of topic courses modeling the

environment strategy Dynamics

Advanced vinsim uh

I forgot all the courses I took

so please don't ah great Laura thanks

for doing that

putting the the society site please go

there

I'm not sure what it costs to become an

official student member nowadays

uh was it 45 or something like that

US dollars

but again there's a lot out there

that's completely free there's also a

mentoring system within the society you

can find that on the website if you

search for Mentor or mentoring

think of anything else when me

got about 10 minutes it looks like

yeah thank you so very much Lynn and

Laura it's been very enlightening and

insightful

I remember you sharing a paper or some

years back about naming conventions and

System Dynamics modeling

yes over there while you're speaking

yeah it will be very useful and insight

um quite helpful for those that are

starting off that way you know how to

label your models right from the onset

so if you could share that it will be

very helpful yes I'm looking for it

right now

the other thing I want to mention is um

if it won't be too much of a bother

if you if we could share your emails

with participants if they have one or

two questions they want to charge you

upon I don't know if that it's okay by

you yeah it's okay if not oh fantastic

uh uh let me get uh

I'm still looking for that paper I know

right it's a d memo what what MIT called

the D memo

okay awesome Laura has already shared an

email so for those on this call if you

have questions you could just chat at

home directly send your questions to our

email uh Len is also okay with it so his

email will be dropped in the chat box

it's

um it's it's been we we had to manage

time so uh there's only a little we

could do in this Hands-On session

but I'm certain that the foundation has

been lead so anyone that is interested

could definitely pick it up from here

the recordings available on society

websites if you go to Society website

and click on Nigerian chapter all the

videos of past sessions are also

available there so make use of this

opportunity

uh so that will be very helpful for

everyone if you're interested

um I do not think there's any other

thing we need to talk about for now so

unless there are other questions and

I've looked through the chat all the

questions in the chat books have been

addressed

the email addresses of Woodland and Lara

in the chat box please Avail yourself of

this opportunity to reach out to them if

you have questions I have a question for

Laura so I'll just leave

hey Laura do you know anybody in

agricultural economics at MSU

uh I do including my husband what are

you no Scott Scott who's the chair

oh yeah Scott he's he's not they just

got a new chair but yes he and I got AG

econ degrees together at Purdue oh

really oh that's so funny

yeah and went to Niger together right

when he was the grad student and I was

doing some Consulting for uh the AG econ

Department oh that's so funny okay I'll

tell him I ran into you when I see him

yeah we had some really good times good

and then for all of my

for my the way I like to say this is

colleagues

friends and soon to be colleagues and

friends in Nigeria

I I don't know if you know this but I

lived in Niger in Niger for a little

over two years

and I learned to speak hausa

so

all I can say is say anjuma

you try that's really nice

day

[Music]

yes please uh thank you very much Lynn

and Laura

um a very interesting presentation I had

of course I take advantage of any

presentation I see here now picked off I

particularly like the idea of you know

the difference

I Love the Way Lynn did it and I also

love uh the kind of guide to presenting

to parents so I am about

concluding my PhD and I'm using a

System Dynamics methodology so I love

that I have a guide like that for my

present uh for writing my report I love

the way I love that guide on how to

present to guide uh to client so I would

love to have because uh I'm a mechanical

engineer so my supervisors are so much

interested in equations and I've got

like uh learn describe it spaghetti so

much of spaghettis I don't even know how

to report that I have a lot of

difficulties

everybody

well and I think I think the question is

maybe for you it sounded like you faded

out a little bit there and David I think

the question was about how do you uh

report on the variables and equations in

your model in standard way and Len you

you had mentioned that

yeah how our report especially the I'm a

mechanical engineer so my supervisors

are interested in

okay so uh

a lot of models sub models that I'm

finding difficulty putting in my

reporting in my final writer

you didn't get it

so yeah sorry I was muted

everything everything that's available

at least the big three all of them have

a way to export equations

right so you're going to have to do some

searching because I'm I'm not familiar

with with Stella but for example here is

hopefully you can see this screen now

here's a listing of the equations it

from the studio model on naira okay okay

and then all of them have features like

what do you want me to show

do you want me to show the value of the

variables do you want me to show the

type of the variables and then they

either export as uh comma separated

values or text or maybe even Excel

format

and that way you can you know if people

want to verify that indeed you're doing

a good job

they can see that

one issue we find with publishing is

sometimes peer reviewers will ask for

the model

and if you have a model that's got like

one that I worked on it had

um

3 300 variables and eight million pieces

of data in it there's no way that a peer

reviewer can manage that and they might

not own the software

so

that becomes a problem that you have to

deal with

but maybe if you just give them an

equation listing like the one you're

seeing here

let me see if I can bring up the ven Sim

has a view called

um

well this is the new Ben Sim

format and now I can't

sorry maybe I should reach out to you

later so that I don't yes but every

every every good tool has a way to

export I'll reach out to you I'll reach

out to you yeah

time

yep yep thank you very much and and that

don't forget that last page I'll be

sending this to bun me the that these

are the pros the text description what

did I do who were my clients what's the

time

um

the time bounds on this model

it's it's also good for you to keep

track of as you're working what's useful

and what's not useful

oh there is still as an equation viewer

you can export it yeah and I'll just uh

you know Len you're you're talking about

this but in System Dynamics you know the

philos the modeling philosophy is that

the really important thing is is the

model structure yes uh you know so the

equation you can have all the quote

correct equations in the model but if

it's not representing the system in a

way that is helpful and is reflective of

the actual Dynamics then it's useless

right so we always want to check the

model structure as well as the equations

yeah

and you know large models start out as

very small models so you have to build

incrementally but that's a really good

point

structure determines Behavior

thank you

thank you yeah that's that's very true

thanks Lynn thanks the other thing boom

me I should mention I don't know if any

of you know

uh kude

I didn't see him here today yeah

um he's a good source of of SD skill in

Nigeria

yes we live well we're together it's

with us on the chapter

I don't know why I couldn't make it

today but he's with us wearing wearing

contacts no problem he's seen enough of

me

we we await the slides your slides yeah

yeah already

yeah I'm gonna prepare that as a PDF and

send that uh maybe I can do it right how

much time have we uh we're right at time

I'll send it to bun me and and kalichi

distribute

uh the meeting recording will be

available on the system Dynamic Society

just go to Nigerian chapter and then

they're also available on YouTube I can

see a question in the chat about that

they're available on YouTube as well

um I I would um for those that have my

contacts because I have the chapter

email you could just request and then

we'll share with you for those that

request right but the link is available

online once you click on YouTube it

takes you straight to the page you can

view watch over and over you can replay

at your convenience and try to follow

the steps

thank you so very much oh Bernard's got

a question on me so can I have only a

short question in the nick of time and

um

so say I hear a question

yes please so only a short question so

maybe this is uh more advanced but uh

the question is when you make bigger

models from uh and can you encapsulate

those smaller models also is there

possibility in in these softwares

I know that both

um Stella and Studio allow the term

might be components

maybe generically would be called a sub

model so you can encapsulate and send

values back and forth

across events him

vincim used to have macros which is

something like that but I don't think it

does as well as Stella and Studio do

in terms of components or modules

um

oh maybe I should mention Laura and I

haven't kept up with Karim and Bob at at

IC but the vendors have lots of free

videos

the vendors of the software themselves

so they're not going to teach you a lot

of methodology but they will teach the

syntax

how do I do this with that

but not not a lot of conceptual content

but a lot of syntax content yeah I mean

the other thing I really appreciate

about Stella I think the help menu is

excellent you know so I mean that is the

it costs money but if you download and

get access to the online help menu and

it really is great it goes through like

here's what this is here's how you do it

here's how you set up the equation

um so Bernard yeah just to shortly

answer your question yes uh all the

softwares have those capabilities yeah

thank you very much

studio also has what's called context

sensitive help

so if you have an equation and you click

on a keyword it'll automatically open

that help to that keyword

which is pretty slick

okay boomi's in charge all right that's

that's great we do want to spillover

anymore for for the questions please

feel free to chat them up via email

oh yeah

you could build a society Nigerian

chapter we'll take on questions as well

and forward them if we can handle them

we will if not before them to learn a

lower and hopefully if we call on you

next time you will still answer us

is that a yes

thank you thank you very much all right

thank you

yeah bye everyone thank you bye-bye yes

I just want to say to learn mongod say

and

Loading...

Loading video analysis...