Fichier pdf de la thèse
Transcription
Fichier pdf de la thèse
No d'ordre : 3066 Année 1998 Thèse préparée au Laboratoire d'Analyse et d'Architecture des Systèmes du CNRS (UPR 8001) en vue de l'obtention du Doctorat de l'Université Paul Sabatier de Toulouse spécialité : Informatique Industrielle - Productique par Ronan CHAMPAGNAT Maître ès sciences et techniques en productique Supervision des systèmes discontinus : dénition d'un modèle hybride et pilotage en temps-réel Soutenue le jeudi 1 er octobre 1998 devant le jury : Président Rapporteurs Examinateurs Directeurs de thèse Jean-Louis Hassane Jean-Claude Marc Gérard Jean-Claude Philippe Hervé Robert Rapport LAAS No 98 411 FERRIER ALLA GENTINA COURVOISIER FONTAN HOCHON ESTEBAN PINGAUD VALETTE Cette thèse a été préparée au LAAS-CNRS (UPR 8001) 7, avenue du Colonel Roche 31 077 Toulouse Cedex 4 Avant-propos Les travaux présentés dans ce mémoire se sont déroulés du 1er décembre 1995 au 1er octobre 1998 au Laboratoire d'Analyse et d'Architecture des Systèmes du CNRS (UPR 8001). Je remercie la direction, l'administration et les services techniques de ce laboratoire (réseau informatique, documentation, édition, magasin) pour leur aide et leur attention. J'ai eectué ces trois années au sein du même groupe de recherche qui a porté successivement deux noms diérents : Systèmes de Production puis Organisation et Conduite des Systèmes Discrets. Je remercie les responsables successifs, Jean-Claude HENNET et François ROUBELLAT, de m'y avoir accueilli. Je remercie également l'ensemble des membres du groupe OCSD pour leur gentillesse (les diérents changements de noms ne l'ayant en rien modiée). Je tiens à exprimer ma reconnaissance envers les membres du jury qui par la variété de leurs questions m'ont prouvé tout l'intérêt qu'ils ont porté à mon travail. Je remercie Jean-Louis FERRIER, professeur au LISA-ISTIA d'Angers, d'avoir accepté de présider le jury. Je remercie également Hassane ALLA, professeur au LAG-ENSIEG de Grenoble, et Jean-Claude GENTINA, professeur à l'ECL de Lille, d'avoir accepté la charge d'évaluer en qualité de rapporteur les travaux présentés. Je remercie bien évidemment Marc COURVOISIER, professeur à l'UPS de Toulouse, Gérard FONTAN, professeur à l'INPT de Toulouse et Jean-Claude HOCHON, consultant en systèmes d'information techniques à la société IXI - agence sud-ouest, de m'avoir fait l'honneur de participer au jury. Je tiens à exprimer toute ma gratitude envers mes directeurs de recherche pour m'avoir guidé tout au long de ces trois ans. Je remercie Philippe ESTEBAN, maître de conférences à l'UPS de Toulouse, pour sa gentillesse, Hervé PINGAUD, maître de conférences à l'ENSIGC de Toulouse, pour son enthousiasme, et Robert VALETTE, directeur de recherche au LAAS-CNRS de Toulouse, pour les discussions à propos des réseaux de Petri(x) et pour la complicité qui s'est créée entre nous. Contrairement à Luis-Allan, je ne vais pas remercier les millions de français qui, par leurs impôts, soutiennent la recherche scientique (enn un petit merci ça coûte rien), je me contenterai de remercier mes amis, plus particulièrement Camille, Carlos, Sam, Hassan, Flavio, Neil, Ricardo... et ma famille. Merci Cécile pour ton amour, ton soutien et ta patience pendant ces trois années. Enn, je dois admettre avec regrets, que cette thèse ne lève pas le voile sur le grand problème de la tribu CarladaMPetriX (tribu née dans le grand fossé, comme l'a expliqué Hervé à SIMO'96 [126]). En eet, tintin pour trouver Obélix... iv Avant-propos Principales notations utilisées : le temps. P : l'ensemble des places d'un réseau de Petri. pk : une place de P . T : l'ensemble des transitions d'un réseau de Petri. ti : une transition de T . n : le nombre de places d'un réseau de Petri. m : le nombre de transitions d'un réseau de Petri. F : l'ensemble des systèmes d'équations associés aux places. Fk : le système d'équations associé à la place pk . E : l'ensemble des fonctions de sensibilisation. ei : la fonction de sensibilisation de la transition ti . J : l'ensemble des fonctions de jonction. ji : la fonction de jonction de la transition ti . Xm : l'ensemble des variables portées par un jeton. Xpk : l'ensemble des variables de la place pk . Xini : l'ensemble des variables associées aux places amont de ti . Xouti : l'ensemble des variables associées aux places aval de ti . Xe : l'ensemble des variables d'entrée. Xint : l'ensemble des variables internes. Xs : l'ensemble des variables de sortie. , : l'ensemble des étiquettes d'un réseau de Petri. r : une étiquette correspondant à l'évènement r . vi Principales notations utilisées Table des matières Introduction 1 Chapitre I Outils pour la supervision et l'ordonnancement Chapitre II Formalisation d'un modèle pour les procédés discontinus I.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.2 Supervision des systèmes discrets . . . . . . . . . . . . . . . . . . . . . . . . . I.2.1 Structure hiérarchique de commande . . . . . . . . . . . . . . . . . . . I.2.2 Le niveau ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . I.2.3 Le niveau supervision . . . . . . . . . . . . . . . . . . . . . . . . . . . I.3 Outil pour la supervision des systèmes discrets : les réseaux de Petri . . . . . I.3.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.3.2 Représentation des contraintes de précédence des gammes . . . . . . . I.3.3 Représentation des mécanismes d'allocation de ressources . . . . . . . I.3.4 Détection des interblocages . . . . . . . . . . . . . . . . . . . . . . . . I.3.5 Utilisation des réseaux de Petri pour la supervision . . . . . . . . . . . I.4 Outils pour l'ordonnancement des systèmes discrets . . . . . . . . . . . . . . . I.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.4.2 Les graphes potentiels . . . . . . . . . . . . . . . . . . . . . . . . . . . I.4.3 Les réseaux de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.4.4 Les state-task network . . . . . . . . . . . . . . . . . . . . . . . . . . . I.4.5 Discussion sur les modèles utilisés pour l'ordonnancement . . . . . . . I.5 Supervision des systèmes discontinus . . . . . . . . . . . . . . . . . . . . . . . I.5.1 Qu'est-ce qu'un système discontinu? . . . . . . . . . . . . . . . . . . . I.5.2 Spécicités des systèmes discontinus par rapport aux systèmes discrets I.5.3 Impact des spécicités des systèmes discontinus sur l'ordonnancement I.5.4 Commande des systèmes discontinus . . . . . . . . . . . . . . . . . . . I.5.5 Surveillance dans le cadre des systèmes discontinus . . . . . . . . . . . I.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 6 9 9 10 11 11 12 13 14 15 15 16 19 24 24 25 25 25 27 28 28 30 31 Table des matières viii II.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II.2 Présentation des types de modèles discrets et continus . . . . . . . . . . . . . II.3 Dénition d'un modèle pour les procédés discontinus . . . . . . . . . . . . . . II.3.1 Stratégies d'obtention d'un modèle pour les procédés discontinus . . . II.3.2 Étendre un modèle continu . . . . . . . . . . . . . . . . . . . . . . . . II.3.3 Étendre un modèle à évènements discrets . . . . . . . . . . . . . . . . II.3.4 Utiliser un formalisme hybride . . . . . . . . . . . . . . . . . . . . . . II.3.5 Les automates hybrides . . . . . . . . . . . . . . . . . . . . . . . . . . II.3.6 Utiliser deux formalismes . . . . . . . . . . . . . . . . . . . . . . . . . II.4 Dénition formelle du couplage entre réseaux de Petri et systèmes d'équations II.4.1 Réseau de Petri et réseaux prédicats-transitions . . . . . . . . . . . . . II.4.2 Réseaux prédicats-transitions-diérentiels . . . . . . . . . . . . . . . . II.4.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II.4.4 Construction de l'automate hybride équivalent . . . . . . . . . . . . . II.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre III Modélisation de systèmes complexes et exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III.2 Formalisation du couplage de sous-modèles . . . . . . . . . . . . . . . . . . . . . III.2.1 Fusion (( statique )) de transitions . . . . . . . . . . . . . . . . . . . . . . . III.2.2 Fusion de branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III.2.3 Fusion dynamique de transitions . . . . . . . . . . . . . . . . . . . . . . . III.2.4 Fusion de transitions des réseaux prédicats-transitions-diérentiels . . . . III.2.5 Fusion de branches pour les réseaux prédicats-transitions-diérentiels . . . III.3 Modularité de la partie continue . . . . . . . . . . . . . . . . . . . . . . . . . . . III.3.1 Position du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III.3.2 Structuration des variables . . . . . . . . . . . . . . . . . . . . . . . . . . III.3.3 Sous-réseau bien structuré . . . . . . . . . . . . . . . . . . . . . . . . . . . III.3.4 Réseau prédicats-transitions-diérentiels bien structuré . . . . . . . . . . . III.3.5 Relation de causalité entre sous-réseaux prédicats-transitions-diérentiels . III.3.6 Couplage de sous-réseaux par test de variables continues (interactions hybrides) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels . . . . . . . . . . III.4.1 Exemple n 1 : procédé discontinu . . . . . . . . . . . . . . . . . . . . . . III.4.2 Exemple n 2 : procédé avec stockage intermédiaire . . . . . . . . . . . . . III.4.3 Exemple n 3 : stockage de gaz . . . . . . . . . . . . . . . . . . . . . . . . III.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre IV Simulation des réseaux prédicats-transitions-diérentiels 31 31 33 33 33 34 35 37 39 40 40 42 44 46 47 49 49 50 50 51 51 55 57 58 58 59 59 60 61 61 64 64 68 72 84 85 IV.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Table des matières ix IV.2 Premier principe . . . . . . . IV.2.1 Méthode . . . . . . . . IV.2.2 Exemple . . . . . . . . IV.2.3 Limites de l'approche IV.3 Second principe . . . . . . . . IV.3.1 Méthode . . . . . . . . IV.3.2 Exemple . . . . . . . . IV.4 Conclusion . . . . . . . . . . . Chapitre V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supervision des systèmes discontinus 86 86 88 90 92 92 94 97 101 V.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 V.2 Notions de temps relatif et de temps absolu . . . . . . . . . . . . . . . . . . . . . 101 V.3 Comparaison entre les graphes potentiels et les réseaux de Petri . . . . . . . . . . 103 V.3.1 Contraintes de précédence et de ressources . . . . . . . . . . . . . . . . . . 104 V.3.2 Détection des incohérences structurelles . . . . . . . . . . . . . . . . . . . 104 V.3.3 Détection des décisions incohérentes . . . . . . . . . . . . . . . . . . . . . 108 V.3.4 Détection des incohérences quantitatives . . . . . . . . . . . . . . . . . . . 110 V.4 Agrégation de contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 V.4.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 V.4.2 Contraintes données par les graphes potentiels . . . . . . . . . . . . . . . . 113 V.4.3 Décomposition d'un réseau de Petri . . . . . . . . . . . . . . . . . . . . . . 114 V.4.4 Contraintes agrégées de gamme et de ressource à partir d'un réseau de Petri114 V.5 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 V.6 Pilotage en temps-réel d'un système discontinu . . . . . . . . . . . . . . . . . . . 117 V.6.1 Critères pour le choix d'un modèle . . . . . . . . . . . . . . . . . . . . . . 117 V.6.2 Architecture de la couche pilotage et son interaction avec l'ordonnancement117 V.6.3 Détail des fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 V.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Conclusions et perspectives Annexe A Présentation de l'exemple du stockage de gaz A.1 A.2 A.3 A.4 A.5 Le stockage de gaz ( S ) . . . . . . . . . . . . . . . . . Modélisation de la compression amont ( Cp1 et Cp2 ) Modélisation de la détente amont (vanne VR1 ) . . . Modélisation de la compression aval ( Cc ) . . . . . . Modélisation de la détente aval (vanne VR2 ) . . . . . Annexe B . . . . . . . . . . . . . . . . . . . . . . . . . 123 . . . . . . . . . . . . . . . . . . . . Représentation et simulation des systèmes continus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 127 130 130 131 131 133 B.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 B.2 Dénition d'un système continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Table des matières x B.3 Traitement numérique . . . . . . . . . . . . . . . . . . B.3.1 Systèmes algébriques . . . . . . . . . . . . . . . B.3.2 Systèmes d'équations diérentielles ordinaires . B.3.3 Systèmes d'équations diérentielles algébriques Références bibliographiques et bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 134 136 138 139 Introduction Cette thèse traite de la supervision des systèmes discontinus. Ce sont des systèmes qui mettent en ÷uvre des appareils de type continu, la matière est transformée de manière continue au cours de son passage dans l'équipement (e.g. échangeur), ou des appareils de type discontinu, un lot de quantité nie de matière est chargé sur un équipement et y subit globalement une transformation (e.g. réacteur). La matière traitée dans ces systèmes est de type continu (e.g. uide, gaz), et par conséquent est non saisissable (non identiable au sens d'une entité atomique élémentaire tel un produit manufacturier). Les entreprises du génie des procédés (chimie ne, agro-alimentaire...), du fait de la modication du marché, ont développé de plus en plus d'unités de type discontinu. L'internationalisation du marché, la variation de la demande et de la qualité, et la production de produits spécialisés à haute valeur ajoutée en quantité faible ont rendu les unités produisant un seul produit en grande quantité inadaptées. Les entreprises du génie des procédés se sont alors tournées vers des unités produisant plusieurs produits en quantité variable (traitement par lots) et pilotées par la demande. Ce nouveau mode de production est proche de celui des entreprises manufacturières, cependant il n'est pas possible d'appliquer directement et brutalement les résultats et les approches développées dans ce contexte. En eet, la commande des procédés discontinus doit prendre en compte à la fois les aspects discrets (enchaînement des opérations) et les aspects continus (évolution de la matière). Les opérations continues se trouvant dans des enchaînements d'opérations discrètes deviennent plus complexes à cause de la nécessaire introduction de phases de démarrage et d'arrêt et des régimes transitoires qui en résultent. Enn les spécicités des systèmes discontinus (uctuation des durées opératoires, transferts non négligeables, stockages de matière...) les rendent plus diciles à contrôler que les systèmes purement discrets. Cette thèse fait suite aux travaux de D. Andreu [9] qui a déni une architecture de commande et les principes sur lesquels on pouvait développer la surveillance des systèmes discontinus. Il a déni une approche de modélisation, hybride et modulaire, des systèmes discontinus, an d'avoir un modèle hybride pour la commande. Puis il a étendu la notion de modèle de référence (modèle qui évolue de manière synchrone avec le procédé pour détecter les dysfonctionnements) au cas des systèmes hybrides. Il a enn introduit une nouvelle fonction dans l'architecture de commande : le générateur d'évènements. Cette fonction est chargée de faire l'interface entre le monde des contrôleurs locaux (régulateurs continus, automates programmables) et celui de la supervision. Dans le cadre de cette thèse, nous allons dénir formellement le modèle hybride dont les principes ont été donnés par B. Daubas [53] et D. Andreu [9]. Ce modèle est basé sur la combinaison d'un réseau prédicats-transitions et de systèmes d'équations diérentielles algébriques. Notre apport a, en particulier, consisté à répartir les variables continues sur les jetons sous la 2 Introduction forme d'attributs. Cela permet de respecter le principe de (( localité )) qui est la caractéristique des réseaux de Petri : toutes les informations dénissant un évènement sont localisées dans les places d'entrée de la transition correspondante. Ce principe est essentiel pour une bonne maîtrise du parallélisme et il permet l'élaboration d'approches modulaires. Nous avons donc tout naturellement abordé ensuite le problème de l'écriture de modèles de grande taille en dénissant formellement la fusion de transitions et en donnant un ensemble de dénitions permettant de garantir qu'un modèle est calculable s'il est composé de sous-ensembles calculables. Enn, pour terminer nous abordons le problème de la supervision des systèmes discontinus. Comme la surveillance a été développée par D. Andreu, nous avons plus particulièrement étudié le pilotage en temps-réel du ot de produits, c'est-à-dire que notre eort s'est essentiellement porté sur les problèmes liés à l'interaction entre la supervision et l'ordonnancement prévisionnel. Plus concrètement, cette thèse est composée de cinq chapitres. Le premier présente la supervision des systèmes discrets, en détaillant plus particulièrement les niveaux supervision et ordonnancement. Ce chapitre se poursuit par la présentation des réseaux de Petri (couramment utilisés pour le niveau supervision) et des graphes potentiels (couramment utilisés pour le niveau ordonnancement) vis-à-vis de l'expression des contraintes de relation d'ordre qualitatives et quantitatives. Nous présentons ensuite les particularités des systèmes discontinus, ce qui nous permet de bien spécier les besoins pour la modélisation. Le deuxième chapitre commence par une étude des modèles utilisés pour représenter des systèmes discontinus, en nous attachant à souligner leurs intérêts et limitations. Cette étude nous conduit à dénir formellement un modèle hybride basé sur la combinaison d'un réseau prédicats-transitions et de systèmes d'équations diérentielles algébriques : les réseaux prédicatstransitions-diérentiels. An de faciliter l'obtention d'un modèle dans le cadre des systèmes de grande taille, nous dénissons formellement, dans le troisième chapitre, la fusion de transitions dans le cadre des réseaux ordinaires et prédicats-transitions-diérentiels. Puis nous donnons un ensemble de dénitions permettant l'élaboration d'une approche modulaire. Chaque équipement et chaque recette est représenté par un module qui est un réseau prédicats-transitions-diérentiels. Le modèle du système est alors obtenu par composition. La composition des parties discrètes se fait par fusion des transitions et celle des parties continues par des variables d'entrée et des variables de sortie. Enn nous illustrons notre technique de modélisation et les règles de construction modulaire à travers trois exemples. Le quatrième chapitre est dédié à la simulation des réseaux prédicats-transitions-diérentiels. Nous décrivons deux principes de simulation en précisant les cas d'utilisation pour chacun d'entre eux. Le premier principe consiste à utiliser un simulateur de réseau de Petri haut-niveau après avoir transformé les systèmes d'équations diérentielles algébriques en équations algébriques explicites. Le deuxième principe est basé sur le couplage d'un simulateur réseaux de Petri et d'un simulateur de systèmes d'équations diérentielles algébriques. Enn, dans le dernier chapitre, nous traitons la supervision des systèmes discontinus. Nous commençons par une étude détaillée des diérences entre les réseaux de Petri et les graphes potentiels, en examinant tout particulièrement leur capacité à détecter les incohérences. Puis nous proposons une approche pour le pilotage en temps-réel des systèmes discontinus. Comme nous l'avons déjà mentionné, nous nous intéressons plus particulièrement au lien entre les niveaux supervision et ordonnancement prévisionnel. Pour terminer, nous tenons à préciser qu'une partie de ces travaux s'est déroulée dans le cadre d'une collaboration industrielle, celle du projet ANVAR (( simulation mixte )), menée par Introduction 3 la société IXI avec les sociétés Elf-Aquitaine, Alliance Agro-Alimentaire et Turboméca et trois laboratoires : l'École Nationale Supérieure en Génie des Technologies Industrielles de Pau, le Laboratoire de Génie Chimique de l'École Nationale Supérieure d'Ingénieurs de Génie Chimique de Toulouse et le Laboratoire d'Analyse et d'Architecture des Systèmes du CNRS de Toulouse. Ce cadre nous a donné l'occasion de mieux cerner les besoins industriels dans le domaine et nous a permis d'étudier un certains nombre d'exemples types, en particulier celui du stockage de gaz du chapitre III. Le résultat de cette collaboration est le développement de la version (( simulation mixte )) du logiciel Miss-RdP où se retrouvent certaines idées du chapitre IV. 4 Introduction Chapitre I Outils pour la supervision et l'ordonnancement I.1 Introduction L'évolution des marchés a remis sur le devant de la scène les industries ayant une production de type discontinu, relançant par la même occasion l'intérêt pour ces types de systèmes. Dans ce type de production on retrouve des problèmes liés au traitement continu de la matière, et tous les problèmes provenant du caractère discret de la production (gestion des passages des produits sur les équipements, allocation des ressources...) sont renforcés. Cette thèse traite de la supervision des systèmes discontinus, elle fait suite aux travaux de D. Andreu [9] et nous avons choisi d'étudier plus particulièrement l'interaction entre l'ordonnancement prévisionnel et le pilotage en temps-réel des produits. Ce premier chapitre présente tout d'abord l'architecture hiérarchique classique sans faire un état de l'art exhaustif (cela a été fait dans le travail de D. Andreu). Nous soulignons plus particulièrement les diérences entre les façons de prendre les décisions à chaque niveau vis-à-vis du ot d'informations venant du procédé ou de la gestion. Puis nous étudions les outils pour la supervision et l'ordonnancement. Partant du constat que dans le cadre de la supervision les réseaux de Petri sont plus utilisés et que dans celui de l'ordonnancement les graphes potentiels sont plus employés, et étant donné que nous nous intéressons plus particulièrement à l'interaction entre ces deux niveaux, nous analysons les potentialités de ces deux outils vis-à-vis des leur capacité à exprimer des contraintes de précédences qualitatives et quantitatives. Nous détaillons également l'utilisation des réseaux de Petri pour l'obtention de la commande et de la surveillance des systèmes discrets. Nous présentons, ensuite, les graphes potentiels utilisés pour déterminer une séquence de production (un plan) d'un système discret, et, également, comment sont utilisés les réseaux de Petri pour dénir un plan de production. Ce chapitre n'est pas une synthèse de tous les travaux sur l'ordonnancement des systèmes de production discrets et hybrides, nous n'avons examiné l'ordonnancement que vis-à-vis de sa nécessaire interaction avec la supervision en temps-réel. Enn, en dernière partie de ce chapitre, nous parlons de la supervision dans le cadre des systèmes discontinus en commençant par dénir ce qu'est un procédé discontinu et ses spécicités par rapport aux systèmes discrets. 6 Chapitre I Outils pour la supervision et l'ordonnancement I.2 Supervision des systèmes discrets I.2.1 Structure hiérarchique de commande Présentation Le but d'un système de production est de fabriquer des produits nis à partir de pièces en entrée. Les pièces sont transformées par les équipements composant le système (le procédé). Les équipements réalisent les transformations des produits en respectant la commande appliquée au système (voir gure I.1). On y retrouve des fonctions comme la gestion de production et la conduite temps-réel. Du fait de la quantité d'informations et du nombre de fonctions de commande, une étude globale du système est dicilement possible et la structure de décisions est généralement décomposée en une hiérarchie de niveaux d'abstraction [68, 145]. Le but d'une telle décomposition est de ramener la résolution d'un problème de grande dimension aux caractéristiques variées à une suite de résolutions de problèmes de taille raisonnable ayant des caractéristiques plus homogènes. Commande Pièces à transformer Système de production Pièces transformées Figure I.1 Commande d'un système de production La commande d'un système discret est fréquemment décomposée en cinq niveaux, comme le suggèrent les auteurs de [10], C. Briand dans [34], les auteurs de [70] et R. Valette dans [150] : commande locale, coordination, supervision, ordonnancement et planication. Un niveau de commande proche du procédé est un niveau (( bas )), alors qu'un niveau qui n'intervient pas immédiatement sur le procédé est un niveau (( haut )). Une décision allant d'un niveau haut vers un niveau bas sera une information descendante, alors qu'un compte-rendu allant d'un niveau bas vers un niveau haut sera une information ascendante (voir gure I.2). Nous allons présenter chaque niveau en commençant par le niveau le plus proche du procédé (la commande locale) puis en décrivant, successivement, les niveaux directement supérieurs. Niveau commande locale Il a pour but de mettre en ÷uvre la commande de chaque équipe- ment en temps-réel. Ce niveau est, généralement, décomposé en autant de sous-parties (appelées également commandes locales ou contrôleurs locaux) qu'il y a d'équipements à commander. Chaque sous-partie est composée d'opérations élémentaires faisant intervenir les capteurs et actionneurs de l'équipement concerné. Niveau coordination Il coordonne l'utilisation des commandes locales. Cette coordination est nécessaire lorsque deux équipements (si le niveau commande locale est décomposé par équipements) doivent intervenir ensemble pour la réalisation d'une opération. Niveau supervision Il pilote en temps-réel le procédé de façon à respecter le plan de production en tenant compte de l'état du procédé. Les deux fonctions principales sont la prise de décisions en temps-réel et la surveillance. I.2 Supervision des systèmes discrets 7 Niveau Stratégique comptes-rendus décisions De moins en moins réactif Niveau Planication comptes-rendus décisions Niveau Ordonnancement comptes-rendus décisions Agrégation des informations Niveau Supervision comptes-rendus décisions Niveau Coordination décisions comptes-rendus De plus en plus réactif Niveau Commande Locale décisions comptes-rendus Procédé Figure I.2 Structure hiérarchique de commande Niveau ordonnancement Il détermine le plan prévisionnel de production à appliquer au procédé sur un horizon temporel. C'est-à-dire que pour chaque ressource il détermine la séquence d'opérations à réaliser. Niveau planication Il détermine la quantité de produits à réaliser et l'utilisation des moyens sur un horizon de temps moyen (généralement plusieurs mois). Il est également appelé, dans la littérature, niveau tactique. Ce problème est complexe et doit être basé sur une représentation agrégée des produits, et du procédé. Le plan de production construit lors de la planication dénit, entre autres, les quantités à produire et les produits à fabriquer pour chaque centre de production, les niveaux des stocks... Certaines décompositions font intervenir un niveau au dessus du niveau planication. Il s'agit du niveau stratégique [15]. Il élabore les politiques et stratégies au plus haut niveau de l'entreprise. Les moyens nanciers, matériels et humains sont déterminés à long terme par une série de décisions, compte tenu d'objectifs techniques et économiques. Chaque niveau dialogue avec les niveaux inférieurs et supérieurs directement adjacents. Une information descendante sera désagrégée au fur et à mesure de sa propagation dans les niveaux inférieurs. Inversement, une information ascendante sera agrégée à son passage dans les niveaux supérieurs. Dans le cadre de cette thèse nous nous intéressons plus particulièrement au problème de la supervision, et de la mise en ÷uvre du plan de production. Par conséquent nous détaillons le niveau ordonnancement, ainsi que le niveau supervision, dans les paragraphes suivants I.2.2 et I.2.3. Mais auparavant analysons comment la réactivité peut être mise en ÷uvre aux diérents niveaux, c'est-à-dire comment on peut positionner l'instant d'une prise de décisions vis-à-vis Chapitre I Outils pour la supervision et l'ordonnancement 8 d'horizons temporels et d'évènements asynchrones. Réactivité d'un système de commande Les niveaux les plus hauts ne sont en général pas réactifs, c'est-à-dire que les décisions sont prises à des dates xes, prédénies (au début de chaque semaine, au début de chaque mois...) et donc de façon périodique. Les décisions sont plus ou moins élaborées à partir d'informations provenant du système de production (décision en boucle ouverte ou en boucle fermée). Pour les niveaux bas de commande, la réactivité est de plus en plus prononcée et se traduit par des contraintes d'exécution en temps-réel, comme le montre J.-P. Elloy dans [65]. La réactivité d'un système se dénit par rapport à ses réactions (les décisions qu'il prend) vis-à-vis des informations qu'il reçoit. Elle consiste à prendre une décision à la réception d'une information et donc en dehors des prises de décisions périodiques. Au lieu de se synchroniser avec l'horizon temporel on se synchronise avec des réceptions d'informations qui arrivent de façon sporadique. Quelle est alors la diérence entre un fonctionnement réactif et un fonctionnement en temps-réel? La gure I.3 illustre ces notions. Nous montrons, pour trois séquences d'informations identiques (traits verticaux en bas de l'axe des temps), un fonctionnement non-réactif, un fonctionnement réactif et un fonctionnement en temps-réel (les décisions sont représentées par les ). t décisions non-réactives -aD1 -b-c- D2 D3 I1I2 D4 D5 D6 t décisions réactives t décisions temps-réel Figure I.3 Réactivité d'un système de commande Le premier schéma de cette gure (I.3-a) décrit un mode de prise de décisions non-réactif. Les décisions sont prises à des instants prédénis au début de chaque horizon temporel sur lequel le plan correspondant est élaboré (les horizons sont représentés par les doubles êches). Ce n'est pas le ux d'informations qui provoque la prise de ces décisions. Le second schéma (I.3-b) montre un fonctionnement réactif. C'est-à-dire qu'une décision sera prise après l'arrivée de certaines informations sans attendre la n de l'horizon. Le traitement de l'information et la prise de décision n'étant pas de durée nulle (cette durée est représentée par le rectangle entourant le , et les décisions sont prises aux instants Di ), il peut y avoir des informations qui apparaissent pendant ce traitement (informations entourées en pointillés). Dans un système réactif, le fait de répondre après l'arrivée d'un autre évènement n'est pas critique. Sur notre exemple deux informations I1 et I2 arrivent avant que la décision D2 soit prise, la décision suivante, D3 , est retardée et prendra en compte ces deux informations. Les prises de décisions sont asynchrones et sporadiques vis-à-vis des horizons temporels, et ne sont pas nécessairement toutes synchronisées avec la réception des informations (évènements). On peut conserver des décisions périodiques liées aux horizons. Dans le cadre d'un traitement temps-réel de l'information (I.3-c), il faut avoir pris une décision avant l'arrivée de l'évènement suivant. Il n'y a plus de notion d'horizon temporel. Les prises de décisions doivent être exactement synchrones aux évènements. On considère en général que la I.2 Supervision des systèmes discrets 9 supervision est le premier niveau devant fonctionner en temps-réel. L'ordonnancement se faisant le plus souvent vis-à-vis d'un horizon. I.2.2 Le niveau ordonnancement Ce niveau doit élaborer le plan de production détaillé. On y dénit l'ordre et les dates d'exécution de chaque opération sur chaque machine tout en tenant compte des contraintes imposées par le niveau planication et de la capacité des machines. Ce niveau doit traiter deux problèmes. Le premier, le problème de l'aectation, se pose lorsqu'il s'agit d'allouer des ressources aux opérations préalablement séquencées, en tenant compte des capacités du procédé. Le second, le problème d'ordonnancement, se pose lorsqu'il s'agit de programmer dans le temps, l'exécution de diverses opérations soumises à des contraintes, auxquelles sont attribuées des ressources, de manière à réaliser un objectif donné. Une solution de ce problème détermine l'ordre et le calendrier d'exécution des opérations en xant leurs dates de début [110]. Le plan de production peut être donné comme une suite d'opérations parfaitement ordonnées, on considère alors que l'on a déni un ordonnancement explicite. Généralement le plan obtenu est optimal vis-à-vis d'un critère : il s'obtient par des techniques d'optimisation combinatoire, souvent fondées sur la théorie des graphes, la programmation dynamique, ou des procédures par séparation et évaluation progressive. Il peut également être basé sur des heuristiques. Une autre solution est d'élaborer un ensemble de règles qui dénissent, chaque fois qu'une machine devient libre, l'opération suivante. Généralement ce type de décisions est basé sur l'utilisation de modèles de les d'attentes associées aux ressources, ou sur la dénition d'un plan composé d'un ensemble de solutions admissibles comme dans les thèses de A. Le Gall [105], J.-C. Deschamp [62], J.-C. Billaut [30] et C. Artigues [16]. Une telle stratégie peut être considérée comme la dénition d'un ordonnancement implicite, ou d'un ensemble d'ordonnancements admissibles. Ordonnancements et règles sont dénis soit de façon synchrone vis-à-vis d'horizons prédénis, soit de façon réactive après certains évènements (défaillances, commande urgente...) Dans la suite de notre étude, nous considérons que le niveau ordonnancement dénit un ordonnancement explicite (plan prévisionnel). I.2.3 Le niveau supervision Présentation générale La fonction principale de ce niveau est la prise de décisions en temps-réel. Cette fonction est chargée de résoudre en temps-réel les indéterminismes qui existent encore. Le système doit respecter au mieux l'ordonnancement prévisionnel qui a été calculé au niveau ordonnancement et doit être capable, dans le cas d'un comportement anormal, de faire une redistribution des tâches à eectuer au sein du système en temps-réel, an que la production ne soit pas interrompue à chaque évènement imprévu. Pour piloter le système de production, le niveau supervision s'appuie sur la fonction de surveillance. Cette fonction a pour but de surveiller le procédé à travers les informations provenant du niveau inférieur et de surveiller l'exécution du plan à partir des informations du niveau supérieur. Le niveau supervision peut être schématisé par la gure I.4. La mise en ÷uvre du système d'élaboration des prises de décisions peut se faire à l'aide d'un joueur de réseau de Petri. Il s'agit d'un mécanisme d'inférence particulier exploitant le réseau. Il détermine la liste des transitions franchissables et la transition à franchir. Ainsi il peut faire Chapitre I Outils pour la supervision et l'ordonnancement 10 décisions Surveiller plan comptes-rendus Prise de décisions en temps-réel Surveiller procédé décisions comptes-rendus Niveau supervision Figure I.4 Supervision d'un système de production apparaître les conits, par l'intermédiaire de la liste des transitions sensibilisées. Le choix de la transition à franchir (la décision prise) se basera sur les contraintes venant du plan prévisionnel et d'indicateurs agrégés concernant l'état des ressources (saturée, normale, sous utilisée...). Surveillance du procédé sur informations montantes La surveillance d'un procédé regroupe l'ensemble des traitements temps-réels concernant les défaillances du procédé [58]. Il s'agit de détecter, en temps-réel, tous les comportements anormaux ou non-nominaux (panne de machine...) [143, 51, 42, 162] et d'eectuer un diagnostic. Il faut détecter les situations qui ne correspondent pas à l'exécution de la commande. Qu'il s'agisse d'un dysfonctionnement du procédé qui délivre alors un service non conforme au service attendu, le diagnostic du dysfonctionnement déterminera si l'équipement peut être utilisé en mode dégradé ou s'il doit être mis en état de défaillance, ou qu'il s'agisse de retards sur les opérations de production. La surveillance du procédé permet de donner l'état exact du système de production, et ainsi de prendre les décisions les plus pertinentes possibles. Surveillance de l'exécution du plan sur informations descendantes Il s'agit de surveiller l'exécution du plan prévisionnel déterminé par le niveau ordonnancement. Il faut suivre l'évolution de la production et détecter les divergences entre le plan prévisionnel et l'état du système de production. En eet les systèmes de production sont perturbés et il est rare que le procédé soit, lors de l'exécution du plan, dans les conditions qui ont servi à son calcul. Lorsque les divergences apparaissent, cette fonction les détecte et décide si le plan doit être remis en cause, ou simplement exploité diéremment an de continuer à respecter les contraintes dans un nouvel environnement perturbé. I.3 Outil pour la supervision des systèmes discrets : les réseaux de Petri Un réseau de Petri est un outil graphique et mathématique qui s'applique à un grand nombre de domaines où les notions d'évènements et d'évolutions simultanées sont importantes. Cette I.3 Outil pour la supervision des systèmes discrets: les réseaux de Petri 11 théorie est née de la thèse de C.A. Petri [123], qui traitait de la communication entre les automates, et fut étendue par A.W. Holt au sein du Massachussetts Institute of Technology (MIT), pour aboutir aux réseaux de Petri. Les réseaux de Petri sont aujourd'hui considérés comme un outil de représentation formel qui permet la modélisation, l'analyse et le contrôle des systèmes à évènements discrets qui comprennent des activités en parallèle, concurrentes et asynchrones. Parmi les articles et ouvrages traitant des réseaux de Petri et de leurs propriétés on peut citer les G.W. Brams [31, 32], M. Courvoisier et R. Valette [52], R. David et H. Alla [56, 57], K. Jensen [91], T. Murata [114], J.L. Peterson [122], C. Reutenauer [134]... I.3.1 Présentation Un réseau de Petri (RdP) est un graphe composé de deux types de n÷uds, des places et des transitions. Les places sont représentées par des cercles, les transitions par des barres. Des arcs orientés relient les places aux transitions. Un réseau de Petri marqué contient un nombre entier (positif ou nul) de marques, ou jetons, réparties à travers les places. Cette répartition décrit l'état discret du modèle [151]. Les jetons se déplacent dans le réseau de Petri en respectant les règles d'évolution suivantes. Une transition est sensibilisée si chacune de ses places d'entrée (places amont) contient au moins un jeton (dans le cas le plus simple des réseaux pour lesquels aucun poids n'est attaché aux arcs). Lorsqu'elle est sensibilisée, une transition peut être franchie (tirée). Le tir d'une transition correspond à retirer un jeton de chaque place amont à la transition, et à ajouter un jeton à chaque place aval (place de sortie), voir gure I.5. Le franchissement d'une transition correspond à l'occurrence d'un évènement. p1 p1 t1 p2 p4 t1 Franchissement de t1 p2 p1 p4 t1 Franchissement de t2 p2 t2 t2 t2 p3 p3 p3 t sensibilisée t2 1non-sensibilisée t1 non-sensibilisée t2 sensibilisée p4 t sensibilisée t2 1non-sensibilisée Figure I.5 Évolution du marquage d'un RdP I.3.2 Représentation des contraintes de précédence des gammes Une gamme décrit l'ensemble des opérations, ordonnées dans le temps, pour réaliser un produit. Elle est représentée, dans un réseau de Petri, par une séquence de places et de transitions. Un jeton circulant dans cette séquence de places et de transitions représente un produit en cours de transformation par cette gamme. Les places représentent les diérents états des produits suivant la gamme, et les transitions les évènements correspondant à des débuts ou des ns 12 Chapitre I Outils pour la supervision et l'ordonnancement d'opérations. Un jeton dans une place représente un produit (ou un lot de produits) dans un état. Une contrainte de précédence entre deux opérations d'une même gamme est traduite par une place entre deux transitions (celle de l'évènement n de l'opération précédente et celle de début de l'opération suivante). L'extrait de réseau de la gure I.6 exprime la contrainte de précédence : l'évènement ta précède l'évènement tb . ta tb Figure I.6 Relation de précédence entre deux évènements ta tb Figure I.7 Relations de précédence entre évènements Cependant avec le marquage de la gure I.7, on peut avoir tb avant ta . En fait la contrainte exprimée par le réseau de Petri est plus complexe qu'une relation d'ordre temporelle entre l'occurrence de deux évènements. Elle concerne deux séquences d'évènements, la nième occurrence de ta précède la n + 1ième occurrence de tb ( n 1 ). Une transition représente une famille d'évènements, et le tir d'une transition avec un jeton représente l'occurrence de cet évènement pour le produit correspondant à ce jeton. Il est ainsi possible de représenter le fait que l'évènement tc se produit après ta et tb , gure I.8-a, ou que tc se produit après ta ou tb , gure I.8-b (pas la nième pour ta , tb et tc , mais au total n occurrences de ta et tb pour n occurrences de tc ). ta -a- tb tc ta -b- tb tc Figure I.8 Autres types de relations de précédence entre évènements Un réseau de Petri permet de donner une relation d'ordre partiel complexe entre des ensembles d'occurrences de familles d'évènements. I.3.3 Représentation des mécanismes d'allocation de ressources Les réseaux de Petri permettent d'exprimer facilement les contraintes d'exclusion mutuelle entre deux opérations. La gure I.9 représente le fait que Op1 et Op2 ne peuvent pas se produire I.3 Outil pour la supervision des systèmes discrets: les réseaux de Petri 13 simultanément (parce qu'elles utilisent la même ressource R ). deb1 deb2 R Op1 Op2 fin1 fin2 Figure I.9 Représentation de l'exclusion mutuelle entre deux opérations avec un RdP Il est ainsi possible de préciser les relations de précédences éventuelles induites par les ressources. Par exemple nous voyons que, sur la gure I.9, la ressource R est utilisée pour deux types d'opérations. Avec le marquage de la gure I.10-a le réseau exprime les deux séquences de productions possibles sur R : Op1 Op2 ou Op2 Op1 . Alors que le marquage de la gure I.10-b représente les précédences potentielles entre deux produits devant subir la même opération avec la ressource R , soit la séquence Op1 Op1 . deb1 Op1 R fin1 -a- deb2 deb1 Op2 Op1 fin2 fin1 R deb2 Op2 fin2 -b- Figure I.10 Représentation des conits avec un réseau de Petri I.3.4 Détection des interblocages Un interblocage apparaît dans un atelier à cause d'une mauvaise allocation des ressources. Cette situation vient du fait que certains produits détiennent des ressources et attendent, indéniment, que d'autres ressources, occupées par d'autres produits, se libèrent (cas de (( l'attente circulaire ))) [50]. Dans le cas où un atelier est modélisé par un réseau de Petri, un interblocage correspond à un blocage mortel de ce dernier. Dans le cas d'un réseau de Petri n'ayant que des arcs de poids un, ce blocage mortel provient du fait qu'un siphon, contenu dans le réseau, s'est vidé. Un siphon est un sous-ensemble de places d'un réseau de Petri, pour lesquelles toutes les Chapitre I Outils pour la supervision et l'ordonnancement 14 transitions d'entrée sont également des transitions de sortie, et est déni comme suit : Dénition 1. Soit R un réseau de Petri déni par le quadruplet < P; T; Pre; Post > (voir dénition 9) où P est l'ensemble des places, T l'ensemble des transitions. Soit pk l'ensemble des transitions amont de la place pk , et soit pk l'ensemble des transitions aval de la place pk . Un siphon S , est un ensemble de places S P tel que S S ( S = [pk 2S pk et S = [pk 2S pk ) Le réseau de Petri de la gure I.11 décrit un mécanisme d'allocation de ressources pouvant mener à un blocage. En eet, après le franchissement de la séquence t1 t2 t3 t1 t1 , plus aucune transition n'est sensibilisée. Il y a deux jetons dans la place p2 (qui détiennent les ressources R ) qui ont besoin de la ressource B pour évoluer, et un jeton dans la place p4 (qui détient la ressource B ) qui attend la ressource R . B R p1 t1 p2 t2 p3 t3 p4 t4 p5 t5 p6 t6 p7 Figure I.11 Exemple d'interblocage dans un RdP Les places R , B , p3 , p5 et p6 forment le siphon, qui en se vidant a provoqué le blocage du réseau de Petri. Nous remarquons que le franchissement des transitions t2 , t3 , t4 et t6 ne fait pas évoluer le nombre global de marques à l'intérieur des places du siphon, alors que t5 va incrémenter, d'une unité, le nombre de marques, et que t1 va décrémenter, d'une unité, le nombre de marques. Trois stratégies d'évitement des interblocages peuvent être utilisées. La première consiste, lors d'un interblocage, à déterminer les ressources impliquées et à les (( désallouer )) pour revenir à un fonctionnement normal (détection et recouvrement). Cela revient à rétrograder un jeton de la place p2 pour le faire revenir en p1 . La seconde consiste à rajouter un mécanisme de contrôle de façon à ce que l'interblocage soit impossible (évitement statique) [73, 72, 71]. Nous appliquerons cette méthode au cours du paragraphe V.3.2. La troisième consiste à déterminer, lors de chaque changement d'état, quels sont les états sains, et à forcer le procédé à évoluer vers ces états [157, 22, 29, 24]. Elle consiste donc à rajouter une décision associée à la transition t1 qui contrôlera le passage des jetons. La diérence avec le cas précédent est que la décision ne résulte pas directement du modèle réseau de Petri. Elle peut par exemple résulter d'un ordonnancement prévisionnel. I.3.5 Utilisation des réseaux de Petri pour la supervision Les réseaux de Petri sont couramment utilisés pour le pilotage en temps-réel des systèmes de production car ils permettent de représenter l'état réel du système. De plus l'analyse des (( bonnes propriétés )) du réseau modélisant la commande, ainsi que la détection des interblocages, permet de s'assurer de la pertinence de la commande. I.4 Outils pour l'ordonnancement des systèmes discrets 15 Les réseaux de Petri sont utilisés dans le cadre de la surveillance des systèmes de production, ils permettent de décrire en temps-réel le comportement dynamique du système. Les transitions représentant des occurrences d'évènements, il est ainsi possible de connaître les évènements attendus (transitions sensibilisées) et on peut les comparer avec les évènements provenant du procédé pour détecter des comportements anormaux du système. Quand une défaillance apparaît le réseau de Petri peut aider au diagnostic en jouant la séquence à l'envers comme le présente R. Valette et L.A. Künzle dans [154]. Partant du principe qu'une catastrophe industrielle ne vient pas d'une seule erreur, mais de l'enchaînement de plusieurs (( mauvaises décisions )), les auteurs de [115, 137, 136, 138, 135] proposent de contrôler le franchissement de certaines transitions, avec la même vision que les travaux de P.J.G. Ramadge et W.M. Wonham [132] et que les auteurs de [113, 112, 160], pour éviter d'arriver dans un état de catastrophe industrielle. Il convient de souligner le fait que la communauté réseau de Petri travaille essentiellement sur la surveillance des informations montantes et sur l'établissement de commandes prenant essentiellement en compte l'état du procédé. Peu d'auteurs traitent de la surveillance des informations descendantes pour déterminer la commande. On peut cependant citer : H. Atabakhche [17] qui dénit un joueur de réseau de Petri résolvant en temps-réel les conits existant en exécutant le plan de production déni au niveau ordonnancement (de manière explicite ou implicite). S. Julia [94, 95, 93] qui dénit un joueur de réseau de Petri, résolvant en temps-réel les conits en exécutant le plan et à partir d'informations sur les marges des produits. H. Camus [37] qui dénit le réseau de Petri de commande du système de production par transformation d'un réseau de Petri représentant toutes les contraintes d'ordonnancement. I.4 Outils pour l'ordonnancement des systèmes discrets I.4.1 Introduction Dans le cadre de la gestion de production il faut, en particulier, représenter des tâches qui ont une durée, des relations de précédence entre les tâches, des évènements comme les allocations de ressources, les débuts et ns de tâches... Les principales approches fondées sur la théorie des graphes pour représenter les systèmes de production ont consisté : Soit à associer les tâches aux n÷uds et les contraintes aux arcs : graphes potentiels-tâches [142, 110]. Soit à associer les évènements aux n÷uds et les tâches à des arcs : graphes potentielsétapes [142, 110]. Soit à utiliser des graphes avec deux types de n÷uds (places et transitions d'un réseau de Petri, ronds et rectangles d'un (( state-task network )) [99]). Dans le cadre d'un réseau de Petri, les évènements sont associés aux transitions alors que les places sont utilisées pour décrire les tâches et les relations de précédence. Si les tâches sont associées aux transitions, alors toutes les places décrivent des relations de précédence. Chapitre I Outils pour la supervision et l'ordonnancement 16 Dans la suite du manuscrit nous utiliserons (( graphe potentiels )) pour désigner les graphes composés d'un seul type de n÷ud. Nous allons maintenant détailler ces approches. I.4.2 Les graphes potentiels Présentation Un graphe est un outil mathématique permettant de représenter la structure de nombreux problèmes : représentation d'un réseau de communication, représentation d'une relation binaire (qu'elle soit algébrique, mécanique, chimique...), représentation d'un ensemble de relations de précédence (opération dans un atelier), représentation de l'évolution d'un système (passage d'un état à un autre). Le premier article sur les graphes remonte à L. Euler, (( Solutio problematis ad geometriam situs pertinentis )) 1736, mais c'est en 1946 que la théorie des graphes a été utilisée et développée dans le cadre de la recherche opérationnelle (Kuhn 1955, Ford et Fulkerson 1956, Roy 1959...). Depuis 1960, et l'apparition de l'informatique, la recherche concernant les graphes, et leurs applications s'est fortement développée [81]. Dénition 2. Un graphe est un ensemble de n÷uds reliés par des arcs orientés. Un graphe G est déni par G = [; U ] , où : est l'ensemble des n÷uds, ou des sommets. Si N = card() , le graphe G est dit d'ordre N . U est un ensemble composé de couples ordonnés de sommets appelés arcs. Graphes potentiels-tâches et graphes potentiels-étapes Dans le graphe potentiels-tâches chaque sommet représente une tâche, et chaque arc une contrainte de précédence vue comme une inégalité de potentiels. La longueur de l'arc représente ainsi l'intervalle de temps minimum séparant le début des tâches associées aux extrémités de l'arc. Dans un graphe potentiels-étapes chaque tâche élémentaire est représentée par un arc. Les sommets caractérisent des évènements et les contraintes de précédence sont représentées par des arcs. En fait les tâches sont vues comme des contraintes de précédence particulières entre les évènements (( début de tâche )) et (( n de tâche )). Un arc entre le n÷ud (( n de tâche 1 )) et le n÷ud (( début de tâche 2 )) signie que la tâche 2 ne peut pas commencer avant que la tâche 1 ne soit terminée. Dans la suite de ce mémoire, nous nous intéresserons essentiellement aux graphes potentielsétapes car ils permettent de représenter précisément les évènements débuts et ns des opérations. Représentation du temps Dans un graphe potentiels les contraintes sont formalisées grâce à la notion d'inégalité de potentiels [142]. Il est ainsi possible de représenter des contraintes de localisation temporelle (une opération ne peut commencer avant telle date, ou doit être achevée avant telle autre), des contraintes de précédence, et d'autres contraintes plus complexes en considérant plusieurs inégalités de potentiels liées entre elles. Prenons comme exemple le graphe potentiels de la gure I.12. Il décrit quatre opérations à réaliser ( Op1 , Op2 , Op3 et Op4 ). Les arcs et les superpositions des n÷uds permettent de I.4 Outils pour l'ordonnancement des systèmes discrets 17 représenter les contraintes de précédence entre les opérations : Op2 après Op1 , Op4 après Op3 et Op1 . La durée de l'opération Op1 est représentée par l'inégalité de potentiels suivante : finOp1=debOp2 , debOp1 b; b 0 (I.1) Ce qui signie que l'évènement finOp1 =debOp2 se produira après au moins debOp1 + b . La diérence de potentiels exprime en fait une borne minimale pour la date au plus tôt. debut finOp = debOp1 debOp21 finOp2 b c a d i e h f g debOp3 finOp3 = finOp4 debOp4 fin Figure I.12 Exemple de graphe potentiels-étapes Si nous regardons la date d'occurrence de l'évènement finOp3 =debOp4 , nous voyons que deux chemins mènent à ce n÷ud : ( debut , debOp1 , finOp1 =debOp2 , finOp3=debOp4 ) et ( debut , debOp3 , finOp3=debOp4 . Les contraintes de précédence représentées par les arcs signient que finOp3 =debOp4 ne peut avoir lieu qu'après debOp3 et finOp1=debOp2 , donc : finOp3=debOp4 , debut max(a + b + i; e + f ) (I.2) Avec a , b , e , f et i 0 . Les diérences de potentiels attachées aux arcs font partie de <+ . La représentation d'une borne maximale pour la durée d'une opération se fait en introduisant des arcs de longueur négative. La gure I.13 montre une opération ( Op ) bornée par a et b . a debOp finOp ,b Figure I.13 Exemple de graphe potentiels-bornes Si nous écrivons les inégalités de potentiels décrites par ce graphe potentiels nous avons : finOp , debOp a et debOp , finOp ,b que l'on peut transformer en finOp , debOp b . Nous obtenons alors : a finOp , debOp b (I.3) Les diérences de potentiels associées aux arcs sont maintenant dénies sur < . Ce type de graphe est appelé graphe potentiels-bornes [142, 110]. Représentation des contraintes de précédence des gammes Les contraintes de précédence des gammes peuvent toutes être représentées par des inégalités de potentiels liées par la conjonction ET. La gure I.14 représente deux gammes. La première consiste à faire Op1 puis Op2 et la seconde Op3 puis Op4 . Nous obtenons un graphe conjonctif dans lequel les inégalités de potentiels doivent être vériées conjointement pour tous les arcs du graphe. Chapitre I Outils pour la supervision et l'ordonnancement 18 finOp1 = debOp2 finOp2 b c a d e h f g debOp3 finOp3 = finOp4 debOp4 debOp1 debut fin Figure I.14 Représentation des contraintes de précédence des gammes Dans les graphes potentiels, un n÷ud représente l'occurrence d'un évènement qui ne se produira qu'une seule fois. Représentation des contraintes liées aux ressources Les contraintes liées aux ressources sont représentées en ajoutant au graphe conjonctif (représentant les gammes) un ensemble d'arcs non-conjonctifs. Les arcs non-conjonctifs représentent des inégalités de potentiels reliées par un OU. Reprenons l'exemple de la gure I.14 en considérant que les opérations Op1 et Op3 sont en exclusion mutuelle car elles utilisent la même ressource. Nous obtenons alors la gure I.15 où les arcs en pointillés représentent l'ensemble des arcs non-conjonctifs (lorsqu'il n'y a que deux arcs non-conjonctifs ils sont en fait disjonctifs, c'est-à-dire reliés par un OU exclusif) représentant la contrainte sur la ressource. debut finOp = debOp1 debOp21 finOp2 b c a d e h f g debOp3 finOp3 = finOp4 debOp4 fin Figure I.15 Graphe potentiels avec un ensemble d'arcs non-conjonctifs La date d'occurrence de l'évènement finOp2 est donnée par le potentiel : finOp2 , debut c + b + [max(a; e + f )OUa] (I.4) Le OU exprime le fait que l'on peut faire l'opération Op1 avant Op3 ou Op3 avant Op1 . L'ensemble d'arcs non-conjonctifs ne modélise pas la ressource, mais une relation d'ordre potentielle entre les opérations (précédence potentielle) qui est la conséquence des mécanismes d'allocation des ressources. Un plan de production explicite, représenté par un graphe potentiels, ne fera plus apparaître, parmi les ensembles d'arcs non-conjonctifs, que les arcs donnant les choix réalisés pour les aectations de ressources. Le graphe potentiels obtenu est conjonctif. Une production à réaliser sur un système de production est alors représentée par un graphe potentiels avec des arcs conjonctifs et des ensembles d'arcs non-conjonctifs qui représentent les précédences potentielles entre les opérations. L'expression de ces précédences peut devenir extrêmement complexe et dicilement maîtrisable (cas des ressources cumulatives, par exemple). I.4 Outils pour l'ordonnancement des systèmes discrets 19 Utilisation des graphes potentiels pour dénir un plan de production Une première catégorie de méthodes est basée sur l'exploration systématique des chemins du graphe potentiels (algorithme (( branch and bound )) par exemple). Les chemins contenus dans le graphe potentiels sont parcourus et évalués et, à partir d'un critère, le parcours optimal est retenu. Une deuxième catégorie de méthodes est basée sur l'utilisation de la programmation mathématique. Le graphe potentiels représente un ensemble de contraintes de potentiels entre deux sommets, ces contraintes se traduisent immédiatement en équations algébriques. Pour résoudre le problème d'ordonnancement alors posé, on peut employer la programmation linéaire, ou la programmation dynamique (pour les problèmes de complexité exponentielle). Une troisième catégorie de méthodes est basée sur la caractérisation d'un ensemble de solutions toutes admissibles ou bien sur l'élimination de certaines solutions non admissibles. Ces méthodes consistent à caractériser non pas une solution unique mais un ensemble de solutions. Les méthodes et techniques développées pour la résolution de ce type de problèmes s'inscrivent dans la problématique de l'analyse sous contraintes [40, 142]. I.4.3 Les réseaux de Petri Nous avons déjà déni les réseaux de Petri ainsi que la façon dont ils représentent les contraintes de précédence des gammes et les mécanismes d'allocation de ressources dans les paragraphes I.3.2 et I.3.3. Nous avons vu que les réseaux de Petri permettent de prendre en compte le temps de manière qualitative. Nous avons également illustré le fait que les graphes potentiels permettaient directement de passer à une prise en compte des contraintes quantitatives en associant des potentiels aux arcs. Nous allons voir, dans les paragraphes suivants, comment les réseaux de Petri ont été étendus pour pouvoir, eux aussi, prendre en compte le temps de manière quantitative. Nous regardons les quatre extensions suivantes : les réseaux de Petri ptemporisés, les réseaux de Petri t-temporisés, les réseaux de Petri t-temporels et les réseaux de Petri p-temporels. Puis nous regardons comment sont utilisés les réseaux de Petri pour dénir un plan de production. Réseaux de Petri p-temporisés Les réseaux de Petri p-temporisés sont des réseaux de Petri pour lesquels on associe une durée aux places représentant une activité. Lorsqu'un jeton est mis dans une place temporisée, ce dernier est réservé et ne sensibilise pas la (ou les) transition(s) aval pendant la durée de la temporisation. Une fois la temporisation écoulée le jeton devient à nouveau visible et peut continuer à évoluer dans le réseau. Une opération d'une durée s est représentée par la gure I.16. debOp Op finOp [s] Figure I.16 RdP p-temporisé Dénition 3. Un réseau de Petri p-temporisé est une paire Np,tpses =< N; s > où : N est un réseau de Petri déni par < P; T; Pre; Post > muni d'un marquage initial M0 . Chapitre I Outils pour la supervision et l'ordonnancement 20 s est la durée de séjour minimale du jeton. s : P ! <+ qui à chaque place fait correspondre un nombre rationnel positif décrivant la durée de séjour minimale du jeton dans la place. s représente donc la durée d'indisponibilité de la marque pour la validation des transitions aval. On a une relation de précédence avec contrainte au plus tôt. Si l'on prend le réseau de Petri de la gure I.17-a, avec tin représentant la date de franchissement de tin pour la nième fois, on a : tbn , tan s ta (I.5) ta [s] tc [s] tb tb -a- -b- Figure I.17 Exemple de contraintes exprimées par un RdP p-temporisé Le réseau de la gure I.17-b représente une contrainte plus compliquée : Soit tbn , tak avec tak tcl et n = k + l . Soit tbn , tcl avec tcl tak et n = k + l . Réseaux de Petri t-temporisés Les réseaux de Petri t-temporisés [133], pour lesquels on associe une durée aux transitions fonctionnent de façon équivalente aux réseaux de Petri p-temporisés. Dès qu'une transition est sensibilisée, les jetons la sensibilisant sont réservés et la transition est franchie (avec les jetons réservés) après l'écoulement de la temporisation qui lui est associée. La gure I.18 donne le réseau de Petri t-temporisé d'une opération d'une durée f . Op [f ] Figure I.18 RdP t-temporisé Dénition 4. Un réseau de Petri t-temporisé est une paire Nt,tpses =< N; f > où : N est un réseau de Petri déni par < P; T; Pre; Post > muni d'un marquage initial M0 . I.4 Outils pour l'ordonnancement des systèmes discrets 21 f est la fonction durée de franchissement. f : T ! <+ , qui à chaque transition fait correspondre un nombre rationnel positif décrivant la durée du franchissement. On retrouve encore une relation de précédence avec contrainte au plus tôt, mais elle est exprimée vis-à-vis de l'ensemble des évènements précédents. Avec le réseau de la gure I.19 on peut exprimer la contrainte : , tbn , max tan ; tcn f (I.6) tc tb ta [f ] Figure I.19 Exemple de contrainte exprimée par un RdP t-temporisé Réseaux de Petri t-temporels Les réseaux de Petri t-temporels, dénis par P. Merlin [111], sont des réseaux de Petri pour lesquels on associe une fenêtre temporelle pendant laquelle une transition sera sensibilisée. Cette extension permet de représenter les mécanismes de chien de garde. La gure I.20 représente une opération Op d'une durée comprise entre min et max . [min; max] p1 t1 p2 t2 p3 Figure I.20 RdP t-temporel Lorsque t1 est franchie, le jeton est mis dans la place p2 . Le jeton est visible, la transition t2 est sensibilisée, mais cette dernière ne sera franchissable que dans l'intervalle de temps [min ; max] le temps initial étant la date de sensibilisation de la transition t2 . Dénition 5. Un réseau de Petri t-temporel est une paire Nt,tpels =< N; > où : N est un réseau de Petri déni par < P; T; Pre; Post > muni d'un marquage initial M0 . est une fonction qui à chaque transition ti fait correspondre un intervalle fermé rationnel (ti ) = [min (ti ); max(ti )] qui décrit une durée de sensibilisation. Avec ce modèle on peut représenter des relations de précédence avec contraintes au plus tôt et au plus tard. Par exemple le réseau de la gure I.21 nous donne la relation : , min tbn , max tan ; tcn max (I.7) Chapitre I Outils pour la supervision et l'ordonnancement 22 tc tb ta [min; max] Figure I.21 Exemple de contrainte exprimée par un RdP t-temporel Réseaux de Petri p-temporels An de pouvoir représenter des contraintes minimales et maximales de temps de séjour sur les places, W. Khansa a déni les réseaux de Petri p-temporels [96, 97, 98, 36] et la notion de marquage mort. Des intervalles de temps sont associés aux places, et correspondent aux durées de séjour admissibles des jetons dans les places. La gure I.22 exprime suivante : h 0 la0 contrainte i un jeton dans la place p2 ne sensibilise t2 que pendant l'intervalle min ; max , le temps initial étant l'introduction du jeton dans p2 ; passé la borne maximale ( 0max ) de la fenêtre, le marquage devient mort (il ne peut plus être utilisé pour franchir une transition), ce qui signie que la contrainte maximum de séjour du jeton dans la place a été violée. h min ; max p1 t1 0 0 p2 i t2 p3 Figure I.22 RdP p-temporel Dénition 6. Un réseau de Petri p-temporel est une paire Np,tpels =< N; 0 > où : N est un réseau de Petri déni par < P; T; Pre; Post > muni d'un marquage initial M0 . 0 esth une fonction qui ài chaque place pk fait correspondre un intervalle fermé rationnel 0 = 0min (pk ); 0max(pk ) qui décrit un intervalle potentiel de tir. Cet intervalle est relatif à l'instant d'arrivée du jeton dans la place. Avec ce modèle on peut exprimer une relation de précédence avec contraintes au plus tôt et au plus tard entre deux occurrences d'évènements indépendamment des autres relations de précédence. Par exemple la gure I.23 nous donne la relation : 0min tbn , tan 0max Utilisation des réseaux de Petri pour dénir un plan de production (I.8) L'utilisation des réseaux de Petri pour la dénition d'un plan de production a fait l'objet de nombreuses études. Dans le cas cyclique l'analyse des réseaux permet de donner des résultats sur la faisabilité d'un plan. La résolution du problème d'ordonnancement permet de diérencier deux approches. Dans la première, le modèle réseau de Petri sert à exprimer un problème d'optimisation résolu par une heuristique, un algorithme (( branch and bound )), la programmation linéaire... Dans la seconde, le modèle réseau de Petri est simulé et l'ordonnancement est ainsi obtenu en résolvant les conits qui apparaissent. I.4 Outils pour l'ordonnancement des systèmes discrets 23 ta tb h min ; max 0 0 i Figure I.23 Exemple de contrainte exprimée par un RdP p-temporel Cas cyclique P. Chrétienne [49, 40] utilise les réseaux de Petri t-temporisés pour modéliser et résoudre des problèmes d'ordonnancement. Pour cela il a étudié l'analyse des propriétés des réseaux de Petri t-temporisés, et déni la notion d'exécution contrôlée réalisable. Il a appliqué ces résultats dans le cadre d'ordonnancements cycliques et d'exécution au plut tôt. Les auteurs de [117, 116, 38, 37, 100] traitent également le problème d'ordonnancement cyclique à l'aide de réseaux de Petri. En partant d'un réseau modélisant son procédé avec tous ses degrés de liberté, ils ont déterminé une approche basée sur les réseaux de Petri déterministes qui donne un ordonnancement optimal. S. Julia [94, 95, 93] détermine un ordonnancement cyclique pour une cellule exible. Un sous-ensemble de contraintes agrégées est déterminé à partir du réseau, puis un algorithme de programmation linéaire permet de calculer la durée minimale pour un cycle. Ensuite le réseau est utilisé pour exprimer l'ensemble des contraintes et l'ordonnancement est déduit par une heuristique en temps-réel. W. Khansa [96] a déni les réseaux de Petri p-temporels et la notion de marquage mort (cf I.4.3) pour traiter le problème d'ordonnancement cyclique avec des contraintes de temps de séjour maximal dans une place. Puis il en a étudié les propriétés an de déterminer les conditions d'existence de fonctionnement répétitif de ces réseaux. Enn il a déterminé des algorithmes permettant de calculer un ordonnancement cyclique avec contraintes de séjour, permettant de modier son ordonnancement, en utilisant les marges, pour absorber les perturbations. Cas acyclique P. Richard [140, 139] utilise les réseaux de Petri pour dénir un ordonnancement dans le cas acyclique. Son approche est basée sur l'utilisation d'une classe particulière des réseaux de Petri, les graphes d'évènements avec contraintes de ressources (GETR). Il modélise le procédé sur lequel on veut ordonner la production. Puis il détermine un ordonnancement optimal en se basant sur la programmation logique avec contraintes. Il a également déni une heuristique, basée sur la résolution des conits à l'aide de règles de priorité dénies à partir du résultat de l'ordonnancement établi sans contraintes de ressources (encore appelé à capacité innie ou problème principal), pour déterminer un ordonnancement. D. Azzopardi et S. Lloyd [21, 20, 19] se servent des réseaux de Petri pour dénir un plan de production. Leur approche est basée sur les réseaux de Petri p-temporisés, qui permettent de décrire les séquences faisables. La résolution du problème d'ordonnancement consiste à atteindre un marquage particulier du réseau. Ils utilisent alors un algorithme de type (( branch and bound )) pour explorer les états accessibles et dénir le plan. D.Y. Lee et F. DiCesare [106] obtiennent un plan de fabrication en modélisant le procédé par un réseau de Petri t-temporisé puis en utilisant une heuristique. Le problème d'ordonnancement est modélisé par un réseau de Petri puis le graphe d'accessibilité est généré an de dénir le plan optimum. P. Yim et A. Lefort [161, 107] dénissent un modèle qui cherche à unier d'une part les Chapitre I Outils pour la supervision et l'ordonnancement 24 réseaux de Petri et d'autre part les CSP (constraint satisfaction problems). À partir de ce modèle ils déterminent un ordonnancement en utilisant un algorithme de recherche de séquences basé sur l'arbre des marquages accessibles. C. Valentin-Roubinet [149, 147, 148] modélise le procédé à l'aide d'un réseau de Petri coloré associé à un système d'équations, puis dénit le plan de fabrication en résolvant les conits qui apparaissent lors de la simulation de son modèle. La séquence simulée correspond au plan de fabrication. Une approche similaire a été utilisée par U. Christmann et H.M. Hanisch dans [48]. A. Pagès et H. Pingaud [118, 119] dénissent un ordonnancement au plus tard en modélisant le procédé par un réseau de Petri puis en le jouant à l'envers et en résolvant les conits au fur et à mesure de leur apparition. En cas d'échec un mécanisme de retour en arrière permet de remettre en cause des décisions déjà prises. I.4.4 Les state-task network E. Kondili, dans [99], traite le problème de l'ordonnancement des procédés discontinus en les modélisant par des réseaux états-opérations (STN, State-Task Network) et en utilisant la programmation linéaire à variables mixtes. Un STN représente un procédé discontinu par un graphe, il décrit les opérations que subit la matière au cours de son passage dans le procédé (la gamme, encore appelée recette dans le vocabulaire du génie des procédé) et l'état du produit après chaque transformation. Le graphe est composé de deux types de n÷uds. Les ronds représentent l'état de la matière après les opérations, et les rectangles représentent une opération de transformation de la matière (voir gure I.24). Matière première Réaction Produit Figure I.24 Exemple de State-Task network L'ordonnancement s'obtient en utilisant la programmation linéaire avec variables mixtes. L'horizon de l'ordonnancement est divisé en intervalles de temps égaux, le temps est ainsi discrétisé. Les évènements liés à la production (début d'opération, allocation de ressources) ne sont pris en compte qu'à la frontière entre les intervalles. Trois catégories de variables sont créées. Les premières décrivent l'utilisation des ressources, les secondes donnent la taille des lots de matière, et les troisièmes donnent la quantité de produit pour chaque état, cela à chaque intervalle de temps. Basé sur ces contraintes, un algorithme de programmation linéaire permet d'obtenir l'ordonnancement. Cette approche, bien que développée pour des systèmes discontinus, ne prend pas en compte les spécicités des systèmes discontinus (durées des transferts par exemple), et par conséquent se rapproche des méthodes d'ordonnancement pour les systèmes discrets. I.4.5 Discussion sur les modèles utilisés pour l'ordonnancement Rappelons tout d'abord que notre but n'est pas l'ordonnancement en tant que tel, mais la supervision et donc le pilotage en temps-réel du système de production. Dans ce cadre les (( statetask network )) ne répondent pas à nos préoccupations car la démarche de mise en équation qui leur est associée est fondée sur un temps discrétisé. Toute représentation d'un mécanisme tempsréel et asynchrone (cf paragraphe I.2.1) dans ce cadre semble a priori exclue. Par contre, aussi bien les réseaux de Petri que les graphes potentiels sont fondés sur un I.5 Supervision des systèmes discontinus 25 temps continu et sont donc susceptibles d'être utilisés pour la supervision. Les contraintes de précédence quantitatives exprimées par les réseaux de Petri relient des ensembles d'évènements. Cela alourdit la représentation d'un plan unique mais facilite l'analyse des problèmes cycliques qui sont en eet le domaine de prédilection des applications des réseaux de Petri aux problèmes d'ordonnancement. Une autre diérence importante entre les graphes potentiels et les réseaux de Petri est que la traduction en temps absolu des contraintes de précédence quantitatives, exprimées en temps relatif dans les deux cas, est plus facile dans le premier cas que dans le second. En eet les graphes potentiels ont un n÷ud origine donnant plus directement la référence d'un temps absolu sur l'horizon décisionnel qu'un marquage initial distribué dans un ensemble de places. De plus, lorsque l'approche quantitative est fondée sur les réseaux t-temporisés, les contraintes de précédence sont exprimées vis-à-vis de la date de sensibilisation de la transition considérée et non vis-à-vis d'un n÷ud du graphe. Nous reviendrons sur ces discussions au chapitre V quand nous aborderons eectivement le pilotage en temps-réel dans le cadre de la supervision. Pour l'instant nous allons poursuivre dans une autre direction, celle de la nécessité de manipuler des variables continues dans nos modèles et donc des insusances des réseaux de Petri dans ce contexte. I.5 Supervision des systèmes discontinus I.5.1 Qu'est-ce qu'un système discontinu? Procédés hybrides, discontinus... Ces noms sont applicables à beaucoup de systèmes de production. Cependant, s'ils évoquent tous une notion de système composé d'une partie discrète et d'une partie continue, ils couvrent un champ de systèmes de production très vaste. Ainsi on y trouve des ateliers couplant une production continue de matière avec un traitement discret (c'est-à-dire par lots) de cette matière (fonderie [125]), des ateliers parcourus par un ux de pièces traité comme un ux continu de matière [18, 3], des ateliers manufacturiers pour lesquels il est nécessaire d'avoir une vue très détaillée des diérentes trajectoires des robots les composant, des ateliers du génie des procédés... Les systèmes que nous considérons plus particulièrement proviennent de la problématique du génie des procédés. Il s'agit de systèmes transformant une matière première continue (e.g. uide, gaz) à l'aide d'appareils de type continu et/ou d'appareils de type discontinu. Un équipement de type continu transforme la matière progressivement au fur et à mesure de son passage, comme dans les réacteurs tubulaires, les séparateurs, les échangeurs de chaleur. Un équipement de type discontinu transforme un lot de quantité nie de matière après l'avoir chargé. L'ensemble de la matière y est transformé simultanément. Ces procédés se rencontrent couramment dans les industries agro-alimentaires, pharmaceutiques ou biotechnologiques. L'enchaînement des opérations (la recette) en tenant compte de la disponibilité des équipements est complexe et nécessite l'utilisation de méthodes adaptées à ce type de problèmes. S'il est tentant d'utiliser directement les méthodes et concepts dénis pour le cas manufacturier, il est hélas dicile de le faire car le traitement de la partie continue ne peut pas être négligé et, de plus, il devient plus complexe du fait de l'augmentation du nombre de phases de démarrage et d'arrêt. Le paragraphe suivant liste les principaux problèmes posés par les systèmes discontinus. I.5.2 Spécicités des systèmes discontinus par rapport aux systèmes discrets Tout d'abord, l'aspect continu de la matière doit être pris en compte. Il est nécessaire d'en avoir une représentation an de suivre son évolution à travers la dynamique des variables conti- 26 Chapitre I Outils pour la supervision et l'ordonnancement nues la décrivant. Dans les systèmes discontinus les durées opératoires sont variables. En eet la vitesse du processus de transformation du lot dépend de conditions opératoires (température, pression, masse, composition...). De plus il est possible de modier les paramètres (la température par exemple) de la transformation an de changer la durée de cette dernière tout en conservant une qualité de fabrication acceptable. La matière étant continue, il est impossible d'identier ou de saisir un élément (au sens d'une entité atomique élémentaire tel un produit manufacturier) [131]. Une diculté, directement liée à la nature continue de la matière, concerne le transfert de matière entre deux réservoirs. Il est impératif que l'utilisation de chaque réservoir soit synchronisée avec l'autre et avec des équipements de liaison comme une pompe fournissant l'énergie nécessaire au transfert. Pendant toute la durée du transfert ces équipements sont liés et cela ne peut être négligé [63]. Il peut arriver, comme dans le cas du traitement thermique, qu'il ne soit pas toléré d'attente entre deux opérations. Par exemple le passage dans un échangeur de chaleur pour arrêter la réaction dans la fabrication des explosifs. Une autre diculté liée au caractère continu concerne les stockages. Il est impossible d'utiliser des stocks (( sauvages )) comme c'est le cas dans l'industrie manufacturière où l'on peut stocker des pièces devant les machines, ou dans un coin de l'atelier. Il paraît bien dicile de stocker 100 l à côté d'un fermenteur en attendant que celui-ci se libère. C'est pourquoi les éléments de stockage doivent être explicitement représentés dans les modèles du procédé. Ils ne peuvent être négligés comme c'est souvent le cas dans l'industrie manufacturière. Les stocks ayant une capacité nie, il convient de faire attention à ne pas les faire déborder comme le soulignent A. Pagès et H. Pingaud dans [118]. La capacité d'un stock s'exprime par une variable de type réel, et non de type entier. La quantité de produit à l'intérieur évolue de façon continue dans le temps. La décision d'ajouter un lot dans le stock devra prendre en compte les alimentations et vidanges prévues sur ce dernier jusqu'au transfert complet de la matière. En eet il convient de savoir si le volume contenu dans le stock restera ou non dans les limites spéciées, à tout instant [127, 126]. Il est par conséquent important de pouvoir faire le bilan de matière du stock. La gure I.25 montre l'évolution d'un stock continu (traits pointillés). Le bilan matière est : dm = Fe , Fs (si Fe Fs alors m(t) augmente, sinon il diminue). La représentation discrète est dt donnée en trait plein. Dans la représentation discrète chaque changement du volume de matière stockée est immédiatement pris en compte, alors que dans le cas continu les transferts ne sont pas négligés. On voit par exemple, dans la partie encerclée, que l'on vide le stock alors que l'ajout de matière précédent n'est pas terminé. Donc, compte tenu des débits choisis ici, le volume du stock continue d'augmenter. Toutefois il n'atteint jamais le niveau maximal, contrairement à ce que décrit la représentation discrète. Comme un système discontinu fabrique un ensemble de produits, le stockage de matière intermédiaire doit être fait de telle sorte que les diérents produits ne se mélangent pas. Les mesures d'hygiène, et la variété des produits, imposent un nettoyage fréquent des équipements. Ce nettoyage peut être périodique, ou systématique. Il doit être considéré comme une opération à part entière, nécessitant des ressources particulières (vapeur d'eau, acide, antiseptiques...) [23]. De plus les systèmes discontinus sont sensibles aux interblocages (cf I.3.4). En eet [50] dénit quatre conditions nécessaires à l'occurrence d'un interblocage : l'exclusion mutuelle ; la non-préemption ; la condition (( détenir et attendre )) (un lot détient des ressources et en attend I.5 Supervision des systèmes discontinus 27 Capacité Max m(t) t Figure I.25 Comparaison entre l'évolution d'un stock continu et sa représentation discrète d'autres détenues par d'autres lots) ; l'attente circulaire. Les systèmes discontinus possèdent, dans la plupart des cas les trois premières conditions. Le traitement de plusieurs produits dans un même atelier complique l'allocation des ressources, pouvant faire apparaître des attentes circulaires. Par exemple si une recette nécessite deux réactions entrecoupées d'une phase de repos, les lots devant quitter les réacteurs, après la première réaction, attendront qu'un réservoir soit libre, alors que les lots devant quitter les réservoirs attendront qu'un réacteur soit libre. Il est à noter que même si le procédé est faiblement automatisé, il est sensible aux interblocages. Les contraintes viennent des chemins possibles entre les réservoirs et de la conguration des systèmes de transport commun à plusieurs unités en amont et en aval (notion de manifold), que les commandes des vannes soient automatisées ou non. I.5.3 Impact des spécicités des systèmes discontinus sur l'ordonnancement L'ordonnancement des systèmes discontinus a été peu étudié. Nous avons vu, dans le paragraphe I.4.4 que E. Kondili [99] traite ce problème en appliquant des méthodes directement inspirées de celles des systèmes discrets. Nous avons vu que l'énumération des plans de fabrication peut être basée sur un modèle réseau de Petri, comme H. Pingaud dans [118, 119] et que certains auteurs, comme C. Valentin-Roubinet [149, 147, 148] et H.M. Hanisch [48], ont traité le problème de l'ordonnancement des systèmes discontinus en simulant des réseaux de Petri. Enn P. Yim et A. Lefort utilisent un modèle prenant en compte des contraintes sur des variables continues par l'intermédiaire de prédicats. Ils peuvent ainsi prendre en compte l'aspect continu des systèmes et appliquer leur démarche au cas des systèmes discontinus. N. Ishii et M. Muraki [86] traitent le problème de l'obtention d'un plan (( réalisable )) dans le cadre des systèmes discontinus. Compte tenu des contraintes propres à ces systèmes (temps d'attente limités, durée des opérations mal dénies, capacité limitée des stocks...) et des objectifs de fabrication, ils élaborent un plan en simulant le fonctionnement du procédé et en réglant les conits sur les ressources par l'application d'un ensemble de règles simples. De même W.R. Goodall et R. Roy [82] dénissent le plan de fabrication d'un système discontinu en le simulant, et en arbitrant les conits qui apparaissent. Dans [63], les auteurs proposent un algorithme pour dénir un plan de fabrication en minimisant les retards. Cet algorithme est basé sur un modèle prenant en compte les contraintes venant des connexions entre les équipements, des temps de transfert et de la taille des lots. Ce modèle est composé de variables mixtes. L'obtention du plan se fait selon une heuristique, les lots sont ordonnés les uns après les autres, en commençant par le lot ayant le moins de marge. Nous voyons que toutes les spécicités des systèmes discontinus rendent plus complexe leur pilotage et en particulier la mise en ÷uvre en temps-réel d'un plan de fabrication qui souvent a été élaboré à partir d'un modèle ne prenant en compte qu'une vision agrégée de la réalité, toutes 28 Chapitre I Outils pour la supervision et l'ordonnancement les contraintes n'étant pas écrites. Voyons maintenant comment la nature hybride des systèmes discontinus peut être prise en compte au niveau de l'interaction de la supervision avec le système physique. I.5.4 Commande des systèmes discontinus Les diérentes études sur la conduite des systèmes discontinus s'appuient sur la structure hiérarchique de commande (cf I.2.1). Cependant les réalisations informatiques dièrent. Il y a, tout d'abord, celles articulées autour d'une base de données commune (SUPERBATCH [109] et FLESCHE [128]). La liaison entre les organes de commande et le superviseur se fait par l'intermédiaire de la base de donnée. Le superviseur y lit les valeurs des capteurs, et met à jour les valeurs de consignes. La commande locale vient y déposer les relevés des capteurs et lire les valeurs de consigne. La structure informatique couramment utilisée dans le monde industriel repose sur l'utilisation d'un bus local (Batch Supervisor de Honeywell, ChemFlex de Elsag Bailey, Batch X de Siemens et RS3 de Fisher Rosemount). Toutes les consignes et valeurs des capteurs sont mises sur le bus, chaque élément de la commande doit aller y récupérer les informations nécessaires à son bon fonctionnement. C'est lui, en fait, qui met en ÷uvre une base de données distribuée. Les informations circulant sur le bus étant de type périodique (mesures des capteurs, consignes vers les actionneurs) aussi bien que de type sporadique (échanges évènementiels entre les organes de commande et le superviseur, téléchargement de programmes, alarmes...), il est impossible de montrer que son dimensionnement est correct, c'est-à-dire que les temps de communication seront toujours inférieurs aux bornes spéciées. Dans certaines situations correspondant à une avalanche de messages sporadiques, soit ceux-ci devront être retardés et étalés dans le temps, soit des messages périodiques de mise à jour de l'état seront perdus. Un solution à ce problème consiste à dédoubler le bus en un (( bus de terrain )) pour les informations périodiques, et un (( bus d'atelier )) pour les informations sporadiques. D. Andreu [9, 11, 12, 13, 14] introduit une nouvelle fonction, chargée de faire l'interface entre les organes de commande locale et la supervision, le générateur d'évènements (GE) (gure I.26). En fonction de la conguration de la commande (transmise au GE par la supervision) et des évènements attendus, le GE surveille les variables signicatives de cette conguration, et signale au superviseur l'occurrence des évènements attendus. Il établit une passerelle programmable entre le bus de terrain et le bus d'atelier. I.5.5 Surveillance dans le cadre des systèmes discontinus La surveillance d'un procédé est basée sur la comparaison entre l'évolution réelle du procédé et l'évolution attendue. Pour cela M. Combacau [51] utilise un modèle qui évolue de manière synchrone avec le procédé (gure I.27). Ce modèle est appelé modèle de référence. D. Andreu [9] a étendu ce principe au cas des systèmes discontinus, et a déni un modèle de référence hybride. Ce modèle représente le comportement du procédé, les variables discrètes et les variables continues. Toutes les commandes appliquées au procédé et les comptes-rendus de ce dernier sont transmis au modèle de référence. Par comparaison il est possible de détecter les erreurs de commande (on applique une commande incompatible avec l'état du procédé) et les défaillances du procédé (occurrence d'un évènement non attendu, ou non occurrence d'un évènement attendu). M. Gomaa [79] utilise un modèle causal pour la détection et le diagnostic dans les systèmes discontinus. Son approche est basée sur la dénition d'un modèle fondé sur un formalisme unique permettant de représenter et de simuler à la fois la partie continue et la partie discrète : les réseaux de Petri continus causaux hybrides (RdP C 2 H). Ce modèle est composé d'un réseau de I.5 Supervision des systèmes discontinus 29 Superviseur Bus d'atelier Générateur d'Évènements Régulateur ... Automate Bus de terrain système entrées/sorties Procédé Figure I.26 Architecture proposée par D. Andreu dans [9] Commande Modèle de réference Commande locale Procédé Figure I.27 Position du modèle du référence dans le niveau commande locale 30 Chapitre I Outils pour la supervision et l'ordonnancement Petri, pour décrire la partie discrète du procédé, d'un réseau de Petri continu causal (RdP C 2 ) pour la partie continue. Les variables continues sont représentées par les marques des places continues, l'évolution de ces marques est basée sur des fonctions de transferts qualitatives (FTQ). L'évolution du marquage est fonction des prols de vitesse dénis à partir des FTQ des transitions amont et aval. Ces prols sont une approximation (par une fonction linéaire par morceaux) de l'évolution des variables. À partir de ce modèle M. Gomaa détecte les défaillances par une comparaison entre les variables réelles et les variables simulées, puis en exploitant la causalité du réseau de Petri, diagnostique l'origine de la défaillance. Dans cette approche, les variables continues sont surveillées continûment alors que dans l'approche précédente les mécanismes de détection ne sont activés que lors des changements de conguration. I.6 Conclusion Dans ce chapitre nous nous sommes d'abord intéressés au cas des systèmes discrets. Nous avons présenté comment sont commandés ces systèmes en détaillant la structure hiérarchique de commande. Nous avons regardé plus précisément le niveau supervision, qui fait l'objet de notre étude, en soulignant les notions de pilotage en temps-réel, surveillance sur informations montantes et surveillance sur informations descendantes. Notre objectif étant la supervision des systèmes discontinus, et plus particulièrement les interactions entre les niveaux supervision et ordonnancement, nous avons ensuite décrit comment les réseaux de Petri représentent les contraintes qualitatives des systèmes discrets, puis comment représenter les contraintes quantitatives à l'aide de graphes potentiels et de réseaux de Petri. Nous avons présenté les spécicités des systèmes discontinus en mettant en évidence les points qu'ils rendent plus complexes. Nous avons présenté brièvement les travaux en cours abordant la problématique de l'ordonnancement, de la supervision et de la surveillance de ces systèmes. Nous avons, en particulier, vu que les systèmes discontinus sont plus complexes à piloter que les systèmes discrets car les durées des opérations sont sujettes à des variations d'un lot par rapport à un autre et les contraintes logiques, dues aux transferts de la matière première continue, sont souvent complexes (risques de blocages). De plus un stock ne peut être géré correctement sans son bilan matière. Cela rend donc particulièrement délicate l'interaction entre l'ordonnancement prévisionnel et la partie de la supervision en temps-réel sur les ux de produits. Nous verrons, dans le chapitre V, comment structurer le niveau supervision pour faire face à ces nouvelles dicultés. Mais le premier problème auquel nous nous attaquons maintenant concerne la modélisation des systèmes discontinus. En eet nous avons vu que le pilotage en temps-réel et la surveillance de ces systèmes nécessitent un modèle décrivant à la fois l'aspect discret et l'aspect continu. Nous allons dans le chapitre suivant dénir un modèle hybride basé sur l'utilisation des réseaux de Petri et de systèmes d'équations diérentielles algébriques. Chapitre II Formalisation d'un modèle pour les procédés discontinus II.1 Introduction Nous avons vu dans le chapitre I que l'étude des procédés discontinus nécessite l'utilisation de modèles prenant en compte à la fois les aspects discrets (enchaînement des phases d'une recette, mécanismes d'allocation des ressources) et les aspects continus (évolution des variables d'état continues au sein d'une conguration). Dans ce chapitre nous proposons un modèle, basé sur les réseaux de Petri (RdP) et les systèmes d'équations diérentielles algébriques (EDA), pour l'étude des procédés discontinus. Nous commençons par une étude des modèles discrets et des modèles continus, puis nous faisons un tour d'horizon des modèles utilisés pour représenter des systèmes discontinus. Nous nous attacherons à souligner les intérêts et limitations de chacun d'entre eux. Cette étude nous conduit à choisir le couplage de deux modèles. Nous dénirons alors les interactions entre ces deux modèles d'une manière formelle. II.2 Présentation des types de modèles discrets et continus Qu'est-ce qu'un modèle à évènements discrets, un modèle discret, un modèle discrétisé ou un modèle continu? Et quelles sont les diérences entre ces types de modèles? Ce sont les deux questions auxquelles nous allons répondre dans la suite de ce paragraphe. Un modèle se caractérise par la nature de ses variables d'état, en faisant la distinction entre les variables d'état et la variable d'état indépendante particulière qu'est le temps ( ). Les variables d'état discrètes prennent leurs valeurs dans un ensemble ni ou dénombrable (entiers, booléens...), alors que les variables d'état continues sont dénies sur l'ensemble des réels ( < ). Un modèle à temps continu ( est déni sur < ) est un modèle pour lequel les variables d'état sont dénies, à chaque (( instant )) de l'horizon de temps considéré (l'horizon étant divisé en une innité (( d'instants ))), comme des fonctions continues et dérivables de la variable indépendante. Au contraire un modèle à temps discret est un modèle pour lequel on ne peut observer les variables d'état qu'à certains instants (points d'observation, évènements) dénombrables n . 32 Chapitre II Formalisation d'un modèle pour les procédés discontinus La combinaison des variables d'état et de temps nous permet de dénir quatre types de modèles. Le premier type concerne les modèles avec des variables d'état continues et une variable de temps continue (voir gure II.1). Ces modèles sont appelés modèles continus. La description de l'évolution des variables d'état est généralement basée sur des équations diérentielles et/ou algébriques. X Figure II.1 Modèle continu Le deuxième type concerne les modèles avec des variables d'état continues et une variable de temps discrète (voir gure II.2). On parlera alors de modèles discrétisés. Les variables d'état, qui prennent leurs valeurs sur l'ensemble des réels, ne sont accessibles qu'à des instants prédéterminés. Le cas le plus fréquemment rencontré est le modèle échantillonné pour lequel on observe les variables d'état à intervalles de temps réguliers. L'évolution des variables d'état sera généralement donnée par des équations algébriques dénissant l'état à l'instant n+1 en fonction de l'état à l'instant n . X 00 11 00 11 11 00 11 00 0 1 00 00 11 00 11 00 11 011 1 00 11 11 00 00 11 001 11 0 1 0 1 00 1 Figure II.2 Modèle discrétisé Le troisième type recouvre les modèles avec des variables d'état discrètes et une variable de temps continue (voir gure II.3). Nous sommes alors en présence de modèles discrets. L'évolution des variables d'état se fera, par exemple, par l'intermédiaire de fonctions booléennes paramétrées par le temps. X Figure II.3 Modèle discret Le quatrième type de modèle regroupe les modèles avec des variables d'état discrètes et une variable de temps discrète (voir gure II.4). On obtient ainsi des modèles à évènements discrets. L'évolution des variables d'état se faisant à l'aide d'automates nis ou de la logique II.3 Dénition d'un modèle pour les procédés discontinus 33 séquentielle, le temps n'étant déni que par la suite des changements d'état. X 11 00 11 00 00 11 11 00 00 11 0 1 1 0 0 00 11 01 1 Figure II.4 Modèle à évènements discrets Notons qu'un modèle discrétisé utilise des variables d'état continues. Et pour cela il est plus proche du modèle continu que des modèles discrets ou à évènements discrets. Un modèle discrétisé peut être vu comme un modèle continu que l'on ne peut observer qu'à certains instants. Un modèle à évènements discrets donne une représentation qualitative d'un système. En eet les variables d'état prennent leurs valeurs sur un ensemble ni ou dénombrable (sous-ensemble de < ) et non pas dans l'ensemble des réels ( < ). Il s'agit donc en quelque sorte d'une abstraction de type logique. D'ailleurs, on peut voir un réseau de Petri représentant un tel système comme un ensemble particulier de règles. Nous venons de faire un tour d'horizon rapide des types de modèles couramment utilisés. Cependant la modélisation des procédés discontinus nécessite des variables d'état discrètes, pour représenter les séquences de production, et des variables d'état continues pour représenter l'évolution de la matière entre deux évènements. Il nous faut donc un modèle mélangeant des variables d'état discrètes et continues. II.3 Dénition d'un modèle pour les procédés discontinus II.3.1 Stratégies d'obtention d'un modèle pour les procédés discontinus Les procédés discontinus ne pouvant pas être modélisés par l'un des quatre types de modèle décrits précédemment, il faut donc faire appel à des modèles mélangeant les aspects discrets et continus. Nous allons regarder des modèles proposant de mélanger des variables d'état discrètes et continues, en montrant leurs champs d'application. Nous nous intéressons, tout d'abord, aux approches partant d'un modèle continu, puis à celles partant d'un modèle discret, ensuite nous regardons les modèles avec un formalisme hybride et nous nissons par traiter le couplage de deux modèles. II.3.2 Étendre un modèle continu L'intégration de variables d'état discrètes au sein d'un modèle continu consiste à ajouter des variables booléennes aux équations an de recouvrir toutes les congurations. Prenons par exemple le cas du réservoir gure II.5. Ce réservoir a une capacité de 8 unités de volume (u.v.). Il peut être rempli avec un débit de de 10 unités de volume par unité de temps (u.v./u.t.), et vidé avec un débit ds de 2,5 u.v./u.t.. Le modèle continu correspondant est : dV = d , d d e s (II.1) 34 Chapitre II Formalisation d'un modèle pour les procédés discontinus de = 10 u.v./u.t. ST Capacité Vmax = 8 u.v. ds = 2; 5 u.v./u.t. Figure II.5 Exemple illustratif : un réservoir Si l'on veut recouvrir les quatre congurations du réservoir (remplissage, vidange, remplissage/vidange et repos) il faut introduire deux variables booléennes ( be et bs ) décrivant respectivement l'état des vannes d'entrée et de sortie en position ouverte (valeur 1 ) ou fermée (valeur 0 ). Le modèle devient alors : dV = b d , b d d e e s s (II.2) be = (V < 8u:v:) (II.3) L'évolution des variables booléennes sera décrite par des prédicats, ou par des équations de logique combinatoire dénies à partir de la politique de conduite, de la capacité du réservoir... Par exemple : Si un tel modèle permet d'obtenir l'évolution du volume à l'intérieur du réservoir quelle que soit la conguration, il ne peut pas, en revanche, décrire l'enchaînement de congurations. Par exemple remplir avec du produit A, puis remplir avec du produit B nécessite l'utilisation de variables booléennes internes dont l'évolution sera donnée par des équations de logique séquentielle. Leur valeur à l'instant n+1 dépend de leur valeur à l'instant n . II.3.3 Étendre un modèle à évènements discrets Comme l'a montré D. Andreu [9], il est important, dans le cadre des procédés discontinus, d'avoir une bonne maîtrise du parallélisme et de la gestion des ressources. C'est pourquoi tant que la partie continue reste simple, nous ne considérons que les réseaux de Petri. Les automates à états nis, sous la forme des automates hybrides, ne seront réintroduits que dans le cas d'une partie continue complexe (cf II.3.5). Le réseau de Petri de la gure II.6 représente la recette de fabrication d'un lot de produit C à partir d'une matière première A et d'une matière première B. La recette consiste à remplir le réacteur R1 avec 2 u.v. de A, puis à remplir le réacteur avec 3 u.v. de B et à faire la réaction pendant 1 u.t.. Remplir R1 avec 2u:v: de A avec de = 10 u.v./u.t. Remplir R1 avec 3u:v: de B avec de = 10 u.v./u.t. Figure II.6 Recette d'utilisation du réservoir Réaction II.3 Dénition d'un modèle pour les procédés discontinus 35 L'ensemble des places représente les états que peut prendre le procédé. Dans ce type de modèle, le temps est pris en compte de manière qualitative : L'opération (( remplir avec du produit B )) se fera après avoir rempli avec du produit A. Le temps est discret, les dates d'observation correspondent aux franchissements des transitions. Une première extension consiste à considérer le temps de manière continue. En utilisant des réseaux de Petri temporisés ou temporels on a une représentation quantitative du temps. L'opération remplir avec du produit B nécessite (3 u.v. / 10 u.v./u.t. = ) 0,3 u.t.. Nous avons des variables d'état discrètes avec une variable de temps continue, c'est un modèle discret. Cependant cette stratégie de modélisation suppose que les durées des opérations sont bien dénies. Si la taille du lot n'est pas xée par la recette (par exemple si la recette consiste à remplir R1 avec x u.v. de A, 1 < x < 2u:v: , puis à remplir R1 avec 23 x de B) la durée de la temporisation représentant le transfert devra être déterminée pour chaque lot. Il faut alors se tourner vers l'utilisation de réseaux de Petri haut-niveau, qui permettent d'intégrer des composantes continues dans un modèle à évènements discrets. En eet les réseaux de Petri haut-niveau utilisent des jetons qui transportent des informations (structures de données). Les champs composant le jeton peuvent être de type continu. L'évolution de ces variables continues se fait par l'intermédiaire de calculs algébriques lors du franchissement des transitions. Nous obtenons ainsi un modèle avec des variables d'état discrètes (les composantes du vecteur marquage) et des variables d'état continues (les champs associés aux jetons). De la même manière il est possible de représenter un système hybride avec des Hypernets [107, 161] ou des réseaux à prédicats contraints [101]. Ce sont des réseaux de Petri de haut-niveau pour lesquels on peut dénir des contraintes. Cela permet, au lieu de donner une seule valeur pour chaque attribut, de caractériser par les contraintes des domaines de valeurs possibles. De cette façon on peut soit prendre en compte l'imprécision de certaines valeurs, pour certaines variables continues, soit caractériser des ensembles d'états qui auront tous le même comportement. On pourra par exemple étudier un atelier en supposant que les lots ont des tailles comprises entre 500 et 1000 litres. Dans le cadre des réseaux de Petri de haut-niveau, l'article [35] représente l'intégration d'un modèle continu par la méthode d'Euler. Les articles [77, 85, 108] présentent des modèles de systèmes hybrides basés sur des réseaux de Petri haut-niveau-temporisés. Cependant, même si le temps et les variables d'état prennent leurs valeurs dans l'ensemble des réels < , les variables attachées aux jetons ne sont modiées que quand le jeton concerné franchit une transition. Entre deux franchissements les variables continues ne sont pas mises à jour, elles ne sont pas explicités. C'est pourquoi, très souvent dans ce type de modélisation, des transitions sont franchies à petits intervalles de temps réguliers ( ), ou pour chaque petite variation des variables continues. Si on représente un système échantillonné, la présence de telles transitions est légitime (elles correspondent à l'échantillonnage), sinon elles sèment la confusion. De plus la simulation de tels modèles devient très lourde car l'intervalle doit être petit pour avoir une bonne précision. II.3.4 Utiliser un formalisme hybride Pour faire face à l'explosion de la durée de la simulation de réseaux de Petri temporisés avec un grand nombre de marques (ou jetons), et indirectement pour résoudre le problème ci-dessus, R. David et H. Alla [55, 3, 1, 2, 4, 103, 104] ont introduit les réseaux de Petri hybrides (RdP H). Ce sont des réseaux composés de deux types de places : des places discrètes contenant un nombre entier de marques ; et des places continues contenant un nombre réel positif ou nul de marques. Chapitre II Formalisation d'un modèle pour les procédés discontinus 36 Dénition 7. Un réseau de Petri hybride est déni par le sextuplet < P; T; Pre; Post; M0; h > où : P est un ensemble ni de places. T est un ensemble ni de transitions. P \T = ; Pre : P T ! N ou R , est l'application d'incidence avant. Post : P T ! N ou R , est l'application d'incidence arrière. Les poids des arcs dénis par Pre( pk , ti ) et Post( pk , ti ) sont des nombres entiers si pk est une place discrète, ou sont des nombres réels positifs si pk est une place continue. M0 est le marquage initial. h : P [ T ! {D, C}, indique pour chaque n÷ud s'il s'agit d'un n÷ud discret (D) ou continu (C). Si h( pk ) = D et h( ti ) = C alors Pre( pk , ti ) = Post( pk , ti ). Une transition continue ti est franchie avec une vitesse v () . Cela signie qu'entre et + d une quantité v () d de marque est enlevée de sa place amont et est ajoutée à la quantité de marque de sa place aval. Une interprétation intuitive du franchissement d'une transition continue peut être imagée par un sablier. Nous avons ainsi, dans un même formalisme, la possibilité de représenter des variables discrètes et réelles positives ou nulles, ainsi que leurs évolutions. Pour modéliser un procédé discontinu avec un réseau de Petri hybride, on représente un équipement par une place continue, et le ux de matière entre deux équipements par une transition continue. La recette dénie par le réseau de Petri de la gure II.6 est donnée, en utilisant un réseau de Petri hybride, par la gure II.7. Cependant, si le transfert de matière est représenté d'une manière très intuitive, des réactions faisant apparaître plusieurs variables liées par des contraintes algébriques ou des fonctions non-linéaires ne peuvent pas être représentées directement par un réseau de Petri hybride. Réaction S1 ! R1 S2 ! R1 2 S1 2 5 R1 5 S2 Figure II.7 Modélisation du réservoir et de sa recette d'utilisation par un RdP hybride Les réseaux de Petri hybrides ont été étendus pour pouvoir représenter des phénomènes continus particuliers. I. Demongodin [59], N. Audry [18] et M. Caradec et F. Prunet [39] ont II.3 Dénition d'un modèle pour les procédés discontinus 37 déni les réseaux de Petri lots-à-caractéristiques-variables (RdP LCV) permettant de modéliser l'évolution de la disposition de lots de produits sur des convoyeurs. M. Gomaa [79] a déni les réseaux de Petri continus-causaux-hybrides (RdP C 2 H) permettant de modéliser le comportement de variables continues par l'intermédiaire de fonctions de transfert qualitatives. On peut ainsi modéliser des systèmes dont la partie continue peut être approximée par une fonction de transfert qualitative. Les réseaux de Petri diérentiels ont été dénis dans [60, 61]. Ce sont des réseaux de Petri composés de deux types de places et de transitions : discret et diérentiel. Les places et transitions discrètes décrivent l'évolution des variables discrètes du modèle. Le marquage des places diérentielles est de type réel (positif, négatif ou nul). Les transitions diérentielles sont caractérisées par une vitesse de franchissement et une temporisation. Ces réseaux de Petri permettent d'élaborer des modèles échantillonnés ou discrétisés en utilisant les places et transitions diérentielles pour modéliser la partie continue. La partie continue est représentée par un modèle du premier ordre dont les variables d'état correspondent aux places diérentielles. L'évolution des variables d'état est donnée par les prols (linéaires) de franchissement des transitions, ce qui permet l'interpolation des valeurs entre deux instants d'échantillonage. La temporisation permet de représenter le pas d'échantillonage du modèle continu. Une approche similaire a été développée dans [158] sous le nom de réseaux de Petri hautniveau-hybrides. Ces réseaux de Petri permettent de représenter les variables continues comme étant des champs de jetons. La valeur des variables est calculée lors du franchissement des transitions. Il existe deux types de transitions : les transitions discrètes qui permettent de mettre à jour les champs des jetons qui les franchissent, et les transitions continues qui font évoluer les valeurs des champs des jetons qui les sensibilisent. Ces modèles, s'ils permettent de représenter des variables d'état discrètes et continues au sein d'un même formalisme, sont limités quant à la description de l'évolution des variables continues. Ils ne peuvent décrire que des équations linéaires explicites. En dehors du monde des réseaux de Petri, c'est-à-dire en renonçant à une représentation explicite du parallélisme et de la gestion des ressources, une approche permettant un plus grande liberté pour la description de l'évolution des variables continues a été développée. Il s'agit des automates hybrides. II.3.5 Les automates hybrides Les automates hybrides sont des automates à états nis auxquels on ajoute aux états un ensemble d'équations [8]. Leur dénition est la suivante : Dénition 8. Un automate hybride est déni par le septuplet < X; Q; ; Inv; Ar; Ev; Ass > où : X est un ensemble de variables réelles. Q est un ensemble ni d'états {q}. est une fonction, dénie pour chaque état q , décrivant l'évolution des variables X. q (x; ) : x_ () = fq (x; ) . Inv est une fonction qui associe à chaque état un prédicat. Ar est un ensemble d'arcs faisant la transition entre les états. Ev est une fonction qui associe à chaque arc un évènement. Le passage par cet arc est conditionné par l'occurrence de l'évènement Ev associé. 38 Chapitre II Formalisation d'un modèle pour les procédés discontinus Ass est une fonction associée à chaque arc permettant d'actualiser les valeurs des variables (discontinuités lors des changements d'état). Assa : x : = ga (x) . Prenons, pour illustrer cette dénition, l'exemple d'un procédé sur lequel on réalise deux produits par l'intermédiaire de deux recettes. La première est composée de deux opérations : O1 (utilisant la ressource R1 ) qui est une chaue du lot, et O2 (utilisant la ressource R2 ) qui est une phase de réaction. Le passage entre l'opération O1 et l'opération O2 se fera lorsque la température T aura dépassé une valeur seuil. Il y aura alors un changement d'état auquel nous associons l'évènement O1 ! O2 . La ressource R1 n'est libérée que lorsque la ressource R2 est réservée. Ce qui fait que l'on passe directement de l'état (( R1 réservée et R2 libre )) à l'état (( R1 libre et R2 réservée )). La seconde recette est décrite par une réaction (opération O3 ) nécessitant la ressource R2 . L'automate hybride correspondant à cet exemple est donnée par la gure II.8. Le procédé peut être dans cinq états diérents. L'état 1 représente le procédé au repos. À l'état 2, qui correspond à l'exécution de l'opération O1 et R2 libre, nous associons l'équation ddT mCp , Q = 0 , qui représente l'évolution des variables continues pendant la phase de chaue. état 1 O2 ! O1 ! O2 état 5 ! O1 ! O1 ! O3 état 2 état 3 ! O3 O2 ! état 6 O3 ! O3 ! ! O1 état 4 Figure II.8 Exemple d'automate hybride Le procédé est représenté par les états discrets qu'il peut atteindre, et pour chaque état un ensemble d'équations décrivant l'évolution des variables continues. Ce modèle est toutefois limité quant à l'expression de la description de la partie discrète. En eet écrivons le réseau de Petri représentant l'enchaînement des diérents états discrets du procédé (gure II.9). Nous constatons que les évènements O1 ! O2 et ! O3 sont en exclusion mutuelle (partage de ressources). Cette situation apparaît lorsque les places O1 et R2 sont marquées, c'est-à-dire quand l'automate est dans l'état 2. Les deux arcs de sortie de cet état sont en exclusion et une décision liée à la gestion de l'atelier doit être prise. En revanche les évènements ! O1 et ! O3 sont totalement indépendants. Or quand R1 et R2 sont marquées, donc que l'automate est dans l'état 1, et que les deux évènements peuvent se produire simultanément et indépendamment l'un de l'autre, l'automate représente cette situation de la même manière que précédemment en proposant deux arcs pour quitter cet état. Cela tient au fait que l'automate liste les états accessibles, mais n'exprime pas la structure des relations parallélisme et conit entre les variables discrètes. Alors que le réseau de Petri permet de déduire, à partir des invariants de place, l'utilisation des ressources ( fR1 ; O1; O2g pour R1 , et fR2; O2; O3g pour R2 ), et, à partir des invariants de transition, la description des recettes ( f! O1 ; O1 ! O2; O2 !g pour la première recette et f! O3; O3 !g pour la deuxième recette). II.3 Dénition d'un modèle pour les procédés discontinus 39 ! O1 R1 O1 O1 ! O2 O2 R2 O2 ! ! O3 O3 O3 ! Figure II.9 RdP équivalent à la description des états discrets de l'automate hybride Les automates hybrides nous permettent d'obtenir un modèle représentant l'évolution des variables continues d'une manière précise. Cependant la description de la partie discrète est moins riche qu'en utilisant les réseaux de Petri. II.3.6 Utiliser deux formalismes Nous venons de voir que la démarche consistant à étendre un modèle continu n'est utilisable que lorsque le procédé à modéliser est essentiellement continu. Réciproquement, étendre un modèle discret ne permet de modéliser que des procédés dont la partie continue est simple, ou alors il faut abandonner la représentation explicite du parallélisme et des ressources et revenir aux automates à états nis. Les modèles hybrides, quant à eux, ne permettent de représenter que des procédés de faible complexité. Lorsque la complexité est comparable entre les deux aspects (discret et continu), la seule démarche permettant d'obtenir un modèle soulignant les deux vues consiste à utiliser deux modèles (un discret et un continu) et à les combiner. L'approche appelée (( superviseur )) [160, 146] consiste à représenter le procédé par deux modèles couplés par une interface. Chaque modèle décrit un sous-système, le procédé (par le modèle continu) et le superviseur (par le modèle discret), qui peut éventuellement évoluer de façon autonome. Le modèle continu représente le système physique avec ses boucles de régulations locales et le superviseur un système de coordination, de compensation aux perturbations, de surveillance et d'optimisation supposé être complètement à évènements discrets. Il ne s'agit pas de deux vues complémentaires d'un même système mais plutôt de deux sous-systèmes représentés par deux modèles diérents, l'interface traduisant les signaux échangés entre les deux parties. Mais notre besoin est d'avoir deux représentations, correspondant à deux vues, d'un même système, et pour cela l'approche superviseur n'est pas adaptée. Les aspects discrets et continus correspondent à deux mondes mathématiques diérents orant deux vues diérentes, et complémentaires, d'un même système [9]. Dans les systèmes discontinus il est important de représenter l'enchaînement logique des congurations du système, en explicitant le parallélisme, les situations de conit imposant des choix et les états des lots de produits et des ressources. Pour cela le modèle discret retenu est basé sur les réseaux de Petri. Il est également important de pouvoir décrire l'évolution des variables continues pendant chaque conguration. Pour cela le modèle continu retenu est basé sur des systèmes d'équations diérentielles algébriques. 40 Chapitre II Formalisation d'un modèle pour les procédés discontinus Les travaux antérieurs de B. Daubas [53, 54] et D. Andreu [9] ont proposé un principe pour combiner les réseaux de Petri et les systèmes d'équations diérentielles algébriques. Le réseau de Petri décrit les enchaînements de congurations nécessaires à la réalisation des produits. Il (( pilote )) le système d'équations puisque lors de chaque changement de conguration la structure du système, et donc le système d'équations correspondant, est modiée. De façon symétrique le système d'équations (( contrôle )) l'évolution du réseau puisque c'est lui qui permet de savoir à quelles dates seront franchies les transitions correspondant à des franchissements de seuils par des variables continues. Nous allons, dans le paragraphe suivant, reprendre ce principe de couplage en formalisant les interactions entre les deux modèles, en nous inspirant des automates hybrides. II.4 Dénition formelle du couplage entre réseaux de Petri et systèmes d'équations II.4.1 Réseau de Petri et réseaux prédicats-transitions Le réseau de Petri représente les diérentes congurations du système. Pour chaque conguration (état discret), un ensemble d'équations décrit l'évolution des variables continues. Par conséquent un système d'équations est associé à une place, s'il existe un phénomène continu dans l'état discret correspondant. L'intégration entre les deux vues de ce modèle se fait de la façon suivante : un jeton mis dans une place déclenche l'activation des équations correspondantes. Parallèlement, un certain nombre de seuils sont surveillés. Chaque seuil est associé à une transition aval d'une place marquée. Quand le seuil est franchi, cela signie que l'évènement correspondant est apparu, et la transition associée à ce seuil est franchie. Un nouveau marquage est calculé et un nouveau système d'équations devient actif. Le réseau de Petri utilisé doit manipuler des variables continues (test de seuils, suivi de variables continues, modication des valeurs lors de changement d'état). Par conséquent nous utilisons des réseaux de Petri prédicats-transitions (RdP Pr-Tr) [75] où nous représentons les variables continues par des attributs des jetons. La description de l'évolution des variables continues se fait par un ensemble d'équations. Ces équations peuvent être de type algébrique et/ou diérentiel. C'est pour cela que nous parlerons de systèmes d'équations diérentielles algébriques. L'ensemble des équations peut être de complexité variable (linéaire/non-linéaire, explicite/implicite), ce qui rendra la mise en ÷uvre plus ou moins complexe (cf chapitre IV). À chaque place pk est associé un système d'équations diérentielles algébriques Fk . Le tir d'une transition correspond à l'occurrence d'un évènement signicatif entraînant un changement d'état. C'est pourquoi, à chaque transition ti , deux fonctions sont associées. La première, appelée fonction de sensibilisation ei , permet de rajouter une contrainte supplémentaire au tir de ti . La transition ti ne pourra être franchie que si ses places amont possèdent au moins un jeton, et si ei est vraie. Cette condition de sensibilisation permet d'exprimer que c'est le fait qu'une variable franchit un seuil qui induit un changement de conguration (commandable ou non). La seconde, appelée fonction de jonction ji [25], permet de calculer les valeurs initiales des variables continues, et de leurs dérivées, en accord avec l'état suivant. Passons à la description formelle du couplage des réseaux de Petri et des systèmes d'équations diérentielles algébriques. Tout d'abord rappelons la dénition d'un réseau de Petri ordinaire. II.4 Dénition formelle du couplage entre réseaux de Petri et systèmes d'équations 41 Dénition 9. Un réseau de Petri marqué est le couple : N =< R; M0 > où : R est un réseau de Petri déni par le quadruplet < P; T; Pre; Post > où : P est un ensemble ni de places. T est un ensemble ni de transitions. P \T = ; Pre et Post ( C = Post - Pre) dénissent les arcs entrant et sortant des transitions. M0 est le marquage initial. C'est une application, M : P ! N . Les réseaux de Petri que nous utilisons sont des réseaux prédicats-transitions. Dans un réseau de Petri ordinaire les transitions sont considérées comme des règles dans un système de logique propositionnelle (sans variables), alors que dans un réseau prédicats-transitions la puissance est augmentée en les remplaçant par des règles dans une logique du premier ordre (avec variables). Une transition décrit alors une famille d'évènements et non plus un évènement seulement. La famille est dénie par l'ensemble des substitutions possibles des variables par des valeurs et donc par des jetons. Ce qui fait qu'au lieu d'avoir des règles du type : si (( au moins un produit )) et (( au moins un stock de matière première )) et (( au moins un réacteur )) faire (( transfert )) ; on aura des règles du type : si un produit < p > et un stock < s > et un réacteur < r > faire transfert < t > (voir gure II.10). C'est-à-dire que l'on franchira la transition ta en enlevant un jeton de type < r > de la place R , un jeton de type < p > de la place P et un jeton de type < s > de la place S , et on produira un jeton de type < t > dans la place T . Ces variables < p > , < s > , < r > et < t > prennent leurs valeurs dans un ensemble décrivant les produits et les stocks en attente et les réacteurs libres. <r> R <t> < p; r; s > <p> P ta <t> < p; r; s > < p; r > T <s> tb <s> S Figure II.10 Exemple de RdP Pr-Tr Plutôt que d'utiliser une variable < t > signiant que les variables < p > , < r > et < s > sont temporairement en relation (pendant la durée du transfert T , entre le franchissement de ta et le franchissement de tb ), on peut les lister dans un n-uplet < p; r; s > . Pour aner le choix des jetons et des transitions à franchir on associe des conditions supplémentaires de franchissement aux transitions. Ces conditions s'écrivent en utilisant les variables formelles des arcs entrant dans la transition. Des actions associées aux transitions s'écrivent de même à l'aide des variables associées aux arcs entrants et sortants. Regardons la dénition d'un réseau prédicats-transitions : Dénition 10. Un réseau de Petri prédicats-transitions initialement marqué est un triplet NPr-Tr =< R; A; M0 > où : R est un réseau de Petri ordinaire < P; T; Pre; Post > . 42 Chapitre II Formalisation d'un modèle pour les procédés discontinus A est l'annotation de NPr-Tr , A =< X; Atc; Ata; Ac > où : X est un ensemble de variables. Atc : T ! Lc (X ) , est une application associant à chaque transition une condition sous la forme d'un prédicat utilisant les variables. Ata : T ! La (X ) , est une application associant à chaque transition une action sous la forme d'une suite d'aectation de valeurs aux variables. Ac est une application associant à chaque arc (à chaque élément de C , C = Post , Pre ) une somme formelle de n-uplets d'éléments de X telle que son module soit égal au poids de l'arc correspondant : kAc (p; t)k = C (p; t) . M0 est le marquage initial, à chaque place est associé un n-uplet. Dans cette dénition nous retrouvons une partie des éléments qui nous sont nécessaires : les variables X , la condition supplémentaire de franchissement Atc et les changements instantanés de valeurs (discontinuités) spéciés par Ata . II.4.2 Réseaux prédicats-transitions-diérentiels Le modèle réseau prédicats-transitions-diérentiels (réseau PTD), qui est la combinaison d'un réseau prédicats-transitions et de systèmes d'équations diérentielles algébriques, est déni comme suit. Dénition 11 (réseaux prédicats-transitions-diérentiels). Un réseau prédicats-transitions-différentiels initialement marqué est déni par la paire NPTD =< NPr-Tr; F > où NPr-Tr est un réseau prédicats-transitions déni par < R; A; M0 > où R est un réseau de Petri ordinaire, A est l'annotation de NPr-Tr ( A =< X; Atc; Ata; Ac > ) et M0 est le marquage initial (à chaque place pk est associé un n-uplet Xmk ). X est l'ensemble des variables de A . On suppose que cet ensemble est décomposé en sous-ensembles non nécessairement disjoints Xpk des variables attachées aux places pk : X = [pk 2P Xpk (II.4) P est l'ensemble des places, card(P ) = n , n étant le nombre de places. F est l'ensemble des fonctions associées aux places (voir dénition 12). 3 2 _ F X ; X ; 66 1 p1. p1 77 F = 64 .. 75 _ Fn Xpn ; Xpn ; (II.5) T est l'ensemble des transitions, card(T ) = m , m étant le nombre de transitions. Xini est l'union des ensembles des variables associées aux places d'entrée de la transition ti . Xini = [pk 2ti Xpk (II.6) II.4 Dénition formelle du couplage entre réseaux de Petri et systèmes d'équations 43 Xouti est l'union des ensembles des variables associées aux places de sortie de la transition ti . Xouti = [pk 2ti Xpk (II.7) E est l'expression particulière de Atc . Elle associe à chaque transition ti une fonction de sensibilisation qui est un prédicat (voir dénition 13). 3 2 _ e X ; X ; 66 1 in1 . in1 77 E = 64 .. 75 _ em Xinm ; Xinm ; (II.8) J est l'expression particulière de Ata . Elle associe à chaque transition ti une fonction de jonction (voir dénition 14). 3 2 _ _ j X ; X ; X ; X ; 66 1 out1 out1. in1 in1 77 .. J = 64 75 jm X_ outm ; Xoutm ; X_ inm ; Xinm ; _ (II.9) Il y a donc n fonctions Fk Xpk ; Xpk ; dénies comme suit : Dénition 12. Soit Xpk l'ensemble des variables manipulées par l'ensemble Fk des fonctions associées à la place pk , nous avons : 3 2 _ f k 1 Xpk ; Xpk ; = 0 77 6 .. Fk X_ pk ; Xpk ; = 664 75 . fkl X_ pk ; Xpk ; = 0 (II.10) Où fk1 ... fkl sont des équations, représentant des contraintes diérentielles algébriques sur l'évolution des variables continues, déduites des lois de la physique. La dimension l de ce système dépend des caractéristiques physiques du système décrit et non du modèle à évènements discrets. Ce qui diérencie fondamentalement les réseaux prédicats-transitions des réseaux prédicatstransitions-diérentiels, c'est le fait que dans le premier cas les attributs des jetons ne changent de valeur que lors des franchissements de transitions alors que dans le second cas ils évoluent continûment au cours du temps. Il est à noter que les variables continues du système se trouvent réparties dans l'ensemble des jetons du réseau. Lorsqu'une place comporte plusieurs jetons, chaque jeton instancie le système d'équations correspondant avec l'ensemble des variables qu'il transporte. Prenons par exemple le cas d'une place pk contenant deux jetons A et B. Les équations II.11 seront actives, soit 2l équations. fk1 X_ pkA ; XpkA ; . .. fkl X_ pkA ; XpkA ; _ fk1 XpkB ; XpkB ; . _ .. fkl XpkB ; XpkB ; (II.11) Chapitre II Formalisation d'un modèle pour les procédés discontinus 44 Dénition 13 (Fonction de sensibilisation). Soit ei , la fonction de sensibilisation associée à la transition ti . Le seuil ei est déni comme étant la première solution, en , de : ei X_ ini ; Xini ; = 0 (II.12) Xini étant l'union des variables continues associées aux places d'entrée de ti . Cette fonction permet de détecter un évènement d'état (une variable atteint une valeur prédéterminée), aussi bien qu'un évènement de temps ( atteint une valeur prédénie). Les fonctions de sensibilisation sont activées lorsque leurs transitions correspondantes sont sensibilisées. Les variables Xini étant alors instanciées par les variables attachées aux jetons du n-uplet sensibilisant la transition. Dénition 14 (Fonction de jonction). Soit ji , la fonction de jonction associée à la transition ti . ji calcule à la date (date de franchissement de ti ) les valeurs des variables ainsi que de leurs dérivées, en accord avec l'état suivant, comme suit : X_ (+ ) = j X_ ; X ; , ji : outi + iX_ _ ini ini , Xouti ( ) = jiX Xini ; Xini ; (II.13) Ce qui signie que les valeurs des variables, et de leurs dérivées, juste après (à + ) sont calculées à partir des valeurs des variables, et de leurs dérivées, juste avant (à , ). Ce calcul est eectué lors de chaque franchissement de la transition correspondante et permet donc de redénir les attributs des jetons en cas de discontinuités. II.4.3 Exemple Prenons comme exemple la modélisation d'un réservoir tampon ST (voir gure II.5). Ce réservoir peut être rempli avec un débit de et/ou vidé avec un débit ds ( de et ds sont connus). La capacité maximale du réservoir est Vmax . Ce réservoir peut être dans quatre congurations diérentes : au repos, en remplissage, en vidange, en remplissage et vidange simultanément. Soit quatre états discrets. Ces états sont représentés sur le modèle réseau prédicats-transitionsdiérentiels par les places p1 , p2 , p3 et p4 (voir gure II.11). Les variables continues du système sont le volume V du réservoir et les débits de et ds . Nous avons donc X = fV; de; dsg . Les ensembles des variables associées aux places sont : Xp1 = fV g , Xp2 = fV; deg , Xp3 = fV; de; dsg , Xp4 = fV; dsg , Xp5 = fde g , Xp6 = fds g , Xp7 = fdeg et Xp8 = fdsg . Il faut noter que le réseau de la gure II.11 comporte un invariant de place I : fp1 ; p2; p3; p4g (conservation des jetons), et que chaque jeton dans ces places correspond à une instance de la classe des réservoirs tampons ST . Pour simplier nous n'avons pris en considération que le cas d'un jeton unique et nous avons omis de faire gurer les variables Xpk sur les arcs. Elles seraient systématiquement associées à tous les arcs d'entrée et de sortie de la place pk . Lorsque le réservoir est au repos aucune variable continue n'évolue, donc F1 = ; . Dans la conguration (( en remplissage )) (place p2 ) le volume est modié selon l'équation : dV = d d e (II.14) dV = ,d s d (II.15) Dans l'état (( en vidange )) (place p4 ) l'équation d'évolution des variables continues est : II.4 Dénition formelle du couplage entre réseaux de Petri et systèmes d'équations p5 F 5 t1 t2 t3 e3 j3 t7 e8 j8 t4 e4 j4 e2 j2 p8 F8 Repos pF11 t8 p6 F6 Remplir p2 F2 e1 j1 45 p7 F7 e7 j7 p3 Remplir/vider F3 t5 e5 j5 e6 j6 t6 p4 F4 Vider Figure II.11 Modélisation d'un réservoir par un réseau PTD Et dans l'état (( en remplissage et vidange simultanément )) (place p3 ) l'équation continue associée est : dV = d , d d e s Les fonctions associées aux places sont : F1 X_ p1 ; Xp1 ; = ; F2 X_ p2 ; Xp2 ; = dV d , de F3 X_ p3 ; Xp3 ; = dV d , de + ds dV _ F4 Xp4 ; Xp4 ; = d + ds F5 X_ p5 ; Xp5 ; = ; F6 X_ p6 ; Xp6 ; = ; F7 X_ p7 ; Xp7 ; = ; F8 X_ p8 ; Xp8 ; = ; E est telle que e1 , e3 , e5 et e7 sont le prédicat (( vrai )) et (II.16) (II.17) e2 X_ in2 ; Xin2 ; : V = Vmax e4 X_ in4 ; Xin4 ; : V = 0 (II.18) e6 X_ in6 ; Xin6 ; : V = Vmax e8 X_ in8 ; Xin8 ; : V = 0 Les fonctions de sensibilisation e1 , e3 , e5 et e7 sont vraies car on suppose que les jetons sont introduits dans les places p5 , p6 , p7 et p8 par le système de pilotage au moment exact où 46 Chapitre II Formalisation d'un modèle pour les procédés discontinus les transitions t1 , t3 , t5 et t7 doivent être franchies. Considérons maintenant quelques fonctions de jonction : 8 V (+ ) = V (, ) > > < + , j1 = > dV_e ((+ )) == dde ((, )) > _ + e : (II.19) de ( ) = 0 Le jeton (( sortant )) de la transition t1 porte les variables V et de . La valeur de ces deux variables juste après le franchissement de t1 (à + ) est la même que juste avant le franchissement (à , ), même s'ils étaient portés par deux jetons : un dans p1 et l'autre dans p5 . Par contre, la dérivée du volume qui était nulle à , , parce que le volume ne variait pas, devient égale, à + , au débit d'alimentation du réservoir. De la même manière nous aurons : j2 = ( V (+ ) = V (, ) V_ (+ ) = 0 (II.20) Les ensembles de variables des transitions ne sont pas tous les mêmes. Par exemple Xin1 = fV; deg car il est l'union de Xp1 = fV g et Xp5 = fdeg . Par contre Xin4 = Xp3 = fV; de; dsg . De la même façon Xout1 = Xp2 = fV; deg , Xout3 = Xp3 = fV; de; dsg et Xout4 = Xp2 = fV; deg . À l'état initial nous considérons le système dans l'état (( au repos )) avec le réservoir vide. Il y a donc un jeton en p1 ayant pour champ et valeur : V = 0 . II.4.4 Construction de l'automate hybride équivalent Comme nous l'avons montré au paragraphe II.3.5 un automate hybride ne représente pas correctement le parallélisme vrai (il ne décrit que l'entrelacement). Toutefois la seule façon systématique de simuler un réseau prédicats-transitions-diérentiels est de construire (implicitement et dynamiquement, ou explicitement) l'automate hybride équivalent car une variable continue peut apparaître sur plus d'un jeton et être impliquée dans les équations associées à des places diérentes. La construction de l'automate hybride équivalent peut être automatisée dans les cas simples : L'ensemble des variables est X . L'ensemble des états Q est l'ensemble des marquages Mi accessibles à partir du marquage initial M0 (ce qui implique que le réseau de départ est k-borné). Les fonctions et Inv associées à un marquage Mi sont obtenues à partir de l'union des systèmes (F ) associés aux places marquées de Mi . Il faut en déduire un certain nombre d'expressions purement algébriques ( Inv ) et d'autres qui explicitent le calcul des dérivées des variables continues en fonction de X ( ). Ar est donnée par le graphe des marquages accessibles, chaque arc correspond au franchissement d'une transition du réseau. Ev et Ass seront, respectivement, les fonctions de sensibilisation et de jonction des transitions correspondantes. II.5 Conclusion 47 II.5 Conclusion Dans ce chapitre nous avons présenté un modèle hybride couplant des réseaux de Petri et des systèmes d'équations diérentielles algébriques an de représenter des procédés discontinus. En eet ce type de procédés ne peut être intégralement représenté ni par un modèle continu (les extensions de ces modèles ne permettent pas de représenter les actions séquentielles telles que les recettes de fabrication), ni par un modèle discret (les extensions de ces modèles ne permettent pas de représenter les phénomènes continus complexes). Nous n'avons pas retenu les réseaux de Petri hybrides pour deux raisons. D'une part nous ne souhaitions faire, a priori, aucune réduction hypothétique sur les systèmes d'équations diérentielles algébriques représentant la partie continue. D'autre part nous souhaitions établir une séparation, la plus claire possible, entre la vue discrète et la vue continue. En particulier nous souhaitions que tous les évènements soient explicitement décrits par des franchissements de transitions, c'est-à-dire que le fait qu'une variable atteigne la valeur zéro soit traité de la même façon que le fait qu'elle atteigne un seuil prédéni. Nous avons déni formellement le couplage entre deux modèles, les réseaux de Petri et les systèmes d'équations diérentielles algébriques, en respectant les principes dénis par B. Daubas [53] et D. Andreu [9] pour arriver au modèle réseau prédicats-transitions-diérentiels. Il s'agit d'un modèle où des systèmes d'équations sont associés aux états discrets (chaque marquage du réseau de Petri). Les équations associées à une place sont actives lorsque la place est marquée. Les interactions entre le réseau de Petri et les systèmes d'équations diérentielles algébriques sont dénies formellement par l'introduction des fonctions de sensibilisation (dénition formelle des conditions de changement de conguration), et des fonctions de jonction (dénition des nouvelles conditions initiales après chaque changement de conguration). Ce modèle dénit donc très directement un automate hybride. Les états de l'automate correspondent aux marquages accessibles du réseau, et l'ensemble des équations associé à chaque état est l'union des ensembles d'équations associés aux places marquées pour chaque marquage accessible. En fait, nous avons étendu aux réseaux de Petri la démarche très générale adoptée pour la dénition des automates hybrides. Le fait d'associer les variables continues aux jetons sous la forme d'attributs (par l'utilisation des réseaux prédicats-transitions) permet de maintenir le principe de localisation des informations. Toutes les informations nécessaires à la dénition d'un évènement sont localisées dans la transition correspondante et dans ses places d'entrée. En conséquence, contrairement aux automates hybrides, un modèle réseau prédicats-transitions-diérentiels peut s'obtenir en décrivant les équipements et les recettes du procédé, puis en les composant. Nous avons alors une approche ascendante pour l'obtention d'un modèle hybride. Notons également qu'un sous-modèle représentant un équipement élémentaire correspond en général à un automate hybride. Par conséquent la représentation de systèmes hybrides complexes sera plus facile à l'aide d'un modèle réseau prédicats-transitions-diérentiels si nous dénissons une approche permettant de construire un réseau prédicats-transitions-diérentiels par composition d'automates (ou de sous-réseaux) hybrides. Toutefois les systèmes d'équations diérentielles algébriques associés à chaque état de l'automate étant obtenus par l'union de sous-systèmes écrits séparément, des problèmes de cohérence peuvent se poser. 48 Chapitre II Formalisation d'un modèle pour les procédés discontinus Chapitre III Modélisation de systèmes complexes et exemples III.1 Introduction Au chapitre précédent, nous avons déni un modèle hybride. Ce modèle permet de représenter des enchaînements de congurations, des mécanismes d'allocation de ressources et, également, l'évolution de variables continues. Lorsque l'on modélise un procédé de grande taille, il est impossible d'obtenir un modèle directement. L'écriture du modèle se fait en suivant une méthode de construction qui peut être basée sur une vision agrégée du système que l'on ane au fur et à mesure (vision descendante) ou par composition de sous-modèles (vision ascendante). Notre choix s'est porté sur deux approches de type ascendant pour obtenir un modèle. La première consiste à décrire la partie discrète du système, puis la partie continue. Pour chaque équipement et chaque recette, on détermine les états qui peuvent être atteints, puis on écrit les réseaux de Petri an d'exprimer les séquences et les mécanismes d'allocation de ressources. Les sous-réseaux de Petri sont ensuite couplés en faisant des fusions de transitions et/ou de branches. À partir de ce réseau, on écrit les équations décrivant l'évolution des variables continues pour chaque place. Cette méthode d'écriture des réseaux prédicats-transitions-diérentiels est intéressante lorsque la vue discrète est dominante. La deuxième approche consiste à écrire pour chaque équipement et pour chaque recette un sous-réseau prédicats-transitions-diérentiels puis à combiner les sous-réseaux pour obtenir le modèle global du procédé. Dans ce chapitre nous allons dénir formellement le couplage entre sous-réseaux de Petri par fusion de transitions ce qui présente l'avantage de conserver les invariants de place caractérisant les états accessibles propres à chaque équipement. Puis nous exprimerons les règles de construction à respecter pour dénir un système global d'équations calculable à partir de sous-systèmes, représentant les équipements et les recettes, écrits indépendemment. Enn nous illustrerons nos propos sur trois exemples. Le premier exemple est un procédé discontinu qui consiste à fabriquer un produit en eectuant deux réactions entrecoupées d'une phase de repos dans un réservoir diérent. Cet exemple a une composante discrète dominante. Nous construisons le modèle en écrivant d'abord le réseau de Petri puis les équations. Le second exemple, un procédé avec stockage intermédiaire, servant à fabriquer un produit à Chapitre III Modélisation de systèmes complexes et exemples 50 travers une recette linéaire, va nous permettre de traiter le cas des stockages intermédiaires. Le cas des stockages intermédiaires est particulièrement intéressant car le couplage du sous-modèle représentant le stock avec les autres sous-modèles doit se faire de manière dynamique. En eet l'état d'un stock tampon dépend des recettes qui l'utilisent, et cet état ne peut donc pas être calculé uniquement dans une recette puisqu'il dépend également des autres recettes en cours. Enn le troisième exemple, le stockage de gaz, concerne une unité faisant tampon entre une unité de production de gaz et un réseau de distribution aux clients. Dans cet exemple, la vue continue domine. Nous construisons le modèle en écrivant des sous-réseaux prédicats-transitionsdiérentiels pour chaque équipement puis en les couplant. Mais, tout d'abord, intéressons nous au couplage de sous-modèles, et, pour commencer, regardons la fusion de transitions de deux sous-réseaux de Petri. III.2 Formalisation du couplage de sous-modèles III.2.1 Fusion (( statique )) de transitions L'écriture d'un modèle de grande taille est dicile. Pour aider le concepteur du modèle, nous formalisons le couplage entre sous-modèles an qu'il puisse utiliser une approche modulaire (ascendante). Un modèle peut être obtenu, par exemple, en écrivant des sous-modèles décrivant les équipements et les recettes, puis en les composant pour obtenir le modèle du procédé. Pour composer, ou coupler, les sous-modèles il faut repérer les transitions des diérents sousréseaux qui correspondent à un même évènement (repéré par une étiquette r ). Prenons, par exemple, le cas de l'évènement (( commencer une opération sur un équipement )), la transition correspondant, dans le sous-réseau équipement RI , à cet évènement est appelée tICr et celle du sous-réseau recette RL , tLCr . Lors de l'apparition de l'évènement repéré par l'étiquette r , les transitions correspondantes ( tICr et tLCr ) doivent être franchies simultanément. Dans le modèle global du procédé ( RG ) ces deux transitions seront fusionnées. Un exemple est donné dans le paragraphe III.2.3. Dénition 15. Soient un réseau de Petri RI =< PI ; TI [ TC ; PreI ; PostI > et un réseau de Petri RL =< PL ; TL [ TC ; PreL ; PostL > , avec PI \ PL = ; et TI \ TL = ; . Le réseau de Petri résultant de la fusion de RI et de RL est le réseau RG =< PI [ PL ; TI [ TL [ TC ; PreG ; PostG > , où PreG et PostG sont dénies par la procédure décrite ci-dessous. TC est l'ensemble des transitions étiquetées qui fusionneront deux à deux lors de la construction du réseau de Petri global. Regardons comment sont dénies les matrices PreG et PostG du réseau global. Dénition 16. Soit Pre0I (respectivement Post0I ) les matrices obtenues en immergeant le réseau RI dans le réseau RG . 8p 2= PI 8t 2 TI [ TC Pre0I0 (p; t) = 0 (resp: Post0I (p; t) = 0) 8p 2 PI 8t 2 TI [ TC PreI (p; t) = PreI (p; t) (resp: Post0I (p; t) = PostI (p; t)) (III.1) Pre0I ( Post0I ) est une matrice de dimension nG mI alors que PreI ( PostI ) est une matrice de dimension nI mI ( nI étant le nombre de places de RI , mI le nombre de transitions de RI III.2 Formalisation du couplage de sous-modèles 51 et nG le nombre de places de RG ). Nous obtenons ainsi les matrices Pre0I et Post0I représentant le réseau RI , mais les colonnes de ces matrices sont de même taille que celles de RG . Dénition 17. La construction des matrices PreG et PostG est alors obtenue de la façon suivante : 8t 2 TI PreG (; t) = Pre0I0 (; t) 8t 2 TL PreG (; t) = PreL0 (; t) 8t 2 TC PreG (; t) = PreI (; t) + Pre0L (; t) 8t 2 TI PostG (; t) = Post0I0 (; t) 8t 2 TL PostG (; t) = PostL0 (; t) 8t 2 TC PostG (; t) = PostI (; t) + Post0L (; t) (III.2) (III.3) III.2.2 Fusion de branches Après composition des sous-réseaux par fusion de transitions, le réseau global obtenu peut comporter des places identiques. Dénition 18 (places identiques). Deux places pk et pl d'un réseau RG sont identiques ssi PreG (pk ; ) = PreG (pl ; ) PostG (pk ; ) = PostG (pl ; ) (III.4) C'est-à-dire que deux places identiques possèdent le même ensemble de transitions d'entrée et le même ensemble de transitions de sortie. Dans ce cas on fusionne les places identiques ( pk et pl ) pour obtenir la place pc . La matrice Pre0G (respectivement Post0G ) est obtenue en supprimant les lignes PreG (pk ; ) et Pre0G (pl; ) ( PostG (pk ; ) et PostG (pl ; ) ) de la0 matrice PreG ( PostG ) et en y ajoutant la ligne PreG (pc ; ) = Pre G (pk ; ) = PreG (pl ; ) ( PostG (pc ; ) = PostG (pk ; ) = PostG (pl ; ) ). Le réseau R0G est obtenu après fusion de transitions et fusion de places identiques. Lorsque deux sous-réseaux sont reliés par des fusions de places on dit que les sous-réseaux sont fusionnés par fusion de branches. III.2.3 Fusion dynamique de transitions Dans le cas général on peut avoir un sous-ensemble de mIr transitions TICr du réseau RI qui correspondent toutes à la même étiquette r et qui vont fusionner globalement avec un sousensemble de mLr transitions TLCr du réseau RL ayant la même étiquette r . Elles vont générer un sous-ensemble TCr de mIr mLr transitions communes obtenu par le produit cartésien de TICr avec TLCr . Par exemple, si TCr = TICr TLCr désigne l'ensemble des transitions résultant de la fusion de TICr avec TLCr , TICr et TLCr représentant des ensembles de transitions des réseaux RI et RL , ayant la même étiquette r . Si nous avons TICr = ftICr;1 ; tICr;2 g et TLCr = ftLCr;1 ; tLCr;2 ; tLCr;3 g nous obtiendrons six transitions tCr;k formant l'ensemble TCr = ftCr;1 = tICr;1 tLCr;1 ; tCr;2 = tICr;1 tLCr;2 ; tCr;3 = tICr;1 tLCr;3 ; tCr;4 = tICr;2 tLCr;1 ; tCr;5 = tICr;2 tLCr;2 ; tCr;6 = tICr;2 tLCr;3 g Dénition 19. Soit , l'ensemble des étiquettes communes aux réseaux RI et RL où TIC = [r 2,TICr est l'ensemble des transitions de RI qui vont fusionner, et qui sont rangées par groupes de transitions correspondant à chaque étiquette r , avec TLC = [r 2,TLCr . Chapitre III Modélisation de systèmes complexes et exemples 52 Le réseau RG obtenu par fusion dynamique des transitions de même étiquette de RI et RL est le réseau RG =< PI [ PL ; TI [ TL [ TC ; PreG ; PostG > où TC = [r 2, TICr TLCr . PreG et PostG sont construites de façon analogue au cas précédent après expansion des réseaux RI et RL . Cette expansion se fait vis-à-vis des transitions en remplaçant, dans RI , TIC (de dimension mIr ) par TC ( mIr mLr ) et, dans RL , TLC ( mLr ) par TC ( mIr mLr ). Prenons, par exemple, tICr;k une transition de TICr . Elle sera remplacée par mLr transitions n o tCr;k obtenues par le produit cartésien tICr;k TLCr . Les matrices d'incidence de RI ( Pre0I et Post0I ) sont simplement obtenues par duplication des colonnes, c'est-à-dire que n o 8t 2 tICr;k TLCr Pre0I (; t) = PreI ; tICr;k (III.5) Avant de continuer la discussion sur la fusion dynamique de transitions, arrêtons-nous un instant pour faire le bilan de ce que nous venons de dire. Adhérant pleinement à l'idée qu'un bon dessin vaut mieux qu'un long discours (surtout lorsque l'on parle de graphe), illustrons l'exemple présenté précédemment où TCr = TICr TLCr . La gure III.1 correspond aux fragments des réseaux RI et RL faisant apparaître les transitions étiquetées par r . pI1 tICr;1 pI 2 tICr;2 pI3 RI pL1 tLCr;1 pI 4 pL2 pL3 tLCr;2 pL4 tLCr;3 pL5 RL pL6 Figure III.1 Fusion dynamique de transitions Les matrices d'incidence avant de ces réseaux sont : 2 3 tICr;1 tICr;2 ... 66 77 6 77 pI1 PreI = 66 1 0 77 pI2 64 0 1 5 .. (III.6) . 3 . 2 t LCr;1 tLCr;2 tLCr;3 77 .. 66 77 pL1 66 1 0 0 77 pL2 6 PreL = 6 0 1 0 77 pL3 66 5 .. 4 0 0 1 . (III.7) III.2 Formalisation du couplage de sous-modèles 53 La matrice Pre0I obtenue par immersion de RI dans RG puis expansion de RI est : 2 3 . t Cr;1 tCr;2 tCr;3 tCr;4 tCr;5 tCr;6 66 77 .. 66 66 0 PreI = 666 66 66 4 77 77 77 77 77 75 pI1 pI2 pL1 pL2 pL3 (III.8) 3 . 2 tCr;1 tCr;2 tCr;3 tCr;4 tCr;5 tCr;6 77 .. 66 77 pI1 66 1 1 1 0 0 0 77 pI2 66 0 0 0 1 1 1 77 pL 6 PreG = 66 77 p 1 1 0 0 1 0 0 66 77 L2 0 1 0 0 1 0 66 75 pL3 0 0 1 0 0 1 4 .. . (III.9) 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .. . Et PreG devient alors Ce qui donne le fragment de réseau RG de la gure III.2 (n'oublions pas le dessin !). pI1 tCr;1 pI2 tCr;2 pI3 pL1 tCr;3 pI4 tCr;4 pL4 pL2 pL3 tCr;6 tCr;5 pL5 pL6 Figure III.2 Réseau global après fusion dynamique de transitions Cet ensemble de dénitions montre que lorsque l'on ramène la fusion dynamique à de la fusion statique, cela introduit une explosion combinatoire du nombre des transitions. Pourtant lorsqu'un évènement repéré par une étiquette r se produit, il faut qu'une et une seule transition étiquetée par r soit sensibilisée. S'il y en a plus d'une, il y a indéterminisme car on ne sait s'il faut les franchir toutes, ou bien une seule et alors laquelle? Dans le cas où l'on considère un réseau RG obtenu par fusion de RI et RL et lorsque l'étiquette r existe dans RI et RL , le fait qu'une unique transition, étiquetée par r , soit sensibilisée dans RG est équivalent au fait qu'il existe une unique transition dans RI étiquetée par r sensibilisée et une unique transition dans RL étiquetée par r sensibilisée (évident par construction de TCr sous la forme du produit cartésien de TICr et TLCr ). Plutôt que de construire statiquement le réseau de Petri résultant de la fusion, il est souvent plus judicieux de le faire dynamiquement, c'est-à-dire de franchir simultanément la transition de RI sensibilisée et étiquetée par r et celle de RL (sensibilisée et étiquetée par r ). Chapitre III Modélisation de systèmes complexes et exemples 54 Cette approche, formalisée pour la fusion de deux sous-réseaux RI et RL peut être aisément généralisée à K sous-réseaux. Prenons deux exemples de procédés dont la modélisation fait appel à la fusion dynamique de transitions. Le premier concerne un stock ST et un fragment de recette consistant à faire l'opération (( vider ST )) (gure III.3). Ce stock peut se retrouver dans quatre congurations diérentes : au repos, remplir, vider et la quatrième étant remplir et vider simultanément. En eet, nous considérons que plusieurs lots peuvent utiliser ce stock en même temps. Lorsqu'apparaît l'évènement (( débuter vidange de ST )) repéré par l'étiquette 1 , il faut franchir tIC1;1 pour faire passer le sous-réseau recette dans l'état (( vider ST )), et il faut franchir une transition étiquetée par 1 dans le sous-réseau ST ( tLC1;1 ou tLC1;2 ) pour passer dans un état qui correspond à la vidange de ST ((( vider )) ou (( remplir et vider simultanément ))). ST Remplir tLC1;2 Repos tIC1;1 Remplir/vider tLC1;1 RI Vider ST Vider RL Figure III.3 Fusion dynamique de transitions entre deux sous-réseaux Le couplage entreoles sous-réseaux se fait par l'intermédiaire de TC1 = tIC1;1 TLC1 , avec n TLC1 = tLC1;1 ; tLC1;2 . Nous allons maintenant considérer un exemple impliquant la fusion de plus de deux réseaux. Dans un tel cas deux situations peuvent se rencontrer : soit il faut eectivement fusionner une transition de chaque sous-réseau en une seule, soit il y a conit entre plusieurs fusions possibles. Le premier cas correspond à une opération utilisant plusieurs ressources comme un transfert entre un appareil R1 et un appareil R2 qui va, par exemple, impliquer la fusion d'une transition (( début de transfert )) de la recette avec une transition (( début de vidange )) de R1 et une transition (( début de remplissage )) de R2 . Le deuxième cas correspond à un conit pour l'aectation d'une ressource à deux opérations mutuellement exclusives. Détaillons un exemple de cette situation. Il s'agit d'un stock tampon ST (représenté par le réseau RL de la gure III.4). Il est impossible de remplir et vider simultanément ST (parce qu'il n'y a qu'un tuyau d'alimentation, par exemple). Ce stock est utilisé par deux recettes dont les sous-réseaux RI et RK représentent l'opération (( vider ST )). Il existe alors deux évènements liant les sous-réseaux. Le premier (( début vidange de ST par la recette I )) repéré par l'étiquette 1 et le second (( début vidange de ST par la recette K )) repéré par l'étiquette 2 . La transition faisant passer le sous-réseau ST de repos à vider est, en fait, une abréviation III.2 Formalisation du couplage de sous-modèles ST 55 Remplir RI RK tIC1;1 Repos tKC2;1 tLC 1;2 ;1 f RL g Vider ST Vider ST Vider Figure III.4 Abréviation de transitions de deux transitions tLC1;1 et tLC2;1 , étiquetées chacune par 1 et 2 , notée tLCf1;2g;1 . Le couplage entre les sous-réseaux sera déni par TC1 = tLC1;1 tIC1;1 et TC2 = tLC2;1 tKC2;1 . III.2.4 Fusion de transitions des réseaux prédicats-transitions-diérentiels Regardons maintenant le cas de la fusion de transitions dans le cadre des réseaux prédicatstransitions-diérentiels. La construction du réseau global RG , résultant de la fusion de deux transitions TICr et TLCr de deux sous-réseaux prédicats-transitions-diérentiels RI et RL est identique au cas des réseaux ordinaires (déni dans le paragraphe III.2.1). Toutefois il convient de faire un peu plus attention à la façon de fusionner les fonctions de sensibilisation ( E ) et les fonctions de jonction ( J ). Commençons par regarder le cas des fonctions de sensibilisation. Une fonction de sensibilisation exprime la réalisation d'une valeur pour une fonction algébrique des variables continues. Lorsque la fonction de sensibilisation devient vraie, cela signie qu'un évènement (dépassement de seuil) est apparu, et la transition correspondante est franchie. Toutefois si cette transition est étiquetée et que la transition portant la même étiquette dans un autre sous-réseau possède une fonction de sensibilisation, il sera impossible de franchir ces transitions car deux évènements ne peuvent se produire simultanément. Nous devons donc établir la règle suivante : Dénition 20 (restriction sur les fonctions de sensibilisation). Si l'on fusionne deux réseaux prédicats-transitions-diérentiels RI et RL , pour une étiquette donnée r : ou bien les transitions de TICr ont des fonctions de sensibilisation associées et pas celles de TLCr , ou bien, au contraire, ce sont les transitions de TLCr qui ont des fonctions de sensibilisation associées et pas celles de TICr , ou bien aucune des deux n'en a. D'une certaine manière, dans les sous-modèles, on peut voir les transitions munies de fonctions de sensibilisation comme des (( commande )) et les autres comme des façons d'être commandé, ou bien de simples synchronisations. Chapitre III Modélisation de systèmes complexes et exemples 56 Regardons maintenant le cas des fonctions de jonction. A priori il est parfaitement possible de fusionner des transitions ayant chacune une fonction de jonction, elles seront toutes exécutées. Cependant si l'ensemble des variables continues associées aux places aval des transitions de TICr n'est pas disjoint de l'ensemble des variables des places aval des transitions de TLCr il risque d'y avoir des aectations de valeurs incohérentes. Nous regarderons ce problème plus en détail dans le paragraphe suivant (III.3). Le passage de paramètres se fera sous la forme de l'introduction de variables formelles dans les fonctions de jonction. Une variable formelle dans un réseau RI permet de faire référence à un champ de jeton déni dans un réseau RL . Prenons l'exemple du réservoir décrit dans le paragraphe (II.4). Nous remplaçons les places représentant la commande (places p5 à p8 ) par une recette dont un fragment est donné dans la gure III.5. Ce fragment de recette correspond à mettre 5 u.v. de matière dans le réservoir, attendre, puis vider le réservoir. Nous supposons que les situations anormales remplir ST alors que V = Vmax et vider ST alors que V = 0 ne sont pas traitées par la recette, mais par un autre sous-réseau que nous ne détaillons pas. Pour obtenir le modèle réseau prédicats-transitions-diérentiels de ce procédé nous allons construire d'abord le modèle de l'équipement, puis le modèle de la recette et nous les combinerons. Le sous-réseau prédicats-transitions-diérentiels du réservoir est composé de quatre places auxquelles sont associées des équations, comme décrit précédemment (les places p5 , p6 , p7 et p8 sont enlevées). Le sous-réseau prédicats-transitions-diérentiels de la recette est composé de cinq places. p6 représentant la phase de remplissage du réservoir, p7 la phase de repos et p8 la phase de vidange. La recette commande l'utilisation de l'équipement, pour cela elle comporte deux fonctions de jonction j9 et j11 (associées à t9 et t11 ) qui xent les débits avec lesquels sera utilisé le réservoir, ainsi que les quantités de matière à transférer. Les fonctions associées à ce réseau sont, partiellement, dénies comme suit : j9 : j11 : ( ( e2 : V e4 : V e6 : V e8 : V de = 10u:v:=u:t: Vr = 5u:v: ds = 2; 5u:v:=u:t: Vr = 0u:v: = Vr = Vr = Vr = Vr Les deux sous-réseaux sont liés par quatre évènements : début de remplissage ( 1 ), n de remplissage ( 2 ), début de vidange ( 3 ) et n de vidange ( 4 ). Les transitions t1 et t5 du sous-réseau équipement ainsi que la transition t9 du sous-réseau recette sont étiquetées par 1 . De même pour t2 , t6 et t10 par 2 , t3 , t7 et t11 par 3 et t4 , t8 et t12 par 4 . Nous avons alors les quatre transitions, fusionnées dynamiquement, suivantes : TC1 = TSTC1 ft9 g avec TSTC1 = ft1 ; t5g . TC2 = ft2 ; t6g ft10 g . TC3 = ft3 ; t7g ft11 g . III.2 Formalisation du couplage de sous-modèles 57 ST Remplir t1 1 p2 t4 4 t2 Sous-réseau Équipement 2 p1 Repos t3 3 p3 t7 3 t5 1 p4 t8 4 Remplir/vider t6 2 Vider p5 t9 1 p6 t10 2 Remplir ST p7 t11 3 Sous-réseau Recette p8 t12 4 p9 Vider ST Figure III.5 Exemple de couplage de deux sous-réseaux PTD TC4 = ft4 ; t8g ft12 g . Nous remarquons qu'aux évènements 1 et 3 (début d'opérations), aucune fonction de sensibilisation n'est associée. Ces évènements correspondent, en fait, à des synchronisations entre les équipements. Les fonctions de jonction j9 et j11 eectuent des passages de paramètres entre la recette et le réservoir. Notamment le paramètre Vr qui est ensuite utilisé par les fonctions de sensibilisation e2 , e4 , e6 et e8 du sous-réseau ST . Les évènements 2 et 4 , quant à eux, sont commandés par le réservoir. Les transitions t2 , t4 , t6 et t8 sont des transitions déclenchantes pour la fusion alors que les transitions t10 et t12 sont des transitions déclenchées. Cet exemple est l'occasion de mettre en évidence la complexité des systèmes discontinus et le fait qu'une modélisation précise, même si elle est modulaire, permet de détecter les incohérences. En eet en cas d'exécution simultanée de deux recettes diérentes on peut arriver dans la place p3 avec de = ds . Dans ce cas dV d = 0 et, la condition V = Vr n'étant jamais vériée, les deux transitions de sortie de la place p3 ( t4 et t6 ) ne seront jamais franchies. Les recettes seront bloquées. Ce modèle de réservoir est incorrect et il faut interdire la conguration décrite par la place p3 en prenant un modèle analogue à celui de la gure III.4. III.2.5 Fusion de branches pour les réseaux prédicats-transitions-diérentiels Comme nous l'avons dit au paragraphe III.2.2, les places identiques sont fusionnées entre elles. La place résultante pC de la fusion de deux places identiques pk et pl sera une place ayant les mêmes transitions d'entrée et de sortie que pk et pl (comme dans le cas des réseaux ordinaires), l'ensemble des fonctions FC associées à la place fusionnée sera l'union des ensembles Chapitre III Modélisation de systèmes complexes et exemples 58 de fonctions associées à pk et pl ( FC = Fk [ Fl ) et les variables XC seront l'union des variables Xk et Xl ( XC = Xk [ Xl ). < XPK16 > pK16 pK20 FK20 pL1 pL1 < XPL1 > tC1 pL21 FL21 ) < XPL1 > tC1 < XPK16 > < XPL1 ; XPK16 > pC PK16 FC = FK20 [ FL21 tC2 pL3 tC2 pL3 Figure III.6 Fusion de branches pour les réseaux PTD III.3 Modularité de la partie continue III.3.1 Position du problème Nous venons de voir qu'il était possible d'avoir une approche modulaire vis-à-vis de la partie discrète. Celle que nous avons proposée est fondée sur la représentation du comportement discret des équipements par des sous-réseaux de Petri, le comportement discret du système global étant obtenu par fusions de transitions. Est-il possible de décrire l'évolution des variables continues pour chaque équipement indépendamment, puis d'écrire un système d'équations global (qui sera déni par l'union des systèmes d'équations des places marquées) calculable? Nous allons voir que sans structurer les variables de chaque équipement cela est impossible. Dénition 21 (Ubiquité du réseau prédicats-transitions (cf Sibertin-Blanc [144])). On dit qu'il y a ubiquité dans un réseau de Petri s'il existe un marquage M accessible à partir du marquage initial M0 , tel qu'au moins un attribut (une variable) apparaisse comme champ de plus d'un jeton. Par exemple si dans l'exemple III.5 on conserve dans le sous-réseau recette la valeur du paramètre déterminant le volume de produit ( Vr ), il y aura ubiquité pour le marquage p2p6 puisque cette valeur sera à la fois attribut du jeton dans p2 et attribut du jeton dans p6 . Or un réseau avec ubiquité ne permet pas de garantir la résolution du système d'équations. En eet, comme on écrit les modèles des équipements indépendamment les uns des autres, le système d'équations associé aux places pour un marquage accessible du réseau global peut être incohérent. Il sut, pour cela, d'avoir deux équipements qui décrivent l'évolution d'une variable continue avec deux lois diérentes. Il en est de même pour les fonctions de jonction. Un réseau prédicats-transitions-diérentiels avec ubiquité ne peut être validé (vérication de l'homogénéité des systèmes d'équations) qu'en écrivant l'automate hybride équivalent. Par conséquent il est impossible de valider indépendamment chaque sous-réseau représentant les équipements. III.3 Modularité de la partie continue 59 Nous venons de voir que la vérication des systèmes d'équations d'un sous-réseau prédicatstransitions-diérentiels ne peut pas être eectuée équipement par équipement lorsqu'il y a des variables dénies dans deux places diérentes pour un même marquage. Or cette situation est fréquemment rencontrée dans les procédés discontinus. En eet, dès qu'une variable continue représentant un ux de matière passant à travers plusieurs équipements apparaît dans un modèle, cette variable sera forcement dénie par chaque équipement l'utilisant. Et, par conséquent, cette variable créera l'ubiquité du réseau. Nous allons voir dans les paragraphes suivants comment structurer les variables continues des sous-réseaux an d'obtenir des systèmes d'équations calculables. III.3.2 Structuration des variables An de pouvoir écrire, et valider, la partie continue d'un sous-réseau indépendamment des autres, nous allons structurer l'ensemble des variables en trois types de variables : les variables d'entrée (notées Xe ), les variables internes (notées Xint ) et les variables de sortie (notées Xs ). Et nous allons ainsi dénir la notion de réseau prédicats-transitions-diérentiels bien structuré. Il est important de noter que cette structuration joue un rôle pour la construction et la validation du modèle mais qu'elle ne présume en rien sa simulation. La simulation de la partie continue se fait globalement avec toutes les variables et les équations dénies par le marquage courant. Dénition 22 (place bien structurée). Une place d'un réseau prédicats-transitions-diérentiels est dite bien structurée ssi Les variables continues (attributs des jetons) associées à cette place sont partitionnées telles que Xpk = Xe [ Xint [ Xs , avec Xe \ Xint = ; , Xe \ Xs = ; et Xint \ Xs = ; . Les fonctions de jonction des transitions d'entrée de la place ne font des aectations que sur des variables de Xint [ Xs . Le système d'équations associé à la place permet de calculer les valeurs des variables Xint [ Xs si celles de Xe sont supposées connues. Les variables Xint sont les variables internes du sous-réseau, elles ne sont accessibles par aucun autre sous-réseau. Les variables Xe sont des variables d'entrée, supposées calculées dans d'autres sous-réseaux. Les variables Xs sont des variables de sortie, elles pourront apparaître dans d'autres sous-réseaux à condition que ce soit sous la forme de variables d'entrée. Attention à ne pas confondre Xe ( Xs ) avec Xin ( Xout ) qui est l'union des variables associées aux places d'entrée (de sortie) de ti . Nous remarquons qu'il n'y a aucune restriction sur les fonctions de sensibilisation. Elles peuvent porter sur n'importe quel type de variables. III.3.3 Sous-réseau bien structuré Regardons maintenant comment écrire un sous-réseau pour qu'il soit bien structuré. Dénition 23. Un sous-réseau prédicats-transitions-diérentiels ( RI ) est bien structuré ssi Ses places forment un invariant de place positif (dans le contexte du réseau de Petri ordinaire). Toutes ses places sont bien structurées. 60 Chapitre III Modélisation de systèmes complexes et exemples Les ensembles de variables de sortie Xs sont identiques pour toutes les places ( 8p1; p2 2 PI , Xs(p1) = Xs (p2) ). On note Xs (RI ) l'ensemble des variables de sortie du sous-réseau RI . Un équipement est, par conséquent, déni par un invariant de place. Ce qui signie qu'il sera décrit par un ensemble de places, correspondant aux états accessibles, dans lequel circule un jeton qui portera les variables continues du modèle. Un équipement ne sera représenté que par un et un seul jeton. Si nous reprenons l'exemple du réservoir de la gure III.5, nous constatons qu'il est déni par un invariant de place composé de quatre places représentant les quatre congurations possibles du réservoir. Le jeton parcourant ce sous-réseau porte les variables continues de l'équipement. Pour chacune des places les variables du jeton sont réparties comme suit : Xe = fde ; ds; Vr g , Xint = fV g et Xs = ; . Le sous-réseau recette, dont nous n'avons qu'un fragment (que nous supposons formant un invariant de place), comporte un jeton portant des variables avec pour chaque place la répartition suivante : Xe = ; , Xint = ; et Xs = fde ; ds; Vr g . Supposons que nous ayons deux réservoirs identiques, ils seraient alors représentés dans un même sous-réseau comportant deux jetons. Chaque jeton représentant un réservoir. Les variables de même nom sur les deux jetons ne doivent bien sûr pas être confondues. III.3.4 Réseau prédicats-transitions-diérentiels bien structuré Maintenant que nous avons déni comment écrire des sous-réseaux bien structurés, dénissons comment faire la composition de ces sous-réseaux de façon à ce que le réseau global soit bien structuré. Nous partons du principe que les sous-réseaux sont couplés par fusion. Dénition 24. Un réseau prédicats-transitions-diérentiels obtenu par fusion de l sous-réseaux prédicats-transitions-diérentiels RI est bien structuré ssi 8I , RI est bien structuré (tous les sous-réseaux sont bien structurés). 8I; L , I 6= L , 8p 2 PI , 8p0 2 PL , Xint (p) \ Xint (p0 ) = ; . 8I; L , I 6= L , Xs (RI ) \ Xs (RL) = ; . 8I , 8p 2 PI , 8xe 2 Xe (p) , 9L tel que xe 2 Xs (RL ) ( L est unique). Le réseau global RG est obtenu par fusion de transitions des sous-réseaux RI . Les invariants de place des sous-réseaux sont alors conservés, et donc les RI correspondent à des invariants de place positif de RG . Une autre conséquence est que les marquages accessibles de RG sont nécessairement des éléments du produit cartésien des marquages accessibles de chaque sous-réseau : A (RG; M0G) QI A (RI ; M0I ) , M0I correspondant à la restriction du marquage M0G pour les places de RI . Un réseau prédicats-transitions-diérentiels n'est pas un réseau sans ubiquité. Cependant s'il y a ubiquité pour un marquage M 2 A (RG ; M0G ) et une variable v , c'est que 9I; L , v 2 Xe (p) pour p 2 RI et v 2 Xs (RL) . Il est donc impossible de faire des aectations contradictoires dans les fonctions de jonction puisqu'elles ne sont possibles que sur des variables de type Xint ou Xs . Nous venons de dénir les règles de construction d'un réseau prédicats-transitions-diérentiels, à partir de sous-réseaux PTD, de telle sorte que ce réseau dénisse des systèmes d'équations calculables et des fonctions de jonction sans aectations de valeur incohérentes. III.3 Modularité de la partie continue 61 Reprenons l'exemple de la gure III.5. Chaque place du sous-réseau équipement est bien structurée car Xe = fde ; ds; Vr g , Xint = fV g et Xs = ; pour chacune d'elle, les fonctions de jonction ne portent que sur VST et les équations associées aux places sont calculables. Ce sous-réseau est bien structuré car il est composé d'un invariant de place composé de places bien structurées et les variables de sortie sont identiques pour chacune des places. Le sous-réseau recette étant bien structuré et ne possédant pas de variables internes ni de variables d'entrée, de plus les variables d'entrée du sous-réseau équipement étant égales aux variables de sortie du sous-réseau recette et les ensembles des variables de sortie de chaque sousréseau étant disjoints, le réseau prédicats-transitions-diérentiels global obtenu est bien structuré. Le passage des paramètres s'eectue simplement en utilisant la notion de variables d'entrée et de sortie. III.3.5 Relation de causalité entre sous-réseaux prédicats-transitions-diérentiels Dénition 25. Il existe une relation de causalité entre deux sous-réseaux prédicats-transitionsdiérentiels RI et RL s'il existe une place p de RL telle que Xe (p) \ Xs (RI ) 6= ; . On peut donc avoir besoin de résoudre le système d'équations associé à une place de RI pour résoudre celui qui est associé à p dans RL . Il est alors possible de dénir si un réseau prédicats-transitions-diérentiels est bien structuré avec ou sans cycle de causalité. S'il ne possède pas de cycle, nous avons la garantie de pouvoir calculer les équations. Toutefois un réseau prédicats-transitions-diérentiels sans cycle ne recouvre pas les cas de procédés avec recyclage. Cependant, que le réseau soit avec ou sans cycle importe peu, car l'intégrateur devra traiter le système globalement et n'est pas obligé de suivre le chemin correspondant à la modélisation par composition. III.3.6 Couplage de sous-réseaux par test de variables continues (interactions hybrides) Nous avons vu qu'un évènement pouvait déclencher systématiquement le franchissement simultané de deux transitions dans deux sous-réseaux. Pour cela on étiquète les transitions dans les sous-réseaux et on les fusionne. Ce couplage est donc entièrement pris en compte par la partie discrète du modèle. Le couplage introduit par le fait qu'une variable de sortie d'un sous-réseau RL est une variable d'entrée d'un sous-réseau RI est déni dans la partie continue. Il peut toutefois se trouver que la variable d'entrée ne soit utilisée dans RI que par des fonctions de sensibilisation, et non dans des systèmes d'équations diérentielles algébriques associés à des places. On a donc une interaction hybride pour laquelle la partie continue de RL agit sur la partie discrète de RI . Prenons par exemple un stock que l'on remplit avec du gaz (voir gure III.7). Nous ne nous soucions pas, ici, du déstockage. Il s'agit d'un stock de volume Vs xe dans lequel on met du gaz que l'on caractérise par Ps (la pression dans le stock) et Us (le nombre de moles de gaz contenues dans le stock). On alimente le stock par un débit de gaz dp à une pression Pp . Ce débit peut prendre deux valeurs : dpmin et dpmax . En amont du stock il y a un compresseur Cp chargé de fournir l'énergie nécessaire pour maintenir le débit dans le tronçon. Ce compresseur fournit un travail spécique constant. Le taux de compression est donc xe et égal à . Une vanne de dissipation VR permet de dissiper l'énergie excédentaire an d'arriver à la pression Ps . Le stock peut prendre deux états : remplir avec dpmin et remplir avec dpmax . Le réseau Chapitre III Modélisation de systèmes complexes et exemples 62 V4 Pp dp V3 VR Cp P3 S Ps Vs Us Figure III.7 Exemple simplié d'un stockage de gaz prédicats-transitions-diérentiels correspondant est donné par la gure III.8-a, où : F1 : ( dUs = dp min d PsVs = UsRT (III.10) Avec Xe = fdpmin g , Xint = fUs g et Xs = fPs g (on suppose Vs , R et T constants). F2 : ( dUs = dp max d PsVs = UsRT (III.11) Avec Xe = fdpmax g , Xint = fUs g et Xs = fPs g (on suppose Vs , R et T constants). Le modèle du compresseur est donné par la gure III.8-b, où p3 représente l'état actif, donc : F3 : P3 = Pp Avec Xe = fPp ; Psg , Xint = ; et Xs = fP3g (on suppose constant). Et p4 l'état inactif, on a alors : (III.12) F4 : P3 = Pp (III.13) Avec Xe = fPp ; Psg , Xint = ; et Xs = fP3g . Le compresseur passe dans l'état actif quand P3 devient inférieure à Ps , et il redevient inactif quand P3 est supérieure à fois Ps , d'où : e3 : P3 < Ps e4 : P3 > Ps La vanne de dissipation étant toujours active, elle ne possède qu'un état et sera représentée par le réseau III.8-c, où : Ps F5 : RT ln P + WVR = 0 (III.14) 3 Avec Xe = fPs ; P3g , Xint = fWVR g et Xs = ; . Nous voyons que Ps est utilisée par les fonctions de sensibilisation du sous-réseau compres- seur alors qu'elle est calculée dans le sous-réseau stock. On constate bien que le sous-réseau compresseur change d'état sans que le sous-réseau stock ne change d'état pour autant. Si nous voulons coupler les deux sous-réseaux par une fusion de transitions, il faut rajouter des transitions (donc l'observation d'évènements non signicatifs). Nous obtenons alors le réseau de la gure III.9. III.3 Modularité de la partie continue 63 p1 t2 p3 t1 t4 p2 sous-réseau stock -a- t3 p4 sous-réseau compresseur -b- p5 -c- Figure III.8 Sous-réseaux modélisant le stockage de gaz t5 p1 t2 p3 t1 t4 t3 p2 p4 sous-réseau stock -a- t6 sous-réseau compresseur -b- p5 -c- Figure III.9 Couplage entre sous-réseaux par ajout de transitions Chapitre III Modélisation de systèmes complexes et exemples 64 III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels Nous allons illustrer le modèle réseau prédicats-transitions-diérentiels à travers trois exemples diérents. Le premier, pour lequel la composante discrète est importante, s'obtient en écrivant la partie discrète puis la partie continue. Les deux autres seront obtenus en écrivant des sous-réseaux prédicats-transitions-diérentiels, puis en les fusionnant. Le second exemple, mettant en ÷uvre un stock tampon, nécessite la fusion dynamique de transitions pour relier ces sous-réseaux. Et pour le troisième exemple, dont l'aspect continu est dominant, le couplage des sous-réseaux illustrera le cas de l'inuence directe de la partie continue d'un sous-réseau sur le comportement discret d'un autre (interaction hybride). III.4.1 Exemple n 1 : procédé discontinu Présentation de l'exemple Il s'agit d'un procédé de fabrication composé d'un stock de matière première ( Se ), de deux réacteurs identiques ( R1 et R2 ) de type R , d'un réservoir ( B ) et d'un stock de produit ni ( Ss ). La gure III.10 donne la disposition de l'atelier, ainsi que les connexions entre les diérents équipements. Il est par conséquent possible de transférer de la matière du stock de matière première Se vers les réacteurs R1 et R2 , de R1 et R2 vers le réservoir B et réciproquement, et des réacteurs R1 et R2 vers le stock de produit ni Ss . B Se R2 Ss R1 Figure III.10 Présentation de l'exemple (( procédé discontinu )) Ce procédé a pour but de fabriquer un produit, à partir de la matière première contenue dans le stock Se , en faisant faire deux réactions, espacées d'au moins dix minutes, à un lot de matière de 100 l. La recette de fabrication du produit est la suivante : Charger un lot de matière première dans un réacteur de type R . Faire la première réaction (durée 60 min). Transférer le lot dans le réservoir ( B ), et laisser le lot se reposer au moins 10 min. Transférer le lot du réservoir vers un réacteur. Faire la seconde réaction (durée 120 min). Stocker le lot dans le réservoir de produit ni ( Ss ). Remarques : Le débit, pour tous les transferts, est de 20 l/min. III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels 65 La capacité des réacteurs R1 et R2 , et du réservoir B est d'un lot (soit 100 l). Modèle réseau prédicats-transitions-diérentiels Le modèle de ce procédé s'obtient en écrivant d'abord la partie discrète, puis la partie continue. Pour écrire le réseau de Petri nous commençons par modéliser la recette (séquence de places de p1 à p15 sur le réseau de la gure III.11), puis on rajoute les places représentant les ressources disponibles ( p16 , p17 , p18 et p19 ) et on les relie au réseau précédent en ajoutant des arcs qui expriment les mécanismes d'allocation de ressources. Cette dernière étape peut être vue comme de la fusion statique de branches entre un sous-réseau décrivant la recette et quatre sous-réseaux décrivant les réacteurs et les stocks. Il faut ensuite dénir les équations associées aux places. Pour chaque place, qui représente un état du système, on écrit la fonction continue qui décrit l'évolution des variables. Par exemple la place p2 correspond à l'état remplir VR . L'équation associée à la place p2 ( F2 ) représentera l'augmentation du volume de matière dans le réacteur ( VR ) à un débit constant ( deR ). Enn, il ne reste plus qu'à écrire les fonctions associées aux transitions. Les évènements portant sur des variables continues correspondent aux ns de transfert (la variable d'état décrivant le volume d'un réservoir atteint une valeur prédénie) et aux ns de réaction (la variable temps a évolué d'une valeur, , correspondant à la durée de la réaction). Nous obtenons ainsi le modèle réseau prédicats-transitions-diérentiels donné par la gure III.11. Où les équations associées aux places sont : R F2 : dV d , deR = 0 (III.15) dVR + d = 0 sR dVdB , d = 0 eB d (III.16) dVB + d = 0 sB dVdR , d = 0 eR d (III.17) R +d =0 F14 : dV sR d (III.18) R =0 F3 = F4 = F5 = F11 = F12 = F13 = F17 : dV d (III.19) B =0 F7 = F8 = F9 = F18 : dV d (III.20) F6 : F10 : Les fonctions de sensibilisation sont : e2 : VR = 100l e4 : = 60min e6 : VR = 0l e8 : = 10min ( ( Chapitre III Modélisation de systèmes complexes et exemples 66 Se p16 Se ! R p1 p15 t1 t14 R ! Ss p2 t2 t13 p3 p13 R t3 p12 Réaction t4 t11 p5 p11 t5 R!B t12 p17 p4 Réaction p14 t10 B p18 p6 B!R p10 t9 t6 Attente p7 t7 p8 t8 p9 Figure III.11 Réseau PTD de l'exemple (( procédé discontinu )) S p19s III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels 67 e10 : VB = 0l e12 : = 120min e14 : VR = 0l Et les fonctions de jonction sont : j2 : dVdR = 0 j6 : j10 : ( ( dVR = 0 dVdB = 0 d dVR = 0 dVdB = 0 d j14 : dVdR = 0 Les champs des jetons < XmR > (places p2 , p3 , p4 , p5 , p11 , p12 , p13 , p14 , p17 ) sont : VR (volume du réacteur), deR (débit d'entrée de R ), dsR (débit de sortie de R ). Les champs du jeton < XmB > (places p7 , p8 , p9 , p18 ) sont : VB (Volume du réservoir), deB (débit d'entrée de B ), dsB (débit de sortie de B ). Dans les places p6 et p10 on a des jetons < XmR; XmB > . Comme les débits sont constants, nous n'avons que deux variables formelles VR et VB ; deR , dsR , deB et dsB n'étant que des paramètres de calcul. Initialement nous avons deux jetons dans la place p17 , l'un correspond à R1 et l'autre à R2 . Les systèmes d'équations sont homogènes. Par exemple pour le marquage initial nous avons trois variables VR1 , VR2 et VB et trois équations dVR2 dVR1 dVB d = 0 , d = 0 et d = 0 . Il est clair que lors de la simulation les variables dont la dérivée est nulle ne devront pas être vues comme des variables par le programme de résolution des systèmes d'équations diérentielles algébriques. Lorsque l'on franchit t1 , par exemple avec le jeton correspondant au réacteur R1 , on dépose un jeton dans la place p2 . L'équation F2 est activée, pour le jeton correspondant. Nous avons donc l'équation suivante active : dVR1 , d = 0 (III.21) eR1 d La transition t2 étant sensibilisée, le seuil e2 sera surveillé. Quand le seuil VR1 sera atteint, t2 sera franchie, et l'équation F2 deviendra inactive. Discussion Cet exemple est essentiellement discret. La représentation de la partie continue ne sert qu'à déterminer la durée des phases de transfert des lots de matière entre les équipements. Toutefois ce modèle nous permet de représenter les mécanismes d'allocation des diérents réacteurs et réservoirs, ainsi que l'évolution du volume de matière à l'intérieur de ces mêmes réservoirs et réacteurs. Le modèle a été obtenu en commençant par dénir les seules visions discrètes des fonctionnements des équipements, puis en écrivant les équations associées aux places. Comme la fusion des réseaux se fait avant la spécication des équations, il n'y a pas besoin de diérencier les variables en variables d'entrée, internes et de sortie. Chapitre III Modélisation de systèmes complexes et exemples 68 Se1 , R1 Se2 , R1 R1 , ST ST , R2 R2 , Ss d1 d2 d3 d4 d5 Tableau III.1 10 u.v./u.t. 10 u.v./u.t. 10 u.v./u.t. 2,5 u.v./u.t. 5 u.v./u.t. Débits du procédé III.4.2 Exemple n 2 : procédé avec stockage intermédiaire Présentation de l'exemple Il s'agit d'un procédé composé de deux stocks de matière première Se1 et Se2 , d'un réacteur R1 , d'un stock tampon ST , d'un deuxième réacteur R2 et d'un stock de produit ni Ss . La connexion entre les diérents équipements est la suivante (voir gure III.12). R1 est connecté aux stocks Se1 et Se2 , ainsi qu'au stock tampon ST . ST est connecté à R1 et R2 . Et R2 est connecté à ST et au stock de produit ni Ss . Se1 Se2 d1 Ss d2 R 1 d3 d5 ST d4 R2 Figure III.12 Présentation du procédé avec stockage intermédiaire Les débits entre les équipements sont donnés par le tableau III.1. La capacité des stocks est la suivante : R1 > 5u:v: R2 > 5u:v: ST = 8u:v: Ce procédé fournit un produit en sortie, à partir de deux produits donnés en entrée, selon la recette de fabrication suivante décomposée en deux étapes. La première étape consiste à mélanger les deux matières premières, puis faire une première réaction, et la seconde à faire une deuxième réaction. Ce qui nous donne en détail pour la première étape : Mettre 2 u.v. de matière première provenant de Se1 dans R1 . Mettre 3 u.v. de matière première provenant de Se2 dans R1 . Faire la réaction, durée 1 u.t.. Mettre ce lot dans le stock de produit intermédiaire ST . III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels 69 Pour la seconde étape nous avons : Mettre un lot de 5 u.v. de produit provenant du stock intermédiaire ST dans le réacteur R2 . Faire la réaction, durée 1 u.t.. Stocker ce lot dans le stock de produit ni Ss . Modèle réseau prédicats-transitions-diérentiels Le modèle est obtenu en modélisant les équipements et la recette, puis en fusionnant les sous-réseaux. La recette est représentée par le sous-réseau fp5 : : :p19g , Se1 par fp20; ps6 g , Se2 par fp21; ps8 g , R1 par fpR6 ; pR7 ; pR8 ; pR9 ; pR10 ; pR11 ; pR12 ; p22g , R2 par fpR14 , pR15 , pR16 , pR17 , pR18 , p23g , Ss par fpS18 ; p24g et ST par fp1; p2; p3; p4g (voir gure III.13). Les équations associées aux places sont dénies comme suit : F2 : dVdST , d3 = 0 (III.22) F3 : dVdST , d3 + d4 = 0 (III.23) F4 : dVdST + d4 = 0 (III.24) FR6 : dVdR1 , d1 = 0 (III.25) FR8 : dVdR1 , d2 = 0 (III.26) FR12 : dVdR1 + d3 = 0 (III.27) FR14 : dVdR2 , d4 = 0 (III.28) Avec Xe = fd3g , Xint = fVST g et Xs = ; . Avec Xe = fd3; d4g , Xint = fVST g et Xs = ; . Avec Xe = fd4g , Xint = fVST g et Xs = ; . Avec Xe = fd1g , Xint = fVR1 g et Xs = ; . Avec Xe = fd2g , Xint = fVR1 g et Xs = ; . Avec Xe = fd3g , Xint = fVR1 g et Xs = ; . Avec Xe = fd4g , Xint = fVR2 g et Xs = ; . Chapitre III Modélisation de systèmes complexes et exemples 70 p20 p5 tS9 t9 pS6 p6 tS10 t10 pR6 tR10 p7 tS12 p19 pR7 tS11 pS8 p21 tR9 t11 p8 tR22 t22 tS22 pR18 p18 pS18 tR11 pR8 t12 tR12 tR21 t21 p22 p9 pR9 tR13 p23 t13 tR20 tS21 p17 pR17 t20 p10 pR10 t14 tR14 tR19 t19 p11 pR11 pR15 p15 tR16 tR pR12 2 3 17 t p12 162 t1 1 p1 t7 3 t8 4 t17 p13 3 Remplir t2 2 p2 t4 4 p4 t5 Vider p16 pR16 tR15 1 t15 1 p24 tR18 4 t18 4 pR14 p14 t3 3 Remplir/vider p3 1 t6 2 Figure III.13 Sous-réseaux PTD des éléments du procédé avec stockage intermédiaire III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels FR18 : dVdR2 + d5 = 0 Avec Xe = fd5g , Xint = fVR2 g et Xs = ; . Les fonctions de sensibilisation sont dénies par : e1 = e5 : VST 3u:v: e3 = e7 : VST 5u:v: etR10 : VR1 = 2u:v: etR12 : VR1 = 5u:v: etR16 : VR1 = 0u:v: etR18 : VR2 = 5u:v: etR22 : VR2 = 0u:v: e14 : = 1u:t: e20 : = 1u:t: Et les fonctions de jonction sont dénies comme suit : jtR2 : dVdST = 0 jtR8 : dVdST = 0 jtR10 : dVdR1 = 0 jtR12 : dVdR1 = 0 jtR16 : dVdR1 = 0 jtR18 : dVdR2 = 0 jtR22 : dVdR2 = 0 jt9 : d1 = 10 jt10 : d1 = 0 jt11 : d2 = 10 jt12 : d2 = 0 jt15 : d3 = 10 jt16 : d3 = 0 jt17 : d4 = 2; 5 71 (III.29) Chapitre III Modélisation de systèmes complexes et exemples 72 jt18 : d4 = 0 jt21 : d5 = 5 jt22 : d5 = 0 Les sous-réseaux Se1 , Se2 , recette, R1 , R2 et Ss sont couplés par fusion de branches. Le réseau obtenu est couplé au sous-réseau ST par fusion de transitions. Il y a quatre évènements repérés par les étiquettes 1 , 2 , 3 et 4 qui permettent de coupler les sous-réseaux : 1 , début de remplissage de ST , qui étiquète les transitions t1 , t5 , t15 et tR15 , 2 , n de remplissage de ST , 3 , début de vidange de ST et 4 , n de vidange de ST . On a alors : TC1 = ft1 ; t5g ft15 g ftR15 g (seules t1 et t5 ont une fonction de sensibilisation). TC2 = ft2 ; t6g ft16 g ftR16 g (seule t16 a une fonction de sensibilisation). TC3 = ft3 ; t7g ft17 g ftR17 g (seules t3 et t7 ont une fonction de sensibilisation). TC4 = ft4 ; t8g ft18 g ftR18 g (seule t18 a une fonction de sensibilisation). Discussion Le modèle du procédé a été obtenu en écrivant le réseau prédicats-transitions-diérentiels des équipements et de la recette puis en les fusionnant. La fusion est dynamique pour ST . Cet exemple, en apparence très discret, nous confronte à un des problèmes très importants des procédés discontinus : la représentation des stockages intermédiaires. Le stock intermédiaire ST est représenté par le sous-réseau fp1 ; p2; p3; p4g . On ne peut pas considérer le mécanisme d'allocation de ressources de la même manière que dans l'exemple précédent où chaque réservoir avait une capacité d'un lot. Dans cet exemple le stock est représenté par une variable continue ( VST ). Il peut être dans quatre états (repos, remplir, vider et remplir et vider simultanément), mais ne doit en aucun cas dépasser sa capacité maximale. Nous n'avons pas représenté les procédures traitant les dysfonctionnement dûs aux états remplissage alors que V = Vmax et vidange alors que V = Vmin . La preuve que ces dépassements n'auront pas lieu en fonctionnement normal n'est pas simple car elle ne peut se faire sur le seul sous-réseau décrivant ST . III.4.3 Exemple n 3 : stockage de gaz Présentation de l'exemple Présentation générale Le stockage du gaz, en aval d'un site de production, a pour rôle de faire tampon entre la production et la demande par le réseau de distribution (gure III.14). Cet exemple est inspiré de l'application pilote (( ELF Aquitaine )) du projet ANVAR (( simulation mixte )) [102, 47]. Ce stockage est alimenté par une unité de production qui lui fournit du gaz à une pression Pp et un débit dp , et est soutiré par le réseau de distribution aux clients pour lequel il doit fournir du gaz à une pression Pc et un débit dc . Le procédé est composé de trois fonctions principales : La première, une compression située entre l'unité production et le stockage permet d'assurer le transport entre les deux sites. Cette fonction est utile si la pression Pp , n'est pas susante pour maintenir le débit dp dans la partie amont, jusqu'au n÷ud 4 (au niveau de la pression III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels V2 Pp dp Tp V1 b1 VAU V4 Cp1 P2 V3 Cp2 VR1 P3 73 P4 V5 b2 S PsTs UsVs V8 V6 b3 P5 Figure III.14 Présentation du procédé (( stockage de gaz V7 Cc VR2 P6 Pc dc Tc )) P4 ). Les compresseurs sont supposés fournir un travail spécique constant quel que soit le débit. La pression de sortie correspond donc à un taux de compression connu, c'est la vanne VR1 qui dissipe l'énergie interne excédentaire pour atteindre la pression du n÷ud 4 et permettre l'installation d'un débit dp dans le circuit en amont du stockage. La seconde est le stockage. L'originalité de cet exemple provient des deux propriétés de ce stockage. La première est que c'est un stockage souterrain aquifère, ce qui signie que la capacité volumique du stock dépend de sa pression. La seconde vient du fait que la matière stockée est un uide compressible. Ce qui signie que le nombre de moles que l'on peut y stocker ( Us ) dépend de la pression, de la température et du volume. Ce stockage ne peut pas être utilisé simultanément en alimentation et en soutirage. Par contre, le gaz peut cheminer pour partie dans le by-pass de manière à assurer une liaison Production/Client directe. Les positions des vannes V5 et V6 sont donc liées. Si l'une est ouverte, l'autre doit être obligatoirement fermée. Lorsque le débit de gaz est partagé entre le by-pass et le stock, on utilise soit la vanne VR1 , soit la vanne VR2 pour assurer un partage du débit cohérent. la troisième fonction, compression située entre le stockage et le réseau de distribution aux clients, est identique en tout point à la première. Les pertes de charge frictionnelles sont négligées. Nous considérerons que la température n'évolue pas et est égale à 298 K ( Ts = Tp = Tc = 298 = T ). Congurations possibles du stock Le stockage ne pouvant pas être utilisé à la fois en alimentation et en soutirage, il ne peut donc se retrouver que dans les quatre congurations suivantes : Liaison directe entre l'unité de production et le réseau de distribution aux clients sans stockage (conguration 1, gure III.15). Les deux compresseurs amont ne sont pas utilisés et la vanne VR1 est au repos. Figure III.15 Conguration 1 Alimentation du stock par l'unité de production et liaison entre l'unité de production et le réseau de distribution aux clients (conguration 2, gure III.16). Chapitre III Modélisation de systèmes complexes et exemples 74 Figure III.16 Conguration 2 Soutirage du stock par le réseau de distribution aux clients et liaison entre l'unité de production et le réseau de distribution aux clients (conguration 3, gure III.17). Figure III.17 Conguration 3 Soutirage du stock par le réseau de distribution aux clients (conguration 4, gure III.18). La vanne VAU est fermée et VR1 évacue, éventuellement, tout le gaz fourni par l'unité de production. Il est bien évidemment préférable d'éviter d'avoir à évacuer du gaz, et cette conguration ne devrait être utilisée que pour le cas où dp = 0 . Figure III.18 Conguration 4 Équations du système Nous donnons en annexe A le détail de l'écriture des diérentes équations représentant l'évolution des variables du procédé. Tout d'abord le stockage de gaz. Il est décrit par : Vs = 356; 3 ((Ps , P0) 10) 2 Ps (III.30) 5 Le terme 356; 3 ((Ps , P0) 10) 2 vient de la forme du réservoir de stockage. La loi des gaz 5 parfaits nous donne : Ps:Vs = Us :R:T (III.31) La variation de moles dans le stock est donnée par : dUs = d , d p c d (III.32) P2 = Pp (III.33) P2 = 3:Pp (III.34) Les équations des compresseurs amont sont Pour le premier lorsqu'il est inactif et Lorsqu'il est actif, et III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels 75 P3 = P2 (III.35) P3 = 3:P2 (III.36) P4 R:T : ln P + WVR1 = 0 3 (III.37) P6 = P5 (III.38) P6 = 2:P5 (III.39) Lorsque le second compresseur est inactif, et Lorsqu'il est actif. La détente amont est modélisée par : La compression aval est donnée par : au repos, et : à l'état actif. L'équation de la détente aval est : P R:T : ln Pc + WVR2 = 0 (III.40) 6 Bilan Nous obtenons dix variables : P2 , P3 , P4 , P5 , P6 , WVR1 , WVR2 , Us , Vs , Ps . Cependant toutes les équations ne sont pas actives simultanément. Leur activation dépend de la conguration dans laquelle se trouve le procédé. Prenons le cas où le stockage est dans la conguration 2 et où les compresseurs sont actifs. Les équations nécessaires pour décrire l'évolution du procédé sont : III.30, III.31, III.32, III.34, III.36, III.37, III.39, III.40, plus deux équations donnant la pression aux points P4 et P5 . Dans cette conguration la vanne V5 est ouverte et V6 fermée donc nous avons P4 = Ps et P4 = P5 . Loi de commande appliquée au procédé À l'état initial la pression dans le stock ( Ps(1) ) est de 56 bars, le stock est dans la conguration 1, les compresseurs sont inactifs. Les lois de commande appliquées au procédé s'expriment par un ensemble de contraintes. Pour les compresseurs nous avons : si P3 Ps alors on active un des compresseurs amont (en commençant par Cp1 ). si P3 > 3Ps alors on désactive un des compresseurs amont (en commençant par Cp2 ). si P6 Pc alors on active le compresseur aval. si P6 > 2Pc alors on désactive le compresseur aval. si Pp < Pc et que l'on est dans la conguration 1 alors on active uniquement le compresseur aval (si nécessaire). Pour l'unité de stockage nous avons : Si dp = dc alors on utilise la conguration 1. Chapitre III Modélisation de systèmes complexes et exemples 76 Date Pp (bar) 1 20 2 20 3 20 4 20 5 20 6 20 7 12 8 12 9 12 10 12 11 0 12 0 13 12 14 12 15 12 16 12 17 20 18 20 19 20 20 20 dp (m3=j ) Pc (bar) dc (m3=j ) 20 000 000 20 000 000 20 000 000 20 000 000 20 000 000 20 000 000 10 000 000 10 000 000 10 000 000 10 000 000 0 0 10 000 000 10 000 000 10 000 000 10 000 000 10 000 000 10 000 000 20 000 000 20 000 000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2 500 000 5 000 000 4 000 000 5 000 000 16 000 000 18 000 000 19 000 000 20 000 000 20 000 000 20 000 000 20 000 000 20 000 000 20 000 000 18 000 000 19 000 000 10 000 000 10 000 000 10 000 000 10 000 000 10 000 000 Tableau III.2 Pressions et débits prévus en sortie de l'unité de production et en entrée du réseau de distribution aux clients Si dp > dc alors on utilise la conguration 2. Si dp < dc alors on utilise la conguration 3. Si dp = 0 alors on utilise la conguration 4. Si P3 < Ps alors on utilise la conguration 4. Si Ps = 67 alors on utilise la conguration 4 et on ordonne à la production de s'arrêter. Remarque : les débits dp et dc sont exprimés en mol/s. Le stock se trouve en (( rupture de stock )) si Ps < 54 (le réservoir est vide), le stockage est alors mis en état de panne. Le tableau III.2 fournit la pression et le débit en sortie de l'unité de production pour une période de 20 jours, ainsi que la pression et le débit en entrée du réseau de distribution aux clients pour la même période. Modèle réseau prédicats-transitions-diérentiels Pour obtenir le modèle du système, nous allons écrire les sous-réseaux prédicats-transitionsdiérentiels des équipements puis les coupler. Commençons par le stock S . Il peut être dans cinq congurations diérentes (congurations 1, 2, 3 et 4, ou en panne). Son modèle est donné par le réseau de la gure III.19. III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels 77 p2 t10 t1 2 t9 t2 1 t3 2 p1 t7 t4 1 t5 2 t6 1 p3 tf1;2g;8 t11 t14 tf1;2g;12 p4 p5 Rupture t13 Figure III.19 Sous-réseau PTD du stock S Les transitions tf1;2g;8 et tf1;2g;12 sont des abréviations. Par exemple tf1;2g;8 décrit l'ensemble de deux transitions t1;8 et t2;8 car il y a deux façons de passer de la place p2 à la place p4 . Ces façons seront diérenciées par des fonctions de sensibilisation diérentes. Les fonctions associées aux places sont : 8 P =P > > < P45 = P34 F1 = F5 : > dUs = 0 > : d (III.41) Ps et Vs constants. Avec Xe = fp3g , Xint = fUs ; Vsg et Xs = fP4 ; P5; Psg . 8 > P4 = Ps > > < P5 = P4 F2 : > dUds = dp , dc > Ps:Vs = Us:R:T > : Vs = 353; 6: (10: (Ps , P0)) 52 :Ps (III.42) Avec Xe = fdp; dc; P3g , Xint = fUs ; Vsg et Xs = fP4; P5; Psg . 8 > P5 = Ps > > < PdU4s= P5 F3 : > d = dp , dc > Ps:Vs = Us:R:T > : Vs = 353; 6: (10: (Ps , P0)) 52 :Ps (III.43) Chapitre III Modélisation de systèmes complexes et exemples 78 Avec Xe = fdp; dc; P3g , Xint = fUs ; Vsg et Xs = fP4; P5; Psg . 8 > P4 = 0 > > < PdU5s= Ps F4 : > d = ,dc > Ps:Vs = Us :R:T > : Vs = 353; 6: (10: (Ps , P0)) 25 :Ps Avec Xe = fdp; dcg , Xint = fUs ; Vsg et Xs = fP4 ; P5; Psg . Les fonctions de sensibilisation sont : e1 : dp > dc e2 : d p = d c e3 : (dp < dc ) ^ (dp 6= 0) e4 : d p = d c e5 : d p = 0 e6 : d p = d c e7 : dp > dc e1;8 : dp = 0 e2;8 : P3 < Ps e9 : dp > dc e10 : (dp < dc ) ^ (dp 6= 0) e11 : (dp < dc ) ^ (dp 6= 0) e1;12 : dp = 0 e2;12 : P3 < Ps e13 : Ps < 54 e14 : Ps < 54 Et les fonctions de jonction sont : j2 : j4 : ( ( P4 = Pp P5 = Pp P4 = Pp P5 = Pp j5 : P4 = 0 (III.44) III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels 79 ( P4 = Pp P5 = Pp jf1;2g;8 : P4 = 0 jf1;2g;12 : P4 = 0 j6 : La vanne de dissipation amont ( VR1 ) peut être active ou au repos (dans la conguration 1). Le sous-réseau la représentant possède deux places et est donné par la gure III.20-a. Les fusions dynamiques de transitions étiquetées par 1 et 2 assurent que VR1 est au repos dans la conguration 1. VR1 VR2 t16 2 Repos p6 11 00 t15 1 p7 Actif -a- 11 00 00 11 p8 -b- Compresseurs Repos p9 0 1 0 1 00 111 0 00 11 tf1;2;3g;18 f3;4;5g p10 Actif tf1;2;3;4;5;6;7g;17 f6;7;8;9;10;11;12g -c- Figure III.20 Sous-réseaux PTD de VR1 , VR2 et des compresseurs ( Cp1 , Cp2 et Cc ) n o Avec F7 : R:T : ln PP43 + WVR1 = 0 . Nous avons alors Xe = fP3 ; P4g , Xint = WVR1 et Xs = ; . Ce sous-réseau possède une fonction de jonction pour la transition t15 , j15 : WVR1 = 0 . La vanne de dissipation aval ( VR2 ) est toujours active, donc le sous-réseau la modélisant est une place (voir gure III.20-b). L'équation associée à cette place est F8 : R:T : ln PPc6 + WVR2 = 0 . Avec Xe = fP6; Pcg , n o Xint = WVR2 et Xs = ; . Les compresseurs sont soit actifs, soit au repos. Nous obtenons alors un sous-réseau composé de deux places (voir gure III.20-c), qui comprend trois jetons initialement dans p9 . Chaque jeton représente un compresseur ( CP1 , CP2 et Cc ), et porte un ensemble de variables génériques fPA; PB; CE ; g . PA est la pression d'entrée, PB celle de sortie, CE est le nom du compresseur et le taux du compresseur. Pour CP1 ces variables sont instanciées par fPp; P2; Cp1 ; 3g , pour CP2 , fP2; P3; Cp2 ; 3g et pour Cc , fP5; P6; Cc; 2g . Les équations, fonctions des variables formelles, sont : F9 : PB = PA Avec Xe = fPA ; CE g , Xint = ; et Xs = fPB g . F10 : PB = :PA Avec Xe = fPA ; CE g , Xint = ; et Xs = fPB g (on suppose que est un paramètre constant). Les fonctions de sensibilisation sont : e1;17 : CE = Cp1 Chapitre III Modélisation de systèmes complexes et exemples 80 e2;17 : CE = Cp1 e3;17 : CE = Cp1 e4;17 : CE = Cp2 e5;17 : e6;17 : CE = Cp2 CE = Cp2 e7;17 : CE = Cc e1;18 : CE = Cp1 e2;18 : CE = Cp2 e3;18 : CE = Cc La loi de commande des compresseurs est donnée par les deux sous-réseaux de la gure III.21. Le sous-réseau fp11 ; p12; p13g représente la commande des compresseurs amont. Quand p11 est marquée les deux compresseurs sont au repos, p12 représente l'état Cp1 actif et Cp2 au repos et p13 correspond à l'état avec les deux compresseurs actifs. Le sous-réseau fp14 ; p15g représente la commande du compresseur aval. Quand p14 est marquée, le compresseur est au repos, et quand p15 est marquée il est actif. Repos 0 1 0 p11 1 tf1;2;3g;20 f6;7;8g Cp1 actif Repos 0 1 0 p14 1 t21 t23 3 12 p12 tf1;2;3g;19 f9;10;11g t22 4 t24 5 Cc actif p15 p13 Cp1 et Cp2 actifs Figure III.21 Sous-réseaux PTD de la commande des compresseurs Avec comme fonctions de sensibilisation : e1;19 : P3 > 3:Ps e2;19 : dp = dc e3;19 : dp = 0 e1;20 : P2 > 3:Ps e2;20 : dp = dc III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels 81 e3;20 : dp = 0 e21 : (P2 < Ps ) ^ (dp 6= dc ) e22 : (P3 < Ps ) ^ (dp 6= dc ) e23 : P6 > 2:Pc e24 : P6 < Pc En eet les compresseurs amont sont mis au repos si le stock est dans la conguration ( dp = dc ) ou dans la conguration 4 ( dp = 0 ). Les variables associées à la place p11 sont Xe = fP2; Ps; dp; dcg , Xint = ; et Xs = ; . Pour la place p12 , Xe = fP2; P3; Ps; dp; dcg , pour p13 , Xe = fP3; Psg , pour p14 et p15 , Xe = fP6; Pcg . La modélisation des contraintes imposées par l'unité de production et le réseau de distribution aux clients est représentée par les sous-réseaux prédicats-transitions-diérentiels de la gure III.22. p16 p17 t25 p23 p18 t26 p24 t31 p19 t27 p25 t32 p20 t28 p26 t33 p34 t29 p27 t34 p33 t41 p21 t30 p28 t35 p32 t40 p22 p29 t36 p31 t39 t38 t37 p30 Figure III.22 Sous-réseaux PTD des contraintes de l'unité de production et le réseau de distribution aux clients Avec comme fonctions de sensibilisation associées : e26 : = 7 j e27 : = 11 j e28 : = 13 j e29 : = 17 j e30 : = 19 j e32 : = 2 j e33 : = 3 j e34 : = 4 j e35 : = 5 j Chapitre III Modélisation de systèmes complexes et exemples 82 e36 : = 6 j e37 : = 7 j e38 : = 8 j e39 : = 14 j e40 : = 15 j e41 : = 16 j Et comme fonctions de jonction : j25 : j26 : j27 : j28 : j29 : j30 : j31 : ( ( ( ( ( ( ( Pp = 20 dp = 20000000 Pp = 12 dp = 10000000 Pp = 0 dp = 0 Pp = 12 dp = 10000000 Pp = 20 dp = 10000000 Pp = 20 dp = 20000000 Pc = 20 dc = 2500000 j32 : dc = 5000000 j33 : dc = 4000000 j34 : dc = 5000000 j35 : dc = 16000000 j36 : dc = 18000000 j37 : dc = 19000000 j38 : dc = 20000000 j39 : dc = 18000000 j40 : dc = 19000000 j41 : dc = 10000000 III.4 Exemples de modèles réseaux prédicats-transitions-diérentiels 83 Toutes les places du sous-réseau représentant les contraintes de production ont leurs variables réparties, de la même manière, comme suit : Xe = ; , Xint = ; et Xs = fPp; dpg . Il en est de même pour toutes les places du sous-réseau représentant les contraintes du réseau de distribution aux clients. Ce qui nous donne : Xe = ; , Xint = ; et Xs = fPc ; dcg . Nous retrouvons deux évènements communs aux sous-réseaux stock ( S ) et vanne de dissipation amont ( VR1 ). Le premier, 1 , correspond à l'entrée dans la conguration 1, et le second, 2 , correspond à la sortie de la conguration 1. Le couplage entre ces deux sous-réseaux s'exprime par : TC1 = ft2 ; t4; t6 g ft15g TC2 = ft1 ; t3; t5 g ft16g Et dix évènements liant les sous-réseaux de commande des compresseurs au sous-réseau des compresseurs. 3 : tC3 = t1;18 t21 4 : tC4 = t2;18 t22 5 : tC5 = t3;18 t24 6 : tC6 = t1;17 t1;20 7 : tC7 = t2;17 t2;20 8 : tC8 = t3;17 t3;20 9 : tC9 = t4;17 t1;19 10 : tC10 = t5;17 t2;19 11 : tC11 = t6;17 t3;19 12 : tC12 = t7;17 t23 Les autres liens entre les sous-réseaux sont exprimés par l'intermédiaire de conditions sur les variables continues. Discussion Dans cet exemple nous avons modélisé un système avec une partie continue dominante, mettant en ÷uvre une équation non-linéaire et soumis à de nombreux changements de conguration. Pour construire le modèle nous avons écrit les sous-réseaux prédicats-transitions-diérentiels de chaque équipement puis nous les avons couplés en utilisant des fusions de transitions et des tests sur les variables continues. La gure III.23 illustre le fait que les conditions sur les variables continues sont respectées (réseau bien structuré). Comme chaque sous-réseau est calculable, l'ensemble du système le sera donc dans tous les états. Il est intéressant de noter que le franchissement d'une transition du sous-réseau représentant les contraintes de production entraînera, la plupart du temps, des franchissements de transitions dans les autres sous-réseaux. Les compresseurs franchiront des transitions en fonction de l'évolution des variables continues des autres sous-modèles, sans pour autant que d'autres transitions soient franchies. Nous avons donc un exemple d'interactions directes de la partie continue d'un module sur la partie discrète d'un autre module (interactions hybrides). Chapitre III Modélisation de systèmes complexes et exemples 84 Prod. Pp dp Cp1 Cp2 Pp P2 P2 P3 VR1 P3 P4 Stock dc P4 dp P3 PPs5 Cc VR2 P5 P6 P6 Pc Client Pc dc Cp1 Cp2 dp dc P2 P3 Ps Nom du sous-réseau Xe Xs Figure III.23 Liens de causalité entre les blocs III.5 Conclusion Au cours de ce chapitre nous avons traité le problème de l'écriture de modèles réseaux prédicats-transitions-diérentiels. Nous avons déni les outils an de pouvoir écrire un modèle soit en commençant par représenter la partie discrète, puis la partie continue, soit en écrivant un sous-réseau prédicats-transitions-diérentiels pour chaque équipement et en les combinant. Pour cela nous avons étudié les liens entre sous-réseaux. Nous avons déni les notions de fusion de transitions statique, fusion de branches et fusion dynamique de transitions, et nous avons exprimé les règles à respecter pour écrire un modèle continu calculable en écrivant des sous-modèles indépendemment les uns des autres (sous-réseaux bien structurés). Il est ainsi possible d'exprimer les interactions discrètes (par fusion de transitions) et les interactions continues (variables d'entrée et de sortie). Nous avons également souligné le besoin d'une interaction hybride entre sous-niveaux. Puis nous avons écrit les modèles réseaux prédicats-transitions-diérentiels de trois procédés diérents. Un avec une partie discrète dominante et un autre avec une partie continue dominante. Un des modèles est obtenu en écrivant la partie discrète, puis la partie continue, et les deux autres en écrivant un sous-réseau pour chaque équipement et en les couplant. Nous avons mis ainsi en évidence la possibilité d'avoir une approche modulaire pour décrire des systèmes complexes. Il ne s'agit pas réellement d'une approche à objets car les sous-réseaux peuvent aussi bien décrire des fonctions que des objets physiques et surtout nous n'avons déni ni un mécanisme d'héritage, ni même une méthode de hiérarchisation. Toutefois, notre approche devrait, tout comme les approches à objets, améliorer notablement la possibilité de réutilisation des fragments de modèles, développés antérieurement, pour représenter de nouveaux systèmes et ainsi aider à capitaliser une connaissance et une expérience développée au sein d'une entreprise. Dans le cadre de la supervision il est nécessaire de pouvoir évaluer l'évolution future du procédé. Cette évolution est généralement basée sur la simulation du modèle représentant le système à partir d'un état courant. Nous allons, dans le chapitre suivant, donner les principes de simulation des réseaux prédicats-transitions-diérentiels. Chapitre IV Simulation des réseaux prédicats-transitions-diérentiels IV.1 Introduction Nous venons de dénir un modèle hybride. Ce modèle peut aider lors des phases de conception, à dimensionner et faire la spécication de la commande, et, lors de la phase d'exploitation, à valider un plan de production ou à prévoir l'évolution future d'un procédé discontinu en fonction de la commande appliquée au niveau de la supervision. L'apport du modèle vient alors, dans un premier temps, de son formalisme ainsi que de son analyse, surtout lors des phases de spécication. Cependant, et plus particulièrement dans les procédés discontinus où l'analyse qualitative est peu développée, une analyse quantitative à partir du modèle est souvent nécessaire an de tester le comportement du procédé. La simulation est alors fortement utilisée, car elle permet de diminuer les longs et coûteux essais sur une maquette ou le procédé lui même. Nous allons regarder dans ce chapitre comment faire la simulation d'un réseau prédicatstransitions-diérentiels. Dans les réseaux prédicats-transitions-diérentiels, la description de l'évolution des variables d'état continues se fait en écrivant des systèmes d'équations algébriques et/ou diérentielles. Les systèmes d'équations peuvent être linéaires ou non-linéaires, implicites ou explicites (Annexe B). La diculté de mettre en ÷uvre de tels systèmes est fortement liée à ces propriétés. Nous décrivons deux principes de simulation. Le premier, dans le cas où les équations mises en ÷uvre sont simples ou simpliables, consiste à utiliser un simulateur (purement à évènements discrets) de réseaux de Petri haut-niveau (tel que Miss-RdP mixte ou Design CPN) après avoir transformé le réseau prédicats-transitions-diérentiels. Nous dénissons les cas pour lesquels ce principe est applicable (calcul explicite des dates d'occurrence des évènements, et, à ces dates, des valeurs des variables d'état continues possible ou non), et nous expliquons les transformations à réaliser. Le deuxième principe est basé sur le couplage d'un simulateur de réseaux de Petri et d'un logiciel permettant l'intégration de systèmes d'équations diérentielles algébriques. Nous présentons l'algorithme de simulation ainsi obtenu. Chapitre IV Simulation des réseaux prédicats-transitions-diérentiels 86 IV.2 Premier principe Avant d'exposer le premier principe de simulation des réseaux prédicats-transitions-diérentiels, rappelons brièvement comment se fait la mise en ÷uvre des réseaux de Petri colorés ou prédicats-transitions. Généralement elle se fait par l'intermédiaire d'un joueur de réseau de Petri [154]. Le réseau est considéré comme un système de règles compilées, c'est-à-dire traduit en une structure de données complexes. La simulation est basée sur l'utilisation d'un mécanisme d'inférence spécialisé, appelé joueur de réseau de Petri, exploitant la structure de données. Ce joueur, cycliquement, établit la liste des transitions sensibilisées associées aux n-uplets de jetons utilisables pour le franchissement, calcule leurs dates de franchissement, les range dans un échéancier, prend pour nouveau temps courant celui du premier évènement de l'échéancier et franchit la transition correspondante, les transformations sur les données ne sont faites qu'à cet instant. Le programme, réalisant ce moteur d'inférence, ne dépend donc pas d'une application spécique. IV.2.1 Méthode Le principe de mise en ÷uvre d'un réseau prédicats-transitions-diérentiels est le suivant : Dénition 26 (premier principe). Utiliser un simulateur de réseau de Petri haut-niveau en : Remplaçant l'intégration des variables d'état continues par une durée de temporisation calculée à partir des équations à intégrer et des seuils à surveiller. Calculant les valeurs des variables d'état continues, lors des franchissements des transitions, en fonction des équations décrivant l'évolution des variables continues dans l'état précédent et de la durée de séjour dans cet état. Ce premier principe revient à réécrire le réseau prédicats-transitions-diérentiels en un réseau de Petri haut-niveau (réseaux de Petri colorés, réseaux prédicats-transitions, réseaux de Petri objets) correspondant au formalisme utilisé par le simulateur à évènements discrets sur lequel on veut faire la simulation. Nous avons par exemple les logiciels commercialisés Miss-RdP mixte et Design CPN. Design CPN est un simulateur de réseaux de Petri colorés pour lesquels il est possible d'associer une temporisation sur les jetons [89, 90]. De plus lors des franchissements de transitions il est possible d'associer une procédure en langage ML (langage dans lequel est converti le modèle pour réaliser la simulation). Il est alors possible, grâce à l'écriture de procédures ML, de calculer la durée des temporisations des jetons, ainsi que les valeurs des variables d'état continues. Un problème résulte toutefois du fait que ce calcul est eectué lorsqu'un jeton est mis dans une place et non lorsqu'une transition est sensibilisée. Miss-RdP mixte est un simulateur de réseaux prédicats-transitions-temporels-stochastiques, où les durées peuvent être déterminées soit par des fonctions aléatoires soit par des variables, et permettant de faire de la simulation de Monte-Carlo. Nous allons détailler le premier principe de simulation en nous basant sur un outil de type Miss-RdP mixte qui est plus proche de notre approche, que Design CPN, car les calculs de durées sont faits lors des sensibilisations des transitions (réseaux de Petri prédicats-transitions-t-temporels). En eet dans les réseaux prédicats-transitions-diérentiels la plus petite solution en de la fonction de sensibilisation associée à une transition est calculée à partir de la date de sensibilisation. IV.2 Premier principe 87 Rappelons, pour commencer, la dénition des réseaux prédicats-transitions-t-temporels. Dénition 27. Un réseau NPr-Tr-tl =< NPr-Tr; > où : prédicats-transitions-t-temporel est une paire NPr-Tr est un réseau prédicats-transitions déni par < R; A; M0 > où R est un réseau de Petri ordinaire, A est l'annotation de NPr-Tr ( A =< X; Atc; Ata; Ac > ) et M0 est le marquage initial. est une fonction qui à chaque transition ti fait correspondre un intervalle fermé rationnel (ti ) = [min (ti ); max(ti )] qui décrit une durée de sensibilisation. Cet intervalle peut être statique comme dans les réseaux de Petri t-temporels, ou bien min et max peuvent dépendre des attributs des n-uplets de jetons sensibilisant la transition ti . La transformation d'un réseau prédicats-transitions-diérentiels en un réseau prédicats-transitions-t-temporel se fait en trois étapes : Premièrement, les fonctions de sensibilisation des transitions ti sont remplacées par une fonction explicite, ti , de la durée de sensibilisation de ces transitions. ti est la plus petite solution de eti (Xini ) = 0 avec les contraintes Fk (Xpk ) = 0 pour toutes les places marquées. Il faut pouvoir exprimer ti sous la forme ti = Duree (Xini ) . L'intervalle ti est l'intervalle dans lequel ti prend ses valeurs (image de la fonction Duree ). Deuxièmement, la mise à jour des variables d'état continues se fait par l'intermédiaire de la fonction Ata permettant de modier les variables. Cette fonction est déterminée à partir des équations des places amont et de la durée de séjour dans les places amont (information disponible sous Miss-RdP mixte) puis des fonctions de jonction jti . Troisièmement, pour chaque place pk mettant en ÷uvre des équations, supprimer les fonctions associées Fk . Remarques : Dans un contexte de simulation, la non explicitation de l'intervalle ti reste sans conséquence. Il devrait par contre être explicité pour faire de la vérication formelle (par exemple pour la construction du graphe des classes). L'ensemble des fonctions F doit être utilisé pour transformer les fonctions de sensibilisation en des fonctions algébriques explicites donnant les dates de franchissement en fonction de l'état continu des équipements à la date d'arrivée des jetons dans la place. Elles sont également utilisées pour réécrire les fonctions de jonction car si est la date de franchissement de la transition ti , il ne faut plus donner l'état continu à + en fonction de l'état à , , mais en fonction de l'état des variables continues à la date d'arrivée des jetons dans les places d'entrée de la transition franchie. Il est clair que ces transformations d'équation ne seront pas toujours possibles. Les dicultés viendront bien sûr de la complexité des systèmes Fk , mais elles peuvent également venir du fait que les dates d'arrivées des jetons dans les places d'entrée ne sont pas les mêmes. Cette dernière diculté est bien sûr aggravée dans le cas de fusions dynamiques de transitions. Elles deviennent insurmontables en cas d'interactions hybrides, c'est-à-dire lorsque la fonction de sensibilisation d'une transition fait intervenir une variable continue dont la dynamique dépend d'un autre sous-réseau Chapitre IV Simulation des réseaux prédicats-transitions-diérentiels 88 IV.2.2 Exemple Reprenons l'exemple du procédé discontinu introduit dans le paragraphe III.4.1. Pour eectuer sa simulation selon le premier principe le modèle. Occupons-nous plus il faut transformer en détail de la place p2 . La fonction F2 dVdR , deR = 0 qui lui est associée doit être prise en compte dans les fonctions de sensibilisation ( ti ) et les actions sur les variables associées à ses transitions aval. La seule transition aval de cette place est t2 avec comme fonction de sensibilisation associée e2 ( VR = 100l ). Calculons alors la date de franchissement de t2 , permettant de représenter la durée de l'opération associée à p2 . La durée ( ) du transfert de 100 l de produit venant de Se vers R à un débit deR est alors égale à = 100,dVeRR(t1 ) . Nous introduisons VR(t1 ) car R n'est pas nécessairement vide à la date t1 d'arrivée du jeton dans p2 . Il est ainsi possible d'éviter de faire déborder le réacteur R . La date de franchissement de t2 est alors t2 = t1 + où t1 est à la fois la date d'arrivée du jeton dans p2 et la date de sensibilisation de t2 . L'intervalle associé à t2 sera alors : 2 = 2min = 100 , VR(t1 ) deR ; 2max = 100 , VR (t1 ) deR (IV.1) La mise à jour des variables d'état continues se fait lors du franchissement des transitions. Regardons comment se détermine la fonction At2 mettant à jour les variables du jeton lors du franchissement de t2 . Pendant la durée ( ) de séjour dans p2 le volume du réacteur a été modié avec un débit deR . Nous avons donc VR : = VR + deR . Nous avons alors = t2 , t1 . Comme il n'y a pas de fonction de jonction associée à t2 (autre que la fonction identité) nous avons alors At2 dénie par : At2 : VR : = VR + deR (t2 , t1 ) (IV.2) En fait, vu le calcul de t2 , VR = 100l . En faisant les mêmes transformations pour t4 , t6 , t8 , t10 , t12 , t14 on obtient le modèle donné par la gure IV.1, avec : 2min = 2max = 100 ,dVR(t1 ) (IV.3) 4min = 4max = 600 (IV.4) 6min = 6max = VRd(t5 ) (IV.5) 8min = 8max = 100 (IV.6) 10min = 10max = VBd(t9 ) (IV.7) 12min = 12max = 1200 (IV.8) eR sR sB IV.2 Premier principe Se 89 p16 p1 p15 t1 t14 [14min ; 14max ] p2 p14 Ss t2 [2min ; 2max ] t13 p3 p13 R t3 t12 [12min ; 12max ] p17 p4 p12 t4 [4min ; 4max ] t11 p5 p11 t5 [10min ; 10max ] t10 B p18 p6 p10 t6 [6min ; 6max ] p7 p19 t7 t9 p8 p9 t8 [8min ; 8max ] Figure IV.1 Exemple n 1 modié pour la mise en ÷uvre selon le premier principe Chapitre IV Simulation des réseaux prédicats-transitions-diérentiels 90 14min = 14max = VRd(t13 ) (IV.9) At2 : VR = VR + deR (t2 , t1 ) (IV.10) sR VR = VR , dsR (t6 , t5 ) VB = VB + deB (t6 , t5 ) (IV.11) VB = VB , dsB (t10 , t9 ) VR = VR + deR (t10 , t9 ) (IV.12) At14 : VR = VR , dsR (t14 , t13 ) (IV.13) At6 : At10 : ( ( Lors du franchissement de t1 (à = 0 ) un jeton est déposé dans la place p2 . t2 est alors sensibilisée. La fenêtre 2 est calculée, et nous avons : 2 = [5 min; 5 min] (IV.14) Au bout de 5 minutes t2 est franchie, en considérant que le réacteur choisi était vide à = 0 , le volume du réacteur vaut alors 100 l. IV.2.3 Limites de l'approche Nous venons de voir comment transformer le modèle prédicats-transitions-diérentiels d'un procédé discontinu en un modèle simulable sans avoir à faire appel à un intégrateur. Cependant, comme nous l'avons mentionné au paragraphe IV.2.1, cette approche ne permet pas de faire la simulation de tous les modèles réseaux prédicats-transitions-diérentiels. En eet en plus des cas pour lesquels on ne peut pas calculer les dates de n d'opération, ni les variables d'état continues, explicitement, il y a certains cas pour lesquels cette mise en ÷uvre s'avère plus dicile. Ces cas correspondent aux modèles construits à partir de sous-réseaux prédicats-transitions-diérentiels écrits indépendamment les uns des autres puis couplés par fusions de transitions et/ou tests sur les variables continues (interactions hybrides). Reprenons l'exemple du procédé avec stockage intermédiaire (cf paragraphe III.4.2). Nous allons nous focaliser sur la phase de transfert entre R1 et ST (voir gure IV.2). Nous avons 1 et 2 deux étiquettes, associées aux transitions des sous-réseaux, correspondant aux évènements (( début de remplissage de ST )) et (( n de remplissage de ST )), permettant de coupler par TC1 = ft1 ; t5 g ft15 g ftR15 g et TC2 = ft2 ; t6 g ft16 g ftR16 g n les sous-réseaux o ( TC2 = tC2;1 ; tC2;2 avec tC2;1 = t2 t16 tR16 et tC2;2 = t6 t16 tR16 ). La fonction de sensibilisation associée à tR16 est etR16 : VR1 = 0u:v: . Cette fonction est transformée, pour pouvoir faire la mise en ÷uvre de ce modèle selon le premier principe, en : V ( ) V ( ) TC2 = TC2min = R1 t15 ; TC2max = R1 t15 (IV.15) d3 d3 Considérons, à la date = 1; 5u:t: , que le procédé est dans l'état suivant : le stock ST est au repos et VST = 0u:v: . Si nous commençons un transfert de R1 vers ST à ce moment là, TC1 IV.2 Premier principe 91 t15 1 p12 pR12 t16 2 t1 1 Repos p1 tR15 1 Remplir p t2 2 t4 2 4 tC2;1 = [0; 5; 0; 5] t5 1 t6 ST 2 VST = 0u:v: à = 1; 5u:t: tR16 2 ST VST = 3u:v: t1 1 t3 3 Remplir/ Vider p1 p3 t3 3 t2 2 p2 t4 4 t5 1 p3 t6 2 tC ; = [0; 5; 0; 5] à = 1; 8u:t: 22 Figure IV.2 Dicultés liées à la fusion dynamique de transitions est franchie (soit t15 , tR15 et t1 ). La durée du transfert (donc TC2min et TC2max ) est égale à 0; 5u:t: . L'évènement (( n de remplissage de ST )) est donc prévu à la date = 2u:t: . Si à = 1; 8u:t: on commence un transfert de ST vers R2 , la transition t3 est franchie. La valeur de VST est remise à jour par At3 , et vaut 3u:v: . La transition tC2;1 n'est plus sensibilisée, car t2 n'est plus sensibilisée, mais tC2;2 devient immédiatement sensibilisée, car t6 devient sensibilisée. Cependant l'intervalle TC2 est recalculé. Et on a TC2min = TC2max = VdR31 = 0; 5u:t: . Ce qui fait que l'évènement (( n de remplissage de ST )) est prévu à la date = 2; 3u:t: , ce qui est faux car si l'on franchit tR16 à = 2; 3u:t: on aura déplacé 10 (2; 3 , 1; 5) = 8u:v: au lieu des 5u:v: initialement prévus. Cette erreur vient du fait qu'à la date = 1; 8u:t: nous réévaluons TC2 avec la valeur de VR1 calculée à la date = 1; 5u:t: . Lors du calcul de TC2 , il aurait fallu utiliser VR1 ( = 1; 8) au lieu de VR1 ( = 1; 5) . Il faut donc, lorsque l'on détermine un intervalle de sensibilisation, s'assurer que les variables utilisées soient mises à jour. En fait au lieu d'eectuer le calcul de la durée de sensibilisation à partir des valeurs des variables à la date d'arrivée des jetons dans les places, il faut le faire avec les valeurs des variables à la date de sensibilisation de la transition. La mise à jour des variables sur les jetons implique bien évidemment de pouvoir expliciter les valeurs des variables en fonction du temps à partir de l'ensemble des équations F . Regardons maintenant le cas du couplage par tests sur les variables continues à travers l'exemple du stockage de gaz (cf paragraphe III.4.3). Nous isolons les fragments de sous-réseaux suivant (voir gure IV.3) : les états actif et au repos des compresseurs amont, et les états stocker et déstocker du stockage. Considérons qu'à = 0j , Pp = 20b , dp = 10000000m3=j , Pc = 20b et dc = 20000000m3=j . Le stock est dans la conguration 3 ( p3 marquée), donc en cours de vidange, et Ps = 59b . CP1 est actif et CP2 est au repos, donc P3 = 60b . La transition tc4 ( t2;18 t22 ) est sensibilisée, mais la fonction de sensibilisation de t22 , e22 ( (P3 < Ps ) ^ (dp 6= dc ) ), ne sera jamais vraie (car Ps est inférieure à P3 et l'on vide le stock, donc on diminue Ps , et on n'aura, alors, pas besoin d'augmenter l'énergie fournie par les compresseurs pour assurer le débit dp ). En fait si l'on reprend les équations on trouvera une valeur négative pour 18 . Ce qui signie que cet Chapitre IV Simulation des réseaux prédicats-transitions-diérentiels 92 p2 S Repos t9 0 1 0 01 1 0 p9 1 000 111 000 111 000 tf1;2;3g;18 111 000 111 p3 000 111 000 111 000 111 1 p10 0 t22 Actif Cp1 actif 1111 Cp1 et Cp2 actifs 0000 0000 1111 00 11 0000 1111 00 11 p12 p13 Figure IV.3 Dicultés liées aux interactions hybrides entre les sous-réseaux évènement ne pourra jamais se produire. On associe alors à t18 la fenêtre 18 = ]+1; + 1[ . Si à = 1j , dc est modié et devient égal à 2000000 alors t9 est franchie ( Ps sera actualisée, Ps = 58; 97 ) et le stock passera dans la conguration remplissage ( p2 marquée). Donc la pression dans le stock augmente, et sera en mesure de dépasser les 60 , donc P3 (à = 86; 48j ). Pourtant, la transition correspondante n'étant pas désensibilisée et re-sensibilisée, la fenêtre 18 n'est pas réactualisée et reste égale à ]+1; + 1[ . Cette erreur vient du fait qu'à la date = 1j on modie la description de l'évolution de Ps . Il faudrait redénir 18 à partir des nouvelles équations actives. La raison de ce problème est que la fonction de sensibilisation de t22 fait intervenir une variable ( Ps ) dont la dynamique est dénie dans un autre sous-réseau (interaction hybride). Comme nous venons de le voir, la dénition d'un réseau prédicats-transitions-diérentiels par couplage de sous-réseaux PTD, écrits indépendamment, nous pose des problèmes pour la mise en ÷uvre du modèle. En eet de même que cette stratégie d'obtention des modèles rend l'analyse des systèmes d'équations plus dicile, elle rend également la simulation plus dicile. Dans ce cas il faut eectuer le calcul de la durée des sensibilisations à partir des valeurs des variables à la date de sensibilisation des transitions. Ce qui nous amène à faire appel, lors de chaque franchissement de transition, à un module permettant de calculer l'état continu du système et les dates d'occurrence des évènements attendus. Mais ce type de mécanismes n'est pas prévu dans les simulateurs de réseaux de Petri de haut-niveau actuellement disponibles sur le marché. De plus, dans les cas simples, il dégraderait inutilement la performance de ces outils. IV.3 Second principe IV.3.1 Méthode Nous venons de voir un premier principe de simulation des réseaux prédicats-transitionsdiérentiels. Il consiste à transformer le réseau en un réseau prédicats-transitions-t-temporel. Cette transformation n'est pas toujours possible, c'est pourquoi nous allons, maintenant, présenter un second principe de mise en ÷uvre des réseaux prédicats-transitions-diérentiels plus général. IV.3 Second principe 93 Il consiste à coupler deux simulateurs [53]. L'un permettant de simuler des réseaux de Petri haut-niveau et l'autre réalisant la simulation des systèmes d'équations (intégrateur). Les deux simulateurs vont évoluer tour à tour et seront synchronisés par les évènements. Il ne s'agira pas de lancer les deux simulateurs en parallèle, mais de lancer un simulateur jusqu'à l'apparition d'un évènement puis de donner la main à l'autre simulateur. Dénition 28 (second principe). La mise en ÷uvre de réseaux prédicats-transitions-diérentiels se fait par couplage de deux simulateurs : un simulateur discret (joueur de réseaux de Petri) et un simulateur continu (intégrateur). Le joueur de réseaux de Petri détermine, en fonction de l'état discret du procédé, les équations à intégrer et les seuils à surveiller. Le simulateur continu est alors appelé et intègre les équations jusqu'à l'apparition du premier seuil. Alors le simulateur discret fait évoluer le marquage du réseau en fonction du seuil atteint et des valeurs des variables continues. Nous avons besoin de coupler un joueur de réseau de Petri avec un simulateur de systèmes d'équations. La synchronisation entre les deux simulateurs se fera lors de l'occurrence d'évènements (de temps ou d'état). L'algorithme décrit par la gure IV.4 nous montre comment se fait cette synchronisation. Tir de la transition ti Enlever les Fk des places d'entrées pk de ti Mettre les Fl des places de sorties pl de ti Calculer la liste des transitions ti sensibilisées Établir la liste des ei à surveiller Partie simulateur discret Exécuter ji Intégrer les Fl jusqu'au premier seuil parmi la liste des ei Partie simulateur continu Rechercher la transition ti associée au premier seuil Figure IV.4 Principe de simulation par couplage de deux simulateurs Cet algorithme est décomposé en cinq étapes. La première consiste, lors d'un tir de transition, à modier la structure du système d'équations. Les équations associées aux places que quittent les jetons sont enlevées du système d'équations, alors que les équations associées aux places dans lesquelles un jeton est déposé sont ajoutées au système d'équations. Pour cette étape c'est le simulateur discret qui est activé, car c'est lui qui fait évoluer le marquage du réseau de Petri. Notons que le simulateur discret modie les équations manipulées par le simulateur continu. Nous entrons alors dans un nouvel état discret. La deuxième étape va consister à déterminer quelles sont les conditions de sortie de cet état. Pour cela le joueur de réseau de Petri va déterminer la liste des transitions sensibilisées et en déduire la liste des évènements seuils (fonctions de sensibilisation) à surveiller. Cette liste est communiquée au simulateur continu. Ensuite, la troisième étape consiste, à exécuter les fonctions de jonction correspondant aux transitions franchies. Il s'agit de modier les valeurs des variables d'état continues, c'est l'intégrateur qui va la réaliser. 94 Chapitre IV Simulation des réseaux prédicats-transitions-diérentiels L'intégration des équations va alors commencer et se poursuivra jusqu'à l'apparition d'un évènement seuil. Cette quatrième étape concerne uniquement le simulateur continu. Il est important de noter que certains seuils peuvent devenir vrais dès l'exécution des fonctions de jonction ji , et donc que l'étape d'intégration peut être court-circuitée. Enn lorsqu'un seuil est détecté, il faut rechercher quelle est la transition associée à ce seuil (cinquième étape) et ensuite communiquer au simulateur discret quelle est la transition qui doit être franchie. Le simulateur discret réalise le tir de cette transition en reprenant l'algorithme à la première étape. Les modèles des trois exemples présentés au chapitre précédent peuvent ainsi être mis en ÷uvre directement. Ce principe est beaucoup plus puissant, mais nécessite de manipuler deux simulateurs. Il est alors envisageable soit d'utiliser deux simulateurs existants et disponibles sur le marché. Il faut qu'ils soient susamment ouverts et il faut alors écrire l'interface entre les deux. Soit il faut développer un simulateur mixte en suivant ce principe. Soit, enn, il est possible de faire un simulateur dédié à une application en écrivant une partie simulation discrète et une partie simulation continue. IV.3.2 Exemple Regardons plus en détail la mise en ÷uvre du modèle réseau prédicats-transitions diérentiels de l'exemple du stockage de gaz (cf paragraphe III.4.3). Le modèle est composé de sept sousréseaux prédicats-transitions-diérentiels. La gure IV.5 rappelle ces sous-réseaux. Avant de donner l'algorithme de simulation du modèle, regardons comment la simulation des variables continues sera réalisée. Le calcul de la pression Ps se fait à partir d'une équation non-linéaire, nous appliquerons alors un algorithme de Newton pour la calculer. L'équation diérentielle dUds = ::: sera calculée en découpant l'horizon en petits intervalles. À chaque pas il est alors possible de calculer la valeur de Us en faisant la diérence entre le nombre de moles entrant dans le stock et celui des moles sortant sur ce pas. On calcule ensuite Ps et on peut en déduire les autres valeurs des variables continues. Regardons ce que devient l'algorithme de mise en ÷uvre de cet exemple (gure IV.6). Nous devons alors faire évoluer le réseau en fonction d'évènements extérieurs. Des joueurs de réseaux de Petri ont été développés, dans le cadre d'applications réactives, pour lesquels les transitions peuvent être associées à des prises en compte d'évènements extérieurs (réception de messages, prise en compte de seuils...). La notion de transitions internes et transitions externes est alors apparue. Dans ce cas le franchissement des transitions externes est synchronisé avec l'occurrence de l'évènement associé. Par contre, à partir d'un marquage donné, toutes les transitions internes franchissables doivent être franchies avant la prise en compte de l'évènement externe suivant, an d'atteindre un état stable. L'algorithme est décomposé en deux parties. Tout d'abord, il faut déterminer les valeurs des variables d'état continues au moment précis de l'occurrence de l'évènement considéré. Ensuite le marquage évolue, et, par conséquent, la structure du système déni par les équations actives. Cette séquence correspond au cycle discret du simulateur. Tant que les fonctions de sensibilisation sont vraies, les transitions correspondantes sont franchies. Quand il n'y a plus de seuils vrais, on fait alors évoluer les variables d'état continues jusqu'à ce qu'une fonction de sensibilisation devienne vraie (un seuil est détecté). Cette seconde partie permet, en quelque sorte, de déterminer l'évènement externe qui fait évoluer le marquage du réseau de Petri (qui est alors dans un état stable). Revenons à l'exemple et plaçons nous avec le procédé dans l'état initial suivant : le stockage déstocke ( p3 marquée), les vannes de dissipation sont actives, les compresseurs sont au repos, IV.3 Second principe 95 p2 t10 2 t2 1 t9 2 tf1;2g;8 p3 1 2 1 p9 2 1 tf1;2;3;4;5;6;7g17 p8 p7 p10 p17 p24 p11 t21 tf1;2;3g18 p12 t26 p14 t32 t22 tf1;2;3g;20 Figure IV.5 Réseau PTD de l'exemple du stockage de gaz t24 Chapitre IV Simulation des réseaux prédicats-transitions-diérentiels 96 Calculer l'état du système à l'instant d'occurrence de l'évènement Tir de la transition ti Enlever les Fk des places d'entrées pk de ti Mettre les Fl des places de sorties pl de ti Exécuter ji Calculer la liste des transitions ti sensibilisées Établir la liste des ei à surveiller ei vrai? = + d Calculer Us ; Ps; Vs P2 ; P3; P4; P5; P6 Figure IV.6 Algorithme de mise en ÷uvre du modèle du stockage de gaz la pression dans le stock est Ps = 56 , et les places p17 et p24 sont marquées. Nous avons donc dp > dc , le seuil e9 est vrai, il faut alors franchir t9 . Le système d'équations F3 est remplacé par F2 . Les équations actives sont alors : 8 > P4 = Ps > > < PdU5s= P4 d = dp , dc > > P s :Vs = Us :R:T > : Vs = 353; 6: (10: (Ps , P0)) 25 :Ps P4 R:T : ln P + WVR1 = 0 3 Pc R:T : ln P + WVR2 = 0 6 (IV.16) (IV.17) (IV.18) P2 = Pp (IV.19) P3 = P2 (IV.20) P6 = P5 (IV.21) IV.4 Conclusion 97 Les fonctions de sensibilisation actives sont : e2 , e1;8 , e2;8 , e10 , e1;18 , e2;18 , e3;18 , e21 , e24 , e26 et e32 . La condition e21 (( P2 = 20 < Ps = 56) ^ (dp 6= dc) ) est vraie, tC3 est alors franchie, le système d'équations devient : 8 > P4 = Ps > > < PdU5s= P4 d = dp , dc > > Ps:Vs = Us :R:T > : Vs = 353; 6: (10: (Ps , P0)) 52 :Ps R:T : ln PP4 + WVR1 = 0 3 (IV.22) (IV.23) Pc R:T : ln P + WVR2 = 0 6 (IV.24) P2 = 3:Pp (IV.25) P3 = P2 (IV.26) P6 = P5 (IV.27) La liste des fonctions de sensibilisation actives devient : e2 , e1;8 , e2;8 , e10 , e1;17 , e2;17 , e3;17 , e2;18 , e3;18 , e1;20 , e2;20 , e3;20 , e22 , e24 , e26 , et e32 . Aucune n'est vraie. Il faut donc faire évoluer les variables d'état continues jusqu'à l'apparition d'un nouveau seuil. Les résultats de la simulation de ce procédé, avec les contraintes données dans le paragraphe III.4.3, sont donnés par la gure IV.7. IV.4 Conclusion Dans ce chapitre nous avons décrit deux façons de réaliser la simulation de réseaux prédicatstransitions-diérentiels. La première consiste à transformer le modèle en un réseau de Petri haut-niveau et à faire la simulation grâce à un simulateur de réseau de Petri (premier principe). Pour ce principe nous avons décrit le passage d'un réseau prédicats-transitions-diérentiels à un réseau prédicats-transitions-t-temporel. Il s'agit en fait de remplacer les fonctions Fk , actives dès qu'une place pk est marquée, et les fonctions de sensibilisation par une durée de sensibilisation des transitions, et d'ajouter des actions sur les transitions pour calculer les valeurs des variables d'état continues. Nous avons vu que ce premier principe de mise en ÷uvre des réseaux prédicats-transitionsdiérentiels n'est pas applicable dans tous les cas. Il faut bien entendu être capable de déterminer facilement la durée de temporisation correspondant au séjour dans un état. Il en est de même pour la mise à jour des variables d'état continues lors du franchissement des transitions. Par (( facilement )), il faut comprendre que les calculs de la durée et des variables se font d'une manìère explicite. En eet, les simulateurs utilisés, pour ce premier principe, sont des simulateurs de modèles discrets, et par conséquent ne peuvent faire des calculs complexes. Cependant il est Chapitre IV Simulation des réseaux prédicats-transitions-diérentiels 98 20 12 0 20000000 dp 10000000 0 20000000 dc 10000000 0 57 Ps 56 55 Conguration 1 Conguration 2 Conguration 3 Conguration 4 Pp S VR1 Active Repos Actif Cc Repos Actif Cp1 Repos Actif Cp2 Repos t en j 1 5 10 15 Figure IV.7 Résultats de la simulation du procédé (( stockage de gaz 20 )) IV.4 Conclusion 99 envisageable de remplacer les calculs par des approximations en utilisant des courbes d'interpolation des fonctions décrites par les Fk . Ainsi au lieu de faire des calculs, on fait un appel à une fonction d'interpolation, ce qui permet de traiter un plus grand nombre de fonctions et d'augmenter la rapidité de la simulation. Nous avons également vu que ce premier principe n'est pas uniquement limité, pour son utilisation, par la complexité des fonctions mises en jeu, il est également limité lorsque l'on construit le modèle par couplage de sous-réseaux prédicats-transitions-diérentiels. En eet les interactions hybrides entre les sous-modèles génèrent des problèmes d'actualisation des variables d'état continues et par conséquent des incohérences dans la simulation. Nous avons alors présenté le second principe de simulation des réseaux prédicats-transitionsdiérentiels. Ce principe est basé sur le couplage de deux simulateurs, les simulateurs étant actifs chacun à leur tour. L'apparition d'un évènement lance l'utilisation du simulateur discret an de faire évoluer l'état du système. Une fois le nouvel état déterminé, le simulateur continu (un (( solveur )) de systèmes d'équations diérentielles algébriques) devient actif jusqu'à l'occurrence d'un nouvel évènement. Nous avons détaillé ce principe de mise en ÷uvre des réseaux prédicatstransitions-diérentiels pour le cas de l'exemple du stockage de gaz. Nous avons ainsi vu qu'il est possible de simuler des systèmes hybrides avec une partie continue complexe, et, également, des réseaux prédicats-transitions-diérentiels dénis par couplage de sous-réseaux PTD écrits indépendamment. L'utilisation de la simulation pour les systèmes discontinus va aider au dimensionnement et à la spécication des ateliers. Lors des phases de conception d'atelier il est possible de réaliser une simulation qui permettra d'établir la capacité des stockages intermédiaires, les capacités de transfert entre les réservoirs... Il est également possible de faire une simulation pour s'assurer que les recettes mises en ÷uvre délivrent un produit conforme aux spécications, car il nous est désormais possible d'avoir une simulation ne de la partie discrète et de la partie continue. Lors de la phase d'exploitation, la simulation peut être utilisée, dans le cadre de la supervision, pour choisir la commande à appliquer. À partir de l'état courant on applique la commande désirée et ensuite il est possible d'en observer les conséquences sur le procédé pendant un court horizon temporel (commande prédictive sur un système dynamique hybride). Suite à cette simulation l'opérateur peut choisir de lancer la commande en sachant quelles en sont les conséquences immédiates ou à très court terme. La simulation est bien entendue utilisée dans le cadre de la surveillance pour la détection des anomalies de fonctionnement du procédé [9]. Cette détection est généralement basée sur l'utilisation d'un modèle qui est émulé en parallèle avec le procédé (modèle de référence). Les fonctions de sensibilisation peuvent alors être utilisées pour détecter les écarts entre les variables d'état continues calculées et les variables mesurées (analogie avec la méthode des résidus). Enn il est possible d'utiliser la simulation pour valider un plan de production. En se basant sur une représentation du procédé et en lui appliquant les décisions prises par un ordonnanceur, on peut ainsi s'assurer que les stocks intermédiaires ne déborderont jamais. Et, en utilisant un simulateur capable de faire des études stochastiques, on peut valider une politique d'ordonnancement en prenant en compte les éventuelles défaillances du procédé. On peut alors considérer des critères économiques liés à l'analyse du risque. La plupart des applications de la simulation concernent le niveau supervision. L'architecture de la fonction supervision et l'interaction de cette dernière avec l'ordonnancement prévisionnel sont le but du chapitre suivant. 100 Chapitre IV Simulation des réseaux prédicats-transitions-diérentiels Chapitre V Supervision des systèmes discontinus V.1 Introduction Dans les chapitres précédents nous avons déni un modèle hybride, les réseaux prédicatstransitions-diérentiels, avec pour but de l'utiliser dans le cadre de la supervision des systèmes discontinus. Nous allons maintenant présenter une approche pour le pilotage en temps-réel des systèmes discontinus. Cette approche est basée sur ce modèle car il permet d'avoir une représentation précise du système. Nous allons regarder plus particulièrement le problème du lien entre les niveaux supervision et ordonnancement, la partie surveillance et commande ayant été plus particulièrement détaillée dans [9]. Après une analyse des avantages et inconvénients des modélisations avec du temps relatif et du temps absolu, nous poursuivons ce chapitre par une étude détaillée des diérences entre les réseaux de Petri et les graphes potentiels, en soulignant leur capacité à détecter des incohérences et à agréger les contraintes temporelles. Nous mettons ainsi en évidence un certain nombre de principes qui vont nous servir pour le pilotage en temps-réel. Le pilotage en temps-réel d'un atelier est basé sur une approche en deux temps. Premièrement, au niveau de l'ordonnancement, une préanalyse a pour but d'écarter les séquences infaisables et de caractériser un sous-ensemble de séquences admissibles [105, 30, 16]. Deuxièmement une prise de décisions est eectuée en temps-réel en fonction des contraintes mises en évidence par la préanalyse. Nous proposons d'eectuer la préanalyse à partir d'une vision purement discrète du système discontinu (à part peut-être le problème du dimensionnement des lots) pour conserver un degré de complexité raisonnable. Par contre la prise de décision en temps-réel au niveau supervision est basée sur les réseaux prédicats-transitions-diérentiels et prend en compte les contraintes de nature hybride. Mais commençons ce chapitre par la discussion sur la représentation du temps. V.2 Notions de temps relatif et de temps absolu Nous appelons modèle en temps absolu un modèle pour lequel la mesure du temps se fait par rapport à une origine des temps unique (le début d'une campagne de production par exemple). Alors qu'un modèle en temps relatif est un modèle ne possédant pas une référence temporelle Chapitre V Supervision des systèmes discontinus 102 unique. Il paraît donc naturel que l'ordonnancement de la production sur un horizon temporel soit basé sur un temps absolu ayant pour origine des temps le début de l'horizon. Il semble également séduisant de fonder le pilotage en temps-réel sur un modèle en temps relatif. En eet la démarche est asynchrone et il semble sure de se positionner par rapport au dernier évènement ayant eu lieu dans l'atelier. Les réseaux de Petri avec une représentation quantitative du temps, sont des modèles en temps relatif. En eet les durées sont mesurées par rapport à l'occurrence de l'évènement précédent qui est soit l'arrivée du jeton dans la place, soit la sensibilisation de la transition (voir paragraphe I.4.2). Quelques approches ont été développées prenant en compte le temps de façon absolue. W.M.P. van der Aalst [156], notamment, qui, dans les réseaux de Petri colorés, associe un champ, aux jetons, qui exprime la date de franchissement des transitions aval par rapport à une origine unique, donc en temps absolu. Un graphe potentiels est un modèle qui peut être en temps relatif ou en temps absolu. Le temps y est exprimé par l'intermédiaire de diérences de potentiels (qui représentent des durées minimales ou maximales) entre deux évènements. Il est possible de dénir un n÷ud comme étant l'origine des temps et par conséquent de calculer des fenêtres d'occurrence des évènements associés aux n÷uds par rapport à cette origine. Ce n÷ud est d'ailleurs nécessaire à l'introduction des dates de livraison des produits (dates au plus tard). Le principal intérêt d'avoir du temps absolu dans un modèle est qu'il permet d'exprimer des contraintes sur les dates de livraison et donc de raisonner sur tout l'horizon temporel de façon cohérente. À partir de l'origine du plan et des durées des opérations il est possible de calculer les dates de début au plus tôt des opérations, et à partir de la date de livraison et des durées des opérations, il est possible de calculer les dates de début au plus tard des opérations (si cette date n'est pas respectée, la date de livraison ne le sera pas non plus). La diérence entre la date de livraison d'un produit, la durée des opérations de la recette et la date de début de fabrication au plus tôt d'un produit représente la marge de ce produit (en considérant, bien sûr, que la production est faisable et que la marge est positive). Cette marge sera consommée par les attentes avant les opérations. Nous allons mettre en évidence le fait que s'il est possible de représenter des attentes en temps absolu comme en temps relatif, la propagation des retards, elle, ne peut se faire qu'à partir d'un modèle en temps absolu. En eet si nous considérons un produit devant subir deux opérations ( Op1 et Op2 ) de durées respectives 3 et 4 , avec comme date de début 0 , et comme date de n 10 , nous avons une marge sur le produit égale à 3 . Cette marge peut être consommée en attendant les débuts d'opérations. Le réseau de Petri modélisant cette recette est donné par la gure V.1 où les attentes sont représentées par des intervalles associés aux places et les durées des opérations par des temporisations sur les transitions (RdP p-temporels-t-temporisés) comme dans [93]. p1 t1 p2 t2 p3 t3 [0; 3] [3] [0; 3] [4] p4 Figure V.1 Exemple de propagation des retards Or si on attend 1 avant de commencer l'opération Op1 (associée à t2 ) alors l'attente avant Op2 (associée à t3 ) ne pourra excéder 2 sinon la date de livraison ne sera pas respectée. Or la marge associée à p3 a pour référence temporelle la n du franchissement de t2 et elle ne sera V.3 Comparaison entre les graphes potentiels et les réseaux de Petri 103 donc pas sensible à un retard se produisant avant cet évènement. La notion de marge n'est donc pas correctement représentée dans ce réseau de Petri. De la même façon, si nous nous intéressons au réseau de la gure V.2, nous voyons que le temps est relatif par rapport à la date de sensibilisation de t3 . Un retard sur le franchissement de t1 va avoir un impact ou non sur l'attente associée à t3 . Si p2 n'est pas marquée lorsque t1 est franchie le retard n'a pas de conséquence parce que t3 n'est pas sensibilisée. Sinon la sensibilisation de t3 est retardée de et le retard devrait être propagé en diminuant l'attente prévue de . Nous voyons que si en l'absence de retard un plan, exprimé en temps absolu, peut être traduit par un réseau de Petri, la prise en compte des consommations de marges nécessite une modication dynamique des durées d'attente associées aux places et aux transitions qui peut s'avérer complexe. t1 t2 p1 p2 t3 [1; 2] Figure V.2 Problème de la propagation des retards Par conséquent le pilotage en temps-réel d'un système doit se faire avec un modèle permettant de représenter le temps de manière absolue, sinon les contraintes venant du niveau ordonnancement ne pourront pas être prises en compte. Si l'on en revient au schéma de la gure I.3, il semble que la diculté de l'interfaçage entre un ordonnancement prévisionnel sur un horizon de temps et une commande en temps-réel vienne, au moins en partie, des diérences existant entre une approche réactive en temps absolu (ordonnancement) et une approche asynchrone en temps relatif (commande en temps-réel). Dans le cas des systèmes discontinus il faudra rajouter au niveau temps-réel la prise en compte des contraintes hybrides. V.3 Comparaison entre les graphes potentiels et les réseaux de Petri Nous commençons par détailler les résultats du premier chapitre, puis nous regardons la capacité des deux modèles à détecter les incohérences d'un ensemble de contraintes temporelles lorsque l'on fait ou refait un plan prévisionnel. Nous verrons trois types d'incohérences, les incohérences structurelles, les décisions incohérentes et les incohérences quantitatives [45]. Les deux premières sont des incohérences de type qualitatif et la dernière est de type quantitatif. Les incohérences structurelles proviennent de la structure du mécanisme d'allocation des ressources. Elles apparaissent lorsque ce dernier est incohérent et peut conduire à un interblocage du système. Un ensemble de décisions incohérentes correspond à des choix contradictoires qui ne sont pas réalisables. Par exemple allouer une ressource disponible pour faire deux opérations diérentes. Les incohérences quantitatives, quant à elles, traduisent un non respect des contraintes temporelles, par exemple les dates de livraison au plus tard. Chapitre V Supervision des systèmes discontinus 104 V.3.1 Contraintes de précédence et de ressources Au cours des paragraphes I.3 et I.4.2 nous avons détaillé la représentation des contraintes de précédence des gammes et des mécanismes d'allocation des ressources par réseaux de Petri et par graphes potentiels. Nous avons constaté quelques diérences que nous allons souligner dans ce paragraphe. Tout d'abord l'expression des évènements. Dans un réseau de Petri, l'occurrence d'un évènement correspond au franchissement d'une transition, et comme nous l'avons montré, une place reliant deux transitions représente un ordre partiel entre tous les évènements représentés par ces transitions prises deux à deux. Par contre dans un graphe potentiels un évènement unique est associé à chaque n÷ud du graphe. Il est ainsi possible d'identier précisément chaque évènement, et d'exprimer des contraintes précises et en temps absolu aussi bien que des contraintes par rapports aux autres évènements (en temps relatif). La représentation des contraintes de précédence des recettes et des mécanismes d'allocation des ressources se fait de manière quantitative avec un graphe potentiels (une conjonction d'inégalités de potentiels qui doivent être respectés). De plus dans un graphe potentiels on ne modélise pas les ressources, mais une relation d'ordre potentiel (un ensemble de contraintes nonconjonctives) déduite des mécanismes d'allocation des ressources. Alors qu'un réseau de Petri représente directement les ressources et leurs mécanismes d'allocation. V.3.2 Détection des incohérences structurelles Exemple Reprenons l'exemple du procédé discontinu déni dans le paragraphe III.4.1. Il s'agit de réaliser un type de produit, suivant la recette qui consiste à faire une réaction, une attente et une deuxième réaction, dans un atelier donné par la gure V.3. B R2 Se Ss R1 Figure V.3 Exemple de mécanisme d'allocation de ressources pouvant entraîner un interblocage Un interblocage apparaît lorsque l'on a un produit en attente dans le stock B et deux produits faisant leur première réaction dans chaque réacteur. Chaque lot détient une ressource et attend, indéniment, qu'une autre ressource se libère pour pouvoir évoluer. Représentation par réseaux de Petri Le modèle réseau de Petri du procédé est donné par la gure V.4. Une séquence qui conduit à l'interblocage correspond, par exemple, au franchissement de t1 t2 t3 t1 t2 t3 t4 t5 t6 t7 t1 t2 t3 t4 t4 t8 . Comme nous l'avons dit au paragraphe I.3.4 cet interblocage correspond au fait qu'un siphon du réseau ne contient plus de marques et que, par conséquent, il est impossible de franchir une V.3 Comparaison entre les graphes potentiels et les réseaux de Petri 105 transition de façon à rajouter un jeton dans l'une des places du siphon. Toutes les transitions de sortie du siphon sont mortes. L'ensemble des places composant le siphon est fp6 , p10 , p11 , p12 , p13 , p14 , p17 , p18g (places représentées en gras sur la gure V.4). Parmi les stratégies d'évitement des interblocages, regardons celle qui consiste à rajouter un mécanisme de contrôle du siphon (évitement statique [29]). Ayant remarqué que la transition t1 décrémente le nombre de jetons des places du siphon et que t10 incrémente le nombre de jetons des places du siphon, il sut d'ajouter une place (place de contrôle du siphon, p20 ) permettant de contrôler le nombre minimal de jetons des places du siphon et de s'assurer que cette place ne crée pas un nouveau siphon (gure V.5). Le marquage initial de cette place est égal au marquage initial des places du siphon moins un. Les séquences conduisant à l'interblocage ne peuvent plus être franchies. En eet lorsque l'on tire la séquence de transitions t1 t2 t3 t1 t2 t3 t4 t5 t6 t7 , on arrive dans un état où t1 n'est pas sensibilisée parce que la place de contrôle du siphon est vide. Les seules transitions sensibilisées sont t4 et t8 . Si l'on franchit t8 , t9 et t10 (transition qui incrémente le nombre de marque de la place de contrôle), t1 devient franchissable. À cet instant tous les équipements de l'atelier sont occupés mais l'atelier n'est pas bloqué, parce qu'il y a un lot sur un réacteur qui n'attend pas de ressource contenue dans le siphon pour évoluer (car il est en train de faire sa seconde réaction). En fait la place p20 joue le rôle d'une ressource virtuelle limitant à deux le nombre de lots simultanément en traitement pendant le fragment de recette compris entre les transitions t1 et t10 . Nous voyons qu'en raisonnant sur la structure du réseau de Petri nous pouvons mettre en évidence les mécanismes d'allocation de ressources conduisant le système dans un état de blocage. En modiant la structure du réseau (ajout d'une place de contrôle) il est possible d'obtenir un réseau tel qu'il n'y ait plus de séquences menant à un interblocage. Nous avons en fait transformé l'ensemble initial des contraintes de précédence qualitatives en un nouvel ensemble qui est tel que toute séquence peut être prolongée indéniment sans aboutir à un interblocage. Cela veut dire que toute décision prise en temps-réel, correspondant à une transition sensibilisée, est cohérente avec ce nouvel ensemble de contraintes de précédence qualitatives. L'analyse eectuée est purement structurelle et ne dépend pas du nombre de produits fabriqués pendant l'horizon temporel. Représentation par graphes potentiels-étapes La représentation en graphe potentiels de cette situation nous oblige à travailler sur un intervalle de production avec une quantité de produits à réaliser. Considérons que nous devons fabriquer trois produits. Le graphe potentiels correspondant à ce problème est donné par la gure V.6. Les contraintes de précédence des recettes sont modélisées par l'ensemble des arcs conjonctifs (en traits plein). Les trois chemins horizontaux, partant du n÷ud debut de production et arrivant au n÷ud fin de production, correspondent chacun à l'exécution de la recette d'un lot. Les mécanismes d'allocation des ressources sont représentés par des ensembles d'arcs nonconjonctifs, dont nous ne représentons qu'une partie en traits pointillés. Nous avons choisi de représenter le graphe potentiels donnant la séquence qui conduit à l'interblocage. Nous avons donc un graphe conjonctif où toutes les inégalités de potentiels sont reliées par un ET. Regardons le graphe potentiels simplié donné par la gure V.7, les arcs ( D ; A ) et ( B ; C ) sont des relations de précédence pour l'utilisation de ressources et donc leur longueur est positive ou nulle. La longueur de ( C ; D ) correspond au transfert d'un réacteur R vers le stock B et celle de ( A ; B ) au transfert de B vers R . Elles sont donc strictement positives. Donc le cycle ( C ; D ; A; B ; C ) est de longueur strictement positive. Or dans un graphe potentiels, l'existence d'un cycle de longueur positive est toujours la preuve d'une in- Chapitre V Supervision des systèmes discontinus 106 p1 p15 t1 t14 p2 Se ! R p16 p14 R ! Ss t2 t13 p3 p13 R t3 t12 p17 p4 R p12 R t4 t11 p5 p11 t5 t10 B p18 p6 R!B p10 B!R t6 p7 t9 t7 p8 B t8 p9 Figure V.4 Mise en évidence de contraintes structurelles dans un RdP p19 V.3 Comparaison entre les graphes potentiels et les réseaux de Petri p1 p15 t1 t14 p2 Se ! R p16 107 p14 R ! Ss p20 t2 t13 p3 p13 R t3 t12 p17 p4 R p12 R t4 t11 p5 p11 t5 t10 B p18 p6 R!B p10 B!R t6 p7 t9 t7 p8 B t8 p9 Figure V.5 Réseau avec siphon contrôlé par une ressource virtuelle p19 Chapitre V Supervision des systèmes discontinus 108 (Se ! R)1 (R)1 (R ! B)1 (B)1 (B ! R)1 (R)1 (R ! Ss)1 début (Se ! R)2 (R)2 (R ! B)2 (B)2 (B ! R)2 (R)2 (R ! Ss)2 n (Se ! R)3 (R)3 (R ! B)3 (B)3 (B ! R)3 (R)3 (R ! Ss)3 Figure V.6 Graphe potentiels représentant la production de trois produits (B ! R)1 A B a c d b C D (R ! B ) 3 Figure V.7 Détection des incohérences structurelles : cycle positif cohérence. En eet, dans le cas de l'exemple ci-dessus, si l'on coupe le cycle en B et C , le chemin ( C ; D ; A ; B ) étant strictement positif, cela entraîne que l'évènement B est strictement postérieur à l'évènement C , alors que l'arc ( B ; C ) implique que B précède C . Cette contradiction est équivalente à l'inégalité suivante, a , b , c et d étant positifs : C , B d et B , C a + b + c d'où ,d a| +{zb + c} B , C |{z} 0 0 (V.1) Nous voyons donc que les incohérences structurelles sont bien mises en évidence par les graphes potentiels. Comme dans le cas des réseaux de Petri, le raisonnement peut être qualitatif puisque le fait que le cycle ( C ; D ; A ; B ; C ) soit positif est indépendant des durées opératoires eectives. Toutefois le raisonnement s'est appuyé sur le cas particulier de trois lots, pour des aectations particulières des ressources (choix parmi les arcs non-conjonctifs). Le raisonnement permettant d'obtenir un nouvel ensemble de contraintes par introduction d'une ressource virtuelle, complexe mais possible avec les réseaux de Petri, est ici impossible. En eet, l'introduction d'une ressource virtuelle ne ferait qu'ajouter des arcs non-conjonctifs (et donc d'augmenter la combinatoire) et, comme nous allons le voir dans le paragraphe suivant, le problème d'un choix cohérent d'arcs dans les ensembles non-conjonctifs n'en serait que plus complexe. V.3.3 Détection des décisions incohérentes Examinons donc maintenant le problème posé par le fait que les ressources ne sont représentées dans les graphes potentiels que par les relations d'ordre qu'elles induisent. V.3 Comparaison entre les graphes potentiels et les réseaux de Petri 109 Exemple Prenons l'exemple de deux recettes utilisant deux équipements R1 et R2 (voir gure V.8). Chaque recette est composée de deux opérations Op1;1 et Op1;2 pour la première et Op2;1 et Op2;2 pour la seconde. Les opérations Op1;1 et Op2;2 sont eectuées sur l'équipement R1 et Op2;1 et Op1;2 sont eectuées sur R2 . P2 R1 R2 P1 Figure V.8 Détection des décisions incohérentes : présentation de l'exemple Représentation par graphes potentiels-étapes Regardons le graphe potentiels représentant l'ensemble des contraintes pour la fabrication d'un produit pour chaque recette (gure V.9). Les arcs en traits pleins représentent les contraintes conjonctives (venant des contraintes de précédence des recettes), les traits pointillés ns représentent l'ensemble d'arcs non-conjonctifs qui décrit les précédences potentielles venant de la contrainte d'exclusion sur la ressource R1 et l'ensemble des arcs non-conjonctifs, venant de la contrainte d'exclusion sur la ressource R2 , est en traits pointillés. Op1;1 Op1;2 début R1 n R2 Op2;1 Op2;2 Figure V.9 Graphe potentiels représentant des décisions incohérentes Avec ce modèle nous pouvons déduire quatre solutions (voir gure V.10). Faire Op1;1 et Op1;2 avant Op2;1 et Op2;2 (gure V.10-a). Faire Op2;1 et Op2;2 avant Op1;1 et Op1;2 (V.10-b). Commencer simultanément Op1;1 et Op2;1 puis Op1;2 quand Op2;1 est terminée et Op2;2 quand Op1;1 est terminée (V.10-c). Et faire Op2;2 avant Op1;1 et Op1;2 avant Op2;1 (V.10-d). -a- -b- -c- -d- Figure V.10 Solutions déduites de la gure V.9 La dernière (V.10-d) qui correspond à une décision irréalisable fait apparaître un cycle, et comme toutes les diérences de potentiels attachées aux arcs sont positives, ce cycle est positif (contrairement au cycle du troisième cas, (V.10-c), qui est de durée nulle et correspond donc à une synchronisation). Chapitre V Supervision des systèmes discontinus 110 Op1 Op2 durées date de début date de n opératoires au plus tôt au plus tard 3 3 9 4 0 7 Tableau V.1 Incohérences quantitatives : exemple Représentation par réseaux de Petri Le réseau de Petri modélisant le même exemple est donné par la gure V.11. p6 t5 p7 p8 t6 t7 Op2;1 R1 R2 Op1;1 t1 p2 t8 p10 t4 p5 Op2;2 p11 p1 p9 t2 p3 p12 t3 Op1;2 p4 V.11 Réseau de Petri représentant les mêmes contraintes que le graphe potentiels de la gure V.9 Figure Ce réseau est vivant (indépendamment du nombre de lots à traiter car l'analyse est possible par réduction) et les séquences qu'il propose correspondent aux trois séquences réalisables. Le simple fait de ne franchir que des transitions sensibilisées garantit la construction de séquences cohérentes avec des contraintes de gamme et de ressource. Comme dans le cas considéré l'ensemble des contraintes est cohérent, toutes les séquences seront possibles du point de vue qualitatif. Nous venons de voir que l'approche fondée sur les graphes potentiels augmente inutilement l'espace de recherche des solutions en orant des possibilités de décisions qui sont structurellement incohérentes. Mais, alors que dans le cas de l'approche fondée sur les réseaux de Petri les décisions doivent être prises par temps croissant (en quelque sorte en temps-réel à partir d'un état courant virtuel de l'atelier), dans le cas du graphe potentiels on traite les ensembles d'arcs non-conjonctifs dans n'importe quel ordre sur tout l'horizon temporel et l'on peut d'abord s'occuper des ressources critiques. Cela nous amène à examiner maintenant le cas des contraintes quantitatives. V.3.4 Détection des incohérences quantitatives Exemple Nous allons prendre l'exemple d'un équipement R devant réaliser deux opérations Op1 et Op2 (ces opérations sont en exclusion mutuelle) avec des contraintes de date de début au plus tôt et de n au plus tard pour chaque produit. Ces contraintes sont données par le tableau V.1. V.3 Comparaison entre les graphes potentiels et les réseaux de Petri 111 Représentation par graphes potentiels-bornes Pour représenter la contrainte de date de n au plus tard il nous faut introduire des longueurs d'arcs négatives, nous utilisons alors un graphe potentiels-bornes (gure V.12). ,9 B Op1 C début A 3 0 3 0 Op2 0 D 4 E ,7 Figure V.12 Graphe potentiels-bornes représentant des incohérences quantitatives Les arcs non-conjonctifs sont représentés en traits pointillés. Si nous choisissons la solution ne retenant que l'arc ( C ; D ) alors on obtient les diérences de potentiels : E , A 4 + max(0; 3 + 3) et A , E ,7 d'où 10 E , A 7 ce qui est impossible. Un cycle positif est apparu ( A ; B ; C ; D ; E ; A ) de longueur 3 + 3 + 4 , 7 = 3 . Cela signie que la contrainte quantitative ne peut pas être respectée par ce plan. Une fois de plus l'incohérence est détectée par un cycle positif. Mais cette fois, le signe du cycle dépend des valeurs des durées qui sont attachées aux arcs et non pas de la structure du graphe. Il sut de relâcher la contrainte au plus tard de Op2 en prenant 11 au lieu de 7 pour que l'allocation de ressource choisie soit admissible. Représentation par réseaux de Petri Le réseau de Petri p-temporels décrivant les contraintes dénies par le tableau V.1 est donné par la gure V.13-a. La transition t1 représente le début du plan et t6 la n. Les places p2 , p3 et p4 représentent la réalisation de l'opération Op1 , p5 , p6 et p7 représentent Op2 . La place R représente l'état (( libre )) de la ressource. La place p11 représente la contrainte de n au plus tard de l'opération Op1 , quand t1 est franchie un jeton y est déposé et ce jeton sensibilisera t6 pendant l'intervalle [0; 9] (il en est de même pour p12 qui représente la contrainte de n au plus tard de Op2 ). Les intervalles des places p3 et p6 représentent des durées opératoires, alors que les intervalles des places p2 , p4 , p5 , p7 , p11 et p12 sont donnés par des contraintes de gestion de la production. Ce modèle peut être simulé pour vérier que certaines séquences respectent bien les contraintes quantitatives. Les viols des contraintes temporelles quantitatives seront détectés par la mort de certains jetons. Par exemple si la transition t6 n'est pas franchie au plus tard sept unités de temps après t1 , le jeton de la place p12 sortira de sa fenêtre de visibilité (jeton mort) et le réseau sera bloqué. Si l'on veut représenter la décision (( faire Op1 avant Op2 )), il faut alors transformer le réseau de Petri en un graphe d'évènements (gure V.13-b). Ce passage se fait en remplaçant les places représentant les ressources par des contraintes de précédence entre les opérations. Le réseau obtenu est équivalent à un graphe potentiels : chaque recette est parcourue une seule fois et les mécanismes d'allocation des ressources sont remplacés par des contraintes de précédence. Pour faire cette transformation, il faut dupliquer les sous-réseaux représentant les recettes en autant d'invariants que de produits devant être réalisés selon cette recette (qui correspond au nombre de jetons parcourant l'invariant). Et il faut remplacer les n arcs sortant d'une place Chapitre V Supervision des systèmes discontinus 112 p1 p1 t1 t1 p2 p5 [0; +1[ [3; +1[ t2 t4 p3 R Op1 [3; 3] p9 p6 [4; 4] Op2 [3; +1[ p3 t5 t3 p4 p11 [0; 9] p7 [0; +1[ p4 t6 p12 t7 p8 Op1 [3; 3] [0; 1[ [0; 7] p13 t2 t3 [0; +1[ p5 [0; +1[ p2 t4 p10 p6 [4; 4] Op2 [0; 1[ p11 [0; 9] [0; +1[ t5 p12 p7 [0; +1[ [0; 7] t6 t7 p8 -a- -b- Figure V.13 Réseaux de Petri représentant des incohérences quantitatives ressource par n , 1 contraintes de précédences ( p10 gure V.13-b). Les contraintes représentent la suite des opérations à eectuer sur la ressource. Une nième contrainte (en pointillés sur la gure) devrait obligatoirement être marquée et ne correspondrait pas à une contrainte de précédence sur l'horizon considéré mais à une notion de cycle entre deux horizons, c'est dans ce cadre là que H. Camus utilise les réseaux de Petri dans [37]. Avec ce graphe d'évènements il est possible de calculer la durée de la séquence entre deux transitions en déterminant les chemins maximaux entre ces deux transitions. Prenons le chemin ( t1; t2 ; t3; t4; t5 ; t6 ), sa longueur est [10; +1[ , son intersection avec [0; 7] est nulle, donc t6 ne sera jamais sensibilisée. Une telle approche a été développée par W. Khansa [96]. Remarquons toutefois que la construction du graphe d'évènements revient exactement à construire un graphe potentiels en choisissant des arcs dans les ensembles non-conjonctifs. Le formalisme des réseaux de Petri ne semble pas permettre une approche diérente, si ce n'est la possibilité d'exprimer une contrainte de fonctionnement strictement répétitif. Dans le cadre de la génération d'un plan sur un horizon, les graphes potentiels semblent plus naturels. En fait, en ce qui concerne le fonctionnement répétitif, l'apport des réseaux de Petri se fait principalement par l'intermédiaire de l'utilisation des invariants de places et de transitions qui donnent des contraintes agrégées sur tout le cycle [93]. Avant de tirer un bilan de notre comparaison entre les graphes potentiels et les réseaux de Petri, et de revenir à notre problème de supervision des procédés discontinus, examinons comment les réseaux de Petri et les graphes potentiels peuvent être utilisés pour formaliser des mécanismes d'agrégation de contraintes. V.4 Agrégation de contraintes 113 V.4 Agrégation de contraintes Pour aborder la dénition du plan, mais également lorsque des choix se présentent lors du pilotage en temps-réel, il est intéressant de posséder des données qui représentent l'état du système d'une manière agrégée. Nous considérons deux types de données : celles qui concernent les produits, et plus particulièrement la durée minimale pour réaliser le produit ; et celles qui concernent les ressources, qui vont représenter la durée minimale d'occupation de la ressource. V.4.1 Exemple Prenons comme exemple un équipement ( R ) qui fabrique deux types de produits. Le premier Prod1 nécessite deux opérations ( Op1;1 et Op1;2 ) et le second Prod2 nécessite une opération ( Op2 ). La gure V.14-a donne le réseau de Petri représentant cet exemple dans le cas de la fabrication d'un seul produit de chaque type, et le graphe potentiels est donné par la gure V.14-b. p5 p6 t4 t5 p7 Op2 p0 R tdebut Op1;1 p1 t1 p2 Op1;1 début p8 tfin -a- Op1;2 t2 p3 t3 p4 Op1;2 R n -b- Op2 Figure V.14 Exemple de contraintes agrégées avec un RdP et un graphe potentiels Si la demande sur l'horizon de temps considéré est de N1 produits de type Prod1 et de N2 produits de type Prod2 , alors il sut dans le cas du réseau de Petri d'associer un poids N1 aux arcs ( tdebut ; p1 ) et ( p4; tfin ) et un poids N2 aux arcs ( tdebut ; p5 ) et ( p7; tfin ). V.4.2 Contraintes données par les graphes potentiels La durée minimale de réalisation d'un produit revient à additionner les durées de chaque opération que doit subir le produit. Ceci est facile à partir d'un graphe potentiels car il sut d'additionner les longueurs des arcs représentant la recette du produit considéré. Mais les graphes potentiels permettent également de calculer la durée minimale de fabrication de tous les produits, à partir du graphe conjonctif ne représentant que les contraintes de recettes (cela correspond Chapitre V Supervision des systèmes discontinus 114 au problème centrale ou problème à capacité innie). Avant la prise en compte des arcs nonconjonctifs, chaque chemin donne donc la durée minimale de fabrication d'un produit. Au fur et à mesure de l'introduction de contraintes de précédence induites par les ressources, de nouveaux chemins sont introduits. Toutefois, les ressources n'étant pas explicitement représentées, l'analyse agrégée de l'utilisation des ressources n'est pas possible, a priori, en s'appuyant sur le graphe potentiels. Elle doit être faite indépendamment. V.4.3 Décomposition d'un réseau de Petri Les calculs d'invariants de place et de transition correspondent en fait à une décomposition d'un réseau de Petri en sous-réseaux suivant des critères de répétitivité ou de conservation de marques. Si l'on cherche des invariants de transition on va trouver le nombre de fois que chaque transition doit être franchie (indépendamment de tout ordre de franchissement) pour répondre à la demande. Par exemple dans le cas du réseau de la gure V.14-a, pour N1 produits de type Prod1 et N2 produits de type Prod2 , on trouvera un seul invariant de transition associant le poids 1 aux transitions tdebut et tfin , N1 à t1 , t2 et t3 et N2 à t4 et t5 . Pour les invariants de place, il ne faut considérer que la partie du réseau de Petri décrivant la structure de l'atelier, indépendamment de la demande en produits. On eace donc la place p0 et les transitions tdebut et tfin . Le réseau de la gure V.14-a donne alors trois invariants de place : I1 : p1 , p2 , p3 et p4 de poids un. I2 : p5 , p6 et p7 de poids un. I3 : p2 , p3 , p6 et p8 de poids un. Les deux premiers correspondent aux recettes, alors que le dernier correspond à la ressource. V.4.4 Contraintes agrégées de gamme et de ressource à partir d'un réseau de Petri Prenons le cas d'un réseau de Petri t-temporel car comme nous l'avons vu au chapitre IV il peut être vu comme une vision agrégée discrète d'un réseau prédicats-transitions-diérentiels. La durée de Op1;1 sera alors la durée de sensibilisation de t2 , celle de Op1;2 sera associée à t3 et celle de Op2 à t5 . Le sous-réseau obtenu à partir d'un invariant de place est le fragment du réseau de départ obtenu à partir des places de l'invariant et des transitions qui sont reliées à ces places. Dans un invariant de place, il y a conservation des jetons. Cela veut dire que s'il y a un seul jeton, les transitions seront toutes nécessairement franchies en séquence (s'il y a n jetons, elles pourront éventuellement être franchies par groupe de n ). Donc, en fait, en faisant la somme des durées des transitions du sous-réseau associé à l'invariant I1 on aura la durée minimale de fabrication d'une pièce de type Prod1 , celles de I2 donneront la durée minimale de fabrication d'une pièce de type Prod2 et celles de I3 la durée minimale d'utilisation de la ressource pour fabriquer une pièce de type Prod1 et une pièce de type Prod2 . Pour savoir exactement la charge de la ressource en fonction de la demande, il faut multiplier la durée de chaque transition par son poids dans l'invariant de transition exprimant la demande sur un horizon. Dans le cas de la gure V.14-a, nous avons : t2 N1 +t3 N1 +t5 N2 , puisque t1 = t4 = 0 . V.5 Bilan 115 Donc dans le cas général, la durée minimale d'utilisation de la ressource sur un horizon est donnée par : Dénition 29. Soit Nti le poids associé aux transitions ti pour l'invariant de transition décrivant la demande. Soit ti la durée de sensibilisation associée à la transition ti et représentant la durée de l'opération associée à la place d'entrée de ti . Soit IpR l'invariant de place associé aux ressources de type R . Soit M (IpR ) le nombre de ressources de type R . Soit ItR l'ensemble des transitions du sous-réseau généré par IpR ( ItR = IpR = IpR ). L'indicateur de charge des ressources R est : X ti :Nti !R = M (1I ) pR ti 2It R (V.2) Il est important de souligner que de tels indicateurs peuvent être aussi bien associés à des ressources réelles qu'à des ressources virtuelles introduites pour éviter des blocages mortels. Alors que ces ressources virtuelles ne sont d'aucune aide pour le calcul d'un plan à l'aide d'un graphe potentiels (et d'une méthode par séparation et évaluation progressive, par exemple) elles peuvent être des ressources critiques (ou très chargées) et donner des critères importants pour les choix des aectations des ressources aux opérations. Reprenons le réseau de la gure V.5 (exemple d'incohérences structurelles) en supposant que l'on a N lots. Nous avons une ressource B , son indicateur !B est donné par !B = (t6 + t8 + t10 ) N . Le marquage initial de l'invariant de place représentant R est de deux donc !R = 12 (t2 + t4 + t6 + t10 + t12 + t14 ) N . En eet il est nécessaire de considérer le parallélisme qui peut exister entre les ressources, puisque suivant les cas elles peuvent être utilisées simultanément. Dans le meilleur des cas, nous arriverons à répartir exactement la même quantité de travail sur chaque ressource, donc la durée minimale d'occupation de ce type de ressources est divisée par le nombre de ressources. La ressource virtuelle V , associée à la place p20 , donnera une troisième contrainte agrégée diérente des deux autres : !V = 21 (t2 + t4 + t6 + t8 + t10 ) N V.5 Bilan Nous venons de voir les possibilités des réseaux de Petri et des graphes potentiels pour l'analyse d'un ensemble de contraintes temporelles vis-à-vis de leur cohérence et de leur possibilité d'agrégation. Une première constatation est que les graphes potentiels détectent de la même manière les incohérences, quelles soient structurelles, dues aux décisions ou quantitatives. Ils ne permettent pas de diérencier la nature de l'incohérence, car les graphes potentiels n'orent pas une représentation structurelle des recettes et des ressources, et, par conséquent, ne représentent pas explicitement les états des ressources. De plus les graphes potentiels ne peuvent détecter les incohérences que pour un plan particulier. Chaque fois qu'une contrainte change, il faut ré-exécuter l'algorithme de détection des incohérences. En particulier l'analyse n'est valable que pour un jeu de tâches particulier à traiter sur un horizon temporel. Chaque fois que l'horizon change, le graphe potentiels doit être entièrement reconstruit et reanalysé. 116 Chapitre V Supervision des systèmes discontinus Enn les graphes potentiels ne permettent pas de caractériser rapidement l'ensemble des séquences de décisions admissibles d'un point de vue qualitatif vis-à-vis de contraintes de recettes et de ressources. En eet il y aura nécessairement des ensembles d'arcs non-conjonctifs et des possibilités de choix incohérents parmi ces ensembles. Ces limitations des graphes potentiels ne posent pas de problème lorsque l'on construit un plan sur un horizon bien déni, ce qui correspond au niveau ordonnancement prévisionnel, par contre elles rendent dicile l'utilisation de cet outil en temps-réel. En eet, on ne peut pas se permettre de prendre une décision pouvant mener plus tard à un interblocage, cela aurait des conséquences bien plus graves pour le procédé discontinu qu'un non respect d'une date de livraison. D'autre part le principe du pilotage en temps-réel sur lequel est fondé la supervision est contradictoire avec la génération, après chaque décision, d'un plan complet jusqu'à la n de l'horizon temporel, juste pour vérier qu'il existe une suite de décisions futures possibles évitant tous blocages. Les réseaux de Petri permettent, eux, de décrire les contraintes de recettes et de ressources indépendamment de toute demande spécique sur un horizon temporel. Ils font une distinction claire entre les incohérences qualitatives et les incohérences quantitatives. Ils permettent de vérier que les contraintes qualitatives sont cohérentes (et dans le cas contraire de les corriger), c'est-à-dire que toute suite de décisions correspondant à des transitions franchissables sera indéniment prolongeable. Ainsi il n'est pas possible de prendre des décisions pouvant amener à un interblocage, ce qui évite de perdre des lots de matière (pour libérer des ressources) ou, pire, d'avoir des réactions qui se poursuivent pouvant mener à des catastrophes. Nous pouvons également dire que les réseaux de Petri représentent explicitement les états des ressources, et permettent de calculer la durée minimale d'occupation de ces dernières sur un horizon de temps donné. Ils paraissent donc particulièrement bien adaptés pour la mise en ÷uvre d'un mécanisme de décisions en temps-réel. On peut également représenter des contraintes temporelles quantitatives en temps relatif, par exemple pour représenter les durées opératoires. Enn, on peut déduire à partir des invariants de place d'un réseau de Petri des indicateurs agrégés de charge des ressources permettant l'élaboration d'heuristiques de décisions en temps-réel, au vue de l'état courant et sans avoir à parcourir tout l'horizon temporel. En fait, il semble bien que les critères dénissant un bon modèle pour l'ordonnancement prévisionnel sur un horizon temporel soient relativement contradictoires avec ceux dénissant un bon modèle pour la supervision en temps-réel. Par conséquent, plutôt que d'essayer d'étendre un modèle pouvant être utilisé à la fois aux niveaux supervision et ordonnancement, nous pensons qu'il vaut mieux combiner deux modèles, chacun étant bien adapté à un niveau, en dénissant leurs interactions. Il reste enn un problème essentiel pour nous : la prise en compte de l'aspect continu qui est nécessaire au pilotage en temps-réel des procédés discontinus. Vu les considérations qui précèdent, il est clair que nous nous orientons vers l'utilisation de réseaux de Petri pour modéliser le système au niveau de la supervision en temps-réel. Dans cette approche des durées opératoires sont prises en compte en associant des durées de sensibilisation aux transitions. Le passage à un modèle prédicats-transitions-diérentiels se fait alors tout naturellement : au lieu de spécier les durées de sensibilisation a priori et de la même façon pour tous les évènements du même type (tous les lots du même produit), les durées de sensibilisation des transitions seront spéciées par les fonctions de sensibilisation et les systèmes d'équations diérentielles algébriques et seront calculées en temps-réel en fonction des variables d'état continues associées aux jetons. V.6 Pilotage en temps-réel d'un système discontinu 117 V.6 Pilotage en temps-réel d'un système discontinu Maintenant que nous avons vu comment les réseaux de Petri et les graphes potentiels manipulent les ensembles de contraintes temporelles, nous pouvons aborder le pilotage en temps-réel des procédés discontinus. Nous allons d'abord bien préciser les critères qui ont guidé notre choix d'utiliser les réseaux prédicats-transitions-diérentiels à ce niveau, puis nous donnons les grandes lignes de l'architecture du pilotage en temps-réel et de ses liens avec les couches d'analyse prévisionnelle. Enn nous détaillerons les fonctions mentionnées. V.6.1 Critères pour le choix d'un modèle La supervision en temps-réel repose sur un modèle qui doit exprimer un ensemble de contraintes, en particulier temporelles, de façon à permettre la représentation du comportement dynamique du procédé discontinu et celle de la politique de production retenue. On peut mettre en évidence les points suivants : 1. Il doit pouvoir être animé en temps-réel : sur la réception d'un signal de n d'opération il faut pouvoir quasiment instantanément déduire l'opération suivante à eectuer. Il doit donc permettre une propagation rapide des contraintes de précédence, mettre en évidence les décisions contradictoires (choix entre diverses alternatives) et les diérencier de ce qui peut éventuellement être fait en parallèle. 2. Il doit garantir absolument la cohérence des décisions vis-à-vis de l'évolution future. Il ne peut y avoir de retour en arrière et une décision ne doit jamais mener à un blocage mortel ultérieur. 3. Il doit permettre la gestion de contraintes temporelles relatives (durées vis-à-vis de l'évènement précédent) de façon à surveiller le procédé. 4. Il doit permettre une approche hybride car un procédé discontinu ne peut être vu que sous son aspect discret au niveau de la supervision. 5. Il doit prendre en compte la politique de production et en particulier le plan prévisionnel déni sur un horizon temporel quand celui-ci existe. Pour cela des contraintes en temps absolu doivent pouvoir être exprimées. 6. Il doit permettre de passer sans discontinuités d'un horizon de production à un autre, c'està-dire que le c÷ur du modèle décrivant en particulier l'état du procédé discontinu ne doit pas être altéré par la substitution d'un plan de fabrication par un autre. L'étude comparative que nous avons mené précédemment montre clairement que les réseaux de Petri sont relativement bien adaptés. Il ne sont contradictoires qu'avec le point 5. Le point 4 implique pour nous l'utilisation des réseaux prédicats-transitions-diérentiels. V.6.2 Architecture de la couche pilotage et son interaction avec l'ordonnancement Voyons maintenant l'architecture générale de la fonction supervision en temps-réel et de ses relations avec l'ordonnancement et l'analyse hors ligne dans le cadre de ce que nous venons de dénir. Elle est donnée par la gure V.15. Chaque fonction (sauf la planication) sera dénie en détail dans le paragraphe suivant (V.6.3). Les grandes lignes sont les suivantes. Chapitre V Supervision des systèmes discontinus 118 Planication Dénition de la taille des lots quantité de produits à fabriquer capacité de production indices (!R ) Ordonnancement prévisionnel Génération Génération du plan prévisionnel d'indices agrégés B C alarmes, état du système Supervision Prise de décisions Simulation en en temps-réel temps-masqué D E Analyse hors ligne Gestion des ressources sans blocages A corrections des mécanismes d'allocation des ressources plan de production Figure V.15 Architecture générale de la fonction supervision en temps-réel La fonction supervision est basée sur l'utilisation d'un réseau prédicats-transitions-diérentiels enrichi d'informations venant de l'ordonnancement prévisionnel. Ces informations viennent du plan prévisionnel généré à l'aide d'un graphe potentiels et, éventuellement, d'indices agrégés associés aux invariants de places. La structure du réseau est supposée telle que le réseau est vivant (sans blocage) indépendamment du nombre de lots en cours. En parallèle avec la boucle de décisions en temps-réel la supervision comprend une fonction de simulation en temps masqué dont le but est de prévoir à l'avance les viols de contraintes an de diminuer leur gravité et le nombre d'appels réactifs à l'ordonnancement. Cette simulation est basée sur le modèle hybride détaillé, utilisé pour la prise de décisions en temps-réel (même niveau de désagrégation des variables), mais elle permet de faire des projections temporelles, éventuellement sur tout l'horizon prévisionnel, et donc, d'une certaine façon, son échelle de temps est celle de l'ordonnancement prévisionnel. V.6.3 Détail des fonctions A : Génération d'un réseau de Petri sans blocages Nous avons vu dans la paragraphe I.5.2 que les systèmes discontinus possèdent des contraintes logiques importantes et sont sensibles aux interblocages. De plus l'analyse structurelle des réseaux de Petri permet souvent de déduire un nouvel ensemble de contraintes qui ne génère que des séquences sans blocages. Cette analyse étant qualitative elle est faite sur un réseau ordinaire sans prise en compte du temps. Pour cela, il faut, avant la phase en temps-réel, détecter les interblocages éventuels et modier les contraintes pour les faire disparaître. Cette détection se fait à partir d'une analyse de la structure des réseaux modélisant les recettes et les mécanismes d'allocation des ressources. Cette analyse est totalement indépendante d'une demande en produit particulière sur un certain horizon temporel. Elle ne sera remise en cause qu'en cas de défaillances ou d'ajouts de machines V.6 Pilotage en temps-réel d'un système discontinu 119 (réacteurs, réservoirs... ressources en général) ou en cas de modication des recettes. En présence de siphon, nous proposons d'ajouter une place qui contrôle le nombre minimal de jetons dans les places du siphon, à condition que cette dernière ne crée pas un nouveau siphon. Cette place de contrôle ne correspond pas à une agrégation des ressources mais à une contrainte sur un ensemble d'utilisations de certaines ressources. Dans le réseau de la gure V.5 les jetons de la place de contrôle sont alloués en même temps que les réacteurs pour la première réaction et sont désalloués lorsque le stock tampon est libéré, mais le réacteur est toujours occupé (pour la seconde réaction). Cette place agit sur le mécanisme d'allocation des réacteurs R . B : Génération et prise en compte du plan prévisionnel Chaque fois que l'horizon est remis en cause (date normale de remise en cause ou réaction après un incident ou une commande urgente), il faut regénérer un plan. Diérentes approches sont possibles, mais nous avons principalement envisagé celles qui consistent à se baser sur les graphes potentiels et à calculer explicitement un plan. Il sera déni par un graphe potentiels avec à chaque n÷ud un intervalle en temps absolu vis-à-vis du début de l'horizon et donnant la date au plus tôt et la date au plus tard de l'évènement correspondant. Le problème qui se pose est de savoir comment ces informations peuvent être passées au niveau d'un pilotage en temps-réel basé sur un réseau prédicats-transitions-diérentiels. Trois approches sont envisageables : Directement sous la forme d'un graphe potentiels. Par un ensemble de contraintes de dates et de précédences. Par un ensemble de contraintes de dates. La première approche est systématique mais lourde car elle est très redondante. En eet les relations d'ordre provenant des ressources seront représentées à la fois dans le graphe potentiels et dans le réseau prédicats-transitions-diérentiels. Il faudra de plus mettre à jour la représentation de l'état courant dans les deux approches. La seconde approche consiste à associer à chaque transition un ensemble de fenêtres temporelles (en temps absolu) correspondant à tous les évènements du graphe potentiels représentés par le franchissement de cette transition. Elles seront indicées par les noms des lots correspondants (repérés sur les jetons associés) et eacées quand les transitions seront eectivement franchies. Les contraintes de précédence liant des recettes diérentes ne peuvent être représentées par des places car elles n'ont aucune raison d'être valables pour tous les évènements associés à une transition donnée. Elles devront donc être rajoutées à l'aide de pointeurs associés aux fenêtres temporelles. Une fenêtre temporelle ne pourra être utilisée que si toutes ses fenêtres temporelles précédentes ont été eacées. Ceci va alourdir le mécanisme du joueur. La troisième approche est basée sur l'hypothèse que les contraintes de précédence, ayant été utilisées pour calculer les fenêtres temporelles, sont largement redondantes avec ces dernières. Elles sont, de plus, partiellement prises en compte dans le réseau de Petri par l'intermédiaire des mécanismes d'allocation de ressources. Enn elles sont de nature décisionnelle et peuvent être violées en cas d'anomalies. Elles sont donc purement et simplement négligées, et nous ne conservons de l'approche précédente que les fenêtres temporelles associées aux transitions. Notre préférence va vers cette dernière solution qui a l'avantage de la simplicité. 120 Chapitre V Supervision des systèmes discontinus C : Génération des indicateurs Dans le paragraphe V.4.4 nous avons déni des indicateurs d'occupation des ressources ( !R ). Ces indicateurs peuvent être utilisés au moment de l'aectation des diérentes opérations sur les machines et pour le choix des instants de début d'opération à l'intérieur des fenêtres temporelles (en temps absolu sur l'horizon) établies par le plan prévisionnel. On évitera ainsi de laisser inutilisé un équipement avec un taux d'utilisation élevé. Ceci est valable aussi bien pour les ressources réelles que pour les ressources virtuelles. Les réseaux utilisés pour cette génération correspondent à une vision abstraite du procédé. Il n'est alors pas nécessaire d'utiliser des réseaux prédicats-transitions-diérentiels. Les durées, ou intervalles de temps, étant calculées à partir des fonctions associées aux places ( Fk ) et des fonctions de sensibilisations ( ei ) comme nous l'avons fait au paragraphe IV.2.1. Le calcul des indicateurs doit être refait chaque fois que l'horizon est remis en cause, soit parce que c'est la date normale d'actualisation (synchrone), soit par la suite d'une défaillance ou d'une commande urgente (réactivité, voir paragraphe I.2.1). D : Prises de décisions en temps-réel La prise de décisions en temps-réel est basée sur un modèle réseau prédicats-transitionsdiérentiels. Ce modèle permet de calculer les durées des transformations de façon réaliste, de connaître la qualité du produit fabriqué ainsi que les volumes des stocks en continu. Ce mécanisme, permettant de surveiller le comportement du procédé et d'évaluer la date probable de début de l'opération suivante, a été détaillé dans la thèse de D. Andreu [9] et ne sera donc pas développé ici. La partie réseau de Petri du modèle garantit que les contraintes de recettes et d'allocation des ressources seront toujours vériées (le réseau déni par la fonction A est vivant). Ce modèle pour la supervision doit également être capable de prendre en compte le plan prévisionnel, par exemple en associant des ensembles d'intervalles, en temps absolu, aux transitions correspondant aux débuts d'opérations et en les indexant par des numéros de lots qui seront portés par les jetons correspondants. Les contraintes de n au plus tard de nature technologique (interdiction de rester dans un équipement plus d'une certaine durée) posent un problème puisque notre modèle hybride correspond aux réseaux de Petri t-temporels et non aux réseaux de Petri p-temporels. Il faudra donc dans les recettes prévoir explicitement des transitions d'alarme qui seront franchies lorsque la durée maximale de séjour sera atteinte. Le modèle va exprimer l'ensemble des décisions pouvant être prises, par l'intermédiaire des transitions sensibilisées. Un système expert, ou un opérateur, peut alors choisir la décision à prendre. Pour cela, il se base sur les fenêtres temporelles de début des opérations données par le calcul du plan prévisionnel, sur les marges des ressources et des produits, et en émulant la commande an de prévoir les ns d'opérations en fonction de changements de certains paramètres. La surveillance de l'exécution du plan prévisionnel doit également détecter les évènements incohérents et le non respect des contraintes temporelles. La détection du non respect des contraintes temporelles est basée sur la détermination de fenêtres temporelles d'occurrence des évènements attendus [9]. Nous pouvons remarquer que les fenêtres qui vont permettre de surveiller le procédé (voir paragraphe I.2.3) sont établies à partir du réseau prédicats-transitionsdiérentiels, alors que les fenêtres qui vont permettre de surveiller le plan sont données par le plan prévisionnel. Lorsque les incohérences sont détectées, des décisions doivent être prises an de pouvoir poursuivre la production. Des contraintes peuvent être violées. Il est alors primordial de pouvoir distinguer les contraintes en deux groupes, celles qui ont pour but d'assurer la bonne fabrication du produit et celles qui proviennent des dates de livraison, car certaines devront être relâchées. Et V.7 Conclusion 121 comme il est plus important de respecter la recette et les contraintes venant des ressources, et de s'assurer que toutes les opérations prévues pourront être exécutées sans atteindre de blocages, plutôt que d'essayer de respecter scrupuleusement les dates de n, il est préférable de ne pas respecter les contraintes quantitatives et de renégocier la date de livraison [27]. Dans la mesure du possible, on va donc continuer à piloter la production en respectant les contraintes technologiques pour répondre aux contraintes temps-réel, et simultanément on va soit lancer une procédure de localisation de défauts et de diagnostic (surveillance du procédé) soit relancer le module d'ordonnancement prévisionnel pour regénérer un plan (réactivité). E : Simulation en temps masqué Le modèle réseau prédicats-transitions-diérentiels permet de représenter la partie continue de manière précise. Il est possible de faire des simulations du modèle à partir de l'état courant du système. Ces simulations vont servir à déterminer les dates prévisibles pour les débuts et ns d'opérations suivant certains scénarios. Il est possible de simuler des opérations avec d'autres jeux de paramètres (température plus chaude, plus de réactifs...) an de modier la durée opératoire et en s'assurant que la qualité reste acceptable. Ce type de simulation ne doit pas être confondu avec celui qui est mis en ÷uvre dans la boucle en temps-réel. En temps-réel il s'agit d'une simulation sur un seul pas discret. Son but est en fait de traduire les contraintes hybrides du modèle prédicats-transitions-diérentiels sous la forme d'un réseau t-temporel en associant à chaque transition sensibilisée une durée de sensibilisation. La faiblesse de la boucle temps-réel est qu'elle est purement temps-réel et ne détecte les incohérences qu'au moment où elles se produisent. Or il existe un plan de production sur tout un horizon qui dénit le cadre général des évolutions futures. Quand le système de production est purement discret, par un simple algorithme de propagation de contraintes on peut analyser les conséquences futures d'un retard an de décider s'il faut ou non regénérer un plan. Dans le cas d'un procédé discontinu représenté par un réseau prédicats-transitions-diérentiels, cela est moins simple car les durées opératoires ne sont pas explicites. De plus le plan a été généré à partir des seules contraintes discrètes. La simulation en temps masqué sert donc essentiellement à propager les contraintes et à valider, vis-à-vis du modèle hybride, le plan calculé à partir d'une vision discrète (en particulier le respect des contraintes au plus tard ne peut être vérié que de cette façon). Elle sert à atténuer la contradiction du pilotage qui doit travailler en temps-réel mais dans le cadre d'un plan prévisionnel déni sur un horizon temporel. V.7 Conclusion Dans ce chapitre nous avons étudié le problème de la supervision en temps-réel des procédés discontinus, et plus particulièrement du lien entre les niveaux supervision et ordonnancement. Pour cela nous avons comparé les possibilités d'expression des graphes potentiels (couramment utilisés au niveau ordonnancement) et des réseaux de Petri (couramment utilisés pour la supervision). Nous avons mis en évidence que les réseaux de Petri permettent de diérencier les incohérences venant des contraintes qualitatives (de type technologique) des incohérences quantitatives provenant de la façon de gérer la production. Par contre ils ne permettent pas de travailler facilement avec des approches quantitatives sur un horizon temporel. Nous avons ensuite proposé une approche pour le pilotage en temps-réel. Cette approche est basée sur deux étapes. La première consiste à générer, indépendamment, un plan prévisionnel à partir d'un graphe potentiels et d'une politique d'allocation des ressources sans blocages grâce à l'analyse du réseau de Petri. Et la seconde consiste à la prise de décisions en temps-réel. Cette 122 Chapitre V Supervision des systèmes discontinus prise de décisions se fait à partir d'un modèle réseau prédicats-transitions-diérentiels dont la partie réseau de Petri est vivante. Le réseau propose de franchir un ensemble de transitions (qui correspondent à des décisions) et donne des informations sur la production (le plan, les durées opératoires prévues, les marges). À partir de ces informations un système expert (ou un opérateur) choisit la transition à franchir, donc la décision à prendre. Il est, de plus, possible d'eectuer des simulations a priori pour prévoir des viols de contraintes à l'avance et préparer les décisions futures. Nous avons présenté les grandes lignes de cette approche, mais de nombreux points doivent encore être éclaircis, notamment la représentation du plan au niveau du réseau de Petri, les règles de fonctionnement du système expert et la coopération entre la simulation en temps masqué et la prise de décisions en temps-réel. Conclusions et perspectives Dans cette thèse nous avons traité le problème de la supervision des systèmes discontinus en dénissant formellement un modèle et en proposant une approche pour le pilotage en temps-réel. Dans un premier temps nous avons étudié les spécicités des systèmes discontinus. Cette étude nous a permis de déduire le modèle nécessaire pour la supervision de ces systèmes. Ce modèle est basé sur le couplage de réseaux prédicats-transitions et de systèmes d'équations diérentielles algébriques. Nous dénissons formellement ce couplage en introduisant deux fonctions, les fonctions de sensibilisation et de jonction, ce qui nous donne un modèle hybride : les réseaux prédicats-transitions-diérentiels. Puis, dans un deuxième temps, nous avons traité le couplage de sous-modèles an d'avoir une écriture modulaire pour obtenir un modèle dans le cadre des systèmes de grande taille. Nous avons ensuite présenté un algorithme de simulation des réseaux prédicats-transitions-diérentiels. Enn nous avons terminé ces travaux en comparant les réseaux de Petri et les graphes potentiels an de proposer une approche pour le pilotage en temps-réel des systèmes discontinus et prenant en compte les interactions avec l'ordonnancement prévisionnel. Les apports de cette thèse concernent : La dénition formelle du couplage entre les réseaux prédicats-transitions et les systèmes d'équations diérentielles algébriques (les réseaux prédicats-transitions-diérentiels). Le réseau donne les états discrets du système et les systèmes d'équations l'évolution des variables continues pour chaque état. Les interactions entre les deux modèles sont formellement dénies par les fonctions de sensibilisation, qui permettent de détecter des évènements d'état ou de temps, et de jonction, qui permettent de calculer les valeurs initiales des variables. Nous avons ainsi un modèle hybride pour représenter les systèmes discontinus. Ce modèle, respectant le principe de la localisation de l'information en distribuant les variables continues sur les jetons, permet d'envisager des approches modulaires. Le couplage de sous-modèles. An de faciliter l'écriture d'un modèle de grande taille, nous avons : Déni la fusion statique et dynamique des réseaux ordinaires et prédicats-transitionsdiérentiels. Déni la notion de sous-réseaux bien structurés. Il s'agit, par un ensemble de dénitions, de structurer les variables continues an de garantir qu'un modèle est calculable s'il est composé de sous-modèles calculables. Mis en évidence la présence d'interactions hybrides entre les sous-modèles. 124 Conclusions et perspectives La dénition de deux principes de mise en ÷uvre des réseaux prédicats-transitions-diérentiels. Le premier, que l'on peut appliquer quand les dates d'occurrences des évènements et, à ces dates, les valeurs des variables continues peuvent être calculées explicitement, revient à réécrire le réseau prédicats-transitions-diérentiels en un réseau de Petri haut-niveau et à faire la simulation de ce modèle sur un joueur de réseaux de Petri haut-niveau. Le second, plus général, consiste à coupler deux simulateurs, l'un permettant de simuler des réseaux de Petri haut-niveau et l'autre des systèmes d'équations diérentielles algébriques. La comparaison entre les réseaux de Petri et les graphes potentiels. Nous avons plus particulièrement étudié leur capacité à détecter les incohérences et mis en évidence que les graphes potentiels posent des problèmes pour l'expression des contraintes nécessaires pour le pilotage en temps-réel (ils ne diérencient pas susamment les contraintes de nature technologique des contraintes quantitatives dues aux délais de livraison) et que les réseaux de Petri ne sont pas les mieux adaptés pour la détermination d'un plan prévisionnel sur un horizon temporel (ils travaillent en temps relatif et (( oublient )) le passé lors de chaque franchissement de transition) La proposition d'une approche pour le pilotage en temps-réel des systèmes discontinus. Cette approche, basée sur les réseaux prédicats-transitions-diérentiels, se focalise surtout sur les interactions entre le pilotage en temps-réel et l'ordonnancement prévisionnel. Cette thèse ouvre des perspectives intéressantes tant au niveau de l'approche pour la supervision des systèmes discontinus que de la modélisation et de l'analyse de ces systèmes. L'approche modulaire permet d'envisager l'utilisation de notre technique de modélisation dans un environnement industriel, aussi bien dans le domaine de la simulation (par exemple pour le dimensionnement d'installation) que dans celui de la supervision où nous avons mis en évidence le fait que les réseaux de Petri pouvaient être eectivement vus comme des outils complémentaires aux approches traditionnelles utilisées pour l'ordonnancement prévisionnel. Toutefois beaucoup de travail reste à faire au niveau de la modélisation nous pouvons évoquer deux points à détailler : La formalisation de l'instanciation des variables. En eet quand un sous-réseau représente un pool d'équipements ayant des caractéristiques proches, chaque jeton représentera un équipement particulier (voir la représentation des compresseurs dans le paragraphe III.4.3). Un jeton dans une place avec un système d'équations associé devra mettre en ÷uvre ce système avec ses variables. Un réseau de Petri prédicats-transitions-diérentiels décrit en fait une classe d'équipements qui sera instanciée chaque fois qu'un nouveau jeton sera introduit. La notion de conits en présence de fusion dynamique de transitions. Par exemple une transition représentant le début de remplissage d'un équipement peut éventuellement être fusionnée avec deux transitions, chacune représentant le début d'une opération pour une recette particulière. Il y a, alors, un conit pour l'aectation de l'équipement aux recettes. Ce qui veut dire que le mécanisme de fusion dynamique est en fait très lié au mécanisme de décisions en temps-réel, mécanisme que nous n'avons pas détaillé. La formalisation du modèle hybride rend l'analyse de ce dernier possible. Cette perspective ouvre un domaine de recherche important. Deux pistes sont envisageables : Utiliser l'automate hybride équivalent. Pour prouver qu'une variable continue n'atteint jamais certains seuils on peut écrire la partie de l'automate équivalent mettant en ÷uvre Conclusions et perspectives 125 cette variable, à partir du sous-réseau la dénissant. Cette approche recouperait largement les travaux de M. Allam [5, 6, 7]. Construire le graphe des classes, en transformant le réseau prédicats-transitions-diérentiels en un réseau haut-niveau temporisé ou temporel. On ne conserve alors que les pires cas (dates au plus tôt et dates au plus tard) à partir desquels des analyses qualitatives peuvent être menées. L'étude de la supervision des systèmes discontinus doit être poursuivie en : Étudiant le problème du nettoyage des équipements. En eet le nettoyage d'un équipement n'est pas systématique et dépend de son utilisation. Ces contraintes doivent pouvoir être modélisées an d'en tenir compte lors de l'élaboration du plan prévisionnel et au niveau de la supervision (car c'est une caractéristique importante pour la qualité du produit). Détaillant l'architecture de commande et les principes de surveillance proposés par D. Andreu [9] à partir du modèle hybride formalisé et de la formalisation du couplage de sousmodèles. Enn l'étude des interactions entre les niveaux ordonnancement et supervision des systèmes discontinus doit, elle aussi, être développée. En eet nous avons proposé une approche pour la supervision, et il semblerait intéressant de porter nos eorts sur : La formalisation de la prise en compte du plan prévisionnel au niveau du modèle pour le pilotage en temps-réel. Élucider le problème posé lorsque la production est perturbée et ne suit pas rigoureusement le plan prévisionnel, et qui est de franchir des transitions en dehors de leurs fenêtres de sensibilisation. Un problème crucial est de savoir quand il est nécessaire de redéterminer un plan prévisionnel sur tout l'horizon temporel. L'élaboration des règles de fonctionnement du système expert chargé de prendre les décisions en temps-réel. La dénition de la coopération entre la simulation en temps masqué et la prise de décisions en temps-réel. De plus nous pouvons ajouter que ces travaux sur la supervision devraient être accompagnés d'une mise en ÷uvre industrielle an de tester leur pertinence et permettre le transfert des technologies. Le travail mené dans le cadre du projet (( simulation mixte )) est un début qui doit être poursuivi. 126 Conclusions et perspectives Annexe A Présentation de l'exemple du stockage de gaz A.1 Le stockage de gaz ( S ) Il s'agit d'un stockage souterrain aquifère, c'est-à-dire que le volume de stockage disponible est fonction de la pression régnant dans le stock. La position de la surface de la nappe liquide au fond du réservoir est repoussée, obéissant à la loi de l'hydrostatique, lorsque la quantité de gaz dans le stock augmente. Sur la gure A.1, le principe physique régissant la variation de volume du stockage est explicité de manière simpliée. Alimentation Soutirage Stockage de gaz hg Nappe liquide hl Réservoir hs Colonne d'équilibre hydrostatique Figure A.1 Schéma simplié du réservoir de stockage La somme des hauteurs des deux phases, hg + hl , reste constante et le volume du gaz est déterminé par la hauteur hg . La pression à l'interface liquide/gaz du réservoir est xée par la colonne d'équilibre hydrostatique, soit : Ps = P0 + lghs (A.1) Où P0 est une constante (pression de référence) et l est la masse volumique du liquide. Lorsque cette pression augmente, la hauteur excédentaire hs croît, ce qui implique, par un bilan matière simple, que hl a diminué. La pression du gaz a augmenté et son volume de stockage aussi. Annexe A Présentation de l'exemple du stockage de gaz 128 WCp1 WCp2 WCc WVR1 WVR2 Us Vs Ps Ts R P0 Pp dp Tp Pc dc Tc P2 P3 P4 P5 P6 V1 :::V8; VAU T Énergie consommée par Cp1 Énergie consommée par Cp2 Énergie consommée par Cc Énergie dissipée par la vanne VR1 Énergie dissipée par la vanne VR2 Quantité de moles contenues dans le stockage Capacité du stockage Pression à l'intérieur du stockage Température du gaz à l'intérieur du stockage Constante des gaz parfaits Pression de référence Pression à la sortie de l'unité de production Débit fournit par l'unité de production Température du gaz à la sortie de l'unité de production Pression à l'entrée du réseau de distribution aux clients Débit à l'entrée du réseau de distribution aux clients Température du gaz à l'entrée de l'unité client Pression après Cp1 Pression après Cp2 Pression après VR1 Pression après le stockage S Pression après Cc Vannes tout ou rien Température du gaz à travers le procédé Tableau A.1 Index des variables utilisées A.1 Le stockage de gaz ( S ) 129 Dans le cas qui nous intéresse, la forme du stockage n'étant pas régulière, le calcul du volume obéit à une loi non-linéaire. 5 Vs = 356:3hg2 Ps (A.2) Ps = 0:1hg + P0 (A.3) Avec : Où hg est en m ( 0 hg 130 ), Ps est en bar ( P0 = 54 ) et Vs est en m3 ( 0 Vs 4:6:109 ). Les expressions A.2 et A.3 peuvent se combiner pour faire disparaître la hauteur hg , soit Vs = 356:3 ((Ps , P0) 10)5=2 Ps (A.4) La matière stockée est un uide gazeux compressible, c'est-à-dire que la quantité molaire de gaz stocké, Us , est fonction de la pression, de la température et du volume disponible. Nous supposerons que la loi des gaz parfaits s'applique à ce uide, soit Ps:Vs = Us :R:T (A.5) Où Ps est exprimée en Pa , Vs en m3 , Us en mole , T en K et R est la constante des gaz parfaits ( R = 8:314J=mol:K ). Nous obtenons donc comme équations pour la conguration 2 ( V5 = 1 , V6 = 0 ) : P4 = P5 (A.6) P4 = Ps (A.7) dUs = d , d p c d (A.8) PsVs = UsRT (A.9) Vs = ((Ps , P0) 10)5=2 353:6 Ps (A.10) Dans le circuit b1 va s'instaurer un débit dc , dans b2 il y aura un débit dp , dc , et pour b3 il y aura un débit nul. Pour la conguration 3 ( V5 = 0 , V6 = 1 ), les équations A.6, A.8, A.9 et A.10 restent valables. Seule l'équation A.7 est modiée et devient : P5 = Ps (A.11) Dans le circuit b1 va s'instaurer un débit dp , dans b2 il y aura un débit nul, et pour le tronçon b3 le débit vaudra dc , dp . Annexe A Présentation de l'exemple du stockage de gaz 130 A.2 Modélisation de la compression amont ( Cp et Cp ) 1 2 Deux compresseurs identiques Cp1 et Cp2 sont utilisés pour fournir l'énergie nécessaire pour assurer le débit dp . Leur fonctionnement est le suivant. Soit le compresseur est inactif, V1 = 0 et V2 = 1 pour le premier et nous avons alors : WCp1 = 0 (A.12) P2 = Pp (A.13) Soit le gaz passe par le compresseur ( V1 = 1 et V2 = 0 pour le premier), dont nous supposons qu'il fournit un travail spécique constant, donc qu'il délivre un taux de compression xé ici à trois. Sous l'hypothèse d'une compression adiabatique idéale pondérée par une ecacité = 0:8 , le travail est calculé par : 0 Tp @ WCp1 = 1 R ,1 P2 Pp ! , 1 1 , 1A (A.14) Avec = 1:31 . P2 = 3Pp (A.15) Les équations correspondant au second compresseur sont, dans l'état inactif ( V3 = 0 et V4 = 1 ) : WCp2 = 0 (A.16) P3 = P2 (A.17) 0 ! ,1 1 Tp @ P2 , 1A WCp2 = 1 R , 1 Pp (A.18) P3 = 3P2 (A.19) Et dans l'état actif ( V3 = 1 et V4 = 0 ) : Avec = 1:31 . Lorsque les deux compresseurs amont sont actifs nous avons P3 = 9Pp . A.3 Modélisation de la détente amont (vanne VR1 ) La vanne est caractérisée par une détente isenthalpique sans échange de travail W avec l'extérieur. W = H = 0 , avec l'hypothèse du gaz idéal où l'enthalpie n'est fonction que de la température, on a H (T ) , T = 0 , donc P RT ln P4 + WVR1 = 0 3 Où WVR1 représente la variation d'énergie interne du uide. (A.20) A.4 Modélisation de la compression aval ( Cc ) 131 A.4 Modélisation de la compression aval ( Cc ) Les caractéristiques sont identiques à celles de la compression amont. Nous avons donc, dans le cas où le compresseur est inactif ( V7 = 0; V8 = 1 ) : WCc = 0 (A.21) P6 = P5 Et dans le cas où le compresseur est actif ( V7 = 1; V8 = 0 ) : ,1 ! 1 RT1 P6 ,1 WC c = , 1 P 5 Avec = 1:31 . (A.22) (A.23) P6 = 2P5 (A.24) A.5 Modélisation de la détente aval (vanne VR2 ) La détente est identique à la détente amont, nous avons donc : P RT ln Pc + WVR2 = 0 6 (A.25) h kJ WCp1 ; WCp2 ; WCc ; hWVR1 ; Wi VR2 = kmol kJ R = kmolK Us = [kmol h kmol] i dp = dc = s Ps; Pc; Pp; P2; P3; P 4; P 5; P6 = [bar] Vs = m3 T = [K ] = [,] Tableau A.2 Unités utilisées i 132 Annexe A Présentation de l'exemple du stockage de gaz Annexe B Représentation et simulation des systèmes continus B.1 Introduction Dans cette annexe, nous dénissons les méthodes et outils requis par un simulateur de systèmes dynamiques hybrides pour ce qui concerne la résolution de la partie continue des problèmes. B.2 Dénition d'un système continu Un système continu, au sens de la théorie des systèmes, est représenté par des variables dont le domaine de dénition est inclus dans l'espace des réels. Soit X le vecteur d'état de dimension k , X 2 <k . Pour des systèmes dynamiques, les variables d'état sont des fonctions du temps X () . Les équations du modèle peuvent impliquer les dérivées des variables d'état par rapport au temps, notées X_ () . Seules les dérivées du premier ordre seront considérées par la suite. La représentation des phénomènes implique l'écriture de l (l < k) fonctions vectorielles de variables et de variables indépendantes telles que le temps. Chaque équation peut être résumée par une fonction élémentaire fi ( i variant de 1 à l ) dénie comme : fi : <k <k <1 ,! < _ X; ) ,! fi (X; _ X; ) (X; Les fonctions fi sont regroupées dans une fonction vectorielle F à valeur dans <l . 2f 66 f12 F = 66 .. 4 . fl 3 77 77 5 Par exemple, les bilans de matière, de quantité de mouvement ou d'énergie sont des fonctions élémentaires fi . La résolution d'un problème de simulation consiste à écrire un système homogène (au sens de la dimension) de l équations à l inconnues en partitionnant le vecteur d'état en un vecteur de variables (taille l ) et un vecteur de variables xées en paramètres (de taille k , l ). Annexe B Représentation et simulation des systèmes continus 134 B.3 Traitement numérique Le traitement numérique a pour objectif de trouver une solution physiquement réaliste, si elle existe, au problème déni dans le paragraphe précédent (B.2). B.3.1 Systèmes algébriques Ce sont des modèles de la forme : f (x; u; v) = 0 (B.1) Où x est l'état du système, u la commande et v un ensemble de paramètres. La composante temps a disparu. Les deux caractéristiques importantes sont : linéaire/non-linéaire. explicite/implicite. Caractère non-linéaire Un système non-linéaire est un système dont la dérivée de la fonction f par rapport à la variable d'état est une fonction continue non constante sur le domaine de dénition de la variable d'état. Exemples (x1) = ln x1 + 1 ) non-linéaire f (x1 ) = x1 ln x1 , 4 = 0; (x1 2 ]0; 1]) dfdx 1 (x1 ) f (x1 ) = 2x1 + 4 = 0; dfdx = 2 ) linéaire 1 F (X ) = F (X ) = ( ( x1 + 2x2 , 4 = 0 2x1 + x2 , 2 = 0 x1x2 + 2x22 , 4 = 0 2x1x2 + x22 , 2 = 0 Caractère implicite " # dF (X ) = 1 2 ) linéaire 2 1 dX " # dF (X ) = x2 x1 + 4x2 ) non-linéaire 2x2 2x1 + 2x2 dX (B.2) (B.3) (B.4) (B.5) Un système est dit implicite s'il n'y a pas possibilité d'agencer l'équation pour faire apparaître la variable inconnue seule à gauche du signe = , et uniquement des variables connues à droite. La résolution d'un système implicite fait appel à des méthodes numériques itératives. B.3 Traitement numérique 135 Exemples f (x1) = x1 ln x1 , 4 = 0 implicite f (x1) = 2x1 + 4 = 0 explicite F (X ) = F (X ) = ( ( x1 + 2x2 , 4 = 0 2x1 + x2 , 2 = 0 implicite (sauf manipulations) x21 , 4 = 0 x1 + 2x22 , 4 = 0 explicite Les méthodes proposées dans la suite font référence à un caractère implicite. Méthodes numériques pour les systèmes linéaires Ils s'écrivent sous forme matricielle AX = B . La solution, si elle existe, est unique. Il existe deux grandes classes de méthodes pour résoudre les systèmes algébriques linéaires. Les méthodes itératives, qui approchent la solution par une suite X (k) , convergeant vers X , en utilisant une formule de récurrence et une valeur initiale X (0) . Elles sont utilisées pour les systèmes de grande taille. Les méthodes directes, qui transforment le système initial par combinaisons linéaires des équations de manière à lui donner un caractère explicite. Le caractère explicite consiste à trouver la solution en traitant les équations une à une, chaque équation ne contenant plus qu'une seule inconnue au moment où elle est résolue. Les méthodes les plus réputées sont la méthode de Gauss et la décomposition LU. Méthodes numériques pour les systèmes non linéaires Le principe de base consiste à linéariser le système. Pour cela, les méthodes utilisées sont itératives. Une estimation des variables est obtenue à partir de la formule générale suivante : xk+1 = xk + k :xk (B.6) Avec xk solution du système linéaire : M k :xk = ,f (xk ) (B.7) Où k est le numéro de l'itération, M k une matrice non singulière appelée opérateur et k le facteur de relaxation du pas. Dans le cas de la méthode de Newton, M k est la matrice Jacobienne de la fonction f en xk . Cette méthode a cependant deux inconvénients importants. Le premier est que cette méthode, pour converger vers la solution, nécessite une très bonne approximation initiale. Le deuxième est qu'il n'est pas évident d'obtenir la matrice Jacobienne du système. Pour s'aranchir de cette diculté, une variété de méthodes dites quasi-linéaires et quasi-Newton utilisent un opérateur qui peut être considéré comme une approximation de la matrice Jacobienne. Annexe B Représentation et simulation des systèmes continus 136 Exemple : méthode de Newton F (X ) = ( x1x2 + 2x22 , 4 = 0 2x1 x2 + x22 , 5 = 0 (B.8) " # avec X0 = 11 ; " = 0; 1 et k = 1 La matrice Jacobienne du système est : " x2 x1 + 4x2 2x2 2x1 + 2x2 # (B.9) Calcul de X 0 : J (X 0)X 0 = ,F (X 0) " 1 5 2 4 #" # " # x1 = 1 x2 2 (B.10) D'où x1 = 1 et x2 = 0 . Calcul de X 1 : X 1 = X 0 + X 0 , donc x1 = 2 et x2 = 1 . Critère de stop : " # " # F (X 1) = 00 donc X 1 = 21 est solution. B.3.2 Systèmes d'équations diérentielles ordinaires Ce sont des Systèmes de la forme : f (x;_ x; u; v; ) = 0 avec x_ ( = 0) = x_ 0 et x( = 0) = x0 (B.11) Où x est l'état du système, u la commande, v un ensemble de paramètres et le temps. La plupart des problèmes physiques font intervenir des dérivées du premier ordre. Les problèmes mettant en ÷uvre des équations diérentielles d'ordre supérieur à un peuvent être transformés en un problème mettant en ÷uvre un ensemble d'équations diérentielles du premier ordre. Exemple d2 x = f , d2 ( dx = d du = d u f On retrouve les mêmes caractérisations que pour les équations algébriques. linéaire/non-linéaire. explicite/implicite. (B.12) B.3 Traitement numérique 137 La dénition des conditions limites génère une troisième propriété caractéristique selon que les conditions sur les variables d'état xi , sont dénies en un même point ou réparties en plusieurs points. Dans la mesure où nous traitons d'équations diérentielles ordinaires par rapport au temps, pour lesquelles la condition initiale sera connue sur l'ensemble des variables d'état à un même instant, nous ne décrivons que les méthodes les plus classiques adaptées à ce type de conguration. Une dernière propriété est la raideur du système. Sa dénition est complexe, nous nous contentons de la dénir comme une source d'instabilité numérique causée par l'existence de constantes de temps d'ordres de grandeurs diérents dans les équations. Exemple de caractère non-linéaire f (x;_ x; u; ) = ( dx1 d dx 2 d , ax1 , bx2 = 0 , cx1 , dx2 = 0 (B.13) avec x1(0 ) = x10 et x2 (0) = x20 Le système (B.13) est linéaire, car tous les éléments du Jacobien sont constants. " 1 0 a b 0 1 c d # Caractère explicite Nous ne reviendrons pas sur la dénition du caractère explicite. Dans le cas des systèmes d'équations diérentielles, cela signie que l'on a une écriture explicite de la dérivée de la variable d'état (X 0 = G(X; P; )) . Une solution triviale n'est accessible que si la fonction G est constante. Quelques solutions analytiques sont disponibles (intégrales dénies), mais rarement employées, sauf dans les outils de calcul formel. De toute façon, les modèles continus s'écartent souvent de ces formes de fonction. Méthodes numériques Le principe de base est de transformer le système d'équations diérentielles en un système d'équations algébriques, en substituant une approximation polynômiale à la dérivée. Cette approximation polynômial n'est en fait qu'une expression limitée à un certain ordre du développement en série de Taylor de la variable xi () par rapport à . q xi( + h) = xi () + hx0i () + + hq ! x(i q)() + O(h(q)) (B.14) Où q est l'ordre de la méthode. Pour un pas h donné, chaque méthode propose une forme de polynôme utilisant soit : De l'information passée sur la variable et sa dérivée première, ce sont les méthodes à pas liés. De l'information sur des points intermédiaires pour le pas considéré, ce sont les méthodes à pas séparés. Annexe B Représentation et simulation des systèmes continus 138 Exemple : méthode d'Euler ( q = 1 ) Formulation explicite : dv = g(v; ) d v ( + ) v () + g (v (); ) (B.15) v ( + ) v () + g (v ( + ) ; + ) (B.16) Formulation implicite : B.3.3 Systèmes d'équations diérentielles algébriques Systèmes combinant des équations diérentielles et des équations algébriques. Modèles de la forme : f (x;_ x; u; v; ) = 0 (B.17) Où x représente l'état du système, u la commande, v un ensemble de paramètres et le temps. Exemple 8 > < x_ 1 _ F (X; X; ) = > x_ 2 : 0 = x1 + x2 + x3 = x1 , x2 , x3 = x1 + 2x2 (B.18) avec à = 0; F (X_ (0); X (0); u(0); v(0); 0) = 0 x3 représente une variable purement algébrique. x1 et x2 sont les variables diérentielles du système. Références bibliographiques et bibliographie [1] H. Alla. (( Les réseaux de Petri : un outil particulièrement adapté à la modélisation des systèmes hybrides )). Dans les proceedings d'ADPM'94 (Automatisation des Processus Mixtes), pages 1725, Bruxelles (Belgique), Novembre 1994. [2] H. Alla. (( Modelling and simulation of event driven systems by Petri nets )). Dans les proceedings d'ADEDOPS (Analysis and Design of Event-Driven Operation in Process Systems), Londres (Angleterre), Avril 1995. [3] H. Alla, G. Bel, J.-B. Cavaille et J. Le Bail. (( Les systèmes de production par lots : une approche discret-continu utilisant les réseaux de Petri hybrides )). Dans les proceedings d'ADPM'92 (Automatisation des Processus Mixtes), pages 2432, Paris (France), Janvier 1992. [4] H. Alla et J.-M. Flaus. (( Modeling of gas storage unit using hybrid ow nets )). Dans les proceedings d'ADPM'98 (Automatisation des Processus Mixtes), Reims (France), Mars 1998. [5] M. Allam et H. Alla. (( Modelling production systems by hybrid automata and hybrid Petri nets )). Dans les proceedings de IFAC-CIS'97 (Control of Industrial Systems), volume 1, pages 463468, Belfort (France), Mai 1997. [6] M. Allam et H. Alla. (( From hybrid Petri nets to hybrid automata )). Rapport 96.113, Laboratoire d'Automatique de Grenoble (France), 1998. [7] M. Allam et H. Alla. (( Performances evaluations of hybrid systems )). Dans les proceedings d'ADPM'98 (Automatisation des Processus Mixtes), pages 916, Reims (France), Mars 1998. [8] R. Alur, C. Courcoubetis, N. Halbwachs, T.A. Henzinger, A. Olivero, J. Sifakis et S. Yovine. (( The algorithmic analysis of hybrid systems )). Theorical computer science, (138):3 34, 1995. [9] D. Andreu. (( Commande et supervision des procédés discontinus : une approche hybride )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Novembre 1996. [10] D. Andreu, M. Combacau, P. Esteban et J.-C. Pascal. (( Commande temps-réel hiérarchisée, application à une maquette d'atelier exible )). Revue d'Automatique et de Productique Appliqués, 7(5):627639, 1994. 140 Références bibliographiques et bibliographie [11] D. Andreu, J.-C. Pascal, H. Pingaud et R. Valette. (( Batch process modelling using Petri nets )). Dans les proceedings d'IEEE-SMC, pages 314319, San Antonio (États-Unis), Octobre 1994. [12] D. Andreu, J.-C. Pascal et R. Valette. (( Interaction of discrete and continous parts of a batch process control system )). Dans les proceedings d'ADEDOPS (Analysis and Design of Event-Driven Operation in Process Systems), Londres (Angleterre), Avril 1995. [13] D. Andreu, J.-C. Pascal et R. Valette. (( Events as a key of a batch process control system )). Dans les proceedings de IEEE-SMC-CESA'96 (Symposium on Discrete Events and Manufacturing Systems), pages 297302, Lille (France), Juillet 1996. [14] D. Andreu, H. Pingaud, J.-C. Pascal et R. Valette. (( Un système de commande hiérarchisé hybride: application à la commande d'un réacteur batch multiuide )). Dans les proceedings des Journées d'Études SEE, Lyon (France), Février 1996. [15] R.N. Anthony. (( Planning and control systems: a framework for analysis )). Graduate School of Business Administration, Havard University Press, Massachussets, 1965. [16] C. Artigues. (( Ordonnancement en temps-réel d'ateliers avec temps de préparation des ressources )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Décembre 1997. [17] H. Atabakhche. (( Utilisation conjointe de l'intelligence articielle et des réseaux de Petri : application au contrôle d'exécution d'un plan de fabrication )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Décembre 1987. [18] N. Audry. (( Modélisation et simulation de systèmes de production à haute cadence avec convoyage : réseau de Petri lots commandés génériques )). Thèse de doctorat, Université de Montpellier II (France), Septembre 1995. [19] D. Azzopardi et D.J. Holding. (( Closed loop control of DEDS using timed-Petri net models )). Dans les proceedings d'ADEDOPS (Analysis and Design of Event-Driven Operation in Process Systems), Londres (Angleterre), Avril 1995. [20] D. Azzopardi et S. Lloyd. (( Reduction of search space fo scheduling of multi-product batch process plant through Petri net modelling )). Dans les proceedings d'IFAC-IFIP-IFCKS (Fourth International Conference on Advanced Factory Automation), Vienne (Autriche), Juin 1994. [21] D. Azzopardi et S. Lloyd. (( Scheduling and simulation of multi-product batch process plant through Petri net modelling )). Dans les proceedings de Factory 2000 (Fourth International Conference on Advanced Factory Automation), York (Angleterre), Juin 1994. [22] Z.A. Banaszak et B.H. Krogh. (( Deadlock avoidance in exible manufacturing systems with concurrently competing process ows )). IEEE Transaction on Robotics and Automation, 6(6):724734, 1990. [23] A.P. Barbosa Póvoa et S. Macchietto. (( Redesign of a multipurpose batch pilot plant with cleaning in place (CIP) integration )). Computer & Chemical Engineering, 18:S277S281, Suppl., 1994. Références bibliographiques et bibliographie 141 [24] K. Barkaoui et I. Ben Abdallah. (( Deadlock avoidance in FMS based on structure theory of Petri nets )). Dans les proceedings de INRIA-IEE-ETFA'95 (Symposium on Emerging Technologies and Factory Automation), volume 2, pages 499510, Paris (France), Octobre 1995. [25] P.I. Barton. (( The Modelling and simulation of combined discrete/continuous processes )). PhD thesis, University of London (Angleterre), 1992. [26] P.I. Barton et C.C. Pantelides. (( Modeling of combined discrete/continuous processes )). AIChE journal, 40(6):966979, Juin 1994. [27] I. Bazet et G. De Terssac. (( Les pratiques d'organisation de la production remettent-elles en cause la division du travail? La décision contrainte dans les systèmes de production )). Dans les proceedings des V I èmes Journées de Sociologie du Travail, Blankenberge (Belgique), Novembre 1997. [28] S. Féray Beaumont et S. Gentil. (( Modèle qualitatif de comportement pour un système d'aide à la supervision )). APII Génie des Pocédés, 25(4):325348, April 1991. [29] I. Ben Abdallah. (( Méthodes d'allocation de ressources dans les systèmes exibles de production manufacturière fondées sur l'analyse structurelle des réseaux de Petri )). Thèse de doctorat, École Centrale Paris (France), Juillet 1996. [30] J.-C. Billaut. (( Prise en compte de ressources multiples et des temps de préparation dans les problèmes d'ordonnancement en temps-réel )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Décembre 1993. [31] G.W. Brams. (( Réseaux de Petri : théorie et pratique )), Tome 1 théorie et analyse, Masson, 1982. [32] G.W. Brams. (( Réseaux de Petri : théorie et pratique )), Tome 2 modélisation et applications, Masson, 1983. [33] H. Brettschneider, H.J. Genrich et H.-M. Hanisch. (( Verication and performance analysis of recipe-based controllers by means of dynamic plant models )). Dans les proceedings de Second International Conference on Computer Integrated Manufacturing in the Process Industries, Eindhoven (Hollande), Juin 1996. [34] C. Briand. (( Conception orientée-objet et basée réseaux de Petri de la conduite temps réel des systèmes exibles de production manufacturière )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Janvier 1995. [35] M. Brielmann. (( Modelling dierential equations by basic information technology means )). Dans les proceedings d'EUROCAST'95 (fth International Conference on Conputer Aided Systems Theory and Technology), pages 163174, Innsbruck (Autriche), Mai 1995. Springer Verlag LNCS 1030. [36] S. Calvez, P. Aygalinc et W. Khansa. (( P-time Petri nets for manufacturing systems with staying time constraints )). Dans les proceedings d'IFAC-IFIP-IMACS-CIS'97 (Control of Industrial Systems), volume 3, pages 495500, Belfort (France), Mai 1997. [37] H. Camus. (( Conduite de systèmes exibles de production manufacturière par composition de régimes permanents cycliques: modèlisation et évaluation de performance à l'aide de Références bibliographiques et bibliographie 142 réseaux de Petri )). Thèse de doctorat, Université des Sciences et Technologies de Lille (France), 1997. [38] H. Camus, H. Ohl, O. Korbaa et J.-C. Gentina. (( Petri net modeling of exible operating sequences in a FMS and implications for the search of cyclic schedules )). Dans les proceedings de IEEE-SMC-CESA'96, Symposium on Discrete Events and Manufacturing Systems, pages 218225, Lille (France), Juillet 1996. [39] M. Caradec et F. Prunet. (( Modelling of hybrid exible systems and taking accumulation phenomena into account )). Dans les proceedings d'ADPM'98 (Automatisation des Processus Mixtes), pages 8693, Reims (France), Mars 1998. [40] J. Carlier et P. Chrétienne. algorithmes )). Masson, 1988. (( Problèmes d'ordonnancement : modélisation-complexité- [41] F.E. Cellier. (( Continuous system modeling )). Springer-Verlag, 1991. [42] A. Chaillet-Subias. (( Approche multi modèles pour la commande et la surveillance en tempsréel des systèmes à évènements discrets )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Décembre 1995. [43] R. Champagnat, P. Esteban, H. Pingaud et R. Valette. (( Petri net based modeling of hybrid systems )). Computers in Industry, volume 36, N 1-2, pages 139146, Avril 1998. [44] R. Champagnat, P. Esteban, H. Pingaud et R. Valette. (( Modeling hybrid systems by means of high-level Petri nets: benets and limitations )). Dans les proceedings d'IFACIFIP-IMACS-CIS'97 (Control of Industrial Systems), volume 1, pages 469474, Belfort (France), Mai 1997. [45] R. Champagnat, P. Esteban, H. Pingaud et R. Valette. (( From scheduling to supervision in batch processes )). Dans les proceedings de CESA'98, volume 3: Symposium on Industrial and Manufacturing Systems, pages 673678, Nabeul-Hammamet (Tunisie), Avril 1998. [46] R. Champagnat, P. Esteban, H. Pingaud et R. Valette. (( Modeling and simulation of a hybrid system through Pr-Tr PN-DAE model )). Dans les proceedings d'ADPM'98 (Automatisation des Processus Mixtes), Reims (France), Mars 1998. [47] R. Champagnat, H. Pingaud, H. Alla, C. Valentin-Roubinet et J.-M. Flaus. (( A gas storage example as a benchmark for hybrid modeling )). Dans les proceedings d'ADPM'98 (Automatisation des Processus Mixtes), Reims (France), Mars 1998. [48] U. Christmann, H.-M. Hanisch et H. Heinrichs. (( High-level Petri net modelling and optimization of a batch polymer production plant )). Dans les proceedings de Fachtagung Simulation und Animation für Planung, Bildung und Präsentation, Magdeburg (Allemagne), Mars 1996. [49] P. Chrétienne. (( Les réseaux de Petri temporisés )). Thèse d'état, Université Pierre et Marie Curie, Paris V I (France), Juin 1983. [50] E.G. Coman, M.J. Elphick et A. Shoshani. (( System deadlocks )), Computing Surveys, 3(2):6778, 1971. Références bibliographiques et bibliographie 143 [51] M. Combacau. (( Commande et surveillance des systèmes à évènements discrets complexes: application aux ateliers exibles )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Décembre 1991. [52] M. Courvoisier et R. Valette. (( Commande des procédés discontinus-logique séquentielle )). Bordas, Dunod université édition, 1986. [53] B. Daubas. (( Modélisation et simulation des procédés continus et discontinus )). Thèse de doctorat, Institut National Polytechnique de Toulouse (France), Novembre 1994. [54] B. Daubas, A. Pagès et H. Pingaud. (( Combined simulation of hybrid processes )). Dans les proceedings d'IEEE-SMC, pages 320325, San Antonio (États-Unis), Octobre 1994. [55] R. David et H. Alla. (( Continuous Petri nets )). Dans les proceedings of the eighth European Workshop on Application and Theory of Petri Nets, pages 275294, Zaragoza (Espagne), Juin 1987. [56] R. David et H. Alla. (( Du grafcet aux réseaux de Petri )). Hermès, 1992 ( 2ème édition revue et augmentée). [57] R. David et H. Alla.(( Petri nets & grafcet - tools for modelling discrete event systems )). Prentice Hall, 1992. [58] A. De Bonneval. (( Mécanismes de reprise dans les systèmes de commande à évènements discrets )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Septembre 1993. [59] I. Demongodin. (( Les réseaux de Petri lots : modélisation des systèmes de production à haute cadence en régime transitoire )). Thèse de doctorat, Université de Montpellier II (France), Janvier 1994. [60] I. Demongodin et N.T. Koussoulas. (( Dierential Petri nets: a new model for hybrid systems )). Dans les proceedings d'ASI'96 (Advanced Summer Institute), pages 6168, Toulouse (France), Juin 1996. [61] I. Demongodin et N.T. Koussoulas. (( Modeling dynamic systems through Petri nets )). Dans les proceedings de IEEE-SMC-CESA'96, Symposium on Discrete Events and Manufacturing Systems, pages 279284, Lille (France), Juillet 1996. [62] J.-C. Deschamps. (( Gestion hiérarchisée de cellules exibles d'assemblage : concepts, modèles et simulation )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Novembre 1994. [63] Y.M. Dessouky, C.A. Roberts M.M. Dessouky et G. Wilson. (( Scheduling multi-purpose batch plants with junction constraints )). International journal of Production Research, 34(2):525541, 1996. [64] J. Dufau. (( Un outil pour la vérication des protocoles décrits par réseaux de Petri )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Janvier 1984. [65] J.-P. Elloy. (( Génie informatique et exécutif temps-réel )). Dans les proceedings d'AGIS'97 (Automatique-Génie Informatique-Image-Signal), volume Conférence Invitée, Colloque de Recherche Doctorale, Angers (France), Décembre 1997. 144 Références bibliographiques et bibliographie [66] S.E. Elmaghraby. (( Activity Networks )). John Wiley & Sons, New York (États-Unis), 1977. [67] S. Engell. (( Modelling and analysis of hybrid systems )). Dans les proceedings de second MathMod (IMACS Symposium on Mathematical Modeling), pages 1731, Vienne (Autriche), Février 1997. [68] J. Erschler et P. Esquirol. (( Decision aid in job-shop scheduling: a knowledge based approach )). Dans les poceedings de IEEE International Conference on Robotics and Automation, pages 16511656, San Francisco (États-Unis), 1986. [69] J. Erschler, G. Fontan et C. Mercé. (( Approche par contrainte en planication et ordonnancement de la production )). RAIRO APII, 27(6):669695, 1993. [70] P. Esteban, C. Briand et M. Courvoisier. (( Integration of the real time levels of a multilevel hierarchical control: application to a exible assembly cell )). Dans les proceedings d'IEEEISIE'93 (International Symposium on Industrial Electronics), pages 407412, Budapest (Hongrie), Juin 1993. [71] J. Ezpeleta et J.M. Colom. (( Automatic synthesis of colored Petri nets for the control of FMS )). IEEE Transaction on Robotics and Automation, 13(3):327337, 1997. [72] J. Ezpeleta, J.M. Colom et J. Martínez. (( A Petri net based deadlock prevention policy for exible manufacturing systems )). IEEE Transaction on Robotics and Automation, 11(2):173184, 1995. [73] J. Ezpeleta, J.M. Couvreur et M. Silva. (( A new technique for nding a generating family of siphons, traps and st-components )). Application to colored Petri nets, volume 674, pages 6473, Springer-Verlag, 1993. [74] J.-M. Flaus. (( Hybrid ow nets for batch process modelling )). Dans les proceedings de IEEE-SMC-CESA'96, Symposium on Discrete Events and Manufacturing Systems, pages 273278, Lille (France), Juillet 1996. [75] H.J. Genrich. (( Predicate/transition nets )). Lecture Notes in Computer Science, SpringerVerlag, 1987. [76] H.J. Genrich, H.-M. Hanisch et K. Wöllhaf. (( Verication of recipe-based control procedures by means of predicate-transition nets )). Application an Theory of Petri Nets, SpringerVerlag LNCS 815, pages 278297, Zaragoza (Espagne), Juin 1994. [77] H.J. Genrich et J. Schuart. (( Modelling and verication of hybrid systems using hierarchical coloured Petri nets )). Dans les proceedings d'ADPM'98 (Automatisation des Processus Mixtes), pages 1724, Reims (France), Mars 1998. [78] A. Giua et F. DiCesare. (( Petri net structural analysis for supervisory control )). IEEE Transactions on Robotics and Automation, 10(2):185195, 1994. [79] M. Gomaa. (( Représentation et supervision des systèmes hybrides par réseaux de Petri )). Thèse de doctorat, Institut National Polytechnique de Grenoble (France), Juillet 1997. [80] M.M. Gomaa et S. Gentil. (( Hybrid industrial dynamical system supervision via hybrid continuous causal Petri nets (hc2pns) )). Dans les proceedings de IEEE-SMC-CESA'96, Symposium on Discrete Events and Manufacturing Systems, pages 285290, Lille (France), Juillet 1996. Références bibliographiques et bibliographie 145 [81] M. Gondran et M. Minoux. (( Graphes et Algorithmes )). Eyrolles, Paris (France), 1984. [82] W.R. Goodall et R. Roy. (( Short term scheduling and control in the batch process industry using hybrid knowledge based simulation )). International journal of Production Research, 34(2):3350, 1996. [83] GOTHA. (( Les problèmes d'ordonnancement )). Recherche Opérationnelle, 27(1):77 150, 1993. [84] H.-M. Hanisch. (( Analysis of place-transition nets with timed arcs and its application to batch process control )). Dans les proceedings d'International Conference on Theory and Application of Petri Nets, pages 282299, Springer-Verlag LNCS 691, Chicago (États-Unis), Juin 1993. [85] H.-M. Hanisch et S. Fleck. (( A ressource allocation scheme for exible batch plants based on high-level Petri nets )). Dans les proceedings de IEEE-SMC-CESA'96, Symposium on Discrete Events and Manufacturing Systems, pages 303308, Lille (France), Juillet 1996. [86] N. Ishii et M. Muraki. (( An extended dispatching rule approach in an on-line scheduling framework for batch process management )). International journal of Production Research, 34(2):329348, 1996. [87] C. Jallut et G. Gilles. RGE, (6), Juin 1990. (( Automatique, productique et procédés chimiques discontinus )). [88] M. D. Jeng et F. DiCesare. (( A review of synthesis techniques of Petri nets with applications to automated manufacturing systems )). IEEE Transactions on Systems, Man and Cybernetics, 23(1):301312, 1993. [89] K. Jensen. (( Coloured Petri nets. Basic concepts, analysis methods and practical use )). Basic Concepts of Monographs in Theorical Computer Science, volume 1, Springer-Verlag, 1992. [90] K. Jensen. (( Coloured Petri nets. Basic concepts, analysis methods and practical use )). Analysis Methods of Monographs in Theorical Computer Science, volume 2, SpringerVerlag, 1994. [91] K. Jensen et G. Rozenberg. (( High-level Petri nets: theory and application )). Prentice Hall International, 1992. [92] G.S. Joglekar et G.V. Reklaitis. (( A simulator for batch and semi-continuous processes )). Computer & Chemical Engineering, 8:315327, 1984. [93] S. Julia. (( Conception et pilotage des cellules exibles à fonctionnement répétitif modélisés par réseaux de Petri )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Juillet 1997. [94] S. Julia, R. Valette et M. Tazza. (( Analysis of the behavior of a manufacturing cell with cyclic feeding policies )). Dans les proceedings de International Conference on Systems, Man, and Cybernetics, volume 2, pages 16831688, San Antonio (États-Unis), Octobre 1994. [95] S. Julia, R. Valette et M. Tazza. (( Computing a feasible schedule under a set of cyclic constraints )). Dans les proceedings de Second International Conference on Industrial Automation, pages 141146, Nancy (France), Juin 1995. 146 Références bibliographiques et bibliographie [96] W. Khansa. (( Réseaux de Petri p-temporels contribution à l'étude des systèmes à évènements discrets )). Thèse de doctorat, Université de Savoie, Annecy (France), 1997. [97] W. Khansa, P. Aygalinc et J.P. Denat. (( Structural analysis of p-time Petri nets )). Dans les proceedings de IEEE-SMC-CESA'96, Symposium on Discrete Events and Manufacturing Systems, pages 127136, Lille (France), Juillet 1996. [98] W. Khansa, J.P. Denat et S. Collart-Dutilleul. (( P-time Petri nets for manufacturing systems )). Dans les proceedings de Wodes'96 (International Workshop on Discret Event Systems), pages 94102, Edinburgh (Royaume-Unis), Août 1996. [99] E. Kondili, C.C. Pantelides et R.W. Sargent. (( A general algorithm for short-term scheduling of batch operations-i. Milp formulation )). Computers & Chemical Engineering, 17(2):211227, 1993. [100] O. Korbaa, H. Camus et J.-C. Gentina. (( FMS cyclic scheduling with overlapping production cycles )). Dans les proceedings d'ICATPN'97 (International Conference on Application and Theory of Petri Nets), Workshop on Manufacturing and Petri Nets, pages 3552, Toulouse (France), Juin 1997. [101] J.-M. Kubek. (( Introduction des réseaux à prédicats contraints. Instanciation au domaine temporel. Application à la maîtrise des aléas sémantiques ADA )). Thèse de doctorat, INSA de Toulouse (France), 1994. [102] C. Lansade et P. Tayrac. (( Simulation mixte )). Projet ANVAR TLS 0089, Pau (France), Janvier 1997. [103] J. Le Bail, H. Alla et R. David. (( Réseaux de Petri hybrides )). RAIRO APII. [104] J. Le Bail, H. Alla et R. David. (( Hybrid Petri net )). Dans les proceedings de European Control Conference, Grenoble (France), Juillet 1991. [105] A. Le Gall. (( Un système interactif d'aide à la décision pour l'ordonnancement et le pilotage en temps-réel d'atelier )). Thèse de doctorat, ENSEEIHT, Toulouse (France), Décembre 1989. [106] D.Y. Lee et F. DiCesare. (( Scheduling exible manufacturing systems using Petri nets and heuristic search )). IEEE Transaction on Robotics and Automation, 10(2):123132, Avril 1994. [107] A. Lefort et P. Yim. (( The hypernets: a new modelling tool )). Dans les proceedings de IEEE-SMC-CESA'96, Symposium on Discrete Events and Manufacturing Systems, pages 3035, Lille (France), Juillet 1996. [108] M. Lemmon, K. He et C.J. Bett. (( Modeling hybrid control systems using programmable timed Petri nets )). Dans les proceedings d'ADPM'98 (Automatisation des Processus Mixtes), pages 177184, Reims (France), Mars 1998. [109] Z.H. Liu et S. Macchietto. (( Dynamic modelling and simulation of a multi-purpose batch pilot plant )). Dans les proceedings d'AD CHEM'94, Kyoto (Japon), Mai 1994. [110] P. Lopez. (( Approche énergétique pour l'ordonnancement de tâches sous contraintes de temps et de ressources )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Septembre 1991. Références bibliographiques et bibliographie 147 [111] P. Merlin. (( Methodology for the design and implementation of communication protocols )). IEEE Transaction on Communications, 24(6), 1979. [112] J.O. Moody et P.J. Ansalkis. (( Petri net supervisors for DES in the presence of uncontrollable and unobervable transitions )). Dans les proceedings de thirty third Annual Allerton House, Monticello, Octobre 1995. [113] J.O. Moody, P.J. Antsaklis et M.D Lemmon. (( Automated design of a Petri net feedback controller for a robotic assembly cell )). Dans les proceedings d'IEEE-ETFA'95 (Synposium on Emerging Technologies and Factory Automation), volume 2, pages 117128, Paris (France), Octobre 1995. [114] T. Murata. (( Petri-nets: properties, analysis and applications )). Dans les proceedings d'IEEE, 77(4):541580, 1989. [115] E. Niel, N. Rezg, J.-M. Diosse et J. Fravel. (( Système de commande-supervision orienté sécurité opérationnelle )). APII, 28(5):539549, Juin 1994. [116] H. Ohl. (( Fonctionnements répétitifs de systèmes exibles de production manufacturière : analyse et optimisation des performances à l'aide des réseaux de Petri )). Thèse de doctorat, Université de Lille I, (france), Septembre 1995. [117] H. Ohl, E. Castelain et J.-C. Gentina. (( Synchrony theory applied to control problems in exible manufacturing systems )). Dans les proceedings de International Conference on Systems, Man, and Cybernetics, volume 2, pages 16891694, San Antonio (États-Unis), Octobre 1994. [118] A. Pagès et H. Pingaud. (( Un outil d'aide à l'ordonnancement d'ateliers batchs à production continue )). Dans les proceedings d'ADMP'94 (Automatisation des Processus Mixtes), Bruxelles (Belgique), Novembre 1994. [119] A. Pagès et H. Pingaud. (( An hybrid process model based on Petri nets applied to short term scheduling of batch-semi continuous plants )). Dans les proceedings d'ADEDOPS (Analysis and Design of Event-Driven Operation in Process Systems), Londres (Angleterre), Avril 1995. [120] C.C. Pantelides. (( Modelling, simulation and optimisation of hybrid processes )). Dans les proceedings d'ADEDOPS (Analysis and Design of Event-Driven Operation in Process Systems), Londres (Angleterre), Avril 1995. [121] C.C. Pantelides, D. Gritsis, K.R. Morison et R.W.H. Sargent. (( The mathematical modelling of transient systems using dierential-algebraic equations )). Computers & Chemical Engineering, 12(5):449454, 1988. [122] J.L. Peterson. (( Petri net theory and the modeling of systems )). Prentice-Hall, 1981. [123] C. Petri. (( kommunication mit Automaten )). PhD thesis, University of Bonn (Allemagne), 1962. [124] M. Pia Fanti, B. Maione, S. Mascolo et B. Turchiano. ((Event-based feedback control for deadlock avoidance in exible production systems )). IEEE Transactions on Robotics and Automation, 13(3):347363, 1997. 148 Références bibliographiques et bibliographie [125] H. Pierreval. (( La simulation de fonderies : une modèlisation combinée discrète-continue )). Dans les proceedings de SEE-IBRA-AFCET-ADMP'94 (Automatisation des Processus Mixtes), pages 159165, Bruxelles (Belgique), Novembre 1994. [126] H. Pingaud et R. Valette. (( L'approche réseau de Petri dans le cadre de la simulation, de l'optimisation et de la conduite des procédés batchs )). Dans les proceedings de SIMO'96 (Simulation-Optimisation Commande), volume 10-1996, pages 3968, Toulouse (France), Octobre 1996. [127] H. Pingaud et R. Valette.(( Simulation, optimisation et conduite des procédés batchs : la place et le rôle des modèles à évènements discrets )). Dans les proceedings des Journées D'Études SEE, Pôle Productique Rhônes-Alpes, Février 1996. [128] L. Puigjaner, A. Huercio et A. Espuna. (( Batch production control in a computer integrated manufacturing environment )). Journal of Process Control, pages 281290, Novembre 1994. [129] A. Puri. (( Theory of hybrid systems and discrete event systems )). PhD thesis, University of California at Berkeley (États-Unis), 1995. [130] Y. Quénec'hdu et J. Buisson. (( Le génie automatique dans l'automatisation des processus continus )). RGE, (4/92):6166, Avril 1992. [131] M.P. Rakotoson, C. Vercauter et J.-C. Gentina. (( Analyse des systèmes de production dits continus-discrets et critères de hiérarchisation du niveau coordination/supervision )). Dans les proceedings d'ADPM'92 (Automatisation des Processus Mixtes), pages 1122, Janvier 1992. [132] P.J.G. Ramadge et W.M. Wonham. (( The control of discrete event systems )). Dans les proceedings d'IEEE, volume 77, pages 8197, Janvier 1989. [133] C. Ramchandani. (( Analysis of asynchronous concurrent systems by timed Petri nets )). PhD thesis, Massachussetts Institute of Technology, Cambridge (États-Unis), Février 1974. [134] C. Reutenauer. (( The Mathematics of Petri Nets )). Masson and Prentice Hall International, 1990. [135] N. Rezg. (( Contribution à la sécurité opérationnelle des systèmes : mise en ÷uvre d'une structure de surveillance basée sur les réseaux de Petri objets contrôlés )). Thèse de doctorat, INSA Lyon (France), Janvier 1996. [136] N. Rezg et E. Niel. (( Monitoring system for discret event systems using failure-tolerance techniques )). Dans les proceedings d'IEEE-ETFA'95 (Synposium on Emerging Technologies and Factory Automation), volume 2, pages 383391, Paris (France), Octobre 1995. [137] N. Rezg, E. Niel et J.M. Diosse. (( Operational safety measures using failure-tolerance techniques )). Computer Integrated Manufacturing and Automation Technology, pages 423428, Troy, Octobre 1994. [138] N. Rezg, E. Niel et A. Jutard. (( Commande et surveillance des systèmes à évènements discrets à fonctionnement sûr )). Dans les proceedings de La Productivité dans un Monde sans Frontières, pages 3544, Montréal (Canada), Octobre 1995. Références bibliographiques et bibliographie 149 [139] P. Richard. (( Contribution des réseaux de Petri à l'étude de problèmes de recherche opérationnelle )). Thèse de doctorat, Université François Rabelais, Tours (France), Décembre 1997. [140] P. Richard et C. Proust. (( Petri nets for modelling linear programs )). Dans les proceedings de IEEE-SMC-CESA'96, Symposium on Discrete Events and Manufacturing Systems, pages 3641, Lille (France), Juillet 1996. [141] D.W.T. Rippin. (( Batch process systems engineering: a retrospective and prospective review )). Computers & Chemical Engineering, Suppl., 17:S1S13, 1993. [142] B. Roy. (( Algèbre Moderne et Théorie des Graphes )). Dunod, volume II, Paris (France), 1984. [143] A.-E.-K. Sahraoui. (( Contribution à la commande et à la surveillance d'ateliers exibles )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Octobre 1987. [144] C. Sibertin-Blanc. (( High-level Petri nets with data structures )). Dans les proceedings de Applications and Theory of Petri Nets (Finlande), Juin 1985. [145] M. Silva et R. Valette. (( Petri nets and exible manufacturing )). Advances in Petri nets 1989, pages 374417, Springer Verlag LNCS 424, 1990. [146] M. Tittus. (( Control synthesis for batch processes )). PhD thesis, Chalmers University of Technology, Göteborg (Suéde), 1995. [147] C. Valentin. (( Contribution à la modélisation et à la conduite des procédés mixtes (continusdiscrets) : application à l'industrie papetière )). Thèse de doctorat, Institut National Polytechnique de Grenoble (France), Février 1993. [148] C. Valentin et P. Ladet. (( Flow modelling in a class of hybrid (continuous-discrete) systems )). Dans les proceedings d'IEEE-SMC (International Conference on Systems, Man and Cybernetics), Le Touquet (France), Octobre 1993. [149] C. Valentin, P. Ladet et J. Ruiz. (( A generic Petri net based model for paper mills nishing process )). Dans les proceedings d'IFAC-IFIP-IFORS-ISPE-INCOM-92 (symposium sur les prolèmes de contrôle de l'information en technologie de fabrication), Toronto (Canada), Mai 1992. [150] R. Valette. (( Coordination problems in FMS control systems )). Coordination Management by Means of Petri Nets, Modena (Italie), Avril 1988. [151] R. Valette. (( Les réseaux de Petri )). Cours de R. Valette, Septembre 1995. [152] R. Valette. (( Petri nets for control and monitoring: specication, verication and implementation )). Dans les proceedings d'ADEDOPS (Analysis and Design of Event-Driven Operation in Process Systems), Londres (Angleterre), Avril 1995. [153] R. Valette, R. Champagnat, D. Andreu et H. Pingaud. (( Modélisation des systèmes de production hybrides )). Dans les proceedings d'AGIS'97 (Automatique-Génie InformatiqueImage-Signal), volume Conférence Invitée, Colloque de Recherche Doctorale, Angers (France), Décembre 1997. 150 Références bibliographiques et bibliographie [154] R. Valette et L.A. Künzle. (( Réseaux de Petri pour la détection et le diagnostic )). Journée d'Etudes Sûreté, Surveillance, Supervision : Détection et Localisation de Défaillances, Groupement de Recherche Automatique, Paris (France), Novembre 1994. [155] R. Valette, H. Pingaud, A. Pagès, D. Andreu et J.-C. Pascal. (( Modeling, simulation and control of event-driven operation in process systems )). Dans les proceedings d'IEEEETFA'95, volume 3, pages 119128, Paris (France), Octobre 1995. [156] W.M.P. van der Aalst. (( Interval timed coloured Petri nets and their analysis )). Application and Theory of Petri Nets, pages 453472. Springer-Verlag LNCS 691, 1993. [157] N. Viswanadham, Y. Narahari et T.L. Johnson. (( Deadlock prevention and deadlock avoidance in exible manufacturing systems using Petri net models )). IEEE Transactions on Robotics and Automation, 6(6):713723, 1990. [158] R. Wieting et M. Sonnenschein. (( Extending high-level Petri nets for modeling hybrid systems )). Dans les proceedings d'IMACS Synposium on System Analysis and Simulation, volume 18-19, pages 259262, Berlin (Allemange), Juin 1995. [159] E.C. Yamalidou, E.P. Patsidou et J.C. Kantor. (( Modeling discrete-event dynamical systems for chemical process control - a survey of several new techniques )). Computers & Chemical Engineering, 14(3):281299, 1990. [160] K. Yamalidou, J. Moody, M. Lemmon et P. Antsaklis. (( Feedback control of Petri nets based on place invariants )). Automatica, 32(1):1528, 1996. [161] P. Yim, A. Lefort et A. Hébrard. (( System modelling with hypernets )). Dans les proceedings d'IEEE-ETFA'95, volume 1, pages 3747, Paris (France), Octobre 1995. [162] E. Zamaï. (( Architecture de surveillance-commande pour les systèmes à évènements discrets complexes )). Thèse de doctorat, Université Paul Sabatier, Toulouse III (France), Septembre 1997. Thèse de Ronan CHAMPAGNAT Titre : Supervision des systèmes discontinus : dénition d'un modèle hybride et pilotage en temps-réel. Résumé : Cette thèse traite de la supervision des systèmes discontinus. Ce sont des systèmes qui transforment une matière première de type continu par l'intermédiaire d'équipements continus ou discontinus travaillant par lots. Après avoir rappelé le cas discret, nous présentons les particularités des systèmes discontinus. Cette étude nous permet de bien spécier les besoins pour la modélisation et d'étudier les extensions des réseaux de Petri pouvant représenter des systèmes hybrides. Ensuite, nous dénissons formellement un modèle hybride, basé sur la combinaison d'un réseau de Petri prédicatstransitions et de systèmes d'équations diérentielles algébriques : les réseaux prédicats-transitions-diérentiels. Les interactions entre les deux outils mathématiques sont formellement dénies par l'introduction de fonctions de sensibilisation (tests sur les variables continues) et de jonction (calculs des valeurs initiales des variables continues). An de faciliter l'obtention d'un modèle dans le cadre des systèmes de grande taille, nous dénissons formellement la fusion statique et la fusion dynamique de transitions dans le cadre des réseaux ordinaires et prédicats-transitionsdiérentiels. Puis nous donnons un ensemble de dénitions permettant de garantir qu'un modèle est calculable s'il est composé de sous-modèles calculables. Il est alors possible d'avoir une approche modulaire pour l'obtention d'un modèle. À titre d'exemple un système de stockage de gaz est présenté. Cette étude se termine par la présentation d'un algorithme de simulation des réseaux prédicats-transitions-diérentiels. Dans la dernière partie, nous traitons la problématique de la supervision des systèmes discontinus. Dans un premier temps nous comparons les graphes potentiels et les réseaux de Petri, ce qui nous permet de mettre en évidence un ensemble de contraintes venant du niveau ordonnancement et devant être pris en compte pour le pilotage en temps-réel du système. Puis dans un second temps nous proposons une approche pour le pilotage en temps-réel. Mots-clés : réseaux de Petri, approche modulaire, modélisation hybride, simulation, systèmes discontinus, graphes potentiels, pilotage en temps-réel, supervision. Title: Supervision of batch systems: denition of a hybrid model and real-time control Abstract: This thesis deals with the supervision of batch systems. These systems transform a continuous raw material through continuous and batch equipments. Beginning by a presentation of the supervision in the discrete case, it follows by the presentation of the specicities of batch systems. From this study, the modeling requirements are specied. And the extension of Petri nets to model hybrid systems are studied. Then, a hybrid model is formally dened: dierential-predicate-transition nets. It is based on the coupling of a predicate-transition net and a set of dierential algebraic equations. Interactions between the two formalisms are formally dened by introducing enabling functions (test of continuous variables) and junction functions (compute the initial values of continuous variables). In order to deduce a model for large systems, static and dynamic transition merging are formally dened for ordinary and dierential-predicate-transition nets. Then a set of restrictions, in order to guarantee that a model can be computed if it is composed of computable sub-models, is given. It is thus possible to have a modular approach to obtain a model. For instance a gas storage example is presented. This study is completed by a presentation of a simulation algorithm for dierential-predicate-transition nets. The last part deals with the supervision of batch systems. First, activity-on-arc graphs and Petri nets are compared. A set of constraints coming from the scheduling level, and that should be taken into account for real-time control, is then deduced. Second, an approach for supervisory control is proposed. Keywords: Petri nets, modular approach, hybrid modeling, simulation, batch systems, activity-on-arc graphs, supervisory control, supervision.