Академический Документы
Профессиональный Документы
Культура Документы
GOTO <transit(point)>
REFUEL <transit(dock)>
LOITER <hang-close>
Figures 8-15 depict the automata equivalents tracking the various state variables of the
intelligent controller for the underwater vehicles. The state transitions in these automata
take place when events (function calls) indicated in oval boxes occur. These events occur in
the order depicted in 6, thus dictating the order of state transitions.
In Figure 8, for example, the state transitions of the long-term coordinator directive
are depicted. When the execution of behavior evaluator occurs, the state variable evolves
as depicted in the top portion of the gure, while the middle (resp., bottom) portion depicts
the evolution when the coordinator enabler (resp., RECON enabler) is executed. Each
transition edge has a pair of labels: The label above the transition edge gives the guard
condition (a predicate over the shared variables and the set of state variables) under which the
transition is executed. The label below the transition edge gives the resulting modication
in the state variable. The transition edge of the top most branch in Figure 8, for example,
is executed when the event behavior evaluator occurs, the COORDINATOR PLAN contains
REFUEL as the rst behavior (indicated as the guard CP = <REFUEL,...>), and the vehicle
is an SAUV (indicated as the guard AUTHORITY = SAUV); and as a result, a state transition
that pushes LOCATE-AUVS and AT-DOCK to the long-term coordinator directives stack
takes place. All state transitions are self-descriptive, and can be interpreted easily.
18
b_evaluator
LTD*GOTO* -> GOTO-RENDEZ
+ AT-RENDEZVOU
+LOCATE-AUVS
+AT-DOCK
STD*RECON* -> TRANSIT-FINISHED POINTS > 0
+ QUERY-STATIONS
+ AT-RENDEZVOU
e
ls
e
e
ls
e
AUTHORITY=SAUV
-X> SELF-ORGANIZING
+ SELF-ORGANIZING
e
ls
e
- ORGANIZE-INIT
e
ls
e
e
ls
e
- QUERY-STATIONS
+ DOING-RENDEZ
AUTHORITY=SAUV
AUTHORITY!=AUV
LTD*COORDINATOR* -> ORGANIZE-INIT
LTD*COORDINATOR* -X> SEND-AUV-ORDERS
-> QUERY-STATIONS
CP = <REFUEL,...>
CP = <GOTO,...>
CP = <RECON,...>
CP = <S-COM,...>
LTD*COORDINATOR* ->
AT-RENDEZVOU
LTD*COORDIANTOR* -X> LOCATE-AUVS, STATION_CONTACT
SYS-TIME >= T-RENDEZ
LTD*COORDINATOR* -X>DOING-RENDEZ STD*COORDINATOR* -X> GO-REFUEL. GOTO-POINT, NEW-ORDERS-FROM-SAUV, HELLO-QUERY-RECIEVED
- DO-RECON
OR
STD*RECON* -> CLEANUP
POINTS = 0
STD*S-COM* -> INTERUPT
LTD*S-COM* -x> TRANSMIT-STA-ORDERS
-> QUERY-STA
- QUERY-STATIONS
e
ls
e
STD*S-COM* -> AUV-LOCATE-COMPLETE
- LOCATE-AUVS
e
ls
e
AUV-CONTACTS
e
ls
e
+ SEND-AUV-ORDERS
+ AT-DOCK
e
ls
e
-> AT-DOCK
LTD*COORDINATOR*
LTD*S-COM* -> TRANSMIT-STA-ORDERS
- SEND-AUV-ORDERS
e
ls
e
- AT-DOCK + STATION-CONTACT - STATION-CONTACT
e
ls
e
e
ls
e
STD*S-COM* -> STATION-CONTACT
LTD*COORDINATOR* -> SEND-AUV-ORDERS
AND NOT AUV-CONTACTS LTD*COORDINATOR* -> AT-DOCK
NOT AUV-CONTACTS AND
RECON_enabler
+new DO-RECON
ORDERS = <RECON-AREA,...>
- ORGANIZE-INIT
- SELF-ORGANIZING
e
ls
e
e
ls
e
- AT-RENDEZVOU
- DOING-RENDEZ
+new DO-RECON
e
ls
e
c_enabler
ORDERS -> RESUME
LTD*COORDINATOR*
ORDERS -> SEARCH -> AT-RENDEZVOU LTD*COORDINATOR* -> ORGANIZE-INIT
+ SEND-AUV-ORDERS
"NOT SAUV"
AUTHORITY = SAUV
LTD*COORDINATOR*
e
ls
e
Figure 8: Coordinator long-term directives
19
+ HELLO-QUERY-RECIEVED
e
l
s
e
+ NEW-ORDERS-FROM-SAUV
S-COM_enabler
NEW-ORDERS
NEW-QUERY
a_executor
NIL
e
l
s
e
e
l
s
e
+ DUMP-ORDERS-RECIEVED
+ GOTO-POINT
ORDERS -> DUMP-SAMPLES
ORDERS -> GOTO-POINT
c_enabler
STD*COORDINATOR*
FUEL < LO-FUEL
+ GO-REFUEL
Figure 9: Coordinator short-term directives
20
c_planner
+ LOCATE-AUVS
STD*MISSION* -X> GO-REFUEL, GOTO-POINT
+ LOCATE-AUVS
e
l
s
e
+new ORDER-AUV
e
l
s
e
+new QUERY-STA
e
l
s
e
AUTHORITY = SAUV
STD*S-COM* -> AUV-LOCATE-COMPLETE
- LOCATE-AUVS
- QUERY-AUV e
l
s
e
LTD*S-COM* -> DOING-RENDEZ LTD*S-COM* -> RENDEZ-QUERY
- QUERY-AUV
- RENDEZ-QUERY
AUV-CONTACTS = TRUE
e
l
s
e
- REQUEST-AUV-DUMP
+ REQUEST-AUV-DUMP
e
ls
e
- DOING-RENDEZ e
l
s
e
LTD*S-COM* -> TRANSMIT-STA-ORDERS
- TRANSMIT-STA-ORDERS
e
l
s
e
b_evaluator
LTD*S-COM* -> LOCATE-AUVS
e
l
s
e
e
l
s
e
- QUERY-REVERSE
e
l
s
e
-> TRANSMIT-STA-ORDERS
- SPECIFIC-OBJ
e
l
s
e
LTD*S-COM*
LTD*S-COM* -> ORDER-AUV
- ORDER-AUV
LTD*S-COM* -> QUERY-STA
- SENDING-AUV-ORDERS
- SPECIFIC-OBJ
a_evaluator
LTD*S-COM*
LTD*COORDINATOR* -X> SELF-ORGANIZING
LTD*COORDINATOR* -> ORGANIZE-INIT
LTD*COORDINATOR* -> LOCATE-AUVS
LTD*COORDINATOR* -> AT-RENDEZVOU
LTD*COORDINATOR* -> QUERY-STATIONS
+ RENDEZ-QUERY
+ DOING-RENDEZ
AUTHORITY!=AUV
SYS-TIME>=T-RENDEZ
- QUERY-STA
+ QUERY-REVERSE
BP=<S-COMMAND,S-COMMAND,...>
- QUERY-REVERSE
e
l
s
e
LTD*S-COM* -> QUERY-REVERSE
NEW-AUV-CONTACTS OR COUNT>1
CP=<S-COM,...>
BP=<S-COMMAND,...>
NOT STATION-CONTACTS
NOT AUV-CONTACTS
NOT AUV-CONTACTS
STD*S-COM* -> INTERUPT
e
l
s
e
LTD*S-COM* -> TRANSMIT-STA-ORDERS
+new SPECIFIC-OBJ e
l
s
e
LTD*S-COM* -> QUERY-STA
- SPECIFIC-OBJ
+new QUERY-AUV
LTD*S-COM* -> LOCATE-AUVS
e
l
s
e
STD*S-COM* -> NEW-ORDERS
+new SPECIFIC-OBJ
e
l
s
e
STD*S-COM* -> HELLO-QUERY-RECIEVED
+new SPECIFIC-OBJ
e
l
s
e
LTD*S-COM* -> ORDER-AUV
-X> SENDING-AUV-ORDERS
+ SENDING-AUV-ORDERS
e
l
s
e
LTD*S-COM* -> DOING-RENDEZ LTD*S-COM* -> RENDEZ-QUERY
- SPECIFIC-OBJ e
l
s
e
+new REQUEST-AUV-DUMP
+new SPECIFIC-OBJ
+new QUERY-AUV
CP=<S-COM,...>
LTD*COORDINATOR* -> SEND-AUV-ORDERS
+new TRANSMIT-STA-ORDERS
else
STD*COORDINATOR* -X> NEW-ORDERS-FROM-SAUV, HELLO-QUERY-RECIEVED
else
-> STATION-CONTACT
LTD*COORDINATOR*
Figure 10: S-COM long-term directives
21
BP != S-COMMAND
+ AUV-LOCATE-COMPLETE
LTD*S-COM* -x> LOCATE-AUVS ->QUERY-STA
STATION-CONTACTS
LTD*S-COM* -> LOCATE-AUVS
+ STATION-CONTACT
+ HELLO-QUERY-RECIEVED
+ NEW-ORDERS-FROM-SAUV + DUMP-ORDERS-RECIEVED
+ INTERRUPT
+ INTERRUPT
e
l
s
e
e
l
s
e
e
l
s
e
BP=<S-COMMAND,...>
a_evaluator
c_planner
STD*S-COM*
LTD*COORDINATOR* -x> AT-RENDEZVOU , SEND-AUV-ORDERS
LTD*COORDINATOR* -> STATION-CONTACT
STD*COORDINATOR* -> HELLO-QUERY-RECIEVED
STD*COORDINATOR* -x> GOTO-REFUEL -x> GOTO-POINT -> NEW-ORDERS-FROM-SAUV
LTD*COORDINATOR* -x> ORGANIZE-INIT , LOCATE-AUVS
-> QUERY-STATIONS
STD*COORDINATOR* -> DUMP-ORDERS-RECIEVED
a_executor
NIL
Figure 11: S-COM short-term directives
22
b_evaluator
STD*RECON* -> CLEANUP OR POINTS = 0
- DOING-RECON
+ DOING-RECON
LTD*RECON* -x> DOING-RECON
e
l
s
e
LTD*RECON*
CP = <RECON,...>
b_evaluator
LTD*GOTO* -> GOTO-RENDEZ
- GOTO-RENDEZ
STD*S-COM* -> AUV-LOCATE-COMPLETE
NOT AUV-CONTACTS
OR
NOT AUV-CONTACTS
+ GOTO-RENDEZ
LTD*GOTO*
LTD*COORDINATOR* -> AT-DOCK
LTD*COORDINATOR* -> SEND-AUV-ORDERS -> AT-DOCK
CP = <S-COM,...>
CP = <GOTO,...>
DH<20
+ TRANSIT_FINISHED
DH>=20
+ ADJUST_HEADING
a_evaluator
STD*RECON*
a_executor
NIL
BP = <TRANSIT,...>
Figure 12: RECON/GOTO long/short-term directives
23
b_planner
c_planner
LTD*COORDINATOR* -x> DOING-RECON
n
a_evaluator
DH < 20
n := n-1
LTD*S-COM* -> LOCATE-AUVS
NEW-AUV-CONTACTS
OR COUNT>1
0
a_evaluator
e
l
s
e
STD*S-COM* -> INTERRUPT
LTD*S-COM* -x> TRANSMIT-STA-ORDERS
-> QUERY-STATIONS
0
BP = NIL
0
BP=<S-COMMAND,...>
LTD*S-COM* -x> ORDER-AUV, TRANSMIT-STA-ORDERS
-x> REQUEST-AUV-DUMP
+1
a_executor
CP=<S-COM,...>
BP=<S-COMMAND,...>
COUNT
POINTS
CP=<RECON,...>
BP=<TRANSIT,...>
Figure 13: Points and Count directives
24
c_planner
POP
POP
e
l
s
e
e
l
s
e
POP
e
l
s
e
*LOITER*
e
l
s
e
*REFUEL* e
l
s
e
*GOTO* e
l
s
e
e
l
s
e
OR
e
l
s
e
OR
*LOITER* e
l
s
e
e
l
s
e
e
l
s
e
e
l
s
e
*RECON* e
l
s
e
e
l
s
e
*LOITER*
b_evaluator
STD*S-COM* -> AUV-LOCATE-COMPLETE
AUTHORITY=AUV
SYS-TIME<T-RENDEZ
AUTHORITY=AUV
AUTHORITY=SAUV
STD*COORDINATOR* -> GO-REFUEL
STD*COORDINATOR* -> GOTO-POINT
LTD*COORDINATOR* -> LOCATE-AUVS
STD*COORDINATOR* -> NEW-ORDERS-FROM-SAUV
STD*COORDINATOR* -> HELLO-QUERY-RECIEVED
LTD*COORDINATOR* -> STATION-CONTACT
-X> SELF-ORGANIZING
LTD*COORDINATOR*
LTD*COORDINATOR* -> ORGANIZE-INIT
-> AT-RENDEZVOU
LTD*COORDINATOR*
LTD*COORDINATOR* -X> DOING-RENDEZ
-> SEND-AUV-ORDERS
LTD*COORDINATOR* -> QUERY-STATIONS
LTD*COORDINATOR* -> DO-RECON
*S-COM*
*S-COM*
+new *S-COM*
*S-COM*
*S-COM*
+new *S-COM*
CP=<S-COM,...>
NOT AUV-CONTACTS
LTD*S-COM* -> TRANSMIT-STA-ORDERS
NOT AUV-CONTACTS
LTD*S-COM* -> DOING-RENDEZ
*R-COM*
LTD*COORDINATOR*
*R-COM*
*R-COM*
Coordinator Plan (CP)
Figure 14: Coordinator plan
25
a_evaluator
Behavior Plan (BP)
POP
NIL
+new R-DUMP
NIL
-> DUMP-SAMPLES
-X> RESEND
-X> SELF-ORGANIZING
NIL e
l
s
e
TRANSIT
SURFACE
R-QUERY
HANG-CLOSE
GOTO-XY
GO-DOCK
+new S-COMMAND
e
l
s
e
+ S-COMMAND
+ S-COMMAND
e
l
s
e
e
l
s
e
OR
S-COMMAND
S-RESPONSE
LTD*S-COM* -> LOCATE-AUVS
NEW-AUV-CONTACTS OR COUNT>1
BP=<S-COMMAND,...>
POP
NIL LTD*S-COM* -X> QUERY-STA
-> TRANSMIT-STA-ORDERS
POP
e
l
s
e
b_planner
b_evaluator
LTD*S-COM* -> ORDER-AUV LTD*S-COM* -> DOING-RENDEZ
-X> SENDING-AUV-ORDERS
STD*S-COM* -> INTERRUPT
BP=<GO-DOCK,...>
BP=<GOTO,...>
BP=<SURFACE,...>
BP=<S-COMMAND,...>
ORDERS
STD*COORDINATOR* -X> AUV-LOCATE-COMPLETE
LTD*COORDINATOR* -> DOING-RENDEZ
LTD*COORDINATOR* -> ORGANIZE-INIT
NOT AUV-CONTACTS
CP=<S-COM,...>
CP=<RECON,...>
CP=<LOITER,...>
CP=<GOTO,...>
CP=<REFUEL,...>
CP=<S-COM,...>
CP=<R-COM,...>
CP=<R-COM,...>
BP = NIL LTD*S-COM* -> LOCATE-AUVS
STD*S-COM* -> HELLO-QUERY-RECIEVED
STD*S-COM* -> NEW-ORDERS
OR
Figure 15: Behavior plan
26
7 Models for specication and its verication
The mission task, i.e., the control specication, that the intelligent controller should
achieve is also represented by automata models. The specication automata represents the
sequences of behavior modes that the controlled system must execute in order to accomplish
the mission task. As an example, Figure 16(a) shows the specication automaton for an
SAUV, and Figure 16(b) shows that for an AUV.
REFUEL
S-COM[send-query] NEW-CONTACTS R-COM[send-report1]
ORDERS -> RESUME
S-COM[send-ordes]
FUEL < LO-FUEL
ORDERS -> SEARCH
RECON
S-COM[send-orders]
R-COM[send-report2]
NEW-SAMPLES
(a)
ORDERS -> SEARCH
(b)
LOITER NEW-QUERIES S-COM[send-report]
REFUEL
FUEL < LO-FUEL
RECON
ORDERS -> RESUME
S-COM[send-report]
ORDERS -> DUMP
Figure 16: SAUV and AUV specication automata
The control design is veried by showing that the sequences that are allowed by the
design automata are also allowed by the specication automata. The verication problem
is thus one of language containment [11] and can be performed using standard tools such as
COSPAN [15].
8 Conclusion
We have presented a new intelligent control architecture for the design of intelligent con-
trollers. Intelligent control is exercised when the conventional control is inadequate due to
27
the (i) lack of accurate plant model, and/or (ii) presence of control requirements that fall
beyond the scope of the conventional control. Our approach to the design of intelligent
controllers is a behavioral approach, where a behavior is a certain high level activity that
determines the manner in which a system must react to external conditions to execute sub-
tasks of the mission tasks. This behavioral approach naturally yields a cascaded architecture
consisting of a perceptor subsystem and a response controller subsystem. The task of the
perceptor is to extract those features from sensor signals that enable the execution of one
of the behaviors, and the task of the response controller is to monitor such features and to
execute one of the enabled behaviors. The perceptor and the response controller are both
hierarchical, allowing complexity management for systems that must operated in complex
environments and carry our complex tasks.
The behavior based intelligent control architecture presented in this paper is motivated
from the functional model of brain, and hence a controller designed in this architecture will
be an intelligent controller. This architecture has been successfully applied to design in-
telligent controllers in practice, and one such application is discussed in this paper. The
other applications include ship damage control automation, medical diagnosis, and defense
application. Further work is needed to make this architecture a more realistic function model
of brain, and to enhance it further so as to allow it to perform tasks such as learning. The
controllers designed in the current architecture are able to adapt to the changing environ-
mental conditions in a manner they are programmed to do so; however, they are unable to
devise any new control scheme which a system that has the capability to learn would be able
to do.
References
[1] L. Acar and U. Ozguner. Design of structure-based hierarchies for distributed intelligent
control. In An introduction to intelligent and autonomous control, pages 79108. Kluwer
Academic Publishers, Boston, MA, 1993.
[2] J. S. Albus. Data storage in the cerebellar model articulation controller (CMAC).
Journal of Dynamic Systems, Measurement, and Control, 93:228233, 1975.
[3] J. S. Albus. A new approach to manipulator control: The cerebellar model articulation
controller (CMAC). Journal of Dynamic Systems, Measurement, and Control, 93:220
227, 1975.
[4] J. S. Albus. A reference model architecture for intelligent systems design. In An introduc-
tion to intelligent and autonomous control, pages 2756. Kluwer Academic Publishers,
Boston, MA, 1993.
[5] P. J. Antsaklis and K. M. Passino, editors. An introduction to intelligent autonomous
control. Kluwer Academic Publishers, Boston, MA, 1993.
28
[6] R. A. Brooks. A robust layered control system for a mobile robot. IEEE Transactions
on Robotics and Automation, 2(3):1423, 1986.
[7] C. G. Cassandras and S. Lafortune. Introduction to Discrete Event Systems. Kluwer
Academic Publishers, Norwell, MA, 1995.
[8] A. Deshpande and Joao Borges de Sousa. Real-time multi-agent coordination using
DIADEM: Applications to automobile and submarine control. In 1997 IEEE Conference
on Systems, Man and Cybernetics, 1997.
[9] M. M. Gupta and N. K. Sinha, editors. Intelligent control:Theory and applications.
IEEE Press, Piscataway, NJ, 1996.
[10] C. J. Harris, editor. Advances in intelligent control. Taylor & Francis, Bristol, PA, 1994.
[11] J. E. Hopcroft and J. D. Ullman. Introduction to Automata Theory, Languages and
Computation. Addison-Wesley, Reading, MA, 1979.
[12] R. Kumar and V. K. Garg. Modeling and Control of Logical Discrete Event Systems.
Kluwer Academic Publishers, Boston, MA, 1995.
[13] R. Kumar and J. A. Stover. A behavior-based intelligent control architecture. In IEEE
International Symposium on Intelligent Control, pages 549553, Gaithersburg, MD,
September 1998.
[14] R. Kumar, J. A. Stover, and A. Kiraly. Discrete event modeling of a Behavior-based
intelligent control architecture. In Joint Conference on Information Systems, pages
288291, RTP, NC, October 1998.
[15] R. Kurshan. Computer-Aided Verication of Coordinating Processes: The Automata-
Theoretic Approach. Prentice University Press, Princeton, NJ, 1994.
[16] A. H. Levis. Modeling and design of distributed intelligence systems. In An introduction
to intelligent and autonomous control, pages 109128. Kluwer Academic Publishers,
Boston, MA, 1993.
[17] A. Meystel. Nested hierarchical control. In An introduction to intelligent and au-
tonomous control, pages 129161. Kluwer Academic Publishers, Boston, MA, 1993.
[18] S. Phoha, E. Peluso, P. A. Stadter, J. Stover, and R. Gibson. A mobile distributed net-
work of autonomous undersea vehicles. Technical report, Applied Research Laboratory,
Pennsylvania State University, University Park, PA, 1997.
[19] G. N. Saridis. Analytical formulation of the principle of increasing precision with de-
creasing intelligence for intelligent machines. Automatica, 25(3):461467, 1989.
29
[20] J. A. Stover, D. L. Hall, and R. E. Gibson. A fuzzy logic architecture for autonomous
multisensor data fusion. IEEE Transactions on Industrial Electronics, 43(3), 1996.
[21] D. A. White and D. A. Sofge, editors. Handbook of intelligent control. Van Nostrant
Reinhold, New York, NY, 1992.
[22] B. P. Zeigler and S. Chi. Model-based architecture concepts for autonomous systems
design and implementation. In An introduction to intelligent and autonomous control,
pages 5778. Kluwer Academic Publishers, Boston, MA, 1993.
A Discrete event systems: preliminaries
A discrete event system (DES) is a event-driven system that has discrete states, which
change in response to asynchronous occurrences of certain discrete activities, called events.
Examples of DESs include manufacturing systems, communication networks, reactive com-
puter programs, database management systems, automated trac systems. For a detailed
introduction to DESs, readers are referred to [7, 12].
A DES can be modeled by a nite collection of interacting automata. Each automaton has
a nite set of states and events, and share a nite set of variables. An automaton transitions
from one state to another in response to the execution of an event provided a certain guard
condition is satised. A guard condition is a predicate over the states of other automata and
the values of certain shared variables. A state transition may modify the values of certain
shared variables.
Formally, let {G
i
} be a nite collection of automata indexed by i, with S denoting its
nite set of shared variables. Each variable s S takes values over a countable domain
D(s). We use D(S) :=
sS
D(s) to denote the domain of the set of shared variables. Each
automata is a quadruple,
G
i
:= (X
i
,
i
, E
i
, x
0
i
),
where X
i
is its nite set of states,
i
is its nite set of events, E
i
is its nite set of state
transitions, and x
0
i
X
i
is its initial state. Each transition e E
i
is quintuple of the form:
e := (x
e
,
e
, P
e
(S
i
X
i
), f
e
, y
e
),
where x
e
X
i
is the state where the transition is executed,
e
i
is the event that causes
the state transition, y
e
X
i
is the state resulting from the execution of the transition,
P
e
(S
i
X
i
) is the guard conditiona predicate over the shared variables and the states
of the other automatawhich must be satised for the transition to be executed, and f
e
:
D(S) D(S) is the shared variable assignment function that assigns new values to the
shared variables. A transition e E
i
is equivalently also represented as:
e := x
e
e
, P
e
(S
i
X
i
), S := f
e
(S)
y
e
.
30
Buffer
a2 a1
Machine 1
d1 d2
Machine 2
Figure 17: A simple manufacturing system
Example 1 Consider for example the following simple manufacturing system consisting of
two machines and a buer shown in Figure 17.
In this manufacturing system, the rst machine M
1
fetches a part from an innite supply
when it is in its idle state. The arrival of a part into M
1
is denoted by the event a
1
, and
causes M
1
to change its state from idle to working. When M
1
nishes processing, the part
is deposited in buer B (event d1). This event causes M
1
to changes its state from working
to idle. The second machine M
2
fetches a part from the buer when it is in its idle state
and the buer is nonempty. This is denoted by the event a
2
, whose occurrence causes the
machine M
2
to change its state from idle to working. After M
2
nishes processing a part,
the part departs from the manufacturing system, denoted by the event d
2
, and causes M
2
to
return to its idle state.
We model this manufacturing system as a pair of interacting automata G
1
and G
2
,
where for i = 1, 2, the automaton G
i
models the machine M
i
. Each automaton has two
states, X
i
:= {idle
i
, working
i
}, with idle
i
being the initial state of G
i
. The event set of the
automaton G
i
consists of
i
:= {a
i
, d
i
}. The number of parts in the buer B, denoted by b,
is the shared variable. The set of transitions of the two automata are shown in Figure 18.
idle2
d2
a2,[b>0], b:=b-1
working2
a1
d2 d2
a2,[b>0],
b:=b-1
d1, b:=b+1
a1
d1, b:=b+1
a2,[b>0],
b:=b+1
d1, b:=b+1
a1
idle1 working1
G1 G2 2 1||G G
Figure 18: DES model of the manufacturing system
G
1
starts in the initial state idle
1
, and when event a
1
occurs it transitions to the state
working
1
. It returns to the initial state when event d
1
occurs, also incrementing the value of
the shared variable, the buer content, by 1. G
2
starts in the initial state idle
2
, and when
event a
2
occurs it transitions to the state working
2
provided the value of the shared variable
exceeds zero, also decrementing the the value of the shared variable by 1. G
2
returns to its
initial state when event d
2
occurs.
31
A collection of interacting automata {G
i
:= (X
i
,
i
, E
i
, x
0
i
)} that models a DES can be
combined using synchronous composition to form a single automaton that is an equivalent
model of the DES. Without loss of generality, we dene the synchronous composition of two
interacting automata {G
i
:= (X
i
,
i
, E
i
, x
0
i
)}
i=1,2
which share variables in a set S. Their
synchronous composition, denoted G
1
G
2
, is the automaton G
1
G
2
:= (X, , E, x
0
), where
X := X
1
X
2
, :=
1
2
, x
0
:= (x
0
1
, x
0
2
), and the set of transitions E = E
:
E
:= {((x
e
1
, x
e
2
),
e
, P
e
, f
e
, (y
e
1
, y
e
2
)) |
(x
e
1
,
e
, P
e
1
, f
e
, y
e
1
) E
1
, (x
e
2
,
e
, P
e
2
, f
e
, y
e
2
) E
2
s.t.
P
e
1
P
e
2
= P
e
}
E
:= {((x
e
1
, x
e
2
),
e
, P
e
, f
e
, (y
e
1
, x
e
2
)) |
(x
e
1
,
e
, P
e
, f
e
, y
e
1
) E
1
s.t.
e
1
2
}
E
:= {((x
e
1
, x
e
2
),
e
, P
e
, f
e
, (x
e
1
, y
e
2
)) |
(x
e
2
,
e
, P
e
, f
e
, y
e
2
) E
2
s.t.
e
2
1
}
E
is the set of transitions which occur synchronously with the participation of both G
1
and
G
2
, whereas E
and E