CHAPITRE 9 SYSTÈMES À ÉVÉNEMENTS DISCRETS On définit les systèmes à temps discret souvent de façon négative par rapport aux systèmes à temps continus. Dans les systèmes à temps continus (les systèmes linéaires et asservis), les variables évoluent continument et peuvent, en général, être décrites par un ensemble d’équations différentielles. Nous avons vus dans le chapitre sur les systèmes linéaires quelques outils mathématiques permettant d’étudier ces systèmes. Les systèmes à événements discrets permettent eux de décrire le comportement de systèmes qui évoluent lorsque un événement est présent. Considérons un ascenseur, le déplacement de l’ascenseur entre deux étages peut être décrit par un ensemble d’équations différentielles (P.F.D. pour obtenir l’équation différentielle du mouvement, les équations électriques du moteur,. . .) à l’aide de ces équations on peut par exemple réaliser un asservissement de vitesse de la cabine. Par contre la gestion des appels à chaque étage, la demande de déplacement d’un passager (les multiples demandes), l’arrivée à un étage,le départ d’un étage. . . 9.1 Les types de variables Lorsque l’on construit un modèle d’un système, on a l’habitude de classer les variables en deux catégories – Les variables continues sont des variables qui prennent leurs valeurs sur le domaine des réels R. – Les variables discrètes sont des variables qui prennent leurs valeurs sur un domaine dénombrable comme l’ensemble des entiers naturels N. ou bien sur des ensembles dont 1e nombre d’éléments est fini. A partir de ce classement, les systèmes dynamiques peuvent être rangés dans diverses catégories selon les modèles mathématiques qui sont utilisés pour les représenter. Nous allons rapidement passer en revue ces diverses catégories. 1 2 9 Systèmes à événements discrets 9.2 Types de systèmes 9.2.1 Les systèmes continus Le modèle d’un système continu ne comprend que des variables continues, de plus, le temps est également une variable continue (figure 9.2). Le temps et les variables prennent leurs valeurs dans R. C’est le grand domaine des systèmes représentés par des équations différentielles. Les systèmes linéaires continus invariants que nous avons étudié au premier semestre sont une partie des systèmes continus. e(t ) e(t ) t Système continu t F IGURE 9.1 – système continu - information continue 9.2.2 Les systèmes échantillonnés Dans les systèmes échantillonnés, le temps n’est plus une variable continu mais une variable discrète. Le temps est en effet représenté comme une suite infinie d’instants repérés par des entiers naturels N . Les variables traitées, par le système, peuvent avoir leur valeurs dans R mais en général dans N e(t e ) e(t ) t signal analogique e(t e ) t0 t1 t2 t3 t4 t5 t6 t0 t1 t2 t3 t4 t5 t6 échantillonage conversion CAN Système échantillonné F IGURE 9.2 – système échantillonné les systèmes échantillonnés sont les systèmes traités par les systèmes informatiques. pour qu’un traitement informatique de l’information puissent être réalisé, en effet : – le temps de calcul ne pouvant être nul, le système informatique ne peut prélever l’information qu’à des instants particuliers, cela nécessite un échantillonnage du temps : – une conversion analogique numérique pour ramener les variables dans un domaine (codage sur 8,16,32,. . . bits) que peut traiter le système numérique. 9.2.3 Les systèmes discrets Un système discret est un système dans lequel, les variables sont toutes discrétisées, soit par nature (lampe éclairée / éteinte), soit parce que l’on ne prend en compte que l’état de la variable (four en marche ou température atteinte, sans se préoccuper de l’évolution de la température). 9.2 Types de systèmes 3 Dans les systèmes discrets, le temps est en général continu (ou discrétisé). Les systèmes discrets ne manipulent que des variables logiques. 9.2.4 Variable logique Une variable logique, est une variable, à laquelle on associe deux états, on peut ainsi associer à un grand nombre de phénomènes physique un état logique (porte ouverte/fermée ; voyant éclairé/éteint, vrai/faux, 0/1, 0 V/5 V,. . .). Un signal réel est une grandeur physique en général continue qui peut donc prendre une infinité de valeurs. Pour associer à ce signal, un signal binaire (0,1), il est nécessaire de fixer des seuils. Le passage d’un seuil caractérise le passage de l’état 1 à 0 et réciproquement -figure 9.3). Le seuil pour passer de l’état bas (0) à l’état haut (1) peut être identique ou différent de celui pour passer de l’état haut à l’état bas. u seuil haut seuil bas état : 1 état : 0 t F IGURE 9.3 – Variable et état logique a ) Convention Il est nécessaire de distinguer : – la grandeur physique représentée. – Le support de l’information logique – Le nom attribué. – L’état logique qu’elle peut prendre. Par convention on établit une correspondance entre l’état physique de la grandeur et sa valeur logique correspondante (logique positive ou logique négative). L’état logique peut être noté « 0 » ou « 1 » ou encore « L » (Low) ou « H » (High). On parle aussi de niveau logique haut ou niveau logique bas, état haut ou état bas. On parle de logique positive, lorsque on associe à l’état logique 1, l’état actif de la variable, et de logique négative, dans le cas contraire (figure 9.4). 9.2.5 Les systèmes à événements discrets - S.E.D. Pour les systèmes à événements discrets (ceux qui nous intéressent dans ce cours), les variables sont discrètes et le temps n’est connu que lors des changements d’états de ces variables. L’évolution temporelle n’est prise en compte que lors des changement d’état, on ne se préoccupe pas de l’écoulement du temps. Ainsi, si on s’intéresse à une barrière de péage, les événements qui font évoluer le système sont : la présence d’un véhicule, la validation du paiement, le cycle d’ouverture, le départ du véhicule, le 4 9 Systèmes à événements discrets état physique état électrique état logique Contact établissement de circuit actionné Non actionné passant Non passant 1 0 Contact coupure de Circuit actionné Non actionné Non passant Passant 1 0 poussoir de réfrigérateur interrupteur a a Ue Us ne conduit pas au repos, le courant passe s’il est actionné Ue Us conduit au repos, le courant passe que s’il n"est pas actionné F IGURE 9.4 – Modélisation d’un contact électrique cycle de fermeture, et cela quelque soit le temps qui s’écoule entre deux véhicules, ou le temps mis par l’automobiliste à payer. Exercice 1- ascenseur Corrigé page ?? Soit un ascenseur dans un petit immeuble de 5 étages d’une capacité de 300 kg. Q1. Décrire les événements susceptibles de faire évoluer le système. 9.3 Typologie des S.E.D 9.3.1 S.E.D combinatoires Un système est dit combinatoire, lorsque la ou les sorties ne dépendent que de la combinaison des entrées La même cause (même combinaison des entrées) produit toujours le même effet (même état des sorties). L’effet disparaît lorsque la cause disparaît. e1 e2 e3 ei en Système combinatoire F IGURE 9.5 – Système combinatoire Chaque sortie est une fonction des entrées : s j = f (e 1 , e 2 , . . . , e i , . . . , e n ) s1 s2 sj sm 9.4 Systèmes combinatoires 5 9.3.2 S.E.D séquentiels Un système est dit séquentiel, lorsque la ou les sorties dépendent de la combinaison des entrées et de l’état précédent des sorties. Une même cause (même combinaison des entrées) peut produire des effets différents. Le temps peut aussi être une des causes d’évolution des sorties. L’effet peut persister après la disparition de la combinaison l’ayant provoqué. Chaque sortie, à chaque instant, est le résultat d’une combinaison des entrées et de l’état précédent des sorties ou des variables internes. s j = f (e 1 , e 2 , . . . , e i , . . . , e n , E1 , Ei ) e1 e2 ei en Système séquentiel s1 sj sn États précédents F IGURE 9.6 – Système séquentiel 9.4 Systèmes combinatoires 9.4.1 Algèbre de Boole L’algèbre de BOOLE ou algèbre logique est l’algèbre définie pour des variables ne pouvant prendre que deux états. On appelle variable booléenne, une variable ne prenant que deux états, pour une variable a, les deux états sont a et NON a (noté a). a ) Opérateurs logiques fondamentaux On distingue 4 opérateurs fondamentaux Opérateur OUI : opérateur identité, le comportement est décrit par la table de vérité suivante : si S est la sortie et a la variable d’entrée, : a 0 1 S 0 1 Opérateur NON : opérateur négation Équation logique : S=a 6 9 Systèmes à événements discrets a Table de vérité : 0 1 S 1 0 Équation logique : S=a prononcer NON a (ou a barre) Codage en Python Propriétés S=not a 1 = 0 et 0 = 1 involution a = a Opérateur ET : produit logique défini par les règles ci-dessous Équation logique : Table de vérité a 0 1 0 1 b 0 0 1 1 S 0 0 0 1 S = a ·b prononcer a ET b Le produit logique est commutatif, comme Propriétés : dans l’algèbre classique : a ·b = b ·a 1 est l’élément neutre pour le produit logique a ·1 = a 0 est l’élément absorbant pour le produit logique. a ·0 = 0 ⎧ ⎪ ⎪0·0 = 0 ⎪ ⎪ ⎨0·1 = 0 ⎪ 1·0 = 0 ⎪ ⎪ ⎪ ⎩ 1·1 = 1 et ⎧ a ·0 = 0 ⎪ ⎪ ⎪ ⎪ ⎨ a ·1 = a ⎪ a·a = a ⎪ ⎪ ⎪ ⎩ a·a =0 Codage en Python S=a and b Opérateur OU : somme logique Équation logique : Table de vérité a 0 1 0 1 b 0 0 1 1 S 0 1 1 1 S = a +b prononcer a OU b 9.4 Systèmes combinatoires 7 La somme logique est commutative, comme Propriétés : dans l’algèbre classique : ⎧ 0+0 = 0 ⎪ a +b = b +a ⎪ ⎪ ⎪ ⎨0+1 = 1 0 est l’élément neutre pour le produit logique ⎪ 1+0 = 1 ⎪ ⎪ ⎪ ⎩ a +0 = a 1+1 = 1 1 est l’élément absorbant pour le produit logique. et ⎧ a +0 = a ⎪ ⎪ ⎪ ⎪ ⎨ a +1 = 1 ⎪ a+a = a ⎪ ⎪ ⎪ ⎩ a+a =1 Codage en Python a +1 = 1 S=a or b Remarque : : dans l’algèbre usuelle, l’addition n’a pas d’élément absorbant. b ) Propriétés des opérateurs logiques – Commutativité, associativité, distributivité : Le produit et la somme logique sont commutatifs et associatifs. – Propriétés combinées de la somme et du produit – Distributivité du produit logique par rapport à la somme logique a · (b + c) = a · b + a · c – Distributivité de la somme logique par rapport au produit logique (cette propriété n’existe pas dans l’algèbre usuelle). a + b · c = (a + b) · (a + c) – Absorption a +a ·b = a a +a ·b = a +b c ) Théorèmes de De Morgan – Le complément d’un produit est égal à la somme des compléments des termes du produit. a ·b = a +b – Le complément d’une somme est égal au produit des compléments des termes de la somme. a +b = a ·b 8 9 Systèmes à événements discrets 9.4.2 Table de vérité Une table de vérité est un tableau qui permet de décrire le fonctionnement d’un système combinatoire. L’état de chaque entrée et de chaque sortie est représenté par sa valeur logique. Toutes les combinaisons possibles des entrées sont étudiées pour déterminer l’état des sorties. Pour un décrire complètement un système combinatoire comportant n entrées, il faut étudier les combinaisons possibles des entrées. Pour un système combinatoire comportant n entrées, la table de vérité comporte 2n combinaisons des variables d’entrée, donc 2n lignes. Il est possible de déterminer l’équation de fonctionnement en recherchant toutes les valeurs pour lesquelles la sortie est vraie (=1). L’équation de fonctionnement est égale à la somme logique de toutes les combinaisons pour lesquelles la sortie est vraie. Exercice 2- Relations de De Morgan Corrigé page ?? Q1. Démontrer ces égalités à partir des tables de vérité. Q2. Généralisation des relations de De Morgan Q2a. Montrer que a · b · c = a + b + c Q2b. Montrer que a + b + c = a · b · c Exercice 3- Relations d’absorption Corrigé page ?? Q1. Démontrer les deux relations d’absorption. a ) Exemple : va et vient L’éclairage d’un couloir est commandé par deux interrupteurs, un à chaque extrémité, (d à droite, g à gauche), la lampe est notée L. – Une personne traverse le couloir de droite à gauche, en entrant, elle bascule l’interrupteur d pour éclairer la lampe, à l’autre extrémité, elle appuie sur g pour éteindre. – Une seconde traverse à sa suite dans l’autre sens, elle bascule g pour éclairer, elle éteint à l’autre extrémité (d ). – Une troisième arrive à sa suite, éclaire le couloir en appuyant sur g , elle éteint en sortant. On supposera qu’au début les deux interrupteurs sont dans la même position. A cet état repos est associée la valeur logique 0. La figure 9.7 décrit chronologiquement les différents états des deux interrupteurs et de la lampe. 9.5 Fonctions logiques de base à 2 variables Première personne Deuxième personne Troisième personne 9 Action Etat repos Entrée en d d 0 1 g 0 0 L 0 1 traversée Sortie en g 1 1 0 1 1 0 Entrée en g traversée Sortie en d Entrée en g Traversée Sortie en d 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 Commentaires La lampe est éteinte Appuie sur d (d=1) , la lampe s’éclaire (L=1) La lampe reste éclairée Appuie sur g (g=1) , la lampe s’éteint (g=0) la lampe s’éteint (d=0) la lampe s’éteint (g=1) , la lampe s’éclaire (d=1) la lampe s’éteint F IGURE 9.7 – Fonctionnement d’un va et vient On peut traduire de fonctionnent à l’aide d’une table de vérité. les deux boutons au repos un bouton appuyé les deux boutons appuyés l’autre bouton relâché d 0 1 1 0 g 0 0 1 1 L 0 1 0 1 L=d ·g =1 L=d ·g =1 En recherchant les combinaisons, pour lesquelles la sortie est vraie, on peut déterminer l’équation logique décrivant le fonctionnement : La lampe s’éclaire donc pour la combinaison suivante des variables d’entrée : L = d ·g +d ·g Exercice 4- Éclairage intérieur automobile Corrigé page ?? La lumière intérieure d’un véhicule s’éclaire si une des deux portes avant est ouverte (capteurs p d et p g à coupure de circuit) ou si l’interrupteur du plafonnier (p l ) est appuyé. Q1. Déterminer l’équation. 9.5 Fonctions logiques de base à 2 variables 9.5.1 Fonctions de base Aux quatre opérateurs de base, on associe une fonction logique représentée par un symbole graphique (figure 9.8). À l’aide de ces symboles, on peut construire des schémas logiques (logigramme) traduisant l’équation logique. Les fonctions logiques élémentaires permettent de décrire tous les fonctionnements logiques (voir le schéma logique du va et vient figure 9.9). 10 9 Systèmes à événements discrets Fonction table de vérité symbole équation OUI a 0 1 S 0 1 a 1 S S=a NON a 0 1 S 1 0 a 1 ou 1 S S=a a S ET a 0 1 0 1 b 0 0 1 1 S 0 0 0 1 a b & S S = a ·b OU a 0 1 0 1 b 0 0 1 1 S 0 1 1 1 a b ≥1 S S = a +b F IGURE 9.8 – Tableau des fonctions logiques de bases a 1 a & a ·b ≥1 S = a ·b +a ·b & b a ·b 1 b F IGURE 9.9 – Schéma logique du va et vient 9.5.2 Fonctions complexes Il existe aussi, d’autres fonctions 1 , souvent utilisées en électronique pour construire des schémas plus complexes, ou plus compacts (tableau 9.1). Les fonctions NON-OU (NOR) et NON-ET (NAND) sont des fonctions universelles, qui permettent de réaliser toutes les autres fonctions logiques. Les fonctions NON-OU et NON-ET sont principalement utilisées en technologie électronique cablée (circuits intégrés) pour optimiser les circuits (1 seul type de composant pour toutes les fonc1. ces foncions ne sont pas explicitement au programme 9.5 Fonctions logiques de base à 2 variables Fonction NAND (NON-ET) NOR (NON-OU) INH inhibition XOR OUX ou exclusif XNOR NON- OUX non ou exclusif 11 table de vérité symbole équation a 0 1 0 1 b 0 0 1 1 S 1 1 1 0 a b & S S = a ·b = a +b a 0 1 0 1 b 0 0 1 1 S 1 0 0 0 a b ≥1 S S = a +b = a ·b a 0 1 0 1 b 0 0 1 1 S 0 1 0 0 a b & S S = a ·b a 0 1 0 1 b 0 0 1 1 S 0 1 1 0 a b =1 S S = a ·b +a ·b S = a ⊕b a 0 1 0 1 b 0 0 1 1 S 1 0 0 1 a b =1 S S = a ·b +a ·b S = a ⊕b TABLE 9.1 – Tableau des fonctions logiques - suite tions). 9.5.3 Logigramme Un logigramme ou schéma logique est la représentation schématique d’une fonction logique obtenue en utilisant les symboles graphiques associés à chaque fonction. Exercice 5- Fonctions universelles Corrigé page ?? On dit qu’une fonction logique est universelle, lorsqu’il est possible en utilisant uniquement cette fonction, de réaliser toutes les autres. Q1. Montrez que les les fonction NAND et NOR sont des fonctions universelles, tracer les logigrammes 12 9 Systèmes à événements discrets Exercice 6- Logigramme Corrigé page ?? Q1. Tracer le logigramme de S = a · b · c + a · c 9.5.4 Réalisation des fonctions logiques en technologie électrique câblée a ) Fonctions de base Fonction Schéma 0V a V a V OUI 0V NON 0V a b a OU vV V ET 0V vV V vV vV b La figure 9.10 correspond à la réalisation d’un circuit va et vient (ou exclusif) en technologie électrique. 0V a b a b V V F IGURE 9.10 – Va et vient en technologie électrique b ) Utilisation d’un relais La réalisation de fonctions complexes ou de mémoire ne peut se faire en technologie électrique qu’en utilisant des relais électromagnétiques. Un relais électromagnétique (figure 9.11) est constitué, d’un électroaimant (une bobine, et un noyau en fer doux). la bobine est alimentée par le circuit de commande, le champ électromagnétique crée permet de fermer un ou plusieurs contact dans un circuit secondaire. ce circuit secondaire peut être alimenté avec la même tension que le circuit de commande ou une tension propre au circuit de puissance. 9.6 Détermination et simplification des fonctions logiques circuit de commande 13 palette X contact du circuit secondaire Uc x bobine + noyau (a) schéma (b) symbole F IGURE 9.11 – relais électromagnétique circuit de commande wV 0V a 0V 0V V vV 0V a x X V vV vV circuit de puissance (a) (b) schéma normalisé F IGURE 9.12 – circuit élémentaire de commande d’un relais 9.6 Détermination et simplification des fonctions logiques La première solution pour simplifier une fonction logique est d’appliquer les propriétés des fonctions logiques, Une autre solution est d’utiliser une méthode graphique à partir du tableau de Karnaugh. Soit, un comportement combinatoire décrit par la table de vérité suivante : 14 9 Systèmes à événements discrets 9.6.1 Simplification à partir des relations de l’algèbre a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 S 0 1 0 1 1 0 1 1 Commençons, par déterminer à quelles conditions, la sortie est vraie. a b c S 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 a ·b ·c 1 0 0 1 a ·b ·c 1 0 1 0 1 1 0 1 a ·b ·c 1 1 1 1 a ·b ·c a ·b ·c Simplification à partir des règles de l’algèbre de Boole. S = a ·b ·c +a ·b ·c +a ·b ·c +a ·b ·c +a ·b ·c S = a ·c · b +b +a ·b ·c +a ·b · c +c S = a ·c +a ·b ·c +a ·b S = a ·c +a · b ·c +b S = a ·c +a · c +b (factorisation) (b + b = 1) (absorbtion : b · c + b = b + c) S = a ·c +a ·c +a ·b (ou exclusif : a · c + a · c = a ⊕ c) S = a ⊕c +a ·b finalement S = a ⊕c +a ·b 9.6.2 Simplification à partir du tableau de Karnaugh Cette méthode de simplification n’est pas explicitement au programme, elle sera présentée en TD. 9.7 Exercices 15 9.7 Exercices Exercice 7- Cuve chauffée Corrigé page ?? Le niveau d’une cuve est contrôlé par 2 cap– Les capteurs de niveau sont à l’état logique teurs de niveau (n 1 , n 2 ) et un capteur de tempé1 lorsque le liquide est présent devant le capteur. rature à deux seuils (t 2 , t 1 ). – Une vanne V motorisée permet le remplisV sage de la cuve. – Une résistance chauffante R assure le chauffage. n2 Dans cette cuve chauffée, le niveau doit être cuve maintenu entre le niveau haut et le niveau bas et la température entre les deux seuils. t2 Une sécurité de fonctionnement interdit le n1 t1 R chauffage si le niveau bas est atteint, de même le remplissage ne peut se faire si la température est trop basse (sauf si la cuve est vide). En cas de panne de capteur ou d’état incohé– Les capteurs de température sont à l’état logique 1 dès que la température est supé- rent, une alarme est déclenchée et toutes les actions stoppées. rieure à la température à détecter. Q1. Décrire le fonctionnement de la vanne motorisée et de la résistance chauffante par une table de vérité. Q2. Préciser les cas incohérents. Ajouter une sortie Alarme A pour informer l’opérateur. Q3. Déterminer les équations de fonctionnement de V, R et A. Q4. Tracer les logigrammes. Exercice 8- Règle du consensus Corrigé page ?? La règle du consensus, est une règle de simplification des fonctions logiques, elle prend deux formes, celle d’une somme de produit, celle d’un produit de somme. Q1. Montrer que a · c + b · c + a · b = a · c + b · c Q2. Montrer que (a + c) · b + c · (a + b) = (a + c) · b + c Remarque : on pourra utiliser la description par une table de vérité pour vérifier ces assertions, puis retrouver le résultat par des simplifications à partir de l’algèbre de Boole. 16 9 Systèmes à événements discrets Exercice 9- Étude d’un comparateur Corrigé page ?? A. Description On se propose de réaliser un module permettant de comparer bit à bit deux nombres binaires de 4 bits (A = a 3 a 2 a 1 a 0 et B = b 3 b 2 b 1 b 0 ) et d’indiquer à l’issue de la comparaison si A > B ou A < B ou A = B. A.1. Comparateur 1 bit Le comparateur ci-contre permet de comparer les deux bits a 0 et b 0 . L’entrée v permet de synchroniser plusieurs modules, le résultat n’est calculé que si v = 1. Comparateur 1 bit v a0 > b0 a0 a0 < b0 b0 a0 = b0 Q1. Compléter la table de vérité a0 0 0 0 0 b0 0 0 1 1 v 0 1 0 1 (sup 0 = "a 0 > b 0 ") 0 0 (i n f 0 = "a 0 < b 0 ") 0 0 (eg a 0 = "a 0 = b 0 ") 0 1 Q2. Déduire les équations, (sup 0 ), (i n f 0 ) et (eg a 0 ) Q3. Tracer le schéma logique interne du comparateur A.2. Comparateur 4 bits On considère maintenant le comparateur 4 bits constitué de 4 comparateur 1 bit de la figure 9.13. Q4. Déterminer les équations logiques qui permettent de déterminer si A > B ou A < B ou A = B. Q5. Compléter le schéma logique interne du comparateur 4 bits. 9.7 Exercices 17 C3 v v a3 sup 3 b3 eg a 3 i n f3 A>B C2 a0 sup 2 a1 v a2 a2 b2 eg a 2 i n f2 a3 A<B C1 v a1 sup 1 b1 eg a 1 i n f1 b0 b2 b3 A=B C0 b1 v a0 sup 0 b0 eg a 0 i n f0 F IGURE 9.13 – Comparateur 4 bits 18 9 Systèmes à événements discrets 9.8 Systèmes séquentiels Avant d’aborder les systèmes à événements discrets, nous allons décrire les systèmes séquentiels. La plupart des traitements ne sont pas uniquement combinatoires mais souvent séquentiels. Dans un traitement séquentiel le système doit pouvoir mémoriser certaines valeurs pour pouvoir les réutiliser. Un système est dit séquentiel, lorsque la ou les sorties dépendent de la combinaison des entrées et de l’état précédent des sorties. Une même cause (même combinaison des entrées) peut produire des effets différents et l’effet peut persister si la cause disparaît. e1 e2 ei en Système séquentiel s1 sj sn États précédents F IGURE 9.14 – Système séquentiel 9.8.1 Fonction mémoire À l’apparition du signal ecr (écriture), la sortie passe à l’état 1, à la disparition du signal la sortie reste dans le même état (figure 9.15). L’apparition du signal e f f (effacement), la sortie repasse à l’état 0. Le maintien de la sortie correspond à l’effet mémoire. mémorisation S0 ecr ef f Fonction memoire S ef f 0 t ecr 0 (b) chronogramme F IGURE 9.15 – Fonction mémoire a ) Fonction mémoire à effacement prioritaire Soit un système constitué de deux boutons poussoirs, m (marche) et a (arrêt) et d’un voyant V. Un appui sur m éclaire le voyant V, si on relâche le bouton, la sortie reste à l’état 1, si on appuie sur a, quel que soit l’état de du voyant V et de m, le voyant s’éteint. 9.8 Systèmes séquentiels 19 Nous allons construire la table de vérité traduisant ce comportement. les deux boutons sont relâchés et le voyant est éteint m 0 a 0 V 0 le bouton m est appuyé, le voyant s’éclaire 1 0 1 le bouton m est relâché, le voyant reste éclairé 0 0 1 le bouton a est appuyé, le voyant s’éteint 0 1 0 les boutons m et a sont appuyés, le voyant est éteint 1 1 0 On constate sur cette table que le fonctionnement n’est pas combinatoire, en effet, pour deux états identiques, (m = 0, et a = 0) la sortie V a deux états différents. Pour mettre en évidence l’état interne mémorisé, nous allons introduire une nouvelle entrée dans le tableau, Vt −δt qui représente l’état précédent de V. On construit la table en remplissant dans l’ordre les différents états des entrées et sorties, en reportant l’état de la sortie V dans Vt −δt de la ligne suivante. m a Vt −δt V 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 On constate que l’on a maintenant 8 combinaisons différentes des 3 variables m, a, et Vt +δt . le fonctionnement est maintenant combinatoire (8 combinaisons pour 23 = 8 possibles). D’où l’équation logique du voyant : V = m · a · Vt −δt + m · a · Vt −δt + m · a · Vt −δt V = a · m · Vt −δt + m · Vt −δt + m · Vt −δt V = a · m · Vt −δt + Vt −δt + m · Vt −δt V = a · m + m · Vt −δt V = a · (m + Vt −δt ) Le temps δt peut être aussi petit que possible, on peut donc écrire : V = a · (m + V) Et le schéma logique : 20 9 Systèmes à événements discrets a 1 a & V = a (m + V) ≥1 m m +V que l’on peut mettre sous la forme : a a 1 & m V = a (m + V) ≥1 m +V où on retrouve, la structure d’un système séquentiel. On dit que le fonctionnement de cette mémoire est à « effacement prioritaire », en effet en cas de demande de mise à 1 et à mise à 0 simultanée, la mise à 0 l’emporte (dernière ligne de la table de vérité). mémorisation appui simultané V01 a 01 m 01 t F IGURE 9.16 – mémoire est à « effacement prioritaire » b ) Réalisation d’une fonction mémoire en technologie électrique Pour réaliser une fonction mémoire, il est nécessaire d’utiliser un relais qui permet avec un circuit d’auto-maintien de mémoriser l’impulsion sur un bouton (figure 9.17). 0V a x X vV m 0V x V wV F IGURE 9.17 – fonction mémoire à effacement prioritaire avec auto maintien 9.8 Systèmes séquentiels 21 Exercice 10- Mémoire à écriture prioritaire Corrigé page ?? Le comportement d’une mémoire à écriture prioritaire, est identique à celui d’une mémoire à effacement prioritaire, sauf dans le cas d’une de demande de mise à 1 et à mise à 0 simultanée, la mise à 1 l’emporte. Q1. Construire la table de vérité de la mémoire à écriture prioritaire, en déduire l’équation logique. Q2. Tracer le schéma logique puis le chronogramme. Q3. Concevoir le schéma électrique d’une mémoire à écriture prioritaire en technologie électrique. Exercice 11- Bascule RS Corrigé page ?? La bascule RS est un composant souvent utilisée en technologie électronique câblée permettant de mémoriser une information. le schéma ci-dessous décrit le schéma logique interne de la bascule RS. ≥1 R Q S ≥1 Q Q1. Construire la table de vérité de la bascule RS puis le chronogramme. Q2. La combinaison R = 1 et S = 1 est déconseillée, que se passe-t-il ? 22 9 Systèmes à événements discrets 9.9 Machine à états- State machine diagram Il n’est pas facilement réalisable de décrire le comportement d’un système séquentiel, à partir d’une simple table de vérité. Le nombre de combinaison possible à étudier devenant très rapidement un obstacle à toute synthèse. (2n combinaisons pour n variables). Plusieurs outils, en général graphiques, ont été développés pour faciliter cette description. Les élèves ayant fait une terminale S-Si ont utilisé un outil particulier, le GRAFCET. Nous allons utiliser deux diagrammes du langage SysML pour décrire les systèmes à événement discret. Le diagramme des machines à états du langage SysMl permet de décrire l’évolution des états d’un système en fonction de événements extérieurs. 9.9.1 Syntaxe de base On distingue 3 états principaux – l’état initial représenté par un cercle plein noir . Cet état (pseudo état) est nécessaire, il indique le point d’entrée dans un graphe. – l’état final représenté par un cercle plein noir cerclé . Ce pseudo état n’est pas toujours nécessaire, il décrit l’état final d’un comportement. – l’état proprement dit. Il représente un phase de vie du système, le système reste dans l’état décrit tant que les conditions d’évolution ne sont pas remplies. Il est représenté par un cadre précisant l’état et/ou les actions à réaliser pendant cette phase de vie. Un état est représenté par un cadre (figure 9.19). Les transitions les transitions d’un état à l’autre (ou sur lui même) sont représentées par un lien orienté, la condition de transition est décrite sur le lien. Une transition représente le passage instantané d’un état vers un autre. Une transition ne peut donc pas avoir de durée. On appelle état source l’état de départ d’une transition et état destination l’état d’arrivée. Une transition n’est évaluée que si l’état source est actif. 9.9.2 Les transitions La syntaxe d’un transition peut être relativement complexe et comporter, jusqu’à trois éléments distincts – l’événement : c’est la condition principale qui déclenche le passage d’un état à une autre. cela peut être, – le changement d’état d’une variable (un appui sur un bouton, une température atteinte,. . .) : when(T > T0 ). S’il n’y a pas de confusion, when n’est pas précisé. – une condition temporelle : after(2s) ; – la condition de garde : c’est une condition booléenne qui complète l’événement et qui en contraint l’effet. Si une transition comporte un événement et un condition de garde : événement[garde] entre un état source et un état de destination, pour que le système évolue, il faut que l’événement soit vrai et que la condition de garde soit vraie. – l’action ou activité : décrit les actions qui sont exécutées pendant le franchissement. – Chaque terme de la transition est optionnel. 9.9 Machine à états- State machine diagram 23 La transition est franchie lorsque les conditions de franchissement associées sont vraies : – Si l’événement apparaît (déclencheur) et si la condition de garde est vraie à ce moment alors la transition est franchissable : si l’état source était actif alors il se désactive et l’état de destination s’active. L’activité, si elle existe, est exécutée avant celles situées dans l’état de destination. La condition de garde n’est prise en compte qu’au moment de l’occurrence de l’évènement. – Si aucun évènement est écrit alors il est toujours vrai. – Si aucune condition de garde est écrite alors elle est toujours vraie. – Une transition qui ne contient aucune condition de franchissement est dite automatique, elle est franchie dès que la tache à l’intérieur de l’état source est terminée. a ) Transition réflexive Arc orienté qui relie le même état (source = destination). Cela permet d’exécuter à nouveau les activités associées à exit et à entry de nouveau. b ) Transition alternative Lorsqu’un choix se présente entre deux ou plusieurs évolutions, il est possible d’utiliser le mot clef else pour préciser l’alternative. On peut aussi préciser l’alternative en utilisant le pseudo état de point de décision dans le transition (figure 9.18). État 1 État 1 événement événement[else] État 3 événement[condition] État 2 [else] État 3 [condition] État 2 F IGURE 9.18 – Transition alternative La clause else ne peut se trouver que dans une condition de garde. 9.9.3 Les blocs Un bloc est donc une entité qui précise l’état du système lorsque le bloc est actif. Le graphisme de base est un rectangle précisant l’état et/ou les actions à réaliser pendant cette phase de vie (figure 9.19(a)). Cette description peut être précisée en nommant le bloc (figure 9.19(b)). Il est parfois nécessaire de préciser le comportement d’un état, on peut ainsi le détailler en prenant en compte 3 phases (figure 9.19(c)) : – ce qui doit se passer en entrant dans l’état, cette phase est introduite par le mot clef :entry. Les taches ou actions décrites dans cette partie sont exécutées à chaque fois que l’on rentre dans le bloc, quelle que soit la durée de ce bloc. 24 9 Systèmes à événements discrets – ce qui doit se passer tant que l’état est actif, le mot clef do introduit cette phase. Les taches du do sont réalisées tant que l’état est actif. Une action réalisée dans le do ne prend fin que si un événement est présent. – ce qui doit se passer en quittant le bloc, cette phase est décrite dans le mot clef exit. Les taches ou actions décrites dans cette partie sont exécutées à chaque fois que l’on rentre dans le bloc, quelle que soit la durée de ce bloc. Nom entry : liste des taches exécutées en entrant do : liste des taches exécutées pendant le déroulement Nom État État (a) graphisme de base (b) Bloc nommé exit : liste des taches exécutées en sortant (c) Bloc avec liste des taches F IGURE 9.19 – graphismes d’un bloc a ) États composites Un bloc peut aussi contenir une sous machine à état. Cette encapsulation permet de décrire des fonctionnements plus complexes sans trop alourdir le graphisme. Un tel état est appelé état composite ou super état (voir exemple ??). – L’activation de l’état composite entraîne l’activation du pseudo-état initial interne(rond noir). – La désactivation de l’état composite entraîne la désactivation de l’état actif. – Chaque sous-état peut aussi être un état composite et ainsi de suite. . . – Un état composite peut contenir des activités associées à entry, do et exit. entry et do sont traités avant l’activation du pseudo-état initial de la région, exit est traité au moment de la désactivation de l’état composite. b ) États orthogonaux Un bloc peut aussi contenir plusieurs états dits orthogonaux, les états orthogonaux sont exécutés simultanément dès l’activation de l’état encapsulant (figure 9.20). Quand un état orthogonal est terminé, les autres états orthogonaux peuvent rester actifs. Une transition sortant de l’état englobant termine simultanément tous les états orthogonaux. Transition fork et join Les deux pseudos états fork et join sont représentés par une barre épaisse, – le fork permet de d’activer plusieurs états orthogonaux. – le join de regrouper plusieurs transitions issues de plusieurs états orthogonaux. 9.9 Machine à états- State machine diagram 25 Boisson sélectionnée Fin préparation Préparation entry : Placer gobelet do : ajouter sucre do : remplir exit : signal sonore Restitution monnaie entry : monnaie= credit - boisson(prix) do : rendre monnaie F IGURE 9.20 – États orthogonaux Boisson sélectionnée Fin préparation Préparation entry : Placer gobelet do : ajouter sucre do : remplir exit : signal sonore Restitution monnaie entry : monnaie= credit - boisson(prix) do : rendre monnaie F IGURE 9.21 – Etats orthogonaux, fork et join c ) Prise en compte de l’historique Il est parfois nécessaire de mémoriser l’état actuel avant de le quitter afin de le retrouver lors du retour dans l’état et de poursuivre le déroulement. F IGURE 9.22 – États historiques 26 9 Systèmes à événements discrets L’historique, est précisé par le pseudo-état H ou H* . – shallow history H : permet à un état de niveau hiérarchique supérieur (état composite) de se souvenir du dernier sous-état, avant qu’il n’évolue vers un autre état, – deep history H* : idem que précédemment mais avec la propagation de l’historique à tous les sous-états composites de niveaux hiérarchiques inférieurs 9.9.4 Quelques exemples a ) Lampe - bouton poussoir Une lampe L est éclairée par une impulsion sur un bouton poussoir Bp , une impulsion sur ce même bouton, l’éteint. La figure 9.23 montre deux possibilités analogues pour décrire ce fonctionnement sm : Lampe [description] sm : Lampe [description] Éteinte Éteinte entry : L = 0 Bp Bp Bp Bp Eclairée entry : L = 1 (a) Eclairée entry : L = 1 exit : L = 0 (b) F IGURE 9.23 – Lampe et bouton poussoir :deux descriptions d’un même fonctionnement On note dans cet exemple – l’utilisation de entry et exit ; – les multiples représentations d’une même description. Proposer une autre méthode pour décrire ce fonctionnement. b ) Lampe temporisée Un éclairage extérieur est mis en route par le passage d’une personne sous le détecteur (d ), il fonctionne alors pendant 30 s. Si une nouvelle personne se présente alors que l’éclairage est actif, celui-ci redémarre pour 30 s. La figure 9.24 décrit le fonctionnement attendu, la boucle ré-entrante dans l’état « Éclairée » permet de relancer l’attente. On note dans cet exemple – l’utilisation de after pour représenter une temporisation ; – l’utilisation d’une transition réflexive ; – l’action décrite dans le do, n’est pas arrêté par la transition réflexive. 9.9 Machine à états- State machine diagram 27 sm : Lampe [description] Éteinte entry : L = 1 a f t er (30s) d Eclairée d entry : Lancer Tempo do : L = 1 F IGURE 9.24 – Lampe temporisée c ) Fonctionnement d’une porte motorisée La porte peut être dans l’un des trois états : « Ouverte », « Fermée » ou « Verrouillée ». Le système peut répondre aux événements « Ouvrir », « Fermer », « Verrouiller » et « Déverrouiller ». Le matin, la porte est déverrouillée et le soir, elle est verrouillée. La commande est réalisée par un bouton à clef placé à l’extérieur. Les boutons "Ouvrir" et "Fermer" sont placés à l’intérieur, dans le local de surveillance. Un détecteur permet de vérifier que le passage est libre. Un voyant orange clignotant est alimenté lorsque la porte se déplace. sm : Porte électrique [Fonctionnement global] Verrouillée Verrouiller Déverrouiller Ouvrir/Voyant_clignotant Ouverte Fermée Fermer[passage_vide]/voyant_clignotant F IGURE 9.25 – Porte électrique – À la mise sous tension (état initial) la porte est verrouillée. – L’événement Déver r oui l l er met la porte dans l’état « Fermée ». – L’événement Ver r oui l l er met la porte dans l’état « Verrouillée ». 28 9 Systèmes à événements discrets – La condition de passage Ouvr i r /voy ant cl i g not ant met la porte dans l’état « Ouverte ». Pendant le déplacement, l’action /voy ant cl i g not ant a lieu. – L’évolution de l’état « Ouverte » à l’état ne peut se faire que si l’événement Fer mer est vrai et que la condition de garde [passag e vi d e] est vraie. Pendant le déplacement, l’action /voy ant cl i g not ant a lieu. d ) Voiture automatique Le fonctionnement d’une voiture peut être décrit par deux états élémentaires, « À l’arrêt », « En Marche ». Si l’état « À l’arrêt » peut suffire à décrire cet état, l’état « En Marche » lui comporte lui un grand nombre d’états, qui peuvent aussi être décomposé. La figure 9.26 montre un premier niveau de décomposition, qui utilise un état composite (super état) pour décrire l’état en marche. stm [State Machine] IRQFWLRQQHPHQWYpKLFXOH jO DUUrW FRQWDFWPLV / GpPDUUHU FOHIUHWLUpH / DUUrWGXYpKLFXOH HQPDUFKH entry / DXWRFRQWU{OH do / )RXUQLUODSXLVVDQFH exit / $UUrWGHVDFFHVVRLUHV SRVLWLRQQHXWUH SRLQWPRUW HQDYDQW PDUFKHDYDQW [YLWHVVH>=0] PDUFKHDUULqUH[YLWHVVH<=0] SRVLWLRQQHXWUH HQDUULqUH F IGURE 9.26 – Descrition succincte d’une voiture automatique 9.9 Machine à états- State machine diagram 29 e ) Micro-onde Le fonctionnement d’un micro-onde peut être décrit par la machine à états de la figure 9.27. À la mise en route, le micro-onde est arrêté, l’utilisateur règle le temps de cuisson, lance la cuisson en appuyant sur marche. Si la porte est fermée, la cuisson est lancée, la condition de garde [in (Fermée)] n’autorise le passage que si la porte se touve dans l’état Fermée. Dès que la porte est ouverte, la condition de garde [not in (Fermée)] est vraie, et la cuisson est stoppée, le timer est mis en pause. Lorsque le temps écoulé est supérieur au temps de cuisson programmé [Timer≥Temps_cuisson], le micro-onde se retrouve dans l’état initial. On notera dans cet exemple : – les deux états orthogonaux ; – d’un état composite dans un état composite ; – l’utilisation du mot clef in pour préciser qu’un événement ou une condition de garde dépend d’un autre état. Micro-onde En Marche Générateur entry : Remise_à_zéro_Timer ; Mémoriser_Temps_cuisson ; marche [in (Fermée)] Arrêt Cuisson Repos arrêt entry : Lancer_Timer [Timer≥Temps_cuisson] entry : Timer en pause do : Générer_microondes [not in (Fermée)] Porte porte_ouverte Ouverte Fermée porte_fermée F IGURE 9.27 – Machine à états micro-onde 30 9 Systèmes à événements discrets 9.9.5 Exercices Exercice 12- Mémoires à écriture prioritaire et à effacement prioritaire Corrigé page ?? Q1. traduire le fonctionnement des mémoires à écriture prioritaire et à effacement prioritaire par un diagramme d’états Exercice 13- Portail BFT Corrigé page ?? – Cycle d’ouverture. A la première impulsion sur le bouton marche ou la télécommande, le verrou électromagnétique sur le petit portillon se débloque puis le portail et le portillon s’ouvrent. L’ouverture dure 15s. Le portail reste ensuite ouvert. – Cycle de fermeture. Une deuxième impulsion sur le bouton marche ou la télécommande à partir de la position ouverte déclenche la fermeture du grand vantail, le petit vantail débute son cycle de fermeture 3s plus tard. La fermeture dure 15s – Inversion de cycle. Une impulsion sur la télécommande ou le bouton marche pendant un cycle, arrête ce cycle. une nouvelle impulsion déclenche le cycle opposé. – Sécurité. Si le faisceau de la cellule photoélectrique est coupé pendant le cycle de fermeture, le cycle s’interrompt et le cycle d’ouverture démarre. Q1. Décrire le fonctionnement par un diagramme d’états 9.9 Machine à états- State machine diagram 31 Exercice 14- Cuve chauffée - Machine à état Corrigé page ?? On reprend la description de la cuve chauffée. Le niveau d’une cuve est contrôlé par 2 capteurs de niveau (n 1 , n 2 ) et un capteur de température à deux seuils (t 2 , t 1 ). – Une vanne V motorisée permet le remplissage de la cuve. – Une résistance chauffante R assure le chauffage. V n2 cuve n1 R t2 t1 Dans cette cuve chauffée, le niveau doit être maintenu au niveau haut et la température à la température haute. Le chauffage ne peut avoir lieu si le niveau est sous le niveau bas, de même le remplissage ne peut se faire si la température est trop basse (sauf si la cuve est sous le niveau bas). – Les sondes de température sont à l’état logique 1 dès que la température est supérieure à la température à détecter. – Les capteurs de niveau sont à l’état logique 1 lorsque le liquide est présent devant le capteur. En cas de panne de capteur ou d’état incohérent, une alarme est déclenchée et toutes les actions stoppées. le retour en fonctionnement normal ne se fait qu’après une validation par un bou- ton à clef (clef v al ). Un robinet de vidage (non représenté) permet de prélever le liquide chauffé. Nous avons vu dans un TD précédent, que le fonctionnement peut être décrit par la table de vérité suivante : n1 n2 t1 t2 V R Al 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 et les équations logiques ci-dessous : V = n2 · t1 + t2 R = n1 · t2 Al = n 1 · n 2 + t 1 · t 2 On se propose de décrire se fonctionnement par une machine à états. Q1. Identifier les états Q2. Traduire le fonctionnement par une machine à état. 32 9 Systèmes à événements discrets On peut dans un premier temps considérer 5 états : – Au repos : la cuve est pleine à la bonne température ; – En chauffage : le liquide est en cours de chauffage ; – En remplissage : la vanne de remplissage est ouverte : – En remplissage et chauffage ; – En Alarme. Fonctionnement normal En repos n 2 == 1 t 2 == 1 t 2 == 1 n 2 == 1 n 2 == 0&&t 1 == 1 n 1 == 0 t 1 == 0&&n 1 == 1 n 1 == 1 t 1 == 0 En remplissage t 1 == 0 n 1 == 0 n 1 == 1 t 1 == 1 En chauffage t 1 == 1 n 1 == 1 t 2 == 1 n 2 == 0 n 2 == 1 t 2 == 0 En chauffage et remplissage v al (n 2 == 1&&n 1 == 0)(t 2 == 1&&t 1 == 0) En Alarme F IGURE 9.28 – Machine à état de la cuve chauffée