Skip to main content

Supervision of Vector Discrete-Event Systems

  • Chapter
  • First Online:
Book cover Supervisory Control of Discrete-Event Systems

Part of the book series: Communications and Control Engineering ((CCE))

  • 986 Accesses

Abstract

The state-based approach to DES supervisory control of Chap. 7 will be applied to a class of models known as vector addition systems, which when endowed with our standard control technology we call vector discrete-event systems (VDES). VDES offer a modeling option especially for systems incorporating groups of similar entities (e.g. machines in a workcell) which for control purposes need not be individually distinguished; often in practice such systems are equivalent to a synchronous product of buffers. VDES may be represented graphically as Petri nets (PN); results from the extensive PN literature will be exploited to advantage. We further consider problem restrictions under which an optimal supervisor itself admits a VDES representation, providing examples when this is or respectively is not the case.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 149.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 199.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 199.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    The ‘coupling event’ \(\alpha _7^3\) is already controllable in \(\mathbf G_7\).

  2. 2.

    While \(\mathbf{G}_u\) is not loop-free, and therefore Theorem 8.7.2 not strictly applicable, the asserted optimality is obvious by inspection.

References

  • Al-Jaar RY, Desrochers AA (1988) A modular approach for the performance analysis of automated manufacturing systems using generalized stochastic Petri nets. Rpt. RAL #116, Robotics and Automation Laboratory, Rensselaer Polytechnic Institute, Troy, New York

    Google Scholar 

  • Chen S-L (1992) Existence and design of supervisors for vector discrete event systems. MASc thesis, Department of Electrical and Computer Engineering, University of Toronto

    Google Scholar 

  • Chen S-L (1996) Control of discrete-event systems of vector and mixed structural type. PhD thesis, Department of Electrical and Computer Engineering, University of Toronto

    Google Scholar 

  • Chen S-L, Wonham WM (1992) Existence and design of supervisors for vector discrete-event systems. In: Proceedings of thirtieth annual Allerton conference on communication, control and computing, University of Illinois, pp 604–613

    Google Scholar 

  • Chen Y, Li Z (2013) Optimal supervisory control of automated manufacturing systems. CRC Press, Boca Raton

    Book  Google Scholar 

  • Hiraishi K, Ichikawa A (1988) A class of Petri nets that [sic] a necessary and sufficient condition for reachability is obtainable. Trans Soc Instrum Control Eng (SICE) 24(6):91–96 (in Japanese)

    Google Scholar 

  • Huang NQ, Li Y, Wonham WM (1989) Supervisory control of vector discrete-event systems. In: Proceedings of twenty-seventh annual Allerton conference on communication, control and computing, University of Illinois, pp 925–934

    Google Scholar 

  • Huang N-Q (1991) Supervisory control of vector discrete-event processes. MASc thesis, Department of Electrical and Computer Engineering, University of Toronto

    Google Scholar 

  • Krogh BH (1987) Controlled Petri nets and maximally permissive feedback logic. In: Proceedings of twenty-fifth annual Allerton conference on communication control and computing, Allerton, pp 317–326

    Google Scholar 

  • Li Y (1991) Control of vector discrete-event systems. PhD thesis, Department of Electrical and Computer Engineering, University of Toronto

    Google Scholar 

  • Li Y, Wonham WM (1988a) A state-variable approach to the modeling and control of discrete-event systems. In: Proceedings of twenty-sixth annual Allerton conference on communication, control, and computing, University of Illinois, pp 1140–1149

    Google Scholar 

  • Li Y, Wonham WM (1988b) Controllability and observability in the state-feedback control of discrete-event systems. In: Proceedings of twenty-seventh IEEE conference on decision and control, New York, pp 203–208

    Google Scholar 

  • Li Y, Wonham WM (1989a) Composition and modular state-feedback control of vector discrete-event systems. In: Proceedings of the conference on information sciences and systems, The Johns Hopkins University, Baltimore, pp 103–111

    Google Scholar 

  • Li Y, Wonham WM (1989b) Linear integer programming techniques in the control of vector discrete-event systems. In: Proceedings of twenty-seventh annual Allerton conference on communication, control and computing, University of Illinois, pp 528–537

    Google Scholar 

  • Li Y, Wonham WM (1993) Control of vector discrete-event systems: I - the base model. IEEE Trans Autom Control 38(8):1214–1227. Correction: IEEE Trans Autom Control 39(8):1771 (1994). [Figures 9–11 are reprinted, with permission, from IEEE.]

    Google Scholar 

  • Memmi G, Roucairol G (1980) Linear algebra in net theory. In: Brauer W (ed) Net theory and applications. Lecture notes on computer science (LNCS), vol 84. Springer, Berlin, pp 213–223

    Chapter  Google Scholar 

  • Merlin PM, Farber DJ (1976) Recoverability of communication protocols - implications of a theoretical study. IEEE Trans Commun 24:1036–1043

    Article  MathSciNet  Google Scholar 

  • Moody J, Antsaklis P (1998) Supervisory control of discrete event systems using Petri nets. Kluwer

    Google Scholar 

  • Murata T (1989) Petri nets: properties, analysis and applications. Proc IEEE 77(4):541–580

    Article  Google Scholar 

  • Ramadge PJ (1983) Control and supervision of discrete event processes. PhD thesis, Department of Electrical and Computer Engineering, University of Toronto

    Google Scholar 

  • Ramadge PJ, Wonham WM (1987) Supervisory control of a class of discrete event processes. SIAM J Control Optim 25(1):206–230

    Article  MathSciNet  Google Scholar 

  • Tucker AW (1956) Dual systems of homogeneous linear relations. In: Kuhn HW, Tucker AW (eds) Linear inequalities and related systems. Annals of mathematics studies, vol 38. Princeton University Press, Princeton, pp 3–18

    Google Scholar 

  • Uzam M, Wonham WM (2006) A hybrid approach to supervisory control of discrete event systems coupling RW supervisors to Petri nets. Int J Adv Manuf Technol 28(7–8):747–760

    Article  Google Scholar 

  • Wonham WM (2003) Supervisory control theory: models and methods. In: Proceedings of ATPN - workshop on discrete event systems control, twenty-fourth international conference on application theory of Petri nets (ATPN ’03), Eindhoven, The Netherlands, pp 1–14

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to W. Murray Wonham .

Appendix 8.1: Three Examples from Petri Nets

Appendix 8.1: Three Examples from Petri Nets

We provide three examples to show how supervisory control problems described in terms of Petri nets can be treated in the automaton framework of this monograph, Chaps. 3, 4, and 6. Commented output from the TCT MAKEIT.TXT files is provided for the reader’s convenience. Details of problem formulation can be found in the cited literature.

Example 1: Manufacturing Workcell

Reference: K. Barkaoui, I. Ben Abdallah. A deadlock prevention method for a class of FMS. Proc. IEEE Int. Conf. on Systems, Man, and Cybernetics. Vancouver, Canada, October 1995, pp. 4119–4124.

The system is a manufacturing workcell consisting of two input bins I1, I2, four machines M1,...,M4, two robots R1, R2, and two output bins O1, O2. Two production sequences, for RED and GRN workpieces, run concurrently; these are:

GRN: I1 \(\rightarrow \) R1 \(\rightarrow \) (M1 or M2) \(\rightarrow \) R1 \(\rightarrow \) M3 \(\rightarrow \) R2 \(\rightarrow \) O1

RED: I2 \(\rightarrow \) R2 \(\rightarrow \) M4 \(\rightarrow \) R1 \(\rightarrow \) M2 \(\rightarrow \) R1 \(\rightarrow \) O2

In the simplest case, treated here, at most one workpiece of each type (red, green) is allowed in the system at any one time.

Since the machines and production sequences share the robots as resources, there is the a priori possibility of deadlock. In fact, without control there is exactly one deadlock state (20) in TESTmeet (CELL,SPEC). At this state the components are in states:

R1

R2

M1

M2

M3

M4

RED

GRN

1

0

0

1

0

0

2

3

One deadlock sequence is (writing ev for event):

Verse

Verse R1 takes in green part (ev 11 in CELL) R2 takes in red part (ev 91) R1 loads M2 with green part (ev 21) R2 loads M4 with red part (ev 101) R1 unloads red part from M4 (ev 111)

At this point, R1 holds a red, having just unloaded it from M4 (ev 111), while M2 holds a green, having finished processing it. R1 must load M2 with the red it’s holding (ev 121) but cannot do so because M2 holds the green, which only R1 can unload (ev 41). The deadlock occurs because both R1 and M2 are ‘full’ (with a red, green respectively), and there is no mechanism for making the required swap. The cure is easy: simply eliminate state 20 from TEST; the result is then exactly the optimal controlled behavior SUP. So instead of the old blocking sequence 11.91.21.101.111 we now have 11.91.21.101.41; in other words GRN is allowed to progress to its state 4 (ev 41) before RED is allowed to progress to its state 3 (ev 111). The problem arises because a single robot (R1) is shared by 2 machines M2, M4; and M2 is shared by 2 processes (RED,GRN). At the deadlock state RED and GRN have conflicting requirements for M2 and therefore on R1, which is deadlocked because of its previous action on M4. Conclusion: careful sequencing of the interleaved processes RED, GRN is needed to avoid deadlock due to conflicting demands on the shared resources R1 and M2. Of course, this is achieved ‘automatically’ by   supcon.

R1

=

create(R1,[mark 0],[tran [0,11,1],[0,41,1],[0,51,1],

  

[0,111,1],[0,131,1],[1,21,0],[1,31,0],[1,61,0],[1,121,0],

  

[1,141,0]]) (2,10)

R2

=

create(R2,[mark 0],[tran [0,71,1],[0,91,1],[1,81,0],

  

[1,101,0]]) (2,4)

M1

=

create(M1,[mark 0],[tran [0,31,1],[1,51,0]]) (2,2)

M2

=

create(M2,[mark 0],[tran [0,21,1],[0,121,1],[1,41,0],

  

[1,131,0]]) (2,4)

M3

=

create(M3,[mark 0],[tran [0,61,1],[1,71,0]]) (2,2)

M4

=

create(M4,[mark 0],[tran [0,101,1],[1,111,0]]) (2,2)

CELL

=

sync(R1,R2) (4,28)    Blocked_events  = None

CELL

=

sync(CELL,M1) (8,52)     Blocked_events  = None

CELL

=

sync(CELL,M2) (16,88)     Blocked_events   = None

CELL

=

sync(CELL,M3) (32,160)     Blocked_events  = None

CELL

=

sync(CELL,M4) (64,288)     Blocked_events  = None

ALL

=

allevents(CELL) (1,14)

GRN

=

create(GRN,[mark 0],[tran [0,11,1],[1,21,2],[1,31,3],

  

[2,41,4],[3,51,4],[4,61,5],[5,71,6],[6,81,0]]) (7,8)

RED

=

create(RED,[mark 0],[tran [0,91,1],[1,101,2],[2,111,3],

  

[3,121,4],[4,131,5],[5,141,0]]) (6,6)

SPEC

=

sync(RED,GRN) (42,90)     Blockedevents  = None

nonconflict(CELL,SPEC) = false

TEST

=

meet(CELL,SPEC) (35,61)

SUP

=

supcon(CELL,SPEC) (34,60)

SUP

=

condat(CELL,SUP) Controllable.

[Only events 51,71 do not appear in the condat table; therefore they could be replaced by uncontrollable counterparts (say 50,70) without changing the controlled behavior.]

SIMSUP

=

supreduce(CELL,SUP,SUP) (11,38)

STEST

=

meet(CELL,SIMSUP) (34,60)

isomorph(STEST,SUP) = true

SIMSUP

=

condat(CELL,SIMSUP) Controllable.

The following shows that removing the single  blocking state 20 is enough to obtain the optimal control from the naive behavior TEST.

ETEST

=

edit(TEST,[states -[20]]) (34,60)

isomorph(ETEST,SUP) = true

Example 2: Piston Rod Robotic Assembly Cell

Reference: J.O. Moody, P.J. Antsaklis. Supervisory Control of Discrete Event Systems Using Petri Nets. Kluwer, 1998; Sect. 8.4.

With reference to Fig. 8.11 of the cited text, the system consists of an M-1 robot performing various tasks (Petri net places p4, p5, p6, p7), and similarly an S-380 robot (p2, p3); p1 is used for initialization.

M-1 ROBOT

To model this we replace p4 by a generator capable of holding up to two piston pulling tools in a two-slot buffer MR1; the tools are generated by event 40 and selected for use by event 41. The event sequence 41.51.60.70.80 tracks the installation of a cap on a piston rod and the conveyance of its engine block out of the work space. In our model, up to four operations in this sequence could be progressing simultaneously, although a specification (below) will limit this number to one.

MR1

=

create(MR1,[mark 0],[tran [0,40,1],[1,40,2],[1,41,0],

  

[2,41,1]]) (3, 4)

MR2

=

create(MR2,[mark 0],[tran [0,41,1],[1,51,0]]) (2,2)

MR3

=

create(MR3,[mark 0],[tran [0,51,1],[1,60,0]]) (2,2)

MR4

=

create(MR4,[mark 0],[tran [0,60,1],[1,70,0]]) (2,2)

MR5

=

create(MR5,[mark 0],[tran [0,70,1],[1,80,0]]) (2,2)

MROB

=

sync(MR1,MR2) (6,9)

MROB

=

sync(MROB,MR3) (12,21)

MROB

=

sync(MROB,MR4) (24,48)

MROB

=

sync(MROB,MR5) (48,108)

S-380 ROBOT

Starting from the ready-to-work condition, this robot performs the event sequence 10.20.30 corresponding to readying parts for assembly; its work cycle is closed by event 80.

SROB = create(SROB,[mark 0],[tran [0,10,1],[1,20,2],[2,30,3], [3,80,0]]) (4,4)

PLANT = sync(MROB,SROB) (192,504)

Note that the only controllable events are 41,51, which more than satisfies the authors’ requirement that events 60,70,80 be  uncontrollable.

There are three specifications, as detailed in the authors’ equations (8.11)–(8.13) in (Moody and Antsaklis 1998). These are linear inequalities on markings, which are easily converted (by inspection of the Petri net in (Moody and Antsaklis 1998)) into counting constraints on suitable event pairs. For instance, (8.12) requires that m4+m5+m6+m7 \(\le \) 1, where mi is the marking of place pi; by inspection, this is equivalent to

$$\begin{aligned} (|41|-|51|) + (|51|-|60|) + (|60|-|70|) + (|70|-|80|) \le 1 \end{aligned}$$

or simply \( |41|-|80| \le 1 \); here |k| is the number of firings of transition k since the start of the process. By inspection of the Petri net in (Moody and Antsaklis 1998) it is clear that the inequality forces events 41,80 to alternate, with 41 occurring first; hence SPEC2, below.

SPEC1

=

create(SPEC1,[mark 0],[tran [0,10,1],[1,30,0]]) (2,2)

SPEC2

=

create(SPEC2,[mark 0],[tran [0,41,1],[1,80,0]]) (2,2)

SPEC3

=

create(SPEC3,[mark 0],[tran [0,30,1],[1,51,0]]) (2,2)

SPEC

=

sync(SPEC1,SPEC2) (4,8)

SPEC

=

sync(SPEC,SPEC3) (8,18)

PLANTALL

=

allevents(PLANT) (1,9)

SPEC

=

sync(SPEC,PLANTALL) (8,50)

The supremal supervisor can now be computed, then simplified by the control-congruence reduction procedure.

SUPER

=

supcon(PLANT,SPEC) (33,60)

SUPER

=

condat(PLANT,SUPER) Controllable.

SIMSUP

=

supreduce(PLANT,SUPER,SUPER) (3,12)

Thus SIMSUP is strictly minimal.

The authors specify four auxiliary constraints (8.14)–(8.17) (see (Moody and Antsaklis 1998)), of the form already discussed; we model these as follows, and create the auxiliary specification ASPEC. We test these constraints against the existing controlled behavior SUPER, and confirm that they are already satisfied.

ASP1

=

create(ASP1,[mark 0],[tran [0,20,1],[1,30,0]]) (2,2)

ASP2

=

create(ASP2,[mark 0],[tran [0,41,1],[1,60,0]]) (2,2)

ASP3

=

create(ASP3,[mark 0],[tran [0,60,1],[1,70,0]]) (2,2)

ASP4

=

create(ASP4,[mark 0],[tran [0,70,1],[1,80,0]]) (2,2)

ASPEC

=

sync(ASP1,ASP2) (4,8)

ASPEC

=

sync(ASPEC,ASP3) (8,18)

ASPEC

=

sync(ASPEC,ASP4) (16,40)

ASPEC

=

sync(ASPEC,PLANTALL) (16,88)

COASPEC

=

complement(ASPEC,[]) (17,153)

X

=

meet(SUPER,COASPEC) (33,60)

TX

=

trim(X) (0,0)

Unobservable events: we assume with (Moody and Antsaklis 1998) that events 51,60,70 have become  unobservable. As a simplifying assumption on supervisor design, we consider that controllable event 51 will now not be subject to  disablement. Thus we could (but will not) relabel event 51 as 50 throughout. Our new assumption allows us to treat the problem as an instance of SCOP (Sect. 6.5). We therefore compute as follows.

N

=

supnorm(PLANT,SPEC,null[51,60,70]) (24,39)

NO

=

project(N,null[51,60,70]) (15,24)

PLANTO

=

project(PLANT,null[51,60,70]) (60,129)

SUPERO

=

supcon(PLANTO,NO) (15,24)

  

[‘Observer’s supervisor’]

SUPERO

=

condat(PLANTO,SUPERO) Controllable.

  

[‘Observer’s supervisor’]

OSUPER

=

selfloop(SUPERO,[51,60,70]) (15,69)

  

[Feasible supervisor]

  

nonconflict(PLANT,OSUPER) = true

K

=

meet(PLANT,OSUPER) (24,39)

  

[Controlled behavior using feasible supervisor]

SIMSUPO

=

supreduce(PLANTO,SUPERO,SUPERO) (2,7)

Thus SIMSUPO is strictly minimal.

SIMSUPO

=

condat(PLANTO,SIMSUPO) Controllable.

TESTO

=

meet(PLANTO,SIMSUPO) (15,24)

isomorph(TESTO,SUPERO) = true

We will check that, as expected, controlled behavior K using the feasible supervisor is more restricted than the original controlled behavior SUPER (which of course was computed without assuming any observational constraint). Nevertheless, K is adequate for performance of the assembly process: for instance the K-string 10.20.30.40.41.51.60.70.80 is a full assembly cycle.

COSUPER

=

complement(SUPER,[]) (34,306)

X

=

meet(K,COSUPER) (24,39)

TX

=

trim(X) (0,0)

Some routine checks, in principle redundant, are:

nonconflict(PLANT,OSUPER) = true

 

OSUPER = condat(PLANT,OSUPER) Controllable.

 

As expected, OSUPER never  disables unobservable event 51.

Example 3: Unreliable Machine (Deadlock Avoidance)

Reference: J.O. Moody, P.J. Antsaklis. Deadlock avoidance in Petri nets with  uncontrollable  transitions. Proc. 1998 American Automatic Control Conference. Reproduced in J.O. Moody, P.J. Antsaklis. Supervisory Control of Discrete Event Systems Using Petri Nets. Kluwer, 1998; Sect. 8.3 (pp. 122–129).

This is a problem which, in the authors’ Petri net formulation, requires finding the system’s two ‘uncontrolled siphons’. By contrast, the TCT solution is fast and immediate, requiring no special analysis.

The system model consists of a machine M1 containing two 1-slot output buffers M1C (for completed workpieces) and M1B (for damaged workpieces, which result when M1 breaks down), together with two dedicated AGVs to clear them. M1 is the SCT machine model (e.g. Sect. 3.2). Event 10 (successful completion) increments M1C, which must be cleared (event 14) by AGV1 before M1 can restart; event 12 (breakdown) increments M1B, which must be cleared (event 16) by AGV2 before M1 can be repaired after breakdown (event 13); these requirements are enforced by SPEC1C, SPEC1B, respectively. The workspace near the buffers can be occupied by only one AGV at a time: this is enforced by SPEC1; the final SPEC model issync(SPEC1,SPEC1C,SPEC1B). Blocking would occur if, for instance, AGV1 moved into position to clear its buffer M1C, but M1B rather than M1C was filled; or AGV2 moved into position to clear its buffer M1B, but M1C rather than M1B was filled; in each case the positioned AGV would lock out the other.

Modeling the plant

M1

=

create(M1,[mark 0],[tran [0,11,1],[1,10,0],[1,12,2],

  

[2,13,0]]) (3,4)

M1C

=

create(M1C,[mark 0],[tran [0,10,1],[1,14,0]]) (2,2)

M1B

=

create(M1B,[mark 0],[tran [0,12,1],[1,16,0]]) (2,2)

AGV1

=

create(AGV1,[mark 0],[tran [0,101,1],[1,14,2],

  

[2,100,0]]) (3,3)

AGV2

=

create(AGV2,[mark 0],[tran [0,201,1],[1,16,2],

  

[2,200,0]]) (3,3)

P

 =

sync(M1,M1C) (6,10)    Blocked_events  = None

P

 =

sync(P,M1B) (12,24)   Blocked_events  = None

P

 =

sync(P,AGV1) (36,84)    Blocked_events  = None

P

 =

sync(P,AGV2) (108,288)    Blocked_events  = None

PALL

 =

allevents(P) (1,10)

Modeling the specification

SPEC1

=

create(SPEC1,[mark 0],[tran [0,101,1],[0,201,2],[1,100,0],

  

[2,200,0]]) (3,4)

SPEC1C

=

create(SPEC1C,[mark 0],[tran [0,10,1],[0,11,0],[1,14,0]])

  

(2,3)

SPEC1B

=

create(SPEC1B,[mark 0],[tran [0,12,1],[0,13,0],[1,16,0]])

  

(2,3)

SPEC

=

sync(SPEC1,SPEC1C) (6,17)  Blocked_events = None

SPEC

=

sync(SPEC,SPEC1B) (12,52)  Blocked_events = None

SPEC

=

sync(SPEC,PALL) (12,52)  Blocked_events = None

nonconflict(P,SPEC) = false

Blocking could occur in the absence of supervisory control. Some blocking strings are 11.10.201, 201.11.10, 11.12.101, 101.11.12. These result in the situations described earlier, where an AGV in the workspace locks out the other, required AGV.

PSPEC

=

meet(P,SPEC) (24,40)

nonconflict(PSPEC,PALL) = false

MPSPEC

=

minstate(PSPEC) (23,40)

Computing the supremal supervisor

SUP

=

supcon(P,SPEC) (16,24)

SUP

=

condat(P,SUP) Controllable.

Computing a simplified supervisor

SIMSUP

=

supreduce(P,SUP,SUP) (5,23)

X

=

meet(P,SIMSUP) (16,24)

isomorph(SUP,X) = true

SIMSUP

=

condat(P,SIMSUP) Controllable.

It is easy to check by inspection that SIMSUP prohibits the blocking sequences listed above.

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer International Publishing AG, part of Springer Nature

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Wonham, W.M., Cai, K. (2019). Supervision of Vector Discrete-Event Systems. In: Supervisory Control of Discrete-Event Systems. Communications and Control Engineering. Springer, Cham. https://doi.org/10.1007/978-3-319-77452-7_8

Download citation

Publish with us

Policies and ethics