System Dynamics 2 CAP4800/5805 Systems Simulation
Download
Report
Transcript System Dynamics 2 CAP4800/5805 Systems Simulation
System Dynamics 2
CAP4800/5805
Systems Simulation
What we covered last time
What is System Dynamics
Causal Loop Diagram
Augmenting Causal CLD
Loop dominance
Labeling link polarity
Determining loop polarity
Exogenous items and delays
System Dynamics Modeling
Identify a problem
Develop a dynamic hypothesis explaining the cause of
the problem
Create a basic causal graph
Augment the causal graph with more information
Convert the augmented causal graph to a
System Dynamics flow graph
Translate a System Dynamics flow graph into
DYNAMO programs or equations
Simulate the DYNAMO programs or equations
Casual-loops
Provide insight into a system's structure
Often difficult to infer the behavior of a
system from its casual-loop representation
Need to use computer simulation
Simulation model: flow diagrams, equations,
simulation language
DYNAMO (DYNAmic Models):
Not a general-purpose language but special
purpose language to aid in building
computer models
Flow Graph Symbols
Level
Rate
Flow arc
Auxiliary
Cause-and-effect arc
Source/Sink
Constant
Level:
AKA stock, accumulation, or state
variable
A quantity that accumulates over
time
Change its value by accumulating or
integrating rates
Change continuously over time even
when the rates are changing
discontinuously
Rate/Flow:
AKA flow, activity, movement
Change the values of levels
The value of a rate is
Not dependent on previous values of that
rate
But dependent on the levels in a system
along with exogenous influences
Auxiliary:
Arise when the formulation of a level’s
influence on a rate involves one or more
intermediate calculations
Often useful in formulating complex rate
equations
Used for ease of communication and clarity
Value changes immediately in response to
changes in levels or exogenous influences
Source and Sink:
Source represents systems of levels
and rates outside the boundary of the
model
Sink is where flows terminate outside
the system
Example 1
(Population and birth)
+
Births
Population
+
Births
Population
Example 2
(Children and adults)
+
Births
+
Children
-
+
-
+
Children maturing
Adults
+
Children
maturing
Births
children
Adults
DYNAMO
Originally developed by Jack Pugh at MIT
First system dynamics simulation language
For a long time the language and the field were
considered synonymous
Provides an equation based development
environment for system dynamics models
DYNAMO today runs on PC compatibles under
Dos/Windows.
Time in DYNAMO
LEVEL.K: a level calculated at the present time
LEVEL.J: a level calculated one time interval
earlier
DT: the length of the time interval between J
and K
dt
J: past
dt
K: present
L: future
DYNAMO Program
(Population and birth model)
Births
Population
Star statement
* Population Growth
Level statement
L POP.K = POP.J + DT*BIRTH.JK
present
one time interval earlier
between J and K
Initial value statement
N POP = 10
Rate statement
R BIRTH.KL = (POP.K)(PAR)
Constant statement
C PAR = 0.1
SPEC statement
SPEC DT = 1.0
Integral/Differential Equations
Diagran
R1
R2
L
Integral Equation
t
L(t) = ∫t0 [R1(s) – R2(s) ] ds + L(t0)
Differential Equation
dL/dt = Net Change in L = R1(t) - R2(t)
System Dynamics Algorithm
Program Main
We are given a concept graph with modes and arcs
The arcs require sign (+,-) labeling
The nodes require labeling: source, rate, level, constant,
auxiliary
For each level node (L) with an input rate node (R1) and
and output rate node (R2) write:
dL/dt = k1 * R1 – k2 * R2 ; k1 and k2 are rate constants
End for
For all other nodes (N) write:
N(t) = a linear function of all inset members of this node
End for
End Main
From Causal Loop Diagram
To Simulation Models 1
Causal Graph
Flow Graph
R
+
R
L
L
+
Equations
dL/dt = k1*R(t)
R(t) = k2*L(t)
dL/dt = k1*k2*L(t)
Block Model
L’
∫
L
k1*k2
From Causal Loop Diagram
To Simulation Models 2
Flow Graph
R1
Equations
R2
L
dL/dt = R1 – R2
R2 = k2*L
R1 = k1
Block Model
L1’
∫
-
L1
k2
k1
dL/dt = k1 - k2*L
From Causal Loop Diagram
To Simulation Models 3
Equations
Flow Graph
R2
R1
dL1/dt = R1 – R2
R3
dL2/dt = R2 – R3
L2
L1
R1 = k1
R2 = K2 * L1
R3 = K3 * L2
dL1/dt = k1 – k2*L1
Block Model
L1’
∫
-
L1
k2
k1
dL2/dt = k2*L1 – K3*L2
-
L2’
∫
L2
k3
Building construction
Problem statement
Fixed area of available land for construction
New buildings are constructed while old buildings are
demolished
Primary state variable will be the total number of buildings
over time
Causal Graph
-
+
Industrial
buildings
Construction
+
Construction
fraction
Land available for
Industrial buildings
+
Demolition
+
+
Fraction of
land occupied
-
+
Average area
per building
-
Average
lifetime
for buildings
Simulation models
Equations
Flow Graph
Construction (C)
Demolition (D)
Industrial
dBl/dt = Cr – Dr
Cr = f1(CF, Bl)
Buildings (B)
Dr = f2(AL,Bl)
Average lifetime
for buildings
(AL)
Construction
fraction
(CF)
Land available for
industrial buildings
(LA)
Fraction of
land occupied
(FLO)
Average area
per building
(AA)
CF = f3(FLO)
FLO = f4(LA,AA,Bl)
Next Class
VenSim
System Dynamics Simulation Tool
http://www.vensim.com/
References
Simulation Model Design and Execution,
Fishwick, Prentice-Hall, 1995 (Textbook)
Introduction to Computer Simulation: A
system dynamics modeling approach,
Nancy Roberts et al, Addison-wesley, 1983
Business Dynamics: Systems thinking and
modeling for a complex world, John D.
Sterman, McGraw-Hill,2000