0% ont trouvé ce document utile (0 vote)
18 vues389 pages

Item

Transféré par

Fatiha HAMDI
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
18 vues389 pages

Item

Transféré par

Fatiha HAMDI
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

CONCEPTION PAR COMPOSANTES DE CONTRÔLEURS

D'USINES MODULAIRES UTILISANT


LA THÉORIE DU CONTRÔLE SUPERVISÉ

par

Daniel Côté

thèse présentée au Département d'informatique en vue


de l'obtention du grade de docteur es sciences (Ph.D.)

FACULTÉ DES SCIENCES


m UNIVERSITÉ DE
t£l SHERBROOKE

Sherbrooke, Québec, Canada, Juin 2011


Library and Archives Bibliothèque et
Canada Archives Canada
Published Héritage Direction du
Branch Patrimoine de l'édition

395 Wellington Street 395, rue Wellington


Ottawa ON K1A 0N4 OttawaONK1A0N4
Canada Canada
Yourfile Votre référence
ISBN: 978-0-494-83278-3

Our file Notre référence


ISBN: 978-0-494-83278-3

NOTICE: AVIS:
The author has granted a non- L'auteur a accordé une licence non exclusive
exclusive license allowing Library and permettant à la Bibliothèque et Archives
Archives Canada to reproduce, Canada de reproduire, publier, archiver,
publish, archive, préserve, conserve, sauvegarder, conserver, transmettre au public
communicate to the public by par télécommunication ou par l'Internet, prêter,
télécommunication or on the Internet, distribuer et vendre des thèses partout dans le
loan, distrbute and sell thèses monde, à des fins commerciales ou autres, sur
Worldwide, for commercial or non- support microforme, papier, électronique et/ou
commercial purposes, in microform, autres formats.
paper, electronic and/or any other
formats.

The author retains copyright L'auteur conserve la propriété du droit d'auteur


ownership and moral rights in this et des droits moraux qui protège cette thèse. Ni
thesis. Neither the thesis nor la thèse ni des extraits substantiels de celle-ci
substantial extracts from it may be ne doivent être imprimés ou autrement
printed or otherwise reproduced reproduits sans son autorisation.
without the author's permission.

In compliance with the Canadian Conformément à la loi canadienne sur la


Privacy Act some supporting forms protection de la vie privée, quelques
may hâve been removed from this formulaires secondaires ont été enlevés de
thesis. cette thèse.

While thèse forms may be included Bien que ces formulaires aient inclus dans
in the document page count, their la pagination, il n'y aura aucun contenu
removal does not represent any loss manquant.
of content from the thesis.

Canada
Sommaire

La complexité croissante des processus industriels et de leurs systèmes de contrôle rend


de plus en plus attrayant l'usage des méthodes formelles pour leur conception. Plusieurs
méthodes ont été mises au point tant pour la synthèse que pour la vérification, utilisant di-
vers formalismes pour la modélisation de problèmes de contrôle et le raisonnement. Lors-
qu'un processus peut être modélisé sous forme d'un système à événements discrets, la
théorie du contrôle supervisé, originalement formulée par Ramadge et Wonham, offre une
base formelle intéressante pour la spécification de problèmes de contrôle car elle permet,
par l'application de procédures de synthèse, d'obtenir automatiquement un contrôleur pour
le processus. La théorie souffre cependant d'un problème d'explosion combinatoire puis-
qu'elle utilise des automates d'états finis comme formalisme de modélisation. Plusieurs
investigations se sont concentrées sur les moyens de mitiger ce problème en prenant avan-
tage, soit de la structure des systèmes modélisés, soit des propriétés de leur spécification.
Il en résulte plusieurs formes de la théorie dont, entre autres, les variantes modulaire, ré-
partie et hiérarchique. D'autre part, certains efforts de recherche se sont concentrés sur le
problème de l'implémentation des contrôleurs obtenus par les procédures de synthèse de
la théorie. Il existe donc à ce jour plusieurs implémentations de ces procédures couvrant
toutes les variantes de la théorie. Mais il ne semble pas y avoir encore d'environnement
couvrant le processus de conception au complet. Le problème est encore plus aigu si l'on
considère que la phase de modélisation est en général mal définie, voire même ignorée, dans
ces implémentations. La présente thèse se propose de dégager les principes permettant de
concevoir un environnement couvrant l'ensemble du processus d'ingénierie de contrôleurs
dans le cadre de la théorie du contrôle supervisé, intégrant un outillage adéquat pour les
trois phases du processus : modélisation, synthèse et génération de code.

1
Le 10 juin 2011

le jury a accepté la thèse de Monsieur Daniel Côté


dans sa version finale.

Membres du jury

Professeur Richard St-Denis


Directeur de recherche
Département d'informatique

Professeur Ahmed Khoumsi


Évaluateur externe au programme
Département de génie électrique et de génie informatique
Faculté de génie

Professeur Jules Desharnais


Évaluateur externe
Département d'informatique et de génie logiciel
Université Laval

Professeur Marc Frappier


Président rapporteur
Département d'informatique
Remerciements

J'adresse mes remerciements les plus sincères à mon directeur de thèse M. Richard
St-Denis de l'Université de Sherbrooke pour son soutien indéfectible. Non seulement a-
t-il révisé le texte de cette thèse avec une constance et une minutie exemplaires mais il a
souvent été une source de commentaires critiques très précieuse. Je le remercie aussi pour
le soutienfinancierqu'il m'a apporté à même ses propres fonds de recherche.

11
Abréviations

AFD Automate fini déterministe.


BDD, IDD et MDD Binary Décision Diagram (voir [ 12]), lnteger Décision Diagram (voir
[26]) et Multi-valued Décision Diagram (voir [30]) ; structures de données de la fa-
mille des diagrammes de décision.
DSFBC De l'anglais Dynamic State Feed-Back Control ou Dynamic SFBC ; loi de contrôle
de type SFBC (voir ci-après) dans laquelle on modélise explicitement les éléments
de mémoire.
HISC De l'anglais Hierarchical Interface-basedSupervisory Control une variante hiérar-
chique de la théorie du contrôle supervisé (voir [35, 38]).
PLC De l'anglais Programmable Logic Controller ; en français, automate programmable.
ROBDD et ROMDD Reduced Ordered Binary Décision Diagram (voir [12]) et Reduced
Ordered Multi-valued Décision Diagram (voir [30]).
SCT De l'anglais Supervisory Control Theory ; théorie du contrôle supervisé.
SED Systèmes à événements discrets, en anglais Discrete-Event Systems et aussi parfois
Discrète Event Dynamic Systems.
SFBC De l'anglais State Feed-Back Control; loi de contrôle basée sur une fonction de
rétroaction définie sur l'espace des états que peut prendre un système à événements
discrets.
STS De l'anglais State Tree Structures ; structures arborescentes représentant des familles
de configurations au sens donné par D. Harel et M. Politi dans [27] pour décrire les
états d'un système représenté à l'aide de statecharts.

m
Table des matières

Sommaire i

Remerciements ii

Abréviations iii

Table des matières iv

Liste des tableaux ix

Liste des figures x

Introduction 1

1 Théorie du contrôle supervisé 13


1.1 Préliminaires 13
1 1 1 Ç - w c t à r v i o o à é i r o n û m p n t c n i c ^ » * « f c <=*+ l o n r r f i r r o c 1 A.

M. , l . i. kJ V J l V t l l V O t* «-* * V l l V i l l V l l i t » U l J V l ^ l i J wi- t e t i X ^ t ^ ^ ^ ^ » x i

1.1.2 Composition de langages 15


1.1.3 Système à événements discrets comme générateur de langages . . . 16
1.1.4 Notions relatives aux générateurs finis 18
1.2 Supervision et contrôle 20
1.2.1 Existence de superviseurs 21
1.2.2 Sous-langages contrôlables et contrôle optimal 24
1.3 Synthèse de superviseurs et contrôleurs 26
1.3.1 Superviseurs adéquats 26
iv
TABLE DES MATIÈRES

1.3.2 Synthèse de superviseurs adéquats 28

2 Variantes de la théorie du contrôle supervisé 31


2.1 Synthèse modulaire 31
2.2 Contrôle sous observation partielle 35
2.3 Contrôle hiérarchique 36
2.3.1 Préliminaires 36
2.3.2 Modèle du contrôle hiérarchique 42
2.3.3 La propriété d'observateur d'une projection 47
2.3.4 Contrôle hiérarchique non bloquant 58
2.3.5 Implémentation d'un contrôle hiérarchique non bloquant 61
2.4 Contrôle hiérarchique par interface 63
2.5 Approche états ou modèle avec prédicats 66
2.6 Méthodes symboliques en synthèse de contrôleurs 70
2.6.1 Diagramme de décision 71
2.6.2 Diagramme de décision en synthèse de contrôleurs 74
2.7 Structures en arborescence d'états 75
2.7.1 L'outil de modélisation STS 75
2.7.2 Synthèse utilisant des STS 85
2.7.3 Usage de BDD en synthèse avec des STS 87
2.8 Approche par agrégation d'états 90
2.8.1 Calcul d'observateurs d'un SED 92
2.8.2 Notion d'automate partition 97

3 Composantes réutilisables pour SCT 103


3.1 Position du problème et grille d'analyse 105
3.1.1 Notion intuitive de composante réutilisable 106
3.1.2 Composantes réutilisables en modélisation et en synthèse 114
3.1.3 Composantes réutilisables et implémentation de contrôleurs . . . . 119
3.2 Contrôle de STS 123
3.2.1 Les avantages du contrôle de STS 124
3.2.2 Composantes réutilisables et contrôle de STS 125

v
TABLE DES MATIÈRES

3.2.3 Sommaire d'analyse 136


3.3 Contrôle hiérarchique par interface 137
3.3.1 Les avantages de HISC 138
3.3.2 Composantes réutilisables et HISC 140
3.3.3 Sommaire d'analyse 145
3.4 Contrôle hiérarchique 149
3.4.1 Les avantages du contrôle hiérarchique 150
3.4.2 Composantes réutilisables en contrôle hiérarchique 152
3.4.3 Sommaire d'analyse 165
3.5 Solution proposée 168

4 Modélisation de problèmes de contrôle 172


4.1 Modélisation de sous-système 174
4.1.1 Éléments d'un sous-système 174
4.1.2 Dynamique d'un sous-système 185
4.2 Modélisation de composantes 191
4.2.1 Règles et conventions 191
4.2.2 Composantes élémentaires 199
4.2.3 Composantes mixtes 203
4.3 Processus global de conception 220

5 Étude de cas, le MPS 222


5.1 Sous-système DStn, la station de livraison 223
5.2 Sous-système TSin, ia station de test 229
5.3 Sous-système PStn, la station d'usinage 234
5.4 Assemblage du système 243

Conclusion 246

A Résultats sur le contrôle non bloquant 251

B Quelques propriétés des projections causales 260


B.l Propriétés fondamentales 260

VI
TABLE DES MATIÈRES

B.2 Absence de couplage de contrôle 262


B.3 Coïncidence du contrôle 266
B.4 Lois de contrôle synchrones 269
B.5 Projections et systèmes disjoints 272
B.6 Composition fonctionnelle d'observateurs 277

C Abstraction en contrôle hiérarchique 278


Cl Consistance du contrôle 278
C.2 Synthèse non bloquante 285
C.3 Règles de construction de la projection 287
C.4 Composition synchrone d'abstractions 292

D Inventaire de composantes réutilisables 297


D.l Composantes élémentaires 299
D.l.l Jacklll 299
D.1.2 JacklllSS 300
D.1.3 Jacklllcdcr 300
D.1.4 Jacklllcd 302
D.1.5 Jacklllcr 304
D.1.6 JackllO 304
D.1.7 JacklOl 307
D.1.8 JacklOO 309
D.1.9 Jack211a 311
[Link] Jack2iîb 3Î3
D.l.l 1 ADRelay 314
D.l.12 SDRelay 317
D.l.13 NDRelay 318
D.l.14 ODTimer 321
D.l.15 Injector 323
D.l.16 Stepper 325
D.l. 17 SuctionCupetSuctionCupCC 326
D.2 Composantes mixtes 328

vu
TABLE DES MATIÈRES

D.2.1 LRCrane et BLRCrane 328


D.2.2 Drill 329
D.2.3 MicroMeter 331
D.2.4 PSTester 334
D.2.5 TSCvrDrv 337
D.2.6 EHook 340
D.2.7 FEHook 343
D.2.8 TOCrane 347
D.2.9 HSCrane 351
D.2.10 FHTOCrane 354
D.2.11 FHHSCrane 358
D.3 Sommaire 361

Bibliographie 367

vin
Liste des tableaux

5.1 Sous-système DStn, modèle de la projection G 226

D.l Complexité des composantes élémentaires 362


D.2 Complexité des composantes mixtes 363

IX
Liste des figures

1.1 Modèle de rétroaction par générateur 29

2.1 Structure d'un contrôle hiérarchique 43


2.2 Contrôle hiérarchique bloquant 48
2.3 Modèles de la paire (L, 6) 55
2.4 Éléments architecturaux de HISC 64
2.5 Diagramme de décision d'une fonction finie 72
2.6 Modèle du problème Small Factory 77
2.7 Arborescence d'états 77
2.8 Arborescence d'états élémentaire 80
2.9 Structure d'un holon ([39] figure 2.13) 81
2.10 Schéma de la relation de transition d'un holon 82
2.11 Superposition de holons ([39] figure 2.17) 84
2.12 Générateur de Mealy pour G" 99
2.13 TT-AFD Trace-DC 101

3.1 Modélisation ad hoc d'un vérin à commande monostable 111


3.2 STS génériques pour la confection d'une grue 127
3.3 STS du sous-système Grue (comportement libre) 127
3.4 Spécification du sous-système Grue 128
3.5 Sous-système Grue (comportement contrôlé) 129
3.6 Holons de la Grue (comportement contrôlé) 131
3.7 Instance de comportement parallèle 133

x
LISTE DES FIGURES

3.8 Heuristiques de modélisation HISC 148


3.9 Hiérarchie pyramidale de composantes 157
3.10 Compositions horizontale, verticale et contrôle local 157
3.11 Abstraction d'un vérin à commande monostable 163

4.1 Modèle d'un sous-système 175


4.2 Modèle d'un sous-système (problème de contrôle) 179
4.3 Spécification de contrôle 180
4.4 Résultat de synthèse pour le sous-système Grue 183
4.5 Mémoire utilisant un registre à décalage 196
4.6 Minuterie de délai à la montée (schéma et application) 196
4.7 Minuteries mémorisées 198
4.8 Éléments de structure du sous-système Jackl 11 201
4.9 Composante Jackl 11, sous-système et projection 202
4.10 Composante Jackl 11, interface 202
4.11 Composition d'un sous-système (instanciation de composantes) 205
4.12 Composante mixte LRCrane (sous-système et projection) 208
4.13 Structure du sous-système LRCrane 209
4.14 Composante mixte Drill (assemblage du sous-système) 212
4.15 Composante mixte Drill (sous-système et projection) 213
4.16 Sous-système Drill (spécification de structure) 214
4.17 Sous-système Drill (spécification du contrôle) 215
4.18 Composante Drill (diagramme d'assemblage alternatif) 219

5.1 Sous-système DStn, diagramme d'assemblage 225


5.2 Sous-système DStn, détails du séquenceur 225
5.3 Sous-système DStn, et projection 226
5.4 Sous-système TStn, diagramme d'assemblage 229
5.5 Sous-système TStn, détails du séquenceur 230
5.6 Sous-système TStn et projection 231
5.7 Sous-système PStn, diagramme d'assemblage 235
5.8 Sous-système PStn, détails de SRO 236

xi
LISTE DES FIGURES

5.9 Sous-système PStn, détails de DMon, TMon et SRI 236


5.10 Sous-système PStn, détails et projection 237
5.11 Diagramme d'assemblage du système 244

B. 1 Couplage de contrôle 264


B.2 Délai de contrôle 267
B.3 Effet d'un délai de contrôle 268

D.l Composanteyac^7/7SS (sous-système et projection) 301


D.2 Composante Jackl 1 Icdcr (sous-système et projection) 301
D.3 Composante Jackl 11 cd (sous-système et projection) 303
D.4 Composante Jackl lier (sous-système et projection) 305
D.5 Composante Jackl 10 (sous-système et projection) 306
D.6 Composante Jackl 10 (modèle exhaustif du sous-système) 306
D.7 Composante Jackl01 (sous-système et projection) 308
D.8 Composante Jackl00 (sous-système et projection) 310
D.9 Composante Jack2l la (sous-système et projection) 312
D. 10 Composante Jacklllb (sous-système et projection) 315
[Link] Composante ADRelay (sous-système et projection) 316
D.l2 Composante SDRelay (sous-système et projection) 319
D.l3 Composante NDRelay (sous-système et projection) 320
D. 14 Composante ODTimer (sous-système et projection) 322
D.l5 Composante Injector (sous-système et projection) 324
D. 16 Composante Stepper (sous-système et projection) . . . 326
D. 17 Composante SuctionCup (sous-système et projection) 327
D. 18 Composante SuctionCupCC (sous-système et projection) 328
D. 19 Composante BLRCrane (sous-système et projection) 330
D.20 Composante MicroMeter (sous-système et projection) 332
D.21 Composante MicroMeter (diagramme d'assemblage) 332
D.22 Composante PSTester (diagramme d'assemblage) 335
D.23 Composante PSTester (sous-système et projection) 335
D.24 Composante TSCvrDrv (diagramme d'assemblage) 338

xu
LISTE DES FIGURES

D.25 Composante TSCvrDrv (sous-système et projection) 338


D.26 Composante EHook (diagramme d'assemblage) 340
D.27 Composante EHook (sous-système et projection) 341
D.28 Composante FEHook (diagramme d'assemblage) 343
D.29 Composante FEHook (sous-système et projection) 344
D.30 Composante TOCrane (diagramme d'assemblage) 348
D.31 Composante TOCrane (sous-système et projection) 348
D.32 Composante HSCrane (diagramme d'assemblage) 352
D.33 Composante HSCrane (sous-système et projection) 352
D.34 Composante FHTOCrane (diagramme d'assemblage) 354
D.35 Composante FHTOCrane (sous-système et projection) 355
D.36 Composante FHHSCrane (diagramme d'assemblage) 359
D.37 Composante FHHSCrane (sous-système et projection) 359

xm
Introduction

Le cycle de vie de plus en plus court des produits manufacturés accentue davantage la
nécessité d'utiliser des chaînes de montage modulaires contrôlées par logiciel et en consé-
quence la nécessité de produire rapidement des contrôleurs logiciels corrects etfiables[46],
[22]. À cette fin l'utilisation des méthodes formelles dans les applications de contrôle de
procédé peut procurer une aide appréciable car ces dernières se prêtent en général à la
génération automatique de code.
Les méthodes formelles se présentent sous forme de modèles mathématiques des sys-
tèmes permettant d'appliquer des techniques de raisonnement ainsi que des transformations
pour en effectuer la vérification ou la synthèse. La vérification réfère à une variété de tech-
niques servant à prouver qu'un programme, donné a priori, satisfait un ensemble de pro-
priétés. La synthèse utilise une série de procédures permettant la génération automatique,
ou systématique, de programmes satisfaisant par construction un ensemble de propriétés.
Ces deux types d'approche ont été appliqués à la réalisation de programmes pour automates
programmables (par exemple [5] pour la vérification et [33] pour la synthèse).
La théorie du contrôle supervisé (SCT - de l'anglais Supervisory Control Theory) est
une méthode formelle qui procure une base théorique intéressante pour la résolution de pro-
blèmes de contrôle applicables aux systèmes à événements discrets (SED) [45]. Un SED
est caractérisé par un espace d'états, un ensemble fini d'événements et une dynamique qui
s'exprime par occurrence d'événements discrets. On peut considérer qu'en fonctionnement
un SED génère des chaînes d'événements appartenant à un langage et à toute fin pratique
SCT modélise un SED par un automate d'étatsfinidéterministe (AFD). Pourfinde contrôle
Y alphabet d'événements est partitionné en deux sous-ensembles : les événements contrô-
lables dont on peut inhiber l'occurrence et les événements incontrôlables. Avec cet équipe-

1
INTRODUCTION

ment formel il est possible de concevoir des contrôleurs abstraits, appelés ici superviseurs,
qui exercent une action de contrôle par inhibition d'événements contrôlables.
SCT inclut plusieurs éléments permettant d'entrevoir la possibilité d'utiliser un envi-
ronnement intégré de conception de contrôleurs pour les systèmes de contrôle de procédés.
La modélisation des systèmes de contrôle de procédés sous forme de SED semble intuitive-
ment adéquate. La théorie comprend des procédures de synthèse permettant la génération
automatique de superviseurs corrects à partir de modèles formels du système et des requis
de contrôle qui s'y appliquent. Ces procédures sont déjà implémentées pour plusieurs va-
riantes de la théorie (par exemple TCT dans [62]). Cependant, bien que plusieurs efforts
fructueux aient été consentis dans cette direction (voir, entre autres, IDES [47] et Supremica
[2]), il n'existe encore aucun système intégré d'usage courant pour l'application de SCT à
l'ingénierie des systèmes de contrôle de procédés. Il est utile de s'interroger sur cet état des
faits.
La solution idéale à ce problème de transfert technologique passe probablement par
la génération automatique de code et par des outils spécialisés utilisant des représentations
formelles des systèmes et des requis de contrôle. Or Ekberg et Krogh dans [ 13] font ressortir
que les notations et les concepts impliqués représentent souvent une difficulté trop abrupte
pour les non-spécialistes de la théorie. Bien sûr l'expression des systèmes de contrôle sous
forme de SED est connue et utilisée dans la pratique (bien qu'elle n'y soit pas prédomi-
nante). Mais la spécification des requis de contrôle sous forme d'AFD se révèle très ardue,
particulièrement lorsque l'on tente d'aborder des problèmes d'une envergure réaliste (voir,
par exemple, [37]). En termes de pratique, il y a donc un malaise par rapport au formalisme
normalement utilisé en SCT pour la spécification des requis. Il y a lieu d'investiguer pour
tenter d'identifier un formalisme plus adéquat sans compromettre la possibilité de synthèse.
L'expression des systèmes à contrôler par des AFD nécessite habituellement une phase
de modélisation ad hoc. Il est en effet impossible de passer d'un dispositif physique à une
représentation formelle sans avoir recours à un certain nombre d'hypothèses sur son fonc-
tionnement (voir à ce sujet [33]). La théorie présume en général que tous les modèles sont
obtenus de cette façon sans jamais poser la question de la validité des modèles ainsi obte-
nus. Or la qualité d'une synthèse dépend directement de la qualité des modèles qui lui sont
soumis. Obtenir de bons modèles de façon ad hoc est un processus coûteux et on aurait

2
INTRODUCTION

avantage à pouvoir réutiliser ces modèles. Il y a d'ailleurs en général beaucoup de redon-


dance dans l'ensemble des composantes d'un système de contrôle (voir [13]). Le nombre
de types de dispositifs distincts est souvent assez restreint mais le nombre d'instances de
n'importe lequel de ces dispositifs dans un système peut erre assez important. De plus la
modélisation ad hoc a tendance à pousser les concepteurs à adapter leurs modèles au pro-
blème de contrôle à résoudre de sorte que, d'un concepteur à l'autre, deux modèles d'un
même dispositif peuvent s'avérer très différents.
La formulation d'une métaphore de composantes réutilisables, par exemple, peut ap-
porter un soulagement aux problèmes de la modélisation ad hoc. Elle procure la réutilisa-
tion de modèles fondamentaux obtenus de façon ad hoc à partir du matériel ce qui permet
d'amortir les coûts d'un travail long et ardu mais inévitable. Elle peut procurer en même
temps une façon de réutiliser (par encapsulation et modularisation) des requis de contrôle
ce qui n'est pas non plus à négliger.
Les considérations relatives à la génération automatique de code sont en général ab-
sentes des documents de recherche. Cette situation est compréhensible puisqu'il est nor-
malement présumé que cette phase de la recherche appartient au domaine des applications
et non de la recherche fondamentale. Dans la perspective d'un environnement intégré de
conception de contrôleurs SCT il est impossible d'ignorer ces considérations car il est pos-
sible qu'il soit nécessaire de modifier le formalisme de modélisation pour réaliser la géné-
ration de code. La génération de code requiert souvent l'usage de code d'intégration (glue
code, voir [25] entre autres) ou d'autres mécanismes ayant une interaction avec les modèles
abstraits. Il faut aussi considérer comment il est possible de faire usage des résultats de syn-
thèse et mettre en oeuvre la dynamique des modèles abstraits utilisés dans la spécification.
L'argument de Ekberg et Krogh dans [13] est plus qu'une simple complainte. Il se pré-
sente sous forme d'une question : est-il possible pour un spécialiste de SCT de faire un
rapprochement entre une technique utilisée dans la pratique, les schémas de machines à
états (State Machine Templates), et le modèle d'un problème de contrôle en SCT? Cette
question est tout à fait pertinente. Intuitivement, les AFD utilisés en SCT pour formuler des
problèmes de contrôle présentent plus qu'une ressemblance superficielle avec ces schémas
de machines à états. Si un spécialiste de la théorie ne peut pas faire de rapprochement utile
entre les deux, comment un non-spécialiste le pourrait-il ? On peut d'ailleurs se convaincre

3
INTRODUCTION

assez facilement, par l'usage, que ce qui semble manquer aux tentatives actuelles est pré-
cisément un genre de scénario d'usage standard pour leur environnement. Tout semble
construit en présumant que les usagers connaissent très bien SCT et que les modèles (tous
construits ad hoc) sont ajustés pour l'usage de la théorie. Bien que Supremica contienne des
exemples pertinents de conception, il est assez difficile d'identifier les requis de contrôle de
la solution et d'en déduire des conditions de garde pour des schémas de machines à états.
Chaque solution est unique et dépend presque entièrement de l'ingéniosité du concepteur
et de sa familiarité avec la théorie.
Cette question peut sembler facile à répondre. Mais le fait que l'article de Ekberg et
Krogh date de 2006 et ne semble pas avoir trouvé preneur jusqu'à maintenant est symp-
tomatique. Ou bien les spécialistes ne connaissent pas la réponse, ou bien la réponse est
trop compliquée à élaborer et à rendre dans des termes clairs et simples. Cette thèse se
propose donc d'identifier, parmi les éléments présents dans SCT, ceux qui peuvent servir à
l'élaboration d'une plateforme de conception de systèmes à événements discrets. Cet effort
s'inscrit donc plus dans une perspective de transfert technologique que dans une perspec-
tive de recherche fondamentale. Autant que possible on y évite d'altérer la théorie, mais il
est possible qu'en cours de route il soit nécessaire d'y ajouter certains résultats. Quoiqu'il
en soit l'envergure de cette entreprise semble être digne d'une thèse de doctorat.

Objectifs et hypothèses de travail


Brièvement, la thèse vise à progresser vers un environnement de conception de contrô-
leurs SCT utilisant une métaphore de composantes pour permettre la réutilisation de spé-
cifications et limiter le besoin de conception ad hoc des modèles. Cet environnement doit
permettre de modéliser un système existant sur lequel on veut implémenter un certain pro-
cessus à partir d'un ensemble de requis donnés dans un cahier de charges (une spécification
informelle). L'environnement doit supporter un usager dans cette tâche jusqu'à l'obtention
d'un système fonctionnel répondant à l'ensemble des requis.
Pour fixer les idées, il est utile de se donner un scénario d'usage typique. À partir
du cahier de charges, un usager doit progresser par raffinements successifs, c'est-à-dire
par assemblage et composition d'instances de composantes réutilisables, vers un système

4
INTRODUCTION

complet répondant à l'ensemble des requis de contrôle. À chaque itération l'usager doit
pouvoir :
- assembler un certain nombre de composantes ;
- spécifier l'ensemble des requis de contrôle qui s'y appliquent (à son avis, puisqu'il
s'agit là d'un processus de réécriture des requis) ;
- puis pouvoir expérimenter avec le système dans un état d'élaboration partiel et se
convaincre que l'expression des requis est satisfaisante.
En d'autres termes l'usager progresse vers une solution contrôlable (et correcte) du pro-
blème (le cahier de charges). Ce scénario est légèrement différent de ce qui est normale-
ment rencontré avec SCT où la spécification est considérée correcte a priori. Il est d'ailleurs
étonnant de constater que dans la littérature de recherche sur le sujet il est toujours présumé
que la spécification formelle est correcte au départ.
Pour ne pas se perdre en généralités, il est préférable de se donner un contexte puisque
les systèmes à modéliser ne sont pas abstraits. 11 peut être présumé sans perte de généralité
que les systèmes matériels sont des usines modidaires. Ce genre d'usine est composée de
dispositifs mécaniques élémentaires (vérins pneumatiques, relais et autres) qui peuvent être
assemblés et ré-assemblés au besoin pour former des dispositifs plus complexes et s'adapter
à divers procédés de fabrication. Une usine modulaire est habituellement contrôlée à l'aide
d'un automate programmable souvent désigné sous le vocable de PLC (de l'anglais pour
Programmable Logic Controller). Il s'agit d'un micro-ordinateur spécialisé pour fonction-
ner en usine. On peut donc aussi présumer, sans perte de généralité, que l'un des objectifs
est de générer du code pour PLC.
À la lumière de ce qui précède on peut fixer une série de grands objectifs.
1. Il faut définir une métaphore de composantes réutilisables.
2. Il faut définir les mécanismes de leur composition en sous-systèmes et indirectement
les mécanismes de l'instanciation de composantes réutilisables.
3. Il faut déterminer la forme que doit prendre la formulation d'un problème de contrôle,
entre autres, le formalisme pour l'expression des requis de contrôle.
On espère bien sûr pouvoir éviter l'usage d'AFD pour exprimer les requis du contrôle
puisque cette forme se révèle particulièrement ardue à utiliser et cryptique à lire. 11 y a là

5
INTRODUCTION

une difficulté qui mérite d'être soulignée puisque ces automates de spécification (souvent
appelés automates de langage légal) sont la forme consacrée de spécification des requis
de contrôle pour SCT. La nécessité d'en changer pour une autre forme de spécification
des requis de contrôle limite considérablement les alternatives disponibles et peut exiger
d'utiliser un hybride combinant plus d'une des variantes de SCT. On ne peut cependant pas
sacrifier la possibilité de synthèse, on y perdrait tous les avantages de SCT.
Certains objectifs sont implicites.
- L'expression des requis de contrôle doit pouvoir se faire de façon modulaire, c'est-
à-dire permettre de diviser les requis en petits sous-ensembles qu'il est possible de
résoudre indépendamment.
- Le formalisme doit idéalement permettre la traçabilité des requis à leur version in-
formelle.
- Il faut déterminer une dynamique des modèles abstraits pour permettre l'élaboration
de schémas de génération de code.
Bien sûr il est nécessaire de tenir à l'esprit pendant l'analyse que l'un des objectifs est
la génération automatique de code pour l'implémentation des solutions de problèmes de
contrôle. Cet objectif peut avoir des ramifications partout dans cette étude. Il peut par
exemple requérir des notations spéciales au niveau des éléments de modélisation de pro-
blèmes de contrôle ou encore au niveau des mécanismes d'instanciation de composantes.
Il est important de le garder à l'esprit pendant toute l'analyse.
En ce qui concerne l'usage des procédures de synthèse de SCT, l'objectif consiste à les
utiliser telles qu'elles. Le seul degré de liberté réside dans le choix du type de synthèse :
- une synthèse exhaustive (exploration exhaustive de l'espace des états correspondant
à la formulation originale de la théorie par Ramadge et Wonham [45]) ;
- une synthèse modulaire (par exemple le cas de HISC, Hierarchical Interface-based
Supervisory Control de Leduc, Brandin, Lawford et Wonham [35, 38]) ;
- une synthèse par prédicats (cas des STS de Ma et Wonham [39] utilisant des BDD et
souvent qualifiée de méthode symbolique).
Ce choix dépend intimement du formalisme de modélisation utilisé. Chaque méthode cor-
respond à une variante de la théorie. Des procédures de synthèse sont disponibles pour
chacune de ces alternatives.

6
INTRODUCTION

Méthodologie
Dans un premier temps il est nécessaire de faire un survol de la littérature scientifique,
en commençant par une formulation des résultats fondamentaux de SCT dans son cadre
linguistique original. Ensuite, il faut s'attarder à identifier parmi les différentes variantes
issues de la théorie, quelles sont celles qui sont les plus susceptibles d'apporter des éléments
de solution aux problèmes confrontés. Il y en a principalement trois :
1. le contrôle hiérarchique tel que défini par Wong et Wonham dans [58, 59] et [55] ;
2. le contrôle hiérarchique par interface (HISC) tel que défini par Leduc, Lawford,
Brandin et Wonham dans [35, 38] ;
3. le contrôle par STS de Ma et Wonham [39], une variante hiérarchique utilisant l'ap-
proche par prédicats.
Chacune de ces variantes de la théorie présente une perspective intéressante et est suscep-
tible de procurer des éléments de solution. Mais aucune d'entre elles ne semble, à elle seule,
répondre à tous les objectifs fixés, il faut donc en faire une analyse détaillée.
Dans le but de procurer la génération automatique du code des implémentations de
solutions aux problèmes de contrôle, il est important d'examiner la documentation de re-
cherche pour identifier les alternatives. Il est donc dans l'ordre d'examiner plus en détail
comment la théorie elle-même entrevoit la réalisation de superviseurs issus de ses propres
procédures de synthèse. Une certaine attention doit donc être consacrée à comprendre les
deux réalisations dites standards d'un superviseur SCT :
- réalisation par reproduction de la structure de transition du superviseur (l'AFD du
système sous contrôle) ;
- réalisation par implémentation d'une loi de contrôle définie sur l'espace des états du
système (appelée une SFBC, pour State Feed-Back Control).
La réalisation par SFBC revêt un intérêt particulier pour les applications sur PLC, car elle
permet une implémentation presque directe de la loi de contrôle sans avoir recours à une
structure de transition (souvent trop volumineuse pour contempler une implémentation sur
PLC). Il existe une reformulation de SCT à base de prédicats dont le résultat de synthèse
est précisément une SFBC. Cette reformulation s'applique assez généralement à d'autres
variantes de la théorie et il est utile d'en donner les fondements.

7
INTRODUCTION

Une fois la revue de littérature terminée, il faut s'attarder à définir ce que sont les
composantes réutilisables. Les composantes doivent répondre à plusieurs critères. On doit
définir un mécanisme pour leur abstraction, c'est-à-dire une forme d'encapsulation. Ce
mécanisme doit être en accord avec la théorie. Dans ce cas il s'agit de fournir un méca-
nisme qui permet une encapsulation de la dynamique de la composante sans compromettre
la possibilité de synthèse. Un examen attentif est ici nécessaire et certains résultats théo-
riques peuvent avoir à être développés. On se propose de se livrer à une étude critique des
meilleurs candidats, parmi les variantes de SCT, à l'élaboration d'une métaphore de com-
posantes réutilisables, pour identifier les éléments que chacune d'entre elles peut procurer
dans ce but. À cette fin il faut développer un modèle préliminaire de composante puis iden-
tifier les critères de cette analyse critique. Sur la base des résultats de l'analyse critique,
on se propose d'établir le modèle détaillé de la métaphore de composantes réutilisables
proposée.
La définition de la métaphore de composantes réutilisables doit être assortie de nota-
tions appropriées pour exprimer la structure de ces composantes. Une composante n'est
en fait que l'abstraction d'un sous-système sur lequel on a défini et résolu un problème
de contrôle dont on veut abstraire la solution pour en encapsuler les requis de contrôle.
Par ricochet, une composante réutilisable est donc la solution à un problème de contrôle
complet. Aussi est-il nécessaire de commencer à élucider la façon dont les composantes
sont liées entre elles par les requis de contrôle. Il faut déterminer un formalisme d'expres-
sion des requis de contrôle et la méthode de composition des composantes réutilisables en
sous-systèmes. Ce qui soulève la question des mécanismes de l'instanciation qu'il faut, à ce
point, définir et la question de l'opérateur de composition. L'examen de cas types peut ser-
vir de guide dans la détermination de ces éléments. Il est ainsi utile de définir un catalogue
de composantes dans le but de les utiliser dans une étude de cas.
Finalement il faut examiner la production de code. Pour la génération de code exécu-
table sur PLC, la reproduction d'une structure de transition semble clairement à proscrire
car elle se révèle généralement trop volumineuse (voir [7]). Il faut donc procéder à une
implémentation par SFBC. Les composantes doivent offrir un modèle de leur dynamique
interne pour les lier à la génération de code. Il faut définir les éléments de modélisation
nécessaires et les notations correspondantes.

8
INTRODUCTION

On se propose de valider l'ensemble des résultats obtenus par une étude de cas d'une
envergure réaliste sur l'usine-école MPS du laboratoire des systèmes réactifs.

Contributions et résultats
En guise de contribution, cette thèse précise les éléments suivants.
- Un modèle formel pour supporter la notion de composante réutilisable basé sur une
variante hiérarchique de SCT. Ce modèle s'articule autour de trois notions : implé-
mentation, contrôle et interface. Ce modèle a pour but de procurer autant la réutili-
sation des spécifications de contrôle (notions d'implémentation et de contrôle local)
que la réutilisation pure et simple de stéréotypes de comportement par encapsulation
et abstraction (notion d'interface).
- Associée au modèle formel, on y développe une notion précise d'instanciation de
composantes à travers une adaptation de leur interface.
- Les propriétés que doivent remplir les composantes pour garantir un fonctionnement
contrôlable et non bloquant, et donc permettre l'usage des procédures de synthèse de
SCT, sont précisées.
- Différents opérateurs de composition en sous-systèmes sont considérés pour la com-
position horizontale (en sous-systèmes), la composition verticale (réabstraction) et la
superposition d'un contrôle local.
- Pour garantir que les propriétés des composantes sont préservées par les trois formes
de composition, une règle simple pour l'abstraction de modèle est formulée. Le but
visé est de permettre l'agrégation pyramidale d'un nombre arbitraire d'instances de
composantes sur un nombre arbitraire de niveaux d'agrégation.
D'un côté plus pragmatique, cette thèse s'attache aussi à développer un certain nombre
d'éléments semi-formels pour procurer la génération automatique du code de l'implémen-
tation.
- En plus du model formel, on y définit un diagramme d'assemblage (pour spécifier
la structure des sous-systèmes) et une spécification de contrôle. La spécification de
contrôle comprend une définition du problème de contrôle et sa solution obtenue par
synthèse. Une attention particulière est ici portée à la notation utilisée pour qu'elle

9
INTRODUCTION

soit utilisable par des non-spécialistes.


- On y définit un modèle de la dynamique abstraite de fonctionnement d'une agréga-
tion d'instances propre à servir de base à la génération de code et à l'insertion de
code d'intégration (glue code en anglais).
Le tout est assorti d'une étude de cas d'une envergure et d'une difficulté suffisante pour
pouvoir tirer des conclusions utiles sur la métaphore de composantes réutilisables proposée.
Le code PLC généré pour l'étude de cas utilise le langage SCL (Structured Control Lan-
guage, défini dans [50]) tel qu'implémenté par Siemens™ pour correspondre à la norme
internationale IEC 61131-3 (catégorie Structured Text).
La plupart de ces contributions ne sont pas de l'ordre de la recherche fondamentale.
Mais un examen exhaustif et approfondi de la théorie s'avère nécessaire pour dégager les
principes d'une métaphore de composantes réutilisables SCT viable. Cet examen révèle en
effet que la plupart des résultats théoriques nécessaires sont déjà là et ne requièrent que
de légères adaptations. Mais ces résultats sont disséminés dans une myriade de documents
et utilisent souvent des formulations si différentes qu'il est parfois difficile de les relier
entre eux pour former un tout cohérent. C'est là l'originalité de la démarche exposée dans
cette thèse. L'assemblage d'un hybride composé de deux variantes hiérarchiques de SCT
associés à des concepts en provenance du génie logiciel, pour former une métaphore de
composantes réutilisables viable que l'on peut éventuellement intégrer à un environnement
de conception assistée.
Dans la documentation de recherche sur SCT, les aspects concernant l'implémenta-
tion des résultats de synthèse et la réutilisation au cours de la modélisation sont négligés.
Ce sont en effet des problèmes difficiles et peu reliés (du moins en apparence) à l'aspect
fondamental de la théorie. Mais on peut relever que la carence en modélisation réduit les
chercheurs eux-mêmes à la modélisation ad hoc, vulnérable aux erreurs et limitée quant à
la taille des modèles. Il en résulte souvent des modèles de qualité douteuse et la recherche
se trouve souvent cantonnée à l'examen de problèmes de taille réduite dont le potentiel
est modeste. Ainsi même la recherche peut bénéficier de la disponibilité d'une métaphore
viable de composantes réutilisables en SCT.

10
INTRODUCTION

Organisation de la thèse
Le chapitre 1 s'attarde à faire un survol de la littérature scientifique pertinente et à défi-
nir les bases théoriques nécessaires à cette étude. Le chapitre 2 documente les variantes de
la théorie jugées les plus utiles dans l'optique de cette thèse. Le chapitre 3 définit la méta-
phore de composantes réutilisables proposée dans un détail suffisant pour se livrer ensuite
à une critique des variantes vues au chapitre 2 dans le but d'identifier le support théorique
nécessaire à son implémentation. On y trouve aussi quelques résultats complémentaires
à la théorie du contrôle hiérarchique de Wong et Wonham [55, 58, 59] nécessaires à la
formulation de la métaphore de composantes réutilisables. Le chapitre 4 développe en dé-
tail les concepts et les notations nécessaires pour supporter la spécification de problèmes
de contrôle et de composantes réutilisables. Il s'attarde particulièrement sur la composi-
tion de sous-systèmes à partir de composantes réutilisables, sur l'expression des requis de
contrôle ainsi que sur la définition du support nécessaire à la génération de code. Il déve-
loppe ensuite quelques exemples types de composantes réutilisables. Le chapitre 5 traite en
détail d'une étude de cas illustrant l'usage de composantes réutilisables (définies dans un
catalogue en annexe D) dans la solution d'un problème de contrôle. La conclusion dresse
un inventaire des principales contributions, procède à une critique du travail accompli et
indique certaines directions de recherche potentielles.

11
Théorie du contrôle supervisé

12
Chapitre 1

Rappels sur la théorie du contrôle


supervisé

L'essentiel du contenu de ce chapitre provient de la littérature désormais classique sur la


théorie du contrôle supervisé habituellement désignée par son acronyme SCT (de l'anglais
Supervisory Control Theory). En plus des articles fondamentaux sur le sujet dus à Ramadge
et Wonham [45,43,44], le lecteur peut se reporter avec avantage aux notes de Wonham [62]
pour un traitement plus complet, et des commentaires souvent révélateurs. Un traitement
alternatif, plus orienté sur la notion de générateur de langages ainsi que sur les notions de
la théorie des treillis nécessaires à l'établissement des résultats fondamentaux de la théorie,
est donné par Kumar et Garg [32]. Le lecteur francophone peut se référer à la thèse de
Gaudin [23] dont la section sur les rappels théoriques est particulièrement claire.

1.1 Préliminaires
SCT utilise des concepts de la théorie des langages et de la théorie des automates.
Dans ce contexte formel, elle développe certaines notions qui lui sont propres telles que le
modèle linguistique d'un système à événements discrets (SED), et la notion conséquente de
générateur de langages. Il importe de bien situer ces concepts de base qui sont implicites
au reste de la théorie.

13
CHAPITRE l. THÉORIE DU CONTRÔLE SUPERVISÉ

1.1.1 Systèmes à événements discrets et langages


Les SED sont caractérisés par un espace d'états discrets et une dynamique d'évolution
par événements. Lorsqu'un événement se produit le système change d'état ; l'occurrence
d'un événement est instantanée. L'ensemble des événements distincts se produisant au sein
d'un système est généralement considéré fini et peut être représenté par un alphabet de
symboles E. L'ensemble de toutes les séquences d'événements (les traces) que le système
peut générer pendant son fonctionnement peut être assimilé à un langage ffÇS', appelé
langage généré du SED.
Dans ce contexte, un langage L est simplement défini comme un sous-ensemble de E*,
l'ensemble de toutes les chaînes de longueurfinieque l'on peut former à partir de symboles
appartenant à E. La chaîne ne contenant aucun symbole, dénotée par le symbole s, fait aussi
partie de cet ensemble, c'est-à-dire e G E*.
Parmi les séquences d'événements qu'un SED peut générer, certaines ont habituelle-
ment un statut spécial puisqu'elles décrivent le déroulement de tâches complètes au sein
du système. Ces dernières constituent elles-mêmes un sous-langage //„, Ç H du langage
généré, appelé langage marqué du SED. La paire de langages (H, Hm) constitue un modèle
linguistique du SED en ce sens qu'elle en caractérise complètement le comportement.
Dans le comportement généré d'un SED, il est possible éventuellement de trouver des
chaînes * € H qui ne peuvent jamais être complétées pour former une tâche complète. Le
système comporte alors une ou plusieurs impasses (statiques ou dynamiques) ; on dit qu'il
est bloquant. Il est aussi utile de définir ce qu'est un système non bloquant en termes de son
modèle linguistique (//, //,„). À cette fin il faut examiner la notion de langage préfixe clos.
Intuitivement, un langage L Ç S* est préfixe clos si, pour toute chaîne s G L, l'ensemble
des préfixes de s fait aussi partie du langage.
Pour s, v, r Çz E*, on dit que u est un préfixe de s, noté n < .s, si .s = un. Par définition
s et e sont des préfixes de s puisque se = es = s. La fermeture préfixée d'un langage
L Ç E* se définit alors comme suit :

L := {u € E* | (3s | s € L : u < s)} .

Lorsque L = L on dit que L est préfixe clos.

14
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ

Par définition d'un modèle linguistique (H, Hm), H est préfixe clos car il contient toutes
les chaînes d'événements que le système peut générer et donc, nécessairement, tous leurs
préfixes. De plus, pour que le système soit non bloquant, il faut que toute chaîne s G //
puisse éventuellement être complétée en une chaîne appartenant à Hm. En d'autres termes,
toute chaîne s G H doit être un préfixe d'une chaîne de Hm, ce qui revient à dire que
H Ç Hm. Mais puisque Hm Ç H par définition, la fermeture préfixée étant monotone par
rapport à l'inclusion d'ensembles, alors Hm Ç H = H, et donc H = Hm.
Ainsi un SED dont le modèle est donné par la paire de langages (//, Hm) est non blo-
quant si H •= //,„.

1.1.2 Composition de langages


La composition synchrone est l'opération principale sur les langages en SCT. Elle sert
à décrire le comportement d'un SED complexe à partir des comportements de SED plus
simples (composition modulaire des comportements), ou à spécifier des sous-langages du
comportement d'un SED ; par exemple la spécification d'un sous-langage contrôlable ou la
spécification d'un processus devant être implémenté.
Pour E, Ç S (i fini arbitraire), la projection naturelle Ps, : S —>• E, est définie par

[a si a G S,
PE.(S<7) := P E » / ^ » [Link]'et^GE.

Pour s G E*, Ps,(s) efface de s tout a G E \ E, en respectant l'ordre des éléments de


la chaîne originale. Ce qui permet de définir la préimage dans E* d'un langage L Ç E*,
Pg1 : 2^' -+ 2E* par
P£t\L):={seZ*\PyJs)eL}.
L'effet de P^1 sur une chaîne s G L consiste à intercaler dans cette dernière (de toutes les
façons possibles) toutes les chaînes de (E \ E;)* sans déranger l'ordre relatif des éléments
originaux de s.

15
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ

Finalement pour Lx G E* (/ = 1, 2) et E •= Ei U E2, où il est possible que Ei n E 2 soit


non vide, le produit synchrone L\ \\ L2 G E* est donné par

LilILa^P^LjnP^U*), (1-1)

d'où s G Lx || L2 si et seulement si Pv^s) G Lx et P^2(s) G L2. L'effet du produit


synchrone relativement à deux chaînes si G L\ et s2 G L2 est donc le suivant.
- Lorsque Ei n E2 = 0, on intercale n'importe quelle portion de sx dans s2 (et récipro-
quement) de toutes les façons, en respectant l'ordre relatif des éléments des chaînes
originales. II s'agit d'un cas particulier appelé le produit intercalé qui correspond au
déroulement asynchrone en parallèle de deux systèmes indépendants.
- Lorsque Ei = E 2 , si ,S] = s2 = s alors s G L\ || L2 sinon .s £ L\ || L2. La
synchronisation entre les deux systèmes est complète et Lx || L2 — L\ n L2. Ce cas
particulier est souvent appelé meet en anglais.
- Lorsque E ^ Ex n E2 / 0, le résultat est un mélange de produit intercalé avec
synchronisation sur les éléments communs aux deux langages. Cette situation repré-
sente le déroulement de deux systèmes en parallèle devant se synchroniser lorsqu'ils
effectuent une transition sur un événement qu'ils ont en commun.
Le produit synchrone se généralise à un nombre fini arbitraire de langages puisqu'il est
associatif.

1.1.3 Système à événements discrets comme générateur de langages


Le modèle linguistique d'un SED en caractérise le comportement. Cependant, pour
exprimer la mécanique du contrôle au sein d'un SED, il est utile de s'en donner un modèle
abstrait.
Un SED génère des chaînes d'un langage ce qui suggère un certain arbitraire. 11 n'est
pas possible de savoir quelle chaîne du langage sera générée lors d'une séquence de marche
du système. Le modèle linguistique ne fait que circonscrire l'ensemble des possibilités. Le
modèle suggéré par la théorie est calqué sur celui d'un automatefinidéterministe (AFD),
soit
G = (Q.X,6,q0,Q„,)

16
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ


- Q est l'ensemble des états du système (au moins dénombrable sinonfini);
- E est un ensemble fini de symboles dénotant les événements pouvant se produire au
sein du système ;
- S : Q x E —• Q est une fonction partielle de transition entre états du système ;
- (7n G Q est l'état initial du système ;
- Qm Ç Q est l'ensemble des états marqués du système.
Puisque S est une fonction partielle, la notation 5(q, a)\ est utilisée pour signifier que ô(q, cr)
est définie. Il est aussi utile de définir la fonction partielle S : Q x E* —• Q comme suit,
pour A G S* et a G E :

ô{q,s) := q
6(q,so) •— 5(S(q, s), <r), pourvu que <$(</, .s)! et 5(ô(q,s),a)\.

Enfin, par abus de notation, on utilise S en lieu et place de S lorsque le contexte est clair.
Pour fin de contrôle, l'alphabet E est partitionné en deux sous-ensembles :
- E,, l'ensemble des événements contrôlables ;
- E u , l'ensemble des événements incontrôlables.
L'inhibition d'événements contrôlables est le seul mécanisme servant à restreindre le com-
portement du système.
Au sein du système les événements se produisent instantanément et sont visibles à un
agent externe, mais selon un mécanisme non spécifié par le modèle. En ce sens le fonction-
nement du système semble non déterministe, bien que le modèle utilise une structure de
transition déterministe.
L'AFD G est appelé un générateur modélisant un SED (L(G), Lm(G)), où L(G) re-
présente le langage généré par le SED défini par

L(G) = L ( G ) : = { . s e r | % , S ) ! } ,

et Lm(G) représente le langage marqué du SED défini par

Lm(G):={*GS*|%„,,)GQm}.

17
CHAPITRE l. THÉORIE DU CONTRÔLE SUPERVISÉ

Peu importe le SED modélisé, I Ç L ra (G) Ç L(G) et en général e G L(G) (à moins que
Q = 0).

L'ensemble des états accessibles de G est donné par

Qr := {q G Q | (3s | s G E* : 5(q(h s) = q)} .

L'ensemble des états co-accessibles est donné par

Q„ •= {</ € Q | (3s | s G E* : 5(q, s) G <?„,)} .


Le SED G est dit accessible si Q, = Q, co-accessible si Qcr — Q et soigné (en anglais
rràw) si ces deux conditions sont remplies simultanément.
Le SED G est dit non bloquant si tout état accessible est aussi co-accessible (c'est-à-
dire L(G) — Lm(G)). En particulier G est non bloquant s'il est soigné (la réciproque n'est
pas nécessairement vraie).
Finalement, pour A' G E", un générateur G est dit représenter K si :
- G est non bloquant ;
- Lin(G) = K.
Car dans ces circonstances, L(G) = K, bien que G ne soit pas nécessairement accessi-
ble (ni même co-accessible d'ailleurs). Cependant, lorsque l'on affirme que G représente
un langage K, on entend généralement que G est soigné. Étant donné un générateur G
quelconque, il est toujours possible d'en obtenir une version soignée.

1.1.4 Notions relatives aux générateurs finis


Les AFD constituent un modèle de générateurs pour les SED lorsque l'espace des états
est fini. Le casfini(par opposition à dénombrable) présente un intérêt particulier pour l'im-
plémentation de contrôleurs matérialisant un superviseur SCT, puisqu'il permet le calcul
hors ligne d'une solution (un genre de compilation).
En plus des opérations usuelles sur les AFD, certaines opérations ont un intérêt parti-
culier au sein de SCT.

18
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ

Soit G = (Q, E, S. qQ. Qm) un AFD, A Ç E, E G 2Q et f£ : 2Q x 2Q définie par

f£(E) :=ED{q£Q\(3a\a€A: (3q' | q' G E : 5(</\ a)! A g = % ' , a)))} .

Alors fc(E) donne l'ensemble des états de Q que l'on peut atteindre à partir d'un état
de E par zéro ou une transition sur un événement tiré de A. Intuitivement il est clair que
fa est monotone (par rapport à Ç) et croissante. Puisque Q est fini, elle admet un ou
plusieurs points fixes (/« (.T) = x, x G 2®). En fait, puisque (2 Q , Ç) est un treillis complet,
l'ensemble des points fixes de f£ comporte une borne supérieure f*a(E), où /*£. : 2Q x 2^
est la fermeture disjonctive de f£ définie par

r£(E):=[Jfi(E),
«>o

oùf°*(E) :=E (l'identité) et f'+i£(E) := fàU'aW).


On peut ainsi définir RG(E) :— f*G(E) le plus grand ensemble des états accessibles
dans G à partir d'un ensemble arbitraire E Ç Q, par tirage d'événements dans A Ç E.
Lorsque A = E on note simplement Ra(E) et ainsi Radia}) — Qr, l'ensemble des états
accessibles dans G, et G est dit accessible si Radio}) — Q-
En utilisant un raisonnement similaire on peut obtenir CRf; à partir d'une fonction
g£ : 2Q x 2Q définie par

g&E) -EU {q G Q | (3a | a G A : S(q, a) G E)} .

CRQ(E) donne le plus grand ensemble d'états dans G qui soient co-accessibles à au moins
un des états de E, par tirage d'événements dans A. Lorsque A = E on note simplement
CRo(E) et ainsi CRa(Qm) = Qcr, l'ensemble des états co-accessibles dans G, et G est
dit co-accessible lorsque CRa{Qm) — Q-
Il est clair que dans le domaine fini, Ra et CRG sont bien définis et calculables.
Un AFD G = (Q, E, ô, q0. Qm) est considéré soigné si Radio}) — CRG{Qm)- Il est
considéré non bloquant si Rc({lo}) Q CRc(Qm)- Il est évident que si G est soigné, alors
il est non bloquant bien qu'il puisse être non bloquant sans être soigné.
Puisque les AFD sont des générateurs finis, ils peuvent représenter des langages K Ç E"

19
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ

lorsque £ m ( G ) = K pourvu que G soit non bloquant; il s'agit alors des langages régu-
liers. À moins d'avis contraire un AFD G représentant un langage K est aussi considéré
soigné.
Comme chez les langages, le produit synchrone d'AFD permet de composer un sys-
tème complexe à partir de composantes plus simples. Le produit synchrone de deux AFD
Gi = (Qi, E„ Si, .T0,i, Qm,,) {i = 1,2) est un AFD Gi || G 2 = (Q, E, S, x0, Qm), où

Q = QixCh
E = EiUE2
£o = (^O.lî^O^)

Q,m =
Qm,l x
Qm,2

et pour q = (q\,q2) G Q, a G E alors

(Si{qua), S2(q2, a)) si a G E x n E 2 , Si(qu a)\, S2(q2, cr)\


,r > {S](li;(r),q2) si cr G S i \E 2 ,d 1 (<7i,cr)!
è(q. a) := < (1.2)
(11,^2(12,0-)) sicr G E 2 \Ei,d 2 (<72,cr)!
indéfinie autrement.

Le produit synchrone d'AFD est associatif et s'étend naturellement à un nombre fini d'AFD.
Pour un ensemble d'AFD G, (i = 0 , 1 . . . . , n) la relation entre produit synchrone
d'AFD et produit synchrone de langages est la suivante :

L ( Il G, ) - L(Gt) . (1.3)

1.2 Supervision et contrôle


Soit un SED modélisé par un générateur G = (Q, E, S, r/o, Qm), dont l'alphabet est par-
titionné en événements contrôlables E,. et événements incontrôlables E„ ; E = E,. U E„. Le
contrôle ne peut s'effectuer que par inhibition d'événements contrôlables. Un mécanisme
de contrôle simple consiste à présenter au système à tout moment un ensemble d'événe-
ments permis comme configuration de contrôle. L'ensemble des configurations de contrôle

20
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ

est ainsi défini par


C := {E' ç E | E„ ç E'} .

Puisque les événements incontrôlables ne peuvent jamais être inhibés, toutes les configu-
rations de contrôle contiennent EH.
On définit une loi de contrôle sur G comme une fonction

V : /,(G) — C.

On utilise la notation V/G pour la paire (G, V) et on parle de G sous V pour signifier le
fonctionnement en boucle fermée de G sous le contrôle de la loi V. On appelle V/G un
système supervisé et V un superviseur pour V/G.
Le comportement de V/G est caractérisé par la paire de langages (L(V/G), Lm(V/G)),
où L(V/G) ç L(G) est défini par
1. cGL(VVG);
2. si s G L(V/G), a G V(s) et sa G L(G), alors sa G L(V/G) ;
3. aucune autre chaîne n'apparaît dans L(V/G). .
Clairement, {e} Ç L(V/G) C L(G) et L(V/G) est un langage non vide et préfixe clos.
Aussi le comportement marqué du système supervisé est défini par

Lm(V/G) = L(V/G) n Lm(G\

c'est-à-dire que les comportements terminaux de V/G sont ceux de G qui subsistent sous
l'action de V. Ainsi, 0 Ç Lm(V/G) Ç Lm(G), et on dit que V est non bloquante sur G si

Lm{V/G) = L(V/G).

1.2.1 Existence de superviseurs


Il est important d'établir quelles propriétés doivent posséder les langages des systèmes
supervisés permettant l'usage d'une loi de contrôle telle que définie précédemment.

21
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ

On dit qu'un langage K Ç E* est contrôlable (implicitement par rapport à G et E u ) si

(V.s, a | s G K. a G S u : sa G L(G) =» sa G K).

C'est-à-dire que tout comportement permis dans le système supervisé (s G K) pouvant être
immédiatement suivi d'un événement incontrôlable dans le système à contrôler (sa G L{ G)
pour a G S u ) doit aussi être permis dans le système supervisé (sa G K). En termes clairs,
le comportement marqué du système supervisé Lm(V/G) ne doit jamais requérir l'inhi-
bition d'un événement incontrôlable lorsque ce dernier peut se produire dans le système
à contrôler. Cette propriété peut s'énoncer de façon plus succincte si on définit que pour
K Ç E*, alors A'E„ représente l'ensemble des chaînes sa où s G K et a G E u . Avec cette
notation, K est contrôlable si et seulement si

7Tsu n L(G) ç ~K,

Clairement, 0, L(G) et E* sont des langages contrôlables par rapport à G.


La contrôlabilité est une propriété du langage K D L(G) et non de K, ce qui est co-
hérent avec la loi de contrôle V qui n'est définie que sur L(G). En effet pour une chaîne
s G K \ L(G) théoriquement admissible, sa £ L(G) ne peut jamais se produire dans G
(quel que soit a). Il est alors immatériel que sa appartienne ou non à K puisqu'aucune
action de contrôle n'est requise.
Le lien entre la propriété de contrôlabilité et le contrôle exercé par une loi de contrôle
telle que V est clair. Mais V doit cependant aussi permettre un contrôle non bloquant du
système.
Un langage K est dit marqué par un langage L (ou L-marqué) si tous les préfixes de K
appartenant à L appartiennent aussi à K. Succinctement pour K, L Ç E*, si K n L Ç K
alors K est L-marqué. Si en plus K Ç L alors K = K n L et K est alors dit fermé sur L
ou L-fermé.
La L-fermeture (ou plus généralement le L-marquage) de K par L assure que toutes
les chaînes terminales dans L (c'est-à-dire marquées) qui sont un préfixe d'une chaîne dans
K sont aussi terminales dans K. Autrement dit, dans le cas où K est L-fermé (K Ç L),
L détermine le marquage de A", et on peut dire que K est non marquant. Dans le cas où

22
CHAPITRE I. THÉORIE DU CONTRÔLE SUPERVISÉ

K est arbitraire et /,-marqué la situation est la même dans K n L bien que K puisse être
marquant dans K\L.
Le lien entre la L-fermeture de K Ç L et V devient évident lorsque l'on considère L —
Lm (G), pour un générateur G représentant L, et K = Lm(V/G) = L(V/G) n L m (G), le
comportement du système supervisé tel que défini pour V.

Théorème 3.4.1. [[62], section 3.4] Soit un générateur G et 0 •£ K Ç Lm(G). Il existe


une loi de contrôle non bloquante V sur G telle que Lm(V/G) = K si et seulement si
i) K est contrôlable (par rapport à G) ;
ii) K est Lm(G)-fermé.

Corollaire au théorème 3.4.1. [[62], section 3.4] Soit un générateur G et 0 ^ K Ç L(G),


K préfixe clos. Il existe une loi de contrôle V sur G telle que L(V/G) = K si et seulement
si K est contrôlable (par rapport à G).

Dans ce qui précède, la détermination des chaînes terminales du système (les tâches
complètes) est la prérogative exclusive du générateur G. En particulier ceci veut dire que
si la chaîne s G K se trouve à être une tâche complète dans G (.s G Lm(G)), elle doit
nécessairement être aussi marquée dans K et ce même si elle ne représente pas une tâche
complète du processus représenté par le langage K. C'est ce qui contraint à exiger la pro-
priété de Lm(G)-fermeture dans le théorème 3.4.1. Ce genre de supervision est dite non
marquante et pour la désigner on utilise l'acronyme NSC de l'anglais Nonblocking Super-
visory Control. Par abus de langage on parle aussi d'une NSC V (par référence à la loi de
contrôle). Il est cependant possible (et peut-être plus naturel) de définir une loi de contrôle
marquante (MNSC - Marking, Nonblocking Supervisory Control) où la loi de contrôle
est couplée à un dispositif (non spécifié) permettant de détecter les chaînes terminales du
processus représenté par le langage K et de les marquer.
On définit une MNSC V (c'est-à-dire une loi de contrôle marquante) sur un généra-
teur G comme une fonction V : L(G) —* C comme précédemment, à l'exception du fait
que sous une telle loi, le comportement marqué de la boucle de rétroaction est donné par
Lm(V/G) = L(V/G) n M pour M Ç Lm(G).

23
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ

Théorème 3.4.2. [[62], section 3.4] Soit G un générateur et 0 •£ K Ç Lm(G). Il existe


une MNSC V sur G telle Lm(V/G) = K si et seulement si A est contrôlable par rapport
à G.

Dans tout ce qui précède, la loi de contrôle peut être définie, pour tout .s G A, de la
façon suivante :
V(s) := Eu U {a G E,. | sa G ~K} .

1.2.2 Sous-langages contrôlables et contrôle optimal


Dans ce qui précède, le générateur G modélise la machine sur laquelle un processus,
spécifié par un langage A', doit être implémenté. Bien sûr G et A' partagent le même al-
phabet E = Ec U E u , où Ec n Eu = 0. Les résultats énoncés jusqu'à maintenant permettent
d'affirmer que si K présente certaines propriétés (contrôlabilité et potentiellement ferme-
ture relative par rapport à G) alors G peut être contrôlé par le biais d'une loi de contrôle V
de sorte à produire le comportement décrit par K, le processus. Il est évident que trouver
un tel A' n'est pas trivial.
En général la situation se présente différemment. On élabore d'abord la spécification
d'un processus sous la forme d'un langage E Ç E* qui constitue un objectif de contrôle
pour le générateur G. Ce langage est rarement contrôlable ou relativement fermé a priori.
Les résultats principaux de la théorie permettent d'affirmer qu'il existe des sous-langages
de E possédant les propriétés requises (contrôlabilité et si nécessaire fermeture relative)
pour Pimplémentation par une loi de contrôle.
Les principaux résultats de SCT sont basés sur l'observation que pour tout alphabet E
fini, (2S*, Ç) forme un treillis complet. Les arguments de la théorie sont des arguments de
la théorie des treillis dont on peut trouver une discussion détaillée dans [32]. L'ensemble
des résultats qui suivent sont directement levés de [62] (au chapitre 3), où on trouve aussi
les démonstrations.
Dans cette section, on suppose un générateur G d'alphabet E = Ec U E„, où Ec n Eu =
0, et un objectif de contrôle E Ç E* arbitraire. On définit C (E) Ç 2 e , l'ensemble des

24
CHAPITRE l. THÉORIE DU CONTRÔLE SUPERVISÉ

sous-langages contrôlables de E, par

C (E) := {K ÇE\ 7vE u n L(G) Ç K} ,

et T(E) Ç 2E, l'ensemble des sous-langages L-fermés de E (L Ç E* arbitraire), par

T(E) ~{FÇE\F = FnL}.

Proposition 3.5.1. [[62], section 3.5] C (E) ^ 0 puisqu 'il contient au moins A'« — {}, le
langage vide, et C (E) est fermé sous l'union de langages. En particulier, C (E) admet un
borne supérieure dénotée H\ipC(E), où

supC(E) := | J K.
K£C{F.)

C (E) ne forme pas un sous-treillis complet de 2K puisqu'il n'est pas fermé sur l'in-
tersection de langages. En revanche, l'ensemble des sous-langages contrôlables et préfixe
clos de E, { K Ç E \ K G C (E) A K — K}, forme un sous-treillis complet de 2E ([62],
proposition 3.5.2) et admet une paire de bornes supérieure et inférieure. Aussi J-(E) / 0
(A'a G JS(E)) et T(E) forme un sous-treillis complet de 2E ([62], proposition 3.5.3).
La proposition suivante est un résultat important qui permet une simplification dans
la recherche (ou le calcul) d'une solution à un objectif de contrôle E. Pour mémoire, si
E D E n L, on dit que E est L-marqué.

Proposition 3.5.4. [[62], section 3.5] Si E Ç S* est Lm(G)-marqué, alors supC(P n


Lm(G)) est Lm(G)-fermé.

Cette dernière proposition permet d'éviter d'avoir à considérer un ensemble CT(E) des
langages contrôlables et relativement fermés pour arriver à une solution pour E. De plus
il est assez naturel de considérer lors de l'élaboration d'un objectif de contrôle E, que les
comportements terminaux de E correspondent normalement à des tâches complètes dans
G. Aussi, si l'agent marquant du système devait absolument être le générateur, l'objectif de
contrôle à considérer peut être remplacé par £" = E, puisque En Lm(G) est L m (G)-fermé
donc automatiquement L m (G)-marqué.

25
CHAPITRE l. THÉORIE DU CONTRÔLE SUPERVISÉ

Théorème 3.5.1. [[62], section 3.5] Soit E Ç E", Lm(G)-marqué et K = supC(A' D


Lm(G)). Si A" / 0, alors il existe une NSC V (non marquante et non bloquante) sur G
telle que Lm(V/G) = A'.

Si A' n'est pas vide, alors K représente la solution la moins restrictive permettant le
contrôle de G de sorte que le comportement résultant appartienne à la spécification E sans
provoquer d'impasse dans le système. En ce sens, le contrôle exercé par V est dit optimal.
Bien sûr si l'agent de marquage du système peut être incorporé à la loi de contrôle (ou
à tout autre agent que le générateur G), alors on obtient un résultat plus simple.

Théorème 3.5.2. [[62], section 3.5] Soit E C E * e/ 0 f K = supC(P n Lm(G)). Alors


il existe une MNSC V (marquante et non bloquante) sur G telle que Lm(V/G) = K.

Ce dernier théorème correspond à la situation la plus réaliste où les tâches complètes


du processus sont déterminées par l'objectif de contrôle E (la spécification du processus),
mais sont constituées d'ensemble de sous-tâches complètes de la machine (Lm(G)).

1.3 Synthèse de superviseurs et contrôleurs


Comme le font remarquer Kumar et Garg dans [32], il serait difficile d'appliquer les ré-
sultats de SCT en dehors du domaine fini, puisque la vérification des propriétés de contrô-
labilité et de fermeture relative est considérée comme indécidable dans le domaine des lan-
gages récursivement énumérables. Cependant la grande majorité des systèmes modernes
que l'on peut décrire à l'aide de SED admettent une expression finie sous forme d'AFD. Il
y a donc avantage à transporter les résultats de la théorie dans le domaine fini des langages
réguliers.

1.3.1 Superviseurs adéquats


La notion d'un générateur Sgen agissant comme superviseur d'un système contrôlé
V/G permet une redéfinition de V (la loi de contrôle) dans l'espace des AFD, procurant
ainsi une base finie pour la spécification de procédures de synthèse.

26
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ

Pour une loi de contrôle (marquante et non bloquante) V sur un générateur G telle que
Lm(V/G) = K et L(V/G) = K, on dit qu'un générateur Sgen implémente V lorsque

Lm(Sgen) n Lm(G) = K et L(Sgen) n L(G) = K.

Or d'après le théorème 3.5.2, K = supC(E n Lm(G)) (E C E*) admet une MNSC V" sur
G. Ainsi, un générateur Kgen représentant K (le comportement en boucle fermée V/G)
implémente V. Cependant Kgen n'est pas le seul générateur qui puisse implémenter V et
en général, il n'est pas nécessaire qu'un générateur représente le comportement en boucle
fermée du système contrôlé, Lm(V/G), pour implémenter V.
De façon générale, pour S Ç E*, si S est contrôlable par rapport à G et tel que
S C\ Lm(G) = S n L(G), alors K = S n Lm(G) est contrôlable par rapport à G et
admet une MNSC V telle que Lm(V/G) = K. Ainsi pour un générateur S sen représentant
S,
- MSfiCTl) n Lm(G) = s n Lm(G) = K,
- L(Sgen) n L(G) = sn L(G) = K,
et Sgen implémente V. Lorsque ces conditions sont remplies, on dit que le générateur Sgen
est un superviseur pour G (incluant le cas où Lm(Sgen) n Lm(G) = 0).
Si l'on admet qu'un générateur Sgen soit dit contrôlable lorsqu'il représente un langage
S lui-même contrôlable par rapport à G, on peut alors donner une définition de superviseur.
Un générateur S,y(n est appelé un superviseur adéquat pour G lorsque :
i) Sa,.n est soigné ;
ii) S9en est contrôlable par rapport à (1 ;
iii) Lm(Sgen) n Lm(G) = L(Sgen) n L(G).
Bien que (i) ne soit pas nécessaire pour que S9en implémente V de façon non bloquante, le
terme superviseur utilisé dans la théorie correspond généralement à la définition de super-
viseur adéquat.
La propriété (iii), Lm(S9fîl) n Lm(G) = L(Sg(n) n L(G), n'est pas triviale et peut
requérir une vérification à moins d'assurer d'une façon ou d'une autre que Sgen est le
générateur non bloquant d'un sous-langage contrôlable de Lm(G). Lorsque L m (S gen ) Ç
L m (G), cette propriété est trivialement vérifiée. Par exemple, pour un SED G défini sur
27
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ

un alphabet E et un objectif de contrôle E Ç E*, si l'on dispose d'un générateur Egen


représentant E, alors le générateur Kgen représentant K = supC(Lm(Egen) n Lm(G)) est
un superviseur adéquat pour G.
Si S,,f„ = (X, E,£,x 0 ,À' m ) implémente V sur G, Lm(V/G) = Lm(Sgen) n L m (G)
et L(V/G) = L(Sgen) n L(G). Il est ainsi possible de formuler t/> : X —> C, une loi
de contrôle où tp(x) := {a G E | Ç(x. a)\}, dont la dynamique est illustrée en figure l.l.
L'action du contrôle est associée à S 9en qui suit la progression de G et inhibe a $. t>(x)
dans G tant qu'il réside à l'état r. Cette forme de la loi de contrôle est plus exploitable pour
l'implémentation de contrôleurs que V : L(G) —> C. Le résultat est analogue à un produit
synchrone de générateurs (Sgen et G) définis sur le même alphabet E,

^m(VyG) = Lm(Sgcn) Il Lm(G) — Lnl(Sgen || G).

Si Sgeri, admet une expression finie (comme dans le cas où S<,en est un AFD), il est possible
d'implémenter un contrôleur pour G basé sur la structure de transition de Sffetl. On peut
donc définir informellement un contrôleur SCT comme l'implémentation matérielle d'un
superviseur adéquat Sgr.n sur une machine G.

1.3.2 Synthèse de superviseurs adéquats


Le problème de synthèse de superviseurs se présente généralement sous la forme sui-
vante :
1. On dispose d'un système pour lequel on élabore un modèle d'AFD, noté G, le gé-
nérateur du SED. Ce modèle est souvent appelé modèle du comportement libre du
système.
2. À partir d'une spécification pour un processus que l'on veut implémenter sur G, on
élabore un modèle du processus sous forme d'un AFD, noté E gen , qui représente le
langage légal du processus. Il est habituellement assez naturel de spécifier comme
séquences terminales de Egen des séquences également terminales dans G. La spéci-
fication L(E9e„) n'est encore qu'un objectif de contrôle.
À partir de ces deux générateurs on cherche un superviseur adéquat Kgen représentant
K = supC(// m (E 9fn ) n L„,(G)). S'il existe, il s'agit de la meilleure solution contrôlable

28
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ

C
Processus

)
Superviseur

FIGURE 1.1 - Modèle de rétroaction par générateur

au problème d'implémenter Lm(Ea,.„) sur G. Bien sûr, il faut supposer que la spécification
L„,(E9f„) est adéquate.
Une procédure de synthèse type est donnée par l'algorithme 1.1. Cette procédure cal-
cule l'AFD du superviseur adéquat représentant le comportement du système contrôlé en
boucle fermée (V/G). L'algorithme procède au calcul d'un point fixe contrôlable et non
bloquant dans l'ensemble des sous-langages de Z,m(Ege„) n Lm(G) par manipulation de
l'automate produit. Le pointfixeexiste (il peut être vide), chaque itération élague des états,
le domaine étant fini l'algorithme termine à coup sûr.
À l'étape 1, l'algorithme élabore d'abord le produit synchrone S = G || Egen formant
la base des calculs, puis détermine l'ensemble des états de ce produit qui ne violent pas le
critère de contrôlabilité (ç]ood). Le calcul est arrêté sitôt qu'il est clair que l'état initial viole
le critère de contrôlabilité (x0 4- 9°°d)> dans ce cas le point fixe est le langage vide.
L'étape 2 travaille sur l'automate produit résiduel duquel tous les états violant le critère
de contrôlabilité ont été enlevés. Elle évalue newbad Ç good, l'ensemble des états blo-
quants de la solution contrôlable, et newgood Ç good, l'ensemble des états non bloquants
qui demeurent contrôlables malgré le nouvel élagage.
L'algorithme s'arrête à l'étape 3 sitôt que la solution est non vide, contrôlable et non
bloquante (c'est-à-dire que l'étape 2 n'a rien changé et que l'AFD résiduel est contrôlable
et non bloquant).

29
CHAPITRE 1. THÉORIE DU CONTRÔLE SUPERVISÉ

Algorithme 1.1: Synthèse de superviseur.


Entrées :
G = (Q, E, S, 70, Qm)* un générateur soigné représentant le SED ;
E,/P„ = (Y, E, 7, y(), Y,„), un générateur soigné représentant l'objectif de contrôle.
Notes :
S = (X, E, £, xo, Xm), représente l'AFD du produit synchrone ;
bad, newbad Ç X représentent des ensembles d'états proscrits ;
good, ne. wgood Ç X représentent des ensembles d'états non proscrits ;
S' = (.Y', E, £', xo, X'Tn), représente l'AFD résiduel induit par :
X' := X Dgood,
X'm := Xm n good
et£/ := Ç,\good, la restriction de £ à good x E.
Sorties :
En sortie S' dénote l'AFD (pas nécessairement co-accessible) de la solution si elle
existe.

1) Initialisations :
S <— G D Eigen
bad <— {x = (q, y) G X | (3a | a G E u : S(q, a)\ et y(y, a) n'est pas définie)}
good*- X\ CRf'(bad)

2) Itération :
si xo £ good alors
S' <— AFDQ, arrêt, il n'y a pas de solution.
sinon
" * &\good
newbad *-X'\ CR&(X'm)
ne. w good <— X' \ C/?g," ([Link])

3) Fin :
si newgood = X' alors
arrêt, la solution est trim(S').
sinon
good *— newgood
retourner à l'étape (2)

30
Chapitre 2

Variantes de la théorie du contrôle


supervisé

Kumar et Garg ([32], chapitre 3) donnent un algorithme similaire à l'algorithme 1.1 et


montrent que ce genre d'algorithme a une complexité 0(m2v'2) pour G et E ge „ comportant
respectivement m. et n états. Cependant l'usage du produit synchrone pour l'élaboration
de générateurs à partir de composantes résulte souvent dans des AFD dont la taille est
très élevée, et rend impossible l'application des procédures de synthèse pour des systèmes
réalistes. SCT souffre ainsi d'un problème reconnu d'explosion combinatoire de l'espace
d'états, et plusieurs variantes de la théorie ont été formulées pour tenter de mitiger ce
problème.

2.1 Synthèse modulaire


Lors de la spécification d'un problème de synthèse, il est nécessaire d'élaborer un mo-
dèle du comportement libre du système sous forme d'un AFD G (section 1.3.2). La com-
position synchrone d'AFD fournit une solution simple permettant la modularisation des
composantes G,, i G { 1 , . . . , n} :
G =|| G,.

31
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Il faut aussi élaborer une spécification du processus à implémenter sous forme d'un
AFD E où E = L(E), l'objectif de contrôle du système. Il est assez naturel de penser à
diviser ce problème, pour le simplifier, en utilisant la même technique de modularisation
utilisée pour obtenir le comportement libre du système. Le but visé est de diviser la spécifi-
cation E en modules Ex, i G { 1 , . . . m}, donc d'obtenir un ensemble de générateurs E, tels
que
E = || E,

où E, = L(Ei).
La modularisation de l'objectif de contrôle soulève naturellement la question de savoir
sous quelles conditions l'ensemble des modules de la spécification sont équivalents à un
objectif de contrôle spécifié de façon monolithique (un seul AFD E).
Deux langages Aj, A'2 Ç E* sont considérés modulaires si K{ D K2 = K\ n A"2 (on
dit aussi que Kx et K2 sont non conflictuels [62]). Or pour un générateur G défini sur E, et
deux langages K\,K2 Ç E* contrôlables par rapport à G et modulaires entre eux :

(Ki n A'2)EU n L(G) = (K[ n 7^)S U n L(G) Ku K2 modulaires


= (K[T,n n L(G)) n (R~2Y,a n /,(G))
Ç Kx n K2 I<i, A'2 contrôlables
Ç (A'i n AT2) A'i, A'2 modulaires

et ainsi K\ n A'2 est aussi contrôlable par rapport à G.


Il est facile de démontrer que deux langages préfixe clos définis sur le même alpha-
bet sont toujours modulaires entre-eux. Aussi la définition de contrôlabilité (donnée en
section 1.2.1) implique qu'un langage K n'est contrôlable que si et seulement si K est
contrôlable.
Ainsi pour un ensemble d'objectifs de contrôle Et G E*, i. G {1,... ,n}, l'ensemble
des langages K,, où A'; = supC(El n L,„(G)), sont contrôlables et modulaires entre-
eux. Par conséquent l'ensemble de générateurs K,, où A', = L(Ki), permet d'obtenir un

32
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

comportement généré contrôlable par composition synchrone :

L ( || K , ) = || L(Kt)
\i<n / i<n

= Il Kx

= h*-i<ti

Mais puisque n AT, D n K,, avec une inclusion stricte en général, ce système pourrait
s'avérer bloquant, en admettant que K = n Kt soit le langage marqué recherché. Il suffit
i<n

donc d'assurer que chaque solution partielle soit contrôlable localement pour assurer la
contrôlabilité de l'ensemble. Pour cette raison la contrôlabilité est considérée comme une
propriété locale. Par opposition, l'absence d'impasse requiert de considérer le système dans
son ensemble, aussi est-elle considérée comme une propriété globale du système.
Pour Ei, E2 Q S*, puisque supC(£' 1 n E2) est un sous-langage contrôlable de Ex (et
aussi de E2) dont la borne supérieure est supC(fîi) (respectivement supC(E2)), alors

supC(El n E2) C supC(Ei)nsupC(E2)

généralement. Aussi. Ex D E2 D supC(/? 1 ) n nupC(E2) puisque supC(El) Ç Et pour


2 = 1,2. Si supC(£' t ) pour i — 1,2 sont modulaires entre-eux, alors supC(E{) flsup C(E2)
est un sous-langage contrôlable de Ex n E2 dont la borne supérieure est supC(E x n E2), et
par conséquent :
sup C(Ei n E2) 2 supC(A,) n supC(f; 2 ).

Ainsi, pour Ei. E2 C E* tels que supC(Ei) et supC(A'2) sont modulaires entre-eux,

HupC(Ei n E2) = snpC(Ei) n supC(r: 2 ).

En synthèse modulaire il faut donc vérifier que l'ensemble des solutions partielles
(Kt = snpC(Et n Lm(G))) sont modulaires entre elles pour assurer que le système sous
contrôle soit non bloquant. Il s'agit d'une forme de symétrie en ce sens qu'aucune des

33
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

spécifications partielles ne doit être subordonnée à une autre pour l'accomplissement com-
plet des sous-tâches qu'elle décrit. Pour cette raison, cette forme de modularité est souvent
qualifiée de modularité horizontale dans la littérature scientifique sur le sujet.
La vérification de modularité entraîne des calculs aussi complexes que ceux d'une syn-
thèse monolithique, elle ne présente donc aucun gain à ce chapitre. Toutefois elle permet
une certaine simplification à la démarche d'exprimer l'objectif de contrôle global. Aussi,
en plus d'offrir la possibilité de se concentrer sur un ensemble de problèmes simplifiés
pour l'élaboration de l'objectif de contrôle (diviser-pour-régner), la modularisation hori-
zontale du problème de contrôle ouvre plusieurs possibilités concernant Y architecture de
la solution.
1. Le contrôleur peut être implémente de façon monolithique ou par un ensemble de
modules distincts.
2. Dans le cas d'une implémentation modulaire du contrôleur, les modules peuvent être
centralisés sur un même processeur ou bien distribués sur plusieurs.
Dans le cas d'une implémentation par modules du contrôleur, il faut bien sûr définir
quel est l'effet conjugué des différents modules. La théorie à ce sujet est détaillée dans [62]
au chapitre 4. Aussi, si les conditions s'y prêtent, il est possible que l'implémentation de
l'ensemble des modules présente une complexité en espace moins grande que celle d'une
solution monolithique. Cette question est examinée dans [10] et [11]. Mais en général, la
conception d'une spécification modulaire (modularité horizontale) utilise des heuristiques
comme celles examinées dans [62] aux sections 4.7 et 4.8. Dans la théorie, de telles heuris-
tiques sont reléguées à la catégorie des techniques de modélisation ; on y porte en général
peu d'attention.
Bien sûr dans le cas d'une implémentation distribuée de la solution, certains modules
pourraient ne pas être en mesure de percevoir tous les événements du système. Ils devraient
alors fonctionner dans des conditions dites d'observation partielle.

34
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

2.2 Contrôle sous observation partielle


Lorsque le contrôleur d'un système ne peut percevoir qu'un sous-ensemble E„ Ç E
des événements se produisant dans le système, la loi de contrôle régissant ce système devra
nécessairement prendre la forme d'une fonction dont le domaine est limité à l'ensemble
des chaînes d'événements dits observables.
Pour le contrôle sous observation partielle, SCT énonce la propriété d'observabilité
d'un langage qui permet de démontrer l'existence de contrôleurs non bloquants [32] sous
l'hypothèse d'un objectif de contrôle observable, contrôlable et Lm(G)-fermé. Cependant
l'observabilité n'est pas une propriété stable sous l'union de langages, de sorte qu'il est
en général impossible de résoudre le problème de la synthèse non bloquante à partir d'un
objectif de contrôle quelconque A'.
Pour pallier cette difficulté, SCT élabore la notion de langage normal, plus restrictive
que l'observabilité, mais stable sous l'union de langages. Cette propriété permet d'obte-
nir des contrôleurs non bloquants par synthèse. Comme mentionné dans [62] la principale
différence entre un langage normal et un langage observable du point de vue du contrô-
leur réside dans le fait que pour un langage normal et préfixe clos, la projection Ps„()
suffit pour déterminer si une chaîne s G E* est élément de la spécification de l'objectif
de contrôle K. Pour un langage observable ce n'est pas le cas en général. Ainsi, pour un
langage normal, l'occurrence d'événements non observables, en particulier l'occurrence
d'événements contrôlables mais non observables, ne peut pas entraîner le système hors de
la spécification. Il n'est donc jamais nécessaire d'inhiber de tels événements. La notion de
langage normal est aussi importante parce qu'on a établi que, dans un système où tous les
événements contrôlables sont aussi observables (Ec Ç E0), la propriété de normalité est
équivalente à la propriété d'observabilité.
De prime abord, la notion d'événement contrôlable que l'on ne peut pas observer peut
sembler bizarre, puisque ces événements correspondent généralement à des commandes
devant être émises et que cette fonction incombe en général à la logique de contrôle d'un
système. 11 faut se rappeler cependant que le modèle théorique de SCT ne formalise pas la
notion de commande. Les événements dans un système (contrôlé ou non) s'y produisent
spontanément. Le superviseur agit en mode réactif par inhibition d'événements.

35
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

2.3 Contrôle hiérarchique


Le contrôle hiérarchique tente d'apporter des solutions aux problèmes de complexité
en synthèse de contrôleurs par l'abstraction et la modularité verticale. Par opposition à
la modularité horizontale (voir la section 2.1), une structuration arborescente de système
donne lieu à une forme de modularité où certains systèmes sont assujettis à d'autres et
isolés du système global par une forme d'encapsulation, d'où l'appellation de modularité
verticale.
Précédemment on a vu que bien que la synthèse modulaire puisse résulter en un en-
semble de contrôleurs modulaires dont la complexité globale est moins élevée que pour
une solution monolithique, elle n'offre pas vraiment d'avantage concluant quant à la com-
plexité des calculs. Si les contrôleurs résultants doivent être non bloquants globalement, il
faut alors vérifier la modularité des supC(A'j), les plus grands sous-langages contrôlables
et L m (G)-fermés correspondant aux objectifs de contrôle initiaux. Cette vérification est
aussi complexe que la synthèse monolithique, et dans le cas où le résultat n'est pas un
ensemble de langages modulaires, aucune heuristique ou algorithme n'existe pour obtenir
une solution maximale modulaire.
La théorie du contrôle hiérarchique a été formalisée par Wong dans sa thèse de doctorat
[55] et repose sur des travaux antécédents par Zhong et Wonham [66] dont on trouve un
bon résumé dans [62]. Ce qui suit est un sommaire tiré de la thèse de Wong ainsi que de
plusieurs articles pour la plupart dus à Wong et Wonham ([58, 59, 60]).

2.3.1 Préliminaires
La théorie du contrôle hiérarchique repose sur une reformulation de SCT utilisant des
concepts légèrement différents. En plus des notions sur les langages vues au chapitre 1, il
est utile d'ajouter quelques autres éléments.

[Link] Notions algébriques

On se rappelle que pour un alphabet S, l'ensemble E* est constitué de toutes les chaînes
finies de symboles dans E incluant la chaîne vide dénotée par e. Alors un sous-ensemble

36
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

H Ç E* est appelé un langage sur E. Pour .s, u G E*, la notation s < » exprime que s
est un préfixe de a. On définit // := {.s G E* | (3 //1 </ G // : s < u)} pour // Ç E*, la
fermeture préfixée de / / , et on dit que / / estpréfixe clos (ou simplementfermé) si / / = / / .
On dit que pour L Ç E* fermé (c'est-à-dire L = L), V(L) dénote 2L, l'ensemble des sous-
langages de L, et V2(L) dénote ainsi l'ensemble des familles de sous-langages de L. Pour
L Ç E* fermé, Tt := {H Ç L\H = H} dénote la famille des sous-langages fermés de
L. Pour L Ç E* fermé et H Ç L, on définit posL(H) := {s G L \ (3u \ u G H : u < s)},
la fermeture postfixée de // dans L. Ainsi posi(H) contient toutes les chaînes de L qui
constituent une extension d'au moins une chaîne de H. Pour L Ç S* fermé, on définit

EligL : L -* P(E) : s i—• {a G E | sa G L}

donnant l'ensemble des événements pouvant être générés immédiatement à la suite de s


dans L.
Pour un ensemble X quelconque, £(X) dénote l'ensemble des relations d'équivalence
que l'on peut dresser sur X. Une relation d'équivalence <*> G £(X) induit une partition
de A' dont les éléments [x]u := {x' G À" | x'R^x} sont appelés les classes d'équivalence
de LU dans X. On parle alors de X/LU := {[x]u | x G À'}, le quotient de X par JJ, et on
définit la fonction p^ : X —» X/LU appelée projection canonique de LU associant chaque
élément de X à sa classe d'équivalence par LU, c'est-à-dire p w (x) = [x]w pour x G X.
Lorsque pu(x) = p^(x') pour x, x' G X, on dit que x est équivalent à x' modulo LU noté
x = x'(mod UJ). Pour n. u> G S(X), on dit que n raffine tu, noté n < u, si

(V.r, ./•' | .r, / G X : .r = .i'(mod n) = > .7; = x'(viod LU)).

Le symbole < définit donc un ordre sur £(X). On définit _L,T G £(X), respective-
ment la borne inférieure et la borne supérieure de £(X), par (Vx, x' | x, x' G X : x =
x'(rnod 1) <=» x = x') et (Vx, x' | x, x' G A" : x = x'(mod T)). La paire (5(X), <)
est un treillis complet (voir les notes de Wonham [62]).
Pour une fonction quelconque / : X —* Y, le noyau de la fonction dénoté ker / définit
une relation d'équivalence sur X comme suit : pour x, x' G X,

x = x'(mod ker / ) <=> f(x) = f(x')

et on dit alors que x est équivalent à x' modulo ker / .

37
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

[Link] Structures de contrôle

Dans le contexte théorique de Wong [55], la notion de familles de sous-langages contrô-


lables est indépendante (a priori) de la forme que peut prendre le contrôle, aussi y définit-
on la notion de structure de contrôle. Pour un langage préfixe clos L Ç E* représentant le
comportement libre d'un système (L = L(G) pour un certain générateur G représentant
un SED), on dit que la fonction C : FL —> V2(L) définit une structure de contrôle sur L si,
pour / / G TL arbitraire :
(1) C(H) Ç V(H) est un demi-treillis supérieur par rapport à U dans V(H) ;
(2) 0,//GC(//);

(3) K £C(H)^~KeC(H);
(4) pour F G Ti. tel que H Ç F, alors C(F) n 'P(H) Ç C(H), avec égalité lorsque
H G C(F), où C(F) •- Tv n C(F).
Alors C(II) associe à II (un sous-comportement de L) l'ensemble des sous-langages contrô-
lables qui lui correspond dans le système (L). On appelle aussi / / un sous-système de L,
mais il ne faut pas confondre avec la notion de composante illustrée à la section 2.1.
Soit Ci,C2 : TL —* V2(L) des structures de contrôle sur L. On dit que Ci raffine C2,
noté Ci < C2, si
(V//e.F£)C2(//)çc1(//).

Ainsi Ci est plus fine que C2 si Ci contient plus de sous-langages contrôlables que C2 pour
chaque sous-système.
Pour F G TL,, on définit un opérateur de synthèse (control operator dans [58])

KF : V(F) -» C(F) : H . - | J {J C II | ./G C(F)}

pour tout / / C F . Cet opérateur associe à // le plus grand sous-langage contrôlable de //


dans F. Les axiomes (1) et (2) sur les structures de contrôle nous assurent que KF est bien
défini ; K/.-(0) = 0, KF(F) = F et C(F) est l'ensemble des points fixes de nF. De plus KF
est monotone quant à l'inclusion d'ensembles, idempotent et préserve la fermeture préfixée
(voir Wong [55], page 34 et la proposition 12 en page 35). On définit aussi KF := Ky\jrF la
restriction de Kf à TF-

38
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Pour lier la notion de familles de sous-langages contrôlables aux mécanismes du con-


trôle il est nécessaire de spécialiser la notion de structure de contrôle. On retrouve donc
dans Wong [55] les notions de structure de contrôle standard, une sous-classe propre de
l'ensemble des structures de contrôle, et de structure de contrôle standard localement défi-
nissable, une sous-classe propre de l'ensemble des structures de contrôle standards.
Pour L fermé (tel que défini précédemment), une fonction C : Ti —> V2(L) possédant
les propriétés suivantes
(1) ®,L<=C(L);
(2) C(L) est un sous-treillis complet de V(L) ;
(3) (V // G TL) C(H) = {A C II | (3 K' | K1 G C(L) : A' = // n K')} ;
est une structure de contrôle (d'après la proposition 13 dans [55]) et elle est dite standard.
On dit par suite qu'une structure de contrôle standard est localement définissable si pour
tout A" GC(L)ets e~K,

L - posL({sa \sa e L- A}) G C(L)

[Link] Technologies de contrôle

Les éléments du contrôle sont définis par la notion de technologie de contrôle. On dit
qu'une fonction S c : L —» V2(zZ), où
(1) ( V s G L ) 0 G E c ( S ) ;
(2) (V .s G L) E,.(.s) est un sous-treillis complet de "P(E) ;
pour L Ç E* fermé, définit une technologie de contrôle. Pour s G L, E,(,s) donne l'en-
semble des configurations de contrôle disponibles pour la chaîne s dans L, sous forme
d'ensembles d'événements que l'on peut inhiber simultanément à ce point. L'option de
n'inhiber aucun événement à s (donc de permettre tout a G E tel que sa G L) correspond
à 0 G Ec(,s) et doit toujours être disponible.
On remarque que lorsque l'alphabet E est partitionné en sous-ensembles d'événements
contrôlables Econ et incontrôlables Eu„c, alors Ec(s) := V(Eccm) pour tout s G L définit

39
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

une technologie de contrôle. Cette technologie de contrôle est désignée sous le nom de tech-
nologie de contrôle standard, et est la technologie de contrôle dans le contexte théorique
usuel de SCT (contexte de Ramadge et Wonham [45]).
Pour H G Th on définit H'J := E( \H et

E ^ : H -+ P 2 (E) : s •—• {E - X \ X G Sf(.s)}

pour s G //. Alors E^(.s) donne les configurations de contrôle disponibles à s dans L sous
forme d'ensembles d'événements permis à ce point. Lorsque H = L on omet généralement
la désignation en exposant et E^(.s) = E u (.s).
Lorsque L est ainsi muni d'une technologie de contrôle, pour H € TL et K Ç //, on
dit que K est contrôlable par rapport à H si pour tout s G A"

(3X G E^(.s)) X n EI?gH(s) = EligK(s).

Ainsi K est contrôlable par rapport à H si l'ensemble des événements pouvant être générés
à la suite de s peut être restreint par un contrôle approprié (X G E"(.s)) à l'ensemble des
événements prolongeant .s dans K. Sur cette base, en définissant C : TL —* V2(L) par

C(H) := {A' Ç H | K est contrôlable par rapport à H}

et
C(II):=C(H)nTn
les propositions 15 à 19 de Wong [55] démontrent que C est une structure de contrôle
standard localement définissable. Ainsi, pour L Ç E*, il suffit que L soit muni d'une
technologie de contrôle pour en déduire qu'il existe C : Th —> V2(L) une structure de
contrôle standard localement définissable sur L. On dit qu'une technologie de contrôle
pour L induit une structure de contrôle standard localement définissable sur L. De façon
duale, les propositions 20 et 21 de Wong [55] établissent que s'il existe C : TL —*• V2(L)
une structure de contrôle standard localement définissable sur L Ç E* fermé, alors

E c : L -> P2(E) : s ^ {{a G E | sa G L -K} | K G C(L), s G K}

définit une technologie de contrôle pour L.

40
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Il existe donc un lien fort entre technologie de contrôle d'une part et structure de
contrôle standard localement définissable d'autre part. On se rappelle qu'un système (ici un
SED) est modélisé par une paire (L. Lm), où L = Lm. Dans un système, une technologie de
contrôle induit toujours une structure de contrôle standard localement définissable (sur L),
et réciproquement, pour un système muni d'une structure de contrôle standard localement
définissable il existe toujours une technologie de contrôle qui l'implémente.

[Link] Existence de lois de contrôle

Pour C : TL —* V2(L) une structure de contrôle standard localement définissable dotée


d'une technologie de contrôle E r : L —> P 2 ( E ) correspondante, on dit qu'une fonction
V : L —> P ( E ) , telle que V(s) G Eu(.s) pour .s G L arbitraire, définit une loi de contrôle
sur L.
Le comportement de L sous le contrôle de V est un langage L(V) Ç L défini par
(i) s G L(V) ;
(ii) sa G L(V) ssi s G L(V), a G V(s) et sa G L.
Pour (L, Lm) le modèle linguistique d'un système, le langage marqué de L(V) est défini
par Lm(V) = L(V) f~l Lm, et V est non bloquante si Lm(V) = L(V).

Proposition 85. [55] Soit K Ç Lm, K fi 0. Alors il existe une loi de contrôle non blo-
quante V sur L telle que Lm(V) = A' si et seulement si
(i) K est contrôlable par rapport à L ;
(ii) K est Lm-fermé.

[Link] Liens avec la théorie classique

11 est intéressant de remarquer que selon Wong et Wonham [59], dans le contexte usuel
de SCT, c'est-à-dire L Ç E* fermé où E = Econ Ù E u n c , alors pour / / G Ti

C(ll) := {A" C U\~KZunc n // Ç ~K)

définit une structure de contrôle standard localement définissable ayant Ec(.s) := V(T,con)
pour tout s e L (la technologie de contrôle standard) comme technologie de contrôle

41
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

associée. Aussi, dans ce même contexte, d'après Wong ([55], section 3.1), l'opérateur de
synthèse est alors défini par :

KH(E) = supCii(E). le plus grand sous-langage de E contrôlable par rapport à i/

pour E Q H Q L. Ainsi dans le contexte théorique de Wong, les résultats de SCT concer-
nant la synthèse sont tous applicables moyennant que le système concerné soit muni d'une
technologie de contrôle standard.

2.3.2 Modèle du contrôle hiérarchique


Lafigure2.1 (due à [62]) présente de façon schématique les éléments du contrôle hié-
rarchique. Dans cettefigureGi0 représente le système à contrôler par l'intermédiaire de Q 0 ,
l'opérateur. G ^ est un modèle abstrait ou simplifié de G/0 utilisé par C^,, le gestionnaire,
pour prendre des décisions de contrôle. G/u suit l'évolution de G;„ par l'intermédiaire d'un
canal d'information infto^, lui permettant de mettre à jour son propre état pour refléter fi-
dèlement l'évolution de G;0 à tout moment. Dans le système de bas niveau, la relation de
contrôle entre Gi0 et QG est conforme au modèle de SCT, où inf;0 procure l'information sur
l'occurrence d'événements dans G/„ et conj„ la rétroaction. L'abstraction G/u est aussi do-
tée d'une structure de contrôle conforme au modèle de SCT, de sorte que C/„ pourrait, sur
la base d'information recueillie sur inf/u, produire une rétroaction sur con/u pour contrôler
Gfc,. Mais dans les faits, le comportement de G/„ est complètement déterminé par l'in-
formation lue sur infjo/t, et générée par Gi0, le lien con^ n'est que virtuel. La rétroaction
calculée par C/,, est plutôt transmise à Q 0 , sur le lien com/,,;0, qui doit la traduire de ma-
nière à ce que G/„ assure adéquatement l'objectif de contrôle, fermant ainsi la boucle de
rétroaction du système global.

[Link] Projections causales

Pour définir le contexte formel de lafigure2.1, posons S et T les alphabets respectifs de


l'agent et de l'abstraction, où E D T = 0. Posons (L, Lm) comme modèle linguistique pour
l'agent avec L = L(G/0) fermé, représentant le comportement généré de l'agent. Le canal

42
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Abstraction

com/„/0

Agent

COIl(u

FIGURE 2.1 - Structure d'un contrôle hiérarchique

d'information inf}0/„ est alors modélisé par une fonction 9 : L —* T* ayant la propriété de
conserver les préfixes, c'est-à-dire

(VA' Q L)6(K) = 6(K).

Ce type de fonction est équivalent ([58], proposition 3) à une projection causale (définie
dans [66, 62]) où, avec LU : L —> T une fonction partielle arbitraire,

0(e) =
6(s) • Lu(sa). si u(sa) est définie
0(sa) =
9 (s), autrement

pour s G L et a G E. Ce type de projection préserve l'historique du système de bas niveau


dans le sens que pour s, u G L, si s < y alors 6(s) < 9(u).
La projection 9 : L —* T* permet de définir le modèle linguistique de l'abstraction
(M, Mm), °ù M :— 9(L) Ç T* fermé représente le comportement généré de l'abstraction
(M = L(Ght)) et A/m := 9(Lm) son comportement marqué. Par suite il est plus commode

43
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

de redéfinir la fonction 0 comme 9 : L —> M en restreignant le co-domaine de la fonction


9 originale à M. Avec 9 ainsi redéfinie, le canal com/,^ est modélisé par la fonction de
préimage par 9, c'est-à-dire

0-1 : V(M) -> V(L) : N H—+ 0~l(N) := {s G L \ 9(s) G N}.

Cette dernière fonction a, entre autres, la propriété que

(VA' erM)$-l(N)eFL
([58], proposition 4), la préimage par 9 d'un sous-langage fermé de M est donc un sous-
langage fermé de L. On peut trouver quelques propriétés utiles des projections causales en
annexe B.
Il est à noter qu'il existe à proprement parler plusieurs définitions de la fonction de
projection. À l'instar de Wong et Wonham [59] on peut définir
- 0 : L —> M, associant une chaîne de L à une chaîne de M (la définition vue plus
haut) ;
- 0t : V(L) - • V(M) : H i—• 9,(11) := {0(s) | ,s G / / } , associant un sous-langage
de L à un sous-langage de M ;
- 0„ : V2(L) — V2(M) : X .—> d»(X) := {9„(H) | H G X}, associant une famille
de sous-langages de L à une famille de sous-langages de M.
11 devrait être évident que toutes ces fonctions sont surjectives. En général on n'utilise
pas les notations 9t et #** à moins que le contexte porte à confusion, par exemple pour
une structure de contrôle C/„ sur L, 9(Ci0(L)) signifie généralement 9„(Ci0(L)). Cet usage
peut cependant porter à confusion concernant la définition à utiliser pour 9~ ' dans certains
contextes.
Notons donc que la fonction de préimage par 9, c'est-à-dire 9~l : V(M) —> V(L), est
utilisée sur des sous-langages de M et aussi, par abus de notation, pour des chaînes / G M,
par exemple 9~l(t) = 9~l({t}). Lorsque 9~l est utilisée sur des familles de sous-langages
de A/ on utilise

( r 1 ) , : V2(M) - V'\L) : X H— (9'y),(X) := {9~](N) | N G X}

par exemple 9'1(Chi(M)) = (9~%(Chi(M)) := {9~\N) | W G Chi(M)}.

44
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

On définit aussi, associée à 9 : L —r M, une fonction partielle ui : L —> T appelée


fonction de sortie, où

. . f r, si 0(.S<T) = 0(s)r ;
u;(sa) := <
(^ indéfinie, autrement.
pour sa G /^. La fonction LU n'est donc définie que pour les chaînes sa G L provoquant la
génération d'un événement à travers 9. On appelle de telles chaînes, des chaînes vocales
(voir [62]). On aura donc aussi LU l : V(T) ->• V(L) et

u; X(A') := {s G L | w(s)! A LU(S) G .Y}

pour X Ç T (LJ(S)\ dénote que u(s) est définie). Aussi LU"1^) = LU~1({T}), par abus de
notation, dénote l'ensemble des chaînes de L générant l'événement r à travers 9.
Aussi on définit
LroF:=u>~\T)U{E}

l'ensemble des chaînes vocales de L, c'est-à-dire l'ensemble des chaînes de L qui pro-
voquent la génération d'un événement à travers 9 auquel on inclut la chaîne vide.
Finalement, pour 9 : L —> M, on définit aussi 9V := 9\LUOC, la restriction de 9 à Lvoc, et
K1 P^
9-\N):=9-i(N)nLvoe
pour iV Ç M arbitraire.

[Link] Consistance du contrôle

En considérant Lm, L, 9, 9~x, M„, et A/ tels que définis précédemment, on pose Ci,,
une structure de contrôle sur L. On dit que le triplet (L. 9,Ci0) est doté de la propriété de
consistance du contrôle s'il existe une fonction C/,, : TM —* V2(M) telle que

(VNeFM)Chl(N)=9(Clo(lI)),

45
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

où H := 0 _1 (.V). La fonction C^ n'existe que si et seulement si ker 0 < kci(9 o Ci0)


et puisque 9 : Ti —* TM est surjective, C/,, est unique si elle existe. Dans ces conditions
Chi '• F M -* V2(M) est une structure de contrôle sur M ([58], proposition 5).
Le théorème 1 de Wong et Wonham [58] met en relation la propriété de consistance du
contrôle et celle de consistance hiérarchique exposée dans Zhong et Wonham [66]

Chl(N) = 9(Clo(H)) ^^ KN=0OKHO9^

pour N G TM et // := 0~1(N), en lui donnant une définition algébrique précise. On


se rappelle que K,V et HH sont les opérateurs de synthèse liés respectivement à C>u(Af) et
Ct0(J!). Dans la figure 2.1, on peut dire que KM modélisé con^ (le contrôle exercé par
l'élément C/u) et KL modélisé con(<) (le contrôle exercé par l'élément Q 0 ). En se rappelant
que 9~l modélisé com/,?;0 et 9 modélisé inf;,^,, on a informellement

con/j, ='mî\ohxo con(o o com^, 0 .

Ainsi, dans la figure 2.1, pour un objectif de contrôle E Ç M, l'effet de l'élément C^, est
de synthétiser KM(E) sur G/,, (l'abstraction). Cet effet peut être obtenu à travers l'agent
en lui soumettant 9~1(E) comme objectif de contrôle à travers comha0- L'effet de l'élé-
ment C;0 est alors de synthétiser KL O 0~l(E) sur Glo, dont la projection 9(KL O 9~l(FJ))
est parfaitement équivalente à KM(E), fermant ainsi la boucle. Ainsi on a formellement
l
KM = 9 O KI,O0 , c'est-à-dire la consistance hiérarchique pour le triplet (L, M, 9).
Tel que mentionné dans [55] (section 6.2), le problème de déterminer si un triplet
(L, 9. Cio) présente la consistance du contrôle (c'est-à-dire si ker 0 < ker (0oCio)) est géné-
ralement indécidable. Or en contrôle hiérarchique, la structure de contrôle de l'abstraction
Ciu n'existe que si et seulement si ker 0 < ker (0 o Ci0). Il est donc généralement néces-
saire de se rabattre sur des conditions suffisantes pour assurer la consistance du contrôle.
Ces conditions sont généralement exprimées sous forme de propriétés de la projection 0
assurant, entre autres choses, la consistance du contrôle. Le lecteur est invité à consulter
Wong [55] (section 6.4) et Wong et Wonham [59] (appendices A et B) pour des exemples
d'investigations substantielles dans cette direction.

46
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Il est intéressant de noter qu'il existe une forme affaiblie de la consistance du contrôle
correspondant au théorème 2 de Wong et Wonham [58], notamment

x
Cht(N) C 9(Clo(H)) <=> 9oKHo9 \Chi(N] = idcht{N)

pour N G TM et H :— 9~l(N). La consistance du contrôle n'est alors assurée que si


l'objectif de contrôle soumis à l'agent est 0~1(KM(E)), pour E Ç M.

2.3.3 La propriété d'observateur d'une projection


La définition de la propriété d'observateur fait appel à un appareillage théorique qu'il
serait trop long de reproduire ici. Aussi ce qui suit n'est-il qu'un survol explicatif. Le lecteur
est invité à consulter les travaux de Wong pour une argumentation complète sur le sujet. La
notion d'observateur en tant qu'équivalence observatiormelle entre systèmes dynamiques
origine de Wonham [61]. La thèse de doctorat de Wong [55], dont les articles [58, 59]
présentent un sommaire condensé, fournit une argumentation détaillée du sujet. Par suite
Wong et al [57] ainsi que Wong et Wonham [60, 62] font le lien avec la notion de quasi-
congruence et avec le contexte des générateurs finis.
La consistance du contrôle permet de garantir, dans le contexte du contrôle hiérarchique
(figure 2.1 ), qu'une synthèse dans l'abstraction correspond exactement (du point de vue du
contenu des langages synthétisés) à une synthèse équivalente dans l'agent. De ce point de
vue, il est garanti que tout langage contrôlable de l'abstraction peut être implémente à tra-
vers l'agent. Rien ne garantit cependant qu'une synthèse non bloquante dans l'abstraction
correspond nécessairement à une synthèse non bloquante dans l'agent. Pour obtenir cette
assurance il faut concevoir la projection de façon à ce qu'elle soit dotée d'une propriété
appelée propriété d'observateur.
La figure 2.2 illustre informellement le problème. Dans cette figure le modèle pour L
indique en fait la dynamique de la paire (L,0). Les transitions entre états sont étiquetées
par des expressions de la forme n/r signifiant que la génération de a par l'agent provoque
la génération d'un événement abstrait r, ou encore que 0(a) = r. Le modèle pour M n'est
qu'un simple générateur pour le langage. Les états sont étiquetés par les chaînes respecti-
vement générées (l'historique) dans chaque système à chaque point de leur évolution. La

47
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

technologie de contrôle de L (l'agent) est standard et tous ses événements sont contrôlables
ce qui induit une technologie de contrôle standard dans A/ (l'abstraction) où tous les évé-
nements abstraits sont aussi contrôlables. Puisque tout est contrôlable, il est aisé de vérifier
qu'il y a consistance du contrôle. On a donc L = {e, a, 3. try, [35}, Lm = {«7. (36} et
M = {S, T, TTi, TT2}, Mm = {TTi, TT2}.
Soit donc E = {TTI} Ç M un objectif de contrôle. Alors KM(E) = E est A/m-fermé
c'est-à-dire que E = E D Mm = {e, r, TT\ } n {TTI . TT2} et donc non bloquant, c'est-à-dire
que E = E n Mm. Par consistance du contrôle on a que KM(E) = 9 o KL O 9~~1(E). Dans
ce contexte, tout se passe comme si on synthétisait directement la préimage de l'objectif
de contrôle 9~X(E) sur l'agent, et on peut vérifier que K' := K[, O 9~l(E) — {«7} est non
bloquant dans l'agent c'est-à-dire K' n Lm = {e, a, aj} Ci {0:7, [36} = {e. o, cry} = K'.
Cependant la stratégie du contrôle hiérarchique est indirecte ; elle vise à implémenter
une loi de contrôle 14; dans l'agent sur la base de la loi de contrôle obtenue pour l'abs-
traction V'r en utilisant une règle telle que celle utilisée dans Wong et Wonham [59] (pro-
position 12 en appendice C). Le résultat de cette manoeuvre équivaut (du point de vue
du contenu des langages concernés) à utiliser 0~1(KM(E)) comme spécification pour une
synthèse sur l'agent (voir à cet effet [59], postulat à la proposition 12). On vise donc à
implémenter le langage K := KL O ^ ~ , ( K ^ / ( £ ' ) ) sur l'agent, sachant que sa projection
9 o KI o 9"1(KM(E)) = KM(KM(E)) = KM(E) est précisément L(VT/Ghi), le comporte-
ment sous contrôle du système de haut niveau. Mais voilà, dans l'exemple de la figure 2.2,
K := {s, a, (i, 0:7} et ce langage est bloquant à l'état [3 dans l'agent. Ici d se retrouve
dans la spécification parce que 9(a)rx = TT\ G KM(E) et donc r G K-M(E). Ainsi

/, M

FIGURE 2.2 - Contrôle hiérarchique bloquant

48
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

0~HKXf(E)) D 9~1(T) = {ttjl} et les deux chaînes partagent la même classe d'équi-
valence de ker 0. Or il n'y a pas de chaîne s G L où fi < s et 0(s) — TTX et l'agent
bloque. Une façon de remédier à ce problème est de construire 0 (ou de la raffiner) de sorte
que toutes les chaînes de L partageant une même classe d'équivalence de ker 9 aient le
même ensemble de développements futurs à travers 9. Ceci est l'essence de la propriété
d'observateur.

[Link] Quasi-congruences et projections causales

Il existe une caractérisation alternative de projection causale en plus de celle donnée en


section [Link]. Cette caractérisation fait appel à la notion de quasi-congruence.
Pour deux ensembles X et Y, une fonction / : X —> V(Y) et une relation d'équiva-
lence p G £(Y), on définit p o / G £(X) par ,

r = x'(mod pof)<=> pp(f(x)) = pp(f(x'))

p o u r x , x ' G X, etoùpp : V(Y) -» V(Y/p) : Y' •—• {[y]p \y G Y'} est l'extension
standard de la projection canonique par p dont le domaine a été étendu à des ensembles.
Ainsi p o / = ker (pp° f) car pour g : X —» Y, x = x'(mod p o g) si et seulement si
g(x) = g(x')(rnod p).
Pour X un ensemble et a ; : A" —> V(X) un ensemble de fonctions d'index i G /, on
appelle la structure <S := (X, {«; | i G /} ) un système dynamique (non deterministic dyna-
mic system dans [62]). Dans un tel système, les éléments de l'ensemble X sont considérés
représenter les états du système et l'ensemble des {a, | ? G /} représente la dynamique du
système (l'effet de sa fonction de transition). Par convention on étend généralement le do-
maine de <yt à des ensembles at(X') := ( J J g v , o,(x) pour X' Ç X. On dit que LU G £(X)
est une quasi-congruence pour S si

LU < /\(LU O a,).

Pour L Ç E* un langage arbitraire (pas nécessairement fermé) sur un alphabet E, en


définissant pre : E* —• V(E*) : s \—• {s} l'opérateur de fermeture préfixée, on a le
résultat suivant.

49
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Proposition 2. [57] Si 0 : L —> 7'* est une projection causale, alors ker 9 < (ker 0) o pre.
Symétriquement, pour TT G £(L) telle que n < TT o pre, il existe un alphabet d'événements
T et une projection causale 0 : L —* T* pour laquelle ker 0 = n.

Autrement dit, dans des termes légèrement différents ([60], proposition 2.1), la pro-
jection 0 : L —• T* n'est causale que si ker 9 est une quasi-congruence pour le système
dynamique (L, pre). Et réciproquement s'il existe une quasi-congruence n G £(L) pour le
système dynamique (L. pre) alors il existe T et une projection causale 9 : L —*T* tels que
ker 0 — -n.

[Link] Modèle d'une projection causale

Il est souvent utile de modéliser une projection causale sous forme d'une machine de
Mealy (voir [31]). Rappelons qu'une machine de Mealy déterministe est une structure al-
gébrique (un 7-uplet)

A = (X,Z.T,t;,0,xlhXtn)

où X est l'ensemble d'états, E l'alphabet, T un alphabet de sortie, ( : X x E —> X la


fonction (partielle) de transition, <j> : X x E —> T une fonction (partielle) de sortie, x 0 son
état initial et Xm l'ensemble de ses états marqués. On note tout de suite que l'AFD

Ats = (X,H,^,x0,Xm)

constitue la structure de transition (transition structure dans [60]) de la machine de Mealy.


Naturellement il est possible de spécifier des machines de Mealy dont la structure de tran-
sition n'est ni déterministe ni finie.
Pour modéliser une projection causale 0 : L —• M (L Ç E* et M Ç T* fermés avec
E n T = 0) par une machine de Mealy, il est commode de procéder à partir d'un générateur

G t s = (Q.S,ô, 7 o,Qm) (2.1)

où L = L(G t s ).

50
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

On adjoint à G t s un alphabet T U {r 0 } et une fonction de sortie A : Q x E —> T U {r 0 }


définie par

{ r0,

r.
si 9(sa) = 0(.s) et sa G L ;

si 9(sa) = 0(.s)r et .sa G L ; (2.2)


indéfinie, autrement.
Ici l'occurrence de l'événement r 0 0 T U E à la sortie de la machine de Mealy signifie que
9 efface l'événement correspondant à une certaine transition dans G t s , et cette transition
est alors dite inobservable à travers 0 (non vocal transition par opposition à vocal transition
dans [58]). On forme ainsi
G = (Q. E, T U {ro}, S, A, q0, Qm) (2.3)

la machine de Mealy modélisant la paire (L. 0) et ayant G t s comme structure de transition.

[Link] Système dynamique correspondant à une projection causale

Pour exprimer le système dynamique correspondant à (L, 0) il est nécessaire d'incor-


porer le comportement de la fonction de sortie de la machine de Mealy dans sa structure de
transition. Pour ce faire on a besoin de la notion de réétiquetage d'un automate.
Soit G = (Q, E, S, i/o, Qm) un automate potentiellement non déterministe; donc on a
ô : Q x E —+ 2Q. L'ensemble des transitions de G est alors donné par

% := {(q, a.q')EQxExQ\ q'G ô(q, a)}.

On dit qu'un automate G' = (Q, E'. S', r;0. Qm), (potentiellement non déterministe) consti-
tue un réétiquetage de G s'il existe une fonction surjective (dite fonction de réétiquetage)

r : % - %• : (q, a. q') ^ (q, a', q')

où a' G E', transformant G en G'. Si G' est déterministe, alors G' constitue un réétiquetage
déterministe de G.

51
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Pour une machine de Mealy G (définie comme dans l'équation 2.3) modélisant la paire
(L,0), on définit
G = (Q,ZUT,Zqo,Qm) (2.4)

un réétiquetage de sa structure de transition (G t8 ) avec rc : % —* T~6 définie comme suit :

/ (q,T,q'), sï\(q.a) = r G T ;
rG((q,a,q)):=l .
r
[ (q,a,q ), siX(q, a) = r 0 .

Ainsi /Q remplace, dans G ts , l'étiquette de toutes les transitions observables à travers 0 par
le symbole généré par la fonction de sortie de la machine de Mealy lors de cette transition.
11 se peut que G soit non déterministe.
On peut alors exprimer le système dynamique (non déterministe) correspondant à G en
définissant
AT : Q - 2Q : q .— \J{ 6(q, UTU') | UU' G (E - T)* }

pour chaque r G T et

u
A m : Q - 2«« : </ —+ (J< ^ ) n Q m | u € (E - T)* }

et on obtient l'expression du système dynamique

G := (Q, {Ar | T G T} U {A m }, q0, Qm) (2.5)

en supposant que m G" T. Ici Am(q) Ç Q m représente l'ensemble des états finaux que
l'on peut atteindre à partir de q G Q dans G, en empruntant seulement des transitions
inobservables à travers 0. De même, AT(q) C Q représente l'ensemble des états que l'on
peut atteindre à partir de q G Q dans G, en empruntant uniquement que des chemins ne
contenant que des transitions inobservables à travers 0 en plus d'une et une seule transition
observable à travers 0 d'étiquette r.
Cette définition du système dynamique correspondant à une structure de transition est
conforme à la notion de système dynamique donnée précédemment ; la présence d'un état
initial q0 et d'un ensemble d'états marqués Qm ne change rien de fondamental. On peut

52
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

étendre la définition de A r aux chaînes /r G T* de la façon suivante :

AtT(q) = U ^ M k e ^ f o ) }
pour q GQ.

[Link] Caractérisation exhaustive d'une projection causale

Pour lier l'argumentation présentée par Wong et Wonham [58] (et aussi [55] et [62])
à la présentation du concept d'observateur par Wong et Wonham [60], il peut être utile de
considérer certaines des différences apparentes entre les deux argumentaires. Dans [60] en
section 2.4.2, vers la fin, on y fait la remarque suivante :
One of the objectives of the paper is to define a computation on a (finite) Mealy
automaton G producing a causal reporter map 0* which has -n* as its équiva-
lence kernel. To do this, we need to relate the computation on G to w*, which
is an équivalence relation on L.
Ce qui suit (dans [60]) présente un intérêt certain aux lecteurs de [58].
On définit la structure de transition T t s = (X, E, £, r 0 , Xm), un automate déterministe
(dont l'espace des états n'est pas nécessairement fini) pour lequel il existe une bijection
/ : L —» X, où L = Lm Ç E*, et telle que
1. /(c-) = . x 0 ;

2. j(Lm) = Xm ;
3. pour s G L et cr G E, Ç(f(s). a) est définie si et seulement si sa G L et dans ce cas
É(/(*),<r) = / M .
Ensuite on adjoint à T t s l'alphabet de sortie T u {r 0 } et la fonction de sortie A° : X x E —>
1
TU {T 0 } induite par A°(x, a) = \(f (x). a), où A est telle que définie dans l'équation 2.2
-1
et y* est l'inverse de la bijection / . Par abus de notation on utilisera A pour A° quand le
contexte sera clair, et la fonction de transition est étendue aux chaînes £ : X x E* —* X de

53
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

façon standard (voir section 1.1.3) au besoin. On obtient donc la machine de Mealy

T = (A',E,TU{r 0 }^,A,x 0 ,A' m )

et il devrait être clair que le graphe de T est un arbre (possiblement infini) tel qu'illustré en
figure 2.3. Comme dans l'équation 2.4, pour T t s , on obtient

T = (X,'ZuT,lxo,Xm)

et le système dynamique

f = (X, {ET | r G T} U {E m }, x0, Xm)

similairement à celui de l'équation 2.5.


Toute relation sur L peut donc être induite sur T t s de la façon suivante. Pour une relation
binaire p sur L, on induit px une relation binaire sur A' par

(X,X')GPX <=> (/- l (-x-),rV))ep

pour x, x' G A". Ainsi ker 0 (ou toute autre relation d'équivalence sur L) peut être induite
sur X de même que le pré-ordre entre préfixes sur les éléments de L, c'est-à-dire pour
x, x' G X, x < x' si et seulement si il existe s G E* pour laquelle E,(x, s) = x'.
Une projection causale 9 : L —> M pour L = Lm Ç E est dotée de la propriété
d'observateur si et seulement si ker 9 est une quasi-congruence sur T. Dans ce cas, la
relation d'équivalence -K* correspondante une fois induite sur X peut s'exprimer en termes
de ST et Em comme suit :

7T* = sup l TÏ G £(X) | 77 < (ker 9) A (TT o pre) A ( / \ (TT O E r ) J A (n o E m )

On peut contraster le contenu de lafigure2.3 avec le contenu de la figure 7 dans [58]


et l'argumentation associée. L'ensemble X0 dans [58] correspond donc à l'ensemble A'
dans [60]. Alors T constitue effectivement un modèle de la paire (L, 9) et le graphe de T

54
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

T (/,, 0) T(M
ker 0

•K* < ker 0

~T(XO) = {^2,^3,^6,^7}
H T (xi) = {x 2 ,x 3 }
=-T(X$) = {x6,X7}

FIGURE 2.3 - Modèles de la paire (L, 0)

55
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

n'est rien d'autre qu'un arbre d'accessibilité au même titre que Le dans [58]. De plus, en
utilisant la projection naturelle Pr : (E U T)* —> T qui efface toute occurrence de cr G E
dans L(T), on se rend compte que l'ensemble des relations de transition ST pour r G T
dans [58] correspondent exactement aux relations H r de T définies précédemment. On peut
donc assimiler (à quelques détails près) la congruence n* à la congruence observationnelle
ne définie dans [61] et mentionnée dans [58].
Concernant les preuves de l'existence de w* le lecteur est invité à consulter [60, 62,
61]. D'après Wonham [62], pour un système dynamique quelconque S := (AT, {a t | i G
/}), où i G / est un ensemble fini d'index, J_ G £(X) est une quasi-congruence pour
S et l'ensemble des quasi-congruences pour S forme un sous-treillis supérieur de £(X)
muni de la disjonction. Aussi d'après Wonham [61 ], pour un ensemble Y et une fonction
7 :X - Y,

LU* := sup < LU G £(X) | LU < (ker 7) A A (LU O m) >


l iÇ.1 J
existe et, sous certaines conditions (les fonctions et* doivent toutes posséder une image
finie), LU* peut être calculée (voir [60]).
On observe finalement dans la figure 2.3, que pour x = x'([Link] n*), non seulement les
chaînes correspondantes s — f~*(x) et s' = f~l(x') de L ont le même historique abstrait
(c'est-à-dire dans M) mais elles ont aussi le même développement abstrait dans M. On
note aussi que pour une projection causale 9 : L —> M arbitraire, ker 9 est généralement
strictement plus grossière que n*. Ainsi doter 9 de la propriété d'observateur requiert une
raffinement de ker 9.

[Link] Propriété d'observateur et quasi-congruences

Pour un langage H (potentiellement non fermé) sur un alphabet E et une chaîne s G S",
la fermeture postfixée de s dans / / , notée posu(s) est constituée de toutes les extensions
de .s dans // (c'est-à-dire posH(s) := {?/. G // | .s < ?/.}). Ainsi pour // fixé, posH est une
fonction de E* vers V(H). Posons H Ç L et 9 : L —• T* causale. On dit que 9 est un
//-observateur si ker 0 est une quasi-congruence pour le système dynamique (L, posH).
Ainsi pour un //-observateur 0, si s = s'(mod ker 0), c'est-à-dire 0(s) — 9(s'), alors
s = s'(mod (ker 9) oposn), c'est-à-dire que pour tout u G posn(s) il existe u' G posn(s')

56
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

pour lesquels u = u'(mod ker 9) et vice versa. En d'autres termes, si 9(s) = 9(s'),
alors pour une extension .si; G // de .s, il existe une extension s V G // de s' telle que
0(sv) = 0(s'v'). Ainsi lorsque 9 est un //-observateur, si 9(s)t G 0(11) alors peu importe
la progression de l'agent dans sa structure de transition, tant et aussi longtemps que son
image par 0 est égale à 0(s) l'agent reste toujours en mesure de générer une chaîne de H
dont l'image est 0(s)t.

Lemme 2.1. [60] Soit 0 : L —* T* causale et H Ç L. Alors 9 est un H-observateur si et


seulement si

(Vs G I)(V t G T*) 9(s)t G 9(11) => (3 u G H*)su G / / et 9(su) = 0(s)t.

Lorsque H = L on dit que 0 est dotée de la propriété d'observateur, ou simplement que


0 est un observateur. Dans ce dernier cas, la formulation suivante du résultat du Lemme
2.1 (en provenance de [58]), plus simple, est possible et souvent utilisée dans les démons-
trations. Pour L fermé et M := 0(L) Ç T*, la projection causale 0 : L —> M est un
observateur si et seulement si

(Vs G /,)(V r G T) 9(S)T G M = > (3 u G E + ).su G / et 0(su) = 0(s)r.

La proposition 8 de Wong et Wonham [58] démontre la propriété suivante des projec-


tions causales dotées de la propriété d'observateur :

9 est un observateur <=> 9~l o preM — pre;, o 0"1

où pre M et pre.i sont respectivement les opérateurs de fermeture préfixée sur A l et L. Ainsi
pour L et M fermés, 0 : L —• M causale dotée de la propriété d'observateur, on a que pour
tout Ar Ç M alors 9~1(N) = 0~HN).
Il est aussi intéressant de noter qu'un /^-observateur est aussi un /-observateur pour
L = Lm, d'après la proposition 4.4 dans [14].

57
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

2.3.4 Contrôle hiérarchique non bloquant


La théorie du contrôle hiérarchique non bloquant suppose que pour la structure de
contrôle de bas niveau C/„ la propriété suivante est toujours vérifiée,

(VA'GP(//))77GC,0(//) => KeClo(H) (2.6)

pour / / G TL- Cette règle stipule simplement que la contrôlabilité d'un langage est dé-
terminée par la contrôlabilité de sa fermeture préfixée. Cette propriété est toujours vérifiée
pour les structures de contrôle standard (voir [55]). On suppose aussi une forme de consis-
tance de contrôle, bien que, selon [58], il suffit que C}U(M) — 0(Cio(L)).
On se rappelle que pour L G E* fermé, Lm Ç L constitue le langage marqué du
système. On dit que E Ç L est non bloquant si E = E D Lm. On note que si E — En L„,,
c'est-à-dire que E est Lm-fermé, alors E est sûrement non bloquant, mais il n'est pas
nécessaire que E soit Lm-fermé pour qu'il soit non bloquant pourvu que E Ç E D Lm.
On suppose donc le contexte du contrôle hiérarchique de la figure 2.1 pour le reste de
cette section, notamment :
1. L G E* est un langage fermé sur un alphabet fini E modélisant un système de bas
niveau appelé l'agent, muni d'une structure de contrôle C;0 répondant au critère de
l'équation 2.6 ;
2. M G T* est un langage fermé sur un alphabet fini T modélisant un système de
haut niveau appelé l'abstraction, muni d'une structure de contrôle C^, que l'on peut
supposer être standard ;
3. 0 : L —> M est une projection causale.
Bien sûr on a aussi L,n Ç / et Mm Ç M définissant respectivement les langages marqués
de L et M, et on suppose que C/,,(A/) = 9(Ci0(L)).
D'après la proposition 15 dans [58],

(M E Ç M) KL o 9~X(E) non bloquant => nM(E) non bloquant

c'est-à-dire que s'il est possible d'obtenir une synthèse non bloquante dans l'agent à partir
de la préimage de l'objectif de contrôle abstrait (9~l(E)), alors par consistance du contrôle,

58
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

il est certain que la synthèse de l'objectif de contrôle dans l'abstraction est elle aussi non
bloquante, c'est-à-dire
KM(E) = KM(E)n Mm.

Le problème du contrôle hiérarchique non bloquant est donc de pouvoir garantir qu'une
synthèse d'un objectif de contrôle abstrait (KM(E) pour E C M), non bloquante dans le
système de haut niveau, résulte toujours en une implémentation non bloquante dans l'agent.
Wong et Wonham [58] procèdent à démontrer qu'il surfit que la paire (L. 0) soit for-
tement observable par rapport à un certain sous-ensemble clef de sous-langages de Ci„(L)
pour assurer le résultat, pourvu que l'on ait 0~l(0(Lm)) = Lm, la consistance du marquage.
Premièrement, la paire (L, 0) est dite fortement observable si 0\K (la restriction de 9 à
K) est dotée de la propriété d'observateur pour tout K G C[a(L). Deuxièmement on pose

X •- {K G Ci„(L) | nh o 9~\9(K)) = K}

l'ensemble des sous-langages contrôlables et fermés de L qui sont maximaux par rapport à
leur projection dans M. On note qu'il peut exister Kx, K2 G Ci0(L) où A'! C K2, A"2 G X
et 9(K\) = 9(K2), c'est le cas dans l'exemple de la figure 2.2 pour K'. De tels langages
ne sont pas maximaux par rapport à leur projection dans M et donc ne sont pas inclus dans
X. On dit que la paire (L, 9) est fortement observable par rapport à X lorsque 0\K est un
observateur pour tout K G X.
Il est intéressant de noter, comme mentionné en préambule (exemple de la figure 2.2),
que le contrôle hiérarchique est une stratégie indirecte visant à implémenter sur l'agent un
comportement contrôlé dont la projection simide un comportement contrôlé de l'abstrac-
tion générant K A / ( / ? ) . Cette implémentation s'effectue par calcul de la loi de contrôle de
l'agent Vx, directement à partir de la loi de contrôle obtenue dans l'abstraction Vr pour la
synthèse KM(E) et correspond (voir [59], postulat à la proposition 12) à KL O 0~1(KM(E)).
On vise donc à implémenter KM(E) = L(Vr/Ghx) par projection de KL O 9~1(KM(E))
à travers son implémentation L(Vz/G[0). Ainsi on réfère souvent à «•/, o 9~X(KM(E)) en
tant qu'implémentation sur l'agent du comportement de la synthèse de haut niveau. Or en
présence de la consistance du contrôle, sous provision que la restriction à l'équation 2.6

59
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

soit vérifiée, on a toujours que

KLO9~1(E) Q KLO 9~l(KSi(E))


KLo9-l(k^tJË)) G X

pour E Ç M (voir [58], démonstration de la proposition 16). Dans ces conditions, la


proposition 16 de [58] démontre que lorsque la paire (L, 9) est fortement observable par
rapport à X on a en fait que

KL O 9-\KMË)) = KLO0 H £ ) •

1
Par suite on obtient le résultat du théorème 4 [58], à savoir que lorsque Lm = 9 (Mm)
et que (L. 9) est fortement observable par rapport à X alors

(y E Ç M) KM(E) non bloquant <=> KL O 0~X(E) non bloquant

qui est le résultat recherché.


Cependant il faut encore pouvoir assurer que (L, 0) est fortement observable par rapport
à X. En proposition 17, Wong et Wonham [58] prouvent que lorsque Chl(M) = 0(Clo(L)),
pourvu que 9 soit dotée de la propriété d'observateur, il suffit qu'il y ait absence de cou-
plage de contrôle pour conclure que la paire (L, 9) est fortement observable par rapport à
X.
On appelle absence de couplage de contrôle ou absence de partenaire de contrôle (de
l'anglais «generalizedpartner-freedom condition») la propriété suivante :

0vX ° KM < Kl O 0~X O KM •

Un couplage de contrôle se produit dans l'agent lorsque la génération de deux ou plusieurs


chaînes t, t' € M est liée à un seul élément de contrôle dans l'agent. Dans cette situation,
la suppression (par synthèse abstraite) de l'une de ces chaînes entraîne nécessairement la
suppression implicite des autres puisque l'agent ne dispose pas de la finesse de contrôle
requise pour les supprimer indépendamment les unes des autres (voir la section B.2).

60
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Ainsi lorsque 0 est un /-observateur, l'absence de couplage de contrôle ((9,7l o K;W <
KL o 0~l o 7?A/) assure que la propriété d'observateur de 0 se propage à tous les langages
K €X.
Sommairement, on obtient alors le résultat suivant.

Théorème 6. [58]
En présence de la consistance de contrôle, en supposant que la restriction de l'équation 2.6
est vérifiée et que
9-\Mm) = Lm;
9 est dotée de la propriété d'observateur ;
9~x o FA/ < nL o 0~x o 7viW,
alors
(V E Ç M) KM(E) non bloquant •<=> KL O 0~X(E) non bloquant.

On trouve en annexe A une adaptation des propositions et preuves de Wong et Wonham


[58] concernant le contrôle hiérarchique non bloquant, pour le cas où on ne dispose que de
la forme restreinte de la consistance du contrôle

Chi(N) C 0(Clo(II)) <=* 0or,Ho 0~x\chl(N) = idchAN)

pour N G Tu et H := 0"l(N) G TL (conditions du théorème 2 dans [58]).

2.3.5 Implémentation d'un contrôle hiérarchique non bloquant


L'ensemble des notions couvertes dans cette section sont détaillées au niveau formel
dans les sections 6.3 et 6.4 de [55].
Dans cette section, pour alléger l'écriture, on utilise A/(V%) pour signifier L(V^/Ght)
le comportement de Ghl (l'abstraction) sous l'effet d'une loi de contrôle V'v : A/ —> V(T)
(voir la section [Link]). Ainsi A/m(V/v) signifie le langage marqué associé à Hy^/Ght)
donc / ( V J V / G / U ) n Mm. Similairement on utilise respectivement L(VK) et Lm(VK) à la
place de L{VK/Gi0) et L(VK/Gi0) n L m , pour le comportement de G;„ (l'agent) sous le
contrôle de VK : L -* V(T.) et son langage marqué sous contrôle.

61
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Supposons (L, Lm) et (M, Mm), les modèles d'un agent et de son abstraction respec-
tive, munis respectivement de C/„ et C^ deux structures de contrôle elles-mêmes munies
respectivement de technologies de contrôle correspondantes E ( .() et T ( ; (). On suppose
bien sûr qu'une forme de consistance de contrôle existe entre Chl et Ci„. Supposons en plus
que 9 : L —> M est dotée de la propriété d'observateur, qu'elle est libre de couplage de
contrôle, c'est-à-dire que 0~x o KM < KL O 9~X O KM, et qu'aussi le système possède la
consistance du marquage 0~x(Mm) = Lm.
Soit maintenant un objectif de contrôle A/,„-fermé E Ç M et posons N := KM(E).
Supposons /V non vide. Alors N = K-M(E) Ç E = B f l Mm Ç Mm et N Ç A/m est
A/m-fermé. Par la proposition 85 de Wong [55], une loi de contrôle VN : M —• V(T) telle
que

Mm(VN) = Mm n A/(Kv) = KM(E) = /V


M(VN) = K^(Ë) = N

existe, et cette loi de contrôle est non bloquante.


Posons maintenant K := KL O 0~X(E). Alors K est non vide et 0(K) = N. Par le
théorème 6 de Wong Wonham [58], K est non bloquant. D'autre part puisque E Ç A/m
par consistance du marquage, A' = nL o 9~l(E) Ç 9~X(E) Ç 9~x(Mm) = Lm et ainsi
K Ç Lm est Lm-fermé. On a donc encore une fois (par la proposition 85 de Wong [55])
que VK : L -> P(E) telle que

Lm(VK) = LmnL(VK) = KLo9~x(E) = K


L(VK) = KL o 9~i(E) = KL o 0-xÇ^1JÊ)) = K

existe et est non bloquante.


D'après Wong [55], pour que l'on puisse calculer une loi de contrôle sur un agent à
partir d'une loi de contrôle sur l'abstraction qui lui correspond, ces deux lois de contrôle
doivent être synchrones. Or d'après la proposition 86 de Wong [55], en présence de consis-
tance du contrôle, lorsque VK et V/v existent il suffit que 9 soit dotée de la propriété d'ob-
servateur et qu'il y ait absence de couplage de contrôle (9~x o 7ôw < KL O 9~X O KM) pour
que VK et V^ soient synchrones.

62
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Le calcul s'effectue alors d'après une règle qui dépend des propriétés du système. Par
exemple pour le contexte de Zhong et Wonham [66], où la propriété OCC (voir [59], ap-
pendice A) procure la consistance de contrôle entre l'abstraction et l'agent, on retrouve en
appendice C de [59] une formulation synthétique de la règle à utiliser. Dans ce contexte la
loi de contrôle VK : L —* P(E) est définie par la règle suivante :

VK(s) = E„U{a G S01 (Vs' G E;)(Vr G T) 0(sas') = 9(s)r => T G VN(9(s)) (2.7)

pour s G L. La proposition 12 de Wong et Wonham [59] prouve que cette loi de contrôle
procure effectivement le résultat désiré à savoir que

Lm(VK) = LmnL(VK) = KLo9-1(E) = K,


X
L(VK) = KL o0 (E) = KL o 0-X(K~MTË)) = 7?.

On peut trouver dans la section B.4 plus de détails sur cette construction et sur les concepts
reliés.

2.4 Contrôle hiérarchique par interface


Le contrôle supervisé hiérarchique par interface (HISC - Hierarchical Interface-based
Supervisory Control [35, 38]) a vu le jour sous la forme d'une approche de vérification.
On y a plus tard associé la synthèse (voir [36, 9, 52]). Son intérêt réside dans le potentiel
qu'il offre (du moins théoriquement) pour la modularisation verticale de composantes et
pour la réduction de complexité qu'il apporte au processus de vérification des propriétés de
contrôlabilité et d'absence d'impasse. On peut voir HISC comme une approche adaptable
aux principes du génie logiciel qui utilise une structure de contrôle conforme à SCT pour
permettre la vérification formelle des composantes. Lafigure2.4 donne une représentation
schématique des principaux éléments de HISC et de leur arrangement conceptuel.
Conceptuellement, il s'agit d'une architecture en deux couches où un système client
(composante de haut niveau) utilise les services d'un système serveur (composante de bas
niveau) à travers une interface de type commande/réponse. Comme on peut le voir sur la
figure, les alphabets d'événements du client, du serveur et de l'interface sont disjoints.

63
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

E = EH U E; U E,,
0 = Ew n E;, = E„ n E, = E t n E,

E; EfluE,4 0 E«nE/i
O
ttl-Oi A

«*•
Gt I Et

A e ER n, e T,A

a) Interface, structure en étoile b) Structure en deux couches

FIGURE 2.4 - Éléments architecturaux de HISC

64
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Les spécifications de comportement sont données sous forme d'AFD. Le cas illustré
dans la figure 2.4 est le plus simple et il ne sert qu'à bien comprendre l'exposition, car il est
ensuite étendu à un cas plus général où le client coordonne l'activité de plusieurs serveurs
fonctionnant en parallèle, mais dont les alphabets sont tous disjoints deux à deux.
À remarquer que le langage de l'interface L(G/) est toujours formé de paires com-
mande/réponse alternées. De plus, une tâche, dans l'interface, ne peut être considérée com-
plète que lorsque la réponse correspondant à une commande donnée au préalable a été
reçue. Ainsi, / m ( G / ) n'est formé que de paires commande/réponse aussi. La forme en
étoile illustrée dans la figure n'est que la plus simple des structures possibles. Elle peut être
généralisée pour inclure une notion de mode de fonctionnement.
En reformulant légèrement le problème pour inclure l'usage de l'interface et pour ex-
primer le comportement contrôlé des systèmes, on peut considérer que le comportement
contrôlé du système de haut niveau s'exprime par G// := GPH || S/; où GPH exprime le
comportement libre du système de haut niveau. La composante S// est alors un AFD qui
exprime à la fois le contrôle de G # et l'usage anticipé de l'interface par le client (S« étant
défini sur E// U E/). On peut faire la même chose pour la paire G L , S*,, avec SL et GPL
défini sur E^ U E/. Alors HISC démontre que, sous certaines conditions (à vérifier à l'aide
d'algorithmes donnés dans [38]), le système est contrôlable et non bloquant.

1. Si G a, GL et G/ sont sériai level-wise nonblocking (non bloquants par niveau)


et sériai interface consistent (consistants à l'interface), le système global est non
bloquant.
2. Si GPH et GPL, munis respectivement des superviseurs S// et S/, ainsi que de l'inter-
face G/, sont sériai level-wise controllable (contrôlables par niveau), alors le sys-
tème global est contrôlable.

Les vérifications se font indépendamment entre deux composantes de niveaux diffé-


rents (level-wise sur G// et G^,), procurant un gain appréciable en complexité lorsque le
niveau inférieur contient plus d'une composante. La théorie est étendue au cas de plusieurs
serveurs (composantes de bas niveau) en donnant un principe permettant la séparation de n
systèmes parallèles en n systèmes client/serveur indépendants et équivalents, globalement,
au système original (sériai System extraction).

65
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Des algorithmes sont donnés dans [35, 38] et dans [37], pour l'ensemble des vérifica-
tions. Les algorithmes correspondants pour la synthèse sont donnés dans [9].
HISC possède de toute évidence des caractéristiques intéressantes pour la conception
modulaire. Mais ses auteurs concèdent qu'elle présente tout de même certains problèmes.
1. La méthode ne garantit pas un comportement contrôlable et non bloquant qui soit
maximal au sens de la théorie originale ; un inconvénient mineur à concéder pour
obtenir la modularité.
2. La méthode semble confiner à une approche client/serveur en deux couches [37]. Du
moins les auteurs n'abordent pas les difficultés d'extension à plus de deux couches.
Il est probable qu'une extension vers le haut (d'un système parallèle) requiert de re-
prendre la vérification de chaque module globalement. Cependant les gains en termes
de réduction de complexité demeurent valables.
On peut noter aussi que lorsque l'on se limite à utiliser cette variante dans un rôle de
vérification, la spécification du système de haut niveau (système maître) doit être donnée
sous forme d'un AFD monolithique (le superviseur S//). Ceci peut souvent se révéler être
un exercice difficile, et dont on ne peut pas aisément recouvrer l'ensemble des objectifs de
contrôle initiaux.

2.5 Approche états ou modèle avec prédicats


11 est souvent plus facile d'utiliser un formalisme de logique pour exprimer des proprié-
tés relatives au contrôle sur les systèmes. À cet effet, Wonham, Rogers et Ma [62, 39] for-
mulent une approche duale à l'approche linguistique de SCT utilisant des prédicats comme
base pour la spécification des éléments du contrôle.
Cette approche utilise des prédicats qui expriment des conditions sur les états du sys-
tème G = (Q, E, S, qo, Qm)- Tout prédicat P : Q —> {0.1} peut toujours être identifié à
un élément de 2Q par QP :— {q G Q | P(q) = 1}. On dit que q f= P (q satisfait P) si et
seulement si q G Qp. Si Q est fini, l'ensemble des prédicats sur Q, dénoté Pred(Q), est
fini et identifié à 2(i en ce sens que P agit comme une indicatrice sur Q{>.
En plus des opérateurs logiques usuels (conjonction, disjonction et négation), on définit

66
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

aussi la relation <, où t\ •< P2 si et seulement si I\ A P2 — I\, c'est-à-dire l\ => P>.


Considérant que < dans Prcd(Q) est analogue à C dans 2°, il est clair que (Pred(Q). ;<)
définit un treillis complet dont la borne supérieure, si\p(Pred(Q)) = true (le prédicat le
plus faible), correspond à Q, et la borne inférieure, mî(Pred(Q)) — false (le prédicat le
plus fort, au sens du plus restrictif), correspond à 0.
Dans cet espace on définit R(G, P), pour P G Pred(Q), le prédicat d'accessibilité
correspondant à G sous P par

1. qo\=P=>qn\=R{G,P);
2. q [= R(G, P) A S (q, a)\ A S(q, a) \= P =» S(q, a) \= R(G, P) ;
3. aucun autre état ne satisfait R((J, P).
R(G, P) est identifié à l'ensemble des états que l'on peut atteindre dans G à partir de q0,
en n'empruntant que des trajectoires d'états satisfaisant P. Clairement, pour un générateur
G fixé, R(G, •) : Pred(Q) -» Pred(Q) définit un foncteur.
Pour exprimer la condition de contrôlabilité dans cet espace il est nécessaire de définir
un autre foncteur Ma : Pred(Q) —> Pred(Q), où q f= M„(P) <=> S(q, a) (= P lorsque
S(q, a)\. Alors, P G Prtd(Q) est dit contrôlable par rapport à G lorsque

P * R(G, P) A (Va | a G E u : P < Ma(P)).

Il est clair que R(G, P) •< P en général, donc la contrôlabilité implique que R(G, P) — P.
Notamment, P est accessible dans G et invariant sous le flot des événements incontrôlables.
Le prédicat false est contrôlable par convention.
Dans cet espace, pour établir le contexte du contrôle, on ne s'intéresse qu'à des lois de
contrôle où l'état courant du système G suffit pour déterminer la rétroaction. De telles lois
de contrôle sont désignées par l'appellation SFBC (de l'anglais State FeedBack Control
policy). Formellement, une SFBC / est une fonction totale / : Q —> C, où

C := {E' Ç E | E u Ç E'} .

Alors f(q) spécifie l'ensemble des événements autorisés à l'état q G Q, qui contient tou-
jours tout l'ensemble des événements incontrôlables E u ; tous les autres événements sont

67
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

ainsi inhibés. Une SFBC / définit implicitement une famille {/<, | a G E} de prédicats
fa : Q —> {0,1), où fa(q) = 1 si et seulement si a G ./(</)• Le comportement en boucle
fermée G / := (Q, E, Sf q0, Qm) du système sous l'action de / est alors défini par

j j S(q,a) si S(q,a)\ et fa(q) = l


6J(q,<r):=<
[ indéfinie autrement.

Il est évident que si / est une SFBC pour G, alors R(Gf. P) •< R(G, P) dénote le prédicat
d'accessibilité de G ' .
La théorie établit qu'un prédicat non trivial P G Pred(Q) est contrôlable par rapport à
G si et seulement si il existe une SFBC / pour G telle que R(Gf, true) = P, c'est-à-dire
que / synthétise P sur G.
De la même façon que l'on peut définir R(G, P), on peut définir CR(G, P) le prédicat
de co-accessibilité. Un prédicat P est dit co-accessible si P < CR(G, P) et non bloquant
si R(G, P) < CR(G, P). Or CR(G, P) •< P en général, donc si P est contrôlable et non
bloquant alors F = R(G, P) ^ CR(G, P) •< P et ainsi F est co-accessible. Et on obtient
que R(Gf, true) = P = R(G. P) = CR(G, P). Sous ces conditions, la loi de contrôle
est donnée par une SFBC / . Q —• C définie par l'ensemble des prédicats f„ — M„(P).
Pour la synthèse, lorsque P n'est pas contrôlable a priori, on considère l'ensemble
CV(P) •— {K G Pred(Q) | A' < P et K est contrôlable}. Cet ensemble est démontré non
vide et stable sous la disjonction [62]. Il admet donc une borne supérieure dénotée
supCV(P).
De plus, on définit le foncteur [•] : Pred(Q) —• Pred(Q) par

q \= [R] ^ (3 q' | q' G Q : q' |= R A (3 u \ u G E* : S(q, u)\ A S(q, u) = q')).

Il est évident que R -< [R] et [R] dénote le plus grand sous-ensemble d'états de G pouvant
atteindre un état q' \= R par au moins une séquence composée uniquement d'événements
incontrôlables dans G. On appelle [R] le champ incontrôlable de R.
On peut démontrer que supCV(P) = R(G. -> [->P]), et bien sûr supCV(P) fi false si
et seulement si qo \= -> [~>P] (voir [62]). Sous ces conditions, la loi de contrôle prend la

68
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

forme d'une SFBC / : Q —> C définie, pour tout a G E C , par

/ 1 si <Jfo. ")! A <*(</. a) |=-,[-,/>]


I 0 autrement.

De façon analogue à ce qui précède, pour la synthèse non bloquante avec P arbitraire,
on considère l'ensemble

C2V (P) := [K G Pred(Q) \K •< F K contrôlable et K co-accessible} .

non vide et stable sous la disjonction [62]. Cet ensemble admet une borne supérieure déno-
tée supCaP (P). On définit le foncteur Qp (•) par

QP (K) := F A CR(G, supCV(K)) = F A CR(G, R(G, - [-A'])).

On peut ainsi caractériser .S' = s\ipC2V (F) comme le plus grand point fixe de ilp (•), et
bien sûr supC2P (P) fi false si et seulement si q0 f= supCg'P (P). Sous ces conditions, la
loi de contrôle prend la forme d'une SFBC f : Q —> C définie, pour tout a G E r , par

. .. Jl siS(q,a)\AS(q,a)^mpC2V(P)
L(q) := < n
y 0 autrement.
En conclusion, cette approche peut sembler restrictive puisque la rétroaction est donnée
à partir de l'état courant du système (c'est-à-dire basée sur l'espace d'états de G). Dans la
forme donnée jusqu'à maintenant, elle ne peut pas tenir compte de l'historique de l'activité
du système, comme par exemple si une décision de contrôle devait dépendre du nombre de
fois que le système a produit une pièce de type «A» nécessitant ainsi l'usage d'un compteur.
Cependant dans [62], la théorie formule une extension de la forme de la loi de contrôle
incorporant une notion de mémoire appelée une DSFBC (pour dynamic SFBC). Munie de
cette extension cette approche se révèle capable de résoudre les mêmes problèmes que le
modèle linguistique original de SCT.

69
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

2.6 Méthodes symboliques en synthèse de contrôleurs


Les méthodes dites symboliques jouissent depuis longtemps d'une faveur particulière
dans les techniques de vérification. Rappelons qu'en vérification, on tente de prouver qu'un
système, dont la structure et la dynamique sont adéquatement modélisées, satisfait une cer-
taine propriété F (habituellement donnée dans un formalisme logique). En termes d'outils
de calcul symbolique, les méthodes de vérification couvrent une large gamme allant des
prouveurs de théorèmes (par exemple le langage de spécification S [1]) au model-checking
[26]. Une description même sommaire de ce domaine se situe bien au-delà de la portée de
cette thèse. Cependant certains outils utilisés pour faire de la vérification de systèmes par
model-checking, tels Supremica [2] et UPPAAL [4], sur des modèles utilisant des struc-
tures à transitions similaires à des AFD ont donné lieu à des travaux connexes en synthèse
de contrôleurs SCT (voir [64, 63]). Il importe donc de comprendre ce que l'on entend par
méthodes symboliques en synthèse de contrôleurs SCT et d'en situer l'importance relative
par rapport aux autres travaux.
La locution méthodes symboliques en synthèse de contrôleurs SCT réfère à l'usage
d'un outil particulier, appelé diagramme de décision (MDD, IDD ou BDD, respectivement
Multi-valued, Integer et Binary Décision Diagram), dans le calcul des solutions de syn-
thèse. Cet outil vise à éviter d'avoir à expliciter l'espace des états des modèles de systèmes
(le produit G || S) pendant les calculs. En effet cet espace d'états atteint très vite un niveau
trop élevé pour qu'il soit réaliste de les manipuler explicitement, même sur un ordinateur
moderne. La méthode utilise une représentation dite symbolique (par exemple, les prédi-
cats présentés dans la section 2.5) pouvant être encodée de façon plus compacte qu'une
énumération exhaustive, par l'intermédiaire de diagrammes de décision.
L'usage de diagrammes de décision n'est cependant pas une solution au problème
d'explosion combinatoire des modèles en SCT. La complexité de ces diagrammes peut
elle-même devenir ingérable (le diagramme devient trop volumineux rendant impossible la
synthèse). Cependant l'expérience, tant en vérification qu'en synthèse de contrôleurs, tend
à prouver que l'usage de diagrammes de décision permet la synthèse de systèmes de taille
plus réaliste, d'où leur intérêt. La méthode de synthèse doit cependant y être adaptée.

70
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

2.6.1 Diagramme de décision


Qu'est-ce qu'un diagramme de décision? Un traitement formel de cette question est
donné en [30], ce qui suit n'est qu'une illustration du concept.
On peut observer qu'une fonction finie / : Fx x P2x... x P„ —• Y = {0,1, m - 1},
où 1\ = {0,1, p, — 1}, peut être décomposée par rapport à n'importe laquelle de ses
variables à l'aide de l'identité suivante, nommée décomposition de Shannon.

p.-i

Cette décomposition utilise l'indicatrice de Lagrange x{ : I\ —» {0,1} qui vaut 1 si et


seulement si xx = j , et le co-facteur fonctionnel de / en xt = j défini par

fxl(x\.X2. . . . ,Xn) = f(X[, . . . , J",_ !,_/,.T, + i , . . . ,Xn).

Ainsi, une fonction finie quelconque jouit d'une représentation par graphe simple, dont
on peut trouver un exemple enfigure2.5. Un tel graphe porte le nom de MDD (de l'anglais
pour Multi-valued Décision Diagram). Les noeuds internes représentent les variables et
sont ordonnés par niveau dans le graphe. Le graphe est acyclique et ses noeuds terminaux
représentent les valeurs prises par la fonction. Évaluer la fonction en un point consiste
à circuler dans le graphe à partir de la racine jusqu'à l'un de ses noeuds terminaux en
empruntant, à chaque noeud interne, la branche correspondant à la valeur de la variable re-
présentée par ce noeud. La navigation n'est donc pas arbitraire, en ce sens que l'évaluation
de la fonction doit toujours se faire dans l'ordre des variables implicite au graphe, il est
donc dit ordonné (OMDD).
On y constate aussi beaucoup de redondances que l'on peut éliminer à profit sans chan-
ger la nature acyclique du graphe ou l'ordre des variables dans le graphe. En particulier,
on peut éliminer la redondance parmi les noeuds terminaux. Ce faisant, on constate que les
arcs du noeud de gauche pour la variable y pointent tous sur le même noeud terminal, aussi
peut-on éliminer ce noeud en redirigeant l'arc x = 0 directement vers le noeud terminal
représentant f(0.y) = 0.

71
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

f(x. y) = max(0. x - y)

Pi = Pt = {0.1.2}

FIGURE 2.5 - Diagramme de décision d'une fonction finie

Plus généralement, on peut appliquer les deux règles suivantes appelées règles d'élimi-
nation de Shannon en procédant à partir des noeuds terminaux vers la racine.
1. Tout noeud n'ayant qu'un successeur (c'est-à-dire que les arcs dont il est l'origine
pointent tous sur le même noeud) peut être éliminé en redirigeant les arcs de ses
prédécesseurs vers son successeur.
2. Pour toute paire de noeuds (ni, n2) représentant des sous-graphes idempotents (c'est-
à-dire qu'ils ont le même nombre d'arcs et chaque paire d'arcs correspondants pointent
vers le même successeur), on peut éliminer l'un d'entre-eux, disons ni, en redirigeant
les arcs de ses prédécesseurs vers n2.
Le résultat de l'application de ces règles donne un graphe réduit qu'on appelle ROMDD
(Reduced Ordered Multi-valued Décision Diagram). Lorsque le contexte est clair, MDD
signifie ROMDD. Cette dernière forme est considérée canonique en ce sens qu'il n'existe
qu'un et un seul ROMDD représentant une fonction donnée / (l'ordre des variables est une
caractéristique d'un ROMDD). Lorsque l'ordre des variables est optimal, le graphe prend
en général beaucoup moins d'espace qu'une représentation exhaustive (par exemple, par

72
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

table) de / .
Ces résultats se généralisent facilement aux fonctions booléennes. On appelle alors le
graphe un BDD ou ROBDD (Reduced Ordered Binaiy Décision Diagram). Gunnarsson
(voir [26]) utilise le nom 1DD (Integer Décision Diagram) dans le cas de fonctions finies
à valeur dans {0.1}, particulièrement utiles pour exprimer des fonctions caractéristiques
(prédicats d'appartenance) sur les ensembles d'états d'une composition synchrone d'AFD.
En effet, pour
G = || G,, un état x = (x x , x2,..., xn) G x A',,

où Xt est l'ensemble d'états de la composante G, pour n fini, il est aisé de voir qu'un
prédicat F tel que défini dans la section 2.5 (une indicatrice sur QP) peut être encodé par
un 1DD.
Moyennant un encodage judicieux [30], les IDD peuvent être encodés à l'aide de BDD.
Ainsi IDD et BDD, implémentés à l'aide de structures de données adéquates, permettent la
conception d'algorithmes efficaces pour les opérations suivantes [12] :
1. l'évaluation de f(x) pour .r donné ;
2. la réduction d'après les règles d'élimination de Shannon ;
3. le test d'équivalence de fonctions / i = f2 (par égalité de pointeurs) ;
4. l'énumération et la détermination de la cardinalité de / ;
5. la synthèse / = / i • f2, où • représente n'importe quel opérateur booléen binaire ;
6. la négation logique ;
7. la substitution de variable par une constante f\ f t = j , ou une autre fonction q définie sur
le même domaine f\Xt=9 ;
8. la quantification existentielle et universelle.
Il existe une grande variété de diagrammes de décision et une riche littérature scien-
tifique sur le sujet. Chaque forme de diagramme est ajustée sur mesure à la nature du
problème à traiter. Tous cependant souffrent de la même limitation à savoir que la taille
des diagrammes (pendant les calculs) dépend de façon critique de l'ordonnancement des
variables utilisé. Un mauvais ordonnancement peut rendre la technique inutilisable. Il y

73
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

a donc une large part de la littérature consacrée aux heuristiques d'ordonnancement des
variables.

2.6.2 Diagramme de décision en synthèse de contrôleurs


Que ce soit en vérification ou en synthèse de contrôleurs, l'usage de diagrammes de dé-
cision présente certaines difficultés, même dans le contexte où les systèmes sont modélises
par un produit synchrone.
1. Représenter un ensemble d'états par une indicatrice qu'on peut encoder dans un IDD
est une démarche systématique mais peu supportée par la théorie. Le modèle par
produit synchrone lui-même ne se prête pas très bien à cette démarche, puisqu'on ne
peut pas formuler de loi de projection simple à partir d'un modèle obtenu par produit
synchrone.
2. Les deux approches (vérification ou synthèse) requièrent l'évaluation du prédicat re-
présentant la portion accessible (ou co-accessible) de l'espace des états F(G, F). Or
Ft(G, •) est un foncteur de Pred(Q) —* Prcd(Q) qui doit transformer une indicatrice
(un IDD) en une autre. La théorie des diagrammes de décision ne dit rien a priori sur
ce genre de manipulation. De plus, cette transformation doit utiliser la fonction de
transition S qu'il faudra de toute évidence reformuler sous forme de diagramme de
décision pour le calcul de foncteurs tels que R(G, •).
La première difficulté peut être résolue assez facilement en proposant des algorithmes
appropriés. Ce sujet est abordé dans [6], mais sans support de la part du modèle lui-même,
le fondement théorique ne peut être que chancelant. Cette difficulté est bien résolue dans
[39] mais sur un modèle légèrement différent.
La deuxième difficulté est abondamment traitée dans [40,6] et [30] dans le contexte de
la vérification, mais semble faire appel à des notions peu utilisées dans le cadre de SCT.
Les travaux de Zhang et Wonham [63, 64] présentent un algorithme formel pour la
synthèse de contrôleurs non bloquants, dérivé de l'approche prédicative, et réalisé à partir
de spécifications données sous forme d'AFD. Dans ce cas cependant, la loi de contrôle
n'est pas une SFBC, mais une loi de contrôle dérivée de l'espace d'états d'un superviseur

74
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

adéquat. Des procédures ad hoc sont données pour réaliser R(G, P) et CR(G, F) mais
sans en donner le fondement théorique.
Les travaux de Ma et Wonham [39] reprennent l'approche prédicative dans le contexte
d'un nouveau formalisme de modélisation, les STS (de l'anglais State Tree Structures). La
modélisation par STS procure le support formel requis pour une résolution élégante des
deux problèmes.

2.7 Structures en arborescence d'états


Cette section traite principalement des travaux de Ma et Wonham sur l'utilisation d'un
nouvel outil de modélisation, les structures en arborescence d'états (STS - State Tree Struc-
tures). Puisqu'il s'agit d'un nouveau formalisme, les résultats de SCT ont dû être démontrés
à nouveau dans le cadre des STS. Le lecteur peut consulter [39] pour obtenir le traitement
détaillé ; cette section n'offre qu'une exposition condensée. Les structures en arborescence
d'états ont d'abord été proposées par Wang dans [54] et ensuite formalisées en termes lin-
guistiques par Gohari [24]. Dans sa forme originale, la synthèse de contrôleurs à partir de
STS souffrait de certaines limitations qui ont été levées par Ma et Wonham.
Pour plus de clarté, cette section est divisée en trois sous-sections. Il faut d'abord décrire
le support formel (les STS) et ses caractéristiques. Ensuite, il faut considérer comment ce
support est utilisé pour la synthèse. Finalement, 11 est intéressant de considérer comment la
synthèse elle-même peut être implémentée par l'usage de diagrammes de décision.

2.7.1 L'outil de modélisation STS


Les STS sont un formalisme pour la description d'espaces d'états hiérarchiques inspiré
des statecharts (automates hiérarchiques) décrits par Harel et Politi dans [27]. Les STS sont
formées :
1. d'une structure algébrique pour en décrire l'aspect statique, l'arborescence d'états
dénotée ST ;
2. d'une structure algébrique pour en décrire l'aspect dynamique, les holons, une struc-
ture à transition similaire aux AFD.

75
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Pour une description formelle complète le lecteur peut consulter [39]. Ce qui suit n'est
qu'un énoncé des principales propriétés de chaque structure et de leur combinaison finale
en une structure en arborescence d'états.

[Link] Structure statique, l'arborescence d'états

La figure 2.6 (extraite de [39]) présente le modèle d'un système sous forme d'un state-
chart. On peut trouver en figure 2.7 une représentation de l'arborescence d'états correspon-
dante. L'arborescence d'états d'un système, dénoté ST, est clairement une structure d'arbre
et en hérite toutes les caractéristiques. L'arbre est composé de trois types de noeuds : les
super-états ET et les super-états OU, formant les noeuds internes de l'arbre, et les noeuds
simples comme feuilles. La structure est définie récursivement de sorte que tout sous-arbre
d'une arborescence d'états ST est lui-même une arborescence d'états. On parle d'arbores-
cence d'états enracinée en M\, dénotée ST' U l , pour un sous-arbre. Une fonction de typage
T sert à dénoter le type des noeuds ; en figure 2.7, T ( A/i ) = or, T (Small Factory) — and,
T (ï2) = simple.
On dénote £ la fonction d'expansion directe d'un noeud retournant l'ensemble des
noeuds qui le composent directement, E+ sa fermeture transitive et £* sa fermeture transi-
tive et réflexive.
On dit qu'une arborescence d'états est bien formée (de l'anglais well-formed) si tous ses
super-états ET ne sont composés que de super-états (OU ou ET). La structure algébrique
est dénotée S71 = (A', xQ, T, £), où X est un ensemble d'états structurés, x0 G X un état
spécial appelé la racine, T : X —* {or, and, simple} la fonction de typage et £ : X —<• 2X
la fonction d'expansion directe.
11 est aussi utile de caractériser les relations entre les noeuds d'une ST. On dit que
x < y (x est un ancêtre de y), si y G £* (x), et que x < y si x est un ancêtre propre de y.
Généralement x et y sont affiliés si x < y ou y < x. Cette relation nous permet d'établir
la notion de plus proche parent (NCA - nearest common ancestor) et d'affirmer qu'entre
les noeuds d'une ST, il ne peut exister qu'une et une seule des trois relations suivantes
(mutuellement exclusives).

I. Soit x et y sont affiliés.

76
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

FIGURE 2.6 - Modèle du problème Small Factory

Small Factory : Super-état ET


Mi : Super-état OU

FIGURE 2.7 - Arborescence d'états

77
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

2. Soit r | y, et x est dit concurrent à y, en ce sens que le système peut être dans les
deux états simultanément, et leur plus proche parent est un super-état ET.
3. Soit ./• il y, et x est en relation d'exclusion mutuelle avec y, en ce sens que le système
est soit dans l'un de ces états soit dans l'autre, et leur plus proche parent est un
super-état OU.
La théorie développe ensuite la notion de sous-arborescence d'états (Sub-State Tree)
dénoté subST, à distinguer clairement de ST X (l'arborescence d'états enracinée en x) qui
est un sous-arbre d'une ST.
Une sous-arborescence d'états est toujours relative à une arborescence d'états de réfé-
rence, en général dénotée ST. Une sous-arborescence d'états subST de ST est construite
à partir de ST par un processus d'élagage particulier où l'on ne coupe des branches que
sur les super-états OU en prenant soin de ne pas toutes les couper. Le résultat est une nou-
velle arborescence d'états (bien formée) de racine XQ (comme ST) et dont tous les chemins
partant de la racine aboutissent à une feuille (un noeud simple). Cette structure dénote un
sous-ensemble des états du système.
En général, on peut montrer que l'arborescence de référence d'un système ST dénote de
façon compacte l'ensemble des états du même système qu'on aurait obtenu par composition
synchrone. On appelle souvent un modèle obtenu par composition synchrone un modèle
plat, en référence à sa structure horizontale. Dans la figure 2.6, il y a trois composantes (des
super-états OU) dans un super-état ET, le produit synchrone est implicite. L'arborescence
correspondante (figure 2.7) permet aisément d'énumérer toutes les configurations que peut
prendre le système (les combinaisons d'états occupés concurremment par l'ensemble des
composantes). Cette expression de l'espace d'états est plus compacte qu'une énumération
explicite des éléments du produit synchrone. Une ST agit donc comme un symbole pour
dénoter un ensemble d'états d'un modèle plat. Une sous-arborescence d'états subST agit
comme un sous-ensemble des états de ST, l'arborescence des états d'un système.
À l'instar de l'inclusion chez les ensembles, on peut établir une relation d'inclusion
entre arborescences d'états, S7\ < S7'2. On définit aussi ST(ST) l'ensemble des sous-
arborescences d'états qu'on peut former à partir de ST, où 0 G S'T(ST) dénote la sous-
arborescence d'états vide. Alors ST(ST) est similaire à 2Q, où Q est l'ensemble des états
d'un système. On peut démontrer que (ST(ST), <) est un treillis complet lorsqu'on définit

78
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

adéquatement deux opérateurs similaires à la conjonction (le meet A) et à la disjonction (le


join V) d'ensembles.
Enfin, pour pouvoir nous ramener à une notion d'états élémentaires d'un système, la
théorie définit la notion d'arborescence d'états élémentaire (Basic State Tree). Cette notion
joue un rôle analogue à ce que Harel nomme une configuration pour les statecharts (dans
[27]). Un exemple d'arborescence d'états élémentaire est donné en figure 2.8.
On définit donc B (ST) l'ensemble des arborescences élémentaires qu'on peut former
sur ST. Notez qu'il y a une bijection entre B (ST) et l'ensemble des états Q d'un système
plat.
Vu la similitude de structure entre (ST(ST), <) et (2Q, C) d'une part, et celle entre Q
et B (ST) d'autre part, il semble pertinent d'examiner les relations entre les opérations A
(meet) et l'intersection d'ensembles, et aussi entre V (join) et l'union d'ensembles.
1. Si STA = STi A ST 2 , alors B (ST A ) = B (STi) n B (ST 2 ).
2. Si STV = STi V ST 2 , alors B (STV) D B (S7\) U B (ST 2 ), avec une inclusion stricte
en général.
La propriété (2) empêche effectivement la synthèse dans l'espace des arborescences d'états,
il faut donc trouver une autre expression pour les procédures de synthèse avec cet outil de
modélisation.

[Link] Structure dynamique, le holon

Les holons, dont une illustration schématique est donnée en figure 2.9, sont des struc-
tures de transitions similaires à des AFD. Dans une structure en arborescence d'états les
holons ne sont associés qu'aux super-états OU pour en décrire l'aspect dynamique. Il n'est
pas nécessaire d'associer des holons aux super-états ET puisque dans une arborescence
d'états bien formée, les composantes d'un super-état ET sont aussi des super-états.
Intuitivement, un holon est un AFD partitionné, c'est en fait une forme d'automate
fini puisqu'il n'est pas nécessaire qu'il soit déterministe ; il peut comporter plusieurs états
initiaux. L'ensemble de ses états est partitionné en sous-ensembles d'états externes Xr:, et
internes Xj. On a alors X = XK U A'f et X» n À"/ = 0.

79
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Small Factory : Super-état ET


A/t : Super-état OU

États simples

FIGURE 2.8 - Arborescence d'états élémentaire

L'ensemble des événements d'un holon est aussi partitionné en sous-ensembles d'évé-
nements de frontière E/j (boundaiy events) et d'événements internes E/. La partition en
événements contrôlables et incontrôlables (Ec, E u ) se superpose arbitrairement sur la par-
tition en événements de frontière et événements internes (S/?, E/) ; il n'y a pas de relation
entre les deux. On a alors E u U E/ = E = Ec U E u et E« n E/ = 0 = E c n E u .
Ce partitionnement se reflète sur la fonction de transition partielle du holon S, dont la
figure 2.10 donne un sommaire. Les transitions d'entrée sont données par SB[ (boundary
input transitions) et les transitions de sortie par SBO (boundary output transitions). L'en-
semble Xo des états initiaux du holon ne peut pas être vide et contient tout état interne
formant la cible d'une transition d'entrée dans la structure interne du holon. S'il n'y a au-
cune transition d'entrée, le contenu de A0 est arbitraire, et on définit àBI : XE X T.B —» X0.
Similairement, l'ensemble Xm des états finaux du holon ne peut pas être vide non plus, et
contient tout état interne à l'origine d'une transition de sortie du holon. S'il n'y a aucune
transition de sortie, le contenu de Xm est arbitraire et on définit 5BO : Xm x E B —• XE-
L'intersection de X0 et Xm n'est pas nécessairement vide. Dans lafigure2.10, la structure
interne d'un holon réfère donc aux objets Xi, E/ et St et sa structure externe aux objets
XE, S B et ôB.

80
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

H= (X,Z,6,X0,Xm)

Ea = {0,0,7}

X, T,, = {a,b}

il 6 Xn U Xm Ç X;, est appelé état frontière (boundary state)

FIGURE 2.9 - Structure d'un holon ([39]figure2.13)

81
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

H= (X,'£,ô,X0,Xn)

6 : X x E -+ X, où ô = S, U ôB, St n 5B = '

<5« = ^"H/ U <W>, <5B/ n ^HO = 0

<^a/ : XE X Sa —> Xj S HO '• X/ x Es —• Xe

<5y : X, x E/ -* À7

FIGURE 2 . 1 0 - Schéma de la relation de transition d'un holon

Pour assigner les éléments de dynamique locale (holons) aux éléments de la structure
statique (les arborescences d'états), il faut assigner des holons à chaque super-état OU. Il est
évident qu'un état simple n'a pas de dynamique associée, et que la dynamique d'un super-
état ET est entièrement définie par la dynamique de ses composantes ; on ne considère
ici que les ST bien formées. Or la structure arborescente des S7' impose des contraintes
entre les paires de holons assignés à des super-états OU et liés par une relation de filiation
(.7; < y). Dans ce cas, il y a chevauchement entre la structure interne de x et la structure
externe de y. On doit donc définir la relation d'ancêtre OU le plus rapproché (Nearest OR
ancestor), puisque deux super-états OU tels que x < y peuvent être séparés par un nombre
arbitraire de super-états ET. Il faut donc imposer une règle garantissant la superposition
consistante de leurs structures interne (de x) et externe (de y). Cette règle de superposition
prend la forme de la propriété de consistance à l'interface.
Pour deux super-états OU tels que x < y où x est l'ancêtre OU le plus rapproché de
y, deux holons IP = (Xx, E x , Sx, X§, Xxm) et //" = (X», E y . S», XVQ. X»J se superposent
à ./• et y respectivement si et seulement si ils sont consistants à l'interface, c'est-à-dire
qu'ils sont consistants à l'interface quant à leurs états, leurs alphabets et leurs transitions
d'entrée et de sortie (notion détaillée dans [39], pages 38-39). Pour de telles paires de

82
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

super-états OU et de holons (Hr, Tfy) consistants à l'interface, on dit alors que H" détaille
(expands) IIX. Cette notion est illustrée intuitivement à la figure 2.11, où l'on voit que la
structure de y détaille la structure sommaire de x, en ce sens que l'on peut substituer la
version détaillée de y dans la structure sommaire de x sans qu'il n'y ait de contradiction à
l'interface.

[Link] Structure en arborescence d'états

À partir de la notion d'arborescence d'états et du principe de superposition des holons,


une définition de la notion de structure en arborescence d'états (STS) peut être élaborée.
On définit G = (S71, H, E. A, S7j>, STm), une structure en arborescence d'états comme
une structure algébrique, où
- ST = ([Link],T,£) est une arborescence d'états (celle dénotant tous les états du
système) ;
- ri est l'ensemble de holons superposés couvrant tous les super-états OU de ST ;
- E est l'ensemble des événements trouvés dans H ;
- A : ST(ST) x E -• ST(ST) est la fonction de progression dans ST(ST) ;
- ST0 G ST(ST) est l'arborescence des états initiaux ;
- STm Ç ST(ST) est l'ensemble des arborescences marquantes de G.
Une condition dite condition de couplage local doit être imposée pour permettre à deux
super-états OU x | y (c'est-à-dire en relation de parallélisme) de se synchroniser sur un
même événement. À cette fin on définit la notion de ET-adjacence. Un noeud z est dit
ET-adjacent à un noeud y, dénoté z < x y, si
L z<y;
2. T (z) = and;
3. et tout noeud situé entre z et y est un super-état ET.
Ainsi deux super-états OU r | y ne peuvent se synchroniser lors d'une transition sur un
événement a (c'est-à-dire partager a) que s'ils sont ET-adjacents à un même super-état
ET. Cette situation correspond au mécanisme de synchronisation utilisé dans un modèle de
composition synchrone (modèle plat).

83
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

X
x
H: ( C]

( a
\ Q
y M bj

H'
• GH
Substitution

X
C c )L

\ a
)

y
P-*©
FIGURE 2.11 - Superposition de holons ([39] figure 2.17)

84
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

La dynamique globale du système peut être exprimée en termes de la dynamique locale


de l'ensemble des holons H. Ceci implique que A n'a pas à être explicitée pendant les
calculs, ce qui représente une réduction significative de complexité pour les algorithmes. La
fonction A est une fonction totale. Elle associe la plus grande arborescence cible possible
dans G, lors d'une transition sur a G E, à partir d'une arborescence source donnée.
En particulier, A associe tout élément de B (ST) à un autre élément de B (ST) (consé-
quence de la consistance aux interfaces), ou à l'arborescence vide 0.
La fonction A est injective mais elle n'est pas surjective, elle n'a donc pas d'inverse.
Cependant, il est possible de définir une fonction totale T : S'T(ST) x E —» ST(ST)
sur le même modèle que A, et telle que A (T(T,a) .a) < T. La fonction T est appelée
fonction de progression rétrograde de G. Elle permet de retrouver toutes les arborescences
sources de S7' dont la cible d'une transition sur a G E est une arborescence contenue dans
T < ST. Cette fonction permet l'équivalent (chez les arborescences d'états) des calculs
de co-accessibilité chez les AFD. Elle est la seule utilisée en synthèse, elle revêt donc une
importance particulière.
Les détails de définition des fonctions A et T sont complexes et ne peuvent pas être
exposés dans cette thèse sans l'allonger indûment. Le lecteur peut se référer à [39] pour les
trouver. Ils sont accompagnés d'une description des conditions sous lesquelles le modèle de
STS est équivalent à un modèle de composition synchrone (modèle dit RW dans l'ouvrage),
c'est-à-dire des conditions sous lesquelles ces fonctions peuvent être considérées comme
justes (de l'anglais sound). Le lecteur peut ainsi vérifier que ces conditions sont faciles à
remplir et ne restreignent pas cette approche par rapport au modèle SCT original.

2.7.2 Synthèse utilisant des STS


La synthèse de contrôleurs utilisant les STS suit une approche par prédicats très proche
de celle exposée à la section 2.5. Il y a donc d'importants recoupements.
On observe d'abord que toute sous-arborescence d'états STi G ST(ST) peut être iden-
tifiée à un prédicat P : B(ST) —•*• {0,1} à travers un sous-ensemble d'arborescences
d'états élémentaires

BP = {bGB (ST) | P(b) = 1} = B (STi) C B (ST),


85
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

où ST est l'arborescence d'états du système représenté par le STS G. Ainsi b \= P si


et seulement si b G lip. Par extension, pour S ^ < ST, S7\ (= P si et seulement si
6(STi) Ç Hp. On définit Pred(ST) l'ensemble des prédicats définissables sur ST, en
admettant par convention que pour tout P G Pred(ST), 0 f= P, où 0 est l'arborescence
vide. Alors, la structure (Pred(ST), <) forme un treillis complet.
Ce qui précède permet de reformuler la structure d'un STS comme une structure algé-
brique G = (ST, H. E, A. P 0 , Pm), où Po dénote ST 0 l'arborescence des états initiaux, et
Pm dénote
U T.
reST,„

En reformulant la notion de SFBC / sur B (ST) et en l'appliquant sur le STS G, on obtient


le comportement du système en boucle fermée sous / , G-^ = (ST, H, E, A ' , P0f, Pm) où
PQ •< Po, avec Af :

[ 0 autrement.

La fonction A ' n'est définie que sur B (ST).


La première nouveauté concerne la contrôlabilité. En effet on observe qu'il n'est pas
nécessaire qu'un prédicat P soit accessible (P •< R(G, P)) pour que l'on puisse obtenir
une SFBC / qui implémente R(G. P ) , mais qu'il suffit qu'il soit invariant sous le flot
des événements incontrôlables. En reformulant le foncteur Ma(-), où b \= Ma(P) si et
seulement si A (b, a) \= P, on formule la condition de contrôlabilité faible d'un prédicat
(weak controllability). Un prédicat P est dit faiblement contrôlable si P < Ma(P) pour
tout cr G E (sans nécessairement être accessible).
Ainsi, pour un prédicat faiblement contrôlable P , lorsque P A P 0 fi false, il existe une
SFBC / telle que R(Gf, true) = R(G, P), notamment fa = M„(P) quel que soit a G S c .
Ce résultat est très important car il permet, en synthèse, d'éviter l'évaluation de R(G, P),
le prédicat d'accessibilité, ce qui représente une réduction de complexité considérable des
calculs.
Pour la synthèse, on considère maintenant l'ensemble CV(P) des sous-prédicats de P
faiblement contrôlables (plutôt que contrôlables). Cet ensemble est non vide et stable sous
l'union, et sa borne supérieure est maintenant donnée par nupCV(P) = -> [-<P] comme on

86
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

pouvait s'y attendre. Aussi, pour que P(G, supC'P(P)) ne soit pas trivial, il faut bien sûr
que P0 < -> [~<P].
Les auteurs démontrent ensuite que pour un prédicat faiblement contrôlable et non blo-
quant P (sous condition que P A Po fi false), il existe une SFBC non bloquante / telle que
P(G', true) = R(G, P), définie par f„ = Ma(P) pour tout a G E f . Avec ce résultat et en
observant qu'un prédicat co-accessible est nécessairement non bloquant, il est clair que si
P est co-accessible et faiblement contrôlable (sous condition que P A P0 fi false), alors il
existe une SFBC non bloquante / pour G, telle que R(Gf true) = R(G, P).
Du côté synthèse, on considère l'ensemble C2V (P) des sous-prédicats de P faiblement
contrôlables et co-accessibles. On trouve que s\ipCsV (P) existe et qu'il est exprimable
comme point fixe de l'équation de récurrence

QP (K) := P A CR(G, supCP(K)) = P A CR(G, - [-.tf]).

Si pf = P0 et mpC2P (P) fi false, f s'exprime alors, pour tout a G Ec et b G B (ST),


par
/ 0 siA(M)|=-supC2P(P)
{ 1 autrement.

2.7.3 Usage de BDD en synthèse avec des STS


La synthèse de contrôleurs par STS est particulièrement bien adaptée à l'utilisation de
diagrammes de décision vu l'usage d'arborescences d'états pour représenter la structure
statique du système. En effet, une arborescence d'états STi < ST quelconque de G est
toujours identifiée à un prédicat P : B (ST) —> {0,1} à travers son sous-ensemble d'arbo-
rescences d'états élémentaires Bt> = B(S7\).
La théorie définit une projection B : ST(ST) -> Pred(ST), pour une arborescence
d'états quelconque ST = (À', z 0 . T, £), comme suit :

A 6(ST") si T (ro) = and


ye£(xo)
e(ST) := { \y ((v,o = y)A ersr»)) si T (Xa) = or
ye£(xt>)
1 si T (XQ) = simple.
87
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

La définition suppose que chaque super-état OU (disons y) de ST a été associé à une


variable d'état vy dont le domaine est son expansion directe £ (y). On peut noter que l'énu-
mération en pré-ordre de ces variables sur ST constitue un ordonnancement adéquat pour
la représentation de B(STi) par un BDD pour ST] < ST. La définition de B elle-même
est adéquate comme procédure d'encodage.
On peut vérifier en consultant les équations de synthèse que B résout la plupart des
problèmes quant à l'usage de diagrammes de décision. Le seul problème qui reste est de
déterminer comment les foncteurs [•] et CR(-) peuvent être implémentés à l'aide de BDD.
On peut observer que ces deux foncteurs utilisent la fonction de progression rétrograde T
pour calculer un point fixe dans l'espace Pred(ST). Par exemple, l'algorithme 4.1 dans
[39] donne la solution suivante pour le calcul de [R],

1. K0:= fl;i :=0;

2. K i + 1 := À'* V ( V r(Â'i,a));

3. si Kl+i = K, alors [R] — Kx, sinon reprendre à l'étape (2) avec i := i + 1.


Le calcul de CR(-) utilise un schéma similaire où seule l'évaluation de F reste problé-
matique. 11 faut bien sûr exprimer T : Prerf(ST)xE —* Pred(ST), une version prédicative
de T : ST(ST) x S -> ST(ST). La solution donnée est la suivante :

f (P, a) := (3va,T(P AN,))[<s - v„, s ].

Dans cette équation, N„ doit encoder, sous la forme d'un prédicat, la relation de tran-
sition, c'est-à-dire l'ensemble des transitions possibles sur a G E dans G. On a déjà vu
que l'encodage de la relation de transition est un problème très épineux en vérification
symbolique [26].
On observe que dans une structure en arborescence d'états, a n'apparaîtra que locale-
ment dans les holons Hx qui partagent cet événement. Chaque transition peut être décrite
par son effet local dans le holon Hx. Sommairement, pour un super-état OU x dans une ar-
borescence d'états quelconque S7' où au moins une transition sur a G E peut se produire,
le sous-arbre STf enraciné au noeudx subit une transformation en un autre sous-arbre S T |
sous l'effet de la transition. Ce changement est limité au sous-arbre STX de ST. En posant

88
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

F (ST', a) = ST, on a que B(S7V) est le prédicat dénotant les cibles des transitions sur
a dans ST. Puisque ST' contient nécessairement STf dans sa structure, B(ST') contient
aussi B(ST*) dans sa structure. En substituant B(ST/) dans B(ST') par B(STf ), on ob-
tient B(STi) où ST[ < ST contient toutes les sources de transitions sur a avec cible dans
ST'.
Mais bien sûr pour exprimer «vx = 1 avant l'occurrence de a» et «vx = 2 après l'oc-
currence de a» dans un seul et même prédicat, on ne peut utiliser la même variable vx.
On a donc recours à deux variables liées entre elles : v'x (variable primée) et vx (variable
ordinaire) dénotant respectivement l'état avant et après l'occurrence de a. Ainsi, pour ex-
primer cette transition (appelons la t), où T = ST2 désigne la cible et S = STf désigne
la source, en termes d'un prédicat sur ST(ST), on peut utiliser la conjonction suivante
Nt := B(6,)[vt,s —* v{.s] A B(T). Dans cette conjonction [vt.s —»• vj.s] dénote simple-
ment que l'ensemble des variables ordinaires relatives à t dans .S" sont renommées en leurs
correspondantes primées. La forme de Nt n'est pas tout à fait exacte car on doit aussi tenir
compte du reste de l'arborescence au-dessus de STT jusqu'à la racine. Notons simplement
qu'une version exacte n'est pas difficile à obtenir en complétant le chemin qui mène de x0
à x dans S7\ Par la suite, obtenir N^ consiste à combiner tous les prédicats de transitions
Nt sur a qui peuvent se produire dans G en utilisant des disjonctions (plusieurs transitions
dans un même holon) et des conjonctions (transitions synchronisées entre deux ou plusieurs
holons dans G) entre prédicats, au besoin.
À noter que A^ est un prédicat défini sur les deux ensembles de variables (primées et
ordinaires). Le résultat de la conjonction P A Na est donc un prédicat exprimé sur l'en-
semble des variables primées et ordinaires. Il exprime l'effet d'une progression rétrograde
sur a dans G. Or la quantification sur les BDD a pour effet d'éliminer la variable quantifiée.
Pour un ensemble de variables v = {vi,..., v n }, on a (3v) P = (3v 1 (3v 2 ...(3v n P)...)).
La quantification existentielle élimine donc ici toutes les variables ordinaires du prédicat P
correspondant aux cibles d'une transition sur a. On retrouve donc comme résultat un prédi-
cat exprimant les sources de ces transitions mais exprimées en termes de variables primées.
Ainsi, la dernière opération dans l'expression de Y, [v^ s —• v^g], consiste à renommer les
variables primées en variables ordinaires correspondantes.
En conclusion, on peut noter qu'il est possible de donner un équivalent à ce schéma

89
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

de calcul pour un modèle de composition synchrone (voir [63]). Mais comme en fait foi
la littérature, le calcul de la relation de progression fait souvent appel à des algorithmes
complexes. Aussi, puisque ces techniques ne font usage que d'AFD, l'évaluation exhaustive
de la fonction de transition globale de l'AFD semble inévitable. La relation de transition
Na doit alors tenir compte de l'état de toutes les variables lors d'une transition, ce qui
induit beaucoup de redondance, c'est-à-dire d'expressions du style v'x = v x . Ceci allonge
significativement les calculs et peut induire une grande consommation en espace.
Un modèle de structure en arborescence d'états peut représenter directement un modèle
de composition synchrone (modèle plat) comme dans l'exemple de Small Factory de la
figure 2.6. sans encourir les pénalités bien connues en vérification. Aussi, [39] donne tous
les algorithmes de base, bien que sous forme abstraite, et sans jamais donner de solution
concrète pour l'implémentation par BDD. Plusieurs optimisations aux algorithmes sont
aussi suggérées pour tenir compte de la taille des modèles (prédicats) intermédiaires durant
les calculs. Ces suggestions sont très proches de techniques utilisées en model-checking tel
le concept de saturation [6].
Finalement, le résultat de la synthèse avec les STS est un ensemble de prédicats fa que
l'on peut utiliser pour implémenter une SFBC, avec seul désavantage qu'ils sont exprimés
sous forme de BDD. Ceci suppose un ordinateur d'assez grande puissance pour le contrôle.
Sans compter que le problème de suivre la configuration courante du système (c'est-à-dire
l'arborescence b G B (ST) dans lequel le système se trouve à tout moment) n'est pas très
évidente. Cependant, sur une note plus positive, l'usage d'une SFBC dans cette approche
n'est pas restrictif puisque la description du système incorpore les éléments de mémoire,
par exemple l'usage d'un tampon (BUF) dans le modèle Small Factory.

2.8 Approche par agrégation d'états


Toutes les variantes hiérarchiques de SCT supposent nécessairement une forme d'agré-
gation d'états.
- Dans l'approche par STS (section 2.7), l'agrégation d'états est explicite sous forme
de super-états.
- Dans l'approche HISC (section 2.4), l'agrégation d'états est implicite dans la struc-

90
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

ture d'interfaces en paires commande-réponse.


- Dans l'approche proposée pour le contrôle hiérarchique de la section 2.3, l'agréga-
tion d'états est implicite dans la structure du système de haut niveau G/ u .
Cette section décrit deux approches d'abstraction du modèle (AFD) d'un système. Elles
tentent d'identifier ou de calculer un AFD quotient dont les états sont identifiés aux élé-
ments d'une partition de l'espace des états de l'AFD du système original (une relation
d'équivalence entre ces états). Pour être utilisés dans les calculs de synthèse, les quotients
considérés doivent, en plus d'être déterministes, présenter certaines propriétés. Hubbard
et Caines [29] définissent une structure de quotient d'AFD particulière, appelé automate
partition, devant posséder une propriété appelée la consistance dynamique. L'approche de
Wong et Wonham [60] ainsi que celle de Feng et Wonham [ 15] s'inscrivent dans le cadre du
modèle du contrôle hiérarchique (section 2.3.2). Cette approche tente de raffiner le noyau
de la projection 6 : L —* M d'un modèle donné a priori, sous forme d'une machine de
Mealy, de la paire (L, 0) de façon à doter la projection de la propriété d'observateur (voir
la section 2.3.3).
L'intuition à la base de ces approches est de tenter d'identifier des chaînes de partition
de granularité croissante de l'espace des états d'un système qui permettent d'exprimer les
requis de contrôle à différents niveaux en plus de permettre la synthèse. Une telle technique
procure une clarification significative dans l'expression des requis d'un système en permet-
tant Pencapsulation par niveau de portée, c'est-à-dire en exprimant d'abord les requis de
portée locale, puis en progressant par encapsulation successive vers les requis de portée de
plus en plus globale. Cette technique vise aussi bien sûr à tenter de réduire la complexité
des calculs de synthèse.
De plus, pour les systèmes où la loi de contrôle peut s'exprimer sous forme d'une SFBC
(voir la section 2.5), l'usage de partitions (des sous-ensemble d'états) comporte un avantage
évident. Les prédicats d'une SFBC décrivent des familles d'états du système sous contrôle,
ce sont donc des indicatrices ou fonctions caractéristiques dénotant des sous-ensembles
d'états. En supposant un résultat de synthèse sur un modèle abstrait (lire agrégé) du système
on obtient une SFBC abstraite, c'est-à-dire dont les termes élémentaires dénotent des états
du modèle abstrait. Or dans une structure d'AFD quotient ces états du modèle abstrait
forment une partition de l'ensemble des états du modèle concret, et peuvent donc eux-

91
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

mêmes être exprimés sous la forme d'indicatrices de sous-ensembles du modèle concret.


Ce qui procure une base simple pour le calcul d'une loi de contrôle sur le modèle concret à
partir d'un résultat de synthèse sur le modèle abstrait.
Ces approches utilisent la notion de projections causales (voir la section [Link]) au
même titre que le contrôle hiérarchique (section 2.3), avec les mêmes avantages. Le sys-
tème de bas niveau (l'agent) projette son comportement sur un autre alphabet (celui de
l'abstraction), effaçant des transitions et générant des événements sommaires ayant une
signification plus appropriée dans l'abstraction, dans le but d'obtenir une description sim-
plifiée sans sacrifier la structure de contrôle et la possibilité de synthèse. Cependant, à la
différence du contrôle hiérarchique tel qu'exposé dans Wong [55] et Wonham [62], il n'est
pas nécessaire d'enrichir la structure de transition de l'agent (qui est alors transformé en
machine de Moore) pour obtenir la consistance du contrôle (voir la section [Link]). Ces ap-
proches se limitent à l'usage des projections que l'on peut obtenir à partir de la structure de
transition de l'AFD du système original (l'agent) que l'on transforme en machine de Mealy
en lui adjoignant un alphabet de sortie et une projection appropriée à chaque transition.

2.8.1 Calcul d'observateurs d'un SED


Cette technique repose sur la notion de projection causale que l'on peut implémenter
par marquage des transitions d'un AFD résultant en une machine de Mealy comme exposé
dans la section 2.3.3. On considère que l'ensemble des objets et notions définis dans cette
section sont connus. Ce qui suit n'est forcément qu'une illustration informelle tirée, pour
l'essentiel, de Wong et Wonham [60] que le lecteur est invité à consulter.

[Link] Autobisimulation et quasi-congruence

Comme mentionné dans [58] la propriété d'observateur est une relation d'équivalence
observationnelle. Et d'après Arnold [3], Péquivalence observationnelle peut se définir
comme la bisimulation modulo 0T ; un critère d'observation. Dans le cas de l'équivalence
observationnelle, l'alphabet (disons T) des deux systèmes est identique et le critère d'ob-

92
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

servation utilisé est

Kl(T°) = To

où r G T est observable et r 0 ^ T n'est pas observable. Toujours d'après Arnold, Y auto-


bisimulation est une classe spéciale de bisimulation d'un système avec lui-même. La plus
grande autobisimulation induite par une relation d'équivalence R et incluse dans R existe
(ici R est définie sur l'ensemble des états d'un système) et peut être calculée dans le cas
où R est finie. Dans ce cas, le calcul se ramène à un problème de raffinement de partition
sur l'ensemble des états du système décrit en détail (avec algorithmes) dans Paige et Tarjan
[41] et Fernandez [16].
La propriété d'observateur est décrite dans Wong et Wonham [60] comme une quasi-
congruence sur le système dynamique T = (X, {!Er | r G 71} U {H m }, .r0, Xm) :

n* = sup l TX G £(X) | 7T < (ker 6) A (ir o pre) A j / \ (n o = r ) ) A (ix o Em) l (2.8)

où ker 0 et pre correspondent respectivement à la relation d'équivalence et à l'opérateur


de fermeture préfixée tels qu'induits sur X à travers la bijection / : Lm —> X (voir la
section [Link]). Posons

7T := f (ker 6) A (n o pre) A I / \ (TT O E T ) 1 A (n o Em) j .

Alors n G £(X) est une relation d'équivalence sur X et la plus grande autobisimulation
(du système T) induite par K et incluse dans n existe. Alors moyennant que l'on puisse
se ramener à un cas fini, il est possible de la calculer par une variation de l'algorithme de
Fernandez.
On suppose que l'on dispose de

G = (Q,Z,TU{T0}.S,\,<1o,Qrn)

93
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

un générateur de Mealy fini modélisant (/,, 0) duquel on obtient G et le système dynamique


G, correspondant au système dynamique T. En suivant l'argumentation de [60] on définit

h : X-+Q : x r-> S(q0J \x))

et on peut vérifier que q0 = /i(.x-0), Qm — h(Xm) et

(VreT)lioEr = AToh
h o =.m = A m o h

c'est-à-dire que // est un homomorphisme de T à G. En considérant irM,,ahi G £(L) la


congruence à droite correspondant à G et définie par

s = s'(mod KMealv) <=> S(qQ, s) = 5(q0, s')

pour s. s' G L = Lm, que l'on induit ensuite sur X à l'aide de la bijection / , on peut
vérifier que ker h = Tx^eaiy, ce qui nous ramène au cas fini. Ainsi, lorsqu'on dispose
d'un modèle fini pour (L, 0) (notamment la machine de Mealy G de laquelle on obtient
G et G), la relation d'équivalence correspondant à la plus grande autobisimulation induite
par p G £(Q) et incluse dans p (pour le système dynamique G) correspond à la quasi-
congruence

PG := sup l p G £(Q) | p < l / \ (p o AT) j A (p o Am) 1 (2.9)

sur G. Cette quasi-congruence peut être calculée en utilisant une variation approprié de l'al-
gorithme de raffinement de partition de Fernandez. Puisqu'il s'agit d'une relation d'équiva-
lence sur Q, l'algorithme produit une partition de Q comme résultat, et l'on réfère à PG en
tant que tel. L'algorithme de Fernandez doit être adapté, entre autres, pour tenir compte de
l'information de marquage. On trouve le développement formel détaillé de cette adaptation
dans Wong et Wonham [60] et des détails d'implémentation dans Paige et Tarjan [41] et
Fernandez [16].

94
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

[Link] Quotients d'automates finis et observateurs

Dans ce qui précède, PQ correspond à la congruence de Nérode sur 0(L) et il se peut


que />G < ker 0. Aussi le calcul de pG ne constitue-t-il qu'une itération de l'algorithme
de Wong. L'algorithme de Wong consiste à raffiner une projection causale 9 : L —* M
arbitraire jusqu'à ce que ker 9 = iv*. À cette fin on doit disposer d'un test pour déterminer
quand ker 9 = TT* et ce test est basé sur la notion de quotient d'automates.
Soit H = (Q, E, 5, qo- Qm) un automate non déterministe. Pour E' Ç E et Q' Ç Q on
définit
MQ') := U W«> ^) k e Q'. a G E'} (2.10)
et par abus de notation on utilise S„ lorsque E' = {a}. Pour p G £(Q) et Y := Q/p,
l'ensemble quotient, on définit g : Q —> Y : q —
i > [q] la projection canonique. Aussi on
définit ?/o : = g((fo), l'état initial, et Ym := g(Qm) l'ensemble des états marqués du quotient.
Posons un symbol spécial r 0 ^ E et E 0 Ç E un ensemble d'événements observables par
opposition à E - E„ l'ensemble des événements considérés inobservables pour les besoins
de l'argumentation. Finalement on définit la relation de transition induite suivante :

n:YxWoU{T0\)-+V(Y):

, x { 9(à„(<rl(<}))), siaGE0;
(y, a) t-> t (2.11)

[ (l(S{Y,~Y.0)(y (y))) —{y}- autrement (a est inobservable)

où r 0 est Pétiquette d'une transition inobservable. On définit le quotient H/(E„, p) par


H = H / ( S 0 . p) := (Y. E 0 U {r„}, m yQ, Ym) (2.12)

et H n'est généralement pas déterministe. On peut vérifier que si H est un automate soigné
(section 1.1.3) il en va de même pour H.

95
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

On définit

fjt • Z - > Z, •

{ (</(9). *.«/(«'))' sicrGE0;

(</(<?)» Tb, <?(</)), si cr g E 0 et . 9 ( 9 ) / (,((/') ;


^ ^

indéfinie, autrement
la fonction de correspondance des transitions entre H et H/(E„, p). Donc g, produit l'en-
semble des transitions de H à partir de l'ensemble des transitions de H de la façon suivante.
1. Les transitions de H dont l'événement est inobservable et dont les classes d'équiva-
lence dans Y des états source et cible sont les mêmes, ne sont pas retenues.
2. Parmi les transitions de H projetées, les états source et cible sont remplacés par leur
classe d'équivalence dans Y et le même événement est conservé s'il est observable
(a G E„) ou remplacé par r 0 5 'il n 'est pas observable (a G E — E„).
Aussi, Dgt (%) dénote l'ensemble des transitions de H sur lesquelles gt est définie, c'est-à-
dire
Dgt(Z) := {< G Ts | gt(0 est définie} (2.14)
de sorte que (q, a, q') G % — Dgt(%) si et seulement si a G E 0 et g(q) = g(q'). En clair,
les transitions sur un événement inobservable (au sein de H) qui sont internes à un même
état du quotient, ne sont pas définies dans le quotient.
Soit maintenant G = (Q, E U T , S, q0, Qm) un automate fini obtenu par réétiquetage de
G, une machine de Mealy finie et déterministe représentant ( / , 9) selon les équations 2.4
et 2.3. Soit pG telle que définie par l'équation 2.9 et

G := G/(T, PG) = (Y, T U {r0},V, y0, Ym)

où r0 & E U T. Dans ce quotient on appelle une r0-transition une transition correspon-


dant à i)(y, TO) définie pour un certain y G Y. Le résultat suivant caractérise la propriété
d'observateur et procure un critère d'arrêt pour l'algorithme de Wong.

Théorème 4A. [60j


La projection 9 : L —> M est un Lm-observateur si et seulement si G est déterministe et

96
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

ne contient aucune T0-transition.


L'automate G initial défini d'après l'équation 2.4 sert de point de départ à l'algorithme
de Wong et suit le plan suivant.
1. Calculer p,+i, la quasi-congruence la plus grossière correspondant à Gt.
2. Calculer G, = G,/(r„p, + 1 ).
3. Si G, est déterministe et libre de toute rfrtransition, alors G := G, et on arrête;
sinon on continue à l'étape suivante.
4. Réétiqueter G, de sorte à rendre G, déterministe et libre de r0-transitions en ajoutant
de nouveau événements à Tt si nécessaire, donnant un nouvel alphabet Ti+i et un
nouvel automate G î + i, incrémenter ? et retourner à l'étape (1).
En sortie on retrouve un quotient déterministe G. L'étape de réétiquetage peut détruire la
relation de quasi-congruence, c'est pourquoi on doit la recalculer après un réétiquetage. La
logique de réétiquetage peut éventuellement être adaptée moyennant certaine restrictions
pour que l'algorithme converge. D'abondants détails peuvent être trouvés dans Wong et
Wonham [60].
Le quotient obtenu est un AFD minimal reconnaissant le langage 9(Lrn) et le calcul
s'effectue en temps polynomial.

[Link] Lien avec le contrôle hiérarchique

Moyennant qu'il soit possible d'induire une technologie de contrôle adéquate dans le
quotient obtenu par l'algorithme de Wong, d'assurer une forme de consistance du contrôle
(section [Link]) et de réunir les conditions pour le contrôle non bloquant (section 2.3.4),
les avantages de cette technique pour la conception de composantes réutilisables semblent
évidents, en particulier pour un contrôle du type SFBC (section 2.5 et section 2.7).

2.8.2 Notion d'automate partition


Pour un AFD G = (Q, E. S, qo- Qm) et une partition ir arbitraire sur son espace d'états
Q, on peut former un automate-partition (7T-AFD) G* = (n, Eff, S*, Ql, Q*m), où
- n — {Qi Qn], n> 1, est une partition de Q représentant les états de G^ ;
97
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

- E* = {r( | (3(7,(7 | (/ G Qi,a G E : S(q,a)\ A <*(</, a) G Q3 fi Ql)} dénote un


ensemble d'événements de transition entre les éléments de n ;
- S* : w x E* —* K est une fonction de transition partielle définie par

v<<n ^s J Ch si 3
( 7, a | (/ G Qn a G E : % , a)! A % , a) G Q, fi Q,)
S (Qi,T?) := < . .
^ indéfinie autrement.
Il n'est pas nécessaire de se soucier de Ql et Qrm. Il suffit de savoir qu'ils existent et sont
définis dans [29]. L'automate G" est un AFD dont chaque état correspond à une famille
d'états de G, et qui signale toute transition entre deux éléments distincts de la partition -n.
On peut ainsi définir une projection B w : Q x E —* E* U {e} telle que, pour tout q G Qt
et cr G E,
f TJ si S(q,a)\ et S(q,a) G Q, fi Qt
en(q,a) := <
[ e autrement.
Cette projection (illustrée en figure 2.12) peut être implémentée en se servant de G pour
former le générateur de Mealy Ge» = (Q, E, Y7, S, B \ Q 0 , Qm). Il est évident que G e »
génère Qn(L(G)) en sortie et que 9*(L(G)) Ç L(G i r ). Mais puisque n est arbitraire sur
Q, on aura en général une inclusion stricte. En d'autres termes, même s'il était possible de
doter Gn d'une structure de contrôle adéquate, G" ne serait pas hiérarchiquement consis-
tant en général, et il serait à toute fin pratique impossible de l'utiliser pour la synthèse de
contrôleurs.
Les travaux de Caines et Hubbard exposés dans [29] consistent à identifier les condi-
tions sous lesquelles un 7T-AFD du type de Gn peut être doté d'une structure de contrôle et
garantir la propriété de consistance hiérarchique de sorte qu'il puisse éventuellement être
utilisé en synthèse de contrôleurs. Ils utilisent à cette fin un cas particulier de superstruc-
ture cellulaire telle que définie par Schwartz [48] dont la dynamique est représentée par un
Tr-AFDdutypedeG'.
Dans ce qui précède, on peut considérer que la partition n induit (dans G) un ensemble
de sous-automates Gi = (Qi U Q,.eX-, E, Si, Qifi, Qi,e.x) appelés cellules, où
- [Link] = {'i €Q\ Qi I S(q',a) = q,q' G Q,,a G E} est un ensemble d'états cibles
externes à la cellule ;
- d"„ la restriction de S k Q, x E, est la fonction partielle de transition au sein de la

98
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

FIGURE 2.12 - Générateur de Mealy pour G

cellule ;
- QI.Ù — {Q G Qt | S(q', cr) = q,q' G Q,\Q,a G E} est l'ensemble des états d'entrée
dans la cellule.
Encore une fois on peut négliger la présence d'états initial et finaux; les définitions dé-
taillées sont données dans [29]. À chaque élément de la partition Q, G n, correspond une
et une seule cellule Gi-
À l'aide de cette notion de cellule, on peut définir une relation de portée entre deux
cellules et, par extension, entre deux éléments de n. De façon informelle, la cellule G3 est
dite être en portée de la cellule Gl pour i. fi j , et noté (Gi,Gj) si Qifix n Qh0 fi 0, ou
encore si CRç, (Qj.o) fi 0. Par extension on dit alors aussi que Q3 est en portée de Q„ noté
(Qi,Q3).
D'une façon similaire on peut définir deux autres relations de portée. Notamment la
portée incontrôlable,
(Q„Q3)„**Q',oÇCR%(Q3,n),

et la portée contrôlable,

(Q.. Qj)d *> (Q..o Ç CR0,(Q,.o)) A (Q,.o n CR%;(Qj.0) = 0).

99
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

Dans un 7T-AFD, (Ql,QJ)u dénote que peu importe l'état d'entrée dans l'état Q, (q G
Qi,o), on peut toujours atteindre un état de Q3 0 (c'est-à-dire un état adjacent) par une trace
formée uniquement d'événements incontrôlables de G. Tandis que pour pouvoir inhiber
une transition entre Q, et Qf (c'est-à-dire pour que la portée (Qt, Q,)d soit réalisée), il faut
que tous les états de Q% o soient liés à Qj0 et que ces traces soient toutes composées d'au
moins un événement contrôlable de G. Naturellement les portées (Qt, Q3)u et (Qt,Qj)d ne
peuvent pas être réalisées simultanément.
On dit qu'un 7T-AFD G" est consistant quant aux traces (de l'anglais Trace-DC) si,
pour toute paire d'états Qt,Q} G TT, t fi j ,

(Ql,Qj)^(Q,Q3)uy(Qi,QJ)d-

L'automate de la figure 2.13 remplit cette condition.


Sans surprise, un 7r-AFD sur lequel la propriété Trace-DC est vérifiée admet une pro-
jection de contrôle consistante (propriété OCC, section 2.3). Il n'existe cependant pas de
procédure efficace pour trouver de tels 7T-AFD ; on doit en général explorer tout l'espace
des solutions.
La propriété Trace-DC ne permet pas à elle seule de garantir la consistance hiérar-
chique (section 2.3) d'un TT-AFD. L'AFD de la figure 2.13 en illustre les raisons. Pour in-
hiber une transition dans G \ il faut trouver une configuration de contrôle dans G dont
l'application procure Peffet voulu. Sur la figure on voit qu'il suffit d'inhiber a2 dans G
pour que T\ soit inhibé dans G*\ De plus l'inhibition de a2 dans G n'a aucun effet sur rf ni
sur T* ; ces deux événements peuvent toujours se produire dans G77. Mais pour inhiber r(
dans G", on n'a pas d'autres choix que d'inhiber ax dans G ; c'est la seule configuration de
contrôle ayant l'effet requis. Or l'inhibition de a\ dans G provoque aussi (implicitement)
l'inhibition de T\ dans G*. Ainsi G n'est pas en mesure de produire tous les sous-langages
contrôlables que l'on peut sélectionner sur G*.
Pourvu que G* soit Trace-DC, on peut vérifier que chaque cellule Ç/, (de G) est en
mesure d'implémenter, de façon indépendante (sans inhibition implicite), toutes les confi-
gurations de contrôle que l'on peut spécifier sur Qt dans G". Si cette dernière condition est
remplie, on dit que G* est Non-Blocking 1BC, et alors GK est hiérarchiquement consistant.

100
CHAPITRE 2. VARIANTES DE LA THÉORIE DU CONTRÔLE SUPERVISÉ

FIGURE 2.13 - T T - A F D Trace-DC

Sans compter que la vérification de la propriété Non-Blocking IBC est coûteuse, cette
propriété n'est pas stable sous la conjonction et la disjonction de partitions dans le treillis
des partitions sur (}, Il y a donc peu d'espoir de trouver des procédures efficaces nous
permettant de synthétiser des partitions possédant les propriétés requises à partir d'une
approximation initiale (par analogie aux procédures de synthèse de SCT).

101
Génération de contrôleurs SCT

102
Chapitre 3

Composantes réutilisables pour SCT,


position du problème et éléments de
solution

La revue du domaine présentée dans les chapitres 1 et 2 révèle que la théorie du contrôle
supervisé (SCT), bien qu'homogène dans l'ensemble de ses concepts, n'est pas homogène
au niveau de sa présentation théorique. Les concepts fondamentaux dus à Ramadge et Won-
ham [43, 44, 45] (souvent appelé le contexte usuel de SCT) demeurent les mêmes mais il
existe plusieurs variantes de la théorie dont certaines, basées sur un principe architectural de
hiérarchie entre les composantes d'un système, sont qualifiées de variantes hiérarchiques.
Parmi ces variantes hiérarchiques on retrouve notamment :
- le contrôle hiérarchique de Wong et Wonham [55, 58, 59, 60] ;
- le contrôle hiérarchique par interface (HISC) de Leduc, Brandin, Lawford et Won-
ham [35, 38] ;
- le contrôle de STS de Ma et Wonham [39].
On peut également y inclure la notion d'automate partition de Hubard et Caines [29]
présentée à la section 2.8.2. Comme la théorie originale (de Ramadge et Wonham), ces
variantes hiérarchiques possèdent toutes une notion explicite ou implicite de composante
mais, mis à part la théorie du contrôle hiérarchique par interface (HISC), l'emphase n'est
pas mise en général sur la notion de composantes réutilisables.

103
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

Le but de cette thèse est précisément d'étudier l'usage de composantes réutilisables


dans la conception et l'implémentation de contrôleurs dérivés de SCT et à cette fin une
analyse des variantes hiérarchiques de SCT semble s'imposer. L'analyse doit tenter de dé-
terminer si l'une de ces variantes peut être utilisée intégralement avec une forme de com-
posantes réutilisables. Sinon on doit déterminer s'il a un moyen de combiner ensemble
certains éléments en provenance de plusieurs de ces variantes pour former une méthode qui
permette la formulation et la résolution de problèmes de contrôle. L'analyse doit cependant
tenir compte de tous les aspects du problème, de la modélisation en passant par la synthèse
et en incluant l'implémentation automatique de la solution. L'objectif est ambitieux et il
importe d'en réduire sensiblement l'ampleur.
D'emblée on peut considérer que le contexte usuel de SCT (celui de Ramadge et Won-
ham) se prête mal à l'usage de composantes réutilisables dans la formulation de problèmes
de contrôle. Dans ce paradigme les modèles utilisés sont des modèles de sous-systèmes
et non pas, à proprement parler, de composantes ; les modèles ne sont pas génériques. On
peut contempler en réutiliser la structure mais pas directement la définition. De plus ces
modèles sont aussi élaborés en fonction du problème de contrôle considéré, et sortent com-
plètement du contexte théorique de SCT, leur élaboration se fait donc par un processus ad
hoc. La synthèse modulaire (section 2.1) n'apporte rien de nouveau et demeure soumise
aux mêmes limitations. On peut donc les éliminer comme candidats potentiel de solution.
Quant au paradigme du contrôle sous observation partielle (section 2.2) et aux variantes
du contrôle distribué formulées dans le contexte de l'observation partielle (voir [32]), l'im-
possibilité d'une synthèse non bloquante les rendent également assez peu intéressants. On
peut donc aussi les exclure de l'analyse. Remarquons cependant que l'observation partielle
est nécessaire si on entend utiliser une forme d'encapsulation pour définir la métaphore de
composante réutilisable. Heureusement les variantes hiérarchiques utilisent toutes impli-
citement une forme d'observation partielle, bien qu'elle ne soit pas formellement définie.
Seul le contrôle hiérarchique aborde cette question (voir Wong [55] en appendice B) pour
prouver que la notion d'observateur (section 2.3.3) est équivalente à l'observation partielle.
La variante du contrôle par prédicats (section 2.5) n'est pas une théorie complète en ce
sens qu'elle n'est pas assortie de procédures de synthèse dans [62]. Zhang [63] élabore des
procédures appropriées pour ce type de contrôle, mais le contexte de modélisation présumé

104
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

est alors le contexte usuel de SCT. En fait le contrôle par prédicats trouve son expression
la plus intéressante dans la théorie du contrôle de STS de Ma et Wonham. Il n'est donc pas
nécessaire d'en faire une analyse indépendante.
En dernier lieu, on peut considérer que les travaux de Wong et Wonham sur le contrôle
hiérarchique couvrent la notion d'automate partition de Hubbard et Caines à travers la no-
tion d'observateur (voir à ce sujet [60]). Or le support formel et algorithmique pour l'élabo-
ration d'observateurs résultant en un quotient de l'AFD du modèle observé (précisément un
type d'automate partition) est plus précis et plus complet. La notion d'automate partition
de Hubbard et Caines peut donc aussi être exclue de l'analyse.
L'analyse peut donc se confiner à l'ensemble des variantes hiérarchiques de SCT, puis-
qu'elles semblent présenter les caractéristiques les plus adéquates par rapport à l'objectif
global de cette étude.

3.1 Position du problème et grille d'analyse


Le problème général de conception et d'implémentation de contrôleurs dérivés de SCT
peut être divisé en trois sous-problèmes principaux :
- le problème de la modélisation ;
- le problème de la synthèse ;
- le problème de la génération de code.
Le sous-problème de la modélisation se divise lui-même en deux sous-problèmes :
- la modélisation du système à contrôler (comportement libre du système) ;
- la modélisation du processus à implémenter sur ce système (les contraintes ou requis
du contrôle).
Le but de cette étude est d'identifier une métaphore de composantes réutilisables permet-
tant de supporter l'automatisation (partielle ou complète) de la solution à chacun de ces
problèmes ; il faut donc préciser cette notion de composante réutilisable.

105
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

3.1.1 Notion intuitive de composante réutilisable


L'utilité et la nouveauté de SCT réside largement dans la possibilité d'une synthèse de
la logique de contrôle. Le problème de la synthèse pose à son tour la question de la dispo-
nibilité de procédures de synthèse. Seules les variantes hiérarchiques de SCT (en plus du
contexte usuel de SCT) définissent des procédures de synthèse, et toutes reposent sur des
descriptions du système sous forme de structures de transition. La modélisation doit donc
utiliser des structures de transition (des AFD ou des holons, section [Link]). Or, comme
le fait remarquer Leduc dans [33], il est généralement nécessaire d'élaborer ces repré-
sentations car la dynamique des dispositifs utilisés dans les problèmes de contrôle n'est
généralement pas décrite de façon aussi formelle dans les manuels techniques. Ce proces-
sus s'apparente à une forme d'abstraction des dispositifs physiques, dont le produit est un
structure de transition (généralement un AFD) faisant office d'interface entre le dispositif
physique et la spécification SCT.

[Link] Notion de composante dans le contexte usuel de SCT

Dans le contexte usuel de SCT (celui de Ramadge et Wonham) il existe déjà une notion
intuitive de composante (section 2.1). Le comportement libre d'un système G peut prendre
la forme d'une composition synchrone (compositionparallèle) d'AFD G t , i G { 1 , . . . , n} :

G : = | | G,. (3.1)

Cette expression algébrique exprime l'intuition selon laquelle le système G est constitué de
composantes en fonctionnement parallèle concurrent. Cette notion intuitive de composante
ne suffit-elle pas?
Tout d'abord il devrait être clair que l'ensemble des modèles Gj de l'équation 3.1 ne
correspondent pas à la notion de composante, telle qu'on entend généralement en génie lo-
giciel, mais bien à la notion d'instance de sous-systèmes particuliers. Pour correspondre à la
notion de composante il lui manque une notion adéquate d'instanciation. Dans la situation
envisagée, il s'agit de modèles génériques de générateurs (voir section 1.1.3) dont l'en-
semble des G, constituent alors des instances. Or si les instances de composantes peuvent

106
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

partager des événements, ou s'il existe toute autre forme de dépendance entre elles, la no-
tion d'instanciation devient délicate. Que veut dire alors d'instancier un générateur (que
signifie G, au juste)? Les événements sont-ils partagés entre deux instances d'un même
générateur générique (une composante réutilisable) ? Mais alors qu'en est-il des événe-
ments que partagent deux générateurs génériques distincts (deux composantes réutilisables
distinctes) ?
Si on considère que deux instances d'une même composante réutilisable modélisent
deux dispositifs physiques distincts au sein d'un système, il serait naturel d'imaginer que
ces deux modèles possèdent chacun leur alphabet d'événements et que ces deux alphabets
soient disjoints. Autrement dit deux instances d'une même composante réutilisable défi-
nissent des alphabets disjoints, des espaces d'états disjoints et des fonctions de transition
disjointes, bien que les structures de transition soient isomorphes (aux étiquettes d'événe-
ments et d'états près). On parle alors de composantes disjointes.
Il est aussi difficile d'imaginer que plusieurs composantes réutilisables distinctes (dont
les instances sont appelées à modéliser des dispositifs physiques distincts) puissent partager
des événements, car alors ces composantes réutilisables ne peuvent jamais être instanciées
séparément. On peut dire qu'un tel ensemble de composantes réutilisables constitue en
fait un seul module qui décrit le comportement du matériel à l'aide de plusieurs généra-
teurs partageant une partie ou la totalité de leurs événements. Par conséquent on a plutôt
affaire à une seule composante réutilisable dont le modèle de comportement contient plu-
sieurs générateurs dont les alphabets ne sont pas disjoints. Il est clair que dans ce dernier
cas, puisqu'on doit toujours instancier l'ensemble des générateurs au complet lors d'une
instanciation de la composante, on peut combiner les générateurs en question par compo-
sition synchrone pour obtenir une description unique du comportement de la composante
réutilisable. On peut donc supposer aussi que les définitions de composantes réutilisables,
prises deux à deux, définissent des alphabets disjoints, des espaces d'états disjoints et des
fonctions de transition disjointes.
Une fois munies d'une notion d'instanciation appropriée, il devient possible d'utili-
ser des composantes réutilisables pour exprimer le comportement libre d'un système par
simple composition synchrone d'instances de ces dernières comme à l'équation 3.1. Ce
produit exprime le fait que les sous-systèmes (représentés par des instances de compo-

107
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

santés réutilisables) sont en fonctionnement parallèle concurrent. Puisque les alphabets des
instances sont disjoints on obtient alors un produit intercalé (voir section 1.1.4). Mais pour
formuler cette notion d'instanciation, on doit supposer que les instances sont toutes dis-
jointes deux à deux. Cette limitation est-elle bien raisonnable?
On constate que, dans la pratique, l'usage d'usines modulaires pour implémenter des
procédés industriels est fort répandue. Ce type d'usine est un assemblage de composantes
physiques modulaires (vérins, pinces, étaux entre autres) que l'on peut reconfigurer à vo-
lonté pour s'ajuster à différents procédés de fabrication. Chaque composante physique
d'une usine modulaire dispose de ses propres capteurs et actionneurs. Les capteurs et les ac-
tionneurs sont associés à des entrée/sorties et sont à l'origine des événements perceptibles
(ou générés) par la logique de contrôle. Comme les composantes physiques d'une usine
modulaire ne partagent généralement pas leurs entrées/sorties, ces composantes physiques
peuvent donc être considérées comme disjointes et en fonctionnement parallèle concurrent.
Puisqu'il y a souvent beaucoup de redondance parmi les dispositifs utilisés pour constituer
un système dans ce type d'usine (par exemple plusieurs vérins pneumatiques identiques
quant à leur fonctionnement), l'usage de composantes réutilisables stéréotypées peut repré-
senter une amélioration substantielle pour la modélisation de systèmes. Il est donc raison-
nable de supposer dans cette analyse que les systèmes sont réalisés à partir d'instances dis-
jointes de composantes réutilisables modélisant des sous-systèmes, eux-mêmes disjoints,
comme dans le cas des usines modulaires.
La notion intuitive de module (c'est-à-dire les G,) implicite à l'équation 3.1 est sou-
vent utilisée dans le contexte usuel de SCT. Or cette notion, bien que commode, souligne
plusieurs difficultés relatives à la conception de modèles en SCT, surtout si l'on contemple
l'usage de composantes réutilisables telles qu'esquissées dans ce qui précède. Entre autres,
- l'élaboration de composantes se fait de façon ad hoc ;
- les modules sont conçues en fonction d'un problème de contrôle spécifique.
Dans le contexte usuel de SCT, le processus d'élaboration des modèles n'est ni spécifié ni
supporté de façon formelle par la théorie. Il s'agit donc d'un processus ad hoc complète-
ment ouvert qui pose la question de la validité des modèles obtenus et, par conséquent, met
aussi en question la qualité de la synthèse. On élabore généralement les modèles, corres-
pondant aux différents modules, en fonction du problème de contrôle envisagé, de façon

108
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

à en réduire la complexité et à faciliter l'élaboration de contraintes (expression des re-


quis du contrôle). On cherche aussi, en général, à concevoir ces modèles de sorte à éviter
le problème de l'explosion de l'espace des états (voir au chapitre 2) qui rend la synthèse
impossible à cause de l'espace requis pour les calculs. En conséquence le potentiel de réuti-
lisation des modèles obtenus pour ces modules s'en trouve sévèrement compromis.
Par opposition, une composante réutilisable ne doit reposer sur aucune hypothèse a
priori concernant le problème de contrôle à résoudre. Idéalement elle doit être utilisable
dans n'importe quel problème de contrôle où l'ensemble des services qu'elle offre s'avère
adéquat. Sur une telle base, l'élaboration d'une composante réutilisable doit viser à exposer
tous les services que le matériel modélisé est en mesure de procurer. Il s'agit donc d'un
modèle exhaustif détaillé de la dynamique du dispositif modélisé. Ce type de modèle est
mal adapté à un usage correspondant à la notion intuitive de composante de SCT. Dans le
cas d'un problème de contrôle particulier, un modèle exhaustif se révèle souvent trop riche,
c'est-à-dire que le problème de contrôle n'utilise en général qu'un petit sous-ensemble du
répertoire des actions que peut réaliser le dispositif. Le nombre de ces possibilités peut être
élevé, surtout s'il s'agit d'un dispositif programmable, même si on programme ce dernier
dans le but d'un usage spécialisé. En conséquence la structure de transition du modèle est
souvent inutilement volumineuse ce qui complique l'expression des requis de contrôle et
expose l'utilisateur au problème d'explosion de l'espace des états.

[Link] Problème de la conception ad hoc de modèles

Les problèmes relatifs à la conception de composantes sont rarement abordés dans la


littérature concernant SCT, probablement à cause de la nature ad hoc du processus. Dans
le contexte usuel on suppose implicitement que ce travail de modélisation est simplement
répété pour chaque problème de contrôle. Or pour obtenir un modèle adéquat on doit sou-
vent faire nombre d'hypothèses quant au comportement du matériel utilisé (des hypothèses
spécifiques) et souvent valider ces hypothèses de façon statistique sur le matériel lui-même
ou tout au moins par simulation. Ce travail minutieux, sujet aux erreurs, fait habituellement
l'objet de plusieurs révisions avant d'en arriver à un modèle satisfaisant. Mais il est tout
aussi essentiel qu'inévitable puisque la qualité de la synthèse en dépend. Ainsi l'élaboration
d'un modèle adéquat de façon ad hoc, bien qu'inévitable, est un processus très laborieux

109
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

qui gagnerait à être réutilisable.


Pour mieux situer le problème il est utile d'en faire l'illustration sur un exemple simple
de dispositif fréquemment rencontré dans les usines modulaires. Cette illustration procure
aussi l'occasion d'initier le lecteur aux conventions de notations et de nomenclature ainsi
qu'à l'interprétation des éléments des diagrammes utilisées dans les sections subséquentes.
On y propose donc une méthode ad hoc pour la conception de modèles exhaustifs de com-
posantes qui se veut typique dans son genre.
La figure 3.1 illustre la conception du modèle exhaustif du comportement d'un vérin
pneumatique à commande monostable. On distingue clairement trois phases.
1. D'abord un modèle brut est établi (figure 3.1 (a)).
2. Ensuite on dégage le comportement désiré (figure 3.1 (b)) qui doit éventuellement
être obtenu par programmation et qu'on appelle pré-conditionnement du dispositif.
3. Enfin on dégage un modèle exhaustif final (figure 3.1 (c)) où on change éventuelle-
ment les étiquettes d'événement ou d'état.
La phase d'établissement du modèle brut vise à identifier clairement l'espace des états
que peut prendre le dispositif ainsi que l'ensemble des événements qu'il génère. Cette tâche
doit s'appuyer sur les éléments qui sont perceptibles à la logique de contrôle, notamment
l'état des capteurs et des actionneurs (respectivement, les entrées et les sorties du disposi-
tif). On suppose ici que l'élément de contrôle est un automate programmable.
Sur la figure 3.1 (a), chaque état est assorti d'une signature prenant la forme d'un vec-
teur de formules logiques, chaque formule associée à une variable. Ces variables corres-
pondent aux actionneurs et aux capteurs du dispositif et définissent un ensemble ordonné
interprété comme un vecteur d'état (<Y,X0,X1> dans la figure). Par convention on utilise
des préfixes pour distinguer les capteurs des actionneurs.
1. Le préfixe «Y» désigne un actionneur binaire.
2. Le préfixe «X» désigne un capteur binaire.
Lorsque plus d'un élément du même type est requis, on y ajoute un index, par exemple XO
et XI dans la figure pour les capteurs de fin de course du vérin, et Y pour sa commande.
Les signatures s'interprètent comme une formule logique, par exemple l'état <Y,X0,X1 >
vérifie la formule F 0 = Y A XO A XL L'utilisation du vecteur d'état peut être utile pour

110
CHAPITRE 3. COMPOSANTES REUTILISABLES POUR SCT

ixo

1X1

(a) Modèle brut du matériel

iXO

deployed

iXl
(b) Modèle du matériel conditionné par programmation

1X0
deployend

rétracta \^1 ^ " f~ retract


iXl
(c) Modèle exhaustif final

FIGURE 3.1 - Modélisation ad hoc d'un vénn à commande monostable

111
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

détecter que Pespace d'états défini par les entrées/sorties n'est pas suffisant pour exprimer
tous les états que peut prendre le dispositif. Les événements que peut générer le dispositif
sont liés à des changements du vecteur d'état, c'est-à-dire qu'il s'agit principalement de
fronts montants et descendants des variables du vecteur d'état.
L'établissement d'un comportement désirable (phase (2)) vise à identifier l'ensemble
des services que doit procurer le dispositif et les modalités de ces services (par exemple
si oui ou non une requête de service peut résulter en un échec). On vise en particulier à
éliminer toute instabilité dans le modèle de lafigure3.1 (a) en éliminant l'effet de l'inertie
dans le dispositif résultant d'un usage chaotique de la commande.
Dans lafigure3.1 (a), le modèle brut, certaines transitions sont identifiées en pointillé.
Ces transitions sont liées à un usage chaotique de la commande du vérin c'est-à-dire que
si la commande n'est pas d'avance soumise à un certain schéma d'usage ordonné, toutes
ces transitions sont possibles dues à l'inertie du vérin. L'effet de l'inertie doit généralement
être éliminé par programmation (pré-conditionnement du modèle brut) et par validation du
modèle résultant car, par la définition de la contrôlabilité, toutes les transitions sur événe-
ments incontrôlables du modèle brut sont préservées par la synthèse SCT. Alors, même s'il
était possible d'éliminer l'effet de l'inertie par calcul d'une loi de contrôle correspondant
à une synthèse SCT, le modèle théorique du système en boucle fermée (voir section 1.3.2)
résultant de la synthèse contiendrait toujours ces transitions parasites et ne serait donc pas
fidèle à la réalité (puisque l'effet de l'inertie ajustement été éliminé).
L'élaboration du modèle exhaustif final (phase (3)) ne vise qu'à rendre le modèle plus
expressif, par exemple en changeant l'étiquette des événements, ou à en rendre l'expres-
sion plus économique, par exemple en remplaçant les signatures des états par des numéros.
Il ne s'agit que d'un réétiquetage, on forme donc des alias. On a alors que l'événement
[Link] devient équivalent à la commande de déploiement du vérin qui consiste à cau-
ser l'occurrence de l'événement îY, que deployf.„d correspond à l'occurrence d'un front
montant du capteur XI (îXl) ou encore que l'état «0» correspond à la formule logique
F0 = Y A XO A XL

112
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

[Link] Solution possible au problème de conception ad hoc

En apparence il semble y avoir conflit entre les nécessités relatives à la modélisation


et à la synthèse de problèmes de contrôle, qui requièrent des modèles compactsfiables,et
la nature laborieuse et aléatoire de la confection de composantes selon le modèle intuitif
de SCT. Le manque de support formel pour la confection de composantes semble parti-
culièrement épineux. Or, comme mentionné par Leduc [33], il est clairement impossible
d'éviter d'utiliser un processus ad hoc lorsqu'il s'agit de décrire le comportement d'un dis-
positif matériel de façon formelle. Leduc apparente ce processus à Y abstraction d'un genre
d'interface formelle compatible à l'usage dans les procédures de synthèse. Une mesure
d'arbitraire semble donc inévitable en ce qui concerne l'élaboration de modèles exhaustifs
à partir de dispositifs matériels.
Dans la perspective qui précède, l'élaboration de composantes réutilisables peut être
envisagée en deux phases.
1. Pour tout dispositif matériel, on doit d'abord procéder à l'élaboration d'un modèle
exhaustif de son comportement par un processus ad hoc.
2. On peut ensuite envisager d'abstraire du modèle exhaustif un ou plusieurs modèles,
plus compacts et mieux adaptés à un problème de contrôle particulier ou a un classe
de problèmes de contrôle.
La première phase (ad hoc) vise à élaborer une représentation formelle exhaustive du com-
portement d'un dispositif matériel (par exemple un AFD, comme dans [33]). Ce modèle
décrit en détail toutes les possibilités offertes par le dispositif modélisé (l'ensemble de ses
services), et peut éventuellement être utilisé directement dans la modélisation d'un pro-
blème de contrôle. Il s'agit du modèle exhaustif ou modèle détaillé de la composante. La
deuxième phase vise à abstraire un modèle d'interface simplifié par encapsulation des élé-
ments de la dynamique détaillée du modèle exhaustif ne présentant pas d'intérêt pour cer-
tains problèmes de contrôle. Le modèle d'interface doit naturellement être utilisable dans
la modélisation de problèmes de contrôle, donc il s'agit aussi d'une structure de transition
appropriée. Le même dispositif de base (modèle exhaustif) est ainsi réutilisé sous plusieurs
interfaces, et la composante éventuellement réutilisée par instanciation dans plusieurs pro-
blèmes de contrôle. La possibilité d'utiliser un support formel pour la modélisation de

113
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

composantes apparaît donc plus clairement dans la deuxième phase, puisqu'alors on dis-
pose déjà d'un modèle exhaustif formel du dispositif à contrôler. L'usage d'un support for-
mel pour l'abstraction d'interfaces présente l'avantage de confiner l'élément d'arbitraire,
inévitable dans l'abstraction du comportement d'un dispositif physique, à l'élaboration du
modèle exhaustif. Toutes les interfaces dérivées de ce modèle exhaustif jouissent alors de
certaines garanties formelles, ce qui limite l'incertitude et permet d'amortir l'effort investi
dans le modèle exhaustif.
Dans ce genre de processus d'élaboration de composantes en deux phases (modèle +
abstraction), on peut même envisager que la phase d'abstraction puisse être répétée le
long de Y axe vertical. Par exemple, on peut associer un ensemble de composantes (vérins
et ventouse pneumatique) en un sous-système formant une grue, pour ensuite abstraire
le comportement de cette grue en une interface appropriée plus naturelle à utiliser dans
un problème de contrôle impliquant l'usage d'une grue. Une telle manoeuvre implique un
genre de synthèse partielle sur le sous-ensemble des composantes utilisées pour obtenir une
loi de contrôle locale correspondant au comportement d'une grue. Cette loi de contrôle est
obtenue par application d'un ensemble de requis de contrôle dont la portée est purement
locale, ayant préséance sur tout autre requis de contrôle en provenance du système global.
Le système global contrôle donc une grue et non pas un ensemble amorphe constitué de
vérins et d'une ventouse pneumatique. Ce type d'abstraction situe les requis de contrôle le
plus près possible de l'endroit où ils s'appliquent (un type de modularisation des requis de
contrôle) et procure à la conception une perspective plus significative des dispositifs et des
sous-systèmes à contrôler (ce qui peut aider dans la formulation des requis).

3.1.2 Composantes réutilisables en modélisation et en synthèse


Pour guider l'analyse et se donner une idée des éléments à rechercher dans la littérature
sur SCT, il peut être utile de se donner une idée approximative de la forme que peut prendre
l'usage de composantes réutilisables dans la modélisation de problèmes de contrôle. Ce
qui suit n'a que valeur d'illustration. On ne considère d'abord que les sous-problèmes de
modélisation et de synthèse.

114
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

[Link] Scénario d'usage de composantes réutilisables

Pour poursuivre l'argumentation de la section 3.1.1, une composante réutilisable peut


être modélisée par une paire de générateurs C := (G, G), où G représente le générateur
du modèle exhaustif de la composante et G le générateur de son interface abstraite. Une
composante réutilisable C est ainsi un stéréotype correspondant à une classe de dispositifs
partageant les mêmes caractéristiques de fonctionnement et à ce titre les générateurs G
et G sont considérés génériques. On peut dire que C correspond à la notion de classe
en programmation par objets. En poursuivant cette analogie on peut considérer qu'une
instance de C, nommée C, constitue un espace symbolique (l'équivalent de la notion de
namespace en anglais) où sont définis G et G- En programmation par objets, l'analogie
correspondante est celle de la déclaration d'une variable nommée C dont le type est C ; une
classe. L'effet d'une telle déclaration, au niveau de l'espace symbolique où cette déclaration
se situe, est de redéfinir implicitement tous les symboles compris dans la définition de la
classe C. La désignation des symboles de C devient alors relative à la variable ('.
Dans le cas qui nous intéresse, pour une instance C de C = (G, G), on a alors deux
générateurs C.G et C.Q où l'usage du préfixe «C.» correspond à l'usage des noms quali-
fiés répandu en programmation par objets, et spécifie un espace symbolique. Ainsi on peut
considérer que le modèle d'un système est composé d'un ensemble de variables d pour i G
{1,..., n}, où chaque variable est associée à une composante réutilisable Ca := (Ga,Ga)
(a G A, un index) qui en définit le type (ou stéréotype). Bien sûr pour Cx, C3 (i fi j)
le stéréotype utilisé C Q peut être le même, mais puisque C\ et Cj définissent des espaces
symboliques disjoints et que chacun redéfinit tous les éléments symboliques de la compo-
sante réutilisable Ca (la classe) y compris leurs alphabets, alors les alphabets de C,.G et
( j . G sont disjoints ainsi que ceux de C\.G et C3.Q de sorte que (!t et C3 représentent des
composantes disjointes (au sens de sous-systèmes comme pour le contexte usuel de SCT).
Dans l'expression d'un problème de contrôle, le modèle du système est donc constitué
de variables typées, C\ pour i G {1,..., n}, correspondant à des instances de composantes
réutilisables (C Q pour un index a G A). Chaque variable est associée à une composante
réutilisable (son type) de façon indépendante. L'instanciation n'est pas effective au moment
de la modélisation mais elle y est implicite dans le sens que chacune de ces variables est

115
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

éventuellement assignée, à l'exécution, à un et un seul dispositif qu'elle modélisé. On ob-


tient donc un ensemble de paires de générateurs (G,, £,), où G, := (7,.G et Gi :— (\-G,
avec l'assurance que l'ensemble des G t ont des alphabets disjoints deux à deux ainsi que
l'ensemble des G,, c'est-à-dire que les modèles des sous-systèmes sont disjoints. Globale-
ment on obtient aussi deux modèles pour le système, soit le générateur

G := || G,

qui modélisé le comportement libre du système de façon exhaustive, et le générateur

G •-= || G,

qui modélisé en quelque sorte son comportement libre abstrait.


On remarque ici que le problème de l'instanciation n'a pas d'impact direct sur la for-
mulation du problème de contrôle, en ce sens que la formulation du comportement libre
du système ne change pas, pourvu que l'hypothèse initiale de sous-systèmes disjoints soit
maintenue. Le problème d'instanciation se résume à procurer un mécanisme syntaxique
adéquat garantissant de préserver cette hypothèse. Cependant l'usage de composantes réuti-
lisables introduit deux modèles, le modèle concret G et le modèle abstrait G- L'introduc-
tion d'un modèle abstrait dans la description du modèle d'un système est un changement
significatif.
En général, on veut éviter de travailler directement sur le modèle concret G et plutôt
utiliser le modèle abstrait G dont on espère la structure moins complexe et mieux adaptée
au problème de contrôle à résoudre. Ainsi on veut pouvoir exprimer les requis du contrôle
sur G et, à l'aide de procédures de synthèse adéquates, calculer une loi de contrôle sur
G correspondant à ces requis et procurant des garanties similaires au contexte usuel de
SCT (solution contrôlable et non bloquante au problème de contrôle). Or, pour que ce
schéma puisse fonctionner, il faut pouvoir assurer un forme de propriété de consistance
entre l'abstraction G et son modèle concret G. Cette propriété de consistance doit assurer
que, ou bien la synthèse effectue un calcul direct de la solution sur G, ou bien la synthèse
calcule une solution abstraite (une loi de contrôle sur G) que l'on peut reporter sur G d'une

116
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

façon ou d'une autre.


On remarque que la phase d'abstraction du processus modèle + abstraction présuppose
une forme d'encapsulation. En informatique on reconnaît deux principes intuitifs relatifs à
l'encapsulation. On parle d'encapsulation opaque (de l'anglais black-box encapsulation) et
d'encapsulation ouverte (white-box encapsulation). On peut, très grossièrement, classifier
les variantes hiérarchiques de SCT selon ces notions intuitives. Le contrôle hiérarchique
(voir section 2.3), à travers la notion de projection causale, procure une forme d'encapsu-
lation opaque. Il en va de même pour HISC (section 2.4) à travers sa notion explicite et
formelle d'interface. Dans ces dernières variantes l'encapsulation est opaque en ce sens
que la dynamique détaillée des modèles exhaustifs (ou modèles concrets) est inaccessible
aux procédures de synthèse, seule la structure des interfaces est visible au niveau abstrait.
Dans ce cas la consistance entre le modèle abstrait et le modèle concret doit être assurée
par un ensemble de propriétés vérifiables sur les interfaces, tandis que le contrôle de STS
(section 2.7), à travers la notion de superposition de holons, procure une encapsulation ou-
verte en ce sens que la procédure de synthèse utilise la dynamique détaillée des modèles
concrets (les holons). L'encapsulation est donc ouverte en ce sens que la dynamique des
modèles concrets est accessible à la procédure de synthèse et que la solution calculée est
applicable directement au modèle concret du procédé. Dans ce dernier cas l'outil de modé-
lisation allié à des procédures de synthèse adaptées procure la consistance entre modèles
abstrait et concret.
L'usage d'une encapsulation ouverte procure en général une solution de synthèse op-
timale selon les critères de SCT, c'est-à-dire que la solution correspond au plus grand
sous-langage contrôlable et non bloquant de l'objectif de contrôle. Autrement dit toutes les
options de contrôle demeurent accessibles à la synthèse. Par contre l'usage d'une encapsu-
lation opaque résulte habituellement en une solution de synthèse non optimale puisque les
procédures de synthèse n'ont alors pas accès aux options de contrôle encapsulées dans les
composantes abstraites. En général, cette perte d'optimalité dans des solutions de synthèse
n'est pas considérée critique pourvu que les solutions obtenues demeurent adéquates du
point de vue pragmatique. Une synthèse optimale en SCT ne correspond pas nécessaire-
ment à une notion pragmatique du contrôle optimal d'un dispositif. Les critères pragma-
tiques sont en général plus variés, moins bien définis et puisqu'ils interagissent entre-eux

117
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

ils sont souvent de nature variable. Pour véritablement tenir compte de critères d'optima-
lité de nature pragmatique, il faudrait sans doute faire intervenir des fonctions de coût (voir
à cet effet [28]). Il existe de nombreux cas où l'expression et l'encapsulation de requis
de contrôle de portée locale (par exemple l'usage d'un vérin et d'une ventouse pneuma-
tique encapsulés pour procurer le comportement d'une grue) clarifient l'expression d"un
problème de contrôle et de ses requis au niveau global. Une encapsulation opaque du type
offert par le contrôle hiérarchique peut même réduire significativement la complexité de la
synthèse, entre autres avantages. Aussi, lorsque l'encapsulation opaque procure des béné-
fices appréciables sans trop hypothéquer la synthèse, il peut être admissible de l'utiliser.
Mais c'est là, bien sûr, où intervient le jugement d'un concepteur de composantes réutili-
sables.

[Link] Critères d'analyse liés à la modélisation et à la synthèse

De ce qui précède on peut déjà dégager un ensemble critères utiles pour la recherche
d'une métaphore de composantes réutilisables.
Cl. On vise à identifier les éléments de modularisation permettant de supporter une mé-
taphore de composante réutilisable du type modèle + abstraction.
C2. La méthode d'abstraction peut utiliser une forme d'encapsulation opaque ou ouverte,
mais elle doit procurer une forme de consistance afin de garantir qu'une synthèse
contrôlable et non bloquante sur le modèle abstrait puisse être implémentée sur le
modèle concret (par une loi de contrôle appropriée).
C3. On vise à identifier la possibilité de disposer d'un support formel pour la dérivation
d'interfaces (Yabstraction).
C4. Il est désirable que le processus d'abstraction puisse être répété sur l'axe vertical de
manière à encapsuler des requis de contrôle de portée locale.
C5. On vise à identifier la disponibilité de procédures de synthèse adaptées (ou du moins
adaptables) à l'usage de composantes réutilisables.
C6. On vise à examiner la possibilité d'utiliser les méthodes symboliques (section 2.6)
dans les calculs de synthèse.

118
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

L'usage des méthodes symboliques pour la synthèse n'est pas un préalable à l'usage (ou à
la définition) d'une métaphore de composantes réutilisables, mais il peut s'avérer utile pour
considérer la synthèse sur des systèmes d'envergure réaliste (voir Zhang et Wonham [64]
et Ma et Wonham [39]).
Aussi, les limitations suivantes semblent raisonnables et utiles pour l'analyse.
Ll. On peut considérer a priori que les composantes d'un système (au sens de sous-
systèmes comme dans le contexte usuel de SCT) sont disjointes (cas des usines mo-
dulaires).
L2. On peut considérer des formes d'encapsulation opaques même si cela entraîne a
priori une certaine perte d'optimalité de la synthèse (selon les critères de SCT).
L3. On peut se limiter à des solutions de synthèse monolithiques, c'est-à-dire que l'ar-
chitecture de contrôle est centralisée.
Une fois de plus la synthèse monolithique (par opposition à la synthèse modulaire ou dis-
tribuée, voir la section 2.1 par exemple) n'est pas un préalable à l'usage (ou à la définition)
d'une métaphore de composantes réutilisables, mais cette limitation semble raisonnable vu
l'envergure déjà considérable de la tâche.

3.1.3 Composantes réutilisables et implémentation de contrôleurs


L'un des buts de la présente thèse est d'examiner la possibilité d'une génération auto-
matique de l'implémentation de contrôleurs issus d'une conception utilisant des compo-
santes réutilisables en conjonction avec les procédures de synthèse de SCT. Cet aspect du
problème impose des limitations strictes sur l'ensemble des solutions possibles qu'il faut
garder à l'esprit même à ce stade préliminaire où l'on tente de définir une métaphore de
composantes réutilisables pour SCT.

[Link] Problèmes liés à l'implémentation de contrôleurs

Les procédures de synthèses définies à ce jour produisent soit un superviseur adéquat


(voir la section 1.3.2), la version formelle d'un contrôleur, soit une loi de contrôle de type
SFBC (voir la section 2.5 pour la définition et [39], [52] pour les procédures de synthèse).

119
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

Un superviseur adéquat prend généralement la forme de l'AFD correspondant au com-


portement de la boucle fermée du système sous contrôle. Cette structure de transition peut
être considérée en elle-même comme un contrôleur (figure 1.1). Ainsi une forme naïve
d'implémentation consiste à implémenter la structure de transition d'un superviseur adé-
quat telle quelle (voir [11] entre autres). Cependant cette solution n'est en général pas
praticable étant donnée la taille de cette structure de transition même pour des problèmes
de contrôle relativement modestes. Si on contemple l'implémentation sur un automate pro-
grammable (PLC-Programmable Logic Controller), une solution fréquente en automatisa-
tion industrielle, cette solution devient alors tout à fait irréaliste.
Ainsi, l'implémentation de la structure de transition d'un superviseur adéquat est géné-
ralement hors de portée à cause de la taille de son espace d'états. Mais d'autres problèmes
(détaillés dans [7] et aussi dans [33]) sont dus à la présence de parallélisme effectif entre
dispositifs au sein de l'usine par rapport à la durée du cycle de rétroaction. Ces problèmes
sont généralement causés par la nécessité de calculer l'état courant du système (c'est-à-dire
du superviseur adéquat) à partir des événements en provenance de l'usine.
Le cycle de rétroaction se définit comme le temps nécessaire à effectuer le calcul de la
rétroaction et se compose des éléments suivant :
- temps d'acquisition de l'état des capteurs avec mise à jour de l'image mémoire du
procédé ;
- temps du calcul effectif de la rétroaction (c'est-à-dire de l'ensemble des commandes
à émettre étant donné l'état du procédé) ;
- temps nécessaire à l'actualisation des actionneurs correspondant à ces commandes.
Pendant le calcul de la rétroaction, le procédé évolue et l'élément de contrôle (par exem-
ple un automate programmable) n'est pas informé en temps réel de l'état du procédé. Dû
à ce décalage temporel, puisqu'il y a parallélisme effectif entre les dispositifs en fonc-
tionnement dans l'usine, plusieurs événements peuvent se produire avant le prochain cycle
d'acquisition de l'état du procédé. Au prochain cycle de rétroaction, la logique de contrôle
perçoit alors les occurrences d'événements comme simultanés et perd la trace de la sé-
quence d'occurrences de ces événements. Ceci est une dérogation inévitable au modèle
théorique qui peut entraîner que le contrôleur soit incapable de calculer l'état courant du
système. Bien sûr, en supposant que le cycle de rétroaction soit très court, la probabilité

120
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

qu'une telle situation se présente peut sembler très faible. Cette hypothèse est cependant
inadéquate puisqu'il y a parallélisme effectif des dispositifs élémentaires dans l'usine et
ainsi le délai entre l'occurrence de deux événements se produisant dans deux dispositifs
indépendants dans l'usine est arbitrairement court.
Par opposition, pour une loi de contrôle du type SFBC, bien que la rétroaction dépende
aussi de l'état courant du système, celui-ci peut alors être modélisé comme un ensemble
de dispositifs élémentaires correspondant aux dispositifs physiques de l'usine. Or au sein
d'un dispositif élémentaire tel qu'un vérin par exemple, il n'y a pas de parallélisme. Les
événements s'y produisent l'un après l'autre selon le modèle de comportement (AFD ou
autre structure de transition) du dispositif. On peut donc en général suivre l'évolution du
système (c'est-à-dire calculer son état global) de façon fiable en calculant l'évolution de
chacun de ses dispositifs élémentaires. On peut réaliser ce calcul de deux façons.
Un premier scénario consiste à associer à chaque état des modèles des dispositifs élé-
mentaires une signature, c'est-à-dire une formule logique basée sur l'état de ses entrées et
sorties (capteurs, actionneurs et éventuellement aussi d'éléments de mémoire qui lui sont
assignés en exclusivité). Chaque dispositif élémentaire dispose alors d'un vecteur d'état et
l'évaluation de son état courant se fait par évaluation directe de formules logiques (voir
[8]). Dans ce cas il n'y a pas de réserve quant à la durée du cycle de rétroaction. L'infor-
mation d'état calculée est la meilleure que l'on puisse espérer en pareilles circonstances
et, bien que l'évaluation des formules logiques puisse s'avérer onéreuse en temps, cette
situation est comparable à une solution programmée de façon traditionnelle (par grafcets
par exemple). La seule réserve concerne la génération automatique de l'implémentation
qui peut s'avérer complexe et requérir beaucoup de support au niveau de la confection des
modèles des dispositifs élémentaires à cause, entre autres, de la nécessité de déterminer les
signatures logiques.
Un deuxième scénario consiste à tenir à jour un modèle mémoire interne (dans la mé-
moire de l'automate programmable) de l'évolution de chaque dispositif élémentaire et à
suivre cette évolution à travers les événements perçus à chaque cycle d'acquisition (voir
[52]). Dans ce cas la taille de la mémoire requise (dans l'automate programmable) n'est
habituellement pas prohibitive puisqu'en général ces modèles sont assez simples. Aussi la
seule hypothèse requise est que le cycle de rétroaction soit suffisamment court pour en-

121
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

registrer de façon fiable l'occurrence de chaque événement. Puisque qu'il n'y a pas de
parallélisme et que le temps de réaction d'un dispositif physique est en général beaucoup
plus long que le cycle de rétroaction d'un automate programmable, cette hypothèse devient
alors raisonnable.
Ces deux scénarios d'implémentation sont viables mais il y a une difficulté supplé-
mentaire. Contrairement à un superviseur adéquat, une SFBC telle que définie dans la
section 2.5 n'a pas de mémoire c'est-à-dire que son contrôle ne peut pas varier selon l'his-
torique de fonctionnement du procédé ; c'est une limitation sévère. Dans un système ob-
tenu par produit intercalé de sous-systèmes indépendants, l'AFD de la boucle fermée du
système sous le contrôle d'une SFBC est un sous-automate de l'AFD de comportement
libre du système (voir [32], remarque 3.1). Par opposition, l'AFD d'un superviseur adé-
quat est souvent plus riche car il peut contenir plusieurs instances du fonctionnement de
certains sous-systèmes. Bref, dans le cas général, un superviseur adéquat contient impli-
citement une mémoire intégrée qui lui permet par exemple de compter le nombre de fois
qu'un certain sous-système a accompli une certaine tâche.
Ainsi, pour pouvoir implémenter un superviseur adéquat en suivant l'un des deux scé-
narios exposés précédemment, il faudrait disposer d'une représentation de sa mémoire.
Pour la mémoire, puisqu'il s'agit de toute évidence d'un modèle interne à l'élément de
contrôle (un PLC par exemple), l'implémentation devrait suivre le deuxième scénario. Or
le problème de dériver automatiquement un modèle (par exemple un AFD) pour cette mé-
moire (par exemple à partir d'un superviseur adéquat) ne semble jamais avoir été abordé
dans la littérature sur SCT. De toute façon ce problème est probablement NP-difficile puis-
qu'il implique nécessairement la minimisation du superviseur adéquat (de l'anglais Super-
visor Réduction) qui est un problème que l'on sait être NP-difficile (voir [53]).
La situation n'est cependant pas complètement désespérée puisqu'il existe un type de
SFBC, appelé DSFBC (de l'anglais pour Dynamic State FeedBack Control), qui incorpore
une notion de mémoire (voir [62]) et qui permet de modéliser les mêmes problèmes de
contrôle que ceux modélises dans le contexte usuel de SCT. Le contrôle de STS de Ma
et Wonham [39] est un exemple de synthèse de DSFBC où on modélisé les éléments de
mémoire de façon explicite dans le modèle du problème de contrôle en tant que contraintes
(les requis du contrôle). Ainsi, en modélisant explicitement la mémoire dans le problème

122
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

de contrôle sous forme de contraintes et en utilisant une procédure de synthèse dont le ré-
sultat est une SFBC (donc on obtient une DSFBC), on peut envisager l'implémentation de
la solution de contrôle par l'usage des deux scénarios illustrés précédemment. On modé-
lisé l'ensemble des dispositifs physiques élémentaires (Yéquipement) à l'aide de l'un des
deux scénarios, et on modélisé la mémoire en utilisant le deuxième scénario. L'état courant
combiné de Y équipement et de la mémoire détermine alors l'état courant du procédé.

[Link] Critères d'analyse liés à l'implémentation de contrôleurs

En plus des limitations énumérées à la section précédente on peut ajouter les suivantes
qui semblent aussi raisonnables.
L4. On peut se limiter à des solutions de synthèse procurant une loi de contrôle de type
SFBC.
L5. On peut supposer, pour les considérations de la génération de code, que la machine
cible est un automate programmable.
L6. On exclut toute forme de calcul en ligne de la rétroaction, le contrôleur est synthé-
tisé et calculé hors ligne (c'est-à-dire que le contrôleur est un programme compilé
d'avance et téléchargé dans un automate programmable).
Les critères d'analyse suivants semblent aussi pertinents.
C7. On vise à identifier des procédures de synthèse dont le résultat permet de dériver une
loi de contrôle de type SFBC.
C8. On doit porter une attention particulière au support requis pour générer automatique-
ment l'implémentation du contrôleur correspondant à la loi de contrôle obtenue par
synthèse.

3.2 Contrôle de STS


La théorie du contrôle des structures en arborescence d'états (ou contrôle de STS), pré-
sentée en section 2.7 et détaillée dans [39], présente plusieurs caractéristiques qui la rendent
attrayante comme alternative pour la modélisation de problèmes de contrôle et la synthèse

123
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

de leurs solutions suivant les concepts de SCT. La notation, similaire à celle utilisée pour
les statecharts de Harel et Politi (voir [27]), est particulièrement claire et concise. Elle ex-
prime élégamment les structures hiérarchiques dans les problèmes de contrôle ainsi que les
relations de parallélisme. 11 reste encore cependant à identifier s'il est possible de l'allier à
une métaphore de composantes réutilisables.

3.2.1 Les avantages du contrôle de STS


La théorie s'articule autour d'un support de modularisation, le holon (section [Link]),
permettant une forme d'encapsulation hiérarchique ouverte à travers son principe de super-
position de holons (voir la définition 2.14 de [39], match). Le holon muni du principe de
superposition (illustré en figure 2.11) offre donc un mécanisme formel d'abstraction.
Le holon est muni d'une définition formelle d'interface (figure 2.9 et figure 2.10). De
plus le principe de superposition de holons est assorti d'un ensemble de règles de consis-
tance à l'interface pour assurer la consistance de cette superposition par rapport à la dyna-
mique des structures de transitions impliquées. On a donc une forme de consistance entre
les modèles abstrait et concret quand à la dynamique des structures de transition.
La théorie fournit des procédures de synthèse qui utilisent la notion de superposition
de holons pour calculer la relation de transition détaillée du modèle. La synthèse s'opère
ainsi sur le modèle détaillé du problème de contrôle (encapsulation ouverte) procurant la
consistance de la solution de contrôle entre les modèles abstrait et détaillé (ou concret).
Cette structure hiérarchique permet de définir un support formel pour la notion de fa-
mille d'états ; l'arborescence d'états. La théorie établit aussi la notion de projection (-)(•)
(section 2.7.3) qui procure un support formel pour obtenir une fonction caractéristique (un
prédicat) représentant une arborescence d'états (donc une famille d'états). La définition for-
melle de ©(•) constitue en elle-même une procédure pour l'encodage d'une arborescence
d'états sous forme de BDD pour la synthèse. Il s'agit donc d'une méthode de synthèse
par prédicats dont le résultat est une loi de contrôle de type SFBC utilisant les méthodes
symboliques (section 2.6).
L'usage des méthodes symboliques en synthèse réduit la possibilité de problèmes rela-
tifs à l'explosion de l'espace des états. En conséquence la taille des problèmes de contrôle

124
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

que l'on peut aborder correspond à des situations plus réalistes (voir [63] et [39] entre
autres). En plus la théorie fait usage d'une notion de contrôlabilité dite faible, moins exi-
geante que la propriété de contrôlabilité établie pour le modèle avec prédicats (dans [62]).
En conséquence la complexité des calculs de synthèse s'en trouve significativement réduite
(voir section 2.7.2).
Aussi, comme on peut le constater dans les exemples fournis dans [39] (en section
4, 5 et 6), le formalisme de modélisation favorise la modélisation explicite d'éléments de
mémoire pour modéliser des contraintes dans les problèmes de contrôle. La spécification
des requis de contrôle se fait alors en énumérant les familles d'états prohibées (les états
du système global que la solution contrôlable doit éviter ; des prédicats). Cette forme de
spécification offre une plus grande clarté par rapport à la forme utilisant des AFD pour
spécifier un langage légal (forme utilisée dans le contexte usuel de SCT). Comparée à la
spécification d'un langage légal, la spécification par évitement de familles d'états prohibés
est beaucoup plus simple à utiliser et offre même la possibilité d'introduire une notion de
traçabilité des requis de contrôle.
Finalement, la modélisation explicite d'éléments de mémoire pour modéliser des con-
traintes dans les problèmes de contrôle rend le contrôle de STS capable d'aborder une
classe de problèmes de contrôle comparable à ce que le contexte usuel de SCT peut ré-
soudre (voir [62]). La loi de contrôle obtenue par synthèse est en fait une SFBC dynamique
(DSFBC). Le contrôle de STS offre ainsi le potentiel d'une implémentation élégante et
fiable le long des principes discutés en section 3.1.3.

3.2.2 Composantes réutilisables et contrôle de STS


En contrôle de STS (section 2.7) il existe plusieurs unités de modularisation. Un STS
G = (ST. ri, S. A. ST0, STm) représente lui-même un module c'est-à-dire le système.
11 est doté d'un espace d'états structuré en forme d'arbre, Y arborescence d'états ST =
(X, x0, T, £), par l'usage de différents types d'états : des états simples et des états struc-
turés (super-états OU et super-états ET). Dans cet espace, chaque état structuré, y G X
et T (y) G {or, and}, définit lui-même un sous-espace d'états dénoté STy, une arbores-
cence d'états enracinée en y. On peut donc dire que le STS G est lui-même composé

125
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

d'un ensemble de sous-modules dénotés G y , des sous-STS dont l'espace des états est ST"
(voir [39] pour une définition formelle). La dynamique de ces modules est définie par un
ensemble de holons assignés à chacun de leurs super-états OU, un et un seul holon par
super-état OU, les états simples n'ayant aucune dynamique et la dynamique des super-états
ET étant complètement déterminée par l'ensemble des super-états OU qu'ils agrègent (di-
rectement ou indirectement) en tant que composantes ET. Le holon constitue donc aussi
une unité de modularisation en contrôle de STS, une modularisation des comportements. 11
faut identifier lesquelles de ces unités de modularisation peuvent supporter une notion de
composante réutilisable et comment.
Pour reprendre le scénario hypothétique de la section [Link], on peut imaginer par ex-
emple que le modèle du vérin donné enfigure3.1 (c) soit utilisé pour former une description
d'interface similaire à celle de lafigure3.2 (a). Cette description d'interface est alors gé-
nérique et peut être instanciée au sein d'un modèle pour une grue comme en figure 3.3. On
peut bien sûr imaginer des mécanismes d'instanciation plus flexibles permettant de para-
métrer les étiquettes d'états, d'événements ainsi que le nom du STS pour réduire le nombre
d'interfaces d'une composante réutilisable, mais ce ne sont là que des considérations cos-
métiques au problème.
En poursuivant 1 ' analogie de la programmation par obj ets introduite en section [Link],
le modèle du système Grue définit donc deux composantes Flèchel et Pincel, des va-
riables, dont le type correspond respectivement aux classes Flèche et Pince des stéréotypes
de STS génériques. Au moment de l'exécution du système Grue chacune de ces compo-
santes est associée à un dispositif (ou sous-système) physique correspondant à la classe,
d'où les notions d'instance et d'instanciation. Les composantes sont considérées en fonc-
tionnement parallèle concurrent d'où l'usage d'un super-état ET pour modéliser le système
Grue. Les composantes sont considérées disjointes (elles ne partagent pas d'événement).
On peut imaginer l'usage de noms qualifiés, pour obtenir cet effet. On a alors que (au niveau
global) la composante [Link]èchel génère l'événement [Link]è[Link] . La tech-
nique, bien que lourde, procure l'effet désiré. Ce schéma n'est que conceptuel, le principe
est de distinguer les éléments internes de plusieurs composantes entre eux.
On peut ensuite procéder à une spécification (figure 3.4) et opérer une synthèse pour
obtenir le comportement contrôlé illustré enfigure3.5.

126
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

Flèche
[x] Pince 1
1X0
right
*\ l
) T2/— endrjgh, grab
•HT1 /^ e « ^ g r o *
ï(0J m C3/ 3 ( 0 ) 00
endief, V5 left endris ~HT 3 / *T r/s
1X1
- (b)
(a)

FIGURE 3.2 - STS génériques pour la confection d'une grue

FIGURE 3.3 - STS du sous-système Grue (comportement libre)

127
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

Grue Grue Grue


x x x
Flèche 1 Pince 1 Flèche 1 Pince 1 Flèche 1 Pince 1

u y 1 U 3 0 3 3 1

(b) ST2 (c) ST3


1 U 2 5 U4
(a) STI Grue

Flèche 1 Pince 1

S= ST1,ST2, ST3, ST4

5 U4
(d) ST4

FIGURE 3.4 - Spécification du sous-système Grue

La spécification, illustrée en figure 3.4, définit un ensemble d'états prohibés ; des états
que la grue doit éviter au cours de son fonctionnement. Elle est composée des quatre
contraintes suivantes :
(a) Laflècheet la pince ne peuvent pas être en fonctionnement simultanément.
(b) La grue ne peut pas déposer de pièce à la position d'entrée (flèche à gauche, état 0).
(c) La grue ne peut pas saisir de pièce à la position de sortie (flèche à droite, état 3).
(d) Une fois saisie une pièce à la position d'entrée, la grue doit nécessairement aller la
déposer à la position de sortie.
La grue ne fonctionne donc que dans un sens, elle transporte des pièces de la position
d'entrée à la position de sortie. Cependant elle peut osciller, à vide, entre les deux positions.
La figure 3.5 développe le produit des deux composantes en mode contrôlé. Plusieurs
détails ont été escamotés pour ne pas alourdir la présentation. Entre autres on n'y fait pas
usage de noms qualifiés, estimant le contexte suffisamment clair.
Dans la figure 3.5 on voit que certains holons, par exemple xi et x2, ont été créés de
toutes pièces. Comme on peut le voir dans lafigure3.6 les holons Xi etx2 de la grue ne sont
128
CHAPITRE 3. COMPOSANTES REUTILISABLES POUR SCT

Grue 1
= x
1 (?li 92) € Qdrue = Qrieche Ql'mce
2
I
r ixo
.—4»@p (Q-~
endngh,N.
*2
right / : 1x0
n
T 8
'^(iÔvire^ab ^Jn^ ~%^h~~ endngi,,

4i (Q (3f M

4/1
end,eft- __ _^^^left

; 1X1

FIGURE 3.5 - Sous-système Grwe (comportement contrôlé)

129
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

pas identiques au holon Flèche..»;. Mais effectivement Y interface holonique de Flécher se


superpose à la structure de transition du holon de la grue pour donner naissance à deux ins-
tances de Flécher : xx et x2. La création de ces deux derniers holons (le long de la structure
du holon Flécher) est nécessaire parce que Xi et x2 représentent deux instances différentes
du comportement de la flèche au sein du comportement de la grue. Le contexte de leur oc-
currence, c'est-à-dire les états de leurs structures externe et interne ainsi que le super-état
OU auquel ils sont associés, est différent. La création de ces deux holons (nommés diffé-
remment de Flécher) est aussi nécessaire pour maintenir le principe de couplage local. En
effet, puisque xi et x2 ne sont pas en relation de parallélisme ils ne peuvent pas partager
l'événement Flè[Link], d'où la nécessité des deux événements distincts [Link] et
Grue..r 2 -iX0. Alors, par instanciation du STS générique Flèche de la figure 3.2 on donne
aussi naissance à des schémas de comportement génériques de cette dernière : les holons
contenus dans le STS générique Flèche. Ces schémas de comportement sont aussi un genre
d'élément réutilisable comme le démontre le STS de la grue. Mais ces schémas sont alors
relatifs à une instance spécifique du modèle générique Flèche, notamment le sous-STS
Flèchel du comportement libre de la grue (figure 3.3), car en dehors de ce dernier les ins-
tances xi et x2 de la grue contrôlée (figure 3.5) n'ont pas de sens.
La question soulevée par cet exemple est de savoir s'il est bien raisonnable de définir des
schémas génériques de comportement (des holons) dans Y interface d'un STS générique de
composante comme celui de la Flèche en figure 3.2. Le holon fondamental du STS, c'est-
à-dire l'AFD du modèle exhaustif de la figure 3.1 dont la structure externe est vide dans le
STS Flèche, doit y être défini car il exprime l'essence même du comportement de la flèche :
le comportement d'un vérin à commande monostable dont le fonctionnement est cyclique.
Mais les holons subordonnés x et y doivent-ils faire partie de cette interface ? Bien sûr dans
le modèle générique de la flèche, puisqu'il est si simple, on y voit peu d'inconvénient. On
peut d'ailleurs imaginer trois définitions d'interface évidentes pour ce dispositif:
1. un STS ne contenant que le holon en forme fondamentale c'est-à-dire l'AFD de la
figure 3.1 ;
2. la définition donnée en figure 3.2 (a) ;
3. et une autre définition ne comportant que l'état initial avec un holon subordonné
contenant les états 1, 2, 3, 4 et 5. similaire à celui de la figure 3.7, procurant un

130
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

FIGURE 3.6 - Holons de la Grue (comportement contrôlé)

131
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

comportement du type début de cycle-fin de cycle.


Cet inventaire semble couvrir tout le répertoire des abstractions possibles pour une telle
composante, mais il n'en est rien. Pour s'en convaincre il suffit d'examiner un cas d'usage
fréquemment utilisé dans la conception de modèles en contrôle de STS et illustré partielle-
ment enfigure3.7.
Dans lafigure3.7 on retrouve en (a) une composante obtenue par instanciation d'une de
ses interfaces, comme pour la grue précédemment. La composante est utilisée au sein d'un
modèle de STS constitué d'un seul super-état OU (un processus séquentiel) se superposant
à un holon dont certains des états utilisent un schéma de parallélisme, illustré en (d), donc
des super-états ET. Ce type de cas d'usage est une des caractéristiques qui fait la puissance
des modèles de STS, il exprime de façon très compacte l'alternance entre parallélisme et
exécution séquentielle au sein d'un procédé. Or avec l'usage de composantes réutilisables,
par instanciation de STS génériques, le comportement illustré en (d) doit d'abord être spé-
cifié comme en (b) et le résultat de la spécification élaboré comme en (c). On peut ensuite
réutiliser ce comportement pour composer le cas d'usage (d). Or (b), (c) et (d) sont tous
relatifs à la composante (a), elle-même une instance d'un STS générique (une composante
réutilisable). En plus, la spécification de (c) ne peut pas être considérée comme un sous-
système fermé utilisant (a), car (a) peut être réutilisé pour former d'autres cas d'usage au
sein du modèle de STS en cours d'élaboration (le système). En effet (d) n'est qu'une des
formes possibles pour le comportement de (a) dans ce système. Des cas d'utilisation simi-
laires à ceux de lafigure3.6 peuvent être aussi utilisés dans ce système et le cas (d) peut y
exister en plusieurs exemplaires.
11 devient évident qu'il n'est pas réaliste de requérir qu'un STS générique (une com-
posante réutilisable) soit assorti de toutes les définitions d'interfaces (des holons) corres-
pondant à tous les cas d'usage dans lesquels la composante peut être éventuellement im-
pliquée. Ces cas sont trop nombreux, et dépendent généralement du problème de contrôle
à résoudre. On peut avantageusement penser définir des modèles de holons comme celui
de la figure 3.7 (d) au sein de la solution d'un problème de contrôle donné ou en cours
d'élaboration. De tels modèles de comportement peuvent alors être réutilisés en tant que
schémas de comportement lors de la solution d'un problème de contrôle. Mais leurs carac-
tères spécifiques les disqualifient comme éléments génériques réutilisables dans le contexte

132
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

(a) Instanciation d'un vérin

(d) Usage parallèle (une forme)

parallélisme,,

autre

A H-U.
T2
o\

vérin-seq
venn x spec

spec (a,0)
endieft
endiejt

(b) Spécification d'un comportement


t
venn-seq

right
< a '°1—^0,1))
endieft

(c) Expression du comportement contrôlé

FIGURE 3.7 - Instance de comportement parallèle

133
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

général.
Le concept de holon ne semble donc pas être un élément de modularité adapté à l'ex-
pression de composantes réutilisables en contrôle de STS. La versatilité des holons et la
forme compacte des modèles de STS les rendent toujours très attrayants comme notation
pour l'expression de problèmes de contrôle. Mais le mode d'usage des holons, en tant que
spécification d'instances de comportement d'un dispositif au sein d'un système, les rend
plus similaires et mieux adaptés à la réalisation d'un outil de conception (par exemple au
sein d'une interface graphique) qu'à la spécification de composantes génériques réutili-
sables.
Ceci semble limiter la métaphore possible pour des composantes réutilisables en con-
trôle de STS à des STS génériques en mode fondamental. On peut définir la notion de STS
en mode fondamental comme un STS dont l'ensemble des holons H ne contient qu'un et
un seul élément, dont la structure externe est vide, qui est superposé à la racine du STS r 0 ,
un super-état OU. Un STS en mode fondamental est alors directement associé au modèle
exhaustif d'une composante (exemple enfigure3.1) dont l'AFD constitue le holon. Un STS
en mode fondamental peut être considéré comme représentant le modèle générique d'une
composante réutilisable. Une telle composante réutilisable ne peut être instanciée que dans
un système formé d'un seul super-état ET à la racine dont les cellules (ses composantes ET)
sont alors des instances de STS en mode fondamental. Un système défini de cette façon
correspond à ce que l'on appelle un modèle plat (composition synchrones de composantes
pour définir le comportement libre) comme dans le contexte usuel de SCT.
Une question légitime à ce point est de se demander si l'on ne perd pas plus que l'on ne
gagne, après tout vaut-il la peine de sacrifier la puissance d'expression des modèles de STS
pour n'y gagner qu'une vague notion de composante réutilisable ? On trouve une réponse
plus complète à cette question dans les sections et chapitres subséquents, mais on peut déjà
faire remarquer ce qui suit.
Premièrement, il n'est pas ici question de sacrifier quoi que ce soit. Le modèle de
système plat obtenu par instanciation de STS en mode fondamental (des composantes dis-
jointes) n'est que l'expression du comportement libre du système. On doit encore y insérer
les requis de contrôle qui doivent alors être représentés par des modèles de la mémoire
agissant comme des contraintes ou spécifications du contrôle. Rien n'empêche durant ce

134
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

processus de raffinement (ou transcription) des requis de contrôle de procéder à l'élabora-


tion d'un sous-système comme celui de la grue (figure 3.5). C'est là une façon de localiser
des requis de contrôle. On peut observer que le comportement du système en boucle fermée
de la grue peut lui-même constituer un STS en mode fondamental et donc une composante
réutilisable.
Deuxièmement, la grue est un exemple très simple mais rien empêche d'utiliser aussi
d'autres schémas de comportement plus complexe (des définitions de holons similaires à
ceux de lafigure3.7) pour procéder au raffinement des requis. La seule différence est qu'il
faut procéder à partir de l'expression du système plat, c'est-à-dire à partir du modèle de ses
composantes car ces dernières sont les seules décrivant précisément le fonctionnement des
dispositifs élémentaires impliqués. Comme, par exemple, le fait qu'un vérin pneumatique
à commande monostable est un dispositif cyclique dont le répertoire d'actions est de dé-
ployer et rétracter le vérin. Tout autre comportement requiert l'adjonction d'une mémoire,
c'est-à-dire une spécification, avec les complications afférentes. Or il n'est pas possible de
contourner ce problème car le but de la spécification des requis de contrôle est précisément
de rendre explicite la façon dont ces requis sont réalisés sur l'ensemble des dispositifs im-
pliqués. Autrement on en est réduit à la spécification de modèles formels de haut niveau
auxquels il faut adapter le matériel par programmation et ce, pour chaque problème de
contrôle résolu de cette façon. C'est l'équivalent de l'élaboration d'un modèle ad hoc de
la machine à contrôler adapté manuellement à la solution d'un problème de contrôle spé-
cifique. On y perd généralement la plupart des avantages d'une méthode formelle comme
SCT dans la couche insérée entre la solution de synthèse et le matériel.
L'approche préconisée dans cette étude est de réutiliser les spécifications de contrôle
autant que possible par réutilisation de composantes (ou des interfaces de ces dernières).
On vise à descendre l'approche formelle le plus près possible des dispositifs physiques
pour conserver les avantages que l'approche formelle procure. Les composantes envisagées
représentent éventuellement des éléments physiques à contrôler et non pas des spécifica-
tions de comportement réutilisables comme les holons de la figure 3.7. Il doit être clair que
l'analyse qui précède ne suggère en rien qu'il faille abandonner quoi que ce soit dans la
puissance et la versatilité de la notation et de la théorie du contrôle de STS pour y adjoindre
des composantes réutilisables.

135
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

Troisièmement, on peut mentionner que s'il est possible d'élaborer des spécifications
d'interfaces opaques de composantes réutilisables sous forme d'AFD par exemple, le mo-
dèle de STS en forme fondamental en tant que composantes réutilisables pourrait procurer
un moyen de profiter des autres avantages de la théorie du contrôle de STS. On pourrait
notamment profiter d'une approche par prédicats, d'une synthèse symbolique et d'un ré-
sultat de synthèse sous forme d'une SFBC tout en utilisant des composantes réutilisables
opaques en provenance d'autres variantes de SCT mais compatibles avec un usage dans un
modèle de STS. Cette avenue n'est pas non plus à négliger.

3.2.3 Sommaire d'analyse


Par rapport aux critères fixés en section 3.1. on peut dire que le contrôle de STS s'ac-
commode bien de toutes les limitations et qu'il correspond directement aux critères C2, C6
etC7.
- Il utilise une forme d'encapsulation ouverte procurant, par le biais de ses procédures
de synthèse, une consistance entre les modèles abstrait et concret (critère C2).
- C'est une approche par prédicats faisant usage de méthodes symboliques en synthèse
(critère C6).
- La synthèse produit une loi de contrôle de type SFBC (critère C7).
Un STS en mode fondamental procure un élément de modularisation qu'on peut assimi-
ler à un modèle générique instanciable et donc à une composante réutilisable (critère Cl).
Ce genre de composante réutilisable est cependant limité car il ne permet a priori que la
composition de systèmes plats similaires à ceux utilisés pour l'expression du comportement
libre dans le contexte usuel de SCT. Il n'empêche cependant pas la composition d'un mo-
dèle de STS plus hiérarchisé au fur et à mesure que l'on y introduit les requis de contrôle.
La tâche peut cependant se révéler ardue puisque toute instance des comportements doit
alors être dérivée à partir des modèles des composantes utilisés (les instances de STS en
mode fondamental).
La forme des interfaces de ces STS génériques (en mode fondamental) exclut l'usage
de holons subordonnés dans l'interface, excluant du même coup la nécessité d'un support
formel à la dérivation d'interfaces (critère C3). Mais on peut dire que l'abstraction peut,

136
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

jusqu'à un certain point, être répétée sur l'axe vertical (critère C4) puisque l'exemple de
la grue (figure 3.5) prouve qu'à partir de la composition d'instances de STS en mode fon-
damental, on peut obtenir d'autres modèles de STS en mode fondamental, donc d'autres
composantes réutilisables.
Les procédures de synthèse sont déjà parfaitement adéquates pour des systèmes com-
posés d'instances de STS en mode fondamental en fonctionnement en parallèle concurrent
(critère C5). L'adjonction de spécifications utilisant le modèle préconisé dans la théorie
(modélisation explicite de la mémoire) ainsi qu'une structuration hiérarchique éventuelle-
ment plus poussée du modèle initial (plat) ne présentent pas de problèmes supplémentaires
en synthèse tant que les règles de modélisation des STS sont respectées.
Quant au critère C8 (support à l'implémentation), la modélisation explicite de la mé-
moire pour la spécification des requis de contrôle présente un avantage marqué pour l'im-
plémentation d'une SFBC le long des lignes exposées en section 3.1.3. La structuration
de Pespace des états dans les modèles de STS repose sur un principe d'agrégation hiérar-
chique. En conséquence chaque état du système hiérarchisé correspondant à un élément de
ST correspond à un élément d'une partition de Pespace des états du modèle du système
plat. L'ensemble des prédicats résultant de la synthèse exprime des fonctions caractéris-
tiques sur cet espace des états du système plat. Cette structuration de l'espace des états et
de la structure des prédicats présente aussi un avantage pour l'implémentation d'une SFBC
le long des lignes exposées en section 3.1.3. La seule ombre au tableau est que le résultat de
synthèse est un ensemble de prédicats sous forme de BDD dont on doit extraire éventuelle-
ment une forme utilisable dans un PLC ce qui peut représenter une difficulté substantielle.

3.3 Contrôle hiérarchique par interface


Le contrôle hiérarchique par interface (HISC, discuté en section 2.4) procure de façon
directe et explicite, dans sa théorie, plusieurs des éléments discutés en section 3.1.1. Il pro-
cure déjà une division architecturale d'un problème de contrôle en système de haut niveau
et systèmes de bas niveau (voir [36]). Dans cette architecture on parle souvent des systèmes
de bas niveau comme de composantes, il faut entendre ici que ce sont des sous-systèmes
composant le système global. Reste encore à y associer une notion de composantes réutili-

137
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

sables pour l'expression de problèmes de contrôle.

3.3.1 Les avantages de HISC


L'élément fondamental de modularisation dans HISC est Y interface. L'interface HISC
sépare les systèmes entre eux. Le système de haut niveau ne partage, avec ses compo-
santes, que la dynamique d'interface et donc seulement les événements des interfaces sont
partagés entre le système de haut niveau et l'ensemble des systèmes de bas niveau. Outre
l'ensemble des interfaces, le système de haut niveau et l'ensemble des systèmes de bas
niveau sont donc, techniquement, disjoints. D'autre part, les systèmes de bas niveau sont
tous considérés disjoints deux à deux, ils ne partagent entre eux aucun de leurs événements,
même pas les événements de leurs interfaces respectives. Chaque système de bas niveau est
muni d'une interface (disjointe de celle des autres systèmes de bas niveau) avec le système
de haut niveau. Il en résulte une architecture client-serveurs où seul le système de haut
niveau agit comme client et tous les systèmes de bas niveaux agissent comme serveurs.
La médiation est réalisée par l'ensemble des interfaces et prend la forme d'un protocole
requête-réponse auquel tous les éléments du système (client autant que serveurs) doivent
se soumettre. Ces interfaces sont donc qualifiées d'interfaces en paires requête-réponse
(de l'anglais command-pair interfaces) dont la définition est formalisée dans la théorie.
Pour assurer la consistance entre client et serveurs, la théorie développe une notion de
consistance à l'interface prenant la forme de six propriétés (ou contraintes) relatives à la
forme des systèmes ainsi qu'à l'usage du protocole tant par le client que par l'ensemble
des serveurs. La théorie procède ensuite à développer des notions appropriées de systèmes
contrôlables et non bloquants localement (de l'anglais level-wise controllable et level-wise
nonblocking).
Dans ce qui précède on peut distinguer assez clairement qu'une paire constituée d'un
système de bas niveau muni d'une définition d'interface adéquate (c'est-à-dire respectant
les propriétés pertinentes de consistance à l'interface) constitue un module dans un pro-
blème de contrôle. L'interface HISC procure ainsi une encapsulation opaque du système de
bas niveau qu'elle représente dans le système global. Les procédures de synthèse fournies
dans [9] et [52] montrent clairement qu'une synthèse dans le haut niveau est indépendante

138
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

d'une synthèse dans le bas niveau. Une synthèse dans le système de haut niveau ne fait
intervenir que le modèle du comportement libre du système de haut niveau, l'ensemble des
modèles des interfaces et l'objectif de contrôle ou la spécification de contrôle du système
de haut niveau (tous des AFD). Une synthèse dans un des systèmes de bas niveau ne fait
intervenir qu'un modèle du comportement libre du système de bas niveau, la définition de
son interface et éventuellement sa spécification de contrôle.
L'innovation dans les procédures de synthèse, par rapport aux procédures correspon-
dantes de SCT, consiste à incorporer la notion de consistance à l'interface comme contrain-
te supplémentaire dans les calculs de synthèse. Cette innovation n'a pas de conséquence
majeure quant à la complexité des calculs (temps et espace polynomial). Cependant, en
conséquence d'une encapsulation opaque, on y perd bien sûr Yoptimalité (au sens théo-
rique donné par SCT) de la solution. À noter cependant qu'on y gagne au niveau de la
complexité globale de la synthèse car, en admettant effectivement que tous les systèmes
font l'objet d'une spécification de contrôle lors de l'élaboration d'un problème de contrôle,
la synthèse se décompose alors en n + 1 synthèses. L'ensemble de ces synthèses s'avère
moins complexe qu'une synthèse globale dû à la réduction de Pespace des états qui croît
de façon exponentielle avec le nombre de modèles (AFD) impliqués dans une synthèse.
Dans le cas d'une conception de problème de contrôle par composantes réutilisables,
le gain potentiel est encore plus grand en ce sens que l'effort est étalé dans le temps.
Les composantes réutilisées sont déjà munies d'interfaces et elles ont déjà, le cas échéant,
fait l'objet d'une synthèse. Alors il ne reste plus qu'à instancier les sous-systèmes (les
serveurs) à partir de leur modèles génériques, spécifier les requis de contrôle du système
ainsi composé (le système de haut niveau) et opérer une synthèse (c'est-à-dire une synthèse
dans le système de haut niveau seulement). Dans le cas d'une conception par composantes
réutilisables, la réutilisation d'un modèle générique pour instancier un sous-système de bas
niveau sous-entend la réutilisation de sa spécification de contrôle.
Finalement, des procédures de synthèse utilisant des BDD (ou compatibles avec leur
usage) ont été élaborées (voir [36]). Ces procédures procurent une solution de synthèse
sous forme d'une SFBC sur Pespace des états d'un superviseur adéquat. Song [52] élabore
aussi un mécanisme crédible d'implémentation d'une telle solution.

139
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

3.3.2 Composantes réutilisables et HISC


Pour qu'il soit possible d'élaborer une métaphore de composantes réutilisables avec
HISC, il faut s'assurer qu'une fois qu'un ensemble de modèles génériques sont instanciés
dans un problème de contrôle, le résultat présente toujours les propriétés requises pour
assurer la validité des résultats de synthèse. D'abord il faut digresser un peu pour se donner
une idée plus précise de ce qu'une composante réutilisable signifie au sein de HISC.
Dans le contexte donné en section [Link], un système est composé de plusieurs dispo-
sitifs disjoints en fonctionnement parallèle concurrent. Ainsi, sans composante, la notion
de système n'a pas de sens précis. Aussi Y instanciation de sous-systèmes à partir de mo-
dèles génériques prend le sens d'une déclaration de variable d'un certain type (celui du
modèle générique). Ces sous-systèmes étant disjoints, puisqu'on peut instancier plusieurs
fois le même modèle générique (pour différents sous-systèmes de même type), chacune
des variables déclarées définit son propre espace symbolique assurant que les différentes
instances représentant ces sous-systèmes sont disjointes.
Dans le modèle de HISC, un sous-système (un module) est un système de bas niveau.
Il est formé principalement de trois éléments, trois générateurs (des AFD) :
- un modèle de son comportement libre, la machine GPL ;
- une expression de sa loi de contrôle, le superviseur Si, ;
- et son interface G/.
Le comportement en boucle fermée du sous-système sous le contrôle de S/, (son super-
viseur) s'exprime par G/, = G'[ || S/,. On a ainsi la paire (G/,, G/) qui définit, respec-
tivement, le comportement du sous-système et son abstraction face au système de haut
niveau (le système proprement dit). Puisque toutes les instances de la paire (G/,, G/) sont
similaires, on peut considérer la paire comme définissant un modèle générique de compo-
sante réutilisable (une classe). Vinstanciation de (G/,, G/), sous forme d'une déclaration
de variable, redéfinit tous ses symboles dans un espace symbolique distinct des autres ins-
tances, les instances sont ainsi disjointes quant à leurs alphabets d'événements (et à leur
structure de transition en général). Si on dénote les sous-systèmes en les indexant, par ex-
emple (GLJ, G[3 ) pour j G {1 n}, chaque sous-système devient une instanciation d'un
modèle générique (Gi., G/). Pour chaque sous-système, peu importe sa classe, (Gj, , G/ ; )

140
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

est disjoint de ( G / ^ . G / J pour j,k e {L ...,n} pourvu que j fi k.


Ce qui précède correspond jusqu'ici au contexte défini par HISC en ce sens que tous
les sous-systèmes de bas niveau possèdent des structures de transition disjointes deux à
deux, autant en ce qui concerne la définition de leur interface HISC Gy7 que pour la dé-
finition de leur dynamique interne G/, . Mais dans le cas d'une définition générique de
composante réutilisable, (Gj,, G/), comment peut-on dire qu'elle est consistante à l'inter-
face ou contrôlable et non bloquante localement, puisque l'on n'a alors aucun système de
haut niveau? Pour rendre cette définition acceptable, il faut la considérer sous l'angle de
Y instanciation.
On peut considérer qu'une définition de composante réutilisable (c'est-à-dire la compo-
sante générique (G/,, G/)) suppose implicitement la définition, au moment de son l'instan-
ciation en (G/, j5 G[3), de deux modules du système de haut niveau correspondant à cette
instance :
- la définition d'un module du comportement libre du système de haut niveau GPH ;
- la définition d'un superviseur modulaire pour G ^ , le module S#j.
Gpfl et Sz/j sont deux générateurs définis sur l'alphabet de l'interface spécifique à l'instance
de la composante réutilisable, S/ ; := S R Ù EAJ, et tels que Lm(Gp, ) = L m (S// j ) = £} .
Intuitivement on peut considérer que ces générateurs n'ont pas de structure, à savoir qu'ils
sont formés d'un seul état (initial et terminal) où toute transition sur a G S 7 j boucle sim-
plement sur cet état. Le comportement sous contrôle du module correspondant du système
de haut niveau est alors G//7 := G ^ || Sn3 et il est évident que L m (G// 3 ) = EJ aussi.
Aucun de ces modules n'exerce de contrainte sur le système de haut niveau. Alors seule
l'interface HISC de Y instance de la composante réutilisable intervient comme contrainte
dans le système de haut niveau.
Avec ce qui précède, on peut définir de façon plus précise ce que signifie une compo-
sante réutilisable (GL. G/) (une classe). Il s'agit d'un modèle générique conçu de sorte
qu'un système composé d'une seule et unique instance de (GL, Gy) soit consistant à l'in-
terface et contrôlable et non bloquant localement. Ce cas de figure correspond au cas de
système séquentiel dans [35], où G/, := G ^ , S# := S ^ , Gp := G^ , S/, := S t et

On observe que ce système de haut niveau est vide en ce sens qu'il n'a pas de dynamique

141
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

propre, GH := G ^ || S^ et Lm(Gn) = E,, c'est-à-dire que E w = 0. Par construction ce


système respecte les propriétés ( 1) et (2) de la consistance à l'interface (cas séquentiel dans
[35], définition 6). Aussi, puisque E// = 0, on a que Pf^(L(Gii)) — Pf^C^}) = E* et la
propriété (3) est trivialement vérifiée. Le système de haut niveau induit par instanciation de
(G/,, G/) (cas séquentiel) est ainsi consistant à l'interface. Il est également aisé de vérifier
que le système de haut niveau, induit comme précédemment, satisfait la propriété (I) de la
définition 4 dans [35] puisque TLm = TL = E* et que L(G[) = L m (Gj), car G/ est une
interface en paires requête-réponse (définition 3 dans [35]). Le système de haut niveau est
donc non bloquant localement. Les propriétés (I) et (III) de la définition 5 dans [35] sont
aussi trivialement vérifiées, (I) par construction du système séquentiel, et (III) par le fait
que W — Su — E*. Le système de haut niveau est donc contrôlable localement.
La conception d'une composante réutilisable (G/,. G/) consiste alors à assurer les pro-
priétés (4), (5) et (6) de la définition 6, la propriété (II) de la définition 4 ainsi que la pro-
priété (II) de la définition 5 (dans [35]). Toutes ces propriétés sont relatives au sous-système
de bas niveau représenté par ( G t , Gy ), une instance unique de (G/,, G/), puisque la
conception doit être réalisée dans le contexte d'un système séquentiel composé d'une et
une seule instance de la paire (G/,, G/) (donc le système de haut niveau est vide, E// = 0).
Les procédures de synthèse de [36] peuvent être utilisées à cet effet. Bien sûr, l'interface
définie doit être une interface en paires requête-réponse.
À plusieurs égards ce résultat peut sembler contre-intuitif, après tout, comment un sys-
tème de haut niveau peut-il être consistant à l'interface s'il n'en respecte pas la discipline
a priori (L(GH) = S}). 11 faut comprendre que la seule exigence de la consistance à
l'interface sur le système de haut niveau est que ce dernier doit toujours être en mesure
d'accepter une réponse lorsque cette dernière est éligible à l'interface. Or dans un système
de haut niveau sans dynamique propre (E// = 0) comme celui décrit précédemment, tous
les événements de réponse sont toujours éligibles quelle que soit s G L(GH), puisque
L(GH) = E}. Pour mieux comprendre il est utile de considérer la forme plane du système
global (flat system dans [35]). On a que Plant := Gp, || GPL = Gp puisque Gp„ est un
AFD acceptant EJ et que Gp est défini sur E/y, = Ef Ù E / . On a aussi le superviseur plat
Sup := S// || Sr. \\ G[ = Sy, || G/ puisque S// est un AFD acceptant E, et que le produit
Sy, || G/ est aussi défini sur E / t . Autrement dit, le comportement du système global appa-

142
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

raît alors comme le comportement contrôlé du sous-système qu'il contient. Pour le système
de haut niveau, ce comportement apparaît comme le comportement libre de l'interface de
son sous-système, /v m (G/), un comportement localement contrôlable et localement non
bloquant (localement au système de haut niveau).
Qu'arrive-t-il maintenant si on compose u instances de ce genre de composantes ? On
a un ensemble d'instances (GL , Gj ) 0 € {1,.... n}) obtenues de descriptions génériques
habituellement diverses mais où deux instances (ou plus) peuvent provenir de la même
description générique.
Chaque instance de composante réutilisable ( G ^ . G / J définit implicitement un en-
semble de trois modules du système de haut niveau, Gn3 := GPH || S//,, comme mentionné
précédemment. Pour une instance (GL,- G/ ) ces trois modules sont définis sur l'alphabet
E/ où pour j fi k (y. k G {1,. n}) E/., et E/fc sont disjoints. Il en résulte pour le système
de haut niveau trois générateurs

Gp il cP
H •- II W ,
je{i M
SH '•— || SHJ
;e{i ,u}
G« := || G//,
3€{1 ,n}

tous définis sur l'alphabet

E/:= U *',
?e{i ,n}

de l'ensemble des interfaces d'instance. De toute évidence un tel système de haut niveau n'a
pas de dynamique propre, c'est-à-dire Lm (GH) — L(Gn) = M G # ) = L(SH) = E}, ainsi
E;/ = 0 et encore une fois H = P]~^(L(Gn)) = Pf^CE}) -- E*. On a aussi que 7ï m =
Pff](Lm(Gii)) = /^"//(EJ) = E*. Le système de haut niveau n'ayant aucune dynamique
propre, il est nécessairement consistant à chacune des interfaces individuellement (voir [9]
en section 3 pour une définition précise).
À ce point il est instructif de considérer maintenant la forme plane du système global

143
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

obtenu de ce qui précède (telle que définie dans [38]). On a que

Plant = G",, || Gp || ... || GP


II II Lt\ >' I" L/n

Sup = S„ || S Ll |i ... || SLn || G 7l || ... || G,,,

Or L(GVH) = L(Sn) = S ; et chacun des produits G£, || ... || GpLn et SLl || ... || SL„-
donne un résultat dans T,}L où S//, est donné par

E/i:= U (^ÙS0
,/€{l,....7l}

et contient E/. De plus le produit Gj1 || ... || Gf„ est défini sur S/. Ainsi les expressions
du comportement libre et du superviseur se simplifient comme suit

Plant = ^ || ... || G t ,
Sup = S Ll || ... || S i n || G,t || ... || G,,,

Le système contrôlé prend alors la forme

Plant || Sup = || (&' Il SLj || G A .


v J
je{i,...,n}

Chacun des produits (GPL || St, || G/ ( ) définit un générateur disjoint de tous les autres.
Par conception de la composante réutilisable dont il est une instance, chaque générateur
est consistant à son interface et localement contrôlable et non bloquant. Cette situation est
analogue à la composition modulaire de sous-systèmes dans le contexte usuel de SCT où
l'expression du comportement libre du système global se résume au produit synchrone du
comportement libre de ses composantes.
À ce système, il ne reste plus qu'à définir un objectif de contrôle Eu (implicitement un
sous-langage de T,}) et à lui appliquer les procédures de synthèse (pour un système de haut
niveau) de [36] pour obtenir une solution.
Cette définition de composantes réutilisables pour HISC présume que le système de
haut niveau n'est en fait constitué que de la dynamique des interfaces HISC des sous-

144
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

systèmes qui le composent. Autrement dit E/y = 0 dans le contexte HISC. Cette restriction
peut sembler curieuse, mais elle cadre bien avec la définition intuitive d'un système com-
posé de dispositifs physiques considérés en fonctionnement parallèle concurrent comme
c'est le cas dans les usines modulaires. En effet si on définit un système de haut niveau non
vide à l'origine, E» fi 0, il doit nécessairement être constitué d'un certain nombre d'ins-
tances de modèles génériques tels que l'on a vu précédemment. Appelons cet ensemble de
sous-systèmes l'ensemble fondamental. Alors il n'y a pas de perte de généralité à poser
un système de haut niveau vide et à y incorporer l'ensemble des instances de composantes
réutilisables constituant l'ensemble fondamental en plus des autres sous-systèmes devant
constituer le système global. Tout au plus, on doit incorporer au modèle global l'ensemble
des contraintes s'appliquant à l'ensemble fondamental et procurant son comportement ori-
ginal en tant que système de haut niveau.

3.3.3 Sommaire d'analyse


Par rapport aux critères fixés en section 3.1, on peut dire que HISC s'accommode bien
de toutes les limitations et qu'il correspond directement aux critères Cl, C2, C5, C6 et C7.
- La notion de système de bas niveau doté d'une interface constitue un élément de
modularisation adéquat pour articuler celle de composante réutilisable.
- L'interface procure une encapsulation opaque de la dynamique de la composante
simplifiant significativement la synthèse et la perte d'optimalité conséquente est en
pratique raisonnable.
- Les procédures de synthèse développées dans [36] sont adaptées à la métaphore de
composantes réutilisables articulée en section 3.3.2.
- Des procédures de synthèse utilisant les méthodes symboliques (avec des BDD) ont
été développées par Song [52].
- Les procédures développées par Song produisent une SFBC comme résultat de syn-
thèse.
Il faut noter cependant que, même si des procédures de synthèse utilisant des BDD ont
été développées, la spécification des requis de contrôle utilise toujours des AFD définissant
un langage légal (cas du contexte usuel de SCT). Cette façon de procéder est particu-

145
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

fièrement difficile à utiliser efficacement et réduit la clarté de l'expression des requis de


contrôle. Avec des AFD de langage légal la traçabilité des requis est quasi impossible. Il y
aurait avantage à pouvoir introduire une façon de spécifier les requis directement en termes
de familles d'états prohibés comme pour les STS.
Dans la même ligne, on peut mentionner que la mémoire n'est pas modélisée explicite-
ment (sous forme de contraintes) dans la spécification des requis de contrôle (comme dans
le contexte des STS). Bien sûr, l'expression d'un AFD de langage légal exprime implici-
tement une forme de mémoire lorsqu'une mémoire est requise. Le résultat de synthèse, un
superviseur adéquat, matérialise alors cette mémoire. Mais alors, pour fins d'implémenta-
tion (critère C8), on est contraint d'implémenter la structure de transition de ce superviseur
adéquat au complet puisque les éléments de mémoire y sont implicites. Dans la structure de
transition d'un superviseur adéquat, on ne peut pas distinguer entre ce qui a trait au com-
portement des dispositifs physiques et ce qui requiert une mémoire. L'espace des états des
superviseurs adéquats a tendance à être si volumineux qu'en général leur implémentation
n'est pas réalisable, en particulier sur un automate programmable.
Le processus d'abstraction en composantes réutilisables ne peut pas vraiment être ré-
pété sur l'axe vertical (critère C4). HISC est pour l'instant limité à une description de
problèmes de contrôle en deux couches, un système de haut niveau faisant usage de n sys-
tèmes de bas niveau. Bien qu'il soit possible éventuellement de composer quelques-uns de
ces systèmes de bas niveau en composantes réutilisables, dans le cadre théorique actuel,
cette manoeuvre implique de rédiger de nouvelles spécifications pour la composante ainsi
constituée. C'est-à-dire que l'on ne réutilise pas directement Pensemble des spécifications
déjà obtenu pour ces systèmes de bas niveau, le cadre théorique ne le permet pas.
En ce qui concerne la dérivation d'interfaces, on dispose d'un certain support théo-
rique (critère C3). Ce support théorique se limite cependant à une spécification de langage
légal suivi d'une synthèse SCT pour obtenir une loi de contrôle adéquate relativement
à la description d'interfaces. Les modèles pour la machine de bas niveau (modèles de
comportement libre) sont supposés provenir directement d'un processus de modélisation
ad hoc comme celui de la section [Link]. Or la recherche d'une interface adéquate de-
meure un processus largement heuristique puisqu'il s'agit de trouver une projection natu-
relle (section 1.1.2) du comportement en boucle fermée du système de bas niveau. Comme

146
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

mentionné dans [56] le calcul d'une projection naturelle pour un modèle d'AFD donné est
en général de complexité exponentielle et donne souvent une structure de transition dont
l'espace d'états est plus volumineux que l'AFD original. Aussi la modélisation d'interface
HISC doit souvent faire appel à des heuristiques (illustré enfigure3.8).
La figure 3.8 illustre la confection d'une interface en paires requête-réponse pour une
perceuse. La perceuse coordonne trois machines : un moteur électrique, un étau et un patin.
L'ensemble admet une mesure de parallélisme entre le démarrage du moteur et le serrage
d'une pièce à percer et aussi au desserrage et à l'arrêt du moteur, autrement le processus est
séquentiel. Au niveau du système il n'est pas nécessaire de suivre toutes les étapes, seules
la commande de démarrage et la notification d'arrêt sont nécessaires. Or en présence de
parallélisme il est très difficile de trouver une projection naturelle ayant la forme d'une
interface HISC (une ou plusieurs paires requête-réponse en séquence). La solution souvent
adoptée (voir l'exemple de modélisation AIP dans [37, 34] entre autres) est de séquentiali-
ser toutes les opérations. Une autre heuristique souvent utilisée est illustrée dans l'exemple
de la perceuse. Ici elle permet d'encapsuler le parallélisme entre l'étau et le démarrage et
l'arrêt du moteur. On y définit une machinefictiveau seul but d'introduire des événements
synthétiques (qui n'existent que dans le contexte du sous-système perceuse). La spécifica-
tion de contrôle incorpore ces événements pour définir le début et la fin de la séquence de
perçage et, comme ces événements sont synthétiques, ils apparaissent à point nommé pour
que l'on puisse définir la projection naturelle correspondant à la structure de l'interface.
Notez qu'il est nécessaire que l'événement d'arrêt (l'événement de réponse dans l'inter-
face) soit contrôlable. C'est une condition nécessaire pour obtenir une projection naturelle
qui correspond à l'interface de lafigure3.8.
L'usage d'artefacts de modélisation tels que les événements synthétiques est sûrement
commode pour en arriver à une spécification d'interface. Elle constitue à la fois une façon
d'étendre le répertoire d'événements d'une composante (réouverture de la composante une
fois constituée) et une façon acceptable de limiter la liberté de modélisation sous forme
d'heuristiques disciplinées.
Les sous-systèmes HISC ont cependant une caractéristique fâcheuse. Il n'est pas pos-
sible de gérer dans un sous-système un événement incontrôlable pouvant se produire de
façon asynchrone n'importe quand. Un tel événement ne peut pas constituer un événement

147
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

FIGURE 3.8 - Heuristiques de modélisation HISC

de réponse dans l'interface puisqu'il peut se produire pendant l'exécution d'une requête et
qu'en général il ne termine pas la requête, la discipline d'interface est alors violée. Si le
résultat de l'occurrence d'un tel événement doit être visible au haut niveau, l'heuristique
des événements synthétiques est alors utilisée pour introduire une interrogation du sys-
tème de bas niveau (voir l'exemple AIP précité). Le système de haut niveau interroge alors
continuellement le sous-système dans un genre de boucle d'attente active. L'effet global
cependant est de transporter un requis de contrôle aisément réglé dans le bas niveau vers
le niveau supérieur. Ce genre de manoeuvre enrichit le niveau supérieur d'un nombre de
requis de contrôle qui ont avantage à ne pas y apparaître car ils sont vraiment de portée
locale.
De façon générale l'usage de projections naturelles pour les interfaces HISC a comme
conséquence de rendre la structure de transition de l'interface inutilement riche. On peut
prendre la grue de lafigure3.5 comme exemple. Cette grue n'a que trois fonctions : déga-
ger la position d'entrée (right), dégager la position de sortie (left) et transborder une pièce
(la portion centrale grab). Or la séquence de transbordement d'une pièce comporte aussi
l'occurrence d'un événement right. Ainsi seul le graphe entier de lafigure3.5 constitue une

148
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

projection naturelle correspondant à une interface HISC (il faut bien sûr effacer les événe-
ments 1X0 et J.X 1 ). Encore une fois, certains requis sont poussés vers le haut, obscurcissant
l'ensemble des requis de contrôle (en augmentant leur complexité dans le système de haut
niveau) alors que ces requis sont clairement de portée locale.
Finalement il est intéressant de noter qu'un système HISC constitue un système plat,
tout au moins avec la métaphore de composantes réutilisables proposée. La capacité de
réutilisation de sous-systèmes (assemblage de sous-systèmes en unités plus complexes) y
est aussi limitée. On ne pourrait pas par exemple reprendre la perceuse de la figure 3.8
et la composer directement avec d'autres sous-systèmes du même genre pour définir une
autre composante réutilisable (un autre modèle générique). Dans ce cas, la seule réutilisa-
tion possible consiste à ré-assembler une nouvelle composante à partir des modèles de bas
niveau, ce qui constitue une limitation assez sévère. On ne peut pas construire de nouvelles
abstractions à partir d'autres abstractions déjà définies. Ainsi on peut dire que seuls les
modèles exhaustifs de la section [Link] sont réellement réutilisables avec HISC.

3.4 Contrôle hiérarchique


Le contrôle hiérarchique (discuté en section 2.3) a été originalement étudié par Zhong
et Wonham dans [66] et [65]. Ces investigations préliminaires ont été réalisées en présu-
mant le contexte de la théorie originale de Ramadge et Wonham (voir [43, 44, 45]) et en
utilisant le modèle du contrôle hiérarchique de lafigure2.1. On trouve un sommaire de ces
travaux dans les notes de Wonham [62] au chapitre 5 où ils sont présentés comme une ex-
tension mineure du contexte original. L'emphase de ces travaux est axée sur une réduction
de la complexité en synthèse pour procurer un moyen de mitiger le problème de l'explosion
combinatoire de l'espace des états. Ces travaux se concentrent donc sur le contrôle hiérar-
chique en tant que technique de réduction de la complexité dans la solution de problèmes
de contrôle n'impliquant qu'un seul système.
Plus tard Wong, dans sa thèse de doctorat [55], a donné au contrôle hiérarchique sa
propre base algébrique et généralisé les notions de la théorie originale de SCT pour ce
contexte. La section 2.3 reflète principalement le contexte formel établi par Wong dans sa
thèse de doctorat dont on trouve une formulation plus compacte dans [58, 59] et un nombre

149
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

de séquelles intéressantes dans [60], [57] et [56].

3.4.1 Les avantages du contrôle hiérarchique


Comme mentionné précédemment le contrôle hiérarchique a souvent été présenté dans
le contexte de l'abstraction et du contrôle d'un seul système. On a semble-t-il rarement tenté
de l'examiner sous l'angle de la composition de plusieurs systèmes en fonctionnement pa-
rallèle concurrent disposant chacun de leur propre abstraction. Même les travaux de Wong
à ce sujet (par exemple sur le contrôle modulaire et distribué dans [59] et [55] au chapitre 4)
ne mettent pas l'emphase directement sur les possibilités qui semblent s'offrir dans un tel
contexte. Or, comme mentionné par Wonham dans [62], l'abstraction hiérarchique selon le
modèle de la figure 2.1 n'est pas limitée à un modèle à deux niveaux. Approximativement,
dans les termes de [62] :
Une fois établie les conditions de consistance hiérarchique nécessaires entre
deux niveaux (disons Go et Gi), le processus peut être répété en prenant Gi
comme système de bas niveau...
Cette dernière citation est particulièrement intéressante puisqu'elle semble ouvrir la pers-
pective à des hiérarchies pyramidales de sous-systèmes en fonctionnement parallèle con-
current constituant un système complet. A elle seule cette possibilité vaut certainement une
investigation détaillée du sujet, particulièrement dans le cadre d'une étude sur l'utilisation
de composantes réutilisables en contrôle supervisé.
Une architecture hiérarchique pyramidale de sous-systèmes disjoints en fonctionnement
parallèle concurrent se prête aisément à une modularisation en composantes réutilisables. Il
y a alors une forme de modularisation des requis de contrôle et surtout une réutilisation telle
quelle de l'expression de ces requis ainsi que de leur implémentation. Il est aussi possible,
en général, de réduire la taille des abstractions (modèles d'AFD des systèmes de haut
niveau) par rapport à celle des agents (modèles d'AFD des systèmes de bas niveau). On
en tire une réduction de la complexité en synthèse car le contrôle hiérarchique procure une
forme d'encapsulation opaque. L'encapsulation opaque peut cependant entraîner la perte
de Yoptimalité (section 1.2.2) de la synthèse.

150
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

Une telle architecture offre en plus la possibilité d'exprimer les requis du contrôle d'un
système de façon progressive et de les localiser le plus près possible de leur point d'appli-
cation. Cette forme de modularisation des requis de contrôle procure une façon progressive
de concevoir un système par raffinements successifs. Elle permet aux concepteurs de se
concentrer sur la formulation de sous-ensembles restreints de requis de contrôle à chaque
itération, divisant ainsi le problème global en sous-problèmes particuliers (une technique
souvent appelée diviser-pour-régner).
La modularisation des requis de contrôle peut aussi procurer une clarification signifi-
cative dans l'expression des requis de contrôle. Il est assez bien connu (quoique rarement
souligné) que la spécification de sous-langages légaux, utilisée pour exprimer les requis de
contrôle dans le contexte original de SCT, présente des difficultés significatives. Plus ces
spécifications sont volumineuses (plus elles couvrent de requis de contrôle simultanément)
moins elles sont faciles à tracer à leurs requis informels d'origine (par exemple voir [37]
pour un problème type).
On remarque que le problème de synthèse aussi prend alors un caractère progressif.
Certains requis de contrôle peuvent présenter un caractère purement local en ce sens qu'ils
ne s'appliquent qu'à des sous-systèmes et que le contrôle du système global présuppose
l'application préalable de ces requis. On peut ainsi imaginer des situations où, une fois
un sous-système composé, on lui applique un ensemble de requis de contrôle de portée
purement locale et on en fait la résolution par synthèse (un sous-problème de contrôle).
En contrôle hiérarchique il est possible d'encapsuler les sous-systèmes (après synthèse) au
même titre et de la même façon que les composantes réutilisables (par abstraction). La fron-
tière entre composantes réutilisables et sous-systèmes devient [Link] sous-système
encapsulé de cette façon peut aisément être transformé en une composante réutilisable.
Finalement on peut noter que, dans le contexte théorique de Wong et Wonham [58],
le contrôle hiérarchique peut utiliser n'importe quelle procédure de synthèse pourvu que
le système de haut niveau (Yabstraction) dispose d'une technologie de contrôle standard
(section [Link]). On peut donc y appliquer les procédures de synthèse du contexte origi-
nal de SCT (Ramadge et Wonham) ou, moyennant une modélisation adéquate, celles de
la théorie du contrôle de STS. Ceci peut rendre cette approche particulièrement versatile
puisqu'alors rien n'empêche d'utiliser des composantes réutilisables conçues à partir de la

151
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

théorie du contrôle hiérarchique dans d'autres contextes théoriques (par exemple STS ou
HISC). La réduction de complexité implicite au contrôle hiérarchique représente déjà un
apport substantiel.
En somme le contrôle hiérarchique semble posséder beaucoup de caractéristiques dési-
rables pour établir une métaphore de composantes réutilisables. Cependant, étant donné le
contexte des précédentes études sur le sujet (celui de l'abstraction d'un système unique), il
faut d'abord développer certains résultats théoriques pour supporter le modèle d'abstraction
suggéré à la section [Link].

3.4.2 Composantes réutilisables en contrôle hiérarchique


Dans le cadre de notre problème de conception de composantes réutilisables, le point de
départ est toujours un générateur G avec L = L(G), où L Ç E* est un langage préfixe clos
muni d'une technologie de contrôle standard E = £ c Û £„. Cette technologie de contrôle
une
induit Cio '• FL —* ^(L) structure de contrôle standard localement définissable sur L
(Wong [55], section 3.1). Dans le contexte hypothétique de la section [Link], le générateur
G = (Q, E, S. qo, Qm) représente l'AFD d'un modèle exhaustif obtenu par un processus ad
hoc comme celui de la figure 3.1. En contrôle hiérarchique G = G/„ et constitue ce qu'il
est convenu d'appeler Y agent par opposition à Y abstraction dans le système. En général on
suppose que les modèles d'AFD générateurs sont soignés de sorte qu'on a, pour un agent,
le modèle linguistique (L, Lm) où L = Lm avec L = L(Gi0) et Lm — L m (G/ 0 ).
Le mécanisme de l'abstraction en contrôle hiérarchique prend la forme d'une projection
causale 0 : L —> M (section [Link]) où M Ç T* est défini sur un alphabet T éventuel-
lement disjoint de E. On suppose en général qu'on peut obtenir pour 9 une représentation
sous forme d'un AFD générateur G = (Y,T, r}.[Link]) où L(G) = 9(L) = M. On a
naturellement que M Ç T* est fermé puisque 9 est causale et L est fermé. En contrôle hié-
rarchique G = G/,, et constitue ce qu'il est convenu d'appeler Y abstraction par opposition
à Y agent dans le système. On a donc le modèle linguistique (M, Mm) pour Y abstraction
où M = Mm avec M = L(Gh%) et Mm = Lm(Ghi) puisqu'on peut aussi, sans perte de
généralité, supposer que Ghl est soigné.
Dans le scénario de la section [Link], pour que l'on puisse considérer que Gfn consti-

152
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

tue une abstraction de G/„ (Yagent), la projection 9 ne peut pas être arbitraire. Elle doit
posséder plusieurs caractéristiques. En particulier Y abstraction doit aussi être munie d'une
structure de contrôle C>u : TM —> V2(M) et cette structure de contrôle doit être consistante
avec celle de l'agent, Ci,,. La projection 9 doit donc être construite de façon à ce que le
triplet (L, 9,Cio) présente la consistance du contrôle (section [Link]). Mais la consistance
du contrôle, bien que nécessaire, ne suffit pas.
1. Il faut pouvoir combiner plusieurs abstractions pour former une description abstraite
du problème de contrôle à résoudre. La composition de modèles abstraits doit se faire
par usage du produit synchrone tel que défini en section 1.1.4.
2. Il faut aussi pouvoir effectuer la synthèse sur la description abstraite du problème de
contrôle, ce qui pose le problème de la disponibilité de procédures de synthèse au
niveau des représentations abstraites des composantes.
3. Il faut pouvoir effectuer une synthèse contrôlable et non bloquante sur le modèle
abstrait du problème de contrôle et disposer de l'assurance d'une implémentation
contrôlable et non bloquante au niveau concret (celui des agents).
4. II faut enfin qu'un résultat de synthèse au niveau abstrait puisse être transcrit au
niveau concret de façon algorithmique sans passer par une synthèse sur l'ensemble
des agents impliqués dans la formation d'un système.
L'annexe C développe l'ensemble des résultats nécessaires pour obtenir ces caractéris-
tiques, en utilisant la notation et les concepts présentés en section 2.3 et plus particuliè-
rement le modèle du contrôle hiérarchique de la section 2.3.2.

[Link] Abstraction de composantes en contrôle hiérarchique

L'ensemble des résultats de l'annexe C gravite autour de trois éléments : une règle pour
la conception de la projection (l'équation C.5) et deux propriétés dont la projection doit être
dotée : la propriété d'observateur (section 2.3.3) et la coïncidence du contrôle (section B.3).

153
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

L'ensemble des règles définies par l'équation C.5 (section C.3)

XT := {sa G Lvoc | ^i(sa) = r}


Te := {rGT\XTfid}
Z Ç {reïi|XTÇE'Sc}
Tu := T0-Tc

assurent que la projection (9 : L —» M) induit une technologie de contrôle standard


(7' = 7'CÙ7'U) dans l'abstraction. Sans perte de généralité on suppose ici que T — Te.
Cette condition est nécessaire puisque l'on veut pouvoir effectuer la synthèse sur le modèle
abstrait du problème de contrôle et que les procédures de synthèse définies pour SCT pré-
sument toutes une technologie de contrôle standard. Alors l'abstraction (que l'on désigne
souvent par son langage fermé M) est ainsi munie d'une structure de contrôle standard
Chi : TM - V2(M).
Comme on peut le constater, dans l'ensemble des règles, la technologie de contrôle
standard de C/„ est obtenue en imposant un critère simple pour qu'un événement soit consi-
déré contrôlable dans Y abstraction : T, Q {T G T0 | XT Ç E*E,.|. L'événement r n'est
donc considéré contrôlable dans l'abstraction que s'il est possible d'en inhiber la généra-
tion à travers Yagent, et ce, en toutes circonstances. Le reste des événements (ceux qui ne
répondent pas à ce critère) sont tout simplement considérés incontrôlables dans l'abstrac-
tion : Tu := T — Tc. En d'autres termes on obtient Y absence de délai de contrôle

(Vr € Tc) 0 fi U)~1(T) Ç E*E r (cf. formule C.6).

Pour toute chaîne sa G L telle que 9(sa) = 9(S)T G M et T G T,. alors a G E,.. La
génération de r à la suite de la génération de 9(s) peut donc être contrôlée à travers une
action de contrôle directe sur l'ensemble d'événements {a G E c | 9(sa) — 9(s)r} dans
l'agent.
L'usage de l'ensemble des règles de l'équation C.5 lors de la construction d'une pro-
jection 0 : L —* M induit donc une technologie de contrôle standard dans l'abstraction et
procure l'absence de délai de contrôle. La proposition C l 1 montre qu'en présence de la

154
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

propriété d'observateur cette situation (l'absence de délai de contrôle) entraîne la coïnci-


dence du contrôle
9-1(C,„(M))ÇClo(L)

(la relation entre ces deux concepts est discutée en section B.3). Lorsque la projection 9 est
ainsi dotée de la coïncidence du contrôle et de la propriété d'observateur :
a) le corollaire C.5, le corollaire C.2 et la proposition C.4 à la section C l démontrent
que les conditions correspondant à la version faible de la consistance du contrôle sont
réunies, c'est-à-dire que Chi(M) Ç 0(Cio(L)) ;
b) la proposition C.8 à la section C.2 démontre que les conditions correspondant à l'absence
de couplage de contrôle sont aussi réunies et donc 9~l o K A/ < KL ° 9~X O KM.
Il suffit alors de poser L'm := 9~l(Mm) pour obtenir la consistance du marquage (voir l'ar-
gumentation en section C.2 et l'équation C.4). Ainsi les conditions du théorème 6 concer-
nant la synthèse non bloquante en présence de la version faible de la consistance du contrôle
(telles que développées en annexe A) sont alors réunies.
Pour un système hiérarchique (L, M, 9) où 9 est une projection causale dotée de la
propriété d'observateur conçue en respectant les règles de l'équation C.5, l'implémenta-
tion dans L d'un résultat de synthèse non bloquant sur M est aussi non bloquante. En
particulier pour E Ç M un objectif de contrôle, 0~1(KM(E)) est contrôlable et non blo-
quant (voir le théorème CIO). Le résultat de synthèse, une loi de contrôle sur l'abstraction
Vj\ : M —• V(T), permet (à travers une règle simple, l'équation C.7) le calcul d'une loi de
contrôle VK '• L —* "P(E) sans passer par une synthèse sur Yagent (voir la proposition C. 13
en section C.3). Dans ces circonstances, pour G;0 et Gy,, définis comme précédemment,
la paire (G/„, Ghl) où L = L(Gi0) et M = 9(L) = L(G/ U ), constitue un modèle géné-
rique adéquat pouvant servir de base à une instanciation du système hiérarchique (L, M, 9),
moyennant un mécanisme adéquat comme celui de la section [Link]. Alors C = (G, G)
avec G := G/ 0 et G '•= G/,,, représente un modèle d'une composante réutilisable.

[Link] Usage de composantes abstraites en contrôle hiérarchique

Ce qui précède ne vaut que pour une seule instance de composante. Pour que cette
métaphore de composantes réutilisables soit utile il faut pouvoir assembler des hiérarchies

155
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

pyramidales d'instances à la façon illustrée en figure 3.9. Il y a trois manoeuvres de concep-


tion à envisager.
1. Il doit être possible d'assembler des instances de composantes pour former le com-
portement libre d'un sous-système (composition horizontale).
2. 11 faut pouvoir contraindre ce sous-système au comportement désiré par application
d'un ensemble de requis de contrôle de portée locale (contrôle local).
3. Finalement, le cas échéant, il doit être possible de réabstraire en spécifiant une autre
projection à partir du résultat (composition verticale).
Chacune de ces trois manoeuvres correspond à un opérateur comme illustré en figure 3.10:
1. le produit synchrone pour la composition horizontale (figure 3.10 (a)) ;
2. la composition fonctionnelle de projections (figure 3.10 (b)) pour la composition ver-
ticale ;
3. Y opérateur de synthèse pour l'élaboration d'un contrôle local (figure 3.10 (c)).
Pour que ce schéma de conception fonctionne, il faut s'assurer que les sous-systèmes
composés possèdent les propriétés nécessaires à garantir les conditions du théorème 6 de
[58] concernant la synthèse non bloquante (au moins dans sa forme affaiblie de l'annexe A).
11 est donc nécessaire que chacun des opérateurs de composition ainsi que l'opérateur de
synthèse produisent des projections qui préservent
- la forme affaiblie de la consistance du contrôle C/U(M) Ç 9(Ci„(L)) ;
- la consistance du marquage 9~l (Mm) = Lm ;
- la propriété d'observateur;
- l'absence de couplage du contrôle 9~J o KM < KL O 9"X O KM.
Dans ces conditions, puisque le produit synchrone et la composition fonctionnelle sont
associatifs le schéma de la figure 3.9 devient possible.
Dans ce qui suit il est implicite que l'ensemble des composantes considérées pour
la composition sont issues du processus d'abstraction discuté précédemment. En particu-
lier, dans la figure 3.10, toutes les composantes se trouvant à droite du symbole de dé-
finition (soit := ou <—) sont des instances de composantes réutilisables au sens de la
section [Link], et possèdent donc toutes les propriétés nécessaires à assurer les conditions

156
O
I
>
H
( > m
a*
-n
5 /
TO
>
n
3
o
il
c >)
a*
W)
s/~\&
" 1 o o g- n
3
m > 3 o
/• \
m
o sr.
3/^XO
ws 5
c
-o
O
»_
o
>
a- o ^.-s- => O d 00
> V> £ in Q ;r
en >
1 0" Ï3 3
T t- > z
O A *£> r j 5* H
w m
o g ^ /
3
B* ^1 8 O
O n
3-~
r s
«TEîpj» &o
73
o
•v>
a r- t > m-
• * * * •
O <
V)X C
ri > H
^5 0Q
o'
3 r-
5 Kl

t/1 31, v__^ 1 3 «5


ar i >
CD
o ~ S; T3 r
3.
N •< m
o >
3 n
> > a-
Vt
-a
S» •S » as O

< ~. œ
S. a
J Q.
P
C
70

3 '' 5 "S a o
O H
P O O
fC Ci o
n> t->
>
*•*»
3
n -—'y 3 ii TJ
V O
o Sfl
P
D ) 3
s* O O
o" to
o o" 3-
P
r^
to •>>
^
N
"-"'
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

du théorème 6 dans sa forme affaiblie de l'annexe A. De plus le mécanisme d'instanciation


suggéré en section [Link] a pour but d'assurer que les instances de composantes réuti-
lisables sont disjointes deux à deux. Les composantes utilisées en figure 3.10 sont donc
sûrement disjointes au sens donné à ce terme à la section C.4. On se retrouve précisé-
ment dans le contexte détaillé en annexe C et plus particulièrement à la section C.3. Dans
ce contexte il doit être clair que la composition synchrone de sous-systèmes munis d'une
technologie de contrôle standard résulte en un système lui-même muni d'une telle techno-
logie de contrôle, puisqu'il s'agit du contexte usuel en SCT. Similairement, les procédures
de synthèse de SCT ne changent rien à la technologie de contrôle du système qui en résulte.
Ainsi tous les modèles discutés (composés ou non) possèdent une technologie de contrôle
standard et donc une structure de contrôle standard, localement définissable.
On considère tout d'abord le cas de la composition horizontale à l'aide de l'opérateur
de produit synchrone comme illustré en figure 3.10 (a).
On peut montrer que, sous réserve des conditions définies en section C.4, le produit syn-
chrone préserve la propriété d'absence de délai de contrôle (proposition C.14) et aussi la
propriété d'observateur (proposition C l 5 ) . Ainsi, par la proposition C l 1, le produit syn-
chrone préserve la propriété de coïncidence du contrôle (équation B.2). Ces conditions sont
celles du corollaire C.5, ce qui garantit la forme faible de la consistance du contrôle. Aussi,
par la proposition C.8, on obtient l'absence de couplage de contrôle. Finalement, dans les
conditions précitées, le produit synchrone préserve aussi la consistance du marquage (voir
la section B.5). Le produit synchrone préserve donc les conditions du théorème 6 dans sa
forme affaiblie de l'annexe A.
On considère ensuite le cas de la composition verticale c'est-à-dire la composition fonc-
tionnelle de projections comme illustrée en figure 3.10 (b).
Il est utile de noter que, dans la figure 3.10 (b), 0 et p sont toutes deux des projections
causales dotées de la propriété d'observateur. D'après le lemme 5 dans [57] (reproduit en
section B.6), leur composition fonctionnelle ip :— 9 o p est aussi une projection causale
dotée de la propriété d'observateur. Aussi 9 et <p sont toutes deux construites en respectant
la règle de l'équation C.5 et présentent la coïncidence du contrôle et donc la consistance

158
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

du contrôle (version de l'annexe A)

Cla(M) Ç 9(Clo(L)) etC'hl(p(M)) Ç ç(Chl(M))

et Y absence de couplage de contrôle

9~] OK A / < KL O0~X OKM et ç~x o7c^(M) < KM O ^~X OK^M) .

Enfin leur langages marqués sont aussi ajustés pour assurer la consistance du marquage

9~x(e(Lm)) = 9-\M,„) = Lm et tp-l^(Mm)) = Mm .

Alors la consistance du contrôle (version affaiblie) est préservée puisque

C'hMiL))-=C'hl{<f°0(L)) Q <po8(Clo(L)) = ib(Ch(L))

ainsi que la consistance du marquage

Lm=9-x(p-l(-p(M,n)))
= 0-l(<,-1(V(d(Lm))))
= 9~1(p-1(iiiLm)))
= i!>-ï(tr(Lm)).

Pour vérifier que l'absence de couplage de contrôle est aussi préservée, on note d'abord
que KM O ^S"1 O ~KJ(M) dénote l'implémentation dans Yagent (l'agent M) de la synthèse sur
Pabstraction (composante du haut dans la figure 3.10 (b)) d'un certain sous-langage fermé
de p(M). Puisqu'il y a absence de couplage de contrôle entre L et M et aussi entre M et
-p(M), alors

9~l(nM o V3~1 olï^ni)) < KL O 9~X(KM O Ç~X O K ^ A / ) )


9;ï(<f~X °Kf(M)) < 0;l(KMO^-1 OKAAI)) < KLo9~X(KMOif-X OK^(M))

159
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

et puisque «-.*/ ° -r"1 ° *>(u> < r ~l ° K*(M),

(f 1
v ('fvlo'RAM)) ^ KL°0-X(KM 0 ^ ' o ï ï # ) ) < KLo9~X(ç~X O/t^A/,)

et finalement,

0» ! (<rv l ° *V(Af ) ) < KL ° #~ ' ( ^ " ' ° N*(M) )


l l
(9~ 0p~ )0Kfi{m < KL0 (8~X O p~l)oJÏ^M)

'l'y1 ° **(»('')) ^ K
I< ° "'" 1 ° ^ ( « ( / 0 )

L'absence de couplage de contrôle est donc préservée elle aussi par la composition fonc-
tionnelle de projections.
À noter que la consistance du contrôle (version faible) et l'absence de couplage de
contrôle peuvent aussi être déduites de la préservation de la propriété de coïncidence du
contrôle par la composition fonctionnelle de projections puisque

9-\Chl(M)) Ç Ci0(L) etç~x(Cl(ç(M))) Ç Chl(M)

implique que

>irx(C'hl(lp(L))) = ^x(C'hl^o0(L)))
= r^cjAM)))
= 9~xo^x(C'lu(ç(M)))
Ç8-x(Chl(M))ÇClo(L).

Mais ce qui précède montre qu'il n'est pas nécessaire de présumer la préservation de la
coïncidence du contrôle pour obtenir ces deux propriétés. On note aussi que dans la situa-
tion de lafigure3.10 (b), aucun contrôle n'est ajouté lors de la réabstraction.
La composition fonctionnelle de projections préserve donc les conditions du théorème 6
dans sa forme affaiblie de l'annexe A.

160
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

On considère finalement la situation de la figure 3.10 (c) où on ajoute un contrôle local


à un modèle. Dans ce dernier cas, l'abstraction sur laquelle on veut imposer un contrôle (la
projection 9) répond déjà à toutes les exigences du théorème 6 (version de l'annexe A), en
particulier, 0 est un observateur et possède la coïncidence du contrôle.
Soit donc un objectif de contrôle E Ç Mm et N := KM(E) un résultat de synthèse
non bloquant dans l'abstraction. On a que K := 9~X(N) est non bloquant dans l'agent
(théorème CIO). Par l'argumentation précédant le théorème 6 dans [58], en particulier les
propositions 16 et 17, on sait que 9^ est un observateur puisque dans ces conditions, la
paire (L,9) est fortement observable par rapport à A' € X (annexe A). Puisque K est non
bloquant dans l'agent, on a que K = K C\ Lm et N = 9(K) (par consistance du contrôle
et consistance du marquage). Ainsi, puisque K Ç L, on peut affirmer que

(V*' G L)(V/ € T*) 8(s)l. G 9(K) =^> (3u G E*) su G K et8(su) = 9(s)i

car 6(s)f G 9(K) = N et K est non bloquant dans Yagent. On a donc, par le lemme 2 dans
[57], que 9-^ est un K -observateur. Mais qu'en est-il de la coïncidence du contrôle?
L'intuition suggère que cette dernière propriété est toujours présente dans le résultat de
synthèse (7?,7V,f9-^). On note tout d'abord que N G Chi(M), donc ~N G Chi(M), ainsi
CM(X) — Chi(M) n V(N) (propriété 4 des structures de contrôle de la section [Link]).
En suivant un raisonnement similaire on obtient aussi que Ci0(K) = Ci0(L) D V(K)
puisque K G Ci„(L). Puisqu'on a la coïncidence du contrôle entre L et M, on a donc que
9 x(Chl(N)) C 9 x(Ch,(M)) Ç C,„(L). Prenons R G Ch,(N) arbitraire. Alors R C N et
X x
9~ (R) C 9- (N) = 0~ (N) = K puisque 9 est un observateur, et ainsi 9~X(R) G V(K).
X

Puisque R est arbitraire dans Cht(N) on a donc que 9~~l(Chi(N)) Ç Ci0(K), c'est-à-dire
que la coïncidence du contrôle est préservée dans un résultat de synthèse.
Plus généralement on peut conclure qu'une synthèse sur une abstraction, conçue d'après
la règle de l'équation C.5, donne comme résultat un observateur du comportement de
l'agent en boucle fermée sous le contrôle de VK et préserve la coïncidence du contrôle.
L'imposition d'un contrôle local sur une projection comme illustrée en figure 3.10 (c)
préserve donc aussi les conditions du théorème 6 dans sa forme affaiblie de l'annexe A.

161
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

Deux points importants se dégagent de ce qui précède. Premièrement, le processus


d'abstraction suivant la règle de l'équation C.5 s'avère être extensible tant verticalement
(abstraction, réabstraction) qu'horizontalement (par composition synchrone). A n'importe
quel point de la hiérarchie d'abstraction, on peut aussi imposer une loi de contrôle sur un
sous-système avant de le composer à nouveau avec d'autres éléments ou de le réabstraire
en une autre projection conforme à la règle de l'équation C.5. Cette dernière manoeuvre
est utile particulièrement pour localiser des requis de contrôle le plus près possible de l'en-
droit (dans le système) où ils s'appliquent (requis de contrôle de portée purement locale).
Deuxièmement, à chaque point de la hiérarchie d'abstraction on obtient une projection
conforme à la règle de l'équation C.5. Ceci veut dire en particulier qu'en respectant la
règle, ce processus d'abstraction peut être utilisé pour concevoir des composantes réuti-
lisables, c'est-à-dire d'autres modèles génériques, à partir d'une combinaison de modèles
génériques préexistants ou de modèles exhaustifs.

[Link] Conception de composantes en contrôle hiérarchique

À partir de ce point, pour obtenir le modèle générique d'une composante réutilisable


le long des lignes exposées en section [Link] (c'est-à-dire une paire C = (G, G)), il faut
définir un processus d'abstraction. Ce processus consiste à concevoir, à partir de G, une
projection 9 respectant la règle de l'équation C.5 et dotée de la propriété d'observateur.
La figure 3.11 illustre ce processus pour un vérin à commande monostable dont le mo-
dèle exhaustif a été préalablement obtenu (figure 3.1). Pour un dispositif physique comme
un vérin, le point de départ est nécessairement le modèle exhaustif. Dans le modèle de la
figure 3.11 (a), les événements sont des fronts montants et descendants de capteurs (événe-
ments incontrôlables) et d'actionneurs (événements contrôlables).
Il faut ensuite faire certaines hypothèses sur les transitions qui doivent être projetées et
celles qui doivent être effacées. Puisqu'il s'agit d'une projection causale on expose ou on
efface des transitions et non des événements. On a la possibilité de renommer des événe-
ments si nécessaire. On construit donc, en figure 3.11 (b), un modèle de la projection sous
la forme d'une machine de Mealy puisque le calcul de la projection utilise l'algorithme de
Wong que l'on trouve dans [60]. Lors de la formulation des hypothèses concernant les tran-
sitions à projeter ou à effacer, on doit veiller à ce que les événements de la projection que

162
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

ÎX0
^N^,mxrx-^Cy^'xL^)/
'~--./~~ iXl _...--'

(a) Modèle du matériel conditionné

..--""" iXO/e " ^ -,

n/deployY^-J^^L^ ^^^L^y^X\/deploye„d

„„ , \ .--'11.
TX0/refracW —_ ^-- ^O- JlY/retract
><3iô^xT>_Cwx7><
'•--/7~" iXl/e ...-•'

(b) Modèle de la projection (Machine de Mealy)

de l
P °y^^E*)^ dePloyend

*etroted\ x,eploye
Y,XO y V. Y,XI
retractend ^^ttr^An^j^retract
^ Y,X0

(c) Observateur (projection)

FIGURE 3.11- Abstraction d'un vérin à commande monostable

163
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

l'on désire rendre contrôlables (r G Tc) n'empruntent que des transitions sur événements
contrôlables (c'est-à-dire a G E t ) dans Yagent (ici, dans la machine de Mealy conçue à
partir du modèle exhaustif).
Par la suite on utilise l'algorithme de Wong pour calculer la quasi-congruence la plus
grossière qui soit plus fine que le modèle de la projection spécifiée par le modèle de la
figure 3.11 (b) résultant de nos hypothèses. L'algorithme nous retourne l'automate quotient
(section [Link]) le plus grossier qui soit conforme à nos hypothèses. Éventuellement l'al-
gorithme doit cependant ajouter de nouvelles hypothèses sous forme d'autres transitions à
exposer. On peut accepter le résultat de l'algorithme ou reformuler d'autres hypothèses sur
la base de ce que l'algorithme nous suggère. Éventuellement, en raffinant nos hypothèses
de la sorte, on obtient une projection d'observateur, c'est-à-dire que l'algorithme de Wong
n'ajoute plus aucune hypothèse et nous fournit le quotient le plus grossier correspondant à
nos hypothèses.
La figure 3.11 (c) illustre l'AFD quotient obtenu de l'algorithme de Wong à partir des
hypothèses faites en figure 3.11 (b). Bien sûr ce modèle est simple. On peut vérifier par
inspection que la proposition 7 de [58] est vérifiée pour ce quotient et donc qu'il s'agit
bel et bien d'un observateur. Ce quotient correspond d'ailleurs presque à un observateur
naturel (voir [15]), mais pas tout à fait car les événements projetés ont été renommés. Mais
à cette différence près, il s'agit d'un observateur naturel.
Bien sûr le processus est heuristique. Il ne saurait en être autrement car à moins d'en-
coder ces heuristiques dans la procédure de réétiquetage de l'algorithme de Wong, l'algo-
rithme lui-même ne peut fournir que des suggestions. Aussi la convergence de l'algorithme
repose sur le fait que la procédure de réétiquetage utilise (pour ses suggestions) de nou-
velles étiquettes d'événements qui sont toutes différentes de celles qui existent déjà. Mo-
difier la procédure de réétiquetage devrait tenir compte des exigences pour la convergence
de l'algorithme et il semble peu probable que l'on puisse faire mieux que ce qui existe déjà
dans l'algorithme de Wong. D'ailleurs, vu l'étendue des possibilités pour le réétiquetage, il
semble préférable de laisser la tâche de faire ce genre d'hypothèses au concepteur de la pro-
jection. Ce dernier est mieux à même de décider de critères comme la sémantique des noms
d'étiquettes. L'expenence semble suggérer que les hypothèses supplémentaires faites par
l'algorithme de Wong suffisent à guider le concepteur de la projection efficacement dans le

164
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

processus.
Un processus heuristique comme celui illustré en figure 3.11 peut sembler limité et
coûteux. Il est limité parce que la taille des modèles doit généralement permettre l'analyse
par inspection visuelle. Il est coûteux car sa complexité est de l'ordre de C)(kin) où k est
la taille de l'espace des états de la machine de Mealy et n le nombre de ses transitions
(voir [60]). Si on ajoute à cela que plusieurs utilisations de l'algorithme sont généralement
nécessaires pour trouver un observateur, le coût peut sembler prohibitif.
On peut opposer au premier argument que, tout au moins pour l'abstraction à partir
de dispositifs physiques, les modèles exhaustifs impliqués sont généralement de taille mo-
deste. C'est certainement le cas dans les usines modulaires.
Pour l'argument concernant les coûts, on doit remarquer que les bénéfices principaux
de ce type de processus d'abstraction sont la réutilisation de spécification (sous forme de
composantes réutilisables) et l'ensemble des garanties formelles qu'il procure. La réuti-
lisation de composantes par instanciation dans divers problèmes de contrôle procure une
façon d'amortir les coûts de conception. Aussi, une fois franchie la barrière de la concep-
tion du modèle exhaustif (un processus ad hoc pour lequel on ne dispose d'aucune garantie
formelle sauf peut-être sa validation statistique), ce type de processus nous procure une
façon de passer du domaine informel (ad hoc) au domaine formel de SCT et d'y rester. On
dispose ainsi des garanties formelles (synthèses contrôlables et non bloquantes) que SCT
procure.
On peut ajouter qu'il est aussi très coûteux d'obtenir des modèles exhaustifs adéqua-
tement vérifiés pour les dispositifs physiques et que pour l'instant c'est la seule alternative
qui existe. Or l'élaboration d'une composante réutilisable pour un tel dispositif (éventuelle-
ment avec plusieurs éléments d'interface G) permet au moins de récupérer le travail investi
dans l'élaboration du modèle exhaustif lui-même.

3.4.3 Sommaire d'analyse


Par rapport aux critères fixés en section 3.1, on peut dire que le contrôle hiérarchique
s'accommode bien de toutes les limitations sauf celles concernant les solutions de synthèse
de type SFBC (L4). La limitation à des sous-systèmes disjoints (Ll) devient en fait, pour

165
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

l'abstraction le long des lignes de la règle de l'équation C.5, un préalable.


Pour procurer des solutions de synthèse de type SFBC on peut toujours avoir recours
à une modélisation de système par STS. Mais dans ce cas le système modélisé devrait être
un système plat, c'est-à-dire sans structure verticale. Ce genre de modèle est composé d'un
seul super-état ET Jo à la racine (T(x0) = and), et chacune de ses cellules (des super-états
OU) est associée directement à l'instance d'une paire (Gi0,G) (l'instance d'un modèle
générique conçu selon le processus illustré en section [Link]). Le comportement libre du
système abstrait est alors équivalent à

G=\\ Gl

pour i G {1,..., ri). En contrôle hiérarchique ce modèle abstrait est un observateur du


système concret formé du produit

Gfo = Il Gij0

des agents, pour i G {1,..., n } , et dotée de la coïncidence du contrôle. Ce type de modèle


de système est la version STS d'un modèle de comportement libre dans le contexte usuel
de SCT (système plat).
La figure 3.3 fournit un exemple d'un modèle de STS sans structure verticale, si on
suppose que les holons x et y dans l'élément Flèche ne constituent qu'un seul état opaque
(comme pour le vérin dans la figure 3.11 (c)). On peut y modéliser les requis de contrôle à
l'aide d'une spécification similaire à celle de la figure 3.4 (par famille d'états proscrits) et,
éventuellement, par modélisation explicite d'éléments de mémoire (la pratique usuelle en
contrôle de STS). De cette façon on récupère les avantages liés à une synthèse symbolique
livrant une SFBC et à une modélisation explicite de la mémoire.
L'usage d'une modélisation par STS (même avec un système sans structure verticale
comme précédemment) procure en plus un avantage. On se rappelle que l'algorithme de
Wong livre, comme abstraction, un AFD quotient (section [Link]) de la structure de tran-

166
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

sition de G, la machine de Mealy. Dans le quotient

G := G/(T, PG) = (Y. T U {TO}, n, y0. Ym)

Pc représente une partition de Pespace des états de la structure de transition de la machine


de Mealy, notée G t s . Dans notre cas on a que G t s = Glo. Les composantes réutilisables
obtenues du processus d'abstraction de la section [Link] sont donc des paires (G t s , G) où
G est un observateur possédant la coïncidence du contrôle. Chaque état de G représente un
élément de la partition />G donc un ensemble des états de G t s disjoints des autres éléments
depG.
En synthèse de STS, pour le produit

G = II Gt

(i G { 1 , . . . n}), le résultat est donné sous forme d'un ensemble de prédicats (f„ pour
o- G E,) représentant des fonctions caractéristiques sur G (des indicatrices de familles
d'états). La relation entre les états des abstractions composant le système, G,, et de leurs
agents respectifs, G, t5, à travers pc, procure donc un support utile pour traduire le résultat
d'une synthèse sur le modèle abstrait en un contrôle équivalent sur le modèle concret. On a
ainsi un support éventuel pour Y implémentation d'un résultat de synthèse sur l'abstraction
d'un problème de contrôle (critère C8).
Ainsi on peut dire que, sous provision
- de respecter la règle de l'équation C.5 pour l'abstraction de composantes réutili-
sables ;
- d'utiliser le processus d'abstraction décrit en section [Link] ;
- d'utiliser des modèles de STS sans structure verticale (comme décrit précédemment)
pour la modélisation de problèmes de contrôle ;
le contrôle hiérarchique supporte la conception d'une métaphore de composantes réutili-
sables selon les lignes de la section [Link]. Les critères définis en section 3.1 semblent
tous adéquatement remplis.
L'élément de modularisation est une paire (G. G) où G est une abstraction de Yagent G

167
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

conçue en respectant la règle de l'équation C.5. L'interface est constituée de l'élément G,


elle procure une encapsulation opaque de la dynamique de Yagent et simplifie la synthèse.
Les procédures de calcul d'observateur de Wong constituent un support à la dérivation
d'interfaces (ici, l'abstraction). Le processus d'abstraction peut être répété verticalement,
et utilisé pour la conception de composantes réutilisables autant que pour la formulation
de problèmes de contrôle. En utilisant une modélisation par STS sans structure verticale
(comme discuté précédemment), les procédures de synthèse du contrôle de STS sont adé-
quates avec cette métaphore de composantes réutilisables. Ces procédures livrent une SFBC
comme résultat de synthèse et utilisent des BDD (méthodes symboliques) pour leurs cal-
culs. Comme mentionné précédemment, l'usage de l'algorithme de Wong et d'un résultat
de synthèse de type SFBC procurent un support substantiel à l'implémentation des résultats
de synthèse. L'encapsulation opaque entraîne une perte d'optimalité dans la synthèse, mais
cette perte d'optimalité peut, en pratique, être considérée raisonnable.

3.5 Solution proposée


Dans les sections qui précèdent on a tenté d'identifier, dans l'état courant du développe-
ment de la théorie du contrôle supervisé, un contexte dans lequel il est possible de formuler
des problèmes de contrôle et de les résoudre en utilisant une méthode de conception par
composantes réutilisables. La méthode doit couvrir le problème global, de la formulation
de problèmes de contrôle à l'implémentation de la solution obtenue par synthèse. L'un des
éléments clefs est bien sûr la formulation d'une métaphore de composantes réutilisables
adéquate. Un scénario basé sur l'instanciation de modèles génériques, similaires à la no-
tion de classes en programmation par objets, est proposé en section [Link]. Un mécanisme
d'instanciation, correspondant à une forme de déclaration de variables au sein d'un modèle
de problème de contrôle, y est aussi proposé. Chaque variante hiérarchique de SCT a alors
été examinée sous l'angle de ce scénario.
On peut se rendre compte que, malgré sa notation particulièrement expressive et com-
pacte (une forme des statecharts de Harel), le contrôle de STS présente un problème lorsque
l'on tente d'y identifier un élément de modularisation pouvant supporter une métaphore
de composantes réutilisables. Le holon, l'élément de base de la dynamique en contrôle de

168
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

STS, semble ne pas être adéquat pour la tâche. Le holon semble en effet être une expression
d'instances de comportements d'un sous-système au sein d'un système global. L'ensemble
de ces instances de comportements dans un système semble ne pas pouvoir être associé ai-
sément à une composante physique cyclique comme dans l'exemple du vérin en figure 3.7.
Seule l'expression d'un holon en forme fondamentale (c'est-à-dire un holon sans structure
externe) est adéquate pour l'expression de composantes réutilisables (modèles génériques)
et ceci appauvrit beaucoup trop le formalisme de modélisation par STS. En effet, un modèle
de STS n'est alors qu'un système sans structure verticale et toute la puissance d'expressivité
des STS disparaît d'un coup. La variante demeure particulièrement attrayante cependant à
cause de sa modélisation explicite de la mémoire (sous forme de contraintes de contrôle) et
de ses procédures de synthèse produisant une loi de contrôle de type SFBC et utilisant des
méthodes symboliques en synthèse.
En ce qui concerne le contrôle hiérarchique par interface (HISC), bien qu'il soit clair
que l'on puisse formuler une métaphore de composantes réutilisables adéquate, certaines
limitations de cette variante la rendent moins intéressante que le contrôle hiérarchique de
Wong. Premièrement, même telle que formulée en section 3.3.2, cette métaphore n'est pas
extensible sur l'axe vertical parce que HISC est essentiellement une méthode limitée à
deux niveaux actuellement. L'appareillage théorique n'existe tout simplement pas. Ceci li-
mite sérieusement la conception de composantes réutilisables puisqu'elles ne peuvent pas
faire usage d'autres composantes réutilisables préexistantes pour leur conception. Dans ce
derniers cas, la réutilisation se limite à une réutilisation au niveau du code source (copier-
coller ou rote-reuse en anglais). Ainsi, bien que l'on ne puisse dire qu'il n'y en a pas, il y a
peu de support formel pour la conception de composantes réutilisables. L'usage de projec-
tions naturelles pour les interfaces HISC présente aussi certains problèmes. La conception
d'une projection naturelle adéquate comme interface en paires commandes-réponses (les
interfaces HISC) relève largement de l'intuition et de certaines techniques comme celle
des événements synthétiques illustrée en figure 3.8, et aucun algorithme n'est suggéré. Cer-
taines techniques, comme celle des événements synthétiques, demeurent cependant très
utiles. Elles peuvent d'ailleurs aussi être utilisées en contrôle hiérarchique (contexte de
Wong et Wonham).
De ce qui précède il ressort que la variante du contrôle hiérarchique due à Wong et

169
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

Wonham (section 2.3) semble être la plus adéquate pour formuler une métaphore de com-
posantes réutilisables sur le modèle de la section [Link]. En particulier la possibilité de
répéter le processus d'abstraction le long de l'axe vertical et de concevoir de nouvelles
abstractions à partir d'une composition d'abstractions existantes est particulièrement at-
trayante. Cette caractéristique rend la distinction entre sous-système et composante réutili-
sable presque inexistante. En effet un sous-système peut très bien être programmé comme
une composante générique et instancié lors de la formulation d'un problème de contrôle. La
conception de composantes réutilisables revêt alors presque le même aspect que la notion
de classe en programmation par objets.
Le contrôle hiérarchique procure un bon support formel pour la dérivation d'inter-
faces (l'algorithme de Wong). Aussi, le contrôle hiérarchique ne dépend d'aucune pro-
cédure de synthèse particulière. Il peut utiliser aussi bien celles du contexte original de
SCT (Ramadge et Wonham) que les procédures de synthèse du contrôle de STS. C'est
d'ailleurs pourquoi la section 3.4.3 suggère l'usage de composantes réutilisables, obtenues
du contrôle hiérarchique, dans un contexte de modélisation de problèmes de contrôle par
STS. Même sans structure verticale un tel modèle présente plusieurs caractéristiques in-
téressantes. Les composantes réutilisables issues du contrôle hiérarchique peuvent réduire
significativement l'espace des états du modèle du problème de contrôle. Alliée à l'usage de
BDD (méthodes symboliques) en synthèse, cette réduction de Pespace des états ne peut que
diminuer la probabilité d'explosion de l'espace des états et aider à aborder des problèmes
de contrôle de taille réaliste. La structure verticale se trouve encapsulée de façon opaque
dans les composantes réutilisables et les sous-systèmes, elle n'y est donc pas absente. La
modélisation explicite de la mémoire (sous forme de contraintes) ainsi que l'algorithme de
Wong, dont les modèles d'observateurs sont des quotients d'AFD, procurent un support
intéressant pour l'implémentation des solutions de synthèse. Enfin la méthode de spéci-
fication des requis de contrôle, par familles d'états proscrits (un ensemble de ST ou de
prédicats), rendent les requis de contrôle plus aisés à formuler et plus faciles à relier à leur
expression formelle.
On peut affirmer en conclusion que ce qui se dégage de cette analyse est que la meilleure
recommandation semble être de procéder avec un hybride. Cet hybride utilise le contrôle
hiérarchique, le long des lignes directrices exposées en section [Link], pour la conception

170
CHAPITRE 3. COMPOSANTES RÉUTILISABLES POUR SCT

de composantes réutilisables. En plus, l'hybride utilise une modélisation de problèmes de


contrôle par STS sans structure verticale pour l'accès aux techniques de spécification des
requis de contrôle caractéristique du contrôle de STS, et la synthèse utilisant des méthodes
symboliques (des BDD) et produisant une loi de contrôle de type SFBC. Cette méthode
n'est sûrement pas une panacée mais elle promet d'être intéressante à explorer et semble
pouvoir livrer des résultats substantiels. Le chapitre 4 procède à une description détaillée
d'un tel hybride et le chapitre 5 donne un exemple substantiel de son usage pour la concep-
tion de contrôleurs.

171
Chapitre 4

Modélisation, composantes,
sous-systèmes et problèmes de contrôle

Le chapitre 3 préconise une conception de composantes réutilisables basée sur le para-


digme modèle + abstraction dans le contexte du contrôle hiérarchique de Wong et Wonham
(voir la section 3.4). Le chapitre 3 propose en fait de concevoir des composantes réutili-
sables selon les principes du contrôle hiérarchique mais d'utiliser une modélisation de sys-
tèmes utilisant les STS (voir la section 2.7). Dans cette approche, les modèles de systèmes
doivent cependant être limités à des STS sans structure verticale (voir la section 3.4.3 et
lafigure2.6 pour une illustration). De cette façon on bénéficie de procédures de synthèse
utilisant des méthodes symboliques (usage de BDD, voir la section 2.6), d'un résultat de
synthèse sous forme de DSFBC (voir la section 2.5) et de la modélisation explicite des élé-
ments de mémoire dans le système pour l'élaboration de contraintes (requis de contrôle).
Une composante réutilisable peut alors être représentée par une paire C = (G. G) où G
est une machine de Mealy déterministe (voir la section [Link]) et G un AFD quotient (voir
la section [Link]) établi à partir de G en utilisant l'algorithme donné par Wong et Wonham
dans [60] en prenant soin de respecter la règle de l'équation C.5. Il s'agit essentiellement
d'une variation du schéma proposé en section [Link] pour modéliser les composantes réuti-
lisables, puisqu'une machine de Mealy déterministe G est toujours associée à G t s (un AFD
définissant sa structure de transition).

172
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

Dans une composante réutilisable C = (G, G) telle que décrite précédemment, la


machine de Mealy
G = (Q,[Link]{s},S,\,q(hQm) (4.1)

est un modèle détaillé de la paire (L, 9) (la mécanique de la projection), et l'AFD quotient

G = (Y,T,V,y0,Ym) (4.2)

est un modèle de M := 9(L) Ç T* où L := L(G t s ). Aussi, puisque G est calculé à


partir de G à l'aide de l'algorithme de Wong en respectant la règle de l'équation C.5, on
obtient que 0 : L —• M est une projection causale dotée de la propriété d'observateur (voir
la section 2.3.3) et de la coïncidence du contrôle (voir la section B.3). En supposant alors
que le sous-système G t s dispose a priori de la technologie de contrôle E = E r Ù E„ (la
technologie de contrôle standard), on obtient que l'abstraction G est aussi munie d'une
technologie de contrôle standard T = Tr Û Tu.
On peut d'ores et déjà remarquer qu'en posant G/„ := G t s et G/„ := G on établit
le contexte du contrôle hiérarchique (voir la section 2.3) dans les conditions décrites en
annexe C. On dispose donc de la consistance hiérarchique restreinte entre le sous-système
G t s et son abstraction G et, plus généralement, des résultats sur la synthèse non blo-
quante de l'annexe A et des résultats de l'annexe C sur la composition synchrone et la
réabstraction d'observateurs. On peut donc considérer que dans la paire C = (G, G),
le modèle de la projection G est construit autour de Y implémentation d'un sous-système
(G t s ) dont l'abstraction G représente une interface. En supposant un mécanisme d'instan-
ciation adéquat comme celui proposé en section [Link], on peut former une ou plusieurs
instances de C = (G, G) qui est alors considéré comme un modèle générique pour la
construction d'instances. En utilisant la notation de la section [Link], toute instance C
de C = (G, G), définit deux structures de transition C.G et C.G respectivement iso-
morphes à G et G aux étiquettes d'objets formels près (ensembles, fonctions de transition,
étiquettes d'événements et d'états). Ainsi, dans le contexte du contrôle hiérarchique on peut
poser Gio := C'.G ts et G ^ := C.G avec les mêmes garanties formelles que pour la paire
(Gts, G) du modèle générique.

173
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

4.1 Modélisation de sous-système


On peut légitimement se poser la question de savoir s'il suffit de spécifier le modèle
de chacune des deux structures de transition d'une paire C = (G, G) pour spécifier
adéquatement une composante réutilisable. Dans ce qui précède on voit apparaître l'élé-
ment G t s , la structure de transition du modèle de la paire (L,9), la projection. Or G t s
est un sous-système à part entière ayant éventuellement fait l'objet d'une synthèse (voir la
section [Link]). Autrement dit G t s représente la solution d'un sous-problème de contrôle.
Une spécification de composante réutilisable C = (G, G) doit donc nécessairement docu-
menter la solution du sous-problème de contrôle dont G t s exprime la solution.

4.1.1 Éléments d'un sous-système


La figure 4.1 illustre la structure générale d'un sous-système conçu à partir de com-
posantes réutilisables du type C = (G, G) comme proposé précédemment. Un tel sous-
système est généralement composé d'une ou plusieurs instances de composantes réutili-
sables auxquelles on ajoute éventuellement des éléments de mémoire pour la spécification
des requis du contrôle.

[Link] Modèle général d'un sous-système

Le modèle de la figure 4.1 (A) est un STS sans structure verticale (Sous-SystèmeSTS).
Il n'est formé que d'un seul super-état ET à la racine (x 0 ), dénoté «Sous-Système», dont
chaque cellule est un super-état OU superposé à un AFD considéré comme un holon dont
la structure externe est vide. Chaque cellule est donc un sous-STS en mode fondamental
(voir la section 3.2). Le holon superposé à un super-état OU représentant un élément de
mémoire 113 (j G {1 A-}) est tout simplement l'AFD correspondant à cet élément tel
que défini dans Y environnement du sous-système et dénoté H// . Le holon superposé à un
super-état OU représentant une instance de composante réutilisable est une instance du
modèle abstrait Go, (i G {1,.... n}) de ce type de composante réutilisable tel que défini
dans Y environnement du sous-système. Le type d'une instance de composante réutilisable
(\ provient bien sûr d'un modèle générique C Q = ( G Q , G a ) pour a G A un ensemble

174
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

A) Sous-SystèmeSTS = (ST, U, E, A, STU, ST„,

Sous-Système

c\ Ih ih C2 //* cn

Hc> ~ Gc, = ([Link].m)


H"' ~ H„, = (Z,,,, WWj, 0/,, *«, o, Zi/„,

Sous-Système (x0)

Ci x //j x H2 x C2 x ... x / / j , x C„

W:=U, 6( i „) W( '' U U JE (i *>«"'

B) Sous-SyStèmeAFD := G G || Hj || H 2 || G 0 || ... || H , || Gf;„ = (Q, E, <5, qQ, Qm)

</eQÇVc',x Z/,, x ZWj x yf-2 x ... x z,,t x rr„

FIGURE 4.1 - Modèle d'un sous-système

175
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

d'index (par exemple une librairie de composantes réutilisables).


Le STS de la figure 4.1 (A) est bien formé et déterministe par construction (voir [39]
à la section 2.3). Les instances de composantes réutilisables C',, / G {1, ...,n}, sont dis-
jointes deux à deux, elles ont donc toutes des espaces d'états distincts et des alphabets
d'événements disjoints des autres instances. L'ensemble des holons HCt définit ainsi le
comportement libre du sous-système. L'ensemble des mémoires, Il3, j G {1,..., k}, est
appelé à supporter la description du problème de contrôle, c'est-à-dire la spécification du
contrôle. Sans perte de généralité on peut supposer que les éléments de mémoire sont dé-
finis avec des espaces d'états disjoints de tous les autres holons du modèle. La mémoire
n'a pas de dynamique propre donc Wn3 Ç E pour j G {1,..., k} où E := LU{i.. . . n } ^ . '
c'est-à-dire que l'activité de l'ensemble des mémoires est synchronisée sur la dynamique
du comportement libre du sous-système. Le modèle respecte donc la condition de couplage
local (voir la section [Link]).
D'après la définition 2.9 de [39], n'importe quelle sous-arborescence d'états STn < ST
peut être décrite complètement par ce qu'il est convenu d'appeler l'ensemble des états actifs
du sous-système :
V8n,:=\JVaTa(z)
z€Z

où Z est l'ensemble des super-états OU comportant des états actifs sur STa. Dans un STS
sans structure verticale (un sous-système plat) comme celui de la figure 4.1, on vérifie aisé-
ment que si Vsr„(C,) fi 0 alors Vsr„(C,) C l e , pour i G {1....,n}, une inclusion stricte.
En effet d'après la définition 2.9 de [39], pour i fixé, si le sous-arbre STC> figure intégrale-
ment dans STn, alors son ensemble d'états actifs est vide, Vsr„ (Ci) = 0. On a une situation
similaire concernant les mémoires 113 pour ; G {1 k). Ainsi toute arborescence d'état
élémentaire b G B (ST) (une configuration du sous-système) peut être exprimée par :

Vb:= I (J Vb(C,)\ U ( (J Vb(H3)) -


\«e{i .n} / V e { i , .,fc> /

Or d'après la définition de b G B (ST) (voir la définition 2.12 dans [39]), dans un sous-
système tel que celui de la figure 4.1 (un sous-système plat), les ensembles VUC,) ne

176
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

contiennent qu'un et un seul état actif et il en va de même pour les ensembles Vb{H3).
Alors il existe une bijection // : B (ST) —> Q, pour ST et Q tels q'illustrés respectivement
en (A) et (B) de la figure 4.1. Ainsi, pour b G B (ST) et a G E, les fonctions A et 6 sont
liées par
S(h(b),a)\ <=> A(b,a)fi<&

où 0 dénote l'arborescence d'état vide, et alors

à(h(b),a) = /t(A(6.a)).

Autrement dit, la fonction A est aussi juste par construction (voir à la section [Link] et
[39] à la section 2.3.1). Un STS défini comme à la figure 4.1 (A) est ainsi un modèle
parfaitement équivalent à celui d'un sous-système obtenu par composition synchrone tel
qu'illustré en figure 4.1 (B) où

Q:= [J h ^ ) -
6eB(ST)

Cette structure de sous-système (le sous-système plat) est d'ailleurs utilisée dans deux
examples de problèmes de contrôle provenant de [39] à la section 4.5, le problème Small
Factory et le problème Transfer Line, illustrés respectivement par les figures 4.26 et 4.31
de [39].
L'expression de q G Q sous forme d'un /-uplet (/ := n + k) constitue donc une repré-
sentation adéquate de l'élément b G B (ST) qui lui correspond dans ST puisque ce /-uplet
dénote l'ensemble des états actifs de b à une différence de notation près. 11 est alors utile
de définir le /-uplet
rSotn-Swteme ~ (VC\, •••• Vcn, Vfli ,•••,''//*.) (4-3)

comme vecteur d'état pour le sous-système, où vc, (i G {1,..., n}) et vu, (j G {1...., k})
sont les variables d'état qui correspondent aux éléments qui composent le sous-système
(instances de composantes réutilisables et éléments de mémoire).
On constate que l'ordre des variables d'état de l'équation 4.3 diffère de celui donné
pour le STS Sous-SystèmeSTS de la figure 4.1 (A). La définition de vsom-système a pour but

177
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

d'assigner un ordre précis à Penumération des variables d'état dans le /-uplet de façon à
abréger la notation, il n'est pas nécessaire de respecter l'ordre donné par le STS qui lui est
pertinent à la synthèse. Une configuration du vecteur d'état du sous-système (vsous-sysième)
correspond ainsi à une configuration du STS Sous-SystèmeSTS à l'ordre des variables près.
Bien sûr l'ordre des variables dans Sous-SystèmeSTS correspond à la synthèse et doit être
spécifié comme l'illustre la figure 4.1 (A).

[Link] Prédicats, spécification de contrôle et résultat de synthèse

Le sous-système doit habituellement être contraint, par spécification et synthèse, à un


comportement contrôlé. La figure 4.2 illustre les éléments de ce problème de contrôle. On
y détecte deux éléments importants : la spécification de contrôle dénotée S, et le résultat
de synthèse, une loi de contrôle / de type SFBC.
D'après Ma et Wonham [39] (section 4.1), la spécification d'un problème de contrôle
prend la forme d'une paire formée d'un STS et d'un ensemble S Ç ST(ST) de sous-
arborescences d'états illégales pour le sous-système. Les configurations interdites du sous-
système (celles que le sous-système doit éviter par contrôle) sont alors données par

Bs:= \JB(S)
ses

et le prédicat de spécification,

Q{ S G
Ps := \ / -)= V ^
S€S 6 6 Bs

une fonction indicatrice de Bs, est obtenu par application de la fonction 0 (voir [39] section
4.2.1 et la section 2.7.3). Alors b \= Ps <==> b G Bs pour b G B (ST). Naturellement il
est possible de former
Qs •= U W)

et alors
q\=PS ^> h~\q) G Bs « = • qGQs

178
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

Sous-SystèmeSTS - ^ ^
Synthèse—»- DSFBC /
Spécification 5 -"""^

/ <=> { / a k e E J

Sous-Système^ = (ST, H, E, A / , P[, Pm)

Sous-Système^FD = (Qt', E, 51', q0, Qsm)

FIGURE 4.2 - Modèle d'un sous-système (problème de contrôle)

pour q G Q.
Tel que décrit dans [39] à la section 4.2.1, l'usage de la fonction © pour définir Ps ré-
sulte en une formule logique définissant une fonction indicatrice sur l'ensemble des valeurs
que peut prendre la variable vsow,-sy,teme- Les termes de base de ces formules logiques ont la
forme ca •= q où vn est une variable d'état telle que celles définies dans l'équation 4.3 et
q est le symbole dénotant un état que cette variable d'état peu prendre. Par exemple, dans
l'équation 4.3, le domaine de la variable va, est YCl pour ? G {1...., n}.
Cette situation est illustrée en figure 4.3, qui reprend le problème de la conception d'une
grue exposé en section 3.2.2. La grue (le sous-système) est composée d'une flèche et d'une
pince en fonctionnement parallèle concurrent. Sa spécification de contrôle est composée
de quatre sous-arborescences d'états ST\ à ST 4 . On obtient le prédicat correspondant à la
spécification Ps par disjonction des prédicats correspondant à chacune des quatres sous-
arborescence d'états de la spécification 0(87^), ? G {1. ...,4}. Cette façon de procéder
est conforme à ce qui est suggéré dans [39] à la section 4.1. Alors la formule logique
Ps(vSom-syi,eme) exprime le prédicat de spécification Ps, c'est-à-dire PsU'som-s^teme) = Ps-
L'introduction des variables d'état de l'équation 4.3 permet ainsi une expression de la
spécification directement sous forme d'un ensemble de prédicats, plus compacte que Penu-
mération d'un ensemble de sous-arborescences d'états. Ces prédicats n'ont cependant pas
une forme arbitraire, chacun doit effectivement représenter une sous-arborescence d'états
ST, de la spécification S, donc une version du sous-prédicat 0(ST t ). Puisque le STS du

179
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

5 = {ST 1 ,ST 2 ,ST3,ST 4 }

ST, "Grue ST
2 Grae

x x
Flèche Pince Flèche Pmce

1 U 1 U 3 0 3

Psr, =(-)(ST,) = Psr, = B(ST 2 ) =


VFIeche € {1, 3} A VPmce € {1, 3} VFIeche = 0 A VPmce - 3

STj 'Grue S7
4 Grue
x
Flèche Pince
Flèche Pince

2 1

Psr, = B(ST3) = Psr4 = B(ST4) =


VUeche = 2 A Vp,„ce = 1 VFIeche = 3 A Vp„,

Ps^Py/.VP^VPs^VP,,,,

FIGURE 4.3 - Spécification de contrôle

180
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

sous-système n'a pas de structure verticale, chaque prédicat est une forme conjonctive dont
les termes sont des disjonctions exprimant l'ensemble des états actifs d'une composante.
Par exemple, dans la figure 4.3, le terme vFièche G {1.3} de Psn correspond à la branche
GrueFlcchc de la sous-arborescence d'états STi et dénote les états actifs de la composante
Flèche dans STi. Bien sûr, ( > • » G {1.3} = Vf^cf,e = 1 V vnèche = 3, il s'agit donc d'une
forme du terme de base obtenu par l'application de la fonction 0 . Dans l'expression du
prédicat de spécification Ps par une formule logique équivalente Ps(i'sous-sysième), il n'est
pas nécessaire que l'ordre des termes suive l'ordre des composantes dans la définition du
STS (ordre de synthèse) puisque la conjonction logique est commutative. Ceci est un effet
de l'absence de structure verticale dans le STS et de l'usage explicite de variables d'état.
Une fois le problème de contrôle spécifié, on le résout par synthèse. L'application des
procédures de synthèse de [39] produit une loi de contrôle sous forme d'une SFBC / .
Plus spécifiquement ces procédures de synthèse produisent un ensemble de prédicats de
synthèse {fa \ a G Ef.} décrivant une SFBC / (voir la section 2.5) sous forme de BDD
(voir la section 2.6 et la section 2.7.3). De cet ensemble de BDD on peut recouvrer un
ensemble de formules logiques {fa(vsous-Sysième) \°~ 6 E c }, des fonctions indicatrices sur
vsom-système, correspondant à l'ensemble des prédicats de synthèse. Une description de ce
dernier ensemble constitue une spécification adéquate de la loi de contrôle obtenue. Ainsi
pour a G Ec arbitraire, fa = fa(vsoUs-syitème) = f!, c'est-à-dire que {U(vs»Ui-système) \<r G
E r } exprime adéquatement deux lois de contrôle ; l'une applicable à Sous-SystèmeSTS (une
SFBC / ) et l'autre applicable à Sous-SystèmeAFD (une SFBC / ' ) telles que représentées en
figure 4.1. On a alors la situation illustrée en figure 4.2, c'est-à-dire que Sous-Système£TS,
le sous-système sous le contrôle de / peut être exprimé sous forme d'un AFD soigné

Sous-Système{ FD = ( Q ' \ E, 5*'. q0, Q£) .

une description exhaustive du sous-système sous le contrôle de / ' . L'abus de notation


Sous-Système{FD = Sous-SystèmeAFD est ainsi justifiée, puisque / et / ' bénéficient d'une
expression commune.
L'élaboration d'un modèle exhaustif de Sous-Système{FD n'est en général pas néces-
saire pour un sous-système à moins que ce sous-système ne soit la base d'une composante

181
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

réutilisable C = (G. G), car alors

G t s := Sous-Système£FD

forme la structure de transition du modèle de la projection (la machine de Mealy G ) tel


qu'illustré à la figure 4.4. Cette manoeuvre peut bien sûr être coûteuse car elle équivaut
à calculer le prédicat d'accessibilité fî(Sous-SystèmeSTS, -1P5), ce que les procédures de
synthèse sur les STS évitent. Mais cette manoeuvre est nécessaire si l'on entend encapsuler
le sous-système Grue pour former une composante réutilisable car il faut alors formuler le
modèle de l'abstraction G et donc expliciter G. C'est là une des limitations de cette forme
de composantes réutilisables.
Dans un modèle exhaustif tel que celui de la Grue illustrée en figure 4.4, la loi de
contrôle / est implicite dans G t s car alors Q(EligGts (o)) = fa pour a G E c . Il n'est donc
pas nécessaire d'expliciter l'ensemble des formules logiques correspondant aux prédicats
de synthèse fa si le modèle exhaustif G t s est suffisamment clair.
Cependant, tel que suggéré dans [39] (section 4.5.1), il est toujours possible d'obtenir
un ensemble de prédicats simplifiés en considérant la restriction des prédicats de synthèse
fa aux configurations où l'événement a G E c est éligible dans le comportement de la
composante qui le génère. Par exemple dans la figure 4.4 on obtient le prédicat

9riShi •= fright\[Link]=o = VP"M G


{°> ^1

en limitant le domaine du prédicat frtghl à vpièciw = 0. Alors yr\ght, un cofacteur fonctionnel


de fright (voir la section 2.6), est représenté par une formule logique sur la seule variable
vpince- Cette manoeuvre, possible avec des BDD (voir section 4.5 dans [39]), représente
une factorisation du prédicat original. Le prédicat résultant (ou plutôt sa formule logique)
peut alors être considéré comme une condition de garde sur la transition correspondante
de l'AFD Flèche. L'implémentation de la loi de contrôle / pour le sous-système Grue
correspond alors à l'imposition de l'ensemble des conditions de garde nn de la figure 4.4
sur les composantes de la figure 4.3.

182
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

i t s = Grue^FD = G r u e ^

<7 = (<7l>72) G Qcrue Q Q Flèche X Qpmce -*- VCme = (vFlèche, VPln

VFIeche = 0 A VPmce € {0, 2} = frlgh, tfngto •= Jngh'\iFlechM) ~ Vp


>"ce €
^0' 2^
Vplèche = 2 A VPmce — 0 = fleft 9left := fl'ft\vFllch,=2 - V
P'"ce = 0
VFIeche = 2 A VPmce — 2 = fr/s S'rfe := frls\iFUch€=.2 = VPmce — 2
VFIeche = 0 A l>,„Cé, = 0 = /grafc

FIGURE 4.4 - Résultat de synthèse pour le sous-système Grue

183
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

[Link] Éléments de la spécification d'un sous-système

Les éléments de la spécification d'un sous-système sont donc les suivants :


1. une spécification de la structure du sous-système ;
2. une spécification de contrôle pour le sous-système ;
3. une loi de contrôle résultant de la synthèse.
La discussion qui précède établit que la spécification de contrôle peut être décrite adé-
quatement par un ensemble de formules logiques Ps(vsous-Système) décrivant des prédicats
de spécification comme à la figure 4.3. Le résultat de synthèse peut alors aussi être donné
sous forme d'un ensemble de formules logiques f„(us<>us-sysième) P o u r a
G E(. décrivant les
prédicats de synthèse correspondant. Les éléments 2 et 3 sont donc adéquatement couverts.
Ces deux descriptions reposent cependant sur une définition du vecteur d'état du sous-
système donné par l'équation 4.3 ; un élément de la structure du sous-système. Il faut donc
développer une notation adéquate pour décrire la structure du sous-système (1).
La description d'un sous-système doit donner un inventaire détaillé des ressources uti-
lisées par le sous-système et en donner la structure. La figure 4.1 donne déjà un aperçu
de la structure générale d'un sous-système. Un sous-système est modélisé comme un STS
sans structure verticale où l'ensemble des holons est assimilé à un ensemble d'AFD gé-
nérateurs. Il y a bien sûr une légère différence entre les notations utilisées pour décrire
des AFD et des holons, mais il devrait être clair qu'un AFD décrit adéquatement un holon
dont la structure externe est vide (voir la section [Link]). Un diagramme comme celui de
la figure 4.1 (A) peut être utile pour décrire la structure du vecteur d'état du sous-système
et supporter la spécification de contrôle ainsi que la description d'un résultat de synthèse.
Mais il lui manque trop de détails concernant l'instanciation de composantes réutilisables
et la description des ressources nécessaires pour supporter les éléments de mémoire (entre
autres). Il faut aussi considérer que certains sous-systèmes doivent être élaborés de façon ad
hoc (voir le modèle du vérin à commande monostable de la figure 3.1 à la section [Link]).
Dans ce dernier cas le modèle de la figure 4.1 peut se révéler inapplicable.
Le développement d'une notation appropriée requiert un usage abondant d'illustra-
tions, aussi est-il préférable de différer ce traitement à la section 4.2 qui traite en détail
d'exemples de modélisation de composantes réutilisables.

184
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

4.1.2 Dynamique d'un sous-système


À ce stade il n'est plus possible de différer le traitement du problème de support à la
génération de code.
La spécification d'une composante abstraite, et par extension celle du sous-système
qu'elle représente, peut requérir l'adjonction d'heuristiques de génération de code sous
forme de fragments de code. L'exemple le plus évident est celui de l'abstraction d'un dis-
positif physique tel que le modèle d'un vérin à commande monostable de la figure 3.1 à la
section [Link]. Il s'agit d'une composante élémentaire puisqu'elle est basée sur un sous-
système spécifié de façon ad hoc à partir du matériel. Sa dynamique repose, entre autres
choses, sur l'activité de capteurs qui génèrent physiquement des événements incontrôlables
devant être explicitement détectés. Cette portion de la dynamique du sous-système ainsi
que sa loi de contrôle, toutes deux obtenues de façon ad hoc dans le cas d'une compo-
sante élémentaire, doivent être intégrées à la dynamique du système par le générateur de
code. Or en général, le générateur de code ne peut pas déduire le code nécessaire. Il faut
donc que le concepteur spécifie ce code dans la structure du sous-système de façon à ce
que le générateur de code puisse l'intégrer à la dynamique d'exécution du système global
selon un schéma prédéfini. Il s'agit de code d'intégration, mieux connu par sa terminologie
anglophone de glue code.
Bien sûr dans le cas d'un sous-système obtenu par assemblage de composantes abs-
traites (cas des composantes mixtes), par exemple la Grue de la figure 4.3, la situation est
plus simple. La dynamique du sous-système est alors implicite au modèle de la solution
(voir figure 4.4). Le code correspondant peut ainsi être déduit par le générateur de code à
l'aide du modèle de la solution du problème de contrôle et d'un schéma adéquat de la dy-
namique abstraite d'exécution d'un sous-système. Cependant, même dans ce cas, l'usage
de code d'intégration peut s'avérer utile sinon nécessaire. Il est donc indispensable de pro-
curer au concepteur une façon de spécifier du code d'intégration dans la structure même
d'un sous-système.
La spécification d'un sous-système (qu'il soit associé ou non à une composante abs-
traite) n'est qu'une perspective partielle du système global. Lors de la spécification d'un
sous-système le concepteur ne peut donc avoir recours qu'à des fragments de code pour

185
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

spécifier un aspect particulier de la dynamique au sein de ce sous-système, puisque la


structure finale de l'application est alors inconnue. De plus, ces fragments de code doivent
être insérés à des endroits spécifiques du code qui implémente la dynamique implicite du
sous-système (la solution d'un problème de contrôle : un AFD). Pour pouvoir procurer
un tel mécanisme de spécification il faut définir clairement la dynamique abstraite d'un
sous-système et identifier dans cette dernière un ensemble de sites où une intervention est
possible.
La dynamique abstraite d'un sous-système peut être décrite par un ensemble de fonc-
tions abstraites (des algorithmes en pseudo-code) ; un ensemble de symboles. Chacun de
ces symboles constitue alors un site d'intervention possible où on peut spécifier :
1. le remplacement intégral de la définition du symbole par un fragment de code (défi-
nition ou redéfinition du symbole) ;
2. l'insertion d'un fragment de code à un endroit précis de la définition du symbole.
L'ensemble des symboles définissant la dynamique abstraite du sous-système constitue
alors un ensemble de schémas pour la génération de code procurant la flexibilité néces-
saire pour y introduire des heuristiques pour la génération du code. 11 s'agit bel et bien
d'heuristiques en ce sens que le code ainsi introduit s'inscrit à l'extérieur du cadre formel
de la théorie et peut très bien se révéler inadéquat. Le concepteur est totalement responsable
de vérifier ou, du moins, de valider le fonctionnement de ce code.

[Link] Hypothèses et restrictions

En conception de systèmes par composantes, la conception d'un système se fait par


assemblage de pièces détachées, notamment des sous-systèmes résultant de l'instanciation
de composantes réutilisables. Ces pièces détachées (les composantes) n'ont qu'une portée
limitée au sein de l'application de contrôle et présument en général un certain protocole
quant à leur utilisation. La conception de systèmes par composantes présuppose donc une
infrastructure prédéterminée procurée par l'architecture de l'application de contrôle. Pour
décrire la dynamique abstraite des composantes au sein du système il faut donc poser cer-
taines hypothèses quant à l'architecture de l'application de contrôle.
L'analyse de la section 3.1.2 juge raisonnable la restriction à des applications de contrôle

186
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

pour des usines modulaires. La section 3.1.3 propose d'envisager l'implémentation de ces
applications de contrôle sur un PLC (un automate programmable). Ce genre d'élément
de contrôle (ici un PLC) utilise une rétroaction cyclique selon le schéma général en trois
phases d'écrit en section 3.1.3. Le calcul de la rétroaction (c'est-à-dire l'évaluation de la
commande) constitue l'une des phases du cycle. La fonction de rétroaction est donc évaluée
systématiquement à chaque cycle de la rétroaction. Au sens de Sifakis [25] il s'agit d'une
architecture (ou d'un modèle d'exécution) d'application synchrone.
Dans un modèle d'exécution synchrone l'application de contrôle fonctionne par cycle ;
il s'agit d'un répartiteur cyclique (de l'anglais cyclic executive, voir [49]) souvent initié à
interval fixe. Dans le cas des usines modulaires, un nouveau cycle est initié sitôt le précé-
dent cycle terminé. À chaque cycle tous les éléments du système sont activés dans un ordre
prédéterminé et se voient accorder une tranche de temps pour leurs calculs.
On peut donc présumer que l'application de contrôle générée pour le genre de com-
posantes préconisées ici active périodiquement chaque sous-système (instance de compo-
santes réutilisables) par un mécanisme quelconque (par exemple un appel de procédure).
La fréquence d'appel peut varier, mais on présume que le temps de calcul requis pour la ré-
troaction est beaucoup plus court que le temps de réaction moyen des dispositifs de l'usine
modulaire. À chaque cycle, avant le calcul de la rétroaction, l'application met à jour une
image mémoire de l'état de l'usine (capteurs, actionneurs et registres d'entrée de périphé-
riques) dont les sous-systèmes peuvent ensuite se servir pour leurs calculs.

[Link] Description de la dynamique abstraite

Pour plus de généralité il est préférable de décrire la dynamique abstraite des sous-
système dans le contexte de composantes réutilisables, c'est-à-dire lorsqu'ils sont associés
à une projection (l'interface de la composante réutilisable). Le modèle de la dynamique
abstraite d'un sous-système sans projection peut ensuite être obtenu par simplification de
la dynamique abstraite générale.
On présume que Y environnement d'exécution d'un sous-système contient implicitement
quatre fonctions abstraites pour chaque événement cr G E : fimc„(), Pa(), Project„() et
lala(). L'environnement d'exécution d'un sous-système contient aussi une fonction abs-
traite pour chaque événement r G T de sa projection associée :funcT().

187
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

L'algorithme 4.1 illustre le schéma de définition pour la fonction///«cw() ; elle retourne


un résultat booléen. La fonction Pa() correspond au prédicat de synthèse et retourne un ré-
sultat booléen. L'algorithme 4.2 illustre le schéma de définition pour la fonction Projecta()
qui retourne aussi un résultat booléen. La fonction lala() est en fait une procédure et ne
retourne aucun résultat. La notation utilisée ici est assez libérale et permet entre autres
d'appeler une fonction sans en utiliser le résultat dans une expression. La fonction funcT()
retourne un résultat booléen. L'ensemble de ces fonctions définissent complètement la dy-
namique abstraite. Une brève explication s'impose.
Premièrement, il est présumé qu'à l'exécution, la génération d'un événement a G E
dans un sous-système provoque l'exécution de la fonctionfitnca() qui lui correspond. Alors
funca() vérifie si a est éligible dans le sous-système local étant donné son état courant
(appel à Pa())- Si a n'est pas éligible, le traitement s'arrête etfunca() retourne le résultat
false, provoquant l'arrêt de l'activité liée à cet événement. Si au contraire a est éligible,
alors a doit d'abord être propagé au client de la composante à travers son interface (appel
à Projecta()).
Il est important de noter que Pa() := f^vsom-système), le prédicat de synthèse, et que
dans la description du comportement contrôlé du sous-système (G t s ) a n'est éligible que
si et seulement si fa(usoui-système) est vérifié pour l'état courant du sous-système. Ainsi, si
a est incontrôlable (a G E„), a est toujours éligible dans le sous-système puisque G t s
exprime un résultat de synthèse.
Deuxièmement, Projecta() implémente la dynamique de la projection qui est définie
par la machine de Mealy G associée à la composante. Elle vérifie si oui ou non une

Algorithme 4.1 : funca()

1 if P„() then /* EligGts(cr) : a éligible dans le sous-système local? */


2 if Project^ {) then /* a permis par le système global ? */
3 lalcr{) I* Exécuter la liste des actions locales pour une occurrence de a ; */
4 return true
5 end
6 end
7 return false

188
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

Algorithme 4.2: Projecta()

I* q G Q désigne l'état courant du sous-système */


1 if (3(q, a) G Q x E) : X(q, a) = r G T then
2 return juncT()
3 else
4 return true
5 end

transition sur a effectuée à partir de l'état courant du sous-système local est projetée.
Lorsque l'événement n'est pas projeté, c'est-à-dire \(q, a) — c (q G Q dénotant l'état
courant du sous-système local), Projecta() retourne simplement le résultat true. Autrement
(\(q, a) = T G T dans G), Project^) retourne le résultat de l'invocation de la fonction
funcT().
11 est important de noter que les fonctions funcT() (T G T) correspondant à l'interface
d'une composante réutilisable ne sont définies qu'à l'instanciation de cette composante
dans un autre sous-système : le sous-système client. Le concept est similaire à celui de mé-
thode abstraite d'un langage de classe à la différence que Y instanciation (et non l'héritage)
procure le mécanisme et le site de la définition. À la conception d'une composante réuti-
lisable les fonctions/ù«eT() sont déclarées implicitement dans l'environnement local mais
elles n'y sont pas définies. Le mécanisme d'instanciation est responsable de leur assigner
ultérieurement une définition dans un sous-système client. Cette définition prend la forme
d'une association (liaison statique puisqu'il n'y a pas d'héritage) avec une fonction/wnc^Q
définie dans l'environnement d'un sous-système client. De cette façon on procure un lien
(d'appel de fonction) à partir de l'environnement local d'une instance de composante réuti-
lisable vers l'environnement de son sous-système client. Tout appel d'une fonction funcT()
dans l'environnement local d'une composante réutilisable est implicitement redirigé vers
une fonctionfunca() du sous-système qui instancie cette composante.
Finalement, lorsque Projecta() retourne le résultat true, la procédure lala() est appelée.
Cette procédure implémente la liste des actions locales requises pour mettre à jour l'état
courant du sous-système local. Pour un sous-système comme celui illustré en figure 4.1
ceci comprend la mise à jour des variables du vecteur d'état (équation 4.3).

189
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

11 devrait être clair que dans la dynamique d'un sous-système sans projection, la fonc-
tion Projecta() se comporte comme une tautologie. On peut donc l'éliminer et corriger
funca() en conséquence c'est-à-dire éliminer la conditionnelle sur Projecta() complète-
ment.
Similairement, lorsque a G E„, le prédicat Pa() est une tautologie. On ne peut cepen-
dant pas éliminer l'appel à Projecta() dans func0() puisqu'il faut propager l'occurrence de
l'événement dans l'abstraction, s'il y a projection, de sorte à mettre à jour l'état du sys-
tème globalement. Mais puisque tout événement projeté est alors sûrement incontrôlable,
à cause des règles suivies pour l'abstraction de composantes (voir section [Link]), l'appel
à Projecta{) ne peut retourner que le résultat true et la conditionnelle devient inutile. La
fonctionfunca() prend ainsi la forme simplifiée de l'algorithme 4.3.
On dispose donc maintenant de l'équipement nécessaire pour introduire des heuris-
tiques de génération de code dans la spécification de sous-systèmes (et donc de compo-
santes réutilisables), notamment l'ensemble des symboles : funca(), P„(), Projecta() et
lal„() définis implicitement pour chaque événement du sous-système. Chacun de ces sym-
boles peut être soit redéfini intégralement ou par insertion d'un fragment de code à l'aide
d'une notation appropriée.
Finalement, pour lier ces heuristiques à l'architecture de l'application de contrôle, on
introduit une dernière fonction abstraite, cycle(), initialement vide, que le concepteur peut
utiliser pour activer les autres éléments de la dynamique abstraite (les autres fonctions
abstraites). En particulier, pour les composantes élémentaires, le concepteur est respon-
sable d'introduire dans cette fonction le code nécessaire pour activer les fonctions func^),
puisque le sous-système est alors spécifié de façon ad hoc.

Algorithme 43:funca() sur événements incontrôlables

1 Projecta() /* projeter l'événement s'il y a lieu ; */


2 lal„() I* Exécuter la liste des actions locales pour une occurrence de a. *l
3 return true

190
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

4.2 Modélisation de composantes


On peut maintenant procéder au développement d'une notation convenable pour éven-
tuellement spécifier une bibliothèque de composantes réutilisables et illustrer notre étude de
cas. La notation développée dans ce qui suit est adaptée aux besoins de la présente thèse et
vise à réduire l'encombrement des figures. Les limitations imposées ici n'entraînent pas de
perte de généralité. On peut cependant faire beaucoup mieux si l'on vise l'implémentation
d'une bonne interface usager graphique par exemple.
Une composante réutilisable C — (G, G) telle que proposée s'articule nécessairement
autour du modèle exhaustif de la solution à un problème de contrôle (le sous-système G t s ),
sur lequel on greffe le modèle d'une interface ; G. La spécification d'une composante réuti-
lisable contient donc cinq éléments ; la description du problème de contrôle :
1. une spécification de la structure d'un sous-système ;
2. une spécification de contrôle pour le sous-système ;
3. une loi de contrôle résultant de la synthèse ;
et une description de la projection (l'interface) :
4. une représentation de G ;
5. une représentation de G.
On distingue deux types de composantes réutilisables :
1. les composantes dites élémentaires, qui constituent une abstraction initiale d'un dis-
positif physique, et dont le problème de contrôle doit être spécifié et résolu de façon
ad hoc ;
2. les composantes dites mixtes basées sur des problèmes de contrôle formulés par as-
semblage d'instances d'autres composantes réutilisables et résolus de façon formelle
avec les procédures de SCT.

4.2.1 Règles et conventions


Lors de l'élaboration du modèle d'une composante, les ressources physiques telles que
capteurs, actionneurs et éléments de mémoire ne sont pas assignées a priori. La défini-
tion de ces éléments dans l'environnement local n'est donc pas finale et joue le même rôle

191
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

qu'une déclaration de variables dans un langage de programmation. Une notation similaire


à celle d'un langage de programmation peut être utilisée au détriment de l'espace requis
dans les figures. Puisque cette étude vise la production de code pour des automates pro-
grammables (PLC), que le nombre de types d'éléments dans cet environnement est limité
et que l'illustration au moyen defiguresest une nécessité, l'usage d'une notation par préfixe
est, ici, préférable à une notation plus extensive.

[Link] Variables et type de données

Pour l'usage de types de données dans la spécification d'une composante, certaines


conventions sont utiles. L'ensemble des préfixes suivant dénote des types de données :
1. le préfixe «X» dénote un capteur binaire ;
2. le préfixe «Y» dénote un actionneur binaire ;
3. le préfixe «M» dénote un élément de mémoire booléen ;
4. les préfixes «XW» et «XD» dénotent des registres d'entrée de périphériques de types
respectifs entier (en complément à deux) et réel ;
5. les préfixes «YW» et «YD» dénotent des registres de sortie de périphériques de types
respectifs entier (en complément à deux) et réel ;
6. les préfixes «MB», «MW» et «MD» dénotent des registres de mémoire interne de
types respectifs octet, entier et réel ;
7. le préfixe «T» dénote une minuterie ;
8. le préfixe «SR» dénote un registre à décalage.
En général, pour désigner des variables de ces types, on utilise simplement des numéros
d'éléments préfixés sans recourir à une déclaration préalable, par exemple :
- des capteurs : X, XO, XI ;
- des actionneurs : Y, YO, Y1 ;
- le registre de lecture associé à un micromètre : XW2 ;
et ainsi de suite. L'usage de variables typées n'est pas exclu, entre autres pour rendre un
modèle plus expressif, pourvu que ces variables fassent l'objet d'une déclaration préalable
dans une section appropriée, par exemple :
192
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

VAR
VLD, OK : M; /* indicateurs booléens */
Meml : 0..5; /* variable d'état
d'un élément de mémoire */
ENDVAR

À ce titre l'usage de types énumérés (implicitement de type entier), comme pour la variable
Meml précédemment, procure plus de clarté.
Par convention, les événements de fronts montant et descendant sur des types booléens
sont prédéfinis par exemple, pour un capteur XO :
- îXO désigne le front montant ;
- 1X0 désigne le front descendant.
La concaténation d'événements peut aussi être déclarée, par exemple right = IY1-TY0
définit une macro commande à partir de deux événements contrôlables ; on peut aussi sim-
plement l'utiliser explicitement dans un modèle. De la même façon diverses constantes
peuvent être déclarées, par exemple FQ = XO A Y1 pour une formule logique fréquemment
utilisée.

[Link] Signatures d'instanciation

Certaines ressources telles que les capteurs, les actionneurs, les registres d'entrée et sor-
tie de périphériques ainsi que les minuteries sont représentées par des variables. On a par
exemple YO pour un capteur booléen et TO pour une minuterie. Avant la génération de code,
ces variables doivent être assignées à des ressources réelles de même type. Aussi, certaines
ressources requièrent des paramètres pour leur fonctionnement ; par exemple une minute-
rie requiert éventuellement un délai d'expiration. Ces éléments ne sont généralement pas
requis avant la phase finale de génération d'un système et il est encombrant d'avoir à les
spécifier a priori au moment de l'instanciation de composantes ou, pire encore, d'avoir à
les définir comme constantes dans un modèle. Pour procurer un mécanisme flexible permet-
tant au concepteur de spécifier ces paramètres a posteriori, la spécification de composantes
réutilisables admet la définition d'une signature d'instanciation. Par exemple la signature
J a c k l l l < Y 0 , X 0 , X l > signifie que la composante réutilisable J a c k l l l utilise un ac-

193
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

tionneur et deux capteurs. Cette signature agit comme une section de déclaration. Dans le
corps de la définition de J a c k l l l les variables YO, XO et XI sont déjà définies.
La signature d'instanciation n'est pas limitée aux types prédéfinis. Ainsi la signature
Micrometer<XWO, c o n s t l o L i m i t , hiLimit : MW> spécifie une plage de va-
leurs ( l o L i m i t et h i L i m i t , des constantes) pour la validité d'une lecture sur le registre
d'entrée de périphérique XWO. La particularité de la signature d'instanciation est d'accep-
ter une spécification partielle à l'instantiation. Ainsi une déclaration d'instance telle que
Boom : J a c k l l l au sein d'une définition de sous-système définit la variable Boom sans
assigner aucune de ses ressources. La déclaration Boom : J a c k l l l < Y O := Q3.4>,
aussi acceptable, assigne Pactionneur et diffère l'assignation des capteurs sans impact sur
la phase de modélisation.
La génération de code assigne la mémoire interne plus efficacement qu'une spéci-
fication explicite, par conséquent les éléments de mémoire n'apparaissent généralement
pas dans une signature d'instanciation. Une déclaration comme c o n s t l o L i m i t : MW
dans une signature d'instanciation ne définit que le type de la constante.

[Link] Types de données structurés

Deux types prédéfinis vus précédemment sont inusités : les minuteries (préfixe «T») et
les registres à décalage (préfixe «SR»). Ces deux type peuvent être considérés comme des
éléments de mémoire d'un PLC. Mais alors qu'une minuterie génère un événement (l'élé-
ment de mémoire est donc actif), un registre à décalage n'a pour sa part qu'une structure et
un comportement particulier. Les deux sont liés à une dynamique prédéterminée procurée
par des primitives du PLC et méritent une explication.
Les registres à décalage définissent des chaînes de bits sur lesquelles un PLC peut ap-
pliquer diverses primitives de décalage, donnant à l'ensemble un comportement stéréotypé
connu dans la plupart des langages de programmation. Il n'est pas possible cependant de
donner une représentation d'un registre à décalage par un AFD unique couvrant toutes ses
possibilités. U n'est pas possible non plus de lui attribuer un événement qui lui appartienne
en propre, c'est-à-dire que génère le registre à décalage, car en général l'opération de dé-
calage doit être synchronisée sur l'activité d'autres dispositifs. Par convention, dans notre
contexte, on utilise les registres à décalage comme tous les autres éléments de mémoire,

194
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

c'est-à-dire comme l'expression explicite de contraintes pour le contrôle. La seule diffé-


rence est que l'opération de décalage est utilisée pour modéliser certaines transitions et
dispose d'un support au niveau du PLC.
La figure 4.5 donne un exemple de modèle mémoire utilisant un registre à décalage.
Puisqu'il s'agit d'un modèle mémoire, l'événement shift est partagé dans l'environnement
local. On peut voir dans la figure que l'AFD n'est pas fermé sur l'événement shift de sorte
que si cet événement est incontrôlable, il faut inclure dans la spécification de contrôle des
contraintes assurant le comportement décrit par l'AFD.
Par convention, la déclaration d'un registre à décalage est toujours assortie d'une des-
cription de sa structure. Le registre à décalage de la figure 4.5 correspond à une déclaration
comme T b l : SR<M0, Ml, M2 , M3 > si on présume que l'élément de mémoire porte le
nom symbolique T b l . Cette façon de faire procure une structure pour le vecteur d'état
de l'AFD et permet l'expression de chaque état par une configuration de la chaîne de bits
comme dans la figure. Elle permet aussi l'expression de formules logiques plus simples
pour exprimer des espaces d'états de l'AFD. Par exemple, la formule MO remplace avanta-
geusement une formule plus complexe comme rTh/ G {0,1, 2, 3, 1, 5,6,7}.
Les minuteries sont des dispositifs internes (dans les PLC) faisant usage d'éléments de
mémoire : un compteur et un indicateur d'échéance de type booléen. Il existe une grande
variété de définitions de ces dispositifs implémentés par diverses primitives. Par convention
on peut se limiter à une seule forme ; la minuterie de délai à la montée illustrée de façon
schématique par l'AFD de la figure 4.6 (a).
On peut accéder de façon symbolique à l'indicateur d'échéance en utilisant le même
symbole que celui désignant la minuterie (par exemple T dans la figure). La formule lo-
gique T est donc vérifiée lorsque la minuterie est échue, autrement la formule logique T
est vérifiée. Aussi une minuterie génère-t-elle deux événements, î T et lT, considérés in-
contrôlables. Cependant la minuterie dépend d'un signal (dénoté S dans la figure 4.6 (a))
pour son activation. Ce signal d'activation (une formule logique) réfère normalement à
l'état d'éléments situés dans l'environnement local (mémoires, capteurs ou autres). Ainsi
une minuterie partage généralement Y état d'autres dispositifs du sous-système (comme
illustré à la figure 4.6 (b)) et en enrichit le comportement. Cette caractéristique confère aux
minuteries une grande flexibilité, mais elle en limite aussi les possibilités d'abstraction.

195
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

FIGURE 4.5 - Mémoire utilisant un registre à décalage

FIGURE 4.6 - Minuterie de délai à la montée (schéma et application)

196
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

La figure 4.6 (a) illustre le comportement du dispositif brut d'une minuterie de délai à
la montée. Initialement la minuterie est inactive : état (S, T). La minuterie est évaluée à
chaque cycle de rétroaction selon son signal d'activation S. Lorsque S est réalisé la minute-
rie devient active : état (S, T). La minuterie reste active tant que le signal d'activation S est
réalisé et que son délai d'échéance n'est pas écoulé. Elle est réarmée et redevient inactive
sitôt que S est réalisé. Si S demeure réalisé pour un interval de temps supérieur ou égal à au
délai d'échéance spécifié, la minuterie passe à l'état échue : (S, T). Une fois la minuterie
échue on ne peut que la réarmer (événement |S). Il faut bien sûr que S persiste jusqu'à la
prochaine évaluation de la minuterie (un cycle de rétroaction) pour qu'elle soit complète-
ment réarmée et repasse à l'état inactive. Cette condition doit être vérifiée manuellement
à la conception (ad hoc) du sous-système (par exemple figure 4.6 (b)), d'où la transition
indésirable dénotée par une astérisque dans la figure 4.6 (a).
Les dispositifs bruts de minuterie procurés par les PLC rendent impossible de spécifier
l'état échue d'une minuterie de délai à la montée comme état initial. Pour plus de flexibi-
lité on utilise des minuteries mémorisées. Elles sont implémentées par programmation à
partir du dispositif brut d'une minuterie de délai à la montée pour produire deux types de
comportement :
1. ODT (On Delay Timer) délai à la montée seulement illustré en figure 4.7 (a) ;
2. DDT (Dual Duty Timer) délai à la montée et à la descente illustré en figure 4.7 (b).
On substitue un élément de mémoire M à l'indicateur d'échéance T pour pouvoir démarrer
la minuterie brute dans n'importe laquelle des deux configurations (S, M) ou (S, M). Les
minuteries mémorisées requièrent quatre paramètres illustrés en figure 4.7 (a) et (b) de
façon schématique :
- un type de comportement (dénoté ODT ou DDT) ;
- une formule logique définissant le signal d'activation (dénoté S) ;
- un indicateur d'échéance (une formule logique de la forme M ou M où M désigne
un élément de mémoire booléen) ;
- un délai de minutage (dénoté dt).
Une minuterie mémorisée doit être déclarée explicitement dans la structure d'un sous-
système pour permettre d'y associer ces paramètres. Par exemple la déclaration suivante
TO : ODT[S := YÏÏ A X Î , MO, d t ] ;

197
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

^M * : Transition indésirable. ^ (dt)

S,M ) f S,M \**: c s,i

îM (dt) ÎM (dt)

(a) T : ODT[S, M | M, dt] (b)T:DDT[S,M|M,c/f]

FIGURE 4.7 - Minuteries mémorisées

définit une minuterie mémorisée de délai à la montée du signal S (type ODT), défini par
la formule logique YO A XI, au bout d'un délai exprimé par une constante dt. L'indicateur
d'échéance MO, exprimé en forme positive, déclare implicitement l'élément de mémoire
booléen MO ainsi que l'état initial de la minuterie : la minuterie est échue à l'état initial
((S, M) dans la figure 4.7 (a)). Par opposition, la déclaration

TO : ODT[S := YÔ A X Î , MO, d t ] ;

définit la même minuterie avec les mêmes paramètres mais dont l'état initial, dénoté par la
formule MO en forme négative, est inactive ({S, M) dans la figure 4.7 (a)). Ces déclarations
peuvent être utilisées à l'intérieur d'une déclaration de composante, par exemple

Define component
Jackl01<Y0, TO, XI, const dt TIME>

où TIME est un type particulier pour les constantes de temps et TO représente l'identi-
ficateur auquel on doit éventuellement assigner un dispositif de minuterie brute pour la
génération de code.
Finalement, pour implémenter la dynamique de la minuterie, le concepteur doit fournir
un fragment de code. La forme générale pour le comportement ODT est la suivante :

/* retour à l'état initial. +/


if ( ( YO V XI ) A MO) then funcim();
/* activités à l'échéance */
if ( TO A YÔ A XÏ A MO ) then funcrM0();
198
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

/* évaluation de la minuterie */
eval7.(T0. YÔ A XÎ A MO) ;

en supposant la déclaration précédente de TO. Ce code doit être activé à chaque cycle de
la rétroaction et doit donc être introduit dans l'heuristique de génération de code cycle()
défini à la fin de la section [Link]. L'activité variable sur occurrence des événements îMO
et 1.M0 est supposée décrite dans la dynamique locale (/a/jMo() et lal^oO). Dans ce qui suit
il revient au concepteur d'introduire le code correspondant aux endroits appropriés dans la
spécification.

4.2.2 Composantes élémentaires


Les composantes élémentaires représentent des abstractions effectuées à partir du mo-
dèle exhaustif ad hoc d'un dispositif matériel comme présenté à la section [Link]. Par op-
position, le sous-système d'une composante mixte est constitué d'instances d'autres com-
posantes réutilisables (mixtes ou élémentaires) en fonctionnement parallèle concurrent.
Pour illustrer quels sont les éléments d'une spécification de composante réutilisable élé-
mentaire, l'exemple simple du vérin à commande monostable de la section [Link] suffit.
Pour des modèles plus complexes impliquant des minuteries et des éléments de mémoire,
le lecteur peut se référer au catalogue de composantes de l'annexe D contenant l'ensemble
des modèles nécessaires à l'élaboration de l'étude de cas du chapitre 5.
Lafigure4.8 élabore la structure du sous-système correspondant à un vérin à commande
monostable doté d'un ensemble complet de capteurs. En conjonction avec lafigure4.9 (le
modèle de la projection) et de la figure 4.10 (le modèle d'interface), ces éléments consti-
tuent une spécification complète de la composante élémentaire J a c k l 11. Le sous-système
correspondant à une composante élémentaire (Basic Component) doit être obtenu de
façon ad hoc. La structure du vecteur d'état (énoncé S t a t e V e c t o r dans la figure 4.8)
doit donc être donnée a priori. On peut utiliser le vecteur d'état pour obtenir des signatures
logiques pour chaque état. Par exemple, enfigure4.9, l'état initial dénoté <Y. XO, X1 > cor-
respond à la formule logique Y A XO A XI. Ces signatures logiques sont nécessaires pour
établir la fonction de rétroaction (une SFBC) qui doit aussi être donnée a priori dans le cas
des sous-systèmes élémentaires. Dans lafigure4.8 la fonction de rétroaction est donnée de

199
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

façon exhaustive par les deux prédicats / t Y et ,/\Y, puisque îY et lY sont les seuls évé-
nements contrôlables (liés au capteur Y). On se rappelle que dans une SFBC les prédicats
liés aux événements incontrôlables sont des tautologies. Finalement, puisque dans un sous-
système la définition par défaut des fonctions P„() correspond au prédicat de rétroaction,
les fonctions / f Y et / t Y définissent implicitement P| Y () et Pj Y ().
Dans la figure 4.8, seuls les éléments modifiés de la dynamique abstraite (les heuris-
tiques de génération de code) sont explicitement décrits. Tous les éléments conformes à
la description de la section [Link] n'ont pas à être explicités puisqu'ils peuvent être géné-
rés tels quels. Ainsi les fonctions/w«cÎYQ et func^() sont conformes à l'algorithme 4.1
(événements contrôlables) et les fonctions/ù»cTX1(),/z<«cÎX0Q,/wraclX|() etfunclXf)() sont
conformes à l'algorithme 4.3 (événements incontrôlables).
Dans le sous-système d'une composante élémentaire, les functions Projecta () sont consi-
dérées vides (elle retournent toutes la valeur true). Puisque le système est conçu de façon ad
hoc c'est au concepteur qu'il revient d'en changer la définition. Les fonctions Projecta(),
pour a G {îY, î X l , |Y, tXO}, sont ainsi redéfinies puisque ce sont les seuls événements
associés à une projection dans la figure 4.9. Les événements 1X0 et 1X1 sont effacés par
la projection et ainsi la définition par défaut de Projecta() leur est adéquate. La fonction
funcdeploy() projetant l'événement deploy à partir de l'événement T Y n'est ici qu'un symbole
abstrait sans définition. Ce symbole doit être associé à une définition par l'utilisateur de la
composante réutilisable J a c k l l l au moment de l'instanciation de cette dernière dans un
sous-système.
D'une façon similaire, dans le sous-système d'une composante élémentaire, les func-
tions lala() sont considérées vides a priori. Pour a G {îXO. J.X1, îXO, i X l } , cette défi-
nition convient, puisque l'occurrence de ces événements ne modifie pas l'environnement
local. Cependant lal^Y() et lal^O modifient l'état de Pactionneur du vérin et doivent être
redéfinies en conséquence.
À chaque itération de la boucle de rétroaction le système doit exécuter le code d'inté-
gration (glue code) des composantes. Ce code est généralement inséré manuellement dans
l'heuristique de génération de code cycleQ. Pour lier l'activité des dispositifs physiques à
la dynamique abstraite il faut insérer du code correspondant dans cycle(). Sur occurrence
d'un événement incontrôlable cycleQ doit détecter cette occurrence et activer la fonction

200
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

Basic Component J a c k l l l < Y , XO, Xl> {

SubSystem J a c k l l l {
S t a t e V e c t o r = <Y XO, Xl>

/îY == Y A XO
/iv := Y A XI

Proj'ect|y() : = ( r e t u r n f uncdeploy() ; }
Projectlxl() := {
r e t u r n LUI! Cçiepi oyena (); }
P r o j e c t | Y ( ) := { r e t u r n funcretra( *(); }
P r o j e c t î x o ( ) := { r e t u r n funcretracten(j() ; }

2alTY() := { s e t ( Y ) ; }
lallY() := { r s t ( Y ) , }

cycle() := <zycleQ + {
i f ( TX1 ) t h e n f u n c T X ] () ;
i f ( TXO ) t h e n funcm{);
funcrY();
funciY();
}
}
}
FIGURE 4.8 - Éléments de structure du sous-système Jackl 11

201
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

Jacklll : G

4.X0/e
t X l Ideployend

lY/retract
îXO/retractend

iXl/e

FIGURE 4.9 - Composante Jackl 11, sous-système et projection

Jacklll : G (Interface)

deployend

retract
retractend

FIGURE 4 10 - Composante Jackl 11, interface

202
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

funca() qui lui correspond. Quant aux événements contrôlables, puisqu'ils sont générés
par la boucle de rétroaction elle-même, cycleQ doit toujours invoquer la fonction func^Q
correspondant à un événement contrôlable pour lui permettre de se produire lorsqu'il est
éligible localement et permis par l'environnement du système global.
Il est intéressant de noter qu'aucun des événements 1X1 et iXO ne sont effacés par la
projection et qu'ils ne causent aucun changement à l'environnement local du sous-système
de la composante J a c k l l l . Ainsi l'invocation defuncÏXl Q etfunclX0{) ne produit aucune
activité utile dans le système et peut donc être éliminée.
Par convention la redéfinition d'un symbole de la dynamique abstraite est signalée
par une expression utilisant l'opérateur d'affectation suivi d'une définition, comme par
exemple la redéfinition de la fonction lal^yQ dans la figure 4.8. L'insertion de code est
signalée par une forme similaire à celle utilisée pour cycleQ dans la même figure. La
forme cycleQ := cycleQ + {...} signale une insertion à la fin de la procédure et la forme
cycleQ := {...} + cycleQ une insertion au début. Aussi, seules les heuristiques cycleQ et
lal„() admettent l'insertion de code. Les autres n'admettent que la redéfinition.
Finalement lafigure4.10 spécifie l'interface de la composante réutilisable sous forme
d'un AFD quotient G de l'AFD G de la figure 4.9. Le quotient G constitue un observa-
teur de G. 11 est obtenu par application de l'algorithme de Wong et Wonham dans [60].
On peut en général assigner aux états de l'interface des étiquettes pour rendre le modèle
plus expressif. Ces étiquettes tiennent généralement lieu d'indices que l'on peut affecter à
une variable d'état comme celles définies dans l'équation 4.3 pour désigner l'état courant
d'une instance de composante d'un sous-système. Pour réduire l'encombrement des figures
on n'utilise ici que de simples index explicites.

4.2.3 Composantes mixtes


Les composantes mixtes sont conçues à partir de sous-systèmes qui eux-mêmes sont
assemblés par instanciation de composantes réutilisables. Cette façon de procéder permet
un processus de conception basé sur l'usage de la synthèse SCT pour spécifier un contrôle
local sur le sous-système. La spécification ad hoc du contrôle (typique des composantes
élémentaires) est ainsi remplacée par une spécification formelle des requis de contrôle et

203
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

une loi de contrôle obtenue par synthèse. Les modèles G et G (de la projection et de
l'interface respectivement) peuvent être donnés de la même façon que pour les compo-
santes élémentaires. La structure du sous-système de la composante mixte doit cependant
détailler l'instanciation de composantes réutilisables ainsi que leur assemblage et fournir
une spécification de contrôle. Il est donc nécessaire de se pencher sur la signification et les
mécanismes de l'instanciation de composantes réutilisables.

[Link] Les mécanismes de l'instanciation

Pour se concentrer d'abord sur l'instanciation de composantes réutilisables, l'exemple


de la grue, donné à la figure 4.3. se révèle utile car il ne contient pas d'élément de mé-
moire. La figure 4.11 donne un aperçu du mécanisme d'assemblage du sous-système de
cette même grue (appelé ici LRCrane) à partir de l'instanciation de deux composantes
élémentaires dont on retrouve la spécification en annexe D. La flèche de la grue (appelée
Boom) utilise une instance de la composante élémentaire Jack21 l b et la pince de la grue
(appelée Hook) utilise une instance de la composante élémentaire SuctionCup. Dans
la figure 4.11 l'instanciation est implicite dans un énoncé de déclaration de variable, par
exemple, Boom : Jack211b, définit la flèche de la grue.
D'après le modèle d'instanciation suggéré en section [Link], une instance d'une com-
posante réutilisable résulte d'une déclaration de variable dans un sous-système, par exem-
ple Boom : Jack211b. Dans ce scénario le nom Boom définit alors un espace symbo-
lique au sein duquel sont définis les éléments G et G de la spécification de J a c k 2 1 l b .
Par suite, pour référencer un de ces éléments, on doit faire usage de noms qualifiés. Par
exemple, on peut présumer hypothétiquement que la déclaration précédente produise le
holon
rt-Boom \^c Boom- t-JBoorn- ®Hoom- \*[Link]. *<c [Link])

dans l'environnement du sous-système courant à partir de la définition de G de la compo-


sante Jack211b.
On peut noter que le modèle d'instanciation de la section [Link] est juste et produit le
résultat attendu; c'est-à-dire qu'il garantit que toutes les instances de composantes réuti-
lisables d'un sous-système sont disjointes deux à deux. Bien sûr on présume que tous les

204
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

SubSystem LRCrane {
State Vector = <Boom, Hook>
v x
— ViRCrane — (VBoom, Vf/ook) 6 QLSuum Qttouk J

Jack211bG SuctionCup G

deploy f 1^ deployend close 1


closeend
\ /

00 C2/*" ^C°J C2J


retractend \ 3 f*~*^ retract openend vO* open

Boom : Jack21 lb with { Hook : SuctionCup with {


Ef := { deploy [right ], retract [left ] } Ef. := { close [grab ], open [ris ] )
E„ := { deployend [rightend], E„ := { closeend [grabend],
retractend [leftend ] } } openend [rlsend ] } }

FIGURE 4.11 - Composition d'un sous-système (instanciation de composantes)

205
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

identificateurs de variables dans l'environnement d'un sous-système sont distincts. En par-


ticulier on obtient que l'événement deploy G T de la composante J a c k 2 1 1 b est redéfini
par deployBnnm G Qn<mm- Par conséquent la fonction^/«c rfepioy (), qui n'est pas définie dans
la spécification de J a c k 2 l l b (bien qu'elle y soit déclarée), se trouve automatiquement
définie par association à la fonction fitncJeploy () qui, elle, doit être générée automatique-
ment pour la dynamique abstraite du sous-système. Mais bien sûr la qualification des noms,
bien qu'elle soit conceptuellement correcte, est beaucoup trop lourde pour qu'on l'utilise
telle quelle dans la spécification. Aussi doit-on faire usage de quelques abus de notation
ainsi que d'une convention de changement de dénomination (de l'anglais aliasing).
Tout d'abord à la figure 4.11 on retrouve un énoncé définissant la structure du vec-
teur d'état S t a t e V e c t o r = <Boom, Hook>. Ainsi, dans l'environnement du sous-
système LRCrane, il existe une variable rLRCrme dont la structure est un couple ordonné
de la forme (vB0om, l'/fnok)- On admet par convention que la définition de la structure du
vecteur d'état donne aussi l'ordre de synthèse. Le premier abus de notation consiste à uti-
liser (lorsque le contexte est clair) le nom de la variable d'instance elle-même (par exem-
ple Boom) en lieu et place de sa variable d'état (par exemple vBoom) ; d'où la déclaration
S t a t e V e c t o r = <Boom, Hook>.
En deuxième lieu on peut noter qu'il est inutile de qualifier les étiquettes des états
(qu'elles soient symboliques ou données par de simples index). La définition du vecteur
d'état du sous-système permet toujours d'identifier le domaine des étiquettes d'état. Lorsque
le sous-système de la figure 4.11 se trouve à l'état (1, 2), alors le prédicat vBoom = 1 A
Vftook — '2 est réalisé. Ce prédicat s'énonce plus clairement par Boom = 1 A Hook = 2 en
utilisant l'abus de notation signalé précédemment.
Finalement pour permettre d'éviter la qualification des étiquettes des événements, on
suggère le mécanisme de changement de dénomination illustré en figure 4.11. Dans cette
figure la déclaration complète pour la variable Boom est la suivante.

Boom : J a c k 2 1 1 b w i t h {
Hc := { d e p l o y [ r i g h t ] , r e t r a c t [ l e f t ] }
E u := { d e p l o y e n d [ r i g h t e n d ] , r e t r a c t e n d [ l e f t e n d ] }

Le concepteur doit dresser une bijection hBoom : TJack2iib -» ^Boom, où TJack21lb est

206
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

l'alphabet de projection de la composante J a c k 2 1 1 b et Y. Boom l'alphabet d'un holon,

==
ri-Boom \WBoom- 2-1 Boom- "Boom- \QUoomfij AlBoom.m)

construit à partir de l'interface G de J a c k 2 1 1 b et destiné à représenter une instance de


cette composante dans l'environnement du sous-système. Le concepteur doit veiller à ce
que les alphabets d'alias de toutes les instances au sein d'un même sous-système soient
disjoints entre eux. Dans la figure 4.11 ceci veut dire que D#<,„„, n 'ïlfiook - 0- Par exemple
le nom d'événement right utilisé par l'instance de composante Boom ne peut absolument
pas être réutilisé par une autre instance dans ce sous-système ; il y est unique et désigne
l'événement deployBmm de l'interface d'une instance de la composante J a c k 2 1 1 b . Par la
même occasion la fonctionfuncdephyQ, que l'on retrouve déclarée et utilisée dans la dyna-
mique abstraite de la composante J a c k 2 1 1 b est automatiquement associée à la fonction
fimcri ht() générée pour le sous-système (une liaison statique). Ainsi, pour l'instance nom-
mée Boom, tout appel àfuncJeplovQ dans la dynamique abstraite de J a c k 2 1 l b correspond
à un appel de funcrigltt() liant ainsi la dynamique abstraite de la composante à celle du
sous-système.
Avec cet ensemble de conventions en place on peut obtenir une spécification compacte
de la structure du sous-système LRCrane correspondant à la figure 4.13. Combiné à la des-
cription des modèles de la projection G et de l'interface G, que l'on trouve à la figure 4.12,
on obtient une spécification complète de la composante réutilisable LRCrane.
Dans la figure 4.12 on retrouve (au bas) un diagramme de l'assemblage du système.
Ce diagramme n'est pas essentiel mais il constitue une documentation utile. D'ailleurs le
diagramme de la figure 4.3 constitue une description détaillée des requis de contrôle de
cette composante et le diagramme de la figure 4.4, une autre forme pour la spécification
de la loi de contrôle obtenue par synthèse. Par opposition à la figure 4.13 ce genre de
diagrammes peut présenter des avantages pour la clarté.
Concernant la dynamique abstraite de la composante LRCrane, il est clair que les fonc-
tions/««c^Q, ProjectaQ et PaQ peuvent être générées automatiquement, comme dans le
cas des composantes élémentaires. Cependant, contrairement au cas des composantes élé-
mentaires, les fonctions lalaQ ne peuvent pas être vides. Chaque instance de composante

207
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

LRCrane G

V5 cipe
cip ^ ^
/ dp

\2Jhc\ 3
) hce 74

• ^ cop
-
cope
\ O*

LRCrane G

_—-V
V\y
^ \ — _•—^.^^ rightend/cipe
right/cip ^ ^ " ^
/ _j7^\grabendjhce /T7\ rightend/cipe
@h^\
J< grab/hc / ^ f right/cip /^frlsle rlsend/e
1 f~~\
(o,o) (0,2) (^2) (2,uW

^•-^^^ leftend/'cope ^ s ^ left/cop

——(y*)*—"

LRCrane

Boom Hook

ri
Sht
0/ rightend gra*^, \\ grabend

00 C2/^ "*00 Cl)

leftend {T\ •""/e/r rlsena~~~~ CO+ rls

FIGURE 4.12 - Composante mixte LRCrane (sous-système et projection)

208
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

Component LRCrane {

SubSystem LRCrane {
State Vector = <Boom, Hook>

Boom : Jack211b with {


S, : = { deploy[right], retract[left] }
{ deployend[rightend], retractend[leftend] }
}
Hook : SuctionCup with {
S r : = { close[grab], open[ris] }
S u : = { closeend[grabend], openend[rlsend] }
}
CtrlSpec {
Boom G {1,3} A Hook G {1,3},
Boom = 0 A Hook = 3,
Boom = 2 A Hook = 1,
Boom = 3 A Hook = 2
}
J right '• =
: Boom = 0 A Hook G {0,2}

fleft '• = Boom = 2 A Hook = 0


J grab '• ~ Boom = 0 A Hook = 0
fris - = Boom = 2 A Hook = 2

}
}
FIGURE 4.13 - Structure du sous-système LRCrane

209
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

réutilisable est associée à une variable d'état. Cette variable fait partie de l'environnement
local du sous-système et doit être mise à jour pour refléter l'état courant de l'instance et, in-
directement, l'état courant du sous-système lui-même. C'est l'une des tâches des fonctions
la/„Q-
Dans notre exemple de la figure 4.11, l'occurrence de l'événement right dans l'instance
Boom doit provoquer le changement de la variable vBuom de vBoom — 0 à vBoom = 1 pour
maintenir l'intégrité de la variable d'état du sous-système vrjRcrune- Or l'information néces-
saire pour générer ce code est déjà contenue dans la définition de la structure de transition
de l'interface de la composante J a c k 2 1 1 b ( G j ^ ^ n b ) - Il s'agit de la fonction de tran-
sition 7]jock2iih- La fonction lalngh,Q est donc générée automatiquement et correspond à la
définition suivante.
:
•lalrightO = { Boom := 1 ; }
L'ensemble des fonctions lalaQ de notre exemple peuvent donc être générées automatique-
ment.
On peut présumer qu'en général, pour les composantes mixtes, les fonctions lalaQ sont
générées automatiquement en conformité avec l'ensemble des définitions de la spécifica-
tion et que ces fonctions ne sont pas vides. Le concepteur a tout de même la possibilité de
redéfinir ce code ou d'insérer des fragments de code supplémentaires soit au début soit à la
fin d'une fonction lalo-Q en utilisant les notations mentionnées à la fin de la section 4.2.2.
Naturellement, comme pour les composantes élémentaires, les symboles pour l'interface
des composantes mixtes (les fonctions funcTQ) sont toujours des symboles abstraits (dé-
clarés sans définition dans le sous-système de la composante). Aussi l'heuristique de gé-
nération de code cycleQ demeure disponible mais elle n'a pas de contenu a priori. Dans la
composante LRCrane par exemple, cette heuristique est vide.
Finalement on peut constater que la composante réutilisable LRCrane, en figure 4.13,
n'a pas de signature d'instanciation. Elle utilise cependant deux composantes réutilisables
qui requièrent la spécification éventuelle de paramètres; J a c k 2 1 1 b et S u c t i o n C u p .
Ceci ne constitue pas une contradiction.
Comme mentionné en section [Link] les signatures d'instanciation ne servent qu'à spé-
cifier l'assignation de ressources réelles à des symboles génériques utilisés dans la spécifi-
cation de composantes. Par exemple un capteur peut être représenté par le symbole XO pour

210
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

la spécification sans qu'il soit nécessaire de déterminer immédiatement à quelle ressource


physique ce capteur correspond. Ces assignations ne sont pas requises pour la conception
et la synthèse. Elles sont requises a posteriori pour la génération de code. Il est alors pos-
sible de les spécifier au générateur de code dans une spécification indépendante en utilisant
des noms qualifiés complets. Par exemple à supposer que le sous-système LRCrane de la
figure 4.11 soit considéré comme un systèmefinalet non pas comme le sous-système asso-
cié à une composante réutilisable. Alors la spécification de ses assignations peut prendre la
forme suivante.
[Link]<Y0 := Q0.0, Yl := Q0.1,
XO := 10.0, XI := 10.1>;
[Link]<Y0 := Q1.0, Yl := Ql.l, XO := Il.l>;

On évite ainsi d'avoir à paramétrer le système au fur et à mesure de la conception. D'autres


mécanismes peuvent éventuellement être mis en place.

[Link] Composante mixte avec mémoire incorporée

La composante réutilisable LRCrane n'utilise aucun élément de mémoire dans son


sous-système. La structure de sa spécification est par conséquent très simple. Il est cepen-
dant souvent très utile sinon nécessaire de faire usage d'éléments de mémoire pour décrire
les requis de contrôle d'un sous-système, entre autres lorsque certains aspects du contrôle
dépendent de l'historique de fonctionnement du sous-système.
Lafigure4.14 donne le schéma d'assemblage d'une perceuse. Le sous-système (appelé
ici Drill) comporte plusieurs éléments dont on doit coordonner l'activité.
1. Un étau (Clamp) assure, par serrage, la stabilité de la pièce pendant l'opération de
perçage.
2. Un moteur électrique (Mtr) contrôlé par un relais actionne la mèche de la perceuse.
3. Le moteur est fixé sur un patin (Drv) qui peut descendre et monter pour effectuer le
perçage.
La machine a deux états principaux (éléments de mémoire SW) elle est soit en marche, soit
à l'arrêt. L'opération de perçage (une fois la machine en marche) se déroule en deux phases
(élément de mémoire PHS).
211
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

1. La pièce est d'abord stabilisée, le moteur démarré et le patin descendu puis désengagé
(SW = 1 et PHS = 0).
2. Ensuite le moteur est arrêté et l'étau ouvert (SW = 1 et PHS = 1).
La machine doit alors être arrêtée. L'ensemble doit donner un comportement global de type
démarrage-arrêt (élément de mémoire SW). Le tout est encapsulé en une composante réuti-
lisable (Drill) dont l'abstraction correspond à la figure 4.15, la spécification de structure à
la figure 4.16 et la spécification de contrôle à la figure 4.17.
L'ensemble des instances du sous-système correspond à des composantes élémentaires
de l'inventaire en annexe D. La composante J a c k 2 1 1 a S S (pour le patin) n'y figure pas,
mais il est aisé de la produire à partir de la composante J a c k 2 1 1 a . Il suffit d'utiliser
le même schéma que celui suivi pour élaborer la composante J a c k l l l S S à partir de la
composante J a c k l 11.
Par rapport à la spécification de la composante LRCrane, discutée précédemment, on
peut noter deux additions dans la spécification de la composante D r i l l . Tout d'abord on
y fait usage d'éléments de mémoire (SW et PHS dans figure 4.14). Aussi on détecte la
présence d'une nouvelle classe d'événements, les événements dits synthétiques, au bas de
la figure 4.16. Ces additions requièrent quelques explications.
L'ajout d'éléments de mémoire ne présente pas de problème spécifique. Bien sûr chaque
élément de mémoire doit être représenté dans l'environnement du sous-système par une
variable d'état, par exemple vPrfS pour l'élément de mémoire dénotant les phases de l'opé-
ration de perçage. Cette variable est représentée par une déclaration dans la définition de la

Drill
'
PHS
SW ) ' \ Drv
Clamp Mtr
j strt, stp ;

«V. J <&
C J i ce on
* CD one
1 "
/3 © aA
r
\y upe oe
© o offe
© CL
.

FIGURE 4.14 - Composante mixte Drill (assemblage du sous-système)

212
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

<o
start

Drill : G

end

c : close on : turn on dwn : go down strt : start


ce : close end one : turn on end upe : get back up end stp : stop
o : open off : turn off
oe : open end offe : turn off end

FIGURE 4.15 - Composante mixte Drill (sous-système et projection)

213
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

Component Drill {

SubSystem Drill {
State Vector = <SW, PHS, Clamp, Mtr, Drv>

SW : MW; /* Memory word : Drilling SWitch */


PHS : MW; /* Memory word : Drilling PHaseS */

Clamp : Jacklll with {


IL : = { deploy[c], retract[o] }
:= { deployend[ce], retractend|oe] }
}
Mtr : SDRelay with {
Se = { close [on], operi[off] }
v; := { closeend[one], openend[off e] }
}
Drv : Jack211aSS with {
s c = { start[dwn] }
S u := { stop[ue] }
}
Synth*Btic Events := {
Sc = { strt, stp }
}

FIGURE 4.16 - Sous-système Drill (spécification de structure)

214
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

Component Drill {
SubSystem Drill {
State Vector = <SW, PHS, Clamp, Mtr, Drv>

CtrlSpec {
/* (1)*/ SW = 0 A
(Clamp G {1,2,3} V Mtr G {1,2,3} V Drv == D ,
/*(2)*/ PHS = 0 A (Clamp = 3 V Mtr = 3),
/*(3)*/ PHS = 1 A (Clamp = 1 V Mtr = 1),
/* (4)*/ Drv = 1 A PHS = 1,
/*(5)*/ Drv = 1 A (Clamp G {0,1,3} V Mtr G {0,1, 3})
}
fetrt := SW = 0
/stp := PHS = 1 A Clamp = 0 A Mtr = 0
fc := SW = 1 A PHS = 0
fQ := SW = 1 A PHS = 1
fon := SW = 1 A PHS = 0
/off := SW = 1 A PHS = 1
fdw„ := SW = 1 A PHS = 0 A Clamp = 2 A Mtr = 2

cycleQ := cycleQ +{
func3trtQ;
funcBtp();
}
}}
FIGURE 4.17- Sous-système Drill (spécification du contrôle)

215
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

structure du sous-système (PHS : MW en figure 4.16). Cette variable peut donc être uti-
lisée de la même façon que la variable d'état d'une instance de composante réutilisable
et faire l'objet d'affectation (PHS := 1) ou dénoter un terme dans un prédicat (voir la
figure 4.17).
Au sein d'un sous-système, les éléments de mémoire sont représentés par des AFD
dont tous les événements sont partagés avec les autres éléments du sous-système. Leur
dynamique (la fonction de transition de leur AFD) doit être explicite pour permettre la
synthèse. À cet effet on adopte les conventions utilisées dans [39]. L'AFD d'un modèle de
mémoire doit être fermé sur l'ensemble des événements qu'il utilise dans sa dynamique.
Pour les événements contrôlables, toutes les transitions doivent être explicites. L'ab-
sence d'une transition à partir d'un état constitue une contrainte de contrôle explicite. Par
exemple, pour l'élément PHS en figure 4.14, l'absence d'une transition sur l'événement
stp à partir de l'état 0 constitue une contrainte de contrôle. Aussi chaque état de l'AFD
doit comporter une transition pour chaque événement incontrôlable partagé par cet élément
de mémoire (la fermeture de l'AFD). Lorsqu'une transition incontrôlable ne doit pas se
produire dans le système contrôlé, cette transition (sur événement incontrôlable) doit faire
l'objet d'une contrainte dans la spécification de contrôle. Par exemple, pour l'élément PHS
enfigure4.14, la transition en boucle sur l'événement upe à l'état 1 est indésirable puisque
le patin (Drv) de la perceuse ne doit pas être actif (Drv = 1) une fois le perçage ter-
miné (PHS = 1). Ainsi il faut introduire la contrainte dénotée (4) dans la spécification de
contrôle de lafigure4.17.
11 est intéressant de noter, par exemple, qu'en figure 4.14 l'AFD PHS ne partage pas
l'événement ce généré par Clamp. Or pourtant la spécification de contrôle stipule bien
une contrainte d'exclusion entre les états PHS = 1 et Clamp = 1 (contrainte (3) en
figure 4.17). Cette situation est fréquente. Il faut noter que, puisque PHS ne partage pas
l'événement ce généré par Clamp, il y a une transition en boucle implicite sur l'événement
ce dans l'AFD PHS à partir chacun de ses états. La contrainte (3) vise ainsi à exclure du
comportement contrôlé la transition en boucle implicite sur l'événement ce se produisant à
l'état 1 de l'AFD PHS. Autrement dit le support des contraintes de contrôle se situe souvent
dans le comportement implicite au modèle du sous-système. Cette situation est fréquente
comme en font foi les spécifications de contrôle des composantes Drill (en figure 4.17)

216
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

et LRCrane (en figure 4.13). Heureusement cette forme de spécification par exclusion de
familles d'états du comportement contrôlé est habituellement assez intuitive. Pour s'en
convaincre on peut consulter l'explication des contraintes pour la conception d'une grue (à
la section 3.2.2) qui sont essentiellement les mêmes que celles utilisées pour la spécification
de la composante LRCrane.
Il faut maintenant clarifier la notion d'événements synthétiques. 11 s'agit d'une tech-
nique introduite par Leduc dans [34] pour permettre la modélisation en HISC de certaines
situations où il est nécessaire d'ajouter des événements au système. Ces événements n'ont
généralement pas de base factuelle et ne sont pas générés par des dispositifs physiques.
On peut décrire les événements synthétiques comme des événements générés par le sous-
système lui-même dans le but d'en modifier l'état de la mémoire. On peut parler d'événe-
ments liés à des mouvements d'éléments de mémoire. L'utilisation d'éléments de mémoire
est donc implicite à l'usage de cette technique.
Dans le modèle théorique on adjoint au sous-système un AFD comportant un et un seul
état avec une transition en boucle sur cet état pour chacun des événements de son alphabet.
À la figure 4.14, cet AFD est représenté par une boîte grisée à gauche de la figure. Puisque
cet AFD a toujours la même forme et qu'il n'ajoute aucune information d'état au modèle, il
n'est normalement pas représenté. Il suffit de donner une liste des événements synthétiques
dans la spécification de structure comme en figure 4.16. Cet AFD représente cependant un
dispositif au même titre que les instances de composantes réutilisables. Il ne s'agit donc pas
d'un AFD d'élément de mémoire. Ainsi cet AFD a un alphabet disjoint de tous les autres
dispositifs. Il ajoute donc au sous-système un certain nombre d'événements (habituellement
des événements contrôlables). L'occurrence de n'importe lequel de ces événements modifie
nécessairement l'état d'au moins un des éléments de mémoire interne à un sous-système.
Avec ce modèle théorique les événements synthétiques entrent naturellement dans la
modélisation, la spécification de contrôle et la synthèse de sous-systèmes au même titre
que n'importe quel autre dispositif. Par exemple, pour le sous-système Drill illustré à la
figure 4.14, il y a deux événements synthétiques, strt et stp. Ces deux événements sont par-
tagés par l'AFD SW, et stp est aussi partagé par l'AFD PHS, exprimant ainsi des contraintes
de contrôle explicites puisque ces événements sont contrôlables. Aucune des instances de
composantes réutilisables du sous-système ne partage ces événements (en conformité avec

217
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

le modèle théorique). Il y a donc des transitions en boucle implicites à tous les états des mo-
dèles d'AFD pour Clamp, Mtr et Drv et ce, pour chacun des événement strt et stp. Aussi
retrouve-t-on, entre autres, la contrainte (1) en figure 4.17 pour interdire l'occurrence de
l'événement strt (c'est-à-dire le démarrage du sous-système) à moins que tous les disposi-
tifs (Clamp, Mtr et Drv) ne soient à l'état initial.
Concernant la génération de code, la synthèse procure les prédicats de contrôle fslrl et
f„p et donc la définition de P,trt() et Pstp(). Les fonctions funcstr,Q etfuncslpQ peuvent être
générées en conformité avec l'algorithme 4.1 (événements contrôlables) et les fonctions
ProjectslrtQ et ProjectslpQ en conformité avec l'algorithme 4.2. Aussi, puisque la fonction
de transition de tous les AFD est donnée explicitement, la mise à jour des variables d'état
pour les instances de composantes réutilisables ainsi que pour les éléments de mémoire
peut être générée automatiquement dans les fonctions lalstrlQ et lalslpQ.

lalatrt() := { SW := 1 ; }
lalstpQ := { SW := 0 ; PHS := 0 ; }

Comme pour les composantes élémentaires, il est nécessaire de lier la dynamique abstraite
du sous-système à l'occurrence des événements strt et stp puisque ces derniers sont générés
par le sous-système lui-même. À cette fin, comme illustré en figure 4.17, on introduit les
appels correspondants dans l'heuristique cycleQ.
On peut remarquer qu'à la figure 4.15 l'événement stp (qui est contrôlable dans le
sous-système) est projeté sur l'événement d'interface end qui est incontrôlable. La règle
de l'équation C.5 pour la conception d'interface (calcul d'un observateur) permet en effet
cette manoeuvre (mais pas l'inverse bien sûr).
D'ailleurs les mécanismes d'instanciation présentés dans cette section permettent aussi
de changer, à l'instanciation, le statut d'un événement contrôlable de l'interface pour le
considérer incontrôlable. La déclaration suivante

Boom : J a c k l l l w i t h {
S c := { d e p l o y [ r i g h t ] }
E n := { r e t r a c t [ l e f t ] ,
deployend[rightend],
retractend[leftend] }
}

218
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

a précisément cet effet. L'événement d'interface retract de la composante J a c k l l l , qui


est originalement contrôlable, est déclaré comme l'événement incontrôlable left dans le
sous-système qui instancie la composante. Cette déclaration a pour effet de forcer le prédi-
cat de contrôle de l'événement left, f^,, en tautologie.
Finalement, il est parfois plus clair d'exprimer explicitement certaines contraintes de
contrôle par partage d'événements contrôlables entre les modèles. La figure 4.18 offre
une version alternative du diagramme d'assemblage de la composante Drill où certaines
contraintes sont exprimées directement sur les AFD des instances du sous-système. Dans
ce diagramme on voit que l'élément de mémoire SW a été supprimé et que l'ensemble de
ses événements (tous contrôlables) sont maintenant partagés par un ou plusieurs des autres
éléments (AFD) du modèle. Ceci est le seul cas où des événements synthétiques peuvent
être privés du support d'un élément de mémoire. Avec ce nouveau diagramme d'assem-
blage, la contrainte de contrôle dénotée (1) dans la figure 4.17 devient inutile puisqu'elle
fait maintenant partie intégrante de la structure de transition du sous-système.
Dans un modèle de sous-système, rien n'empêche de partager directement les évé-
nements contrôlables entre les AFD d'instances de composantes pour exprimer des con-
traintes de contrôle. Il suffit de disposer d'une notation appropriée pour l'exprimer (ici le
diagramme d'assemblage). Cette façon de procéder peut être plus compacte lorsque les con-
traintes exprimées sont claires et n 'impliquent que des transitions sur événements contrô-
lables. Il faut noter que cette façon d'exprimer des contraintes modifie explicitement la
structure de transition des composantes impliquées, dans ce cas le diagramme de structure

Drill

FIGURE 4.18 - Composante Drill (diagramme d'assemblage alternatif)

219
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

devient un élément essentiel de la spécification de contrôle. Une alternative consiste à don-


ner les transitions à ajouter explicitement dans la spécification de contrôle ou dans l'énoncé
d'instanciation des composantes réutilisables. La technique peut entraîner une tendance à
la surspécification mais elle est trop commode pour s'en passer.

4.3 Processus global de conception


Le processus de conception, tel que préconisé par le genre de composantes réutilisables
considérées ici, consiste en un processus de raffinements successifs :
1. concevoir un sous-système, ce qui veut dire formuler et résoudre un problème de
contrôle ;
2. abstraire le résultat de la conception d'un sous-système (la solution à un problème
de contrôle) en lui adjoignant une interface appropriée à l'aide de l'algorithme de
Wong;
de bas en haut, jusqu'à l'obtention d'un système global. Bien sûr il y une exception : le
système global lui-même. Mais même le système global peut être considéré comme une
composante dont l'interface efface tous les événements.
Le processus de conception d'un sous-système prend deux formes différentes selon
qu'il s'agit du sous-système d'une composante de base (où le processus de conception est
réalisé de façon ad hoc) ou de celui d'une composante mixte (conception SCT à partir
d'instances de composantes réutilisables). Mais ces deux types de processus se déroulent
selon un schéma commun et doivent produire des spécifications similaires.
1. On doit obtenir un modèle du comportement libre du sous-système qui sert de base à
l'élaboration de la spécification de contrôle.
2. Ensuite on procède à l'élaboration de la spécification de contrôle.
3. Finalement on procède à l'extraction de la loi de contrôle correspondant à la spécifi-
cation de contrôle et à l'élaboration d'un modèle du système sous contrôle.
Pour le sous-système d'une composante mixte, le processus est conforme à SCT. Il faut
établir les éléments suivants :

220
CHAPITRE 4. MODÉLISATION DE PROBLÈMES DE CONTRÔLE

1. le diagramme d'assemblage ;
2. la spécification de structure comprenant : l'inventaire des ressources du sous-système,
la spécification de contrôle et la loi de contrôle ;
(voir en section D.2). La loi de contrôle est naturellement obtenue par application des pro-
cédures de synthèse de SCT. L'expression du système sous contrôle local (G ts ) n'est né-
cessaire que si le sous-système doit être doté d'une interface (c'est-à-dire abstrait).
Pour le sous-système d'une composante de base, puisque le processus est ad hoc, tous
les éléments sont spécifiés à priori et documenté selon la méthode choisie. Le modèle
du comportement libre prend en général la forme d'un modèle exhaustif du système (voir
section [Link]). La loi de contrôle est spécifiée a priori par insertion de code d'intégration
donné dans la spécification de structure (voir section D.l). Finalement un modèle exhaustif
est dressé à priori. Certaines lignes directrices sont utiles comme : dresser des AFD comme
modèles, associer chaque état de ces AFD à une configuration détectable du matériel et en-
fin de baser l'alphabet d'événements sur des changements détectables de la configuration
du matériel. Le modèle exhaustif doit nécessairement être un AFD puisqu'il sert de point
d'entré à l'abstraction d'une interface (le modèle G ts ). L'usager est responsable de véri-
fier formellement ou, au moins, de valider statistiquement le comportement sous contrôle
présumé. Il en va de la qualité des modèles qui plus tard sont soumis à la synthèse.
Le processus d'abstraction, lui, est commun au deux type de composantes et se déroule
toujours selon le même schéma. À partir d'un modèle du sous-système sous contrôle local
Gts,
1. on établit une machine de Mealy pour la projection désirée (il s'agit d'hypothèses
que l'on fait sur les transitions à projeter) ;
2. on soumet ces hypothèses de projection à l'algorithme de Wong qui calcule une bi-
simulation du sous-système et, le cas échéant, soumet des hypothèses de projection
supplémentaires ;
3. si on est satisfait du résultat, on a terminé, sinon on doit reformuler des hypothèses
et boucler à l'étape (2).
À la sortie de cette procédure heuristique, le résultat de l'algorithme de Wong est une défi-
nition d'interface adéquate (c'est-à-dire une projection dotée de la propriété d'observateur).

221
Chapitre 5

Étude de cas, le MPS

L'usine école MPS est une usine modulaire Festo™ dont on peut trouver la description
détaillée dans l'ensemble des brochures techniques : [17, 18, 19, 20] et [21]. Cette usine
modulaire est conçue spécifiquement pour la formation de techniciens ayant à programmer
ce type de dispositifs en industrie. L'usine école MPS constitue donc un exemple représen-
tatif de dispositif industriel dont la taille procure une étude de cas représentative du type
de problèmes rencontrés. Dans son ensemble, d'une douzaine de cellules de traitement,
l'usine école matérialise le processus d'assemblage de pistons pour des moteurs à combus-
tion. Cependant, puisqu'il s'agit d'un outil pédagogique, les matériaux utilisés ne sont pas
les matériaux réels, question de coûts, et les éléments usinés (des pièces rondes en plastique
et en aluminium) peuvent être réutilisés.
L'usine école MPS comporte potentiellement une douzaine de cellules de traitement
divisées en plusieurs stations. Le laboratoire des système réactifs n'en compte que quatre
(les quatre premières) :
1. la station de livraison ;
2. la station de test ;
3. la station d'usinage ;
4. la station de manutention.
Dans le montage du laboratoire l'ensemble est contrôlé par un automate programmable

222
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

Siemens™ modèle 315PN/DP [51] sur un réseau Profibus™.


L'étude de cas proposée s'attache à formaliser et résoudre les problèmes de contrôle
des stations de livraison, de test et d'usinage. Pour pouvoir modéliser un système complet,
la grue de transfert à la sortie de la station d'usinage est incluse dans le sous-système
modélisant le processus d'usinage. L'étude de cas modélisé donc trois sous-systèmes :
1. le sous-système DStn pour la station de livraison ;
2. le sous-système TStn pour la station de test ;
3. le sous-système PStn pour la station d'usinage comprenant la grue de transfert.
Une spécification informelle des trois sous-systèmes, sous forme de grafcets, est donnée
dans l'ensemble des brochures Festo™ citées précédemment. Cette description informelle
n'est pas complète mais constitue une base suffisante pour élaborer les spécifications de
l'étude de cas.
Pour fin d'illustration les sous-systèmes DStn, TStn et PStn sont d'abord modélises
comme des composantes locales du projet. Leurs problèmes de contrôle respectifs sont
ainsi spécifiés et résolus indépendamment, puis leurs solutions respectives sont abstraites
par projection comme dans le cas de composantes réutilisables. Un système global est en-
suite assemblé à partir des interfaces de ces composantes locales, son problème de contrôle
spécifié et, enfin, résolu par synthèse. Cette manoeuvre, bien qu'elle ne soit pas essentielle,
permet de diviser le problème de contrôle global en sous-problèmes de contrôle d'envergure
plus modeste, plus faciles à comprendre et à spécifier. La modélisation s'effectue à partir
du catalogue des composantes réutilisables (élémentaires et mixtes) élaboré à l'annexe D.

5.1 Sous-système DStn, la station de livraison


La station de livraison du MPS a comme fonction d'alimenter le processus d'usinage
en présentant des pièces à usiner (des rondelles de plastique et d'aluminium) une à une à la
station de test située en aval. Elle est composée de deux éléments :
1. un distributeur de pièces (Yinjecteur) modélisé à partir de la composante élémentaire
Injector;
2. une grue de transbordement modélisée par la composante mixte BLRCrane.
223
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

On trouve en figure 5.1 un diagramme d'assemblage des éléments du problème de contrôle


de la station de livraison avec le détail de son séquenceur (un élément de mémoire) en
figure 5.2. La figure 5.3 donne le modèle d'interface (G,G) de la solution (la composante
locale DStn).
La version abstraite du sous-système sous contrôle, illustrée en figure 5.3, est obtenue
avec la définition de la fonction de projection donnée dans le tableau 5.1. La structure de
transition de la solution est un peu trop volumineuse pour l'illustrer par une figure (34 états
et 47 transitions) aussi préfère-t-on ici un tableau. Dans le tableau, seules les transitions
pertinentes pour la projection sont données. 11 est présumé que la projection efface toutes les
autres transitions. Le modèle de la projection G de la figure 5.3 est un observateur obtenu
par application de l'algorithme de Wong et Wonham [60] en faisant certaines hypothèses
sur la structure de transition de la solution du problème de contrôle.
Informellement, l'injecteur distribue les pièces à usiner sur un dock de chargement situé
à gauche de la grue. Une fois au dock, une pièce doit y être maintenue par l'injecteur jusqu'à
ce que la grue de transbordement la saisisse. L'injecteur doit alors relâcher son emprise sur
la pièce pour que la grue puisse la transborder jusqu'à la platefonne de la station de test
située à droite de la grue. La position initiale de la grue (au repos, lorsque l'injecteur est
vide) est à la plateforme de la station de test (lorsque cette dernière est aussi vide bien
sûr). Il y a cependant une interaction nuisible entre la grue et la station de test. La grue ne
peut fonctionner que si la station de test est au repos (plateforme de test vide, rien à tester).
Réciproquement, la station de test ne peut fonctionner que si la grue est en position au dock
de chargement.
La plateforme de la station de test est munie d'un capteur de présence. Cependant ce
dernier ne peut pas être utilisé par la station de livraison puisqu'il n'en fait pas partie.
Le séquenceur incorpore donc une mémoire pour se rappeler chaque fois qu'il a livré une
pièce à la station de test. À chaque livraison d'une pièce la grue de la station de livraison est
systématiquement rapatriée au dock de chargement. Elle n'est ensuite libérée qu'à travers
un événement du sous-système; l'événement synthétique contrôlable rst. Ainsi la station
de livraison peut être contrôlée pour attendre que la station de test fasse son travail avant
de livrer une autre pièce ou de regagner sa position initiale le cas échéant.

224
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

DStn

Seq Inj

(T) ^ J
Wp y*

3\o) 1)

ir (jy ¥ 'e

FIGURE 5.1 - Sous-système DStn, diagramme d'assemblage

(4) Q ie. gle. gre. de


(5) Çl wp. gle. gre. de
(6) Q wp. ie. gre. de
(7)(> [Link]

(8) Q H>/>. ie. gle. gre. de


(9)Q ie,[Link]
( 10) Q "P- '£• g'e- de
(ll)O ie,[Link]

FIGURE 5.2 - Sous-système DStn, détails du séquenceur

225
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

DStn :G
dwp : arrivée d'une pièce
dgle : arrivée au dock
drst : verrouillage au dock
dwp

DStn :G
Inj Crn
wp : work pièce arrivai gl : go left cl : close
/ : inject gle : go left end cle : close end
ie : inject end gr : go right op : open
ir : injector rearm gre : gorightend ope : open end

Voir le tableau 5.1 pour la définition de la projection.

FIGURE 5.3 - Sous-système DStn, et projection

TABLE 5.1 - Sous-système DStn, modèle de la projection G


7 G QDSU, °~ € Tipstn ^DStn((l-,v) <7 ^ QûStn a G T^ostn ^Dsui(q-<r)
0,0,0 wp dwp 7,0,8 wp dwp
11,0,1 wp dwp 11,0,1 gle dgle
13,0,2 wp dwp 12,1,1 gle dgle
16,0,2 wp dwp 2,3,1 gle £

16,0,3 wp dwp 9,3,1 gle dgle


5,0,5 wp dwp 10,3,2 rst drst
5,0,6 wp dwp 13,0,2 rst drst
7,0,0 wp dwp 14,1,2 rst drst
7,0,7 wp dwp

226
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

Les détails structurels de la composante locale DStn, comprenant la spécification for-


melle de ses requis de contrôle ainsi que la formulation de la loi de contrôle obtenue par
synthèse sur l'ensemble des contraintes, sont donnés dans la spécification de composante
qui suit.

Component DStn {

SubSystem DStn {
State Vector = <Seq, Inj, Crn>

Seq : MW; /* Sequencer memory 0..16 */


Inj : Injector with {
E,. := { inject [i], rearm[ir] }
S u := { injectend[ie], wpa[wp] }
}
Crn : BLRCrane with {
S € : = { c b l [ g l ] , c b r [ g r ] , c h c [ c l ] , cho [op] }
£,, := { c b l e [gle] , c b r e [gre] , chce [ c l e ] , choe [ope] }
}
Synthetic := { E c := { rst } }

CtrlSpec {
/* Implicit */
/*(1) */ Inj = 2 A Crn G {1,2,3,4,5,6} (Safety)
/*(2) */ Inj = 3 A Crn G {3,6} (Safety)
/*(3) */ Inj G {0,1,2} A Crn = 4 (Safety + fct)
/* Standard wrt Seq */
/*(4) */ Seq G {0,7,13} A ( Inj = 2 V Crn G {1,3,4,6})
/*(5) */ Seq G {1,8} A ( Inj = 0 V Crn G {1,3,4,6})
/*(6) */ Seq € {2,9,12}
A { Inj G {0,2} V Crn G {3,4,6})
/*(7) */ Seq = 3 A ( Inj G {0,2} V Crn G {l,3,6})
/*(8) */ Seq G {4,10,14}
A ( Inj G {0,2} V Crn G {1,3,4,6})
/*(9) */ Seq G {5,16} A ( Inj = 2 V Crn G {1,4})
/*(10)*/ Seq G {6,15} A ( Inj G {0,2} V Crn G {l,4})
/*(11)*/ Seq = 11 A ( Inj = 2 V Crn G {3,4,6})
/* Explicit wrt Seq */

227
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

/*(12) gl <= Seq G {2,7,9} */


/* (13) ir <= Seq = 4 */
/*(14) rst <= Seq G {10,13,14} */
}

J rst '• =
Seq € {10,13,11}
fi = =
I n j = 1 A Seq G { 1 , 8 }
/ir :=
Inj = 3 A Seq = 4
Jgi '• -
Crn = 0 A Seq G { 2 , 7 , 9 }
Ur :-
(Crn = 2 A Seq G { 1 5 , 1 6 } )
V (Crn = 5 A S e q G { 5 , 6 } )
fci : = Crn = 2 A Seq = 3
fop := Crn = 7

L'élément séquenceur de la figure 5.2 constitue un automate de langage légal classique


(contexte usuel de SCT). Pour pouvoir l'utiliser dans un modèle de STS sans structure ver-
ticale (comme préconisé par cette méthode de conception) il faut le fermer sur l'ensemble
des événements incontrôlables qu'il utilise et partage avec les autres dispositifs du sous-
système. On a donc les annotations (4) à (11) sur la figure qui correspondent à des requis de
contrôle standards dans la définition de la composante. Les requis correspondants peuvent
être déduits par la méthode exposée au chapitre 4 de [39]. Aussi, le séquenceur définit ex-
plicitement l'usage de certains événements contrôlables dans une séquence spécifique. Ce
sont les contraintes numérotées (12) à (14) dans la spécification de contrôle. On y retrouve
l'événement synthétique du sous-système. Finalement les contraintes numérotées (1) à (3)
sont des contraintes qui spécifient principalement des conditions de sécurité par exclusion
mutuelle entre les états que peuvent adopter les dispositifs physiques. Elles sont dites impli-
cites car elles ne requièrent pas le support d'un élément de mémoire pour leur formulation,
l'information sur les états des dispositifs physiques suffit (voir la section [Link]).

228
CHAPITRE 5. ETUDE DE CAS, LE MPS

La composante locale DStn encapsule un modèle brut de 11 016 états si on compte


le séquenceur comme une composante du sous-système. Il nécessite la formulation de 22
requis de contrôle auxquels s'ajoutent les 10 requis de contrôle réutilisés par instanciation
de composantes réutilisables pour un total de 32 requis de contrôle pour le sous-système.

5.2 Sous-système TStn, la station de test


La station de test a comme fonction de soumettre les pièces, qui lui sont présentées par
la station de livraison, à un test de contrôle de qualité concernant l'épaisseur de la pièce.
Une pièce répondant aux tolérances quant à l'épaisseur est admise dans un tampon à l'en-
trée de la station d'usinage. Une pièce hors tolérance est rejetée. Le tampon ne peut contenir
qu'une seule pièce au maximum. On trouve en figure 5.4 un diagramme d'assemblage des
éléments du problème de contrôle de la station de test avec le détail de son séquenceur (un
élément de mémoire) en figure 5.5. Lafigure5.6 donne le modèle d'interface (G,G) de la
solution (la composante locale TStn).
La station de test est munie d'une plateforme montée sur un vérin monte-charge (Lift
dans lafigure5.4) lui permettant d'adopter deux positions :
- la position haute où se trouve la sonde d'un micromètre (MM dans la figure 5.4)
montée sur un vérin ainsi que l'entrée du tampon de préusinage ;
- la position basse où se trouve une chute de rejet pour les pièces non conformes.
La plateforme elle-même est munie d'un vérin d'évacuation (Eve dans la figure 5.4) lui

TStn

FIGURE 5.4 - Sous-système TStn, diagramme d'assemblage

229
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

Seq

(8)
0 lue, Ide,mp, mf, me, ee
(9) 0 Ide, me,ee

(10) 0 lue, Ide,mp, mfee

(H) 0 lue, mp, mf me, ee


(12) 0 lue, Ide,mp, mfme

FIGURE 5.5 - Sous-système TStn, détails du séquenceur

permettant de pousser une pièce hors de la plateforme dans une direction prédéterminée.
L'état initial de la station de test (au repos quand la plateforme est vide) se trouve en posi-
tion basse, le vérin évacuateur hors fonction et le micromètre hors fonction (sonde retirée
et micromètre à l'état initial).
Informellement, sur réception d'une pièce à tester, la station doit d'abord effectuer un
test de tolérance. Or la sonde du micromètre est située en position haute. Le monte-charge
est donc d'abord commandé en position haute puis le micromètre enclenché. Sur l'émission
du résultat de test par le micromètre l'une d'entre deux séquences d'actions possibles doit
être sélectionnée. Mais dans les deux cas il faut d'abord attendre que la sonde du micro-
mètre se soit désengagée complètement puisqu'il y a une possibilité d'interaction nuisible
avec Pevacuateur. Lorsque le test est positif la pièce est admissible à l'usinage. Puisque le
monte-charge est déjà en position pour le chargement du tampon de préusinage, Pevacua-
teur peut tout de suite être enclenché puis le monte-charge redescendu en position basse.
Lorsque le test est négatif la pièce doit être rejetée. Or la chute de rejet se situe en position
basse. Le monte-charge est donc d'abord commandé en position basse puis Pevacuateur
enclenché. Après le traitement complet d'une pièce (chargement au tampon ou rejet) le
micromètre est réarmé terminant le cycle complet de la station de test (retour à l'état initial
en attente d'une pièce à tester).
Les détails structurels de la composante locale TStn, comprenant la spécification for-

230
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

TStn: G
tes
ts : démarrage de test 'P s^Qy*
tp : succès ts
tf
te
: échec
:finde test
^/ôT^^ W "^5X. m
tes : début de transfert te tee
tee :finde transfert

TStn :G
Lift MM Eve
lu liftup ms : MM start es : evacuator start
lue lift up end mp : MM test pass ee : evacuator end
Id lift down mf : MM test fail
Ide lift down end me : MM test end Synthetic
mr : MM reset tstrt : test station start

ee/e es/a Ide/s Id/e me/e


.___^ 3.0,3,

mr/te mf/tf

ro,o,o
m
mr/te p/lP

C9,0,3,i 3.3.3J 3,2,3,1 rw,3. ',2,3,1


Ide/e Id/e ee/tee es/tes me/e

FIGURE 5.6 - Sous-système TStn et projection

231
CHAPITRE 5. ETUDE DE CAS, LE MPS

melle de ses requis de contrôle ainsi que la fonnulation de la loi de contrôle obtenue par
synthèse sur l'ensemble des contraintes, sont donnés dans la spécification de composante
qui suit.

Component TStn {

SubSystem TStn {
State Vector = <Seq, Lift, MM, E v o

Seq : MW; /* Sequencer memory 0..9 */


Lift : Jack211a with {
E, := { deploy [lu], retract [ld] }
E M := { deployend[lue], retractend[Ide] }
}
MM : MicroMeter w i t h {
E(. := { t e s t [ms] , r e s e t [mr] }
£„ := { e n d [ m e ] , p a s s [ m p ] , f a i l [ m f ] }
}
Eve : JackllOSS with {
Er := { start [es] }
Eu := { stop[ee] }
}
Synthetic := { Ec := { tstrt } }
CtrlSpec {
/* Implicit mainly safety */
/* Lift x MM */
/*(!) */ Lift G {1,3} A MM € {1,2}
/*(2) •/ Lift = 0 A MM G {1,2}
/*(3) */ Lift = 1 A MM = 3
/*(4) */ Lift = 3 A MM = 0
/* Lift x Eve */
/*(5) */ Lift G {1,3} A Eve = 1
/* MM x Eve */
/*(6) */ MM = G {1,2} A Eve = 1
/* (7) */ MM = 0 A Eve = 1
/* Standard wrt Seq, cover safety and add fct */
/*(8) */ Seq G {0,5,9} A

232
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

( Lift € { 1 , 3 } V MM G { 1 , 2 } V Eve = 1 )
/ * ( 9 ) * / Seq = 1 A ( L i f t = 3 V MM = 2 V Eve = 1 )
/ * ( 1 0 ) * / Seq € {2,6} A
( Lift £ { 1 , 3 } V « H = 1 V Eve = 1 )
/ • ( 1 1 ) * / Seq € {3,8} A
( Lift = 1 V M M 6 { 1 , 2 } V Eve = 1 )
/ * ( 1 2 ) * / Seq G {4,7} A
( Lift G { 1 , 3 } V MM G { 1 , 2 } )
/*(13) tstrt <= Seq = 0 * /
}

J tstrt '•-
Seq = 0
flu • =
L i f t = 0 A Seq = 1
fia '• =
L i f t = 2 A Seq = G { 3 , 8 }
J ms ' ~
MM = 0 A L i f t = 2
=
/mr •
MM = 3 A Seq G { 9 , 5 }
Jes '• ~
Eve = 0 A Seq e {4,7}

}
}
Puisque l'activité de la station de test est totalement séquentielle, l'usage d'un sé-
quenceur en figure 5.5 (un automate de langage légal) est assez naturelle. Sa structure
est d'ailleurs beaucoup plus simple que celle du séquenceur de la station de livraison (en
figure 5.2) qui admet un certain niveau de parallélisme dans son action. Les mêmes re-
marques que pour le séquenceur de la station de livraison sont applicables au séquenceur
de la figure 5.5 quant à la façon d'obtenir les requis dit standards numérotés (8) à (12). La
même numérotation est suivie dans la spécification de contrôle pour la composante locale
TStn. Encore une fois, le séquenceur contient une contrainte explicite, numérotée (13), sur
l'événement synthétique contrôlable tstrt correspondant à une commande de démarrage de
la station de test. Le reste des requis de contrôle, numérotés (1) à (7), sont des contraintes

233
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

implicites.
- Les contraintes (1), (5) et (6) spécifient que Faction des dispositifs de la station doit
être strictement alternée (pas de parallélisme - sécurité).
- La contrainte (2) interdit l'entrée en action du micromètre lorsque le monte-charge
est en position basse.
- La contrainte (3) interdit au monte-charge de remonter lorsqu'un test a déjà été fait
et la contrainte (4) de redescendre avant que le test ne soit réalisé.
- La contrainte (7) interdit que Pevacuateur soit enclenché sans connaître d'abord le
résultat du test.
La composante locale TStn encapsule un modèle brut de 69 120 états si on compte le
séquenceur comme une composante du sous-système. 11 nécessite la formulation de 22
requis de contrôle auxquels s'ajoutent les 14 requis de contrôle réutilisés par instanciation
de composantes réutilisables pour total de 36 requis de contrôle pour le sous-système.

5.3 Sous-système PStn, la station d'usinage


La station d'usinage est plus complexe que les deux autres. 11 s'agit d'un sous-système
construit sur le modèle d'une ligne de montage. Elle comprend une table d'usinage (un
convoyeur circulaire) le long de laquelle sont disposées des positions d'usinage effectuant
des transformations graduelles sur des pièces à traiter avec un contrôle de qualité à la fin. Ici
le sous-système est réduit à sa plus simple expression et ne contient que quatre positions :
- une position d'entrée où les pièces sont admises à l'usinage ;
- une position de perçage ;
- une position pour un test de contrôle de qualité du perçage ;
- une position de sortie.
La figure 5.7 donne un diagramme d'assemblage du sous-système. Un vérin d'obstruction
(Buf en figure 5.7), disposé à la sortie du tampon de préusinage, est utilisé pour contrôler
l'admission des pièces à la position d'entrée. Un mécanisme d'entraînement du convoyeur
(Cvr en figure 5.7) permet de faire progresser la table d'usinage, une position à la fois, de
la position d'entrée vers la position de sortie. Une perceuse (Drill en figure 5.7), disposée
juste après la position d'entrée, permet d'effectuer une perforation dans la pièce. Une sonde

234
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

de profondeur (Tstr en figure 5.7) disposée juste après la position de la perceuse permet
d'évaluer si la perforation effectuée par la perceuse est assez profonde. Enfin, à la position
de sortie, une grue de transfert (Crn en figure 5.7) est responsable d'extraire la pièce traitée
et de la transférer vers la sortie du système ou de la rejeter, dependamment du résultat du
contrôle de qualité. La figure 5.8 et la figure 5.9 donnent des détails complémentaires sur
les éléments de mémoire du sous-système. Enfin, la figure 5.10 donne le modèle d'interface
(G,G) du sous-système (la composante locale PStn).
Informellement, la station d'usinage se trouve à l'état initial (au repos) lorsque la table
d'usinage est vide et que tous les dispositifs de la ligne de montage (vérin d'obstruction,
perceuse, sonde et grue de transfert) sont au repos (hors fonction). À l'admission d'une
pièce à l'usinage, cette pièce doit être percée puis sa perforation testée et, dependamment
du résultat de ce test, la pièce doit ensuite être rejetée ou transférée à la sortie du système.
Plusieurs pièces peuvent être en traitement simultanément. Les dispositifs d'usinage ne
doivent pas entrer en fonction inutilement (sur une position vide par exemple) et ne doivent
entrer en fonction qu'une seule fois sur une même pièce.
Les détails structurels de la composante locale PStn, comprenant la spécification for-
melle de ses requis de contrôle ainsi que la formulation de la loi de contrôle obtenue par
synthèse sur l'ensemble des contraintes, sont donnés dans la spécification de composante
qui suit.

PStn

FIGURE 5.7 - Sous-système PStn, diagramme d'assemblage

235
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

FIGURE 5.8 - Sous-système PStn, détails de SRO

PStn

SRI

cve,tf
*4w)
tf
DMon TMon tp (xj^\cve
V ^ cr N. {_} et

^i 0 y* cve ^ToVr cve Cshy


cr 7~S
cve / ^io
de[\ \J cve te( \ tftp tp / cve
cve
AU AJJ (Sct
de te tf,tp

FIGURE 5.9 - Sous-système PStn, détails de DMon, TMon et SRI

236
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

pbo
PStn : G
pbo : ouverture du tampon <s/()V j'O
pbc : fermeture du tampon ^^^~~~nh~~^^

PStn : G
Buf Drill Crn
bo : buffer open as : drill start et : crâne transfer
bce : buffer close end de : drill end cr : crâne reject
ce : crâne pick-up done
Cvr Tstr
CVS : conveyor step ts : tester start
cve : conveyor step end te : tester end
tp : test pass
/ / : test fail

Le système sous contrôle comporte 526 états dont 2 sont terminaux,


et 1 328 transitions.
La machine de Mealy correspondante projette toutes les transitions
étiquetées bo sur l'événement pbo (168 transitions) et toutes les
transitions étiquetées bce sur l'événement pbc (168 transitions).

FIGURE 5.10 - Sous-système PStn, détails et projection

237
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

Component PStn {
SubSystem PStn {
State Vector = <DMon, TMon, SRO, Buf, Cvr, Drill, Tstr,
Crn, SR1>
DMon : MW; /* Drill done Monitor 0..1 */
TMon : MW; /* Tester done Monitor 0..1 */
SR0<M0,M1,M2,M3> : MW; /* Work Table state 0,..,15 */
SR1<M4,M5> : MW; /* Test Resuit double buffer */

Buf : JacklOOSS with {


E,. := { start [bo] }
S u := { stop [bce] }
}
Cvr : TSCvrDrv with {
E c := { s t e p [ c v s ] }
E u := { e n d [ c v e ] }
}
Drill : Drill with {
Sc. : = { start [ds] }
E u := { end[de] }
}
Tstr : PSTester with {
E,. := { test [ts] }
E„ := { p a s s [ t p ] , fail [tf], end[te] }
}
Crn : FHHSCrane with {
£ ( . := { t r s f [ e t ] , r j c t [ c r ] }
S„ := { p u e [ c e ] }
}

CtrlSpec {
/* I m p l i c i t (safety) */
/ * (1) * / Cvr = 1 A Buf = 1
/ * ( 2 ) * / Cvr = 1 A D r i l l = 1
/ * ( 3 ) * / Cvr = 1 A T s t r € { 1 , 2 }
/ * ( 4 ) * / Cvr = 1 A C r n = 1
/ * S t a n d a r d w r t SRO ( s e q u e n e i n g ) */
/ * ( 5 ) * / Buf = 1 A

238
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

SRO G { 1000, 1001, 1010, 1011, 1100, 1101,


1110, 1111 }
/*(6) */ Crn = 1 A
SRO G { 0000, 0010, 0100, 0110, 1000, 1010,
1100, 1110 }
/* (7) */ Cvr = 1 A
SRO € { 0000, 0001, 0011, 0101, O U I , 1001,
1011, 1101, 1111 }
/* Implicit wrt SRO (sequeneing) */
/* (8) */ Drill = 1 A
SRO G { 0000, 0001, 0010, 0011, 1000, 1001,
1010, 1011 }
/* (9) */ Tstr = 1 A
SRO € { 0000, 0001, 0100, 0101, 1000, 1001,
1100, 1101 }
/* Standard wrt DMon and TMon (sequeneing) */
/*(10)*/ DMon = 1 A Drill = 1
/*{11)*/ TMon = 1 A Tstr = 2
/* Implicit wrt DMon, TMon, Cvr and SRO (sequeneing) */
/*(12)*/ DMon = 0
A SRO G { 0100, 0101, 0110, O U I , 1100, 1101,
1110, 1111 }
A Cvr = 1
/* (13)*/ TMon = 0 A
A SRO G { 0010, 0011, 0110, O U I , 1010, 1011,
1110, 1111 }
A Cvr = 1
/* Explicit in SRI (sequeneing) */
/*(14) cr <= SRI G { 00, 10 } */
/*(15) et <= SRI G { 01, 11 } */
}
/* Control Law : */
fbo •=
Buf = 0
A Cvr = 0
A SRO G { 0000, 0001, 0010, 0011, 0100, 0101, 0110,
OUI }

239
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

.1 cvs '• —
Cvr = 0
A Buf = 0
A Drill = 0
A Tstr = 0
A Crn = 0
A ( SRO = 1000
V ( SRO G { 0100, 1100 } A DMon = 1 )
V ( SRO G { 0010, 1010 } A TMon = 1 )
V ( SRO G { 0110, 1110 } A DMon = 1 A TMon = 1 )
)
fds •=
Drill = 0
A Cvr = 0
A DMon = 0
A SRO G { 0100, 0101, 0110, 0111, 1100, 1101, 1110,
1111 }
J ts '• ~
Tstr = 0
A Cvr = 0
A TMon = 0
A SRO G { 0010, 0011, 0110, O U I , 1010, 1011, 1110,
1111 }
1er ==
Crn = 0
A Cvr = 0
A SRO € { 0001, 0011, 0101, O U I , 1001, 1011, 1101,
1111 }
A SRI G { 00, 10 }
Jet '• =
Crn = 0
A Cvr = 0
A SRO G { 0001, 0011, 0101, O U I , 1001, 1011, 1101,
1111 }
A SRI G { 01, 11 }
}
}

240
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

Il est préférable d'aborder la spécification de contrôle de la station d'usinage par étapes :


contraintes de sécurité d'abord, coordination du séquencement global des activités ensuite
et finalement contraintes relatives aux particularités des différentes positions d'usinage.
Les contraintes numérotées ( 1 ) à (4) dans la spécification concernent la sécurité des
dispositifs. Elles stipulent simplement que le convoyeur ne peut être en fonction en même
temps que les dispositifs d'usinage, contraintes (2) et (3), que le vérin d'obstruction du
tampon, contrainte ( 1 ), ou pendant que la grue est en train d'extraire une pièce de la position
de sortie, contrainte (4). Ces contraintes sont implicites car l'état des dispositifs impliqués
suffit comme support à leur formulation.
Les contraintes numérotées (5) à (7) concernent la coordination de l'activité globale de
la station. Pour spécifier ces contraintes il est nécessaire de modéliser l'état des différentes
positions du convoyeur par un élément de mémoire ; le registre à décalage SRO dont le
schéma est donné en figure 5.8. Dans ce schéma les états sont dénotés par des chaînes de
bits de la forme «entrée, perceuse, sonde, sortie» correspondant aux positions sur la table
d'usinage. Par exemple, l'état identifié «0101» correspond à une configuration de la table
d'usinage où la position de la perceuse et la position de sortie sont occupées par une pièce
et les autres positions sont vides. Cette forme de notation est jugée plus claire pour les
registres à décalage. Puisqu'il s'agit d'un élément de mémoire il faut fermer son modèle
sur l'ensemble des événements incontrôlables qu'il utilise (annotations (i) à (v) dans la
figure 5.8). Les contraintes qui en résultent (des contraintes standards) sont déduites par
la procédure donnée dans [39] au chapitre 4. On ne peut admettre une pièce à l'usinage
que si la position d'entrée est vide ; contrainte (5). La grue de transfert ne peut entrer en
fonction que si une pièce est présente à la position de sortie ; contrainte (6). Le convoyeur
ne peut entrer en fonction que si la position de sortie est vide (elle a été vidée par l'activité
de la grue de transfert) à condition que la table d'usinage ne soit pas vide (configuration
«0000»).
II faut spécifier quelques contraintes pour éviter que la perceuse et la sonde entrent en
fonction lorsque les positions correspondantes de la table d'usinage sont vides. Les états
des dispositifs impliqués associés à l'état de la table d'usinage (le registre à décalage SRO)
suffisent pour supporter la spécification de ces contraintes. Les contraintes (8), pour la per-
ceuse, et (9), pour la sonde, sont donc des contraintes implicites empêchant ces dispositifs

241
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

d'entrer en fonction sur une position correspondante vide de la table d'usinage.


L'ensemble des contraintes mises en place jusqu'à présent définissent les requis de sé-
curité et la séquence générale des opérations de la station. Mais avec ces requis la perceuse
et la sonde de contrôle de qualité peuvent toujours entrer en fonction 0,1 ou plusieurs fois
sur une même pièce lorsqu'elle se présente à leur position d'usinage respective. Aussi, bien
que la grue de transfert entre en opération au moment voulu, rien ne lui permet de sélec-
tionner l'action appropriée à la situation (rejet ou transfert). Pour empêcher la perceuse et la
sonde de fonctionner plus d'une fois pour la même pièce et permettre la sélection de l'opé-
ration appropriée de la grue il faut ajouter les éléments mémoire illustrés à la figure 5.9 :
les moniteurs d'opération DMon, TMon et le registre à décalage SRI.
Les contraintes (10) et (II) de la spécification de contrôle sont, respectivement, des
requis standards par rapport aux moniteurs DMon et TMon. Ils empêchent la perceuse (10)
et la sonde (11) d'entrer plus d'une fois en fonction sur une même pièce, ll faut noter que
l'événement cve est utilisé pour remettre les deux moniteurs à zéro à chaque activation du
convoyeur mais que les requis (10) et (11) ne stipulent aucune contrainte sur l'activité du
convoyeur (la transition en boucle sur cve est légale dans ce contexte). Pour obliger la per-
ceuse et la sonde à entrer en fonction lorsqu'une pièce se présente à leur position d'usinage
respective, il faut aussi spécifier les contraintes implicites (12) et (13). L'information d'état
de la table d'usinage (SRO en figure 5.8) alliée à celles du moniteur (DMon en figure 5.9)
et du convoyeur suffisent pour stipuler une contrainte implicite (12), qui a pour effet d'em-
pêcher le convoyeur d'entrer en fonction avant que la perceuse n'ait eu le temps de faire
son travail. Un raisonnement analogue peut être fait pour la contrainte (13) relativement à
la sonde de contrôle de qualité.
Finalement, le registre à décalage SRI, dont le modèle est illustré à la figure 5.9, sert à
mémoriser le résultat du test de la sonde de contrôle pour ensuite le transporter en synchro-
nisme avec la pièce correspondante. Cette manoeuvre est nécessaire car le résultat du test
à la sonde de contrôle de qualité doit servir subséquemment (après un cycle du convoyeur)
à la grue de transfert pour sélectionner l'action appropriée lors de son entrée en fonction
(rejet ou transfert). Sans l'usage d'un double tampon comme SRI, il y a un risque que la
sonde de contrôle de qualité détruise ce résultat de test avant qu'il n'ait été utilisé. Les
requis (14) et ( 15) sont explicites dans le modèle de SRI, il s'agit des transitions en boucle

242
CHAPITRE 5. ETUDE DE CAS, LE MPS

sur les événements contrôlables et et cr partagés avec la grue de transfert. 11 faut noter que,
mis à part les requis (14) et (15), SRI n'impose aucune autre contrainte. Le modèle de
SRI est fermé sur l'ensemble des événements incontrôlables qu'il partage avec les autres
dispositifs et toutes ces transitions sont légales dans ce contexte. De plus, SRI n'impose
aucune contrainte de marquage, c'est-à-dire que tous ses états sont terminaux.
Dans le modèle de la projection de la composante locale PStn illustré en figure 5.10
il est impossible de donner une représentation graphique de la projection (la machine de
Mealy G) car elle est trop volumineuse. La fonction de projection est cependant très simple
car il suffit de projeter toutes les transitions qui correspondent à une activité du vérin d'obs-
truction du tampon de préusinage à l'entrée de la station (événements bo et bce).
La composante locale PStn encapsule un modèle brut de l'ordre de 7,13 x 1013 états
si on compte les éléments de mémoire DMon, TMon, SRO et SRI comme composantes du
sous-système. Il nécessite la formulation de 15 requis de contrôle auxquels s'ajoutent les
79 requis de contrôle réutilisés par instanciation de composantes réutilisables pour un total
de 94 requis de contrôle pour le sous-système.

5.4 Assemblage du système


Lafigure5.11 donne un diagramme d'assemblage pour le système complet. Comme on
peut le voir le système ne nécessite que l'adjonction de deux éléments de mémoire (deux
tampons de capacité d'une pièce) pour qu'il soit possible de coordonner les trois sous-
systèmes correspondant à des instances des composantes locales DStn, TStn et PStn. Les
requis de contrôle du système (tous standards) sont déduits de la façon usuelle (exposée
dans les sections précédentes).
Le système encapsule un modèle brut de l'ordre de 2,17 x 1023 états. Il nécessite la
formulation de 4 requis de contrôle auxquels s'ajoutent les 154 requis de contrôle réutilisés
par l'instanciation des composantes locales pour un total de 158 requis de contrôle.
Les détails structurels du système, comprenant la spécification formelle de ses requis de
contrôle ainsi que la formulation de la loi de contrôle obtenue par synthèse sur l'ensemble
des contraintes, sont donnés dans la spécification de système qui suit.

243
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

System

Delivery
wpa : arrivée d'une pièce
wpd : pièce livrée
def : libérer la grue

BufO
wpte
wpd

4x Vi) wpte
wpd

Test
Test
j wpl
wppy •^*® wpt : démarrage de test
wpt wpf wpp : succès
wpf : échec
'KiL^^VJ (i) m wpte fin de test
wpte
wple wpl : début de transfert
wple fin de transfert

Bufl
spbc
wple

*<°}
spbc
X)
wple

Processing
Processing
spbo
spbo : ouverture du tampon
spbc : fermeture du tampon
spbc

FIGURE 5.11- Diagramme d'assemblage du système

244
CHAPITRE 5. ÉTUDE DE CAS, LE MPS

System {
State Vector = <Delivery, BufO, Test, Bufl, Processing>

BufO : MW; /* Delivery to Test Buffer 0..1 */


Bufl : MW; /* Test to Processing Buffer 0..1 */

Delivery : DStn with {


S,. := { drst[dcf] }
S u := { dwp[wpa], dgle [wpd] }
}
Test : TStn with {
Ec := { t s [ w p t ] , t e s [wpl] }
S„ := { t p [ w p p ] , t f [ w p f ] , t e [wpte] , t e e [ w p l e ] }
}
Processing : PStn with {
Sc := { pbo [spbo] }
E u := { pbc[spbc] }
}
CtrlSpec {
/* Standard wrt BufO */
/*(!)*/ BufO = 0 A Test = 4
/*(2)*/ BufO = 1 A Delivery e {3,4}
/* Standard wrt Bufl */
/*(3)*/ Bufl = 0 A Processing = 1
/*(4)*/ Bufl = 1 A Test = 3
}
/* Control Law : */
Jdcf '• =
Delivery G {1,2} A BufO = 0
: =
/wpt
T e s t = 0 A BufO = 1
J wpl '• —
T e s t = 2 A Bufl = 0
.1 spbo '• =
P r o c e s s i n g = 0 A Bufl = 1

245
Conclusion

Le temps est maintenant venu d'établir un bilan des contributions de cette thèse. Il est
possible d'affirmer, sans exagérer, que tous les objectifs fixés initialement sont atteints.

Sommaire des contributions


Après une revue détaillée de la documentation de recherche sur la théorie et sur ses
variantes (au chapitre 1 et au chapitre 2), il est possible de formuler une métaphore de com-
posantes réutilisables, moyennant l'ajout de certains résultats mineurs complémentaires à
la théorie du contrôle hiérarchique de Wong et Wonham [55, 58, 59] (au chapitre 3). Cette
métaphore de composantes réutilisables fournit les bases d'une méthode d'abstraction et
d'encapsulation des requis de contrôle. Dans le cas des composantes élémentaires on ob-
tient principalement une façon de réutiliser (et éventuellement rentabiliser) le travail de
modélisation ad hoc qui est nécessaire pour passer du domaine informel au domaine for-
mel. Dans le cas des composantes mixtes on obtient une encapsulation et une réutilisation
des requis de contrôle de portée locale simplifiant du coup tant la structure de transition de
ces composantes que la formulation des requis de contrôle pour les sous-systèmes qui les
utilisent (voir les exemples du chapitre 4).
En conjonction avec la métaphore de composantes réutilisables il est aussi possible de
formuler les détails des mécanismes d'instanciation de ces composantes et de leur compo-
sition en sous-systèmes pour la formulation de problèmes de contrôle (au chapitre 4). La
méthode proposée de construction des sous-systèmes (sous forme de STS sans structure
verticale) offre à son tour l'avantage de pouvoir utiliser des prédicats pour l'expression des
requis de contrôle (voir chapitre 4, section 4.1.1). Dans l'étude de cas (au chapitre 5), il

246
CONCLUSION

devient vite évident que cette forme d'expression des requis de contrôle est supérieure à
l'usage d'AFD de contrainte en termes de clarté d'expression. Les requis formels peuvent,
entre autres, être mis en correspondance avec les requis informels qui les motivent. Aussi
cette forme (par usage de prédicats) est mieux connue dans la pratique et certainement plus
abordable par des non-spécialistes que celle des AFD de contrainte.
La forme de ces sous-systèmes et l'expression de leurs requis de contrôle par des pré-
dicats sont parfaitement compatibles avec les procédures de synthèse de SCT (voir au
chapitre 4). Il est d'ailleurs possible d'utiliser autant les procédures de synthèse classiques
(qui fonctionnent par exploration exhaustive de l'espace des états) que les procédures spé-
cialisées formulées par Ma et Wonham dans [39] (avec usage de BDD). L'usage des pro-
cédures de Ma et Wonham est cependant plus adéquate puisque ces procédures produisent
directement une loi de contrôle sous forme d'une SFBC. Quoi qu'il en soit, étant donné
la forme de modélisation des problèmes de contrôle préconisée (des STS sans structure
verticale), le résultat peut toujours être réduit à un ensemble de prédicats de contrôle (une
SFBC, un de nos objectifs initiaux). Ce type de résultat de synthèse est nécessaire pour une
implémentation efficace de la loi de contrôle.
Enfin, la définition d'une dynamique abstraite (au chapitre 4) pour les composantes
réutilisables procure l'instrumentation nécessaire pour la formulation de schémas de gé-
nération de code compatibles avec une variété de cibles. En donnant une forme précise
aux heuristiques de génération de code, du code d'intégration (glue code) peut être inséré
aux endroits appropriés par le générateur de code lui-même. Il est clair que l'ensemble
des cibles possibles pour la génération de code ne se limite pas à des cibles PLC. Avec la
définition de la dynamique abstraite le contrôle peut être envisagé sur un ordinateur plus
conventionnel (par exemple, PC-based control dans le jargon de la pratique).
La dynamique abstraite est basée sur l'appel de procédures et une lecture inattentive
peut porter à croire qu'une cible PLC doit être dotée d'un mécanisme de transfert de flot
de contrôle adéquat pour pouvoir supporter cette dynamique, mais il n'en est rien. Dans la
dynamique abstraite on peut remarquer que le flot des appels de procédure passe toujours
des composantes les plus concrètes aux plus abstraites, formant un graphe orienté acyclique
qui s'arrête au niveau du système. Avec cette forme de structure d'appel de procédure, les
diverses fonctions appelées peuvent être incluses au point d'appel. Il s'agit d'une technique

247
CONCLUSION

bien connue en génération de code et aussi en programmation, la technique s'appelle in-


lining dans son appellation anglophone. Bref, cette dynamique abstraite est adéquate pour
la génération de code avec une cible PLC (ce qui est l'un de nos objectifs initiaux).

Critique des résultats obtenus


Tous les objectifs initiaux sont atteints et l'ensemble de l'instrumentation proposée est
adéquat pour produire un environnement de conception de contrôleurs SCT intégré. Ceci
dit, l'instrumentation conçue ne constitue pas une panacée puisque certains problèmes sub-
sistent.
Bien qu'il soit raisonnable de sacrifier le critère d'optimalité de la synthèse pour un
mécanisme d'encapsulation procurant la réutilisation de composantes, certaines situations
demeurent problématiques. Dans l'étude de cas (au chapitre 5), le tampon servant à trans-
porter le résultat du contrôle de qualité de la station d'usinage en est un exemple. Ce type
de mémoire constitue un attribut d'un élément usiné qu'il faut modéliser indépendamment.
Ce type de problème est endémique à SCT plutôt qu'à la méthode proposée mais il demeure
problématique.
Concernant la méthode elle-même, la division en composantes et en sous-systèmes
force parfois le concepteur à certaines gymnastiques conceptuelles (par exemple la station
de livraison qui n'a pas de capteur à la sortie dans l'étude de cas). Mais, somme toute,
les avantages de la réutilisation pour éviter la modélisation ad hoc répétée de dispositifs,
l'expression des requis par prédicats et la modularisation des requis de contrôle semblent
compenser adéquatement.
L'instrumentation logicielle à procurer demeure assez lourde : les algorithmes de syn-
thèse et de Wong en plus d'une bonne interface graphique et d'un générateur de code. Mais
puisque la méthode de conception préconisée intègre toutes les phases de la conception, de
la modélisation à la génération de code, elle représente un plan de réalisation assez clair
avec un résultat bien défini et utilisable. Ce qui semble manquer dans les quelques réalisa-
tions actuelles est précisément un objectif quant à la façon d'utiliser un environnement de
conception de contrôleurs SCT.

248
CONCLUSION

Directions de recherches potentielles


Il reste bien sûr à réaliser un environnement intégré de conception de contrôleurs SCT
par composantes réutilisables le long des lignes directrices préconisées ici. Mais l'ensemble
des investigations réalisées pour cette thèse ouvrent aussi certaines questions théoriques
intéressantes.
II est inévitable de remarquer que le genre de composantes réutilisables préconisées
dans la thèse est éminemment utilisable dans les autres variantes hiérarchiques de la théo-
rie. Par exemple, une projection qui est un observateur peut aisément posséder la struc-
ture d'une interface en paires commandes/réponses (commandpair interfaces dans HISC
[35, 38]). Le modèle abstrait de la plupart des vérins donné en annexe D y correspond,
si on les transforme en observateurs naturels comme dans [14]. L'inverse n'est pas né-
cessairement vrai. Le critère d'observateur est très strict. Les interfaces en paires com-
mandes/réponses représentent un critère plus faible permettant une meilleure agrégation de
l'espace des états. Il y a ainsi lieu de s'interroger à savoir s'il ne serait pas possible de refor-
muler certains résultats de la théorie de Wong et Wonham pour permettre l'usage de projec-
tions ayant des propriétés similaires à celles des interfaces en paires commandes/réponses
pour obtenir une agrégation de l'espace des états plus importante dans les composantes
réutilisables. Autrement dit : peut-on affaiblir le requis de la propriété d'observateur en
contrôle hiérarchique ? Le travail de Leduc et al semble indiquer que oui.
De la même façon, rien n'empêche l'usage des composantes réutilisables préconisées
dans un problème de contrôle spécifié par STS tel que dans [39]. Bien sûr l'applica-
tion des résultats de synthèse obtenus doit tenir compte de l'encapsulation réalisée par
l'usage des composantes réutilisables. L'encapsulation, on le rappelle, est ici opaque (voir
au chapitre 3) alors que l'encapsulation offerte par les STS est ouverte. 11 y a peut-être là,
dans la relation entre encapsulation opaque et encapsulation ouverte, une extension pos-
sible et intéressante de l'outil de modélisation qu'offrent les STS. Bien que la modélisation
du parallélisme chez les STS soit très élégante, on se rappelle qu'il interdit, à toute fin pra-
tique, la modélisation d'une transition entre deux noeuds conjonctifs de même structure.
Par exemple, le modèle du registre à décalage SRO de la station d'usinage (dans l'étude de
cas au chapitre 5) ne peut pas utiliser un noeud disjonctif formé d'une structure de transi-

249
CONCLUSION

tion entre noeuds conjonctifs, ce qui serait pourtant le modèle le plus expressif.
Aussi, dans [59], le schéma présenté par Wong et Wonham, appelé la coordination,
peut, peut-être, être utilisé pour l'analyse de situations conflictuelles entre des compo-
santes qui partagent certains de leurs événements. Ceci peut ouvrir la porte à des com-
posantes qui partagent certains de leurs événements. Un tel schéma est plusflexibleet vaut
la peine d'être investigué. Quoi qu'il en soit, la coordination présente des similitudes avec
les concepts étudiés dans cette thèse qui méritent d'être clarifiés pour en comprendre les
implications.

Epilogue
En terminant on peut observer que les résultats de cette thèse constituent probable-
ment le genre de réponse adéquate à l'article de Ekberg et Krogh [13]. À peu de chose
près, la métaphore de composantes réutilisables utilisée ici s'assimile aux schémas de ma-
chines d'états (State Machine Templates) préconisés dans cet article. Puisque les prédicats
de contrôle, qui forment ici le résultat de synthèse, peuvent être réduits à des conditions
de garde sur des transitions contrôlables (voir au chapitre 4), il semble bien que ce modèle
soit très similaire au leur.

250
Annexe A

Résultats sur le contrôle non bloquant

Ce qui suit est une spécialisation des résultats de Wong et Wonham [58] concernant le
contrôle non bloquant dans les hypothèses du théorème 2 (p. 254). Notamment on cherche
à prouver que ces résultats tiennent toujours lorsque C}n(M) Ç 0(Cio(L)) (consistance hié-
rarchique restreinte) pourvu que la spécification soumise à l'agent soit E G C\,(A/), c'est-
à-dire que la spécification est contrôlable. Le but est d'en arriver au résultat du théorème 6
qui résume tous les résultats à partir de la proposition 15.
Notez que dans ces conditions si on dispose d'un opérateur de synthèse pour l'abs-
traction, par exemple si M est muni d'une technologie de contrôle standard auquel cas
KM(E) = S 'U3CA/(E), on peut toujours soumettre à l'agent le résultat de synthèse de
l'abstraction comme spécification ; la spécification est toujours contrôlable. Dans ce cas,
la consistance hiérarchique restreinte suffit, bien que le nombre d'options de contrôle dis-
ponibles dans Cht puisse être plus limité que le nombre d'options de contrôle disponibles
dans Ci,,.
Rappelons que pour le développement des résultats sur la synthèse non bloquante dans
[58] on doit imposer la restriction suivante sur C;,,,

ÇiKGV(H))K GC(U(H) => KGC1U(H) (A.l)

c'est-à-dire que la contrôlabilité d'un sous-langage est déterminée par la contrôlabilité de


sa fermeture préfixée. Une structure de contrôle standard possède cette propriété ([55],

251
ANNEXE A. RÉSULTATS SUR LE CONTRÔLE NON BLOQUANT

section 3.1).
Rappelons aussi certains résultats sur la propriété d'observateur. Pour X! et T deux al-
phabets disjoints, L Ç E* fermé, M Ç T* et 0 : L —> M une projection causale :

x
0 est un observateur <==> 0 o pre.\i = prti o 9~x

où preL et pre M sont les opérateurs de fermeture préfixée sur L et M respectivement ([58],
théorème 3). Et,

0~x o pre^i = prei o 0"x


4=> (y s G L)(\/t G T+) 6(*)t G M = » (3 u G E + ) su G L et 0(su) = 6(s)t

([58], proposition 7), dont la formulation suivante

6~x o pre M = prt'x, o 0~x


<^=> (V.s G /,)(Vr 6 T) 0(.S)T G M = • (3 a G E + ) .su G Lfi*0(«u) = 0(H)T

est souvent plus commode.


Rappelons finalement l'énoncé du théorème 2 concernant la consistance hiérarchique
restreinte.

Théorème 2 ([58]).
Soit Cio et Chi deux structures de contrôle respectivement sur L et M, et soit N G J-,u avec
Il :=0-~x(N)[Link]

Ch,(N) ç 6(C,„(H)) <*=• 9 o KH o 9~1\chAN) = idClu{N)

où id.\ est l'identité sur X.

On aura donc toujours 9 o KL O 0~X(KM(E)) — KM(E) pour tout E Ç M en présence


de consistance hiérarchique restreinte. Aussi, K est idempotent, K est monotone quant à
l'inclusion d'ensembles, et si N G Cki(M), alors N = KM(N).

252
ANNEXE A. RÉSULTATS SUR LE CONTRÔLE NON BLOQUANT

Adaptation de la proposition 15 ([58]).

(VE Ç M) Ki o 0~X(KM(E)) non bloquant = > K^(E) non bloquant

Démonstration. Posons E Ç M et supposons que KI o 0~1(KM(E)) soit non bloquant.


Alors
KL o 0-x(i^(ÊT) n Lm = KL O e-l(KM(E))

et on doit démontrer que KM (E) n Mm = KM(E).

(Ç) Puisque KM(E) n Mm C Kif(E) alors KM(E) n Mm Ç KM(E).


Q ) Soit t G KM(E). Alors, puisque Chi(M) C 0(Ct„(L)) et 0 est causale, on a

IGK.M(E) = 9OKLO0^(KM(E)) = 9(KLO9^(KM(E)))

= O(KLO0-I(KXI(E))).

Ainsi il existe u G KL O 0~1(KM(E)) tel que 0(u) — t. Or, pour u ainsi fixée, puisque
X
KI o 0~ (KM(E)) est non bloquant par hypothèse, on a

u G KL o0-\KX,,(E))r\Lm
X
(3-s | s G KI o0 (KM(E)) n Lm : u < s)

(3 s | s G Lm : u < s A s G KL O 9~1(KM (E)))

(3 s\sG Lm: 9(u) < 0(s) A 9 (s) G 0(KIO0-X(KM(E)))), car 0 est causale
(3 s\sG Lm:t< 0(s) A 0(s) G 0(KL O 0-X(KAI(E)))), 0 causale et 9(u) = t
(3 .s | .s G Lm : /. < 0(s) A 0(s) G 0 o KLO()-1(KM(1'J)))

(3 s | s G Lm : t < 0(s) A 0(s) G ~K~^(Ë)), car Cht(M) Q 0(Clo(L))


(3 .s | .s G Lm : /. < 0(s) A 0(.s) G « Af (/?) n A/ m ), car «(.s) G 0(/.,„) = A/„,
* e« A ,(E)nA/ m .

Sachant que / est arbitraire dans KM(E) on a donc n\t(E) n Mm D K^(PJ).

D'où on peut conclure que KM(E) n Mm = KM(E). . D

253
ANNEXE A. RÉSULTATS SUR LE CONTRÔLE NON BLOQUANT

Pour le prochain théorème on considère la notion suivante. On dit que la paire (L, 9)
est fortement observable si 9\h, c'est-à-dire 9 dont le domaine est restreint à K, est dotée
de la propriété d'observateur pour tout K G Ci„(L).

Adaptation du théorème 4 (|58|).


En supposant
0-x(Mm) = Lm;
( L. 9) fortement observable ;
alors

(y E G M) KM(E) non bloquant <=> Ki o 9~~X(KM(E)) non bloquant

Démonstration. Grâce à la proposition 15, il suffit de montrer ( => ) .


Soit E G- M. Supposons que KM(E) soit non bloquant. Alors

KM(F.) n Mm = KM(E). (A.2)

On doit prouver K/, O 9~X(KM(E)) n Lrn = KL O ()-1(K.M(E)).

(Ç) Puisque KL O 0-1(KM(E)) n Lm Ç KL O 0'X(KM(E)), il est clair que

77Jo0-x(KM(E)jnLm Ç KLO9-X(KU(E)).

(D) Posons s G K/, o 0~X(KAJ(E)). Alors

0(s) G 0(KLO0~I(KU(E))) = 0(KLO 9'X(KAI(E))) = 9 o KL O B^(KM(E))

puisque 9 est causale. Ainsi 9(s) G K\I(E) puisque Cjn(M) Ç 6(Ci„(L)). Donc il
existe r G T* pour lequel 9(s)t G KM(E) et 9(s)t G Mm (éq. (A.2)).
D'autre part, puisque KLO0~X(KM(E)) GCio(L),K := KL o 9~X(KM(E)) G Cto(L).

254
ANNEXE A. RÉSULTATS SUR LE CONTRÔLE NON BLOQUANT

Posons maintenant 9K := 9\K. Il est clair que

MA') = W )
= 0(KLO9-X(KM(E)))

= 0(KLO6-I(KX,(E)))

= 9OKLO9-X(KM(E))

= KAt(E)

Puisque (L, 9) est fortement observable, 9K possède la propriété d'observateur. Ainsi,


par les propositions 8 et 7 de Wong et Wonham [58], il existe u G E* pour lequel
.sH G K et 0K(sti) = M * ) / = ^(• s ) / = 0(su). On a donc que M * " ) G KX1(E) et
M * " ) G Mm. Or 9K(su) = 6(su) G A/m et donc .su G r? ^A/,,,) = L m . Par consé-
quent su G A" n L,„ = KLo0-i(KXf(E)) n L m , d'où s G «/. O0-1(KAI(E)) f) L,„.
D

Le but de la proposition 16 et du théorème 5 dans [58] est d'affaiblir l'exigence d'obser-


vabilité forte pour la paire (L. 9) de façon à pouvoir fournir éventuellement une condition
suffisante garantissant cette propriété sur un ensemble utile de sous-langages. À cette fin
on définit
X' :={K G CU>(L) | K/, o 0" 1 o 9(K) = K}

l'ensemble des sous-langagcs fermés et contrôlables de L qui sont maximaux par rapport
à leur image par 9. Si l'on ne dispose que de la consistance hiérarchique restreinte, il faut
restreindre davantage X'. On définit donc

X := {AT G Clo(L) \KLO0-XO 9(K) = K, 9(K) G Chl(M)}

pour ne sélectionner dans X' que les éléments dont l'image est contrôlable dans M comme
ensemble de sous-langages intéressants. On dit alors que la paire (L, 9) est fortement obser-
vable par rapport à X si 9\K est dotée de la propriété d'observateur quel que soit A" G X.

255
ANNEXE A. RÉSULTATS SUR LE CONTRÔLE NON BLOQUANT

Lemme A.l. Soit Chl(M) C 0(Clo(L)). Posons A := HL O9~1(*U(E)) et 0K := 9\h.


Supposons enfin que 0 K est doté de la propriété d'observateur. Alors

KH0-X(KM(E)) = K.

Démonstration.

( ç ) Puisque pour N G Tu, 0~X(N) G Ti ([58], proposition 4) et que pour H G Fi,


Ki(ll) G Ti ([58], proposition 2), on a que K = KL O 0'X(KM(E)) G Ti et donc

I<n0-x(KM(E))Ç K = A.

(D) Soit .s G K. Alors, puisque Ck,(M) Q Ciu(L), on a

9h (.s) = 9(s) G 9(K) = 9(KL O 0-X(KAI(E)))

= 0OKLO9~X(KM(E))

= *M(E).

il existe donc t G T* tel que 0K(^Y G KM(E). Or, pour / ainsi fixée, puisque 0K est
un observateur, on a

(3 u | a G E* : .su G A A 0K(su) = 0K(s)l G /f.u(E))


==» (3 u | u G S* : su G K A 0(.s«) - 9K(su) G KM(E))

=* (3 u | u G E* : su G A A s M G 0_1(«Af (£)))
==*• (3u | u G E* : ,su G / ( n f 1 ^ ! ^ ) ) )
s6/(nr'(KA/(£))

Sachant que s est arbitraire dans /C on a donc A' D 0~1(KM(E)) 3 A\


D'où on peut conclure que K n 0~X(KM(E)) = A'.
n

256
ANNEXE A. RÉSULTATS SUR LE CONTRÔLE NON BLOQUANT

Adaptation de la proposition 16 ([58]).


En supposant que
ClJM)Ç0(Clu(L));
la restriction de l'équation A.l est vérifiée ;
et que la paire (L. 0) est fortement observable par rapport à X ;
alors
(VEÇA1)KLO0 \7ZÏÊj) = KLo9-i(KM(E)).

Démonstration. Prenons E Ç M.
Q ) Par consistance hiérarchique restreinte on a

KLO0-1(KM(E)) = KLO0~X(0OKLO0~X(KX,{E)))
l
= KLO9 (9(nr.o9-HKM(E))))
= KLO0-1(0(KLO0-HK„(E))))

puisque 0 est causale. Et puisque 0~X(0(N)) D N en général, on a que

Kl O 0-l(K^(Ëj) 2 Ki(KlO0~X(KM(E))) = KLo9-l(KM(E))

car Ki o 0 X(KM(E)) G Clo(L), ainsi m, o 0~1(KM(E)) G Ci„(L), et KL est idempo-


tente.
(Ç) Posons A' := KL O 0-1(KX,(E)) et 0K := 0\K- On a que

0(K) =0OKLO 0-x(k~MJÏÏ)) - K~LJË) G Chl(M)

par consistance hiérarchique restreinte, et

KLO0-X(9(K)) = KL o 9~1(K^(Ë~)) = K

et par conséquent K G X et 9K est dotée de la propriété d'observateur. Ainsi d'après


le lemme A.l, A' n 9~X(KM(E)) = K. Or puisque K n 0-x(KM(E)) = A" G Clo(L)
alors
Kn0-,(KM(E))GClu(L)

257
ANNEXE A. RÉSULTATS SUR LE CONTRÔLE NON BLOQUANT

en vertu de l'équation A. 1.
Maintenant posons s G K et, par le même argument que celui du lemme, il existe
u G E* pour lequel

su G KO 9~1(KM(E)) Ç 0 X
(KM(E)).

Puisque K n 0~X(KM(E)) G Ci0(L), on a que .su G KL O 0~X(KM(E)), et par consé-


1
quent .s G KL o 0~ (KM(E)).
a
Adaptation du théorème 5 ([58|).
En supposant
Cht(M) Q 0(Clo(L)) ;
la restriction de l'équation A. 1 ;
0x(Mm)^Lm;
(L, 0) fortement observable par rapport à X ;
alors

(V E G M) KM(E) non bloquant <=> K^ O 9~X(KM(E)) non bloquant.

Démonstration.
Pour E Ç A/ d'après la proposition 16 on a Ktj o 9~X(KM(E)) = KL O 9~Ï(KM(E)), et
X ]
K/, o 9~ (KA!(E)) G X. Par conséquent K := KL O 9~ (KM(E)) G X ; ainsi 9K possède la
propriété d'observateur et l'argument du théorème 4 s'applique intégralement ici. D

Adaptation de la proposition 17 ([58]).


Supposons que Cht(M) Q 9(Ci„(L)) et que
9 possède la propriété d'observateur ;
dp1 °K.M < f t ° 0~x °KA[.
Alors
(L.0) est fortement observable par rapport à X.

L'argument de preuve donné dans [58] demeure essentiellement inchangé, une seule
étape de preuve invoquant la consistance hiérarchique complète doit être clarifiée.

258
ANNEXE A. RÉSULTATS SUR LE CONTRÔLE NON BLOQUANT

L'une des étapes de la preuve invoque Chi(M) = 0(C)o(L)) pour justifier que B(K) G
C/«(A/) pour K G X. Or dans le contexte défini plus haut, on a déjà

X
X := {K G Clo(L) \KLO9 O 0(K) = A, 9(K) G Chl(M)}

et ainsi K G X ==> K G Cin(M). Par conséquent la preuve de la proposition 17 dans


[58] s'applique intégralement ici.
Le théorème 6 de Wong et Wonham [58] résume les résultats à partir de la proposition
15, et en tant que tel, ce théorème a déjà été démontré par la démonstration des résultats
précédents.
Dans sa forme originale le théorème 6 présume Cia(M) = 9(Cu,(L)) et se formule
comme suit.

Théorème 6 (|58J).
Supposons que la restriction de l'équation A. 1 sur C\0 tienne, et que
9-x(Mm) = Lm;
9 est dotée de la propriété d'observateur;
9~x o KM < Kl o f?"1 o KM.
Alors
(V E G M) KM(E) non bloquant <=» KI O 9~X(E) non bloquant.

Dans sa fonne adaptée à la consistance hiérarchique restreinte, seule la conclusion du


théorème doit être modifiée.

(y E G M) KM(E) non bloquant <=> «/, o 0~X(KM(E)) non bloquant

En conclusion, les résultats de Wong Wonham [58] sur la synthèse non bloquante sont aussi
applicables à la consistance hiérarchique restreinte.

259
Annexe B

Quelques propriétés des projections


causales

B.l Propriétés fondamentales


Soit E et T deux alphabets (ensembles finis de symboles). Soit L Ç E* et M Ç T* deux
langages préfixes clos. On dit que 9 : L —> M est une projection causale si et seulement
si pour tout u, u G L telles que u < v alors 6(u) < 9(v). On peut étendre 9 : L —» M
de la façon usuelle à 9 : 'P(L) — V(M) par 9(K) := {9(s) | .s G A} pour K Ç L. Pour
0 causale on a alors fl(A') = 0(A) pour tout K Ç /,. Aussi, à 0 : L —* M correspond
x
une fonction de préimage 9 : V(M) —> V(L) : A" >-* K, où K = {s G L\(3t G
x
N) 9(s) = t}. Par abus de notation, pour l G M on utilise souvent 9~ (t) pour signifier
9~x({t}) = {sGL\9(s) = t}.

Proposition B.l. Soit K\. K2 C L. Alors 9(Kl U A"2) = 9(KX) U 9(K2).

Démonstration. Découle directement de la définition de 9 : V(L) —> V(M). D

260
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

Proposition B.2. Soit A,. A 2 Ç L. Alors 0(K{ n A 2 ) Q 9(l<{) n 9(l<2).

Démonstration.

t G 0(h\ n A 2 ) = > (3 s | .s G Aj n A 2 : 0(.s) = t)


= ^ (3 s | .s G A'i : 9(s) = t) A (3 ,s | .s G A 2 : 9(s) = 0
=*• / G9(l<i)At. G0(K2)
= > l G0(Ky)n0(K2) D

En général cependant, l'inclusion peut être stricte comme en témoigne l'exemple sui-
vant.

Exemple. Posons s\.s2 G L (sx -£ s2) tels que 0(s\) = 0(s2) = I G M. Posons aussi
Ki := {e, si} et K2 := {f., ,s2}. On a donc,

9(Sl) = t ==> tefl(A'i)


9(S2) = l ==• tG0(K2)

et ainsi I G 0(K{) n 0(K2). Or I, <£ 0(K\ H l<2) = 0({(}) = {<}.

Le lemme t de Wong [55] (page 96) présente un résultat intéressant qui est reproduit
ici sous forme d'une proposition dans le but d'en clarifier la preuve.

Proposition B.3. Soit H, J Q L et supposons que 0~x (9(H)) = H ou que 0~X(0(.J)) = ./.
Alors
9(Hr\J) = 9(H)n9(J).

Démonstration. Étant donnée le résultat de la proposition B.2, il suffit de démontrer que


0(H n J) D 0(H) H 0(J). Supposons que 0~l(0(H)) = H.

t G 0(11) n 0(.l) = > (3.s | .s G -/ : 9(s) = /. A .s G 0~\O(U)) = ll)


car t G 0(11) et s G 0~}(t)
==» (3 .s | s G J n / / : 0(s) = t)
=> t G0(JDH) D

261
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

Proposition B.4. Soit N\,N2 Ç M. Alors 0-x(Nr U A'2) = 0 - 1 (Wi) U 0~X(N2) et donc
0~x est monotone par rapport à l'inclusion de langages.

Démonstration.

s G 9~l(Ni U iV2) < = • 0(s) G Ni U A'2


<=> 0(s) G Ni ou 0(s) G N2
4=> s G 0-1(Ni) ou .s G 0 - 1 (N 2 )
<=> .sGr^A^ur^A^) n

Proposition B.5. Soit N\, N2 ç A/. Alors 0-x(Ni D N2) = 0'x(Ni) n 0~X(N2).

Démonstration.

s G 0~x(Ni n N2) « = • 0(s) G Ni n Ar2


<=> 0(s) G Ari et 9(s) G N2
<=> sG0~1(Ni) etsG0~1{N2)
<=» s e e ^ O V i j n e l(A2) D

Proposition B.6. Soit N C M. Alors 0~l(N) Ç 0-x(N).

Démonstration. De la proposition B.4, on a que f? -1 est monotone par rapport à l'inclusion


de langages. Aussi, la fermeture préfixée est idempotente et monotone par rapport à l'in-
clusion de langages. Enfin 0~X(N) = 0~X(N) puisque 0~X(N) G Ti selon la proposition
26 de Wong [55].

N Ç /V ==> 0~X(N) C El"1 ( F )


= • 0-H<v) ç0-l(N)
=» É>-ï(yv) c e - 1 (77) n

B.2 A b s e n c e de couplage de contrôle

Dans [58], Wong et Wonham introduisent une propriété qui joue un rôle clef dans la
théorie du contrôle hiérarchique non bloquant ; l'absence de couplage de contrôle (de l'an-

262
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

glais «generalizedpartner-freedom condition»). Une projection causale 0 : L —' M est


dite libre de couplage de contrôle si et seulement si

0„ l °KM <KLO0 X
OKA[ (B.l)

OÙ K ; y : = KM\?hl-

La notion de couplage de contrôle est présentée par Zhong et Wonham dans [66] ; on
y parle de partenaires (de l'anglais partners) en référence à une situation illustrée dans la
figure B.l. Dans le contexte de Zhong et Wonham, l'agent est muni d'une technologie de
contrôle standard et 0 possède une propriété dite OCC (de l'anglais pour Output Control
Consistency, à ce sujet voir l'appendice A de [59] pour plus de clarté) de sorte que la
technologie de contrôle induite dans l'abstraction est également standard.
Dans la figure B.l, 9(S')T\, 0(S')T2 G M et TX.T2 G Tc de sorte qu'il peut se présenter
une situation où N G Ch,(M) et 9(S')TI G N mais 9(s')r2 g N (ou vice-versa). Or la sup-
pression de la génération de ces chaînes à travers l'agent dépend du seul élément de contrôle
commun s G E* dans s's G L. Alors pour supprimer la génération de 9(S')T2 (puisque
/T
#(-'>' ) 2 G" .V), il faudra supprimer la génération de .s'.s.s^ en inhibant l'événement contrô-
lable a dans le segment s'a menant à s'ss'202- Or ceci implique de supprimer aussi la géné-
ration de.s'.[Link] et par conséquent la génération de la chaîne 0(s'ss\o{) = 0(S')T\. Dans ce
sens, les chaînes s'ss\ay G L et .s's.s'2<72 G L sont des partenaires de contrôle dans l'agent
puisque le contrôle de leur génération dépend d'un unique élément de contrôle commun,
l'événement a G Ef du segment s G E* dans la chaîne s's G L.
On peut déjà noter que, dans le contexte de Zhong et Wonham [66], la présence de
partenaires de contrôle a pour effet de provoquer une surestimation des options de contrôle
disponibles dans l'agent par rapport à celles dont dispose l'abstraction. Dans ces conditions,
une synthèse dans l'abstraction peut se révéler trop optimiste par rapport à ce que l'agent
peut accomplir. En clair, il se pourrait que l'agent ne puisse pas générer l'intégralité de
l'ensemble des chaînes que contient la synthèse KAI(E) mais seulement un sous-ensemble
strict de cette dernière, compromettant ainsi la propriété de consistance hiérarchique telle
que définie dans [66]. La solution est bien sûr de bannir la présence de partenaires de
contrôle en établissant la propriété SOCC définie dans [66] (de l'anglais pour Strict Output

263
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

0(6')=0(A'6fti)=0(*'**2)

Élément de contrôle commun


à la génération de T\ et T-I

FIGURE B. 1 - Couplage de contrôle

Control Consistency).
Une autre façon de formuler ce dilemme est de dire que l'on a un objectif de contrôle
abstrait E Ç M pour lequel N = KM(E), avec 0(S')TI G N et 0(S')T2 g N. Alors
Ki o 6~X(KM(E)), l'implémentation sur l'agent du comportement de la synthèse de haut
niveau, ne contiendra ni .s'.s.s'jrrj G L ni .s'.s.s^ G L puisque la génération de 9(S')T2 doit
être inhibée. Mais on aura s'ss\oi G 9^1(KM(E)) puisque 0(S')TI G N = KM(E). En
l
bref on a que 9~X(KU(E)) % K/, O 9 X(KA/(E)) OU encore plus brièvement 9V o K.W J£
KI o ^ ' o KM, et il y a couplage de contrôle.
On note que 9~x o "KM < Ki O 9~X O ~KM est une propriété plus générale que la simple
absence de partenaires au sens de Zhong et Wonham [66]. Dans le contexte de [66], si
V représente un ensemble de couples de chaînes ayant un contrôle commun dans L (des
partenaires de contrôle), alors d'après la proposition 106 dans [55]

KX ° *Af <KLO 0-x o Ku <=> V = 0

Cependant cette caractérisation ne tient que si et seulement si C^ est munie d'une techno-
logie de contrôle standard (contexte de Zhong et Wonham [66]). Autrement (C/„ est munie
d'une technologie de contrôle non standard) on a

V = 0 = > 9;1 o KM < KL o 0~x O KM

264
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

c'est-à-dire que la propriété 9~x o K W < KL O 9~X O"RM peut quand même être vérifiée en
présence de partenaires de contrôle.
Le résultat suivant, tiré de [55] en appendice D, est intéressant en soi mais ne comporte
pas de preuve ; nous en avons ajouté une.

Proposition B.7.

0,-1 ° K~M < KI o 9~~[ o KM


<i=> (V N G Chl(M))(3 A G Clo(L)) 0;\N) Ç K Ç 9-\N).

Démonstration.

(=*•) Si #,7' o KM < KLO0~X OKM alors

(VA G FM) 0;.\KM(E)) C KI o 0~X(KM(E)).

Puisqu'en général KL(0~X(K~M(E))) Ç 0~X(KM(E)), on a que

(VE G FM) 9~\KM(E)) Q KLO0-X(KM(E)) Ç 0~1(KM(E)).

OTK~M(E) G Chi(M) Ç TM ce qui implique que 0~X(KM(E)) G TL (proposition 26 dans


[55]). Et puisque K/, préserve la fermeture préfixée on a que Ki O 9 X(K.M(E)) G Ci„(L).
(•*=) Supposons

(VA' G Chl(M))(3 K G Clo(L)) 0;X(N) Ç K C 0-](N).

Puisque pour tout E G TM, KM(E) = 77\f (E) G C)u(M), alors

(V£ G FXI)(3 K G CUJ(L)) 0-ÏCKM(E)) QK Ç 0~X(KM(E)).

Or puisque K Ç 0~X(KM(E)) et que Kr, est monotone par rapport à l'inclusion


d'ensembles, on a que K = KL(K) Ç KI(0"X(KM(E))) et en conséquence

(V/? G TM) 0;,1(KM(E)) Ç KL(9'X(KM(E))). D

265
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

B.3 Coïncidence du contrôle


Posons L Ç E* et M Ç T* fermés, C/„ et C/„ deux structures de contrôle sur L et M
respectivement et 0 : L —> M causale. Supposons que, sur le triplet (L, M, 0), on a la
propriété suivante :
9-'(Cn,(M))ÇC to (L) (B.2)

c'est-à-dire que la préimage de tout sous-langage contrôlable de l'abstraction est aussi


contrôlable dans Yagent. Cette propriété est une généralisation de la notion d'absence de
délai de contrôle originalement formulée par Zhong et Wonham dans [65]. Dans le contexte
original de Zhong et Wonham, l'absence de délai de contrôle présuppose que C/(> et Cu% sont
toutes deux munies d'une technologie de contrôle standard (E = E r Ù E„ et T = Tc Û Tu).
Dans [55] et [59] Wong et Wonham généralisent le concept à des structures de contrôle arbi-
traires sans toutefois lui donner de nom spécifique. Pour distinguer entre les deux concepts
on peut désigner la propriété définie par l'équation B.2 en tant que coïncidence du contrôle.
Tel que mentionné précédemment la coïncidence du contrôle prend son origine dans le
concept d'absence de délai de contrôle. Or comme mentionné dans [65] l'absence de délai
de contrôle est nécessaire pour assurer que la composition synchrone de deux modèles abs-
traits (au sens du contrôle hiérarchique de la section 2.3.2) ne détruise pas les propriétés de
la projection 0 (entre autres la consistance du contrôle introduite dans la section [Link]).
Pour l'élaboration de composantes réutilisables, dont les modèles génériques sont des abs-
tractions conformes au modèle du contrôle hiérarchique, il importe de considérer ces deux
propriétés et de comprendre les problèmes liés à la présence de délai de contrôle dans ces
modèles. La figure B.2 donne une illustration de ce que représente un délai de contrôle.
Cet exemple suppose le contexte présenté dans [65]. En particulier les deux niveaux (abs-
traction et agent) sont dotés d'une technologie de contrôle standard. Dans l'illustration on
voit que le contrôle de la génération de l'événement contrôlable r G T,. par l'abstraction
dépend d'un élément de contrôle ap G E r dans l'agent.
Dans la figure B.2 il est évident qu'une fois franchie la transition (np, ap. np-i) dans
l'agent, la génération de r G Tc dans l'abstraction est inévitable puisque .s' G E+. Or l'abs-
traction ne sera informée du fait que l'agent a franchi la transition (np, ap, np_i) que lors de
la génération de l'événement r par la projection, c'est-à-dire lors de la transition (ni, <7i, n).

266
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

Élément de contrôle concret (agent) Élément abstrait contrôlé (abstraction)

s 6 E*EC s' € E+, (délai de contrôle)


0(.ss') = 0(S)T

FIGURE B.2 - Délai de contrôle

11 y a donc un délai relatif à Y information disponible dans l'abstraction, par rapport à celle
qui est disponible dans l'agent, en ce qui concerne le contrôle de la transition (np, ap. r/p_ j ).
En l'absence de parallélisme effectif entre ce système et un autre système, c'est-à-dire si
le système considéré est pris en isolation, cette situation n'est pas catastrophique. Comme
mentionné dans [65] le système peut être défini comme dans la figure B.2 et toujours pos-
séder la propriété SOCC (Strict Output Control Consistency, voir aussi [62]) qui en garantit
la consistance hiérarchique (et donc la consistance du contrôle au sens du théorème 1 dans
[58]). Cependant aussitôt que l'on veut mettre ce système en relation d'exécution parallèle
concurrente (c'est-à-dire utiliser une composition par produit synchrone telle que définie
dans la section 1.1.4) la situation change.
La figure B.3 illustre deux systèmes simples complètement disjoints, c'est-à-dire (G,, <?,)
(i — 1. 2) qui ne partagent aucun de leurs événements, ni dans leurs agents (G,) ni dans
leurs abstractions (Gi) respectives et en plus E, n T\ — 0 pour i = 1.2. On peut aisément
vérifier que Q, est un observateur naturel de G, pour / = 1. 2, et aussi que chacun de ces
systèmes est SOCC dans les termes de Zhong et Wonham [65]. On note qu'il y a un délai
de contrôle dans la paire (Gi. G\ ) relativement à la génération de l'événement T\ G T\ dans
Gi qui est contrôlée par la génération de Q 0 G Ei dans l'agent G i .
L'effet du délai de contrôle devient apparent, dans la figure B.3, lorsque l'on considère
la composition synchrone des abstractions, G = G\ || G2, et qu'on la contraste avec la
composition synchrone des agents G = Gi || G 2 .
Dans les termes de [65], on perd non seulement la propriété SOCC (et donc la consis-

267
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

T3

0 ) & ( 1

0 ) G2 ( i

G = G, Il G

FIGURE B.3 - Effet d'un délai de contrôle

268
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

tance hiérarchique) mais la projection n'est même plus OCC (Output Control Consistent)
et n'a donc plus de technologie de contrôle consistante. Par exemple, dans G, r 4 G Tu ; or
dans G on peut générer r 4 (à travers 0) d'au moins deux façons :
- 0{,6()3i ) = T3T4, dans ce cas la génération de r4 est effectivement incontrôlable ;
- 0(i3O(\odi) = T:iT,x et dans ce cas, la génération de r 4 peut être contrôlée à travers
a0 G E c .
Alors est-ce que r 4 est contrôlable ou non ? Dans le contexte de [65], en présence de délai
de contrôle, le produit synchrone peut simplement détruire les conditions requises pour
la consistance hiérarchique. La situation est similaire pour le contexte défini par Wong et
Wonham [59] (en appendice A) puisque la propriété OCC entre G et G ne peut être assurée.
De ce qui précède on peut voir que la coïncidence du contrôle est une propriété im-
portante si on veut utiliser la composition synchrone d'abstractions. On trouve en annexe C
une caractérisation de la propriété d'absence de délai de contrôle (formule C.6). Aussi, dans
la même section, la proposition C. 11 montre que l'absence de délai de contrôle entraîne la
coïncidence du contrôle, et la proposition C.14 montre que l'absence de délai de contrôle
est préservée par le produit synchrone.

B.4 Lois de contrôle synchrones


D'après Wong [55], pour que l'on puisse calculer une loi de contrôle sur un agent à
partir d'une loi de contrôle sur l'abstraction qui lui correspond, ces lois de contrôle doivent
être synchrones. Il faut d'abord se pencher sur cette notion.
Pour une loi de contrôle V : L —+ •'P(S), V'(.s) G ^ ( E ) donne l'ensemble des évé-
nements dont la génération est permise par contrôle après la génération de s G L. Sa
complémentaire Vc(s) := E — V(s) donne l'ensemble des événements à inhiber à chaque
point de l'évolution d'un système. Supposons donc un système correspondant au modèle
du contrôle hiérarchique de la section 2.3.2 et considérons VK(s) et \-%(t), pour s G L et
t G M, les complémentaires de VK et Vyv respectivement. Alors, au moment où l'agent
génère .s G 0^1(t), l'abstraction se retrouve en t G N et l'ensemble des événements de
Vfc(l) s o n t inhibés dans l'abstraction. Tant que l'agent se trouve dans 0~x(t) la configura-
tion de contrôle de l'abstraction ne change pas, tandis que VK(s) varie selon s G 9~l(l).

269
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

Informellement, on dit que deux lois de contrôle VK et V'v (sur l'agent et l'abstraction
respectivement) sont synchrones si l'effet de l'ensemble des VK(s) pour .s G 9~x(l.) est pré-
cisément d'inhiber la génération, dans l'abstraction, de toutes chaînes tr G A/ telles que
TGV'N(().
D'après la proposition 86 dans [55], en présence de consistance hiérarchique, pour
E Ç M, N :— KM(E) non vide et K := KL O 0~X(E), VK et VN existent et on a alors que
si
0 est dotée de la propriété d'observateur ;
0rx o KM < Ki o ^ ' o ~K~M ;
alors VK et V'v sont synchrones.
Rappelons brièvement que pour un langage M défini sur un alphabet T,

ElùjM • M -» V(T) : /. h- {r G T \ tr G M}.

Eli9M (t) donne donc l'ensemble des événements que le système peut générer immédiate-
ment après la génération d'une chaîne t G M.
À l'instar de Wong [55] en section 6.3. on définit

/.- : L™ — V(Lvm) : s ^ pasL(s) V\ u~x(EUgM(9(s))).

Pour se situer dans l'argumentation précédente avec s G 9~l(t), fv(s) est formé de toutes
les chaînes su G LVOC Ç L telles que 0(sv) = 9(S)T = tr G M. Il s'agit donc de toutes les
extensions de s € L (dans l'agent) qui peuvent provoquer la génération d'un événement
r G T à la suite de la génération de t G M dans l'abstraction. On peut remarquer que
fv(s) Q Lvoc Q E est un sous-langage de L et, puisque L est préfixe clos par définition,
:=
H* fv(s) est aussi un sous-langage fermé de L. Or, puisque C\0 est une structure de
contrôle sur L, on a que Ci0(lls) est bien définie et par conséquent on dispose d'un opérateur
de synthèse K//S : P(lls) —> Cu,(lls). En effet //,. constitue un sous-système de L en ce
sens que dans l'arbre d'accessibilité T de la section [Link], //.s est une sous-structure de
transition et donc un sous-système de T (ceci est le sens donné au terme sous-système dans
[55]). On peut considérer que Hs forme une cellule de T. Supposons pour l'instant que

270
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

Définissons maintenant

g„ : Lvoc -> V(Lvm.) : s ~ posL(s) n^x(V}.(0(s))).

En des termes similaires aux précédents, gv(s) est formé de toutes les chaînes sv G Lvoc
telles que 0(sv) = 9(s)r = tr G M et T G Vfj(t). C'est-à-dire qu'il s'agit de toutes
les extensions de s dans L dont la génération doit être empêchée dans l'agent pour que la
projection demeure conforme à L(VN) dans l'abstraction.
On peut ainsi former un objectif de contrôle Es : = lla —gv (s) local à la cellule // s . Alors
A.s := Kna(Es) est une solution partielle (locale à //„) au problème de déterminer VK car
K* Q Es est contrôlable par rapport à L dans //,. Il convient de noter que par construction
9v(s) Ç /„(. s ) C Lvoc Ç L. Aussi, si .su G gc(s) on a s G L(VK) et 0(s) = t G M(VN),
alors le contrôle à appliquer s'exerce nécessairement sur un préfixe u < v de la sous-chaîne
v à l'intérieur de la cellule Hs. Autrement dit, si on déterminait VKK comme loi de contrôle
partielle dans IIs, il est impossible que cette dernière interfère avec le contrôle d'une cellule
précédent //., ou au-delà de lls, c'est-à-dire à l'extérieur de la cellule //,,. On peut donc,
du moins conceptuellement, calculer VK cellule par cellule (VK, pour s G K) à partir de
t G M(Vu), VA', /„ et gv. Les résultats de la section 6.3 de [55] développent formellement
cette idée en prouvant que dans les conditions du théorème 6 ([55]), VK égale la somme
des morceaux VK,, notamment

(J KH,(Ea) = KLO9~X(E) = KL o 0 X(K~MTË)) = K.

Cette solution conceptuelle n'est cependant praticable que pour des générateurs finis bien
sûr.
Pour illustrer le calcul prenons le contexte de Zhong et Wonham [66] où l'agent ainsi
que l'abstraction sont tous deux munis de technologies de contrôle standards et la projection
est SOCC (c'est-à-dire OCC sans couplage du contrôle). On a donc E = E r Ù E„ pour
l'agent et T = Tc Ù Tu pour l'abstraction. Comme mentionné précédemment, si su G gv(s),
puisque gv(s) Ç fv(s), un contrôle devra s'appliquer quelque part sur u < v un préfixe de
v. et donc sur un certain a G S c pour v = a'au". Or l'opérateur de synthèse K//„ a comme

271
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

caractéristique de sélectionner le plus grand sous-langage contrôlable. Ceci implique que


même s'il existe plusieurs solutions, la solution retenue aura la forme r = u'au" où u" G
E*, c'est-à-dire qu'elle sélectionnera le plus grand préfixe contrôlable de r.
Ce qui précède nous donne une caractérisation relativement simple de VK (section 6.4
dans [55] et section 5.4 dans [62])

VK(w) = E u U {a G E r | (V«/ G E;j(Vr G T) 0(waw') = 9(W)T = ^ r G Vy(0(w))}

pour w G K. Par rapport à ce qui précède w — su' et w' = u". Pour paraphraser ce résultat
on peut dire que VK inhibe toujours le dernier événement contrôlable de toute séquence
(d'un sous-système de l'agent) menant à la génération d'un événement inhibé par la loi de
contrôle de l'abstraction.

B.5 Projections et systèmes disjoints


Lemme B.8. Soit E — Ei U E 2 , E] n E 2 = 0 et pt : E* -> E* (t = 1, 2) les projections
naturelles coirespondantes. Soit K, G E* (i — 1, 2) deux langages arbitraires. Alors pour
K := Ki || A'2 on a
pt(K) = K,(i = 1,2).

Démonstration.

(Ç) Puisqu'en général, pour ? G {L 2}, p,(A D B) Ç p,(/i) Pi p,(B) (voir entre autres
[14] sur les propriétés des projections naturelles) on a

pl(K)=Mpi1(Ki)np2-1(K2)) ç MpïHKiïïnpAp]1^))
1
C M (p,- (A',)) = rr,

(i = 1.2).
Q ) Soit i, j G {1, 2} tels que t ^ j fixés et .s, G A„ alors p}(p~l(s,)) •= E* D A';
l s S e et a , o r s s
puisque E t n E 2 = 0. Donc (3 .s G p~ ( i)) '• Pj(- ) K] € p~\Kj)
i x l x
et puisque s G ]\ (sl) Ç p~ (k\) on a .s G p~ (Kt) Pip~ (Kj) = A" et donc

272
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

s, G Pi(A'). Puisque .s, est arbitraire dans A", on a que A', Ç pt(K).
On peut donc conclure que p,(K) = A, (/ = 1, 2). D

Lemme B.9. Soit E : -- E x U E 2 , Ej n E 2 = 0 et pt : E* -* E,* (t = L 2> les projections


naturelles correspondantes. Soit K, G T,* (i = 1. 2) deux langages arbitraires.
Alors pour K •— h\ \\ K2 on a K = Ki || A 2 .
C 'est-à-dire que la synchronisation de K\ et K2 est modulaire. On dit aussi que la syn-
chronisation de Ki et K2 est non conflictuelle (de l'anglais synchronously non-conflictual
voir [62]).

Démonstration. Il faut vérifier

77 = PÏ\KI) n P2-' ( K2) = PÏX(KI) n p2l (K2) = 7?T j| Â ,

donc
1
Pr (7ï7)np 2 - 1 (Â;)-pr 1 (A,)n / ; 2 , (A- 2 )Çpr , (A- 1 )np 2 - 1 (A 2 )
puisqu'en général
p^x(Ki)^p2x(K2)Çp^(Ki)np2x(K2)

et, pour i G {1. 2}, p, l(K,) — pt l(K,) (voir [14] sur les propriétés des projections natu-
relles). Autrement dit il faut vérifier que p, x(Kt) (i — 1. 2) sont modulaires (on dit aussi
non conflictuels voir la section 2.1).
Soit s G PÏX(K~\) H p2 l(K~l), alors

sGp^CK) =» />,(.s)GÂ7
==> (3 i», G EH : p ^ s K = Pl(svt) G Kt

(i = 1, 2).
Soit donc /..y G {L2} tels que / =£ j fixés, et p,(.sr,) G A'„ / ^ ( M ' J ) G Kj définies
comme précédemment. Alors pJ(p^x(pl(svl))) = E* D K}, puisque Ei n E 2 = 0, et donc
1 n l sv Ainsi 1 existe
Pr'GM* '»)) Pj (Pj( >)) ^ 0- i sv G p^Hp.G^',)) n p-l(p,(sv])) pour
lequel p,(sw) = p,(-s)y, = pl(svt) G A', etpj(.si') = Pj(s)vj = p}(si:3) G Ky Mais alors
X
sv G pL MA',) n Pj (K3) et donc s G p, \Kt) DpJx(KJ).

273
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

Puisque .s est arbitraire dans pv ( A'i) n p 2 ( A"2), il en découle que

p-xx(Ki)np2x(K2)Ç\p-x(Ki)np^(K2)

c'est-à-dire p~1(Kt) (i = 1. 2) sont modulaires et plus généralement

A = p^'(Ai) f\p2\K2) = pïx(K{) n p 2 ~'(A 2 ) = Ki || A 2

Soit E := Ei U S 2 , E! n E 2 = 0 et q{ : E* -> S,* (•/ = 1, 2) les projections naturelles


correspondantes (voir la section 1.1.2). Soit T •— ï\ U T>, 7\ n 7 2 = 0 et l\ : P* —> T*
(i = 1, 2) les projections naturelles correspondantes. On présume aussi que S, n T, = 0
(?' = 1,2). Soit L := Li || L> avec L, G E* (i = 1,2) des langages préfixe clos.
Soit 0, : L, —* T* (i — 1, 2) des projections causales définies comme suit

*,(=-) = e
\ 9,(s) • uj^sa). siu;,(sfT)!
0t(sa) = <
[ #,(<$), autrement

pour sa G L, et iot : L, —> Tt (i = 1 , 2 ) des fonctions partielles arbitraires. Soit 0 : L —* 7"


définie de la façon suivante

9(s) = s
j 0(s)-^(sa), si u(so)\
0{sa) — <
[ 0(s), autrement

avec CJ : L —* T définie comme suit

f w,(7,(.s)<r), si a G E t et u/,(v,(.s)<7)! (i = 1, 2)
uj(sa) := <
[ indéfinie, autrement

pour sa G L. D'après Pu [42]. dans les conditions précitées, cette définition de 0 constitue

274
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

la synchronisation de 9X et 92 notée 0 := 0i || 92 et on a alors :

P, o 9 = 0, o g, i = 1, 2
1
(/, o r = « . - ' o P , / = 1,2
0(/,) = 0i(Li)\\02(L2)

correspondant respectivement au lemme A.7, au lemme A.8 et à la proposition A.5 dans


[42].

Lemme [Link]. Dans les conditions définies précédemment. 0 := 9i || 92 est causale c'est-
à-dire
(Va,,s G / , ) • « < s => 0(u) < 9(s)

Démonstration. En posant s = uv G L ce qui suit est valide pour i G {1, 2}.

P,(0(s)) = 9t(Ql(s))

= Q>(<h(<>»))

= 0.(</ t («) •</«(<-'))


= (>M»)) {(U<h(s))/(K(<h("))}
= Pt(0(u))-[P,(0(^))/Pl(0(n))}
= p^u^-PM^)/^))

= P,(0(u)-0(s)/0(u)).

C'est-à-dire, sachant que qx est caténative et que 9, est causale, on a sûrement que
ei(qi(u))<0Ml(uv)) = 9l(qi(s))-

Donc 9l(q1(s)) = 9l(ql(u))tl où t% = 0i(qt(s))/0l(ql(u)) G T*, c'est-à-dire que tt est le


suffixe de T* qui doit être ajouté à 0t(qt(u)) pour former #,(</t(s)).
Aussi, #(</). #(.•>) G #(L) car .s = tir G L. On peut donc réécrire I, comme suit

i, = 9t(qt(s))/9Aqt(u)) = Pt(9(»))/Pi(0(»)) = Pt(9(s)/9(u))

275
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

en utilisant le lemme A.7 dans [42]. Alors clairement

P,(0(*)) = P,(0(u)-0(*)Mu))

d'où 0(u) < 9(s) et puisque s est arbitraire dans L, 0 :— 9i \\ 92 est causale. D

Lemme B.11. Dans les conditions définies précédemment.

0(Lm) = 0l(Lhm) \\ 02(E2.m)

pour /,,,„, Ç L, tels que L,)f„ = L, (i = 1,2) et L„, := LUn || Lhm.

Démonstration. Puisque 0, 0\ et 02 sont causales

9(LTn) = 9l(LT^) II 92(L^) = 9t(Lhm) || 02(L2jn) = ~0(L~) •

Puisque Tx n T2 = 0

0i(Li,n) Il 02(L2.m) = 0l(Llm) || 02(L2.m) = 0(Lm)

d'où

9(Lm) = 9x(Litm)\\9ï(L2,m).

Plus généralement on a que pour Kl Ç Lx (i — 1,2) et A' := K\ \\ K2

0(K) = 0i(Ki) \\02(K2) .

La consistance du marquage est préservée par le produit synchrone de projections cau-


sales de systèmes disjoints.

Lemme B.12. Dans les conditions définies précédemment, pour Ltm Ç Lx tels que Lim =
1
U (i = 1. 2) et Lm := Lhm \\ L2.m, si 0; (0l(Ll,n)) = Lx,m (i = 1,2) alors

0 l(0(Lm)) = Lm .

276
ANNEXE B. QUELQUES PROPRIÉTÉS DES PROJECTIONS CAUSALES

Démonstration. Puisque /,,,„, = Lt(i = 1,2)

0(L~) = 9XÇL\Z) || 92(L^Z) = Oi(Li) || 92(L2) = 9(L)

le lemme A.8 dans [42] est applicable, ainsi

r/,0 0 - ' =9;xol\

(i = 1.2).
Soit donc f G 0(L m ) = 0 , ( L l m ) || 02(L >,„,), alors £ G P, \0>(Lum)) (i = 1.2).
l i
Ainsi P,(f) G ^(A,, m ) (? = L2)et0; (Pl(t)) Ç 9; (9l(Lt,m)) = L,,m (i = 1,2) puisque
flrHflti/'im)) = L,,m(i = 1,2). Alors, par le lemme A.8 dans [42], q,(9~x(t)) Q L,, m d'où
r 1 ( 0 Ç ? r 1 ( £ . . m ) ( î = l,2).Donc

^ - 1 ( / ) Ç yr 1 (^l. m )n«72H^,m) = /-l, n . II /-2m = Lm

et ainsi 0 - , (£) Ç= Em.


Puisque t, est arbitraire dans 9(Lm) on a que 0~1(9(Lm)) Ç /, m . Enfin, puisque Lm Ç
1 1
r ^ ( i m ) ) e n g é n é r a l , o n a ^ - ( ^ ( L m ) ) = Lm. D

B.6 Composition fonctionnelle d'observateurs


Le résultat suivant, dont on trouve une démonstration dans un article dû à Wong et al.
[57], nous assure aussi que la composition fonctionnelle de projections causales dotées de
la propriété d'observateur préserve la propriété d'observateur. La propriété d'observateur
peut être propagée verticalement, procurant une forme de réabstraction d'une combinaison
de modèles eux-mêmes déjà abstraits.

Proposition B.13 (Lemme 5 dans [57]). Soit E, T et Y des alphabets et L Ç E* fermé. Soit
0 : L —>• T* et p : M —+ Y* pour M := 0(L) deux projections causales. Posons FI Ç L et
supposons que 9 soit un II -observateur et p un 9(H)-observateur. Alors xp := po9 (donc
ù : L —> Y") est un ll-observateur.

277
Annexe C

Abstraction en contrôle hiérarchique

Dans le cadre général de notre problème de conception de composantes réutilisables, le


point de départ est toujours un générateur G avec L = L(G), où L Ç E* est un langage
préfixe clos muni d'une technologie de contrôle standard E = E c ÙE lt . Cette technolo-
gie de contrôle induit Ci„ : Ti —» V2(L) une structure de contrôle standard localement
définissable sur L (Wong [55], section 3.1).
Dans ce contexte il est réaliste de supposer que l'on puisse concevoir 0 : L —> M
causale (section [Link]) pour M Ç T* fermé, E D T = 0, telle que A/ soit aussi muni
d'une technologie de contrôle standard T = TCÙ Tu (section [Link]). Cette dernière induit
Chi(M), aussi une structure de contrôle standard localement définissable sur M (voir la
section [Link]). Il est aussi raisonnable d'envisager que 0 soit conçue de sorte à assurer
la coïncidence du contrôle (section B.3), 0~x(Cin(M)) Ç Ci0(L), assurant du même coup
une forme de consistance du contrôle (section [Link]) ainsi que l'absence de couplage
de contrôle 0~x o KM < Kly o 9 x o KU (section B.2). Finalement, pour la synthèse non
bloquante, il est généralement nécessaire que 9 soit aussi dotée de la propriété d'observateur
(Lm-observateur, section [Link]).

Cl Consistance du contrôle
Dans les conditions précitées, l'intuition suggère qu'il existe C'lo : Ti —> V2(L), une
structure de contrôle telle que C/„ < C'lo et pour laquelle 9~l(Ch,(M)) — C'lo(L). C'est le

278
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

cas par exemple d'une projection naturelle (section 1.1.2) où E r n E 0 ^ 0 et E r % E 0 .


Une telle projection ne peut sélectionner qu'une partie de l'ensemble des sous-langages
contrôlables de L (C/0(L)) car elle efface certains des événements contrôlables de E, les
soustrayant ainsi à l'action du contrôle à travers la projection. Cependant le langage pro-
jeté demeure susceptible à l'action d'un contrôle par inhibition à travers l'ensemble des
événements contrôlables effectivement projetés. Aussi lorsque la projection est calculée de
manière à être dotée de la propriété d'observateur, la synthèse non bloquante sur la projec-
tion est alors possible (voir la notion d'observateurs naturels dans [14, 15]). Une situation
similaire se présente dans le cas des projections trouées (de l'anglais forgetful maps) étu-
diées dans [57]. Bien sûr dans ces cas on y perd une certaine mesure de contrôle en ce sens
que certaines options de contrôle (sous la forme de sous-langages de C/„(L)) sont inacces-
sibles à travers une synthèse sur la projection. La synthèse n'est alors pas optimale. Mais
dans certaines situations, par exemple l'encapsulation de requis de contrôle de portée ex-
clusivement locale, cette perte d'optimalité de la synthèse peut être acceptable. Le but est
généralement d'établir les conditions du théorème 6 de Wong et Wonham [58] nécessaires
à la synthèse non bloquante sur l'abstraction.
On définit donc C'lo : Ti —> V2(L) comme suit

C'io(H) := {K Ç / / | (3 K' G 0~x(Cht(M)) CiTL) K = / / n A"} (Cl)

et
C\,(//):=C(//)n^w (C.2)

pour H G Ti.

Proposition C l . Soit C/,, et Ci,, deux structures de contrôle standards sur M et L res-
pectivement. Soit 0 : L —» M une projection causale telle que 9~x(Cixl(M)) Ç C[0(L).
2
Alors C'i„ : Ti —> V (L) telle que définie par l'équation CI est une structure de contrôle
standard.

Démonstration. Pour démontrer que C'lo est une structure de contrôle standard il suffit de
vérifier les trois propriétés sur les structures de contrôle standards (voir Wong [55] section
3.1, en particulier la proposition 13) notamment,

279
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

(1) Q,LeC'lo(L);
(2) C'io(L) est un sous-treillis complet de V(L) ;
(3) (V H G Ti) Clo(H) = {K C II | (3 A' G C'lo(L)) K = II D A"}.
D'abord Paxiome (3) découle directement des définitions, car de l'équation C l on a
que
C'lo(L) = {KCL\(3 h" G 9~x(Chl(M)) nfL)K = Ln K'}

et puisque K' Ç L pour tout K' G Ti, on a

C'JL) = { A Ç L | (3 A' G 9~\Cht(M)) n -F/.) 7? = A'}


= {AÇL|7?Gr1(C/u(A/))n^}

Ce qui nous donne, d'après l'équation C.2 que

Cto(L) = C'ln(L)nTL
= {KGCIO(L)\K = K}
,
= r (c /1! (A/))n^

En substituant dans l'équation C l on obtient la formulation de l'axiome (3). Il reste donc


à démontrer les axiomes (1) et (2).
(1) {Hl,L}CC7h(E)=0^(Cll,(M))nTi.
Puisque Cfn est une structure de contrôle {0, M} Ç Chi(M) D TM- Or puisque M =
9(L) alors L C 0-](M). Aussi 0~l(M) G TL (proposition 26 de Wong [55]). Or
puisque K Ç L pour tout K G Fi alors 9~X(M) Ç L et ainsi L = 9~X(M). Donc
LG9-x(Chi(M))nFL.
L'argument pour 0 est trivial.
(2) Ci0(L) = 9-x(Chi(M)) n TL est un sous-treillis complet de V(L).
Notez que puisque Ci„ est une structure de contrôle standard, Ci„(L) est un sous-

280
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

treillis complet de V(L) (Wong [55] p.35 axiome 2). Or,

e-\cM(M)) Q Clo(L)
l
0' (Chl(M))nTi Ç Clo(L)nFL=Cto(L)

Prenons A', G 0~x(Chl(M)) n TL i G {1, 2}, Alors R\ = 0-x(N'i) G Clo(L) pour un


certain A, G Chi(M). Et puisque h\ G TL, N{ = 0(Kt) = /9(Â7) = 0(A',-) G .FM, on
a donc N, G Chl(M) n ^ = Chi(M). Ainsi,

/d u K2 = rH^vO u rHAr2) = 0~X(NX U A,) G clo(L)

et puisque Ar! U N2 G C/,,(A/) Pi JFA/, on a que A'x U t<2 G 9'x(Chl(M)) D .F,. De


façon similaire,

Ki n K2 = r2(Ari) n r 1 ^ ) = 0-\NX n Ar2) G clo(L)

et puisque A'i n N2 G Chl(M) D TM, on a que Kx n A2 G 0-x(Chl(M)) D TL.


Ainsi, 0 x(Ci,j(M)) n .F/, 2 {0, £} et est fermé sous l'union et l'intersection d'en-
sembles, donc il s'agit d'un sous-trellis complet de L.

On peut donc conclure que C'lo est une structure de contrôle standard sur L. D

Dans la proposition C l on a en fait que 0~x(Chi(M)) n Ti Ç C[0(L). On a ainsi que


0-1(£/»(M)) n Ti constitue aussi un sous-treillis complet de Clu(L) et on peut aisément
vérifier que (V// G FL) C'lo(H) Ç Clo(II), c'est-à-dire C,,, < C'lo.

Corollaire C.2. Dans les conditions de la proposition C. 1, on a Ci,, < Clo.

Démonstration. Puisque, selon la proposition C. I, C'lo est une structure de contrôle stan-
dard, on a que

(V // G rL) CL(If) = { A Ç // | (3 A" G Clo(E)) K = Ifn K'}

(axiome 3 sur les structures de contrôle standards).

281
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

Or, d'après les conditions de la proposition C l , 0 -1 (C/,,(A/)) ç £/„(/,) et alors

9-l(Ch,(AI)) Q Cio(L)
C!lo(L) = 9-l(Chl(M))n^L Ç Clo(L)r\FL=Clo(L)

d'où (VA' G C'lo(H)) K G Ci„(H) puisque Ci,, est aussi une structure de contrôle standard.
Ainsi C'lo(H) Q Cto(H) pour H G TL arbitraire, d'où Clo < C'lo. D

Proposition C.3. Soit C/u et Ci0 deux structures de contrôle standards sur M et L res-
pectivement. Soit 9 : L —> M une projection causale telle que 0~l(Cin(M)) Ç Ci0(L).
Alors
(\/N G FM) 9(01(11)) Ç Chl(N)

où II := 9~X(N) etC't(l : Ti -» P2(L) est telle que définie par l'équation C. 1.

Démonstration. Posons Ar G TM, arbitraire, et / / := 0~X(N). Par définition

C'l0(H) = {KCH\(3K'e Clo(L)) ~K = H n A'} .

Or A' G C'i0(L) = 0-x(Ch,(M)) n TL, et on a alors que (3R' G Chl(M)) K1 = 0-x(R').


Aussi 0(K') = 0(0~l(R')) = R' G TM car 0 est causale, ainsi R' G Chl(M).
Maintenant, par la proposition B.3, puisque H — 9~ ' (Ar) on a que 9" ' (9(H)) — H et
ainsi

9(K) = 9(K) = 9(Hnh")


= 0(H)C\0(K')
= jvn/i'

puisque 0 est causale. Mais alors 9(K) Ç 9(K) Ç Ar et 9(K) G Cht(N) puisque C/,, est
standard. Ainsi (V7V G 7"j»/) 9(C'lo{H)) Ç C^OV) puisque A est arbitraire dans C'lo(H) et
A* arbitraire dans TM- d

Rappelons brièvement que selon la proposition 8 dans [58], pour L et A / fermés, lorsque
9 : L -> M est dotée de la propriété d'observateur alors (VN Ç M) 0~X(N) = 0-x(N).

282
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

Proposition C.4. Soit Chi et Ci„ deux structures de contrôle standards sur A / et L respec-
tivement. Soit 9 : L —> M une projection causale telle que 0~x(C)t, (A/)) Ç Cia{L) et dotée
de la propriété d'obser\>ateur. Alors

(VAr GTM)Chl(N)Ç9{C'lo(H))

où II := 0~X(N) etC\0 . Ti —> P2(L) est telle que définie par l'équation Cl.

Démonstration. Posons Ar G FM, arbitraire, et II := 0~X(N). PuisqueC/,s est standard, on


a que
Chl(N) = {R C A' | (3 R' G Chx(M)) R = Nn II'}

Maintenant, li' G Chl(M) Ç Chl(M) et donc (3/7 G Clo(L)) U = 0~x(l{') puisque


0 x(Clu(M)) Ç Cio(L). Aussi, puisque R' G Cht(M) C FM, 9 l(P!) = L' G FL (proposi-
tion 26 dans [55]) et donc U G 9~\Ch, (A/)) n TL = Cil„(L). Or

0-l(R) = 9~l(N fl R') = 0-x(N) n 9~l(R!) = iln L'

et puisque 9 est un observateur 0- ' (R) = 0~X(H) = H n / / et donc 9~l(H) G C'lo(H).


Puisque R est arbitraire dans N et N arbitraire dans FM, on a Ci,,(N) Ç 0(C'lo(II))
pour tout Ar G TM où II := 0 X(N). D

On peut en fait établir que, dans les conditions de la proposition C.4, on a plus généra-
lement que Chl(N) Q 0(Clo(H)) pour tout A' G FM OÙ H := 6>~'(Ar) (les conditions du
théorème 2 de [58]) si l'on note que C/« < C\0.

Corollaire C.5. Dans les conditions de la proposition C.4, on a que

(VAr G FM) Chl(N) C 0(Clo(II))

où H :^0-x(N).

Démonstration. Découle directement de la proposition C.4 et du corollaire C.2. D

Le corollaire C.5 nous assure donc que l'on a la forme affaiblie de la consistance du

283
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

contrôle ([58], théorème 2) pour le triplet (L. 9. Cj„) notamment :

Clu(H) Q 9(Cl0(N)) <=> 9OKNO 9-x\Chi{H} = idc,uiH) (C3)

[Link]//:=0-1(.V).
Finalement, des propositions C.3 et C.4, on peut conclure à la consistance du contrôle
complète (les conditions du théorème 1 de [58]) pour le triplet (L. 9, C'lo).
Théorème C.6. Soit Ch, et Ci0 des structures de contrôle standards sur M et L respective-
ment. Soit 9 : L —* M une projection causale telle que 0'x(Ch,(M)) Ç Ci„(L) et dotée de
la propriété d'observateur. Alors

(VAr G FM) Chl(N) = 0(C'lo(H))

où H :— 0~X(N) etC'lo : Ti —* V2(L) est telle que définie par l'équation Cl.
Démonstration. Découle directement des propositions C.3 et C.4. D

Proposition C.7. Soit Cju et Cu, des structures de contrôle standards sur M et L respecti-
vement. Soit 0 : L —* M une projection causale telle que 0~x(Ck,(M)) Ç Ci0(L) et dotée
de la propriété d'observateur. Alors

(VfîC M) K'io9'i(E) = 9-x(KM(E))

où K'I est l'opérateur de contrôle associé à C'(o : Ti —» V2(L) telle que définie par
l'équation Cl.
Démonstration. (Ç) D'une part, par le théorème C.6, on a ChAM) = 9(C'lo(L)) et donc
KM = 0 O K'L O 0~X par consistance du contrôle. Ainsi on a que

0-X(0OK'[ o0~x(E)) = 0~X(KM(E))

0-X(0(K'LO9-X(E))) = 0~X(KM(E)).

Et puisque K'L O (FX(E) Ç 0-1(0(K'L O 0~1(E))) en général, on a

l X 1
K'LO9 (E)Ç9 (9(K'LO9 \E))) =9 (KM(E)).

284
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

Q ) D'autre part on a que

E D KM(E)
X
9~ (E) D 9~X(KM{E))
X X X
K'LO9 (E) D K'LO0 (KM(E)) = 0 (KM(E))

puisque 0~X(KM(E)) C C'lo(L) par définition de C'lo(L).


D

À ce stade les conditions pour assurer la consistance du contrôle ont été établies (voir la
proposition C l et le théorème C.6). Il suffit que CV, et C\0 soient des structures de contrôle
standards sur M et L respectivement, et que 9 : L —+ M soit une projection causale telle
que 9~x(Chi(M)) C Ci0(L) et dotée de la propriété d'observateur. On peut alors conclure
que C'lo : 'Fi —> V(L) est une structure de contrôle standard et que pour N G TM et
/ / := 0~X(N) on a Chl(N) — 0(C'lo(H)). On a en particulier, d'après le théorème l dans
[58], que Chl(M) = 0(C'lo(L)) C 0(Clo(L)) et donc KM = 9O K'LO9~X où K'L est l'opérateur
de synthèse (control operator) associé à C'lo. Toutefois C'lo n'est pas localement définissable
et ne dispose donc pas d'une technologie de contrôle.

C.2 Synthèse non bloquante


La proposition suivante est établie d'après une argumentation qu'on peut trouver dans
[59] (en page 278). Le lecteur peut se référer à la section [Link] pour les définitions de
Lxoc, 9U et 0~x. et à la section [Link] pour la définition de KM •

Proposition C.8. Soit Ch, et C\n des structures de contrôle standards sur M et L respecti-
vement. Soit 9 : L —» M une projection causale telle que 0~x (C/H(A/)) Ç Ci0(L) et dotée
de la propriété d'observateur. Alors

9vl OKM < KLo9~X OKM

c 'est-à-dire que 9 est exempte de couplage de contrôle (voir section B.2).

285
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

Démonstration.
Il est clair que pour tout E G F M on a certainement que K A/ (A) = KM(E) G Chl(M). Mais
alors,
0;1(KM(E)) C 0-X(KM(E)) = KL(9-X(KM(E)))

puisque 9~)(Cli, (A/)) Ç Ci„(L), et donc 9~x OKM < KLO0~X OKM pour tout A" G Ci„(M)-
Ainsi 9 est exempte de couplage de contrôle. D

Corollaire C.9. Dans les conditions de la proposition C.8 on a aussi que

0,7l ° KM < K'L O 9~X O KM

où K'L est l'opérateur de contrôle associé à C'lo : Ti —> V2(L) telle que définie par
l'équation CI.

Démonstration. L'argument est essentiellement le même que pour la proposition C.8 puis-
que 9~ x(Chl(M)) Q C'l0(L) par définition de C'lo(L). D

En somme, les conditions pour une synthèse non bloquante sur l'abstraction sont main-
tenant presque toutes réunies (théorème 6 de [58]). Il ne reste plus qu'à obtenir la condition

0~x(Mm) = Lm. (C.4)

Cette condition n'est présente dans le théorème 6 que pour assurer la consistance du mar-
quage entre les deux niveaux et ainsi pouvoir établir un lien théorique clair entre une so-
lution non bloquante dans Y abstraction et son implémentation non bloquante dans Yagent.
Comme mentionné dans [60] en préambule : «cette condition est aisée à produire loca-
lement». En fait on la pose tout simplement comme une définition L'm :— 9~x(Mm). Ce
faisant on élargit en général Lm mais, avec la propriété d'observateur, on sait que lorsque
l'abstraction a produit / G Mm alors l'agent est en portée silencieuse d'au moins une chaîne
de Lm. D'un point de vue pragmatique, cette assurance suffit puisque le système est tou-
jours capable de déterminer si la configuration courante est terminale ou non ; l'abstraction
ne joue aucun rôle ici.

286
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

Théorème CIO. Soit Chi et Ci„ des structures de contrôle standards sur M et L respecti-
vement. Soit 0 : L —> M une projection causale telle que 9~x (Chi(M)) Ç Ci0(L) et dotée
x
de la propriété d'observateur. Si onpose0 (Mm) = Lm, alors

( V £ Ç M) KM(E) non bloquant 4=> 0 x(K\f(E)) non bloquant.

Démonstration. Sous les conditions du théorème on sait que C'lo : FL —» T2(L), telle
que définie par l'équation C l , existe et qu'il s'agit d'une structure de contrôle standard
(proposition C1). On sait que la restriction de l'équation 2.6 est toujours réalisée pour les
structures de contrôle standards. Aussi, par le théorème C.6, on a la consistance du contrôle
pour le triplet (L. 0, C'lo) de sorte que Ctu(M) = 0(C'lo(L)). On a enfin que
- 0~'(A/ m ) = L„, par hypothèse ;
- 0 est dotée de la propriété d'observateur par hypothèse ;
- 0,7 l OK A / < K'L O 0~X OKM (corollaire C.9) ;
où K'L est l'opérateur de contrôle associé à C'ln. Ainsi le théorème 6 de [58] est applicable
dans cette situation et on a

(V E Ç M) KM(EJ) non bloquant <=> K'L O 9~X(E) non bloquant.

D'où on peut conclure, par la proposition C.7, que

Ci E C M) KM(E) non bloquant <=> 9~X(KM(E)) non bloquant.

Reste à établir qu'il est possible de construire 0 pour que les conditions précitées
existent.

C.3 Règles de construction de la projection


Supposons L = Lm Ç E* le comportement fermé d'un agent, muni d'une technologie
de contrôle standard E = E c Ù E u . Alors L est muni d'une structure de contrôle standard
localement définissable. Supposons une projection causale 0 : L —» M dotée de la propriété

287
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

d'observateur, l'expression d'une abstraction sur l'agent. Puisque L est préfixe clos, alors
M = 9(L) est préfixe clos. De plus le comportement terminal de l'abstraction est alors
donné par A/,„ := 9(Lm).
Rappelons brièvement que

LVoc:={e}U^-l(T)ÇL

oùai : L —> T est une fonction partielle appelée fonction de sortie de la projection 9. La
projection 9 peut alors être définie comme suit :

9(e) = e
ni . f 9(s)uj(sa), si u(sa)\ et oj(so) = T GT
9(sa) = <
[ 9(s) autrement
où uj(sa)\ signifie que ui(sa) est définie. Alors Lvor forme l'ensemble des chaînes de L
provoquant la génération d'un événement à travers 0. Aussi 0V est la restriction de 0 à LUH
et 0,7] la fonction 9~x dont le co-domaine est restreint à Lvoc (voir section [Link]).
Définissons maintenant

Xr := {.sa G Lloc \ jj(sa) = r }


Te := {r€T|A'T^0} (C.5)
Tc Q {r G T, | XT Ç £*E r }
Tu •- Te-Tc.

Sans perte de généralité on peut supposer que T = Te. On a donc T = Tc Û T u , et A/ est


alors doté d'une technologie de contrôle standard induisant C/» une structure de contrôle
standard localement définissable dans l'abstraction. Clairement, pour Ir G M telle que
T G T,, on a 07 1 (' r ) = 9~x(lr) n /,„„, Ç £"£, et plus généralement on a

(VrGrr)0^-V)ç;£*Er. (C.6)

La formule C.6 caractérise l'absence de délai de contrôle de la projection. Une caractérisa-

288
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

tion différente mais équivalente est donnée dans [59]. La proposition qui suit montre que
l'absence de délai de contrôle entraîne la coïncidence du contrôle (section B.3).

Proposition C i l . Soit L Ç E* muni d'une technologie de contrôle standard c 'est-à-dire


E = E,. ÙE„. Soit M G T* et 9 : L —> M une projection causale dotée de la propriété
d'observateur, avec T et 9 conçus en respectant les règles de équation C.5, de sorte que
M soit muni d'une technologie de contrôle standard T = TCÙ T„ où la formule C.6 est
vérifiée. Alors 9-l(Chl(M)) Ç Clo(L).

Démonstration. (Argument similaire à celui du lemme 17 de [59], appendice A)


Posons K G 0~x(Clu(M)), alors K = 0"X(N) pour un certain A' G Chl(M). Puisque
N C M = 0(L), on a que 0(K) = 9(9~l(N)) = A/. On doit démontrer que K G &„(L).
Posons donc sa G A'EU n L, c'est-à-dire s G K, a G E u et sa G L. 11 y a deux cas.
(1) 0(sa) = 9(s) : Alors, 0(sa) = 9(s) G 9(K) = 9(K) = TV, puisque 0 est causale.
Donc sa G 9~~l(N) — 9"X(N) = K, puisque 0 est dotée de la propriété d'observateur.
(2) 9(sa) = 0(S)T : Alors sa G u,' X(T) et puisque a G E„, par hypothèse r G Tu. Or
9(s) G 0(K) = 0(A) -= 77, et 0(sa) G 9(L) = M, donc puisque N est contrôlable,
0(sa) = 0{S)T G ~NTUn M Ç 77. Ainsi, encore une fois sa G 0"' (N) = 0-l(N) = TA
puisque 0 est dotée de la propriété d'observateur.
D

Corollaire C.12. Dans les conditions de la proposition Cil, en supposant la consistance


x
du marquage (9~ (9(Lm)) = Lm), alors

(VA' Ç M)KM(E) non bloquant 4==> 0~X(K\J(E)) non bloquant.

Démonstration. Le résultat découle directement de ce que C^ et Ci0 sont toutes deux mu-
nies de technologies de contrôle et sont par conséquent des structures de contrôle standards.
On retrouve ainsi les conditions du théorème CIO. D

Dans les conditions de la proposition C. 11, en supposant la consistance du marquage


1
(0 (0(L„J) = /.„,), pour un objectif de contrôle E Ç M alors N := KM(E) est contrô-
lable et non bloquant par rapport à M et K := 0 _ 1 (A) est contrôlable et non bloquant

289
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

par rapport à L (théorème CIO). De toute évidence 0(A) = .V et en supposant Ar ^ 0


A/,„-fermé, on a aussi que A = 0~X(N) C 9~x(9(Lm)) = Lm et A' est Lm-fcrmé.
Dans ces circonstances, selon la proposition 85 dans [55], il existe deux lois de contrôle
V'A, : M — V(T) et VK : L -»• P(E) telles que M(VN) = ÎV et L(VK) = A-
Pour pouvoir implémenter le résultat d'une synthèse sur Pabstraction (G/„) dans l'agent
(Gio) il faut pouvoir lier VN et VK par une règle telle que celle de l'équation 2.7. En d'autres
termes in faut que V,\ et W soient synchrones (section B.4). Or, dans les conditions de la
proposition C. 11, il manque un élément à savoir que la structure de contrôle C'lo doit être
localement définissable. Or, à cause de la règle de définition de la projection (équation C.5),
bien que C'lo soit standard elle n'est justement pas localement définissable. Mais on se
rappelle que Clo < C'lo (corollaire C.2) et qu'en conséquence Chi(N) Ç 0(Clo(II)) (pour
N G FM et H := 0 _1 (iV), corollaire C.5) ce qui correspond à la forme affaiblie de la
consistance du contrôle. Tel que mentionné en annexe A, les résultats sur le contrôle non
bloquant restent valides avec cette forme de consistance du contrôle. Les lois de contrôle
V/v et VK sont donc synchrones puisque 0 est un observateur et qu'il y a absence de cou-
plage de contrôle (proposition C.8). Dans ce cas, puisqu'on a que 9~x{Chi(M)) Ç Ci0(L)
(conditions de la proposition C i l ) , la règle de l'équation 2.7 se simplifie de la façon sui-
vante :

VK(s) = E„ U {a G E c | (Vr G T) 9(sa) = 0(.s)r => T G VN(9(s))} (CJ)

pour s G L. On se propose donc d'implémenter VK à l'aide de la technologie de contrôle de


Cio (S = E c Ù E a la technologie de contrôle standard), ce qui semble raisonnable puisque
Clo < C'i0-

Proposition C l 3. Dans les conditions de la proposition Cil,

L(VK) = 0-1(^7JW))

où VK est définie par l'équation C. 7.

Démonstration.
Observons d'abord que K-M(E) G Chl(M) par définition et qu'ainsi KM(E) G Cht(M)

290
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

puisque C^ est une structure de contrôle. Or, puisque 0~x(Chi(M)) Ç Ci0(L), on a que
X X
0~ (KM(E)) G Clo(L). D'autre part 0~ (KM(E)) G FL ([58], proposition 4). Maintenant
posons KM(E) ^ 0 de sorte que 0 X(KM(E)) ^ 0 et ainsi e G L(V K ) n 0 X
(KA/(#)).
(Ç) Posons sa G L(VK) c'est-à-dire .s G L(VK), o- G VK(s) et sa G L, et faisons
l'hypothèse d'induction que s G 9~X(KM(E)). Alors,
(1) ou bien a G E u ;
(2) ou bien a G E c et 9(sa) = 9(s) ;
(3) ou bien a G E c , 9(sa) = 0(.s)r et r G VN(9(s)).
Dans le cas (1), sa G 0 X(KM(E))ZU n L Ç 0 X(KM(E)), puisque 0 V A / ( # ) )
est contrôlable. Dans le cas (2), 0(sa) = 0(.s) G KM(E), puisque par hypothèse
[ X
•s G 9~ (KM(E)), et ainsi sa G 9~~ (KM(E)). Dans le cas (3), puisque par hypothèse
•s G 0~X(KM(E)), on a0(.s) G KM(E) = A/(Vjv). Mais alors, puisque sa G L, on
a 9(S)T = 0(.sa) G 0(L) = A/, d'où 0(.sa) = 0(.s)r G A/(VW) = KM(E) et donc
.sa G 0~X(KM(E)).
Q ) Posons .sa G 9~1(KM(E)), on a donc que 9(sa) G KM(E) Ç A/, et faisons
l'hypothèse d'induction que s G L(VK). Tentons de supposer pour un instant que
.sa £ L(VK). Alors, par définition de L(VK) (section [Link]), a G" VK(s) et, par
l'équation C.7, a G E C , 9(sa) = 0(s)r et r ^ VK(9(s)). Mais alors on obtient que
0(,sa) = 0(.s)r (^ M(VN) = KM(E) ce qui contredit l'hypothèse selon laquelle
0(sa) G K-M(E) Ç M (c'est-à-dire sa G 0 X(KM(E)))- On en conclut donc que
.sa GL(VK). O

Cette preuve est très similaire à celle qu'on retrouve pour la proposition 1 dans [57].
En effet le genre de projection engendrée par l'équation C.5 s'apparente à une projection
trouée. On note aussi que les projections naturelles sont un cas particulier de projections
trouées. Or dans ces deux cas il est évident que, par définition, ces deux types de projec-
tions sont exemptes de délai de contrôle (formule C.6) puisqu'elles exposent (ou effacent)
directement certaines transitions sur événements contrôlables de leur dynamique, et que
leur alphabet est alors un sous-ensemble de l'alphabet original. Si en plus on dote ces pro-
jections de la propriété d'observateur (par exemple comme dans [14] pour les observateurs

291
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

naturels et dans [57] pour les projections trouées), on obtient des résultats similaires au
résultat précédent.

C.4 Composition synchrone d'abstractions


L'assemblage de composantes pour produire le modèle de comportement libre d'un
sous-système se fait généralement par produit synchrone dans le contexte usuel de SCT.
11 est intéressant de constater que l'absence de délai de contrôle se propage au produit
synchrone de deux (ou plusieurs) abstractions obtenues par la règle de l'équation C.5.
Soit E, := E1|(.ÙE,,„ (/' = 1, 2) deux alphabets disjoints et E := Ei ÙE 2 . Soit aussi
qt : E* —» E t (i = 1, 2) les projections naturelles correspondantes. Soit L, Ç E* (i =
1,2) des langages préfixes clos et L := L] || L2. Soit T, := TtcÙTt<u (i = 1.2) deux
alphabets disjoints, T := 7 \ Ù 7 2 et P, : T* —• T* (i — 1,2) les projections naturelles
correspondantes. Soit 0, : L, —> T* (i = 1, 2) des projections causales définies comme suit

9,(e)
9,(s) • uit(sa). siu,\(saj!
9i(sa)
0,(s), autrement

pour sa G Li et u;, : L, —* T\ une fonction partielle arbitraire appelée fonction de sortie


de 0,. On suppose aussi que, pour i G {1. 2}, E, D T, = 0 et que (Ll,9„Tl) ont été conçus
conformément à la règle de l'équation C.5. On a donc que la formule C.6 est vérifiée pour
(Ll,[Link])i — 1. 2. On peut alors former u; : L —* T comme suit

f u>,(v,(.s<7)), si a G E, etu;4(r/((.sa))! (/ = 1, 2)
uj(sa) := <
I indéfinie, autrement

pour .sa G L. Dans cette définition, on note que ui(sa) est bien définie puisque E x et E 2

292
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

sont disjoints. Avec ^ ainsi constituée on peut former 0 : L —» T* de la façon suivante

0(e)
9(s) - uj(sa), si u,-(.sa)!
0(sa)
9(s), autrement

pour sa G L. D'après Pu [42], dans les conditions précitées, cette définition de 0 constitue
la synchronisation de 0i et 02 notée 0 := 0i || 02 et on a alors :

I\ o 9 = 0, o q, i = 1, 2
x
qio9~ = 97loPi » = 1,2
9{L) = 9l(Ll)\\92(L2)

correspondant respectivement au lemme A.7, au lemme A.8 et à la proposition A.5 dans


[42].
Sans perte de généralité on peut poser M := 9(L) et restreindre le co-domaine de 0 à
M pour donner 0 : L —> M, et de la même façon obtenir 0; : Lh —> A/, (/ = 1,2). On
appelle alors les systèmes (Lt, Mt. 9L) des composantes disjointes du système (L, M, 9).

Proposition C.14. Pour un système (L, M, 0), obtenu par produit synchrone de deux com-
posantes disjointes (Lx, Af, 0,) telles que définies précédemment, alors la formule C.6 est
vérifiée pour (L, A/, 0).

Démonstration.
Prenons r G Tr arbitraire. Alors, puisque 7\ D T2 = 0, ou bien r G T],,. ou bien r G T 2 r .
Supposons donc que r G T l c . Prenons maintenant -sa G ui~x(r). Puisque UJ~X(T) Ç Avoc
par définition et que s < sa, on a donc s G A Ç E*. Mais alors, par définition on a que
i
^'2(fh(f>)(r) n'est pas définie, r = u;(.sa) = uj\(qi(s)a) et a G E]. c Ç E c . Ainsi sa G E*EC.
On peut faire un argument symétrique avec la même conclusion pour r G T 2 c . Puisque r
est arbitraire dans Tc, on en conclut que la formule C.6 est vérifiée pour (L, M, 0). D

Puisque le produit synchrone est associatif, ce résultat se généralise à un nombre fini,


arbitraire de composantes.

293
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

Une question intéressante est de savoir ce qui arrive à la propriété d'observateur lorsque
l'on opère la composition synchrone de deux modèles qui sont eux-mêmes des abstractions
(0, pour i = 1,2) possédant cette propriété. On trouve une réponse à cette question dans Pu
[42] (aux sections 2.3 et A.2) et aussi une réponse partielle, concernant les observateurs na-
turels (projections naturelles possédant la propriété d'observateur), dans Wong et Wonham
[59] (proposition 8). Le contexte dans [59] étant plus près de celui utilisé dans la présente
étude, il est utile d'utiliser la proposition 8 et de la généraliser pour des projections causales
(en utilisant certains résultats de [42]).

Proposition C.15. Soit un système (L. M, 0) obtenu par composition synchrone de deux
composantes (Lu Mi, 0,), i = 1,2, disjointes définies comme dans ce qui précède. Suppo-
sons que pour i = 1, 2, les projections 0t sont dotées de la propriété d'observateur. Alors
la projection 0 := 0i || 02 est aussi dotée de la propriété d'observateur.

Démonstration.
On observe d'abord que d'après le lemme A.7 dans [42] on a

I\ o 0 = 0, o q, (C.8)

pour 0, 9i, P, et </, (i = 1, 2) définis comme précédemment.


Posons s G L et r G T tels que 9(s)r G 9(L) = M. Puisque E] n S 2 = 0 on a
q,(s) G 7i(A) = Li pour i = 1, 2. Supposons que r G 7"i. Alors par l'équation C.8 on a

9(S)T G 9(L)
==> 1\(9(S)T) G P(9(E))
=> (Pi(0(.s))r)G0i(c 7l (L))
=> 9i(qi(s))r G 9i(Li) .

Or puisque 0i est un observateur, il existe donc u G Ef pour laquelle qi(s)u G Lx et


9i(qx(s)u) = 0i(<7i(,s))r ([58], proposition 7). Sans perte de généralité on peut considérer
queqi(s)u G [Link]-
Puisque u G Ef alors qi(su) = q\(s)u G Lx donc su G </, 1(Li). Aussi, puisque

294
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

E] D E 2 = 0, on a q2(su) = q2(s) G L2 et donc su G q2 1(L2). Ainsi

su eqT1(Li)nqï1{L2) = L

et 0(.su) G 9(L) = M. Or 0(.s) < 0(.su) puisque 0 est causale, et donc 9(su) = 9(s)t pour
un certain /. G T*. Maintenant puisque qi(s)u G Li,l0C on a que su G Lvoc ([42], lemme
A.9) d'où t G T+. Mais puisque 92(q2(su)) = 92(q2(s)), on a que t G Tj + . Et puisque
#i((/i(-s»)) = 9i(qi(s)u) = 0i((/i(.s))r, on a finalement que / = r et ainsi 0(.st/) = 0(.s)r.
Par symétrie on peut suivre le même argument en supposant r G T2. Ainsi, par les
proposition 7 et 8 dans [58], on peut conclure que la projection 0 = 0! || 02 est aussi dotée
de la propriété d'observateur. D

Puisque le produit synchrone est associatif il est possible de généraliser ce résultat à un


nombre fini, arbitraire de composantes disjointes.

Proposition C.16. Soit un système (L. M, 9) obtenu par composition synchrone de deux
composantes (Lt, M,,0I), i, = 1, 2, disjointes définies comme dans ce qui précède. Suppo-
sons que pour i = 1, 2, les projections 0t sont dotées de la propriété d'observateur. Alors
la projection 0 := 0t || 02 est dotée de la propriété de coïncidence du contrôle définie en
section B. 3, notamment
l
0 (Chi(M))çCio(L).

Démonstration.

Premièrement, pour le système de bas niveau L = Lx || L2, on peut toujours associer


des générateurs G, où A, = L (G,) (i. = 1,2). La relation entre produit synchrone de
langages et produit synchrone de générateurs (équation 1.3) nous assure alors que

L = L(Qi || G 2 ) = A(Gi) || A(Gi) = Lx || L2 .

Ainsi, d'après la définition de produit synchrone de générateurs (équation 1.2), il devrait


être évident que si Lt (i — 1. 2) sont munis d'une technologie de contrôle standard, alors L
est aussi muni d'une telle technologie de contrôle. D'ailleurs, cette manoeuvre est typique
du contexte usuel-de SCT (contexte de Ramadge et Wonham).

295
ANNEXE C. ABSTRACTION EN CONTRÔLE HIÉRARCHIQUE

Deuxièmement, 0, (/ = 1. 2) sont des projections causales dotées de la propriété d'ob-


servateur et construites d'après les règles de l'équation C.5. Alors A/, = 0t(A,) (/ = 1. 2)
sont aussi dotés d'une technologie de contrôle standard et, par un argument similaire au
précédent, M est donc aussi doté d'une technologie de contrôle standard.
Troisièmement, les projections 0t (i = 1, 2) vérifient toutes deux la formule C.6, donc
par la proposition C. 14 la projection 9 :— 9X \\ 92 vérifie aussi la formule C.6.
Finalement, puisque 0 := 0t || 9% est aussi dotée de la propriété d'observateur, d'après
la proposition C.15, alors la proposition C i l , nous assure le résultat escompté. D

On peut donc obtenir une représentation abstraite d'un système par combinaison d'un
ensemble de représentations abstraites de ses composantes, pourvu que ces dernières soient
disjointes entre elles. Si l'ensemble des composantes abstraites sont des observateurs (des
composantes concrètes qu'elles représentent) le modèle obtenu par composition synchrone
de ces abstractions est aussi un observateur du système concret (c'est-à-dire une abstraction
de la composition synchrone des composantes concrètes). Au sens de Pu [42] il s'agit
d'abstractionsfiables(de l'anglais reliable abstraction, section 2.7). Cette situation n'est
pas sans rappeler la façon dont un système est modélisé dans le contexte usuel de SCT
(modèle de Ramadge et Wonham).

296
Annexe D

Inventaire de composantes réutilisables

Cette section présume que le lecteur est familier avec le contenu du chapitre 4. Elle dé-
crit l'abstraction en composantes réutilisables des dispositifs disponibles sur l'usine école
MPS (Modular Production System) de Festo™, dont on peut trouver la description détaillée
dans l'ensemble des brochures [ 17] à [21 ]. La bibliothèque de composantes réutilisables est
divisée en deux parties :
1. l'abstraction des dispositifs physiques de l'usine MPS (composantes élémentaires) ;
2. une collection de sous-systèmes abstraits formant des unités utiles pour la description
de problèmes de contrôle sur l'usine école (composantes mixtes).
L'ensemble est orienté vers la solution d'une étude de cas décrite au chapitre 5. On trouve
à la fin de cette section quelques statistiques sur la complexité de l'ensemble de ces com-
posantes.
Dans ce qui suit, lors de l'élaboration de spécifications de contrôle, on classifie l'en-
semble des requis de contrôle en trois groupes : requis implicites, explicites ou standards.
Cette classification n'apparaît nulle part (comme telle) dans la littérature sur SCT et mérite
d'être clarifiée.
Selon la méthode préconisée en section 4.1, on décrit un sous-système par un modèle
de STS sans structure verticale. De façon standard, avec des modèles de STS, on modélisé
les contraintes de contrôle par usage de modèles pour la mémoire. Ces modèles sont fermés
sur l'ensemble de leurs événements incontrôlables (habituellement par des transitions en
boucle sur le même état d'où elles émanent), et toute contrainte de contrôle visant à exclure
297
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

une ou plusieurs de ces transitions doit être incluse dans la spécification de contrôle S sous
forme d'une arborescence d'états correspondante. Ces arborescences d'états sont traduites
en prédicats par la logique de synthèse. Le détail de cette procédure est donné à la section
4.1 sur la définition de problèmes de contrôle dans [39]. C'est précisément cette forme de
requis que l'on retrouve ici dans la catégorie des requis dits standards. Les requis utilisés
ici sont directement transcrits sous forme de prédicats par commodité. Avec un modèle de
STS sans structure verticale les prédicats sont d'ailleurs aussi expressifs et habituellement
plus simple d'usage.
Les modèles de mémoire peuvent aussi inclure des transitions sur événements contrô-
lables. L'usage d'une transition sur événement contrôlable dans un modèle de mémoire
constitue une altération directe de la fonction de transition du modèle du système global.
C'est pourquoi on les considère comme des contraintes de contrôle explicites dans le mo-
dèle d'un sous-système. Pour expliciter ces requis (qui font déjà partie de la structure de
transition du sous-système à travers leur inclusion dans celle d'un élément de mémoire) on
utilise par exemple la forme t r s f <= Seq = 3 pour dénoter que l'événement contrô-
lable t r s f requiert que l'élément de mémoire Seq soit à l'état 3.
Enfin, avec cette procédure de modélisation, une simple contrainte d'exclusion mutuelle
entre deux familles d'états de dispositifs différents doit faire appel à un modèle mémoire.
Or comme l'information existe déjà dans l'ensemble des modèles, pourquoi complexifier
ce modèle par l'addition d'un modèle de mémoire reproduisant (par redondance) cette in-
formation ? Une discussion de cette forme de contrainte est donnée à la section [Link]. La
spécification de la grue en figure 4.3 constitue un bon exemple de cette forme de contraintes
qualifiées ici de contraintes implicites au modèle.
Finalement la section D.3 introduit la notion de requis de contrôle élémentaire. Sim-
plement formulé, un requis de contrôle élémentaire correspond à une arborescence d'états.
Dans un modèle de STS sans structure verticale, le prédicat correspondant à une arbores-
cence d'états prend la forme d'une conjonction. Par exemple, en figure 4.3, chacun des
prédicats de la figure est un requis de contrôle élémentaire. Pour des requis plus complexes
tels que

/ * ( 1 ) * / SW = 0 A
(Clamp G { 1 , 2 , 3 } V M t r G { 1 , 2 , 3 } V Drv = 1)

298
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

extrait de la spécification de contrôle pour une perceuse enfigure4.17. il suffit de distribuer


la conjonction sur l'ensemble des disjonctions. On a alors l'ensemble des trois requis de
contrôle élémentaires suivants :
SW = 0 A Clamp G {1,2,3}
SW = 0 A Mtr G {1,2,3}
SW = 0 A Drv = 1

en lieu et place de (1) dans la spécification de contrôle. Cette manoeuvre est justifiée par
le fait qu'avec les STS, la spécification S est un ensemble d'arborescences d'états et que
cet ensemble est transformé par la procédure de synthèse en une disjonction de prédicats
représentant chacun des éléments de <S (voir [39], section 4.1). Les requis de contrôle élé-
mantaires constituent une bonne façon de normaliser les ensembles de requis de contrôle
pour permettre une comparaison de leur taille comme mesure de leur complexité.

D.l Composantes élémentaires


La spécification de composantes réutilisables élémentaires est décrite de façon détaillée
à la section 4.2.2. Il peut être utile de s'y référer pour comprendre le contenu de cette
section.

D.l.l Jacklll
Les vérins constituent une famille de dispositifs versatiles et admettent plusieurs va-
riantes d'interfaces dénotées par les suffixes SS, cdcr, cd et cr. Le vérin type, la composante
J a c k l l l , détaille chacune de ces variantes. Pour tous les autres modèles de vérins donnés
(y compris les vérins à commande bistable) il est présumé que ces variantes existent aussi
dans la bibliothèque. Les interfaces sont exactement les mêmes que pour le vérin type, et
les détails d'implémentation peuvent aisément être déduits des descriptions de ces variantes
données pour le vérin type.
On trouve à la section 4.2.2 le modèle de composante réutilisable pour un vérin à com-
mande monostable muni d'un ensemble complet de capteurs. Ce modèle appelé J a c k l l l
est l'un des plus simples et des plus complets pour cette catégorie de dispositifs ; on peut le

299
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

considérer comme un modèle de référence. La figure 4.9 donne la structure de sa projection,


la figure 4.10 donne l'interface correspondante. La figure 4.8 donne des détails structurels
complémentaires sur le sous-système associé à la composante réutilisable.

D.1.2 Jackl 1 ISS


La composante J a c k l l l S S (SS pour start/stop), dont on trouve la définition d'inter-
face en figure D. 1, n'est qu'une simple variation de P interface de la composante J a c k l 11.

Basic Component JacklllSS<Y0, XO, XI> {


SubSystem JacklllSS {
State Vector = <Y0, XO, Xl>
/ 1Y0 := YÔ A XO, / i Y 0 := YO A XI
P r o j e c t Î Y 0 ( ) := { r e t u r n funcstart() ; }
P r o j e c t î x 0 ( ) := { r e t u r n funcstop(); }
l a I Î Y 0 ( ) := { set(YO); }
laliY0() := { r s t ( Y O ) ; }
cycleQ := cycle() + {
i f ( îXO ) t h e n func 1 X o();
f une, YO() ;
funclY0();
}
}
}

D.1.3 Jacklllcdcr
La composante J a c k l l l c d c r , dont on trouve la définition d'interface en figure D.2,
propose une autre variation de J a c k l l l . Son interface permet d'interrompre le déploie-
ment (événement cd pour cancel deploy) ou la rétractation (événement cr pour cancel re-
tract) du vérin.

Basic Component Jacklllcdcr<YO, XO, XI> {

SubSystem Jacklllcdcr {
State Vector = <Y0, XO, Xl>

300
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

start

JacklllSS : G

stop

JacklllSS: G
iXO/e

îYO/start

ïXO/stop
iXl/e

FIGURE D.l - Composante JacklllSS (sous-système et projection)

deployend

Jacklllcdcr: G

retractend retract

Jacklllcdcr: G
iXO/e
î X l /deployend

lYO/retract
îXO/retractend ] \s^7Z-

iXl/e

FIGURE D.2 - Composante Jackl I Icdcr (sous-système et projection)

301
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

/ÎY0 := YO A X I , / l Y 0 := YO A XO

P r o j e c t Î Y 0 ( ) := {
i f ( XO ) t h e n r e t u r n funcdepioy() else return funccir();
return false; }
P r o j e c t i Y 0 ( ) := {
i f ( XI ) t h e n r e t u r n funcretract() else return funccd();
return false; }

Projectîxl() := { r e t u r n f u n c d e p i o y e n d ( ) ; }
Projectîxo() := { r e t u r n funcretractend(),- }

lal]Y0() := { set(YO); }
laliyo() := { rst(YO); }

cycleÇ) := cycle() + {
if ( TX1 ) then funcjxiQ;
if ( îXO ) then funcîxo();
funcÎY0();
funciY0();
}
}
}

D.1.4 Jacklllcd
La composante J a c k l l l c d , dont on trouve la définition d'interface en figure D.3,
propose une variante de l'interface de J a c k l l l c d c r ou seul le déploiement du vérin
peut être annulé.

Basic Component Jacklllcd<YO, XO, Xl> {

SubSystem Jacklllcd {

State Vector = <Y0, XO, Xl>

/tY0 := YÔ A XO, / l Y 0 := YO A XÔ

Proj'ectÎY0() := { r e t u r n funcdepioy(); }
302
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

deployend

Jacklllcd: G

retractend retract

Jacklllcd: G
iXO/e
Y0,X0,X 1 jKtX 1 /deployend
tYO/deploy/^™*^}.

J.Y0 jretract
îXO/'retractend
YÔ,XÔ,X1 J . ^Y0,X0,X1
iXl/e

FIGURE D.3 - Composante Jacklllcd (sous-système et projection)

P r o j e c t l Y 0 ( ) := {
i f ( XI ) t h e n r e t u r n funcretract() else return funccd() ;
}

Projectm() : = { r e t u r n funcdeployend() ; }
Project]X0Q : = { r e t u r n funcretractend() ; }

lal]Y0() ••= { set(YO); }


lalVi0() := { r s t ( Y O ) ; }

cycleQ : = cycleQ + {
i f ( TXl ) t h e n funcm();
i f ( TXO ) t h e n funcno();
funCfYoO;
funcmQ;
}

303
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

D.1.5 Jacklllcr
La composante J a c k l l l c r , dont on trouve la définition d'interface en figure D.4,
propose une autre variante de l'interface de J a c k l l l c d c r ou seule la rétractation du
vérin peut être annulée.

Basic Component Jacklllcr<YO, XO, XI> {

SubSystem Jacklllcr {

State Vector = <Y0, XO, Xl>

/ÎY0 := YÔ A X Ï , / 1Y0 := YO A XI

P r o j e c t Î Y 0 ( ) := {
i f ( XO ) t h e n r e t u r n funcdepioyQ
e l s e r e t u r n funccr(); }
Project[Y0Q := { r e t u r n funcretractQ; }
P r o j e c t , x l ( ) := { r e t u r n funcdeployendQ ; }
P r o j e c t r x o ( ) := { r e t u r n f uncretraccendQ,- }

JalrY0() := { set(YO); }
lallY0() := { r s t ( Y O ) ; }

cycleQ -.= cycleQ + {


if ( TX1 ) then funcm();
if ( ÎXO ) then funcm();
funcTyo();
funciY0Q;
}
}
}

D.1.6 Jackl 10
La composante J a c k l l O , dont on trouve la définition d'interface en figure D.5, mo-
délisé un vérin à commande monostable ne disposant pas d'un capteur en fin de course. Le

304
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

deployend

Jacklllcr: G

retractend retract

Jacklllcr: G
iXO/e
1/deployend
TYO/deploy

lYO/retract
îXO/retractend

iXl/e

FIGURE D.4 - Composante Jacklllcr (sous-système et projection)

capteur de fin de course du vérin est donc remplacé par une minuterie mémorisée de type
ODT (voir section [Link]) dont l'état initial est inactive.
Il faut noter que la minuterie est incorporée au dispositif physique ; il ne s'agit pas
d'une composante réutilisable. Le modèle obtenu de façon ad hoc est en fait celui de la
figure D.6. Ce dernier peut être ramené au modèle de la figure D.5. Cette hypothèse doit
bien sûr faire l'objet d'une validation de la part du concepteur de la composante réutili-
sable. Cependant on peut noter que c'est l'élément de contrôle (l'ordinateur ou le PLC) qui
est responsable de tout changement d'état d'un élément de mémoire. Par conséquent, à la
figure D.6, l'événement 1M1 se produit (au plus tard) au cycle de rétroaction suivant l'évé-
nement lYO. Or, puisque îXO est incontrôlable, il ne peut se produire qu'au prochain cycle
de rétroaction (au plus tôt). Ainsi l'événement îXO ne peut pas se produire avant IM1. Au
pire les deux événements sont perçus comme simultanés.

Basic Component JackllO<YO, XO, Tl, dt : TIME> {

/* Initial state = timer cleared */


Tl : ODT [S := YO A XÔ, MÏ, dt] ;
305
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

deployend

Jackl10 : G

retractend retract

JackllO:G Tl : 0DT[S := YO A XO, M l , dt]

iXO/ï
î M l /deployend
TYO/deploy

lYO/'retract
î XO/retractend\^<mZ
iMl/e

FIGURE D.5 - Composante Jackl 10 (sous-système et projection)

iXO/e

îYO/deploy/ '['MX / deployend

îXO/retractend lYO/retract

lMl/ff

Tl : ODT[S := YO A XO, M l , d«]

FIGURE D.6 - Composante Jac^'7 70 (modèle exhaustif du sous-système)

306
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

SubSystem JackllO {
State Vector = <Y0, XO, Ml>

/[Y0 := YÔ A XO
/lY0 := YO A Ml

P r o j e c t | Y0 () := { return funcdeployQ ; }
ProjectlY0() := { return funcretractQ ; }
Projectm() := { return funcdeployend() ; }
Project^) -.= { return f uncretractendQ ; }

lal]YQ() := { set(YO); }
lallY0Q := { rst(YO); }
lalm() := { set(Ml); }
lalm() := { rst(Ml); }

cycleQ := c y c l e ( ) + {
i f ( ( YÔ V XO ) A Ml ) t h e n funcm();
i f ( T l A YO A XÔ A MÏ) t h e n funcmQ;
evalr(Tl, YO A XÔ A MÎ) ;
i f ( 1X0 ) t h e n func^oQ;
funcÎY0();
funclYQQ;
}
}
}

D.l.7 JacklOl
La composante réutilisable J a c k l O l , dont on retrouve la définition d'interface en
figure D.7, modélisé un vérin à commande monostable ne disposant pas de capteur de dé-
but de course. Ce capteur est donc remplacé par une minuterie mémorisée de type ODT
dont l'état initial est échue.

Basic Component Jackl01<Y0, TO, XI, dt : TIME> {

/* Initial state = timer expired */


307
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

deployend

JacklOl : G

retractend retract

JacklOl : G TO : ODT[S := YO A XI, MO, dt]

iMO/e
1X1/deployend
tYO/deploy

1Y0/retract
î MO/ retractend
1X1/E

FIGURE D.7 - Composante JacklOl (sous-système et projection)

TO : ODT [S YO A X I , MO, dt];

SubSystem JacklOl {
State Vector = <Y0, MO, Xl>

/TY0 := YO A MO
/1Y0 == YO A XI

ProjectlY0Q - { return funcdepioy() ; }


P r o j ectjYoQ = { return funcretractQ ; )
Project,xl() = { return funcdeployendQ ; }
Projectm() = { return funcretractendQ,- }

ial T YoO { set(YO) }


laIlYo() { rst(YO)
lallM0() { set(MO)
laltM0() { rs fc(MO)

308
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

cycleQ := cycleQ + {
i f ( (YO V XI) A MO ) t h e n funciH0Q;
i f ( TO A YÔ A XÏ A MO ) t h e n funcm();
evalT(T0, YÔ A XÎ A MO);
i f ( îXl ) t h e n funcmQ;
f une, YOO;
funcÏY0Q;
} } }

D.l.8 Jackl 00
La composante J a c k l 0 0, dont on retrouve la définition d'interface en figure D.8, mo-
délisé un vérin à commande monostable ne disposant d'aucun capteur. Les capteurs sont
remplacées par deux minuteries mémorisées de type ODT dont l'une est à l'état initial
échue et l'autre à l'état initial inactive. Les délais de réaction au déploiement et à la ré-
tractation du vérin peuvent être asymétriques et même éventuellement nuls, pourvu que la
machine cible supporte correctement un délai nul sur une minuterie brute.

Basic Component Jackl00<Y0, TO, dtO : TIME,


Tl, dtl : TIME> {

/* Initial state = expired */


TO : ODT[S := YÔ A MÎ, MO, dtO];
/* Initial state = cleared */
Tl : ODT [S := YO A MO, MÎ, dtl] ;

SubSystem JacklOl {
State Vector = <Y0, MO, Ml>

/ TY0 := YÔ A MO
/ l Y 0 := YO A Ml

P r o j ect Î Y o() = { return funcdeployQ ; }


ProjectiY0Q = { return funcretractQ ; }
ProjectimQ = { return func d e p l o y e n d () ; }
Projectm() = { return funcrecractend() ; }

309
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

deployend

Jackl00 : G

retractend retract

Jack100 : G Tl : ODT[S := YO A MO, M l , dt{[

TO : ODT[S := YO A M l , MO, dt0]

iMO/s
Y0,M0,M l X T M1 /deployend
îYO/deploy

lYO/' retract
î MO/ retractend'\y<l "

iMl/s

FIGURE D.8 - Composante Jackl00 (sous-système et projection)

310
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

lalîyo() = { set(YO)
1 al iwO = { rst(YO)
IaIrM0() = { set(MO)
lâJ-lMoQ = { rst(MO)
lalmO = { set(Ml)
lalimiQ - { rst(Ml)

cycleQ := cycleQ + {
if ((YO V Ml) A MO ) then funcmoQ;
if ( (YÔ V MO) A Ml ) then funcm();

if ( TO A YÔ A MÎ A MO ) then func]mQ ;
evalr(T0, YÔ A MÎ A MO);

if ( Tl A YO A MO A Ml then funC]Mi();
evalr(Tl, YO A MO A MÎ) ;

funcÎY0();
f une i-ioQ;

D.1.9 Jack211a
La composante J a c k 2 1 1 a , dont on retrouve la définition d'interface en figure D.9,
modélisé un vérin à commande bistable verrouillée (équivalent anglais pour latched).
Il existe deux types de vérins bistables :
1. le vérin dit bistable (sans qualification) dont la commande est alors présumée non
verrouillée) ;
2. le vérin bistable à commande verrouillée.
La position d'un vérin est dite stable si une coupure de l'alimentation à la commande n'en
change pas la position. Un vérin bistable possède deux positions dites stables. Les vé-
rins bistables dont la commande est verrouillée complètent toujours la dernière commande
donnée, même si l'alimentation à la commande est coupée en cours de fonctionnement.

311
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

Jack211a:G

deployend

retract
retractend

Jack 2 1 1 a : G
iXO/e
right := 1Y0 î Y l YÔ~,Y1,X0,X1 J^îXl/deployend
right/ deploy

left/retract
îXO/'retractend
left~ I Y l TYO
iXl/e

FIGURE D.9 - Composante Jackl 1 la (sous-système et projection)

312
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

Ils se stabilisent ainsi toujours dans une position connue. 11 est toutefois possible d'inver-
ser (annuler) la dernière commande avant que le vérin n'ait eu le temps de se stabiliser.
Les vérins bistables (à commande non verrouillée) s'immobilisent immédiatement sur une
interruption de l'alimentation à la commande. Ils peuvent donc occuper une position in-
termédiaire inconnue à la restauration de l'alimentation. Puisque cette catégorisation des
vérins bistables concerne leur comportement en régime de panne, que cette étude ignore
par hypothèse, tous les vérins de ce type sont modélises ici comme des vérins à commande
bistable verrouillée.
Basic Component Jack211a<Y0, Yl, XO, XI> {

SubSystem Jack211a {
State Vector = <Y0, Yl, XO, Xl>

fright ••= YO A XO
fleft := Yl A XI

P r o j e c t r i g i l t ( ) := { r e t u r n funcdeployQ ; }
P r o j e c t T x i ( ) := { r e t u r n f u n c d e p J o y e n d ( ) ; }
P r o j e c t l e f t Q := { r e t u r n f u n c r e t r a c t ( ) ; }
ProjectmQ := { r e t u r n f u n c r e t r a c t e n d ( ) ; }

lalrightQ := { r s t ( Y O ) ; s e t ( Y l ) ; }
lalleft() := { r s t ( Y l ) ; set(YO); }

cycleQ := cycleQ + {
if ( îXl ) then funcîxl();
if ( TXO ) then funcm();
funcrightQ;
funcleft() ;
}
} }

D.1.10 Jack211b
Un vérin à commande bistable ayant deux positions stables, chacune de ces positions
peut être spécifiée comme état initial du modèle. La composante J a c k 2 1 1 b , dont on re-

313
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

trouve la définition d'interface en figure D.10, propose simplement une version alternative
de la définition de l'interface de la composante J a c k 2 1 1 a .
Le code d'intégration pour la composante J a c k 2 1 1 b demeure le même que pour la
composante J a c k 2 1 1 a puisque la seule chose qui soit différente dans le modèle est l'état
initial.

D.l. 11 ADRelay
La composante ADRelay (pour Asymmetric Delay Relay). dont on retrouve la défini-
tion d'interface en figure D.l 1, propose un modèle général pour des dispositifs activés par
un relais électrique qui ne sont pas munis de capteurs. Ces dispositifs sont mis en service ou
hors service de façon commandée et ont généralement des délais de fonctionnement (au dé-
marrage et à l'arrêt) éventuellement asymétriques. Par exemple la composante J a c k l 0 0
peut être modélisée par instanciation de ADRelay. Aussi cette composante admet des va-
riantes d'interfaces similaires à celles données pour les vérins avec les suffixes suivant :
- SS (start/stop) ;
- ce (cancel close) ;
- co(cancel open) ;
- et ecco (annulation aux deux commandes).
Un moteur électrique ayant un délai de latence au démarrage pour atteindre sa vitesse
nominale constitue un meilleur exemple d'une instance de cette composante. Finalement le
modèle est viable même lorsque l'un, l'autre ou les deux délais sont nuls.

Basic Component ADRelay<Y0, TO, dtO : TIME,


Tl, dtl : TIME> {

/* Initial state = expired */


TO : ODT[S : = YÔ A MÎ, MO, dtO] ;
/* Initial state = cleared */
Tl : ODT[S := YO A MO, MÎ, dtl];

SubSystem ADRelay {
State Vector = <Y0, MO, Ml>

314
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

Jack211b:G

deployend
deploy

retract
retractend

Jack211b:G
right := lYO î Y l iXO/e

right/ deploy 1X1/deployend

left/retract
1X0/retractend
left := I Y l TYO
iXl/e

FIGURE [Link] - Composante Jackll Ib (sous-système et projection)

315
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

closeend

ADRelay : G

openend

ADRelay : G Tl :ODT[S~Y0AM0,Ml,rf«i]

TO : ODT[S := YO A Ml, MO, dt0]

IMO/e
Y0,M0,M l X îM1 /closeend
îYO/c/ose

lYO/open
î MO/openend

iMl/s

FIGURE D.l 1 - Composante ADRelay (sous-système et projection)

316
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

/ÎY0 := YO A MO
/iY0 := YO A Ml

P r o j ect Î Y oO = { return funccloseQ ; }


ProjectiY0() = { return funcopen(); }
Projectm() = { return funccloseend() ; }
ProjectmQ = { return funcopenendQ ; }

lalÎYO0 = { set(YO)
= { rst(YO)
lal^oQ = { set(MO)
laliwoQ = { rst(MO)
lalm() = { set(Ml)
lallM1() = { rst(Ml)

cycleQ := cycleQ +{
if ( (YO V Ml) A MO ) then funclmQ;
if ( (YÔ V MO) A Ml ) then funcmQ;

if ( TO A YÔ A MÎ A MO ) then funcmQ;
evalr(T0, YÔ A MÎ A MO) ;

if ( Tl A YO A MO A MÎ ) then funcrM1();
evalr(Tl, YO A MO A MÎ) ;

funcTY0();
funclY0();

D.l.12 SDRelay
La composante SDRelay (pour Symmetric Delay Relay), dont on retrouve la défini-
tion d'interface en figure D.12, reprend ADRelay mais en utilisant une minuterie à double
action pour procurer des délais symétriques. Bien que cette composante admette une inter-
face de type démarrage-arrêt (suffixe SS), l'usage d'une seule minuterie interdit les autres

317
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

formes d'interfaces (ce, co et ccco). Cette composante admet aussi l'usage d'un délai nul.

Basic Component SDRelay<YO, TO, dt : TIME> {

/* Initial state = cleared */


TO : DDT[S := ((YÔ A MO) V (YO A MO)), MO, dt] ;

SubSystem SDRelay {
State Vector = <Y0, M0>

/ TY0 := YÔ A MO
/ l Y 0 := YO A MO

ProjectTY0() { return funccloseQ ; }


ProjectiY0() { return funcopenQ; }
ProjectrM0() { return funccloseendQ ; }
ProjectlM0() { return funcopenendQ ; }

lalfYoQ { sefc(YO) }
la2iY0() { rst(YO)
lalmQ { set(MO)
lalj^Mo() { rst(MO) }
cycleQ -.= cycleQ + {
if ( TO A YO A MO ) then funcmQ;
if ( TO A YÔ A MO ) then funclm();
evalT(T0, ( (YÔ A MO) V (YO A MO)));

funclY0Q;
funclY0Q;

} }

D.1.13 NDRelay
La composante NDRelay (pour No Delay Relay), dont on retrouve la définition d'in-
terface en figure D.l3, n'est qu'une version sans temporisation de SDRelay n'utilisant
aucune minuterie. Elle admet aussi une interface de type démarrage-arrêt (suffixe SS).

318
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

closeend

SDRelay : G

openend

SDRelay : G

TO : DDT[S := ((YO A MO) V (YO A MO)), MO, dt]

Y0,M0
îYO/'close / ' " \ îMO/closeend

iYO/open
MO/openend

FIGURE D. 12 - Composante SDRelay (sous-système et projection)

319
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

closeend

NDRelay : G

openend

îMO/closeend

ïYO/open

FIGURE D.13 - Composante NDRelay (sous-système et projection)

Basic Component NDRelay<Y0> {

SubSystem NDRelay {
State Vector = <Y0, M0>

/,Y0 := YÔ A MO
/iY0 := YO A MO

Project,YO() = { return funccloseQ ; }


ProjectLYoO = { return funcopen(); }
ProjectmQ = { return funccl03eendQ ; }
ProjectimQ = { return funcopenendQ ; }

lallYoO { set(YO) }
laliY0Q { rst(YO)
lalfMoO { set(MO)
lallMo() { rst(MO) }

cycleQ := cycleQ +{

320
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

i f ( YO A MÔ ) t h e n func1mQ ;
i f ( YÔ A MO ) t h e n funcmQ;
funcjYoO;
funciY0();
}
}
}

D.1.14 ODTimer
La composante ODTimer (pour On Delay Timer), dont on retrouve la définition d'in-
terface en figure D.l4, propose d'encapsuler le comportement d'une minuterie mémorisée
de type ODT sous forme d'une composante réutilisable. L'avantage d'une minuterie sous
forme de composante est de permettre l'usage de la synthèse SCT dans des systèmes conçus
par assemblage de composantes réutilisables (par opposition à la conception ad hoc). Par
défaut ce type de minuterie est normalement inactive (son état initial est inactive c'est-à-
dire 0), et on peut annuler le minutage (transition sur rst dans l'interface). On peut aisément
donner les variantes d'interfaces suivantes pour cette minuterie :
1. ODTimerNC (pour Non Cancellable), normalement inactive sans annulation du mi-
nutage (pas de commande rst dans l'interface) ;
2. ODTimerNE (pour Normally Expired), normalement expirée avec annulation du mi-
nutage (état initial expirée, c'est-à-dire 2) ;
3. ODTimerNCNE, normalement expirée sans annulation du minutage (état initial ex-
pirée et pas de commande rst dans l'interface).
On présume que la bibliothèque de composantes réutilisables contient toutes ces variantes.

Basic Component ODTimer<T0, dt : TIME> {

/* Initial state = cleared -kf


TO : ODT[S := MO, MÎ, dt];

SubSystem ODTimer {
State Vector = <M0, Ml>

321
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

set
ODTimer : G

ODTimer : G T0:ODT[S:=M0,Ml,<ft]

iMl/e

tUO/set

iMO/clr

FIGURE D.14 - Composante ODTimer (sous-système et projection)

/TM0 := MO A MÎ
f[m := MO

ProjectÎM0() := { return funcget(); }


Project lm() := {
if ( Ml ) then return funccir() ;
e l s e r e t u r n funcrstQ ; }
P r o j e c t T M 1 ( ) := { r e t u r n funcexpQ ; }

alfMoO = { set(MO) }
aljMo() = { rst(MO) }
alîmO = { set(Ml) }
a2 l M iQ - ( rst(Ml) }

cycleQ := cycleQ + {
i f ( MO A Ml ) t h e n funciM1Q;
i f ( TO A MO A MÎ ) t h e n funcm();
evalT(T0, MO A MÎ);
furiC|Ho();

322
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

funclm();
}
}
}

D.l.15 Injector
Certains dispositifs de l'usine MPS se composent d'éléments matériels qui ont été mo-
délises précédemment mais dont l'assemblage résulte en un ensemble d'interactions trop
fines pour être modélises par assemblage et synthèse de composantes réutilisables. De tels
dispositifs doivent ainsi être modélises de façon ad hoc. C'est le cas de la composante
élémentaire I n j e c t o r dont on retrouve la définition d'interface à la figure D.l5.
L'injecteur est constitué d'un vérin à commande monostable couplé physiquement à un
barillet doté d'un capteur situé à la base d'une colonne cylindrique servant de magasin.
Les pièces sont introduites par gravité dans le barillet où leur présence est détectée par un
capteur optique (XO). Lorsque le capteur est à l'état XO c'est qu'une pièce obstrue le fais-
ceau lumineux. Les pièces sont injectées sur un dock de chargement et y sont maintenues
par le vérin jusqu'à ce que le vérin soit réarmé. Pendant l'injection il y a possibilité d'une
interaction nuisible à la plateforme de chargement. Cette opération doit donc être visible
dans l'état du dispositif. Le requis principal de l'injecteur est de n'injecter une pièce que
s'il y a effectivement une pièce présente dans le barillet.

Basic Component Injector<XO, YO, XI, X2> {

SubSystem Injector {
State Vector = <X0, YO, XI, X2>

/ÎY0 := XÔ A YÔ A XI
/lY0 := YO A X2

Proj e c t Î Y 0 ( ) = { return funcinject(); }


Project^2() = { return funcinjectendQ ; }
ProjectiY0Q = { return funcrearmQ; }
Projectlxo() = { return furiCupaQ ; }

323
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

Injector : G
iXl/e
lYO/inject iXl/injectend

lYO/rearm

X0,Y0,X1,X2 J ) f X0,Y0,X1,X2
lX2/e
TXl/e TXO/e

Injector : G

inject injectend Notes :


wpa : work pièce arrivai
0 : idle
1 : ready
2 : working
3 : holding

FIGURE D.15 - Composante Injector (sous-système et projection)

324
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

lai,YOO := { sefc(YO); }
lallY0Q := { r s t ( Y O ) ; }

cycleQ := cycleQ + {
i f ( ÎX2 ) t h e n f u n c 1 x 2 ( ) ;
i f ( 1X0 ) t h e n fujnc t x o ();
funCfYoQ;
funclY0Q;
}
}
}

D.l. 16 Stepper
La composante S t e p p e r , dont on retrouve la définition d'interface en figure D.16,
modélisé un mécanisme d'entraînement typique des convoyeurs. Chaque démarrage en-
traîne la progression du convoyeur d'une position dans un sens déterminé. Dû à la sévé-
rité des contraintes temporelles impliquées entre le capteur d'alignement et le mécanisme
d'entraînement, l'arrêt du dispositif doit être automatique (décidé et effectué localement)
et soustrait à l'effet d'un contrôle externe.

Basic Component Stepper<Y0, X0> {

SubSystem Stepper {
State Vector = <Y0, X0>

/ÎYO := YÔ

ProjecfcfYoO .:= { r e t u r n funcgtarc() ; }


ProjectendQ := { r e t u r n funcscopQ; }

lalryoO := { set(YO); }
lalendQ := { r s t ( Y O ) ; }

cycleQ := cycleQ + {
i f ( îXO ) t h e n f u n c e n d ( ) ;
f"imcTYo();

325
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

start

Stepper : G

stop

Stepper : G
end ~lX0lY0

îYO/start

FIGURE D.16 - Composante Stepper (sous-système et projection)

D.1.17 SuctionCup et SuctionCupCC


La composante Suc t i o n C u p , dont on retrouve la définition d'interface en figure D. 17,
modélisé habituellement la pince d'une grue (un dispositif de préhension). Il s'agit d'une
pompe à vide à commande bistable munie d'un capteur de différentiel de pression.

Basic Component SuctionCup<YO, Yl, X0> {

SubSystem SuctionCup {

State Vector = <Y0, Yl, X0>

fon := YO A XÔ, foff := Yl A XO

Project cQ
P r o j e on t î x o 0 : == {{ r reet tuur rnn func
funccl03e Q;
closeend()
}; }
ProjectoffQ = { r e t u r n funcopenQ; }
Project Lxo() = { r e t u r n funcopenendQ ; )

326
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

closeend

SuctionCup : G

openend

SuctionCup : G
on := 1Y0 TY1
on/close iXO/closeend

Y0,Y1,X0

off/open
iXO/openend
off~ IYl îYO

FIGURE D.l7 - Composante SuctionCup (sous-système et projection)

lalonQ := { r s t ( Y O ) ; s e t ( Y l ) ; }
laloffQ := { r s t ( Y l ) ; set(YO); }

cycleQ := cycleQ + {
i f ( îXO ) t h e n f u n c r x o ( ) ;
i f ( 1X0 ) t h e n f : uncj xo () ;
funcon();
funcoffQ ;
}

La figure D. 18 suggère une version alternative dont la commande de fermeture peut


être annulée.
Le code d'intégration de S u c t i o n C u p C C ne demande que des altérations mineures à
celui donné pour S u c t i o n C u p . Il s'agit de redéfinir le prédicat de contrôle et la fonction
Project0jj{) de la façon suivante.

/,off := Y l

327
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

close ^-^*i 1 r ~ ~ \ closeend


SuctionCupCC : G
cancelclose

openend

SuctionCupCC : G
O>J~1Y0ÎY1

on/close 1X0/closeend

v _, off/open
1X0/ openend
off-lYMYO

FIGURE D.l8 - Composante SuctionCupCC (sous-système et projection)

ProjectoffQ := {
i f ( XO ) t h e n r e t u r n funcopenQ;
e l s e r e t u r n funccancelci03e(); }

Le reste du code demeure inchangé.

D.2 Composantes mixtes


La spécification de composantes réutilisables mixtes est décrite de façon détaillée à la
section 4.2.3. Il peut être utile de s'y référer pour comprendre le contenu de cette section.

D.2.1 LRCrane et BLRCrane


On trouve, à la section 4.2.3, le modèle de composante réutilisable pour une grue à
sens unique transportant des pièces à traiter d'une position d'entrée à une position de sor-
tie. La grue est composée d'une flèche, pour les mouvements latéraux, et d'une pince. La
328
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

flèche (en anglais Boom) est instanciée à partir de la composante élémentaire Jack211b.
La pince (en anglais Hook, une ventouse pneumatique) est instanciée à partir de la com-
posante élémentaire SuctionCup. Le modèle de cette grue est appelé LRCrane (pour
Left to Right Crâne). Lafigure4.12 donne un modèle de sa projection G ainsi qu'un mo-
dèle de son interface G avec (dans la partie inférieure) un diagramme d'assemblage. La
figure 4.13 donne des détails structurels complémentaires sur le sous-système associé à la
composante réutilisable : structure du vecteur d'état, énoncés d'instanciation, spécification
de contrôle ainsi que l'ensemble des prédicats de contrôle résultant de la synthèse à partir
de la spécification de contrôle.
Avec la même structure de sous-système (celle de la figure 4.13) on peut aussi offrir
l'interface définie par le modèle de la projection de la figure D.l9 pour la composante
BLRCrane. Ce type de projection (où tous les événements sont systématiquement proje-
tés) est trivialement un observateur puisqu'il y a clairement une relation de bisimulation
entre G (le modèle de la projection résultante) et G t s (la structure de transition de la ma-
chine de Mealy G). On peut d'ailleurs faire cette manoeuvre pour n'importe quel modèle
afin de bénéficier d'une encapsulation des requis de contrôle par la dynamique abstraite.

D.2.2 Drill
On trouve, à la section 4.2.3, le modèle de composante réutilisable pour une perceuse.
La perceuse est composée de trois dispositifs :
- un étau (élément Clamp) pour stabiliser les pièces à percer (instance de la compo-
sante élémentaire J a c k l l l ) ;
- un moteur électrique (élément Mtr) pour actionner la mèche de la perceuse (instance
de la composante élémentaire SDRelay) ;
- et un patin (élément Drv) sur lequel est fixé le dispositif de perçage pour les mouve-
ments verticaux (instance de la composante élémentaire Jack211aSS).
Deux éléments de mémoire sont utilisés pour coordonner l'activité des dispositifs phy-
siques formant la perceuse :
1. SW (pour SWitch) indiquant l'état du dispositif (en fonction ou hors fonction) ;
2. PHS (pour PHaseS) indiquant le progrès du perçage.

329
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

BLRCrane : G

cbre
cbr
chce
chc cho
choe

cble cbl

BLRCrane : G

rightend/ cbre
right/cbr

0 \8™bendlchce jCv2\~Jlshtendlcbre^»{ 23
grab/chc • , , , rlsend/'choe,
,0,0 I ris/cho ' ( 2 0!

leftend/cble left/cbl
3,0

FIGURE D. 19 - Composante BLRCrane (sous-système et projection)

330
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

L'ensemble est abstrait en une composante réutilisable appelée Drill avec commande au
démarrage et indication à arrêt.
La figure 4.14 donne un diagramme d'assemblage du sous-système. La figure 4.15
donne un modèle de sa projection G ainsi qu'un modèle de son interface G. La figure 4.16
donne les détails structurels du sous-système associé à la composante : structure du vec-
teur d'état, déclaration des mémoires, énoncés d'instanciation et événements synthétiques
générés par le sous-système. La figure 4.17 donne la spécification de contrôle ainsi que loi
de contrôle résultant de la synthèse pour le sous-système. L'ensemble des requis peut être
décrite comme suit.

(1) Aucun dispositif ne doit être en fonction lorsque le sous-système est hors fonction.
(2) Pendant la phase de perçage, l'étau ne doit pas amorcer une ouverture ni le moteur un
arrêt.
(3) Une fois le perçage terminé, l'étau ne doit pas amorcer de serrage ni le moteur initier
un démarrage.
(4) Une fois le perçage terminé, le patin ne doit pas réamorcer de descente.
(5) Le patin ne doit pas entrer en fonction à moins que l'étau ne soit complètement fermé
et le moteur démarré et à vitesse nominale.
Les requis (1) à (4) inclusivement sont standards et le requis (5) est implicite.

D.2.3 MicroMeter
On trouve à la figure D.20 la composante réutilisable MicroMeter dont un diagramme
d'assemblage est donné en figure D.21.
Le micromètre est un dispositif composé d'une sonde montée sur un vérin que l'on
peut abaisser sur un élément d'usinage (lorsqu'il est correctement disposé) pour en mesu-
rer l'épaisseur. La sonde est connectée à un convertisseur analogique à digital muni d'un
registre d'entrée donné en paramètre. L'épaisseur des éléments d'usinage doit se situer dans
une plage de mesure dont les bornes sont données en paramètres.
La sonde doit d'abord être engagée complètement pour que la lecture soit valide. Une
minuterie est utilisée pour éliminer les transitoires à l'arrivée de la sonde en position. La

331
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

MicroMeter : G
pass, fail

MicroMeter : G
pee/e tc/e

te/pass,fail
clr/reset

pde/end pd/e

FIGURE D.20 - Composante MicroMeter (sous-système et projection)

MicroMeter

Seq
\ pde Prb
)Y
te
^\clr pe, CD\P ee

te . \ . pde,te K^l (2)


)—•fiY} pde
CD Pd
-s pde — / '*^

FIGURE D.21 - Composante MicroMeter (diagramme d'assemblage)

332
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

lecture est prise à l'expiration de la minuterie et un diagnostic de test de tolérance est émis
sous forme d'événements : pass lorsque l'épaisseur se situe à l'intérieur de la tolérance ac-
ceptable, fail sinon. La sonde doit être maintenue en position de lecture jusqu'à l'émission
du diagnostic de test, puis désengagée. Une fois un test effectué et la sonde désengagée, le
micromètre ne peut être réutilisé qu'après avoir été réarmé. Ce qui se traduit par l'ensemble
des requis de contrôle suivants.
( 1 ) La sonde et la minuterie ne peuvent pas fonctionner simultanément.
(2) La sonde ne doit pas se réengager avant que le micromètre n'ait été réarmé.
(3) La sonde ne doit pas se désengager en phase de lecture.
(4) La minuterie ne doit pas être réactivée avant que le micromètre n'ait été réarmé.
(5) Le micromètre ne peut être réarmé qu'une fois la lecture prise et la sonde désengagée.

Component MicroMeter {

SubSystem MicroMeter<XWO, const loLmt, hiLmt : MW > {


State Vector = <Seq, Prb, Tmr>

Seq : MW; /* Memory word : Reading Sequencer */

Prb : JacklOl with {


S c := { deploy[pe], retract[pd] }
S u := { deployend[pee], retractend[pde] }
}
Tmr : ODTimerNCNE with {
Ec := { s e t [ts] , c l r [tc] }
S u := { exp[te] }
}
Synthetic Events := {
E r := { clr }
}
CtrlSpec {
/* Implicit */
f*{!)*/ Prb G {0,1,3} A Tmr G {0,l},
/* Standard */

333
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

/ * ( 2 ) * / Seq = 2 A Prb = 1,
/ * ( 3 ) * / Seq = 0 A Prb = 3,
/ * ( 4 ) * / Seq G { 1 , 2 } A Tmr
/* Explicit */
/*(5) clr <= Seq = 2 * /
}

fclr := Seq = 2
Jpe = Prb = 0 A Seq = 0
fpd = Prb = 2 A Seq = 1
/ts = Tmr = 0
J tc = Tmr = 2 A Seq = 0 A Prb

Project te() := {
if (( XWO < loLmt ) V (XWO > hiLmt))
then return funcfan()
else return furie,pas 3 0;
}

cycleQ := cycleQ + {
funcclrQ;
}
} }

D.2.4 PSTester
La composante réutilisable PSTester modélisé une sonde montée sur un vérin que l'on
enfonce dans une perforation pour en tester la profondeur à la sortie de l'usinage. Le test
est positif lorsque le vérin atteint la position complètement déployé et négatif autrement.
Puisqu'il n'existe aucun capteur pour détecter le cas négatif du test, il faut utiliser une
minuterie dont l'expiration signale ce cas. La composante comprend donc un vérin dont
on peut annuler la commande de déploiement et une minuterie. La figure D.23 en donne le
modèle d'interface (G,G) et la figure D.22 le diagramme d'assemblage.
La caractéristique principale de cette composante est que sa spécification de contrôle
est presque complètement explicite dans le modèle du diagramme d'assemblage. Les transi-
tions en boucle dans le modèle des instances sont effectivement l'expression de contraintes

334
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

PSTester

Prb
ts Tmr
C
}\Pee PeÇ\
P*
^v tr,tc
tc^i<^ cpe ^to\
rYoV ©D r \ \
tS
[)trX
t c

pd
pde \r H)—*(2)
v - / te S - /
tc\ cpe\-s

FIGURE D.22 - Composante PSTester (diagramme d'assemblage)

PSTester : G

PSTester : G
pe/test

FIGURE D.23 - Composante PSTester (sous-système et projection)

335
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

que l'on a rendu explicite par partage d'événements entre les dispositifs. Ces transitions ont
donc été ajoutées à l'instanciation des composantes dans le système dans le but précis d'ex-
primer des contraintes de contrôle ; elle ne font pas partie des composantes elles-mêmes.
Dans ce cas les contraintes sont plus simples à exprimer de cette façon que par l'usage
d'une mémoire.
(1) La minuterie ne doit pas être activée lorsque la sonde se désengage ou lorsqu'elle est
au repos.
(2) La minuterie ne doit être démarrée (événement ts) qu'après que la commande pour
engager la sonde ait été donnée.
(3) La minuterie peut être remise à zéro (événement tr) lorsque le test s'avère positif.
(4) Dans tous les cas, la minuterie ne peut être réarmée (événement tc) qu'une fois un
diagnostic de test émis.
(5) Le démarrage d'un test (événement pe) ne doit se faire qu'une fois la minuterie réar-
mée.
(6) L'émission d'un diagnostique d'échec ne peut survenir qu'une fois la minuterie échue.
Cette façon de spécifier les contraintes de contrôle présente le désavantage d'enrichir la
structure de transition des composantes d'un sous-système et d'être susceptible de sur-
spécification. Cependant, utilisée de façon prudente, elle s'avère très utile et ne prévient
pas nécessairement le parallélisme comme on peut le voir en figure D.23. L'usage d'une
mémoire dans ce cas précis requiert de reproduire presque tout le diagramme de G et ne
représente aucune économie quand au nombre d'états ou de transitions dans la structure de
la solution.

Component PSTester {

SubSystem PSTester {
State Vector = <Prb, Tmr>

Prb : Jacklllcd with {


S c := { deploy[pe], cd[cpe], retract [pd] }
S„ := { deployend[pee], retractend[pde] }
}
336
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

Tmr : ODTimer with {


S,. := { s e t [ t s ] , r s t [ t r ] , clr[tc] }
S u := { e x p [ t e ] }
}

CtrlSpec {
/ * ( 1 ) * / P r b G { 0 , 3 } A Tmr = 1
/ * i m p l i c i t i n DFAs . . . * /
/*(2) t s <= P r b = 1 * /
/ * (3) t r <= P r b = 2 * /
/*(4) tc <= P r b G { 0 , 2 , 3 } * /
/ * ( 5 ) pe <= Tmr = 0 * /
/ * ( 6 ) c p e <= Tmr = 2 * /
}

Jpe = Prb = 0 A Tmr = 0


J cpe := Prb = 1 A Tmr = 2
fpd = Prb = 2 A Tmr € {0,2}
fts = Tmr = 0 A Prb = 1
hr = Tmr = 1 A Prb = 2
hc = Tmr = 2 A Prb G {0,2,3}

} }

D.2.5 TSCvrDrv
La composante réutilisable TSCvrDrv modélisé le mécanisme d'entraînement d'un con-
voyeur avec un temps de latence à l'arrêt. Il se compose d'un entraînement à déclenchement
commandé avec arrêt automatique (composante Stepper), d'une minuterie et d'un élément
de mémoire. La figure D.25 en donne le modèle d'interface (G,G) et la figure D.24 le
diagramme d'assemblage.
On peut noter dans le code d'intégration qui suit la définition des fonctions Projectst Q
et Projecttc() qui ne sont pas triviales. Étant donnée la définition de la projection, certaines
transitions sélectives sur deux événements différents (stp et tc) dans le sous-système doivent
être projetées sur un même événement (step) de l'abstraction. Ces définitions peuvent être
obtenues directement de la fonction de sortie de la machine de mealy G de la figure D.25

337
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

TSCvrDrv

Seq
te
Drv
"(T
stp
estpl 1 te X" - —^
T, < $
' • - ^
—~/
(D
estp
estp

FIGURE D.24 - Composante TSCvrDrv (diagramme d'assemblage)

TSCvrDrv : G

end

TSCvrDrv : G

FIGURE D.25 - Composante TSCvrDrv (sous-système et projection)

338
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

et peuvent donc être générées automatiquement. Quant aux contraintes de la spécification


de contrôle toutes sont standards et facile à comprendre et à déduire du modèle.

Component TSCvrDrv {
SubSystem TSCvrDrv {
State Vector = <Seq, Drv, Tmr>

Seq : MW; /* Memory word : Sequencer */

Drv : Stepper with {


Sc := { start[stp] }
S„ := { stop[estp] }
}
Tmr : ODTimerNCNE with {
£ < • : = { s e t [ts] , c l r [tc] }
E„ := { e x p [ t e ] }
}
Project3tpQ := {
if (Tmr = 2) then return funcstep();
return true;
}
Project tcQ : = {
i f (Seq = 0 A Drv = 0) t h e n r e t u r n funcstepQ;
return true;
}
CtrlSpec {
/*(1)*/ Seq = 0 A Tmr = 1
/*(2)*/. Seq = 1 A Drv = 1
}
fstp := Drv = 0 A Seq = 0
fcs := Tmr = 0 A Seq = 1
ftc := Tmr = 2
} }

339
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

D.2.6 EHook
La composante EHook (pour Extensible Hook) constitue la pince d'une certaine forme
de grue. Dans cette forme de grue, la pince (Hook) est fixée au bout d"un treuil (Wch, pour
Winch en anglais) pour permettre d'en allonger la portée au moment de saisir ou de déposer
un objet {unepièce). La composante doit donc définir deux actions : saisir (événement pu)
et déposer (événement/je/). Pour EHook, ces actions requièrent toutes les deux d'allonger le
treuil avant d'effectuer l'action commandée. LafigureD.27 en donne le modèle d'interface
(G,G) et lafigureD.26 le diagramme d'assemblage. On note qu'ici la pince est instanciée
à partir d'une ventouse pneumatique (composante SuctionCup) mais qu'elle pourrait tout
aussi bien, avec une spécification de contrôle similaire, être instanciée à partir d'un vérin.
Les contraintes, toutes implicites puisque la mémoire n'est présente ici que pour distin-
guer entre les deux actions de la pince, peuvent se formuler de la façon suivante.
( 1 ) Les commandes du treuil et de la pince doivent être alternées de façon stricte.
(2) La pince ne doit pas entrer en action lorsque le treuil est rétracté ; elle est alors soit
ouverte soit fermée.
(3) En séquence de prise, la pince ne peut pas déposer un object et le treuil ne peut pas
remonter avec la pince ouverte.
(4) En séquence de dépôt, la pince ne peut pas saisir un objet et le treuil ne peut pas
remonter avec la pince fermée.

EHook

FIGURE D.26- Composante EHook (diagramme d'assemblage)

340
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

EHook : G pu/ \ pue


pu : pick-up
pue : pick-up end *s
pd : put down
K^L (2)

pde : put down end Pde^\/~\ /Pd

EHook : G
Winch Hook
wd : winch down hc : hook close
wde : winch down end hce : hook close end
wu : winch up ho : hook open
wue : winch up end hoe : hook open end
wde/e hc/ 'e hce/e wu/e

wu/e hoe/s ho/e wde/e

FIGURE D.27 - Composante EHook (sous-système et projection)

341
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

Component EHook {

SubSystem EHook {

State Vector = <Seq, Wch, Hook>

Seq : MW; /* Memory word : Séquencer */

Wch : Jacklll with {


Ec := { deploy[wd], retract[wu] }
E„ := { deployend[wde], retractend [wue] }
}
Hook : SuctionCup with {
S c := { c l o s e [ h c ] , open[ho] }
S„ := { c l o s e e n d [ h c e ] , openend[hoe] }
}
CtrlSpec {
/* Implicit constraints (forbidden states) */
/*{!)*/ Wch = {1,3} A Hook G {l,3},
/* ( 2)*/ Wch = 0 A Hook € {1,3},
/*(3)*/
Seq = 0
A ((Wch = 2 A Hook = 3) V (Wch = 3 A Hook = 0)),
/*(4)*/
Seq = 1
A ((Wch = 2 A Hook = 1) V (Wch = 3 A Hook =2))
}
fwd := Wch = 0
J wu '• —
Wch = 2
A ((Seq = 0 A Hook = 2) V (Seq = 1 A Hook = 0)
fhc -.= Hook = 0 A Seq = 0 A Wch = 2
fho := Hook = 2 A Seq = 1 A Wch = 2

}}

342
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

D.2.7 FEHook
La composante FEHook propose de doter la composante EHook d'un mode d'échec à
la saisie d'une pièce. LafigureD.29 en donne le modèle d'interface (G,G) et lafigureD.28
le diagramme d'assemblage.
L'hypothèse d'un échec au dépôt est écartée. À la saisie, si une pièce se trouve vérita-
blement en place, le treuil n'atteindra jamais sa position de pleine extension. 11 faut donc
amorcer la fermeture de la pince (une ventouse pneumatique) juste après avoir initié la
descente du treuil de sorte que la confirmation de fermeture de la pince puisse signaler le
succès de l'opération. Si par contre il ne se trouve pas effectivement de pièce en position
pour la saisie, le treuil atteindra alors sa position de pleine extension et ceci signale l'ab-
sence d'une pièce à saisir et donc un échec à la saisie. Dans cette logique, on doit pouvoir
annuler la commande d'extension du treuil en cas de succès et annuler la commande de fer-
meture de la pince en cas d'échec. Il faut donc utiliser une composante J a c k l l l c d pour
le treuil et une composante SuctionCupCC pour la pince. Naturellement il faut aussi
enrichir l'espace d'états du séquenceur pour procurer un mode d'échec et récupération à
la saisie. Puisqu'il y a plus de commandes à gérer et plus d'information d'états, les requis
sont bien sûr plus complexes.
Le mode normal est signalé par Seq = 0 pour la phase de saisie et Seq = 2 pour la
phase de dépôt. Le mode d'échec et récupération est signalé par Seq = 1. L'événement
synthétique clr ne sert qu'à modifier l'état de la mémoire, à signaler que la phase de récu-

FIGURE D.28 - Composante FEHook (diagramme d'assemblage)

343
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

pue
FEHook : G
pu : pick-up
pue : pick-up confirm
pua : pick-up abort
pue : pick-up end
pd : put down
pde : put down end
rst : reset

FEHook : G
Winch Hook Synthetic
wd : winch down hc ; hook close c/r : ciear
cwd : cancel winch down chc : cancel hook close
wde : winch down end hce ; hook close end
wu : winch up ho : hook open
wue : winch up end hoe : hook open end

wue je

wde/pua
cwd/puc

hoe/e ho/e wde/e wd/pd

FIGURE D.29 - Composante FEHook (sous-système et projection)

344
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

pération est terminée et que le treuil et la pince sont à nouveau dans une position adéquate
pour le fonctionnement de la composante.
On compte localement 14 requis de contrôle, tous sous forme élémentaire.
( 1 ) La phase de récupération ne se termine que lorsque le treuil est rétracté et la pince
ouverte.
(2) La commande de fermeture de la pince n'est disponible qu'en mode de saisie.
(3) La commande d'annulation de déploiement du treuil n'est disponible qu'en mode de
saisie.
(4) La commande d'annulation de fermeture de la pince n'est disponible qu'en mode
d'échec et récupération.
(5) En mode de récupération le treuil ne doit pas se trouver en déploiement.
(6) La pince ne doit pas entrer en action lorsque le treuil est rétracté ; elle est alors soit
ouverte soit fermée.
(7) En mode de saisie, la pince ne peut pas déposer un objet.
(8) En mode de saisie, le treuil ne peut pas remonter avec la pince en fonction (soit en
ouverture ou en fermeture).
(9) En mode de saisie, le treuil ne peut pas remonter avec la pince ouverte.
(10) En mode d'échec, on doit ouvrir la pince complètement avant d'entreprendre de relever
le treuil.
(11) En mode dépôt, les commandes du treuil et de la pince doivent être alternées de façon
stricte.
(12) En mode dépôt, le treuil ne peut pas être en déploiement si la pince est ouverte.
(13) En mode dépôt, le treuil ne peut pas être rétracté tant que la pince est fermée.
(14) En mode dépôt, la pince ne peut pas saisir un objet.
On peut noter que l'essentiel des nouveaux requis (par rapport à la spécification de EHook)
sont occasionnés par l'addition d'un mode d'échec et récupération et à une modification
nécessaire pour le mode de saisie (fonctionnement parallèle du treuil et de la pince).

345
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

Component FEHook {

SubSystem FEHook {
State Vector = <Seq, Wch, Hook>

Seq : MW; /* Memory word : Sequencer */

Wch : Jacklllcd with {


Ec := { deploy[wd], cd[cwd], retract[wu] }
!]„ := { deployend [wde] , retractend [wue] }
}
Hook : SuctionCupCC with {
Sc := { close[hc], cancelclose[chc], open[ho] }
S„ := { closeend[hce], openend[hoe] }
}
Synthetic Events := {
S, := { clr }
}
CtrlSpec {
/* Explicit constraints in the model */
/*(!) clr <= Seq = 1 A Wch = 0 A Hook = 0 */
/*(2) hc <= Seq = 0 */
/*(3) cwd <= Seq = 0 */
/*(4) chc <= Seq = 1 */
/* Standard constraints wrt Seq */
/*(5)*/ Seq = 1 A Wch = 1,
/* Implicit constraints (forbidden states) */
/*(6) */ Wch = 0 A Hook G {l,3}#
/*(!) */ Seq = 0 A Wch = 1 A Hook = 3,
/*(8) */ Seq = 0 A Wch = 3 A Hook G {1,3},
/*(9) */ Seq = 0 A Wch = 3 A Hook = 0,
/*(10)*/ Seq = 1 A Wch = 3 A Hook G {1,2,3},
/+(11)*/ Seq = 2 A Wch G {1,3} A Hook G {l,3},
/*(12)*/ Seq = 2 A Wch = 1 A Hook = 0,
/*(13)*/ Seq = 2 A Wch = 3 A Hook = 2,
/*(14)*/ Seq = 2 A Wch = 2 A Hook = 1
}

346
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

fclr :- Seq = 1 A Wch = 0 / * => Hook = 0 * /


fwd := Wch = 0 A Seq G { 0 , 2 } / * S e q ^ 1 * /
fcwd •= Wch = 1 A Seq = 0 A Hook = 2
fm := Wch = 2 A Hook = 0
fhc := Hook = 0 A Wch = 1 / * => S e q = 0 * /
fchc • = Hook = 1 A Seq = 1
fho := Hook = 2 A Wch = 2

} }

D.2.8 TOCrane
La composante TOCrane (pour Two Output Positions Crâne) propose une grue com-
plète avec flèche (Boom), pont (Brg) et pince extensible (Wsc une instance de EHook). La
figure D.31 en donne le modèle d'interface (G,G) et la figure D.30 le diagramme d'assem-
blage. Cette grue doit aller saisir des pièces à une position d'entrée pour éventuellement
les rejeter à l'une de ses positions de sortie ou les transférer vers l'autre position de sor-
tie. Aucune interaction nuisible ne peut se produire durant la saisie, le transfert ou le rejet
excepté aux extrémités (positions d'entrée et de sortie). La position d'entrée est : flèche à
gauche, pont en extension. La position de rejet est : flèche à droite, pont rétracté. La po-
sition de transfert est : flèche à droite, pont en extension. Aucune mémoire n'est requise.
Tout le contrôle est basé sur les états des dispositifs eux-mêmes donnant lieu à une loi de
type SFBC des plus classique.

( 1 ) Les commandes de la flèche et du pont doivent être alternées de façon stricte.


(2) La flèche ne doit pas être en mouvement lorsque le pont est en extension.
(3) Les commandes de la flèche et de la pince doivent être alternées de façon stricte.
(4) La pince ne doit pas déposer une pièce quand la flèche est en position pour saisir (à
gauche vers la position d'entrée).
(5) La pince ne doit pas saisir une pièce lorsque la flèche est en position pour déposer (à
droite vers la position de sortie).

347
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

TOCrane

Boom Brg Wsc

bmr yJAY ^bmre bey *(jys^bee wpu J *(T\^wpue


=sfo) © *\b (l) "*W W
bmle^
^Qy
/bml £re - s

oy /br
-
wpde^
^jy
/wpd

FIGURE D.30 - Composante TOCrane (diagramme d'assemblage)

TOCrane : G
cp : crâne pick-up
cpe ; crâne pick-up end
cr : crâne reject
cre : crâne reject end
et : crâne transfer
cte : crâne transfer end

TOCrane : G
Boom Brg Wsc
bmr : boom right be ; bridge extend wpu : wsc pick-up
bmre : boom right end bee : bridge extend end wpue : wsc pick-up end
bml : boom left br : bridge retract wpd : wsc put down
bmle : boom left end wpde : wsc put down end
bre : bridge retract end
bee/e wpu/e wpue/epe br/e

FIGURE D.31 - Composante TOCrane (sous-système et projection)

348
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

(6) La flèche ne doit pas revenir vers la position d'entrée si la pince est fermée (présumée
pleine).
(7) La flèche ne doit pas amorcer de mouvement vers les positions de sortie quand la pince
est ouverte (présumée vide).
(8) Les commandes du pont et de la pince doivent être alternées de façon stricte.
(9) La pince ne doit pas tenter de saisir une pièce lorsque le pont est rétracté (la position
d'entrée se trouvant à l'extrémité c'est-à-dire que le pont doit être en extension pour se
trouver au-dessus de la position d'entrée).
(10) Lors d'une manoeuvre de prise, le pont ne doit pas se rétracter si la pince est vide
(ouverte).
(11) Lors d'une manoeuvre de prise, le pont ne doit pas être déployé si la pince est pleine
(fermée).
(12) Lors d'un dépôt (rejet ou transfert), le pont ne doit pas être déployé si la pince est vide
(ouverte).
( 13) Lors d'un dépôt (rejet ou transfert), le pont ne doit pas être rétracté si la pince est pleine
(fermée).

Component TOCrane {

SubSystem TOCrane {
State Vector = <Boom, Brg, W s o

Boom : Jack211a with {


Sr := { deploy[bmr], retract[bml] }
T,u := { deployend [bmre] , retractend [bmle] }
}
Brg : Jack211a with {
Ec := { deploy[be], retract[br] }
£„ := { deployend[bee], retractend[bre] }
}
Wsc : EHook with {
S c := { p u [ w p u ] , p d [ w p d ] }
S u := { p u e [ w p u e ] , p d e [ w p d e ] }
349
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

}
CtrlSpec {
/* Ail constraints are implicit in the model */
/* Boom x Brg */
/*(1)*/ Boom G {1,3} A Brg G {1,3}
/•(2) No Boom move while Brg extended */
Boom G {1,3} A Brg = 2
/* Boom x Wsc */
/*(3)*/ Boom G {1,3} A Wsc G {1,3}
/*(4) No Put-down at Boom left */
Boom = 0 A Wsc = 3
/*(5) No Pick-up at Boom right */
Boom = 2 A Wsc = 1
/*(6) No left move unless Wsc empty */
Boom = 3 A Wsc = 2
/*(7) No right move unless Wsc full •/
Boom = 1 A Wsc = 0
/* Brg x Wsc */
/*(8)*/ Brg G {1,3} A Wsc € {1,3}
/*(9) No Pick-up at Brg retracted */
Brg = 0 A Wsc = 1
/* Boom x Brg x Wsc */
/*(10) On Pick-up, no Brg retract on Wsc empty */
Boom = 0 A Brg = 3 A Wsc = 0
/•(11) On Pick-up, no Brg extend on Wsc full */
Boom = 0 A Brg = 1 A Wsc = 2
/*(12) On Put-down, no Brg extend on Wsc empty */
Boom = 2 A Brg = 1 A Wsc = 0
/*(13) On Put-down, no Brg retract on Wsc full */
Boom = 2 A Brg = 3 A Wsc = 2
}
fbmr • = Boom = 0 A B r g =: 0 A Wsc = 2
fbmi : = Boom = 2 A B r g =: 0 A Wsc = 0
fbe •=
Brg = 0
A ( ( B o o m = 0 A Wsc = 0) V (Boom =

350
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

/br :=
Brg = 2
A ((Boom 0 A Wsc = 2) V (Boom = 2 A Wsc = 0) )
=
.1 wpu • "SC 0 A Boom = 0 A Brg = 2
fwpd == WSC 2 A Boom = 2 A Brg G {0,2}

} }

D.2.9 HSCrane
La composante HSCrane n'est pas à proprement parler une composante de biblio-
thèque de composantes réutilisables, elle représente plutôt une solution partielle à un pro-
blème de conception. La figure D.33 en donne le modèle d'interface (G,G) et la figure D.32
le diagramme d'assemblage.
On peut parler d'une composante locale que l'on peut définir à l'intérieur d'un problème
plus complexe (ici le problème développé au chapitre 5). Cette composante est en fait une
simplification de l'interface de TOCrane qui tient compte du fait que dans le problème
du chapitre 5 il n'y a pas de possibilité d'interactions nuisibles aux positions de sortie mais
qu'il y a une interaction potentiellement nuisible à la position d'entrée pendant que la pincé
est en train de saisir une pièce. Il suffit donc de savoir quand cette phase se termine (évé-
nement pue pour pick-up end) pour éviter les problèmes. Aussi, la décision de transférer
ou de rejeter est rendue explicite par l'usage d'une mémoire de sélection d'opération et la
décision est prise dès le démarrage de la grue puisqu'alors l'information nécessaire est déjà
disponible.
(1) Une commande de rejet ne peut être donnée que si la grue est à l'arrêt (Sel = 0).
(2) Une commande de transfert ne peut être donnée que si la grue est à l'arrêt (Sel = 0).
(3) La grue ne doit pas saisir une pièce tant qu'une commande (transfert ou rejet) n'a pas
été donnée (Sel = 0).
(4) Un rejet ou un transfert requiert une commande.
(5) La grue ne peut pas transférer en mode rejet (Sel = 1).
(6) La grue ne peut pas rejeter en mode transfert (Sel = 2).

351
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

HSCrane

hsCrn

Sel
hscp J A _ / \
hscre / N. hscpe
hscte hscte hscre
*K"r-L—(s)-?—H*)
hscte^\^^^^/ hsct
hscre "' hscte

. t

FIGURE D.32 - Composante HSCrane (diagramme d'assemblage)

HSCrane : G trsf
rjct
trsf : transfer
rjct : reject
pue : pick-up end
»€3 pue

HSCrane : G hscp/e hscp/e


hsCrn
hscp : hsCrn pick-up
hscpe : hsCrn pick-up end
hscr : hsCrn reject
hscre : hsCrn reject end
hsct : hsCrn transfer
hscte : hsCrn transfer end hscr/e hsct/e

FIGURE D.33 - Composante HSCrane (sous-système et projection)

352
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

Component HSCrane {

SubSystem HSCrane {

State Vector = <Sel, hsCrn>

Sel : MW; /* Command selector memory */

hsCrn : TOCrane with {


Sc := { cp[hscp], cr[hscr], et [hsct] }
S u := { cpe [hscpe], cre[hscre], cte[hscte] }
}
Synthetic Events := {
Sc := { hstc, hsrc }
}
CtrlSpec {
(explicit)
/*(1)*/ hsrc <= Sel = 0
/*(2)*/ hstc <= Sel = 0
(Implicit)
/*(3) Cannot pickup without a command */
Sel = 0 A hsCrn = 1
(standard)
/*(4) Cannot transfer or reject without a command */
Sel = 0 A hsCrn G {3,4}
/*(5) Cannot transfer in reject mode */
Sel = 1 A hsCrn = 4
/*(6) Cannot reject in transfer mode */
Sel = 2 A hsCrn = 3
}
1 hstc = Sel = 0
Jhsrc = Sel = 0
Jhscp = hsCrn = 0 A Sel G {1,2}
.1 hscr = hsCrn = 2 A Sel = 1
Jhsct = hsCrn = 2 A Sel = 2

} }

353
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

D.2.10 FHTOCrane
La composante FHTOCrane propose un raffinement sur la grue de type TOCrane uti-
lisant une pince dotée d'un mode d'échec et récupération lors de la prise d'une pièce. La
figure D.35 en donne le modèle d'interface (G,G) et la figure D.34 le diagramme d'assem-
blage.
La description de la grue de type TOCrane s'applique intégralement ici en ce qui
concerne les positions d'entrée et de sortie et à la logique de rejet et de transfert. La seule
différence est qu'il faut gérer un mode d'échec lors de la saisie d'une pièce et à cette fin il est
nécessaire d'ajouter une mémoire. Les requis aussi sont (étonnamment) assez semblables.
Seul le requis (10) doit être altéré et le requis (14) ajouté pour tenir compte du nouveau
mode d'échec.
1. Les commandes de la flèche et du pont doivent être alternées de façon stricte.
2. Laflèchene doit pas être en mouvement lorsque le pont est en extension.
3. Les commandes de la flèche et de la pince doivent être alternées de façon stricte.
4. La pince ne doit pas déposer une pièce quand la flèche est en position pour saisir (à
gauche vers la position d'entrée).
5. La pince ne doit pas saisir une pièce lorsque la flèche est en position pour déposer (à
droite vers la position de sortie).
6. La flèche ne doit pas revenir vers la position d'entrée si la pince est fermée (présumée
pleine).

FIGURE D.34 - Composante FHTOCrane (diagramme d'assemblage)


354
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

FHTOCrane : G
cp : crâne pick-up
cpa ; crâne pick-up abort
cpe : crâne pick-up confirm epr
epr : cpa recovered
cpe : crâne pick-up end
cr : crâne reject
cre : crâne reject end
et : crâne transfer
cte : crâne transfer end

FHTOCrane : G
Boom Brg Wsc
bmr : boom right be : bridge extend wpu : pick-up
bmre : boom right end bee : bridge extend end wpua : pick-up abort
bml : boom left br ; bridge retract wpue : pick-up confirm
bmle : boom left end wpur : pick-up recover
bre : bridge retract end wpue : pick-up end
wpd : put down
wpde : put down end

be/cp bee/e wpu/e wpuc/epe

Q2AA
bee e
' br/e l
wpde/e wpd/e ,
^^2^~^^JXsf^~y$aâA
FIGURE D.35 - Composante FHTOCrane (sous-système et projection)

355
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

7. La flèche ne doit pas amorcer de mouvement vers les positions de sortie quand la
pince est ouverte (présumée vide).
8. Les commandes du pont et de la pince doivent être alternées de façon stricte.
9. La pince ne doit pas tenter de saisir une pièce lorsque le pont est rétracté (la position
d'entrée se trouvant à l'extrémité c'est-à-dire que le pont doit être en extension pour
se trouver au-dessus de la position d'entrée).
10. Lors d'une manoeuvre de prise, en mode normal (c'est-à-dire Seq = 0), le pont ne
doit pas se rétracter si la pince est vide (ouverte).
11. Lors d'une manoeuvre de prise, le pont ne doit pas être déployé si la pince est pleine
(fermée).
12. Lors d'un dépôt (rejet ou transfert), le pont ne doit pas être déployé si la pince est
vide (ouverte).
13. Lors d'un dépôt (rejet ou transfert), le pont ne doit pas être rétracté si la pince est
pleine (fermée).
14. En mode d'échec, la pince ne doit pas tenter de saisir une pièce à nouveau.

Component FHTOCrane {

SubSystem FHTOCrane {

State Vector = <Seq, Boom, Brg, Wsc>

Seq : MW; /* Mode : normal(0), pick-up abort(1) */

Boom : Jack211a with {


Ec := { deploy[bmr], retract[bml] }
E u := { deployend[bmre], retractend[bmle] }
Brg : Jack211a with {
Ec : = { deploy[be], retract[br] }
E„ := { deployend[bee], retractend[bre] }
}
Wsc : FEHook with {
E,. : = { p u [wpu] , p d [wpd] }
E u := { p u a [ w p u a ] , p u e [ w p u e ] , p u r [ w p u r ] , p u e [ w p u e ] ,
356
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

pdefwpde] }
}

CtrlSpec {
/ * C o n s t r a i n t s i m p l i c i t i n t h e model */
/ * Boom x Brg */
/*(!)*/ Boom G {1,3} A Brg € {1,3}
/*(2) No Boom move while Brg extended •/
Boom G {1,3} A Brg = 2
/* Boom x Wsc */
/*(3)*/ Boom € {1,3} A Wsc G {1,2,3,5}
/*(4) No Put-down at Boom left */
Boom = 0 A Wsc = 5
/*(5) No Pick-up at Boom right */
Boom = 2 A Wsc = 1
/*(6) No left move on full Wsc */
Boom = 3 A Wsc = 4
/* (7) No right move on empty Wsc */
Boom = 1 A Wsc = 0
/* Brg x Wsc */
/*(8)*/ Brg G {1,3} A Wsc G {1,2,3,5}
/•(9) No Pick-up at Brg retracted */
Brg = 0 A Wsc = 1
/* Seq x Boom x Brg x Wsc */
/*(10) No Brg retract on empty Wsc in normal mode */
Seq = 0 A Boom = 0 A Brg = 3 A Wsc = 0
/* Boom x Brg x Wsc */
/* (11) No Brg extend on full Wsc when at left */
Boom = 0 A Brg = 1 A Wsc = 4
/*(12) No Brg extend on empty Wsc when at right */
Boom = 2 A Brg = 1 A Wsc = 0
/*(13) No Brg retract on full Wsc when at right */
Boom = 2 A Brg = 3 A Wsc = 4
/* standard constraints wrt Seq •/
/*(14) No pick-up in failure mode */
Seq = 1 A Wsc = 1
}

357
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

/bmr : = Boom = 0 A B r g = 0 A Wsc = 4


fbmi := Boom = 2 A B r g = 0 A Wsc = 0
fbe '• =
Brg = 0
A ((Boom = 0 A Wsc = 0) V (Boom = 2 A Wsc = 4 ) )
fbr '• =
Brg = 2 A
( Seq = 1 A Wsc = 0
V Seq = 0 A Boom = 0 A Wsc = 4
V Seq = 0 A Boom = 2 A Wsc = 0
)
/wpu := Wsc =. 0 A Seq = 0 A Boom = 0 A B r g = 2
fwpd ••= Wsc = 4 A Boom = 2 A B r g G { 0 , 2 }

} }

D.2.11 FHHSCrane
La composante FHHSCrane reprend, par rapport à la composante FHTOCrane, le
même exercice que celui fait pour HSCrane relativement à la composante TOCrane, et
permet de vérifier que la même simplification d'interface est possible. La figure D.37 en
donne le modèle d'interface (G,G) et la figure D.36 le diagramme d'assemblage.
Le même type de mémoire de sélection est nécessaire. Étonnamment, l'ensemble des
requis est plus simple et plus clair.

1. Une commande de rejet ne peut être donnée que si la grue est à l'arrêt ( S e l = 0).
2. Une commande de transfert ne peut être donnée que si la grue est à l'arrêt ( S e l = 0).
3. La grue ne doit pas tenter de saisir, rejeter ou transférer une pièce tant qu'une com-
mande (transfert ou rejet) n'a pas été donnée ( S e l = 0).
4. La grue ne peut pas transférer en mode rejet ( S e l = 2).
5. La grue ne peut pas rejeter en mode transfert ( S e l = 1).

Component FHHSCrane {

SubSystem FHHSCrane {

358
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

FHHSCrane

Sel
hscre
hscte
hscte hscpr hscre

hscre *' hscte


hscpr hscpr

FIGURE D.36 - Composante FHHSCrane (diagramme d'assemblage)

FHHSCrane : G trsf
rjct
trsf : transfer
rjct : reject
pue : pick-up end
-@os
pue

hscpa/e hscpa/e
FHHSCrane : G
hsCrn
hscp : hsCrn pick-up
hscpa : hsCrn pick-up abort
hscpe : hsCrn pick-up confirm
hscpr : hsCrn pick-up reset
hscpe : hsCrn pick-up end
hscr : hsCrn reject
hscre : hsCrn reject end
hsct : hsCrn transfer
hscte : hsCrn transfer end

FIGURE D.37 - Composante FHHSCrane (sous-système et projection)

359
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

State Vector = <Sel, hsCrn>

Sel : MW; /* Command selector memory */

hsCrn : FHTOCrane with {


Er := { cp[hscp], cr[hscr], et[hsct] }
E u := { cpa [hscpa] , cpe[hscpe], epr[hscpr],
cpe [hscpe] , cre[hscre], cte[hscte] }
}
Synthetic Events := {
E,. := { hstc, hsrc }
}
CtrlSpec {
(explicit)
/*(1)*/ hsrc <= Sel = 0
/*(2)*/ hstc <= Sel = 0
(standard)
/*(3) Cannot pickup-up transfer or reject
without a command */
Sel = 0 A hsCrn G {2,5,6}
/*(4) Cannot transfer in reject mode */
Sel = 2 A hsCrn = 6
/*(5) Cannot reject in transfer mode */
Sel = 1 A hsCrn = 5
}

fhstc := Sel = 0
Jhsrc := Sel = 0
Jhscp := hsCrn = 0 A Sel € {1,2}
Jhscr := hsCrn = 4 A Sel = 2
./hsct := hsCrn = 4 A Sel = 1

} }

360
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

D.3 Sommaire
Pour compléter le catalogue il est intéressant de tenter de faire ressortir, au moyen de
quelques statistiques, les points forts ou les faiblesses de la métaphore de composantes
réutilisables et de la méthode de conception utilisée. À cette fin il est possible d'utiliser
deux métriques :
1. la complexité des sous-systèmes conçus sans abstraction (par rapport aux sous-sys-
tèmes conçus à partir d'abstractions) ;
2. le nombre de requis récupérés au moment de l'utilisation d'une composante réutili-
sable.
Le tableau D. 1 liste les statistiques pour l'ensemble des composantes élémentaires du ca-
talogue et le tableau D.2 liste les statistiques relatives aux composantes mixtes. D'abord il
est important de comprendre ce que veulent dire ces métriques et comment sont établies
ces statistiques.
À la colonne Espace d'états (exhaustif), on retrouve le nombre d'états des modèles
tels qu'on les utilises dans une conception basée sur le contexte original de SCT (contexte
de Ramadge et Wonham). Cette statistique est fréquemment utilisée dans la littérature sur
le sujet et constitue un bon indicateur de complexité autant pour la conception que pour
la synthèse. Par exemple pour la composante élémentaire Jack211a (tableau D.l) on a
9 états si on élimine les configurations de capteurs et d'actionneur qui ne peuvent pas
se présenter. Bien sûr le dispositif doit d'abord être préconditionné, sinon aucune synthèse
n'est possible, et le résultat est un modèle à 6 états (colonne Espace d'états (sous-système)).
Mais il est nécessaire de tenir compte du modèle exhaustif pour la mesure de complexité
même si un travail ad hoc doit d'abord être réalisé pour pouvoir éventuellement utiliser la
synthèse SCT. Ce travail fait effectivement partie de l'effort de modélisation.
Pour les composante mixtes (tableau D.2), la statistique Espace d'états (sous-système)
représente le produit du nombre d'états présents dans l'interface des instances utilisées
dans la composition du sous-système. Par exemple la composante TOCrane, utilise trois
instances de composantes réutilisables comportant chacune quatre états dans leur interface.
Le sous-système de TOCrane comporte donc 64 (c'est-à-dire 4 x 4 x 4 ) états. Il faut se
rappeler que ces composantes sont disjointes (elles ne partagent a priori aucun de leurs

361
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

TABLE D.l - Complexité des composantes élémentaires


Composante Nombres Espace d'états Espace d'états Espace d'états
de requis (interface) (sous- (exhaustif)
système)
jackl11 2 4 6 6
JacklllSS 2 2 6 6
jackl1Icdcr 4 4 6 6
jackl1lcd 3 4 C 6
jacklllcr 3 4 6 6
jackl10 2 4 6 8
jackl01 2 4 6 8
jackl00 2 4 6 8
jack21 la 2 4 6 9
jack211b 2 4 6 9
ADRelay 2 4 6 8
SDRelay 2 4 4 4
NDRelay 2 1 4 4
ODTimer 3 3 4 1
Injector 2 1 8 12
Stepper 2 2 3 4
SuctionCup 2 4 4 6
SuctionCupCC 2 4 4 6

362
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

TABLE D.2 - Complexité des composantes mixtes


Composante Nombres Espace d'états Espace d'états Espace d'états
de requis (interface) (sous- (exhaustif)
système)
LRCrane 4 (H) 6 16 54
BLRCrane 4 (+4) 9 16 54
Drill 10 (+6) 2 128 864
Micrometer 5 (+5) 4 36 96
PSTester 6 (+6) 3 12 24
TSCvrDrv 2 (+5) 2 12 32
EHook 6 (+4) 4 32 72
FEHook 14 (+5) 6 48 108
TOCrane 13 (+14) 5 64 5 832
HSCrane 6 (+27) 2 15 17496
FHTOCrane 14 (+23) 7 192 17496
FHHSCrane 5 (+37) 2 21 52 488

363
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

événements). Leur composition parallèle comporte donc le même nombre d'états que le
produit cartésien de leurs espaces d'états respectifs. De façon analogue, la statistique Es-
pace d'états (exhaustif) est obtenue en faisant le produit du nombre d'états des modèles
exhaustifs des instances constituantes. Dans l'exemple TOCrane on aura 9 x 9 x 48 = 3 888
états au modèle exhaustif puisque TOCrane est constituée de deux J a c k 2 1 1 a (à 9 états
pour le modèle exhaustif) et de un EHook (à 48 états pour le modèle exhaustif). Ce faisant
on peut remarquer que EHook contient une mémoire, et que cette mémoire est incluse dans
le modèle exhaustif de EHook. Ne gonfle-t-on pas alors artificiellement la statistique?
La réponse est non. Il faut se rappeler que les calculs de synthèse effectués avec cette
méthode de conception ont pour but d'obtenir une loi de contrôle de type SFBC ; plus préci-
sément, en général, un DSFBC (voir [62]) c'est-à-dire une SFBC contenant de la mémoire.
Il faut donc disposer d'un espace d'états suffisant pour exprimer les requis de contrôle
sous fonne de familles d'états proscrits (spécification par évitement d'états). La mémoire
ajoutée en cours de modélisation n'a pour but que de permettre ce genre de spécification,
c'est-à-dire d'accroître l'espace des états du système. C'est la notion de mémoire adéquate
à la section 7.6 du chapitre 7 de [62]. Cette mémoire adéquate, bien qu'elle partage tous
ses événements avec le système, n'impose aucune contrainte au système a priori. Elle peut
donc avoir le même effet sur la taille de l'espace d'états résultant qu'une composante dis-
jointe ayant la même taille et parfois pire. Il est impossible de la négliger.
La statistique Espace d'états (interface) donne une idée des économies réalisées par
l'abstraction.
La statistique Nombres de requis (établie en nombre de requis élémentaires tels que
définis en préambule de cette annexe) donne une idée de la complexité encapsulée par abs-
traction. Réutiliser une composante de type FHHSCrane (voir tableau D.2), par exemple,
évite d'avoir à formuler 13 requis de contrôle : 5 requis directs (dans la définition de cette
composante) et 38 requis indirects, inclus par l'ensemble des instances de composantes
réutilisables qui constituent le sous-système de FHHSCrane.
Finalement on peut noter qu'aucune des synthèses requises pour élaborer les com-
posantes de cet inventaire n'a demandé plus de 3 dixièmes de seconde avec le logiciel
Supremica [2]. Ce résultat ne doit pas surprendre puisque la méthode encourage la modu-
larisation des requis par abstraction, donc la synthèse se fait généralement sur des sous-

364
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

systèmes de tailles modestes. Aussi, plus surprenant, tous les calculs pour obtenir des mo-
dèles d'observateurs (algorithme de Wong [60]) n'ont requis que quelques dixièmes de se-
condes. Élaborer la projection est un processus heuristique plus long qui requiert d'émettre
des hypothèses et de refaire les calculs pour obtenir les observateurs correspondants plu-
sieurs fois. Mais les calculs eux-mêmes ne semblent pas a priori en être le facteur limitatif.
II est beaucoup plus difficile, par exemple, de se donner une idée des hypothèses à formuler
pour un modèle comportant 500 à 1000 états. C'est là, certainement, un facteur limitatif.
De cette courte analyse il ressort deux points importants. Bien que l'abstraction en
elle-même permette des économies d'échelle pour la synthèse, les principaux atouts des
composantes réutilisables semblent se situer au niveau de la modularisation des requis de
contrôle. Premièrement, la modularisation des requis de contrôle et leur encapsulation par
abstraction permet la réutilisation directe d'un travail difficile et long à faire (l'élaboration
de bons requis de contrôle). Deuxièmement, cette modularisation permet d'approcher les
problèmes de contrôle de façon structurée, par étape, et de s'attacher à chaque étape à
spécifier et tester des ensembles de requis relativement modestes.
La station d'usinage du MPS peut servir d'illustration à ce dernier point. Cette station
comprend :
- un vérin à l'admission (composante J a c k l 0 0, modèle exhaustif à 8 états et interface
à 2 états);
- un convoyeur temporisé pour l'entraînement (TSCvrDrv, 16 et 2 états) ;
- une perceuse ( D r i l l , 864 et 2 états) ;
- une sonde de contrôle de qualité ( P S T e s t e r , 36 et 3 états) ;
- une grue de transfert (FHHSCrane, 34 992 et 2 états)
- un registre à décalage de 4 positions pour modéliser l'état des positions d'usinage
(16 états);
- un registre à décalage de 2 positions pour transporter le résultat du test de qualité (4
états).
Le modèle exhaustif comporte 8,916 x 1012 états contre 3072 pour le modèle abstrait.
Le modèle abstrait de la station d'usinage suggère une approche en deux étapes :
d'abord établir les requis de sécurité pour le matériel (modèle abstrait de 48 états), ensuite
ajouter la mémoire et les requis qui lui sont relatifs. La mémoire peut être elle même traitée

365
ANNEXE D. INVENTAIRE DE COMPOSANTES RÉUTILISABLES

en deux étapes ; un registre à décalage à la fois. Sur le modèle exhaustif la situation est plus
embrouillée dû à la taille du modèle. Déjà la taille du modèle du matériel est considérable,
même en excluant la grue à prime abord, plus de trois millions d'états. Dans ces condi-
tions il est difficile d'établir une stratégie pour l'analyse et la solution du problème. Même
si on y parvient, avec des modèles d'une telle taille, il devient vite difficile d'émettre des
hypothèses quant aux requis et d'en analyser l'effet sur le modèle du problème. En d'autre
termes, les requis spécifiés doivent se révéler parfaits du premier coup car il n'y a pas de
moyen d'en vérifier l'effet sauf par la synthèse ; un diagnostique de type tout ou rien.
Assez clairement la modularisation des requis de contrôle, procurée par l'usage de com-
posantes réutilisables, semble être nécessaire à la formulation d'une méthode de résolution
structurée de problèmes de contrôle d'envergure non triviale. Bien sûr la présence de com-
posantes réutilisables permet aussi de limiter l'envergure du travail de modélisation ad hoc
nécessaire dans l'élaboration de problème de contrôle. Ce travail occupe aujourd'hui une
importance disproportionnée dans toutes les variantes de SCT et limite en général la taille,
et parfois même l'intérêt, des problèmes considérés.

366
Bibliographie

[1] J.-R. ABRIAL. The B-Book : Assigning Programs to Meanings. Cambridge University
Press, Cambridge, UK, 1996.
[2] K. AKESSON, M. FABIAN, H. FLORDAL et R. M A L I K . « Supremica - An integrated
environment for vérification, synthesis and simulation of discrète event Systems ».
Dans Proc. 8th International Workshop on Discrète Event Systems, pages 384-385,
Ann Arbor, Michigan, 2006.
[3] A. ARNOLD. Systèmes de transitions finis et sémantique des processus communi-
quants. Masson, Paris, 1992.
[4] G. BEHRMANN, A. DAVID et K. G. LARSEN. « A Tutorial on Uppaal ». Rap-
port technique, Department of Computer Science, Aalborg University, Aalborg, Da-
nemark, 2004.
[5] E. BRINKSMA et A. MADER. « Vérification and optimization of a PLC control sche-
dule ». Dans K. HAVELUND, J. PENIX et W. VISSER, éditeurs, Proceedings of the
7th International SPIN Workshop on SPIN Model Checking and Software Vérification,
volume 1885 de Lecture Notes in Computer Sciences, pages 73-92. Springer-Verlag
Berlin Heidelberg, 2000.

[6] G. CIARDO, G. LUTTGEN et R. SIMINICEANU. « Saturation : An Efficient Itéra-


tion Strategy for Symbolic State-space Génération ». ICASE Report 2001-5, NASA,
2001.
[7] D. CÔTÉ. « Système de génération de code pour des usines industrielles modu-
laires ». Mémoire de maîtrise, Université de Sherbrooke, Sherbrooke, Canada, 2004.

367
BIBLIOGRAPHIE

[8] D. CÔTÉ, R. ST-DENIS et S. KERJEAN. « Generative programming for program-


mable logic controllers ». Dans Proc. lOth IEEE Conférence on Emerging Technolo-
gies and Factory Automation ETFA 2005, volume 2, pages 741-748, Catania, Italie,
2005.
[9] P. DAI. « Synthesis Method for Hierarchical Interface-based Supervisory Control ».
Mémoire de maîtrise, McMaster University, Hamilton, Canada, 2006.
[10] M. H. DE QUEIROZ et J. E. R. CURY. « Modular supervisory control of large scale
discrete-event Systems ». Dans Proc. WODES'00, Discrète Event Systems : Analysis
and Control, pages 103-110, Ghent, Belgique, 2000.
[11] M. H. DE QUEIROZ et J. E. R. CURY. « Synthesis and implémentation of local
modular supervisory control for a manufacturing cell ». Dans Proc. of the Sixth
International Workshop on Discrète Event Systems, pages 377-382, Zaragoza, Spain,
2002.
[12] R. DRECHSLER et D. SIELING. « Binary décision diagrams in theory and prac-
tice ». International Journal on Software Tools for Technology Transfer, 3(2) : 112-
136,2001.
[13] G. EKBERG et B. H. KROGH. « Programming discrète control Systems using state
machine templates ». Dans Proc. ofthe 8th International Workshop on Discrète Event
Systems, pages 194-200, Ann Arbor, Michigan, 2006.
[14] L. FENG. « Computationally Efficient Supervisor Design for Discrete-Event Sys-
tems ». Thèse de doctorat, University of Toronto, Toronto, Canada, 2007.
[15] L. FENG et W. M. WONHAM. «. On the computation of natural observers in discrete-
event Systems ». Discrète Event Dynamic Systems, 20(1) :20-63,2010.
[16] J.-C. FERNANDEZ. « An implémentation of an efficient algorithm for bisimulation
équivalence ». Science of Computer Programming, 13(2-3) :219-236, 1990.
[17] FESTO. « Processing Station-Modular Production System». Festo Didactic GmbH
& Co., Denkendorf, 1998.
[18] FESTO. «r Sorting Station-Modular Production System ». Festo Didactic GmbH &
Co., Denkendorf, 1998.

368
BIBLIOGRAPHIE

[19] FESTO. ^Testing Station-Modular Production System ». Festo Didactic GmbH &
Co., Denkendorf, 1998.
[20] FESTO. < Distribution Station-Modular Production System ». Festo Didactic
GmbH & Co., Denkendorf, 1999.
[21] FESTO. « Handling Station-Modular Production System ». Festo Didactic GmbH
& Co., Denkendorf, 1999.
[22] G. FREY et L. LITZ. « Formai methods in PLC programming ». Dans Proc. of
IEEE International Conférence on Systems, Man, and Cybernetics, volume 4, pages
2431-2436, Nashville, TN, 2000.
[23] B. GAUDIN. « Synthèse de contrôleurs sur des systèmes à événements discrets struc-
turés ». Thèse de doctorat, Université de Rennes l. Rennes, France, 2004.
[24] P. GOHARI et W. M. WONHAM. « A linguistic framework for controlled hierarchical
DES ». Dans Proc. of the 4th International Workshop on Discrète Event Systems,
pages 207-212, Reims, France, 1998.
[25] G. GÔSSLER et J. SIFAKIS. «. Composition for component-based modeling ». Science
of Computer Programming, 55(1-3) : 161—183, 2005.
[26] J. GUNNARSSON. « Symbolic Methods and Tools for Discrète Event Dynamic Sys-
tems ». Thèse de doctorat, Linkôping University, Division of Automatic Control,
Department of Electrical Engineering, 1997.
[27] D. HAREL et M. POLITl. Modeling Reactive Systems with Statecharts. McGraw-Hill
Books, New-York, 1998.
[28] J. HUANG et R. KUMAR, « Optimal nonblocking directed control of discrète event
Systems ». IEEE Transactions on Automatic Control, 53(7) : 1592-1603, 2008.
[29] P. HUBBARD et P. E. CAINES. « Dynamical consistency in hierarchical supervisory
control ». IEEE Transactions on Automatic Control, 47(1) :37-52, 2002.
[30] T. K A M , T. VILLA, R. BRAYTON et A. SANGIOVANNI. « Multi-valued décision
diagrams : theory and applications ». International Journal on Multi-Valued Logic,
4(1-2) :9-62, 1998.
[31] Zvi KOHAVl. Switching andFinite Automata Theory. McGraw-Hill, 1970.

369
BIBLIOGRAPHIE

[32] R. KUMAR et V. K. GARG. Modeling and Control ofLogical Discrète Event Systems.
Kluwer Académie Publishers, Boston, 1995.
[33] R. J. L E D U C « PLC Implémentation of a DES Supervisor for a Manufacturing Test-
bed : An Implémentation Perspective ». Mémoire de maîtrise, Department of Electri-
cal and Computer Engineering, University of Toronto, Toronto, Canada, 1996.
[34] [Link]. « Hierarchical Interface-based Supervisory Control ?>. Thèse de doc-
torat, Department of Electrical and Computer Engineering, University of Toronto,
Toronto, Canada, 2003.
[35] R. J. LEDUC, B. A. BRANDIN, M. LAWFORD et W. M. WONHAM. <*. Hierarchical
interface-based supervisory control - part 1 : Sériai case ». IEEE Transactions on
Automatic Control, 50(9) :1322-1335, 2005.
[36] R. J. LEDUC, P. DAI et R. SONG. « Synthesis method for hierarchical interface-based
supervisory control ». IEEE Transactions on Automatic Control, 54(7) : 1548-1560,
2009.
[37] R. J. LEDUC, M. LAWFORD et P. DAI. « Hierarchical interface-based supervisory
control of a flexible manufacturing System ». IEEE Transactions on Control Systems
Technology, 14(4) :654-668, 2006.
[38] R. J. LEDUC, M. LAWFORD et W. M. W O N H A M . « Hierarchical interface-based su-
pervisory control - part II : Parallel case ». IEEE Transactions on Automatic Control,
50(9):1336-1348, 2005.
[39] C. M A et W. M. WONHAM. Nonblocking Supervisoty Control of State Tree Struc-
tures, volume 317 de Lecture Notes in Control and Information Sciences. Springer-
Verlag, Berlin, 2005.
[40] A. S. MlNER et G. CIARDO. « Efficient reachability set génération and storage using
décision diagrams ». Dans S. DONATELLI et H. C. M. K L E U N , éditeurs, Proc. ofthe
20th International Conférence on Application and Theory of Pétri Nets, volume 1639
de Lecture Notes in Computer Sciences, pages 6-25, London, UK, 1999. Springer-
Verlag.
[41] R. PAIGE et R. E. TARJAN. « Three partition refinement algorithms ». SIAM Journal
on Computing, 16(6) :973-989, 1987.

370
BIBLIOGRAPHIE

[42] K. Q. Pu. « Modeling and Control of Discrete-Event Systems with Hierarchical Abs-
traction ». Mémoire de maîtrise, Department of Electrical and Computer Engineering,
University of Toronto, Toronto, Canada, 2000.
[43] P. J. G. RAMADGE et W. M. W O N H A M . « Modular feedback logic for discrète event
Systems ». SIAM Journal on Control and Optimization, 25(5) :1202-1218, 1987.
[44] P. J. G. RAMADGE et W. M. W O N H A M . «. Modular supervisory control of discrete-
event Systems ». Mathematics of Control, Signais and Systems, 1(1) : 13-30, 1988.
[45] P. J. G. RAMADGE et W. M. W O N H A M . « The control of discrète event Systems ».
Proceedings of the IEEE, 77(1) :81-98, 1989.
[46] J. RlCHARDSSON et M. FABIAN. « Automatic génération of PLC programs for
control of flexible manufacturing cells ». Dans Proc. IEEE Conférence Emeiging
Technologies and Factory Automation ETFA 2003, volume 2, pages 337-344, Lisbon,
Portugal, 2003.
[47] K. RUDIE. < The integrated discrete-event Systems tool ». Dans Proc. ofthe 8th Inter-
national Workshop on Discrète Event Systems, pages 394-395, Ann Arbor, Michigan,
2006.
[48] B. SCHWARTZ. « State Aggregation of Controlled Discrete-Event Systems ». Mé-
moire de maîtrise, Department of Electrical and Computer Engineering, University of
Toronto, Toronto, Canada, 1992.
[49] A. C. SHAW. Real-Time Systems and Software. John Wiley & Sons Inc., 2001.
[50] SIEMENS. « S7-SCL V5.3 pour S7-300/400 ». Siemens AG, Nûrnberg, Germany,
2005.
[51 ] SIEMENS. « Manuel CPU 31xC et CPU 31x, Caractéristiques techniques ». Siemens
AG, Nûrnberg, Germany, 2006.
[52] R. SONG. «r Symbolic Hierarchical Interface-based Supervisory Control ». Mémoire
de maîtrise, McMaster University, Hamilton, Canada, 2006.
[53] R. Su et W. M. W O N H A M . « Supervisor réduction for discrete-event Systems ».
Discrète Event Dynamic Systems, 4(1) :31-53,2004.

371
BIBLIOGRAPHIE

[54] B. WANG. « Top-down Design for RW Supervisory Control Theory ». Mémoire de


maîtrise, Department of Electrical and Computer Engineering, University of Toronto,
Toronto, 1995.
[55] K. C. WONG. «- Discrete-Event Control Architecture : an Algebraic Approach ».
Thèse de doctorat, University of Toronto, Toronto, Canada, 1994.
[56] K.. C. WONG. « On the Complexity of Projections of Discrete-Event Systems ». Dans
Proc. oflEEE Workshop on Discrète Event Systems, pages 201-206, Cagliari, Italy,
1998.
[57] K. C. WONG, J. G. THISTLE, R. P. M A L H A M É et H.-H. HOANG. <=- Supervisory
control of distributed Systems : conflict resolution ». Discrète Event Dynamic Sys-
tems : Theory and Applications, 10(1) : 131-186, 2000.
[58] K. C. WONG et W. M. W O N H A M . « Hierarchical control of discrete-event Systems ».
Discrète Event Dynamic Systems, 6(3) :241--273, 1996.
[59] K. C. WONG et W. M. WONHAM. « Modular control and coordination of discrete-
event Systems ». Discrète Event Dynamic Systems, 8(3) :247-297, 1998.
[60] K. C. W O N G et W. M. W O N H A M . « On the computation of observers in discrete-
event Systems ». Discrète Event Dynamic Systems, 14(1) :55-107, 2004.
[61] W. M. WONHAM. « Towards an abstract internai model principle ». IEEE Transac-
tions on Systems, Man, and Cybernetics, SMC-6(11) :735-740, November 1976.
[62] W. M. WONHAM et E. S. ROGERS, Sr. « Notes on Control of Discrete-event Sys-
tems ». Lecture Notes ECE 1636F/1637S 2007-08, University of Toronto, Toronto,
Canada, 2007.
[63] Z. H. ZHANG. « Smart TCT : An Efficient Algorithm for Supervisory Control De-
sign ». Mémoire de maîtrise, Department of Electrical and Computer Engineering,
University of Toronto, Toronto, Canada, 2001.
[64] Z. H. ZHANG et W. M. W O N H A M . « STCT : An efficient algorithm for supervisory
control design >. Dans B. CAILLAUD, P. DARONDEAU, L. LAVAGNO et X. X I E , édi-
teurs, Synthesis and Control of Discrète Event Systems, pages 77-100, Netherlands,
2002.

372
BIBLIOGRAPHIE

[65] H. ZHONG et W. M. W O N H A M . « Hierarchical coordination ». Dans Proc. of 5th


IEEE International Symposium on Intelligent Control, volume 1, pages 8-14, 1990.
[66] H. ZHONG et W. M. W O N H A M . « On the consistency of hierarchical supervision in
discrete-event Systems ». IEEE Transactions on Automatic Control, 35(10) :1125-
1134, 1990.

373

Vous aimerez peut-être aussi