Control of Discrete-Event Systems


  • Due to COVID-19, all lectures will be given remotely
  • Each week, slides and videos will be uploaded
  • Grading will be based on 5 homework assignments (please see "Homework" section below for submission deadlines)

Learning objectives:

  • Study how to model discrete-event systems
  • Study how to design feedback controllers for discrete-event systems
  • Learn about how to build different control architectures: centralized, decentralized, distributed, hierarchical


  • Prof. Kai Cai (Engineering Building F-610)
  • Email:
  • Office hour: after each lecture or by email appointment (Questions will be answered through WebClass discussion, so post your questions there)

Lecture Schedule:

  • Period: Apr. 2020 -- Aug. 2020
  • Day and Time: Fridays 15:15-16:55
  • Location: Engineering Building B-115 (Remote lectures)

Textbook / Reference:

There is no textbook for this course. An essential reference is the following:

"Supervisory Control of Discrete-Event Systems" by W.M. Wonham and Kai Cai, Springer, 2019. (copies to be lent on request)


This courses uses Matlab + TCT. You need Windows 64bit. To use the software, follow the steps below:

  1. Install Matlab (download the Windows 64bit version here, with university campus license). After you install the software, you also need to make a change according this document.
  2. Download MatlabTCT (with graphviz).
  3. Uncompress the downloaded file and use the folder "MatlabTCT" as the working directory for Matlab.

Test scripts (change file extension .txt to .m before running them in Matlab):

  • create, displaydes, and trim (Test1.txt)
  • complement (Test2.txt)
  • selfloop, meet, sync, and nonconflict (Test3.txt)
  • supervisory control design (Test4.txt)
  • Test script for Supervisor Localization of Transfer Line (Test5.txt)
  • Test script for observable (Test6.txt)
  • Test script for Partial-Observation Supervisory Control Design of Mutual Exclusion (Test7.txt)

Additional information:

Software TCT is available for free online

To plot state-transition graph, you need to download software

Manual of TCT is for download here


There is no prerequisite for this course. An undergraduate control and automata course would be a plus, but not required.


  • Homework 50% (+25% bonus)
  • ~~Final project 50% ~~
    (5 homework assignments, each 20 points)


Homework must be submitted through WebClass by the deadlines; 0 point for late submission unless exceptional reason exists

  • Homework1 (assigned 2020.05.22, due 2020.06.05)
  • Homework2 (assigned 2020.06.05, due 2020.06.19)
  • Homework3 (assigned 2020.06.19, due 2020.07.03)
  • Homework4 (assigned 2020.07.03, due 2020.07.17)
  • Homework5 (assigned 2020.07.17, due 2020.08.07)

Course Outline:

    Dates              Topics
  1. 2020.05.15 Introduction to discrete-event systems; symbols, alphabets, strings (Introduction) (Lecture1)
  2. 2020.05.22 Languages, finite-state automata (Lecture2)
  3. 2020.05.29 Operations on automata (Lecture3)
  4. 2020.06.05 Supervisory control basics (Lecture4)
  5. 2020.06.12 Controllability, main result of supervisory control (Lecture5)
  6. 2020.06.19 Optimal supervisory control (Lecture6)
  7. 2020.06.27 Supervisory control examples, TCT design software (Lecture7)
  8. 2020.07.03 Decentralized supervisory control (Lecture8)
  9. 2020.07.10 Distributed control architecture (Lecture9)
  10. 2020.07.17 Distributed control by supervisor localization (Lecture10)
  11. 2020.07.31 Distributed control examples (Lecture11)
  12. 2020.08.07 Test week
  13. 2020.08.14 Partial observation, natural projection (Lecture12)
  14. 2020.08.21 Observability, partially-observed supervisory control (Lecture13)

Video lectures

Lecture 1

Lecture 2

Lecture 3

Lecture 4

Lecture 5

Lecture 6

Lecture 7

Lecture 8

Lecture 9

Lecture 10

Lecture 11

Lecture 12

Lecture 13

  • For 2019 course see here.
  • For 2018 course see here.
  • For 2017 course see here.
  • For 2016 course see here.
  • For 2015 course see here.