ECE 575 - Arizona Center of Integrative Modeling and

Download Report

Transcript ECE 575 - Arizona Center of Integrative Modeling and

ECE 449/549
Class Notes #1
Introduction to System Modeling Concepts
and DEVS
Sept. 2008
Systems Specification Formalisms
• System theory distinguishes between system structure (the inner
constitution of a system) and behavior (its outer manifestation).
1965
SYSTEM
output
input
state
Fig. 1 Basic System Concepts
Hierarchical System Decomposition
•
•
Decomposition, composition, hierarchical construction, Closure under
composition
Modular systems have recognized input and output ports through which all
interaction with the environment occurs. They can be coupled together by
coupling output ports to input ports and can have hierarchical structure in
which component systems are coupled together to form larger ones.
Relation to Object Orientation
• Both objects and system models share a concept of internal state.
However, mathematical systems are formal structures that operate on a
time base while programming objects typically do not have an
associated temporal semantics.
• While coupling establishes output-to-input pathways, the systems
modeler is completely free to specify how data flows along such
channels.
• Although systems models have formal temporal and coupling features
not shared by conventional objects, object-orientation does provide a
supporting computational mechanism for system modeling.
Evolution of Systems Formalisms
Simulator:
Numerical
Integrator
System
System Specification Formalism:
DESS: differential equation
DTSS: difference equation
DESS model:
dq/dt = a*q +bx
DEVS: discrete event
Simulator:
Event
Processor
Simulator:
Recursive
Algorithm
System
System
DEVS model
DTSS model:
time to next event,
q(t+1) = a*q(t)+ b*x(t)
state at next event ...
Basic Systems Specification Formalisms
Introducing the DEV&DESS
Formalism
1990
SYSTEM
DEV&DESS
Discrete Event &
Differential Equation
System Specification
Discrete Event
System Specification
DESS
Differential Equation
System Specification
DEVS
DTSS
Discrete Time
System Specification
Combining Continuous And Discrete
Formalisms
1997
SYSTEM
DEVS
DEV&DESS
QUANTIZED
SYSTEM
DISCRETIZED
SYSTEM
LEGEND
QUANTIZED
DESS
subclass
exact
DISCRETIZED
DESS
as close as
DESS
desired
DESS
Introducing Quantized System
Extensions of DEVS
1996
PARALLEL/CONFLUENT
DEVS
SYMBOLIC
DEVS
EXTENSIONS
OF DEVS
FUZZY
DEVS
DYNAMIC
STRUCTURE
DEVS
DEVS
REAL TIME
DEVS
DEVS as a Computational Basis for
Simulation, Design and Control
1997
DEVS REPRESENTABLE
SYSTEMS
UNIVERSALITY
OF DEVS
Representation
QUANTIZED
SYSTEMS
UNIQUENESS
OF DEVS as DEDS
representation
DEVS
Computational
basis for
Simulation,
Design, Control
Levels of System Knowledge
Leve
l
Name
What we know at this level
0
Source
what variables to measure and how to observe them
1
Data
data collected from a source system
2
Generativ
e
means to generate data in a data system
3
Structure
components (at lower levels) coupled together to form a
generative system
George Klir’s [Klir 1985] systems framework.
Hierarchy of Systems Specifications
Level
Specification Name
Corresponds to
Klir’s
What we know at this level
0
Observation Frame
Source System
how to stimulate the system with inputs;
what variables to measure and how to
observe them over a time base;
1
I/O Behavior
Data System
time-indexed data collected from a
source system; consists of input/output
pairs
2
I/O Function
3
State Transition
Generative System
how states are affected by inputs; given
a state and an input what is the state
after the input stimulus is over; what
output event is generated by a state.
4
Coupled Component
Structure System
components and how they are coupled
together. The components can be
specified at lower levels or can even be
structure systems themselves – leading
to hierarchical structure.
knowledge of initial state; given an
initial state, every input stimulus
produces a unique output.
input
trajectory
output
trajectory
time base
time base
SYSTEM
INPUT
PORTS
OUTPUT
PORTS
Input / output system
The Specification Levels
Informally Presented
1. Observation Frame (Level 0)
lightning
rain
FOREST
smoke
wind
A forest specified as a system in the Observation Frame (Level 0)
I/O Behavior and I/O Function
smoke
lightning
t0
lightning
t0
t0
smoke
t
0
Some Input-Output Pairs for the Forest System Frame (Level 1 & 2)
State Transition System
Specification(Level 3)
smoke
lightning
t0
t0
initial state = dry vegetation
smoke
lightning
t0
t0
initial state = wet vegetation
lightning
a)
t0
t
1
initial state =
dry vegetation,
unburnt
state =
dry vegetation,
burnt
smoke
t0
lightning
t
1
t
t0
1
initial state =
wet vegetation,
unburnt
state =
dry vegetation,
unburnt
b)
smoke
t
0
t1
c)
Coupled Component System
Specification
lighting
wind
cell
smoke
rain
Component Structure System Specification for the Forrest System (Level 4)
System Specification Morphisms:
Basic Concepts
Level 4
Level 4
morphism
association
A morphism is a relation
that places elements of
system descriptions into
correspondence.
morphic, if we can place
their defining elements inputs, outputs, and time
bases into correspondence
Level 3
Level 3
Level 2
Level 2
Level 1
Level 1
Level 0
Level 0
Morphism Concepts for System Specification Hierarchy
Level
Specification Name
Two Systems are Morphical at this level if:
0
Observation Frame
their inputs, outputs and time bases can be put
into correspondence
1
I/O Behavior
they are morphic at level 0 and the timeindexed input/output pairs constituting their
I/O behaviors also match up in one-one
fashion
2
I/O Function
they are morphic at level 0 and their initial
states can be placed into correspondence so
that the I/0 functions associated with
corresponding states are the same
3
State Transition
the systems are homomorphic (explained
below)
4
Coupled Component
components of the systems can be placed into
correspondence so that corresponding
components are morphic; in addition, the
couplings among corresponding components
are equal
Morphism relations between systems in System Specification Hierarchy and
Klir’s levels.
Homomorphism
multi-step state transitions in S
B
C
D
A
single state transition in S’
b
a
c
d
Homomorphism Concept. This figure illustrates
the preservation of state transitions
that a homomorphism requires.
Homomorphism: a mapping preserving step-by-step state transition and output
Basic Entities and Relations in Modeling
and Simulation
Experimental Frame
Source
System
behavior database
Modeling
Relation
Simulator
Simulation
Relation
Model
DEVS Formalism
DEVS = Discrete Event Systems Specification
• Atomic Models
• Coupled Models
• Hierarchical Models
Discrete Event Time Segments
X
x0
t0
x1
t1
S
e
y0
Y
t2
DEVS Atomic Model
Elements of an atomic model:
• input events
• output events
• state variables
• state transition functions
• output function
• time advance function
Atomic Model Operation
•
Ports are represented explicitly – there can be any number of input and output ports on which
values can be received and sent
•
The time advance function determines the maximum lifetime in a state
•
A bag can contain many elements with possibly multiple occurrences of its elements.
•
Atomic DEVS models can handle bags of inputs and outputs.
•
The external transition function handles inputs of bags by causing an immediate state change,
which also may modify the time advance.
•
The output function can generate a bag of outputs when the time advance has expired.
•
The internal transition function is activated immediately after the output function causing an
immediate state change, which also may modify the time advance.
•
The confluent transition function decides the next state in cases of collision between external
and internal events.
Basic specification:
DEVS = <X,S,Y, dint , d ext ,dcon, ta,l >
X : a set of input events.
Y : a set of output events.
S : a set of states
ta : S -> R+0,inf time advance function
dint :S -> S internal transition function.
d ext :Q x Xb -> S external transition function,
d con :Q x Xb -> S confluent transition function,
where Xb is a set of bags over elements in X.
Q= {(s,e)|se S, 0<= e <= ta(s)}
l: S -> Y output function
DEVS Atomic Model
Implements Basic DEVS
Make a
transition
(external)
Make a
transition
(internal)
input
external
Handle
input
State
internal
time advance
output
output
Hold for
some time
Send an
output
Internal Transition /Output Generation
output
Generate output
using the
output
function
Time advance
s’
s
Make a transition
using the
internal
transition
function
Response to External Input
input
Make a transition
elapsed
time
Time advance
using the
external
transition
function
Response to Simultaneous External Input and Internal Event
output
input
Make a transition
elapsed
time
Time advance
Generate output
using the
confluent
transition
function
Atomic Model Examples
pulse
start Pulse
Generator
out
time
Pulse Generator
Output
interPulseTime >0
start
active
passive
ta = ∞
Output
Fire-once Neuron
receptive
Input
Firing delay >0 ta = ∞
ta = ∞
external event
refract
fire
Internal event
output event
Basic DEVS: Example Scuba Model
1 hr
Dive
Plan
5ft
5 min
40ft
25 min
60ft
Emergency
Phone
Call
Response
35 min
=dint (“five”) for phase != “five” ,“surface1”, “surface2”
dint (“five”,s ) otherwise //except when already on “five
DEVS Hierarchical Modular Composition
Atomic: lowest level model,
contains structural
dynamics -- model level
modularity
Atomic
Coupled: composed of
one or more atomic
and/or coupled
models
hierarchical
construction
Ato mic
Atomic
Atomic
A to mic
Atomic
Atomic
ENTITY
Object Oriented
DEVS CLASSES
DEVS
Legend
ATOMIC
inherits
can hold
devs
COUPLED
CONTAINER
entity
MESSAGE
content
port,
value -> ENTITY
Coupled model specification:
DN = < X ,Y,D,{Mi },{Ii },{Zi,j }>
X : a set of input events.
Y : a set of output events.
D : an index set for the components of the coupled model.
For each i e D ,
Mi is a component DEVS model.
For each i e D u self , Ii is the set of influencees of i .
For each j e D u self ,
Zi,j is output translation mapping
create components
class ef:public digraph{
public:
ef():digraph(){
genr * g = new genr("g);
transd * t = new transd("t");
ef
start
out
start
g
result
ariv
add(g);
add(t);
add coupling
add_coupling(this, "in", t, "done");
add_coupling(this, "start", g, "start");
t->add_coupling(t,"out",g,"stop");
t->add_coupling(t, "out", this, "result");
g->add_coupling(g, "out", this, "out");
g->add_coupling(g, "out", t, "ariv");
DIGRAPH
out
t
in
done
declare ports
inports->add("in");
outports->add("out");
inports->add("start");
outports->add("result");
out
Simulation Cycle for DEVS
Parallel /Confluent
1 Compute the global next event time, tN: use reduce to get
minimum of component times to next event (tN)
2 Tell all components the global tN and
if component is imminent (tN == global tN ),
then generate output message(using l)
3 Sort and distribute (using coupling) output messages.
4
Tell all components
if component is imminent (tN == global tN )
or has incoming mail (external events)
or both
then execute transition function (wrap_deltfunc).
wrap_deltfunc(t,m)
deltext(t-tN,m
deltint() deltcon(m)
Simulation Cycle Step 1
Compute the next event time (tN) : uses reduction to get
minimum of the component times to next event.
Block
(UI)
Tell_all (next_tN) Ensemble Message
Collection of Minimum tN Values
i
compute tN
return MIN tN
Low Node
i +2
i +1
compute tN
return MIN tN
compute tN
return MIN tN
i +3
compute tN
return MIN tN
i +7
i+8
compute tN compute tN
return tN
return tN
i+4
compute tN
return MIN tN
i +9
i + 10
compute tN compute tN
return tN
return tN
i +5
compute tN
return MIN tN
i + 11
compute tN
return tN
High Node
i +6
compute tN
return tN
Simulation Cycle Step 2
Tell all components global tN:
if component is imminent generate and sort output messages
i
Low Node
Tell_all (compute_IO) Ensemble Message
compute_IO
i+2
i +1
compute_IO
compute_IO
i +3
compute_IO
i +7
compute_IO
i+8
i +5
i+4
compute_IO
compute_IO
i+9
i + 10
i + 11
compute_IO compute_IO compute_IO compute_IO
High Node
i +6
compute_IO
Mail Exchange in Step3
tell all imminents,
sort, and distribute output messages (mail) using coupling
i +1
i+2
i +3
i+4
Step 1 : Mail Message Size Information
Step 2 : Mail Exchange
i +5
Simulation Cycle Step 4
Tell all components with to execute their
transition functions.
i
Low Node
Tell_all (wrap_deltfunc) Ensemble Message
wrap_deltfunc
i+2
i +1
wrap_deltfunc
wrap_deltfunc
i +3
i+4
wrap_deltfunc
wrap_deltfunc
i +7
i+8
i+9
i +5
wrap_deltfunc
i + 10
i + 11
wrap_deltfuncwrap_deltfuncwrap_deltfunc
wrap_deltfunc wrap_deltfunc
High Node
i +6
wrap_deltfunc