Adloun

Systèmes séquentiels et commande numérique

Cours · sciences industrielles (PSI), chapitre 7 · CPGE PSI (2e année) · le début du chapitre, la suite sur Adloun

Travailler ce chapitre sur Adloun

Une partie commande a deux métiers. Elle enchaîne des opérations : ouvrir une porte, indexer une table, pousser un colis ; c'est le domaine des systèmes séquentiels, décrits par des diagrammes d'états. Elle asservit des grandeurs : un niveau, une température, une position ; c'est le domaine des systèmes asservis, dont le correcteur est aujourd'hui un programme. Les deux métiers sont exécutés par un calculateur qui ne voit le procédé qu'à des instants séparés et ne connaît que des nombres entiers : la scrutation d'un automate est un échantillonnage, la mesure d'un codeur est quantifiée, la commande d'un correcteur est bloquée entre deux calculs. Ce chapitre décrit d'abord le séquentiel, puis le calculateur qui l'exécute, puis ce que l'échantillonnage et la quantification coûtent à une boucle d'asservissement.

7.1 Diagramme d'états et chronogramme

Le diagramme d'états est la description graphique du comportement séquentiel employée en ingénierie système (langage SysML). Il permet de s'affranchir d'un langage de programmation particulier : le même diagramme se programme sur un automate, un microcontrôleur ou un variateur. La syntaxe SysML n'est pas exigible : la structure d'un diagramme est toujours fournie, à lire, à compléter ou à modifier.

Définition 7.1État, transition, événement, garde, action, activité
  • Un état est une situation stable du système, pendant laquelle il fait quelque chose ou attend quelque chose ; il est représenté par un rectangle à coins arrondis. À chaque instant, un état et un seul est actif (dans chaque région, voir plus loin). Le pseudo-état initial (disque plein) désigne l'état actif au démarrage ; l'état final (disque cerclé) marque la fin du comportement décrit.
  • Une transition est une flèche d'un état source vers un état cible ; elle porte l'étiquette événement [garde] / action, dont chaque partie peut manquer.
  • Un événement est un fait instantané qui peut déclencher une transition : un signal nommé (obstacle, dcy) ; when(c), qui survient quand la condition devient vraie ; after(d), qui survient quand l'état source est actif depuis la durée .
  • Une garde (ou condition de garde) est une condition logique, écrite entre crochets, évaluée quand l'événement survient : la transition n'est franchie que si elle est vraie.
  • Une action est une opération instantanée : exécutée au franchissement d'une transition (après la barre oblique), à l'entrée dans un état (entry/) ou à sa sortie (exit/).
  • Une activité (do/) est une opération qui dure tant que l'état est actif : faire tourner un moteur, ouvrir une vanne.

Méthode : Lire un diagramme d'états : les règles d'évolution

  • On suit l'état actif. Une transition est franchie quand son événement survient alors que son état source est actif et que sa garde est vraie.
  • Au franchissement : l'action exit/ de l'état source, l'action de la transition, l'action entry/ de l'état cible, puis l'activité do/ de l'état cible commence.
  • Un événement qui survient sans qu'aucune transition issue de l'état actif ne l'attende est perdu : il n'est pas mémorisé.
  • L'événement after(d) se compte depuis la dernière entrée dans l'état source : sortir de l'état puis y revenir le réarme.
  • Une transition sans événement est une transition de complétion : elle est franchie dès que l'activité de l'état source est achevée (ou, pour un état composite, dès que ses régions ont atteint leur état final), si sa garde est vraie.
Exemple 7.2Cycle d'une presse

Une presse attend l'ordre de départ dcy ; si le carter de protection est fermé, elle descend jusqu'au capteur bas, maintient la pression deux secondes, puis remonte jusqu'au capteur haut.

Si l'opérateur appuie sur dcy carter ouvert, la garde est fausse : l'événement est perdu, et il faudra appuyer de nouveau une fois le carter fermé. C'est voulu : un ordre ne doit pas rester en mémoire et déclencher la presse plus tard, par surprise.

Définition 7.3Chronogramme

Le chronogramme représente, en fonction du temps et sur une même échelle, l'état actif et les variables du système (entrées, sorties, variables internes). C'est la représentation de l'évolution temporelle d'un diagramme d'états, et c'est sur lui que l'on vérifie les exigences temporelles d'un cahier des charges (durée d'un cycle, temps de réponse, cadence).

Le chronogramme de la presse (descente et remontée de ) se lit colonne par colonne : dcy fait passer de « Repos » à « Descente », l'activité descendre dure jusqu'à ce que bas devienne vrai, le maintien dure exactement deux secondes, et le cycle complet .

Attention

Une garde n'est pas un événement. Une transition étiquetée seulement [c] n'est pas déclenchée par le passage de à vrai : c'est when(c) qui l'est. Écrire une garde là où il faut attendre une condition est l'erreur la plus fréquente ; elle fait perdre l'événement, ou franchir la transition sur une valeur lue à un mauvais instant.

7.2 États composites, régions parallèles et modes de marche

Un diagramme d'états plat devient illisible dès que le système a plusieurs postes ou plusieurs modes. Trois structures suffisent à couvrir le reste.

Définition 7.4Choix, état composite, régions parallèles
  • Un choix : plusieurs transitions issues d'un même état (ou d'un pseudo-état de choix, un losange), distinguées par leurs gardes. Les gardes d'un choix doivent être exclusives (jamais deux vraies ensemble, sans quoi le comportement dépend de l'ordre d'évaluation) et complètes (toujours une vraie, sans quoi le système peut rester bloqué).
  • Un état composite contient un diagramme d'états, ses sous-états. Une transition qui part de la frontière du composite le quitte quel que soit le sous-état actif ; une transition de complétion le quitte quand son sous-état final est atteint.
  • Un état composite peut être découpé en régions parallèles (ou orthogonales), séparées par des pointillés : chaque région a son propre état actif, et toutes évoluent en même temps. La transition de complétion du composite attend que toutes les régions aient atteint leur état final : c'est un rendez-vous.
Proposition 7.5Durée d'un état composite à régions parallèles

Si chaque région dure entre l'entrée dans le composite et son état final, la transition de complétion est franchie au bout de : le parallélisme remplace une somme de durées par un maximum, et la région la plus lente fixe la cadence.

Les modes de marche.

Un équipement industriel ne se contente pas de produire : il démarre, s'arrête proprement en fin de cycle, se met en sécurité sur un arrêt d'urgence, se laisse régler. On décrit ces modes par des états composites : « Arrêt », « Production », « Défaillance ». L'arrêt d'urgence part de la frontière de « Production » : il la quitte quel que soit l'état du cycle de production, sans qu'il faille l'écrire depuis chacun de ses sous-états.

iRemarqueRessource partagée

Deux machines qui partagent une zone (un convoyeur, une zone de transfert) se coordonnent par une variable commune « zone libre », testée en garde et modifiée en action. Si les deux diagrammes sont évalués sur la même image des variables, deux demandes simultanées voient toutes deux la zone libre : il faut une priorité, écrite dans les gardes.

7.3 Programmer un diagramme d'états : la scrutation

Un automate programmable exécute son programme dans une boucle sans fin, de période le temps de cycle (quelques millisecondes à quelques dizaines de millisecondes).

Définition 7.6Cycle de scrutation

À chaque cycle, l'automate :

  • lit toutes ses entrées et les range dans une image des entrées ;
  • calcule, à partir de cette image seule, les transitions franchies et les nouvelles valeurs des sorties ;
  • écrit toutes ses sorties.
Proposition 7.7Conséquences de la scrutation
  • Toutes les gardes d'un cycle voient les mêmes valeurs : le calcul est cohérent, et un diagramme d'états codé correctement franchit une transition au plus par cycle.
  • Le temps de réponse entre le changement d'une entrée et le changement de la sortie correspondante est compris entre et .
  • Une entrée qui ne reste dans un état que moins de peut n'être jamais lue : la scrutation est un échantillonnage de période . Pour qu'aucune impulsion d'un signal carré de fréquence ne soit perdue, chaque niveau doit durer au moins un cycle : . Au-delà, on compte en matériel (entrée de comptage rapide) et l'automate lit le compteur.
Coder un diagramme d'états.

On représente l'état actif par une variable, et l'on calcule l'état suivant par une structure conditionnelle portant sur l'état courant. Un front montant de l'entrée se détecte en comparant la lecture du cycle à celle du cycle précédent : p and not p_prec. Pour la presse : {


etat, dcy_prec = "REPOS", False
while True:
    dcy, carter, bas, haut = lire_entrees()      # image des entrees
    front = dcy and not dcy_prec
    if etat == "REPOS" and front and carter:
        suivant = "DESCENTE"
    elif etat == "DESCENTE" and bas:
        suivant = "MAINTIEN" ; t0 = horloge()
    elif etat == "MAINTIEN" and horloge() - t0 >= 2.0:
        suivant = "REMONTEE"
    elif etat == "REMONTEE" and haut:
        suivant = "REPOS"
    else:
        suivant = etat
    etat, dcy_prec = suivant, dcy
    ecrire_sorties(descendre = (etat == "DESCENTE"),
                   monter = (etat == "REMONTEE"))

La structure if … elif porte sur l'état courant : une seule branche est exécutée, donc une seule transition par cycle. Des if indépendants laisseraient la presse franchir deux transitions dans le même cycle si deux conditions étaient vraies ensemble.

7.4 Signaux à temps discret : échantillonnage et quantification

Définition 7.8Échantillonnage, quantification
  • Échantillonner un signal à la période (fréquence ), c'est n'en garder que les valeurs , .
  • Quantifier, c'est représenter chaque valeur par un nombre entier de pas , le quantum (ou résolution). Un convertisseur analogique-numérique de bits sur une pleine échelle a pour quantum ; un codeur incrémental de incréments par tour a pour résolution de tour. L'erreur de quantification vaut au plus un quantum (un demi si l'on arrondit).
Proposition 7.9Repliement et condition d'échantillonnage

Une composante sinusoïdale de fréquence échantillonnée à donne les mêmes échantillons qu'une composante de fréquence , pour tout entier . Si le signal contient des fréquences supérieures à , elles se replient dans la bande , où plus rien ne les distingue du signal utile. D'où la condition d'échantillonnage (de Shannon) : , et un filtre anti-repliement analogique, placé avant l'échantillonneur, pour atténuer ce qui dépasse .

Exemple 7.10Repliement d'un parasite

Un signal utile jusqu'à , pollué par un parasite à , est échantillonné à . Le parasite apparaît à , en pleine bande utile ; aucun filtrage numérique ne peut plus l'en séparer. Le filtre anti-repliement doit l'atténuer avant l'échantillonnage, sans trop atténuer : son choix se chiffre (voir les exercices résolus).

Mesurer une vitesse par comptage.

Un codeur de incréments par tour lu toutes les donne la vitesse par la différence de deux comptages (dérivation numérique par le schéma arrière) : . Son quantum, tour par seconde, est grossier : la dérivation dégrade la résolution. La différence sur périodes, , est la moyenne glissante des dernières différences : elle divise le quantum par et retarde la mesure d'environ .

Définition 7.11Filtre numérique passe-bas du premier ordre

Le filtre , discrétisé par le schéma arrière (), devient

Comme la moyenne glissante, il lisse au prix d'un retard (de l'ordre de ).

7.5 Commande numérique : bloqueur, retard et limites du modèle continu

Définition 7.12Bloqueur d'ordre zéro

Le bloqueur d'ordre zéro maintient la commande calculée à l'instant constante jusqu'à l'instant suivant : pour . Entre deux instants d'échantillonnage, la commande est aveugle et figée.

Les équations aux différences des correcteurs.

Elles sont établies avec les correcteurs continus, en remplaçant la dérivée par le schéma arrière ; on les rappelle, pour une période et l'écart :

Le gain statique se lit au point fixe (, ) : pour l'avance de phase ; pour le proportionnel intégral, le point fixe impose , c'est l'écart statique nul.

Proposition 7.13Récurrence exacte d'un procédé commandé par un signal bloqué

Quand la commande est constante sur chaque période, l'évolution sur une période s'intègre exactement, sans approximation :

  • intégrateur : ;
  • premier ordre (réponse à un échelon partant de ) : , avec ; un retard pur de périodes remplace par .
Important

Le signal bloqué suit le signal continu avec un retard qui croît de à sur chaque période : un retard moyen de . Pour la phase, le bloqueur équivaut à un retard pur , de gain et de phase : il ne déplace pas la pulsation de coupure et retranche (en radians) à la marge de phase. Un correcteur réglé en continu puis programmé perd cette marge : c'est la première chose à vérifier.

iRemarqueRetard de calcul

Sur un automate, la commande calculée à partir de la mesure de l'instant n'est souvent écrite qu'au cycle suivant. Au retard moyen du bloqueur s'ajoute alors une période entière : le retard total vaut , et la perte de marge est triplée, .

Les limites du modèle continu.

Quand augmente, le modèle continu (même corrigé du retard ) cesse de dire vrai. Sur une cuve de section réglée par un correcteur proportionnel ( en continu), la récurrence exacte donne : la boucle oscille dès que et devient instable pour , alors que le modèle continu est stable à tout gain, et que le modèle du retard ne prévoit l'instabilité que pour . Le modèle du retard n'est fiable que pour petit (de l'ordre de , soit une perte de ) ; au-delà, on vérifie sur la récurrence exacte, par simulation.

iRemarqueChoix de la période d'échantillonnage

La condition de Shannon est un minimum, très loin de suffire en asservissement. Une règle d'usage fixe entre et fois la bande passante de la boucle fermée ; elle se vérifie par la perte de marge : pour une boucle de bande passante et , elle vaut à dix fois et à vingt-cinq fois, sans retard de calcul. « Négligeable » n'est vrai qu'à l'extrémité haute de la fourchette, et pas avec un retard de calcul.

La quantification de la commande.

Une commande qui ne prend que des valeurs entières de pas (trains d'ondes, convertisseur numérique-analogique) ne peut pas, en général, produire exactement la valeur d'équilibre. Avec un correcteur intégral, l'écart s'accumule jusqu'à faire changer la commande d'un pas, puis dans l'autre sens : la grandeur réglée oscille en cycle limite, d'amplitude d'autant plus faible que le pas est fin. Le modèle linéaire ne le prévoit pas.

Attention

Les transformées en ne sont pas au programme. La commande numérique s'y traite par les équations de récurrence, le modèle du retard et la simulation ; les fonctions de transfert discrètes, le prédicteur de Smith ou la synthèse polynomiale (régulateur RST) n'y figurent pas.

7.6 Complément (hors programme) : Grafcet, GEMMA et langages d'automates

Le programme décrit le séquentiel par des diagrammes d'états. L'industrie française emploie aussi le Grafcet (norme CEI 60848), qu'on rencontre dans la documentation des machines ; ce complément en donne les bases et la correspondance avec les diagrammes d'états. Il n'est pas exigible.

Définition 7.14Grafcet

Un Grafcet est composé d'étapes (carrés numérotés, actives ou inactives ; l'étape initiale est un double carré), de transitions (barres entre deux étapes) portant une réceptivité (condition logique), et d'actions associées aux étapes.

◆Théorème 7.15Règles d'évolution du Grafcet
  • Les étapes initiales sont actives au démarrage.
  • Une transition est franchissable si toutes ses étapes immédiatement précédentes sont actives et sa réceptivité vraie.
  • Son franchissement active les étapes suivantes et désactive les étapes précédentes, simultanément.
  • Plusieurs transitions simultanément franchissables sont franchies simultanément.
  • Une étape simultanément activée et désactivée reste active.
Figure : Séquence Grafcet linéaire avec boucle de retour.
Structures et modes de marche.

Le Grafcet a ses structures : le choix (divergence en OU, réceptivités exclusives), le parallélisme (divergence en ET, double barre ; la convergence en ET est un rendez-vous), le saut et la reprise. Le guide GEMMA organise les modes de marche en trois familles, procédures d'arrêt (A), de fonctionnement (F) et de défaillance (D) ; un Grafcet de conduite en découle et commande le Grafcet de production par forçage. Les états composites « Arrêt », « Production », « Défaillance » d'un diagramme d'états jouent le même rôle.

Figure : Parallélisme en ET dans un Grafcet, et structuration des modes de marche par le GEMMA.
Équations d'activation.

Pour programmer un Grafcet dans un automate, on écrit pour chaque étape une équation booléenne de mémoire :

où (à droite) est la valeur au cycle précédent. La condition de désactivation s'écrit, selon la convention, (franchissement d'une transition aval) ou, plus simplement, (une étape suivante est active) ; les deux conventions ne se mélangent pas dans une même équation.

Attention

Sous la forme , une étape simultanément activée et désactivée () reste active : c'est la priorité à l'activation de la règle d'évolution. La forme factorisée donne au contraire la priorité à la désactivation. Les deux ne diffèrent que dans ce cas, mais sur une séquence rapide, l'étape active un cycle de trop suffit à faire percuter deux mécanismes.

iRemarqueCorrespondance, langages

Étape et état, réceptivité et événement ou garde, action continue et activité do/, convergence en ET et rendez-vous de régions parallèles se correspondent. Les automates se programment dans les langages de la norme CEI 61131-3 : Ladder (schéma à contacts), texte structuré, ou directement en Grafcet (SFC) ; les actions sont séparées de l'activité des étapes ( pour une action continue, pour une action conditionnelle).

7.7 Synthèse du chapitre

7.8 Travaux dirigés

Exercice 1 — La porte palière de métro : lire un diagramme d'états, puis le modifier

Sur le quai d'une ligne de métro automatique, une façade de verre sépare les voyageurs de la voie ; chaque porte de la façade s'ouvre en face d'une porte du train. Un vantail met à s'ouvrir entièrement et à se fermer entièrement, à vitesse constante. Deux fins de course donnent les conditions fc_ouvert et fc_fermé ; le variateur du moteur émet l'événement obstacle quand l'effort de fermeture dépasse un seuil (le vantail bute sur un voyageur ou un sac). La commande de la porte est décrite par le diagramme d'états fourni ; autorisation est émis par le pilotage automatique quand le train est arrêté en face de la porte.

L'action bip déclenche un signal sonore d'une seconde. Cahier des charges de l'exploitant :

ExigenceNiveau
stationnement, de `autorisation` à la porte fermée, même avec un obstacle
vantail qui bute pendant la fermetureréouverture automatique
nouvel obstacle après une réouvertureporte isolée, agent appelé

1) Tracer le chronogramme d'un stationnement sans obstacle : état actif, moteur ouvrir, moteur fermer, bip. Que vaut le temps de stationnement ?

2) Un voyageur retient le vantail après le début de la fermeture. Combien de temps dure la réouverture ? Tracer le chronogramme et calculer le temps de stationnement. Que fait la commande si le variateur émet obstacle pendant l'état Ouverture (un voyageur heurte le vantail qui s'ouvre) ? Est-ce souhaitable ?

3) Modifier la commande. On ajoute une variable entière , deux états Réouverture (do/ moteur ouvrir) et Réouverte, où la porte reste ouverte , et un état Défaut (entry/ appel agent ; porte isolée). Écrire les étiquettes des transitions nouvelles ou modifiées. Calculer le temps de stationnement avec un obstacle, puis avec deux obstacles si l'on autorisait deux réouvertures automatiques.

4) Dresser le tableau exigence / valeur / écart pour la commande d'origine et la commande modifiée, et conclure.

Démonstration (Corrigé)

La stratégie. Un diagramme d'états se lit en suivant l'état actif : à chaque instant, on cherche quel événement peut survenir, et si une transition issue de l'état actif l'attend. Le chronogramme est le résultat de cette lecture ; c'est lui qu'on compare au cahier des charges.

1) Le stationnement nominal. À , autorisation survient avec la garde vraie : Ouverture devient actif et son activité moteur ouvrir dure jusqu'à fc_ouvert, soit . À , Ouverte devient actif ; l'événement after(12 s) survient après cette entrée, à . L'entrée dans Fermeture exécute l'action bip (le signal sonne de à ) et lance l'activité moteur fermer, qui dure . La porte est fermée à

On distingue ici les deux mots du programme : une action (bip, à l'entrée) est instantanée, même si elle déclenche un appareil qui sonne une seconde ; une activité (do/ moteur fermer) dure autant que l'état.

2) Un obstacle. Le vantail a parcouru , soit la moitié de sa course de fermeture ; il la refait à la vitesse d'ouverture, en . La transition obstacle ramène dans Ouverture : la porte est ouverte à . Le point délicat est l'événement after(12 s) : il se compte depuis la dernière entrée dans Ouverte, et cette entrée vient d'avoir lieu. La porte reste donc encore ouverte, puis se ferme en :

Les deux chronogrammes : (a) sans obstacle, celui de la question 1 ; (b) avec l'obstacle ( : ouverture, : fermeture).

Obstacle pendant l'ouverture. Aucune transition issue de Ouverture n'attend obstacle : l'événement est perdu, et le vantail continue de s'ouvrir. C'est le comportement voulu : s'ouvrir dégage le voyageur. Un diagramme d'états ne réagit qu'aux événements que l'état actif attend ; ce qui n'est pas écrit n'a pas lieu.

3) La commande modifiée. Les étiquettes (structure de la question) :

TransitionÉtiquette
`Fermée` vers `Ouverture``autorisation [train à quai] / n := 0`
`Fermeture` vers `Réouverture``obstacle [n < 1] / n := n + 1`
`Réouverture` vers `Réouverte``when(fc_ouvert)`
`Réouverte` vers `Fermeture``after(3 s)`
`Fermeture` vers `Défaut``obstacle [n >= 1]`

L'ancienne transition obstacle de Fermeture vers Ouverture disparaît. Les deux gardes et sont exclusives (jamais vraies ensemble : le comportement ne dépend pas de l'ordre d'évaluation) et complètes (l'une des deux est toujours vraie : aucun obstacle n'est perdu pendant la fermeture). La remise à zéro de se fait sur la transition d'entrée du stationnement, pas dans Fermée, pour qu'elle ait lieu une seule fois par train.

Avec un obstacle à de fermeture :

Si l'on autorisait deux réouvertures (garde ), un second obstacle dans les mêmes conditions ajouterait : . Une seule réouverture automatique tient le temps de stationnement ; la seconde obstruction relève d'un agent, ce que demande aussi la troisième exigence.

4) Bilan.

ExigenceCommande d'origineCommande modifiée
stationnement sans obstacle : tenue : tenue
stationnement avec un obstacle : non tenue : tenue
réouverture sur obstacleouioui
obstruction répétéeréouvertures sans fin`Défaut`, agent appelé

Le défaut d'origine n'était pas une durée mal choisie : c'était la sémantique de after(12 s), réarmé à chaque entrée dans l'état. On l'a corrigé en changeant la structure (un état de plus), pas une valeur.

Ce que l'exercice installe. Lire un diagramme d'états en suivant l'état actif ; distinguer l'événement (ce qui déclenche), la garde (ce qui autorise) et l'action (ce qui est fait, instantanément), et l'action de l'activité ; savoir qu'un after() repart de zéro à chaque entrée et qu'un événement sans transition est perdu ; écrire des gardes exclusives et complètes ; juger une commande sur son chronogramme, exigence par exigence.

La suite du cours est sur Adloun

Le chapitre en entier, formules et figures comprises, avec le tuteur, les fiches, les QCM et les exercices.

Lire la suite du cours

En accès libre, sans inscription.