Modelisation et Commande des Systemes a Evenements Discrets - S5

Annee: 2022-2023 (Semestre 5)
Credits: 2 ECTS
Type: Automatique et Systemes
Enseignant: Vignolles


PART A: PRESENTATION GENERALE

Objectifs du cours

Ce cours introduit la modelisation et la commande des systemes a evenements discrets (SED), systemes dont l'evolution est declenchee par des evenements discrets plutot que par le temps continu. Ces systemes sont omnipresents dans l'industrie (lignes de production, systemes de transport), l'informatique (protocoles, workflows) et la robotique. Le cours couvre les automates finis et les reseaux de Petri, outils fondamentaux pour modeliser, analyser et commander ces systemes.

Competences visees

  • Modeliser des systemes industriels avec automates et reseaux de Petri
  • Analyser les proprietes des systemes (vivacite, blocage, atteignabilite)
  • Concevoir des superviseurs pour garantir des specifications
  • Utiliser des logiciels de simulation (AutomDiscrete)
  • Implementer des automates sur automates programmables (grafcet)
  • Detecter et resoudre les problemes de synchronisation et blocages

Organisation

  • Volume horaire: 20h (CM: 10h, TD: 6h, TP: 4h)
  • Evaluation: Examen ecrit (70%) + TPs (30%)
  • Semestre: 5 (2022-2023)
  • Prerequis: Logique, algebre de base, notions d'automatique

PART B: EXPERIENCE, CONTEXTE ET FONCTION

Contenu pedagogique

Le cours s'organise autour de deux formalismes complementaires: les automates et les reseaux de Petri.

1. Systemes a Evenements Discrets

Caracteristiques principales:

Les SED evoluent par sauts discrets declenches par des evenements:

  • Etats discrets: nombre fini ou denombrable d'etats
  • Evenements: actions instantanees causant des transitions
  • Evolution asynchrone: pas de synchronisation globale
  • Non-determinisme: plusieurs transitions possibles depuis un etat
  • Concurrence: plusieurs processus simultanes

Exemples typiques:

  • Systeme de tri de pieces (TP principal)
  • Feux de circulation
  • Distributeur automatique
  • Ligne de production manufacturiere
  • Protocole de communication

Difference avec systemes continus:

CritereSystemes continusSystemes discrets
EtatsContinus (reels)Discrets (entiers)
TempsEvolution continueEvenements instantanes
ModeleEquations differentiellesAutomates, Petri
ExempleRegulation temperatureLigne d'assemblage

2. Automates a Etats Finis

Definition:

Un automate est defini par:

  • E : ensemble d'etats
  • e0 : etat initial
  • Σ : alphabet d'evenements
  • δ : fonction de transition (E × Σ → E)
  • Em : etats marques (acceptants)

Representation graphique:

    [e1] --a--> [e2] --b--> [e3]
     |                       |
     +----------c------------+

Etats = cercles, transitions = fleches etiquetees, etat initial = fleche entrante.

Exemple TD: Distributeur de boissons:

Etats:

  • e0 : attente
  • e1 : 50 centimes inseres
  • e2 : 1 euro insere
  • e3 : boisson servie

Evenements:

  • p50 : insertion 50 centimes
  • p100 : insertion 1 euro
  • serv : servir boisson
  • annul : annulation

Determinisme vs non-determinisme:

Automate deterministe: une seule transition possible pour chaque couple (etat, evenement).
Automate non-deterministe: plusieurs transitions possibles.

Operations sur automates:

Produit synchrone: combine deux automates avec synchronisation sur evenements communs.

Utilise pour modeliser des systemes composes de plusieurs sous-systemes interagissant.

Accessibilite: un etat est accessible s'il existe un chemin depuis l'etat initial.

Co-accessibilite: un etat est co-accessible s'il existe un chemin vers un etat marque.

Trim: automate ne contenant que les etats accessibles et co-accessibles.

3. Reseaux de Petri

Structure de base:

Un reseau de Petri comprend:

  • Places (cercles): contiennent des jetons
  • Transitions (rectangles): evenements
  • Arcs orientes: places → transitions ou transitions → places
  • Marquage M: nombre de jetons dans chaque place

Regle de tir:

Une transition est franchissable si toutes les places d'entree contiennent au moins un jeton.

Apres franchissement:

  • Retirer un jeton de chaque place d'entree
  • Ajouter un jeton a chaque place de sortie

Exemple: Producteur-Consommateur:

    (Buffer vide) --produire--> (Buffer plein) --consommer--> (Buffer vide)

Places: Buffer vide (1 jeton initial), Buffer plein (0 jeton)
Transitions: produire, consommer

Proprietes importantes:

Bornage: nombre maximal de jetons dans une place.

  • Reseau borne: toutes les places ont un nombre limite de jetons
  • Reseau sauf (safe): maximum 1 jeton par place

Vivacite: une transition est vivante si elle peut toujours etre franchie dans le futur (pas de blocage definitif).

Reinitialisabilite: possibilite de revenir au marquage initial.

Blocage (deadlock): marquage ou aucune transition n'est franchissable.

Analyse par graphe de marquages:

Graphe representant tous les marquages atteignables et les transitions entre eux.

Permet de:

  • Detecter les blocages
  • Verifier le bornage
  • Analyser la vivacite
  • Calculer les etats accessibles

4. Modelisation de Systemes Industriels

Systeme de tri de pieces (TP):

Composants:

  • Tapis d'entree (T_ON) et de sortie (C_ON)
  • Capteurs: entree tapis, detection metal, detection autre
  • Bacs de sortie: metal (B1), autre (B2), rebut (B)
  • Verins pour diriger les pieces

Etats du systeme:

  • Etat 0: attente (tapis arretes)
  • Etat 1: demarrage (tapis en marche)
  • Etat 2: piece detectee (temporisation)
  • Etat 3: identification piece
  • Etats 4,5,6: tri selon categorie

Logique de commande (automate programmable):

IF (STATE_TRI = 0) THEN
    T_ON := 0;  // Tapis arrete
    C_ON := 0;
    IF ((P_g1=1) AND (P_g2=1) AND (P_g3=1)) THEN
        STATE_TRI := 1;  // Tous les bacs vides, demarrer
    END_IF;
END_IF;

IF (STATE_TRI = 1) THEN
    T_ON := 1;  // Demarrer tapis
    C_ON := 1;
    IF (Pp_entreeTapis = 1) THEN
        STATE_TRI := 2;  // Piece detectee
    END_IF;
END_IF;

IF (STATE_TRI = 3) THEN
    IF ((p_autre=1) AND (p_metal=1)) THEN
        STATE_TRI := 5;  // Piece metallique
    ELSIF (p_autre=1) THEN
        STATE_TRI := 6;  // Autre piece
    ELSE
        STATE_TRI := 4;  // Rebut
    END_IF;
END_IF;

Temporisations:

Les timers permettent d'attendre la stabilisation des capteurs:

  • Timer1, Timer2, Timer3: temporisations de 2s ou 1s
  • Evitent les fausses detections

5. Grafcet et Automates Programmables

Grafcet (Graphe Fonctionnel de Commande Etape-Transition):

Representation graphique pour automatismes industriels:

  • Etapes (carres numerotes): etats du systeme
  • Transitions (traits horizontaux): conditions de passage
  • Actions associees aux etapes
  • Liaisons orientees

Regles d'evolution:

  1. Etape initiale active au demarrage
  2. Transition franchie si etape amont active ET condition vraie
  3. Activation etape aval et desactivation etape amont

Conversion Grafcet → Automate programmable:

Le grafcet se traduit directement en code pour API (Automate Programmable Industriel) en langage structure ou ladder.

6. Synthese de Superviseurs

Principe:

Concevoir un controleur (superviseur) qui restreint le comportement du systeme pour respecter des specifications.

Specifications typiques:

  • Eviter les blocages
  • Garantir la securite (etats interdits)
  • Maximiser la productivite
  • Respecter des sequences obligatoires

Evenements controlables vs non-controlables:

Controlables: le superviseur peut empecher leur occurrence (ex: demarrer machine).
Non-controlables: arrivent spontanement (ex: piece arrivee, panne).

Methode:

  1. Modeliser le systeme (automate ou Petri)
  2. Definir les specifications (etats ou comportements interdits)
  3. Calculer le superviseur (restreindre les transitions)
  4. Verifier les proprietes (non-blocage, controlabilite)

PART C: ASPECTS TECHNIQUES

Travaux Pratiques

TP1: Systeme de tri automatique

Objectif: modeliser et simuler un systeme de tri de pieces sur tapis avec le logiciel AutomDiscrete.

Cahier des charges:

  • Tri de 3 categories: metal, autre, rebut
  • 3 bacs de sortie avec capteurs de niveau
  • Capteurs de detection: metal, autre matiere
  • Temporisations pour stabilisation
  • Arret automatique si bacs pleins

Modelisation par automate:

Etats du systeme: 7 etats (0 a 6)

  • 0: Repos
  • 1: Tapis en marche
  • 2: Temporisation apres detection
  • 3: Identification de la piece
  • 4: Tri rebut
  • 5: Tri metal
  • 6: Tri autre

Evenements:

  • Bacs vides (P_g1, P_g2, P_g3)
  • Piece entree tapis
  • Fin temporisation
  • Detection metal, autre
  • Bacs pleins

Implementation logiciel AutomDiscrete:

Outil graphique permettant:

  • Dessiner l'automate (etats, transitions)
  • Definir les evenements et actions
  • Simuler l'evolution du systeme
  • Exporter en code automate programmable

Code genere (extrait):

Variables:

  • STATE_TRI: etat courant
  • T_ON, C_ON: commandes tapis
  • B_OFF, B1_ON, B2_ON: commandes verins
  • P1-P6: etats internes
  • Timers pour temporisations

Tests et validation:

  • Scenario nominal: tri correct selon categorie
  • Cas limites: bacs pleins, pieces successives rapides
  • Gestion erreurs: capteurs defaillants

Travaux Diriges

TD1: Automates de base

Exercices:

  • Modeliser un distributeur de boissons
  • Calculer le produit synchrone de deux automates
  • Determiner les etats accessibles et co-accessibles
  • Minimiser un automate

TD2: Reseaux de Petri

Exercices:

  • Modeliser un systeme producteur-consommateur
  • Calculer le graphe de marquages
  • Analyser la vivacite et le bornage
  • Detecter les blocages potentiels

TD: Systeme manufacturier

Modelisation d'une cellule flexible avec:

  • Machines en parallele
  • Buffers limites
  • Ressources partagees (robot)
  • Analyse des deadlocks

Outils Logiciels

AutomDiscrete:

  • Editeur graphique d'automates
  • Simulation pas a pas
  • Export en grafcet et code API
  • Version utilisee: v4.0

Autres outils:

  • PIPE: editeur de reseaux de Petri
  • TINA: analyse de Petri temporises
  • Supremica: synthese de superviseurs
  • Stateflow (Simulink): automates dans MATLAB

Methodologie de Conception

Etapes pour modeliser un systeme:

  1. Identifier les etats: situations distinctes du systeme
  2. Lister les evenements: actions declenchant changements
  3. Definir les transitions: conditions de passage entre etats
  4. Specifier les actions: sorties associees aux etats ou transitions
  5. Valider: simulation et verification proprietes

Choix entre automates et Petri:

Utiliser automates si:

  • Systeme avec etats bien definis
  • Sequences d'evenements lineaires
  • Peu de concurrence

Utiliser reseaux de Petri si:

  • Forte concurrence entre processus
  • Ressources partagees
  • Synchronisations complexes
  • Systemes distribues

PART D: ANALYSE ET REFLEXION

Competences acquises

Modelisation:

  • Capacite a abstraire un systeme reel en modele formel
  • Choix du formalisme adapte (automate vs Petri)
  • Representation graphique claire et structuree

Analyse:

  • Detection de blocages et situations dangereuses
  • Verification de proprietes (vivacite, bornage)
  • Evaluation de performances (temps de cycle)

Conception:

  • Synthese de lois de commande garantissant specifications
  • Implementation sur automates programmables
  • Tests et validation de systemes automatises

Applications pratiques

Les SED sont omnipresents dans l'industrie et l'informatique:

Industrie manufacturiere:

  • Lignes d'assemblage automobile
  • Systemes de tri postal
  • Chaines de conditionnement alimentaire
  • Ateliers flexibles

Transport et logistique:

  • Controle de feux de circulation
  • Gestion de flottes de vehicules
  • Systemes de metro automatique
  • Entrepots automatises

Informatique:

  • Protocoles reseau (TCP/IP)
  • Workflows d'entreprise
  • Systemes d'exploitation (ordonnancement)
  • Applications reactives

Robotique:

  • Coordination multi-robots
  • Taches sequentielles complexes
  • Interaction avec environnement

Liens avec autres cours

CoursSemestreLien avec SED
Logique SequentielleS5Machines d'etats, FSM
Systemes BouclesS5Automatique, commande
Programmation Orientee ObjetS7Patterns etat (State pattern)
Temps ReelS8Ordonnancement, synchronisation
Reseaux de PetriS8Approfondissement Petri

Perspectives et extensions

Systemes hybrides:
Combinaison de dynamique continue (equations differentielles) et evenements discrets.
Exemple: thermostat (temperature continue, chauffage on/off).

Diagnostic et supervision:
Utilisation d'automates observateurs pour detecter pannes et anomalies.

Optimisation:
Minimisation temps de cycle, maximisation throughput avec Petri temporises.

Verification formelle:
Model checking pour prouver l'absence de bugs dans protocoles et systemes critiques.

Recommandations

Pour reussir le cours:

  1. Bien comprendre la difference etats/evenements
  2. Pratiquer la modelisation graphique (dessiner les automates)
  3. Tester systematiquement avec simulation
  4. Analyser les cas limites (bacs pleins, erreurs capteurs)

Ressources complementaires:

  • Cassandras & Lafortune: "Introduction to Discrete Event Systems"
  • David & Alla: "Reseaux de Petri et Grafcet"
  • Cours en ligne sur automates finis (theorie des langages)

Mon opinion

Ce cours offre une perspective differente de l'automatique classique (systemes continus). Il est particulierement utile pour comprendre les systemes industriels reels ou la notion d'evenements discrets est naturelle.

Points forts:

  • Approche graphique intuitive (automates, Petri)
  • Applications concretes immediates (industrie)
  • Outils logiciels facilitant la modelisation
  • Lien direct avec automates programmables

Complementarite:
Les SED completent parfaitement les cours de systemes continus. Dans la realite, beaucoup de systemes sont hybrides (ex: robot avec controle position continue + sequences de taches discretes).

Importance professionnelle:
Competences tres recherchees dans l'automatisation industrielle, la robotique, et les systemes embarques. Les grafcets sont le langage standard des automaticiens.

Applications futures:
Ces concepts se retrouvent dans les cours de S8 (Temps Reel, Reseaux de Petri avances) et dans les projets industriels (automatisation, supervision).


Bilan personnel: Ce cours a apporte une vision complementaire de l'automatique, centree sur les evenements plutot que le temps. La modelisation par automates et reseaux de Petri est intuitive et directement applicable aux systemes industriels. Le TP sur le systeme de tri a permis de concretiser ces concepts avec un cas reel d'automatisation.

Modeling and Control of Discrete Event Systems - S5

Year: 2022-2023 (Semester 5)
Credits: 2 ECTS
Type: Control Systems and Automation
Instructor: Vignolles


PART A: GENERAL OVERVIEW

Course Objectives

This course introduces the modeling and control of Discrete Event Systems (DES), systems whose evolution is triggered by discrete events rather than continuous time. These systems are ubiquitous in industry (production lines, transportation systems), computer science (protocols, workflows), and robotics. The course covers finite automata and Petri nets, which are fundamental tools for modeling, analyzing, and controlling these systems.

Targeted Skills

  • Model industrial systems using automata and Petri nets
  • Analyze system properties (liveness, deadlock, reachability)
  • Design supervisors to guarantee specifications
  • Use simulation software (AutomDiscrete)
  • Implement automata on programmable logic controllers (Grafcet)
  • Detect and resolve synchronization problems and deadlocks

Organization

  • Course hours: 20h (Lectures: 10h, Tutorials: 6h, Labs: 4h)
  • Assessment: Written exam (70%) + Labs (30%)
  • Semester: 5 (2022-2023)
  • Prerequisites: Logic, basic algebra, fundamentals of control theory

PART B: EXPERIENCE, CONTEXT AND FUNCTION

Course Content

The course is organized around two complementary formalisms: automata and Petri nets.

1. Discrete Event Systems

Key characteristics:

DES evolve through discrete jumps triggered by events:

  • Discrete states: finite or countable number of states
  • Events: instantaneous actions causing transitions
  • Asynchronous evolution: no global synchronization
  • Non-determinism: multiple possible transitions from a state
  • Concurrency: multiple simultaneous processes

Typical examples:

  • Part sorting system (main lab project)
  • Traffic lights
  • Vending machine
  • Manufacturing production line
  • Communication protocol

Comparison with continuous systems:

CriterionContinuous systemsDiscrete systems
StatesContinuous (real-valued)Discrete (integer-valued)
TimeContinuous evolutionInstantaneous events
ModelDifferential equationsAutomata, Petri nets
ExampleTemperature regulationAssembly line

2. Finite State Automata

Definition:

An automaton is defined by:

  • E: set of states
  • e0: initial state
  • Σ: event alphabet
  • δ: transition function (E × Σ → E)
  • Em: marked (accepting) states

Graphical representation:

    [e1] --a--> [e2] --b--> [e3]
     |                       |
     +----------c------------+

States = circles, transitions = labeled arrows, initial state = incoming arrow.

Tutorial example: Vending machine:

States:

  • e0: idle
  • e1: 50 cents inserted
  • e2: 1 euro inserted
  • e3: drink served

Events:

  • p50: insert 50 cents
  • p100: insert 1 euro
  • serv: serve drink
  • annul: cancel

Determinism vs non-determinism:

Deterministic automaton: only one possible transition for each (state, event) pair.
Non-deterministic automaton: multiple possible transitions.

Operations on automata:

Synchronous product: combines two automata with synchronization on shared events.

Used to model systems composed of multiple interacting subsystems.

Accessibility: a state is accessible if there exists a path from the initial state.

Co-accessibility: a state is co-accessible if there exists a path to a marked state.

Trim: automaton containing only accessible and co-accessible states.

3. Petri Nets

Basic structure:

A Petri net consists of:

  • Places (circles): contain tokens
  • Transitions (rectangles): events
  • Directed arcs: places → transitions or transitions → places
  • Marking M: number of tokens in each place

Firing rule:

A transition is fireable if all input places contain at least one token.

After firing:

  • Remove one token from each input place
  • Add one token to each output place

Example: Producer-Consumer:

    (Buffer empty) --produce--> (Buffer full) --consume--> (Buffer empty)

Places: Buffer empty (1 initial token), Buffer full (0 tokens)
Transitions: produce, consume

Important properties:

Boundedness: maximum number of tokens in a place.

  • Bounded net: all places have a limited number of tokens
  • Safe net: maximum 1 token per place

Liveness: a transition is live if it can always be fired in the future (no permanent deadlock).

Reversibility: ability to return to the initial marking.

Deadlock: a marking where no transition is fireable.

Reachability graph analysis:

A graph representing all reachable markings and the transitions between them.

Allows to:

  • Detect deadlocks
  • Verify boundedness
  • Analyze liveness
  • Compute reachable states

4. Modeling Industrial Systems

Part sorting system (Lab):

Components:

  • Input conveyor (T_ON) and output conveyor (C_ON)
  • Sensors: conveyor entry, metal detection, other detection
  • Output bins: metal (B1), other (B2), reject (B)
  • Actuators to direct the parts

System states:

  • State 0: idle (conveyors stopped)
  • State 1: startup (conveyors running)
  • State 2: part detected (timer delay)
  • State 3: part identification
  • States 4,5,6: sorting by category

Control logic (programmable logic controller):

IF (STATE_TRI = 0) THEN
    T_ON := 0;  // Conveyor stopped
    C_ON := 0;
    IF ((P_g1=1) AND (P_g2=1) AND (P_g3=1)) THEN
        STATE_TRI := 1;  // All bins empty, start
    END_IF;
END_IF;

IF (STATE_TRI = 1) THEN
    T_ON := 1;  // Start conveyor
    C_ON := 1;
    IF (Pp_entreeTapis = 1) THEN
        STATE_TRI := 2;  // Part detected
    END_IF;
END_IF;

IF (STATE_TRI = 3) THEN
    IF ((p_autre=1) AND (p_metal=1)) THEN
        STATE_TRI := 5;  // Metal part
    ELSIF (p_autre=1) THEN
        STATE_TRI := 6;  // Other part
    ELSE
        STATE_TRI := 4;  // Reject
    END_IF;
END_IF;

Timers:

Timers allow waiting for sensor stabilization:

  • Timer1, Timer2, Timer3: delays of 2s or 1s
  • Prevent false detections

5. Grafcet and Programmable Logic Controllers

Grafcet (Sequential Function Chart):

Graphical representation for industrial automation:

  • Steps (numbered squares): system states
  • Transitions (horizontal bars): passage conditions
  • Actions associated with steps
  • Directed links

Evolution rules:

  1. Initial step is active at startup
  2. Transition fires if upstream step is active AND condition is true
  3. Downstream step activation and upstream step deactivation

Grafcet → PLC conversion:

The Grafcet translates directly into code for PLCs (Programmable Logic Controllers) in structured text or ladder language.

6. Supervisor Synthesis

Principle:

Design a controller (supervisor) that restricts the system behavior to meet specifications.

Typical specifications:

  • Avoid deadlocks
  • Guarantee safety (forbidden states)
  • Maximize productivity
  • Enforce mandatory sequences

Controllable vs uncontrollable events:

Controllable: the supervisor can prevent their occurrence (e.g., start machine).
Uncontrollable: occur spontaneously (e.g., part arrival, failure).

Method:

  1. Model the system (automaton or Petri net)
  2. Define specifications (forbidden states or behaviors)
  3. Compute the supervisor (restrict transitions)
  4. Verify properties (non-blocking, controllability)

PART C: TECHNICAL ASPECTS

Lab Work

Lab 1: Automatic sorting system

Objective: model and simulate a part sorting system on a conveyor belt using the AutomDiscrete software.

Specifications:

  • Sorting into 3 categories: metal, other, reject
  • 3 output bins with level sensors
  • Detection sensors: metal, other material
  • Timer delays for stabilization
  • Automatic stop if bins are full

Automaton-based modeling:

System states: 7 states (0 to 6)

  • 0: Idle
  • 1: Conveyor running
  • 2: Timer delay after detection
  • 3: Part identification
  • 4: Reject sorting
  • 5: Metal sorting
  • 6: Other sorting

Events:

  • Bins empty (P_g1, P_g2, P_g3)
  • Part entered conveyor
  • Timer expired
  • Metal detected, other detected
  • Bins full

AutomDiscrete software implementation:

Graphical tool allowing:

  • Drawing the automaton (states, transitions)
  • Defining events and actions
  • Simulating system evolution
  • Exporting to PLC code

Generated code (excerpt):

Variables:

  • STATE_TRI: current state
  • T_ON, C_ON: conveyor commands
  • B_OFF, B1_ON, B2_ON: actuator commands
  • P1-P6: internal states
  • Timers for delays

Testing and validation:

  • Nominal scenario: correct sorting by category
  • Edge cases: bins full, rapid successive parts
  • Error handling: faulty sensors

Tutorials

Tutorial 1: Basic automata

Exercises:

  • Model a vending machine
  • Compute the synchronous product of two automata
  • Determine accessible and co-accessible states
  • Minimize an automaton

Tutorial 2: Petri Nets

Exercises:

  • Model a producer-consumer system
  • Compute the reachability graph
  • Analyze liveness and boundedness
  • Detect potential deadlocks

Tutorial: Manufacturing system

Modeling a flexible manufacturing cell with:

  • Parallel machines
  • Limited buffers
  • Shared resources (robot)
  • Deadlock analysis

Software Tools

AutomDiscrete:

  • Graphical automaton editor
  • Step-by-step simulation
  • Export to Grafcet and PLC code
  • Version used: v4.0

Other tools:

  • PIPE: Petri net editor
  • TINA: timed Petri net analysis
  • Supremica: supervisor synthesis
  • Stateflow (Simulink): automata in MATLAB

Design Methodology

Steps to model a system:

  1. Identify states: distinct situations of the system
  2. List events: actions triggering changes
  3. Define transitions: conditions for passing between states
  4. Specify actions: outputs associated with states or transitions
  5. Validate: simulation and property verification

Choosing between automata and Petri nets:

Use automata if:

  • System with well-defined states
  • Linear event sequences
  • Little concurrency

Use Petri nets if:

  • High concurrency between processes
  • Shared resources
  • Complex synchronizations
  • Distributed systems

PART D: ANALYSIS AND REFLECTION

Acquired Skills

Modeling:

  • Ability to abstract a real system into a formal model
  • Choosing the appropriate formalism (automaton vs Petri net)
  • Clear and structured graphical representation

Analysis:

  • Detection of deadlocks and hazardous situations
  • Verification of properties (liveness, boundedness)
  • Performance evaluation (cycle time)

Design:

  • Synthesis of control laws guaranteeing specifications
  • Implementation on programmable logic controllers
  • Testing and validation of automated systems

Practical Applications

DES are ubiquitous in industry and computer science:

Manufacturing industry:

  • Automotive assembly lines
  • Postal sorting systems
  • Food packaging lines
  • Flexible manufacturing cells

Transportation and logistics:

  • Traffic light control
  • Vehicle fleet management
  • Automated metro systems
  • Automated warehouses

Computer science:

  • Network protocols (TCP/IP)
  • Enterprise workflows
  • Operating systems (scheduling)
  • Reactive applications

Robotics:

  • Multi-robot coordination
  • Complex sequential tasks
  • Environment interaction

Links with Other Courses

CourseSemesterLink with DES
Sequential LogicS5State machines, FSM
Feedback SystemsS5Control theory, command
Object-Oriented ProgrammingS7State pattern
Real-Time SystemsS8Scheduling, synchronization
Petri NetsS8Advanced Petri nets

Perspectives and Extensions

Hybrid systems:
Combination of continuous dynamics (differential equations) and discrete events.
Example: thermostat (continuous temperature, heating on/off).

Diagnosis and supervision:
Use of observer automata to detect faults and anomalies.

Optimization:
Cycle time minimization, throughput maximization with timed Petri nets.

Formal verification:
Model checking to prove the absence of bugs in protocols and safety-critical systems.

Recommendations

To succeed in this course:

  1. Thoroughly understand the difference between states and events
  2. Practice graphical modeling (draw the automata)
  3. Systematically test with simulation
  4. Analyze edge cases (bins full, sensor errors)

Additional resources:

  • Cassandras & Lafortune: "Introduction to Discrete Event Systems"
  • David & Alla: "Petri Nets and Grafcet"
  • Online courses on finite automata (formal language theory)

My Opinion

This course offers a different perspective from classical control theory (continuous systems). It is particularly useful for understanding real industrial systems where the notion of discrete events is natural.

Strengths:

  • Intuitive graphical approach (automata, Petri nets)
  • Immediate practical applications (industry)
  • Software tools facilitating modeling
  • Direct link to programmable logic controllers

Complementarity:
DES perfectly complement continuous systems courses. In reality, many systems are hybrid (e.g., a robot with continuous position control + discrete task sequences).

Professional importance:
These skills are highly sought after in industrial automation, robotics, and embedded systems. Grafcets are the standard language of automation engineers.

Future applications:
These concepts are revisited in S8 courses (Real-Time Systems, Advanced Petri Nets) and in industrial projects (automation, supervision).


Personal assessment: This course provided a complementary view of control theory, centered on events rather than time. Modeling with automata and Petri nets is intuitive and directly applicable to industrial systems. The lab on the sorting system allowed me to apply these concepts to a real automation case.

Redige par Cedric Chanfreau Written by Cedric Chanfreau