Title: Stella v8.1.1
1Stella v8.1.1
2What is Stella?
- Graphical modelling environment
- Simplifies the modelling process w/o compromising
rigor - Processes reflected through structure of Stella
models - Designed around (but not limited to) dynamic
modelling
3Not a toy
Carbon cycle model (Univ. of North Carolina)
4Four basic building blocks
- Stocks
- Flows
- Converters
- Connectors
5Example Population Growth (approximately from
Hannon and Ruth 1997)
6Stocks
- Act as state variables
- Also called a reservoir in Stella
- In this example, the reservoir Population Size
is updated with each time step (dt) during
execution of the model - State variables must be seeded by the modeller
with an initial value (Stella puts a ? inside
symbols that have not been initialized)
7Flows
- Add reproduction as a control variable or flow
(controls the value of the stock) - Flows
- Uniflow (or inflow) adds to the stock (arrow
points into the stock) - Biflow adds or subtracts from the stock
depending on whether the flow generates a
positive or negative number (arrow points both
ways more on this later) - Reproduction is always positive uniflow
8Converters
- What influences reproduction?
- (Reproductive rate)
- Expressed as a proportion, this transforming
variable is called a converter.
9Connectors
- Connectors pass information between variables in
a model - Here, reproduction is determined by the size of
the population and what proportion (or rate) is
reproducing. - That reproduction is then added through the flow
to the population size.
10Initializing and running the model
Initialize Population size (N) 10 Reproductive
Rate (r) 0.4 Reproduction Nr Number of
iterations and time base and of model are set
under RunRun Specs Here, 25 iterations, one
each year. Pink graph icon is not part of model
but a means of monitoring output as a graph.
11Population growth model output
As expected, population growth progresses
exponentially without negative feedback on
reproductive rate.
12Adding negative feedback on reproductive rate
- Reproductive rate should decrease as population
size increases - Add that connection
- In the Reproductive Rate converter, draw the
function that relates population size to
reproductive rate where rate decreases as we
approach 1000 individuals (carrying capacity).
13Population growth model output
Characteristic Sigmoid appears as population
nears carrying capacity (1000).
14Population growth model output (cont)
Can monitor changes in all variables through time.
15Example Population Growth II (doing the math)
- Previous example Stella allows users to graph
relationships where the math is unknown or poorly
understood - Lets try it with the math.classic logistic
growth - where ?N is change in population size, Ni is
population size, r is the population growth rate,
K is carrying capacity
16Population Growth II (cont)
- Remove graphical feedback relationship between
Population Size and Reproductive Rate, and rename
variables to reflect more general behavior. - Initialize
- Insert Carrying Capacity (K) as a converter and
set to 1000 individuals. - Ni 10
- r 0.4
17Population Growth II (cont)
18Population Growth II (cont)
19Population Growth II functions
Stella offers a number of functions that
influence how a variable changes through
successive iterations
The result of clicking on the carrying capacity
converter
20Population Growth II functions (cont)
e.g. sinusoidal variation in carrying capacity
21Population Growth II functions (cont)
e.g. random variation in carrying capacity
22Population Growth II sensitivity analysis
e.g. incremental variation in population growth
rate
Under Run Sensi Specs, Stella allows
parameters for the sensitivity analysis to
be specified.
23Lotka-Volterra predator-prey interactions --
one of the simplest predator-prey interaction
models --
where H is prey population size L is
predator population size r is the intrinsic
population growth rate for prey a is the
predation rate b is the reproduction rate
for predators per prey m is the predator
mortality rate
24Prey
- Model is structured similar to the equation
- population increasing parameters (inflow) are on
the left - population decreasing parameters (outflow) are
on the right
25Predator
Predator populations driven by similar forces.
26Lotka-Volterra Predator-Prey Model
27Lotka-Volterra Predator-Prey Model
28Brief aside
Double click graph
29Sectors segregate model components
30Ghosts
(Stella version of an alias. Gives submodels
structural independence.)
31The Interface Level (an exploratory tool)
32Can add pictures for a little flair
33Cellular Automata (e.g. Stella ifs, ghosts, and
animation)
- John von Neumann develops simple models of
reproducing machines - Spawned research in use of simple rules to govern
replication - Models collectively known as cellular automata
- Definition A regular spatial lattice of
"cells", each of which can have any one of a
finite number of states. The state of all cells
in the lattice are updated simultaneously and the
state of the entire lattice advances in discrete
time steps. The state of each cell in the lattice
is updated according to a local rule which may
depend on the state of the cell and its neighbors
at the previous time step. (Dictionary of
Computing 2000)
34Cellular Automata (cont)
- Most popular version is the Game of Life by
John Conway (Professor of Mathematics,
Princeton). In a sufficiently large lattice,
automata appear vaguely as organisms that move,
interact, replicate, etc. - Stephen Wolfram of Mathematica fame
- Uses
- usually treated as a novelty or curiosity
- Behavior of fluids
- Sediment transport
- Spread of forest fires
- Can explore different behaviors by varying simple
rules
35Conways Game of Life - rules
- Each cell on the grid can only take on two
characteristics (e.g. black and white). - If for a cell the number of alive neighbors is
exactly two, the value of the square does not
change at the next time step. - If the number of black neighbors is three, the
square will be black in the next step. - If the number of black neighbors is neither two
or three, the square will be white at the next
time step.
36How it works in Stella
IF (A1A2A3B1B3C1C2C3)BIRTH_ AND B20
THEN 1 ELSE IF (A1A2A3B1B3C1C2C3)_MIN OR (A1A2A3B1B3C1C2C3)NEIGHBOR_MAX
AND B21 THEN -1 ELSE 0
37How it works in Stella
Under Model Model Prefs
Each cell in the cellular automata is represented
as the ghost of its corresponding reservoir.
Ghosts are aligned in a 2D grid and set to
animate - or flicker depending on whether its
value is 1 or 0.
38Game of life cellular automata in Stella (Hannon
and Ruth 1997)