vérification partielle des système de contrôle commande par interprétation abstraite

37
RECHERCHE Vérication partielle de programmes de contrôle-commande par interprétation abstraite Olivier Bouissou CEA, LIST, Boîte courrier 94 F-91191 Gif-sur-Yvette cedex [email protected]  RÉSUMÉ. L’analyse statique par interprétation abstraite cherche à sur-approximer l’ensemble des comportements possibles des programmes pour s’assurer de l’absence de certains types de bogues. Dans le cas des programmes de contrôle-commande, le comportement du programme dépend de l’environnement extérieur avec lequel il interagit. Prendre en compte cet environ- nement, souvent largement sur-approximé dans les analyseurs, permet de prouver de nouvelles  propriétés concernant le progr amme de contrôle-commande. Dans cet article, nous nous in- téressons à une classe de programme de contrôle-commande pour laquelle une description de l’environnement physique existe sous forme d’équations différentielles. Nous décrivons de nouvelles méthodes d’analyse de ces systèmes qui sur-approximent l’ensemble des trajectoires  possibles pour l’en vironnement continu, per mettant ainsi de pr ouver , dans certains cas, des pr o-  priétés de sûreté sur l’algorithme de contrôle-commande.  ABSTRA CT.  In the eld of static analysis, abstract interpretation based techniques compute over approximations of the set of possible behaviors of programs. These over-approximations give  properties on the progr am that can be used to prove the abscence of some bugs. In the case of control command programs, the behavior of the program depends on the physical environ- ment with which it interacts. This environment is often largely over-approximated in classical analyzers, taking it into account can lead to proving new properties conerning the control- command program. In this article, we consider a class of control-command programs for which a description of the physical environment is given as a set of differential equations. We present new analysis methods that over-approximate the set of possible trajectories for the continuous environment. This allows to prove, in some cases, safety properties on the control-command algorithm.  MOTS- CLÉS : analyse statique, interprétation abstraite, systèmes hybrides, contrôle commande. KEYWORDS: static analysis, abstract interpretation, hybrid systems, control-command. DOI:10.3166/TSI.31.337-373 c 2012 Lavoisier Technique et science informatiques – n o 3/2012, 337-373

Upload: lam-ch

Post on 05-Jul-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 1/37

RECHERCHE

Vérification partielle de programmesde contrôle-commande par interprétationabstraite

Olivier Bouissou

CEA, LIST, Boîte courrier 94F-91191 Gif-sur-Yvette cedex

[email protected]

RÉSUMÉ. L’analyse statique par interprétation abstraite cherche à sur-approximer l’ensembledes comportements possibles des programmes pour s’assurer de l’absence de certains types debogues. Dans le cas des programmes de contrôle-commande, le comportement du programmedépend de l’environnement extérieur avec lequel il interagit. Prendre en compte cet environ-nement, souvent largement sur-approximé dans les analyseurs, permet de prouver de nouvelles

propriétés concernant le programme de contrôle-commande. Dans cet article, nous nous in-téressons à une classe de programme de contrôle-commande pour laquelle une descriptionde l’environnement physique existe sous forme d’équations différentielles. Nous décrivons de

nouvelles méthodes d’analyse de ces systèmes qui sur-approximent l’ensemble des trajectoires possibles pour l’environnement continu, permettant ainsi de prouver, dans certains cas, des pro- priétés de sûreté sur l’algorithme de contrôle-commande.

ABSTRACT. In the field of static analysis, abstract interpretation based techniques compute over approximations of the set of possible behaviors of programs. These over-approximations give

properties on the program that can be used to prove the abscence of some bugs. In the caseof control command programs, the behavior of the program depends on the physical environ-ment with which it interacts. This environment is often largely over-approximated in classicalanalyzers, taking it into account can lead to proving new properties conerning the control-command program. In this article, we consider a class of control-command programs for whicha description of the physical environment is given as a set of differential equations. We present new analysis methods that over-approximate the set of possible trajectories for the continuous

environment. This allows to prove, in some cases, safety properties on the control-command algorithm.

MOTS-CLÉS : analyse statique, interprétation abstraite, systèmes hybrides, contrôle commande.

KEYWORDS: static analysis, abstract interpretation, hybrid systems, control-command.

DOI:10.3166/TSI.31.337-373 c 2012 Lavoisier

Technique et science informatiques – no 3/2012, 337-373

Page 2: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 2/37

338 TSI. Volume 31 – no 3/2012

1. Introduction

Les progrès de miniaturisation et d’encapsulation des composants électroniquesont permis le déploiement à grande échelle de l’informatique dans les systèmes em-barqués industriels, que ce soit dans le domaine de l’aéronautique, de l’automobile,du ferroviaire ou encore du nucléaire. Si ce déploiement a permis d’augmenter forte-ment la sécurité de ces systèmes, il a induit de nouveaux risques liés aux défaillancespotentielles de ces programmes. En effet, les décisions critiques sont désormais sou-vent prises par un programme, et une erreur dans son fonctionnement peut avoir desconséquences dramatiques. Pour vérifier l’absence de défaillances (ou bogues) d’unprogramme, la théorie de l’analyse statique par interprétation abstraite (Cousot, Cou-

sot, 1977 ; 1992a) utilise une notion de sur-approximation : on calcule pour chaquevariable du programme un ensemble contenant au moins toutes les valeurs qu’ellepeut prendre lors de l’exécution du programme. Ainsi, on pourra prouver l’absencede certains types d’erreurs : si aucune de ces valeurs ne crée de division par zéro (parexemple), cela signifiera qu’aucune exécution du programme ne pourra se terminerpar une division par zéro. Nous donnons en section 2.1 une introduction plus formelleà l’interprétation abstraite. Remarquons cependant dès maintenant une des caractéris-tiques principales de cette technique : elle est par nature incomplète. En effet, prou-ver l’absence de bogues pour n’importe quel programme est indécidable. L’analysestatique par interprétation abstraite ne pourra donc apporter la preuve de l’absenced’un bogue que pour certains programmes. Dans les autres cas, il y aura une faussealarme, c’est-à-dire que l’analyse conclura à la présence potentielle d’un bogue alors

qu’il n’existe pas. Un des enjeux majeurs de l’interprétation abstraite est de réduire lenombre de ces fausses alarmes. Les techniques que nous présentons dans cet articlesouffrent du même problème, nous essayons de montrer tout au long de l’article où etpourquoi ces fausses alarmes apparaissent.

Dans le cas de programmes de contrôle-commande embarqués, le calcul de la sur-approximation des valeurs des variables est rendu plus complexe par les interactionsentre le programme et son environnement continu. En effet, ces programmes reçoiventdes données depuis un système physique via des capteurs et modifient la dynamiquede ce système via des actionneurs. Par exemple, pour un contrôleur automatique devitesse, les entrées sont fournies par un capteur indiquant la vitesse instantanée du vé-hicule, et le programme doit calculer la puissance moteur nécessaire pour atteindre etmaintenir la vitesse désirée. Ce type de programmes est donc très particulier : son com-

portement dépend fortement de l’environnement extérieur avec lequel il interagit, et iln’est pas seulement nécessaire de s’assurer que le programme ne crée pas de bogues(division par zéro par exemple) : il est également nécessaire de vérifier que l’envi-ronnement physique se comporte comme attendu. Par exemple, nous voulons prouverque la vitesse du véhicule se stabilise à la vitesse désirée. Bien sûr, nous ne pouvonspas vérifier cela sur l’environnement physique exact du système (pour un avion, cetenvironnement serait l’atmosphère terrestre), nous choisissons donc un modèle de cetenvironnement sous forme d’équations différentielles et nous vérifions que ce modèlese comporte comme voulu. Nous n’étudions pas ici la pertinence du modèle par rap-

Page 3: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 3/37

Vérification de programmes de contrôle-commande 339

port au milieu physique, il existe clairement des différences mais leur étude dépassele cadre de cet article. Dans la suite, nous identifions donc l’environnement physiqued’un programme de contrôle-commande avec son modèle donné sous forme d’équa-tions différentielles, et nous essaierons de vérifier le bon comportement de ce modèle.Nous détaillons ces idées en section 2.2.

Lorsqu’on s’intéresse aux programmes de contrôle-commande embarqués, on voitdonc qu’il est nécessaire de considérer l’ensemble des interactions possibles entrele programme et son environnement. Ceci pose un problème majeur : le programmea une évolution discrète alors que l’environnement est régi par des lois physiquescontinues. Nous devons donc traiter des systèmes dits hybrides qui mélangent évolu-tion discrète et évolution continue. C’est cette réflexion qui a motivé mon travail de

thèse (Bouissou, 2008) dans laquelle nous étendons les analyses statiques classiquespour prendre en compte l’environnement physique avec lequel un programme em-barqué interagit. Cet article présente certains des résultats issus de cette thèse. Cesrésultats permettent à la fois de prouver de nouvelles propriétés sur les programmesde contrôle-commande et d’améliorer la précision (i.e. réduire le nombre de faussesalarmes) des analyses classiques. Comme souvent, la méthode que nous proposonsn’est pas complète, c’est-à-dire qu’elle ne permet de prouver des propriétés de sûretéque pour une classe restreinte de programmes. Nous détaillons maintenant les carac-téristiques principales des programmes que nous pouvons prendre en compte :

– le contrôle est binaire, c’est-à-dire que le programme ne peut modifier l’environ-nement continu que via des actions discrètes : ouvrir ou fermer une vanne par exemple.Les algorithmes de contrôle dits « bang-bang control » rentrent dans cette catégorie ;

– les capteurs et les actionneurs sont parfaits, c’est-à-dire que nous faisons l’hy-pothèse qu’il n’y a pas de délais d’écriture sur les actionneurs et pas de bruit de lecturesur les capteurs. Cette hypothèse nous permet d’avoir un modèle relativement simpledes interactions entre un programme et son environnement physique, et nous permetdonc de garder une complexité raisonnable pour le calcul des trajectoires de l’envi-ronnement continu ;

– nous ne considérons pas le contrôle stochastique. Les programmes que nousprenons en compte sont purement déterministes, l’extension de ces techniques à desmodèles mixant probabilisme (induit par le programme) et non-déterminisme (induitpar l’analyse) est en cours via le projet ANR CPP (Bouissou, Goubault et al., 2012).

Nous faisons à la section 4 une autre hypothèse sur les programmes de contrôle-commande que nous considérons, à savoir que leur comportement suit une boucle

« Lire-Calculer-Écrire » (voir section 2.2). Nous discuterons de cette hypothèse et desrestrictions qu’elle impose sur les programmes en début de section 4.

Pour illustrer nos propos, nous utilisons dans cet article un exemple de système decontrôle-commande bien connu de la communauté des systèmes hybrides : le systèmedes deux réservoirs (Henzinger et al., 2000). Nous donnons à la figure 1(a) une visionschématique de ce système, nous en donnons en section 3 une version plus formelle.Ce système est composé de deux réservoirs (R1 et R2) reliés par une canalisation

Page 4: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 4/37

340 TSI. Volume 31 – no 3/2012

[tb]

1

2

h2

h1

1

2

C 1

C 12

C 2

(a) Un schéma du système

V 1, V 2 ouvertes

h1 = i − k1√

h1 h2 = k1

√ h1 − k2

√ h2

V 2 fermée

h1 = i − k1√

h1 h2 = k1

√ h1

V 1 fermée

h1 = i h2 = −k2√

h2

V 1, V 2 fermées

h1 = i h2 = 0(b) Les équations correspondantes

Figure 1. Le système des deux réservoirs

(C 12) horizontale située à la base du réservoir R1. De l’eau entre dans le systèmepar une arrivée (C 1) constante dans le réservoir R1 et l’eau peut quitter le systèmepar une canalisation (C 2) située à la base du réservoir R2. Les canalisations C 12 etC 2 sont munies de vannes (V 1 et V 2, respectivement) permettant de laisser passer, ounon, l’eau dans les canalisations. L’évolution temporelle des hauteurs d’eau h1 et h2

dans les réservoirs R1 et R2, respectivement, est donnée (en fonction de l’état desvannes V 1 et V 2) par les équations différentielles de la figure 1(b) ; dans ces équations,i est le débit d’arrivée d’eau dans la canalisation C 1, k1 et k2 sont des coefficientsreprésentant la section des canalisations C 12 et C 2, respectivement.

Cet article est organisé comme suit. La section 2 formalise la théorie de l’interpré-tation abstraite et la notion de logiciel de contrôle-commande. Dans la section 3, nousdécrivons notre modèle pour décrire les programmes de contrôle-commande et don-nons, brièvement, un aperçu de leur sémantique. Puis, dans les sections 4 et 5 nous dé-crivons une technique d’analyse permettant de calculer des bornes sur les trajectoirescontinues pour ce type de programme. Les sections 6 et 7 présentent, respectivement,les travaux connexes et les conclusions.

Remarquons que pour plus de clarté, nous ne donnons pas dans cet article les

preuves des résultats, elles sont présentes dans la thèse (Bouissou, 2008).

2. Contexte

2.1. Vérification de programmes par interprétation abstraite

L’interprétation abstraite est une technique automatique permettant de prouverl’absence d’un certain type d’erreurs d’un programme P portant sur un ensemble

Page 5: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 5/37

Vérification de programmes de contrôle-commande 341

fini de variable V = x1, . . . , xn. Nous commençons par définir la sémantiqueconcrète (Winskel, 1993) de P : nous considérons un programme comme une fonctionP : RV → RV , où σ ∈ RV est un état associant à chaque variable sa valeur réelle.Cette fonction lie les valeurs des variables du programme avant et après son exécu-tion. Ainsi, étant donné un état initial du programme σ0 ∈ RV , le calcul de P (σ0)décrit l’évolution des variables du programme au cours de son exécution à partir deσ0. Grâce à P (σ0), on peut donc vérifier l’absence d’erreurs lors de cette exécu-tion. Dans le cas où les valeurs des variables d’entrée ne sont pas connues exactementmais uniquement déterminées par leur appartenance à un ensemble d’états possibleΣ0 ∈ P RV

, il faut calculer la fonction P sur chaque état σ0 ∈ Σ0. Pour cela,

nous définissons la fonction de sémantique collectrice P c : P RV → P RV

qui

calcule l’ensemble des valeurs possibles prises par les variables de P lors de toutesles exécutions possibles. On peut donc prouver l’absence d’erreurs sur un ensemblede valeurs initiales en calculant P c(Σ0) et en vérifiant qu’aucune des exécutions necomporte de bogues. Pour des programmes de taille industrielle, ce calcul est clai-rement impossible pour plusieurs raisons. Premièrement, l’ensemble Σ0 contient unnombre important d’états, donc la représentation en mémoire de Σ0 et P c(Σ0) estproblématique. Enfin, le calcul de P c(Σ0) nécessite le calcul d’un point fixe d’unefonction monotone (voir (Winskel, 1993) pour plus de détails). Ce point fixe se calculepar une itération de Kleene, qui peut ne terminer qu’après un nombre infini d’étapes.

Pour résoudre ces problèmes, la théorie de l’interprétation abstraite revient à cal-culer, à la place de P c(Σ0), une propriété abstraite sur cet ensemble. Cette propriétéest encodée par un domaine abstrait , et est calculée par la fonction de sémantiqueabstraite, notée

P a. Cette sémantique abstraite doit vérifier un critère de sûreté qui

peut s’exprimer ainsi : si l’état initial Σ0 vérifie la propriété s0, ce que nous notonsΣ0 ⊆ γ (s0), alors P c(Σ0) doit vérifier la propriété P a(s0), ce que nous notonsP c(Σ0) ⊆ γ

P a(s0)

. La notion de propriété est liée à la notion de domaine abs-

trait : un domaine abstrait définit un type de propriétés que nous pouvons prouver surun programme. Nous détaillons ce concept dans le paragraphe suivant. Pour propagerles propriétés, la fonction P a doit aussi calculer un point fixe : il est donc nécessairede rendre ce calcul fini en utilisant une technique d’accélération appelée widening,que nous détaillons ensuite.

Domaine abstrait. Un domaine abstrait Da est un treillis (Birkhoff, 1940), c’est-à-dire un ensemble ordonné muni du calcul du supremum et de l’infimum de deuxéléments 1. Un élément du treillis encode une propriété sur les états du programme. Par

exemple, si on considère le treillis des signes Ds = ⊥, +, −, et que le programmen’a qu’une variable x, alors l’élément + représente l’ensemble des états tels que x ≥0. On définit donc une fonction γ : Da → P RV

, dite fonction de concrétisation,

qui associe à chaque propriété l’ensemble des états qui la satisfont ; cette fonction γ

1. Nous imposons une structure de treillis pour avoir ces opérateurs de supremum et infimum binaires, carils apparaissent dans les équations des sémantiques concrètes et abstraites dès que le programme contientdes tests ou des boucles.

Page 6: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 6/37

342 TSI. Volume 31 – no 3/2012

doit être monotone. Ainsi, pour le domaine des signes et toujours pour un programmeà une variable x, on aura :

γ (⊥) = ∅; γ (−) = σ | σ(x) ≤ 0; γ (+) = σ | σ(x) ≥ 0; γ () = RV .

L’ordre sur le domaine abstrait (ici, par exemple, + ) doit être compatibleavec cette notion d’information : une propriété « plus grande » est vérifiée par unensemble plus grand d’états, ce qui justifie la monotonie imposée à γ . Les propriétésencodées par un domaine abstrait ne sont généralement pas des propriétés de sûreté.Par exemple, un domaine abstrait n’encode pas la propriété « il n’y a pas de divisionpar zéro », mais encode des propriétés sur les états du programme (toutes les variablessont strictement positives) qui permettent ensuite de prouver l’absence de bogues. Si

l’analyse n’est pas assez précise, la propriété numérique trouvée ne permet pas deconclure sur l’absence de bogues, on parle alors de fausses alarmes.

De nombreux domaines abstraits existent, notamment pour les propriétés numé-riques sur les variables du programme. Le domaine des intervalles (Cousot, Cousot,1977) calcule des bornes inférieures et supérieures sur les valeurs prises par chaquevariable du programme. D’autres domaines, dits relationnels, calculent des propriétésplus complexes faisant intervenir plusieurs variables du programme. Ainsi, le domainedes polyèdres (Cousot, Halbwachs, 1978) permet de trouver des inégalités linéairesentre les variables du programme, i.e. des relations du type

ni=1 αixi ≤ c, avec

αi ∈ R, c ∈ R et V = x1, . . . , xn. Pour une description complète des différentsdomaines numériques existants, nous invitons le lecteur à lire (Miné, 2004).

Calcul de la sémantique abstraite : widening. Une fois le domaine abstrait choisi, ilfaut donc définir la fonction de sémantique abstraite P a de telle sorte que, pour unélément abstrait s, on ait P c

γ (s)

⊆ γ P a(s)

. Autrement dit, si les entrées

du programme vérifient une propriété s avant l’exécution, alors toutes les sorties duprogramme doivent vérifier la propriété P a(s). Notons que ceci ne signifie pas queP a(s) est la plus petite propriété vérifiée par les variables du programme : on s’au-torise à sur-approximer le comportement exact du programme. Ainsi, si les propriétéscalculées P a(s) suffisent à prouver que le programme est sans bogue, on pourraconclure que les exécutions du programme P ne créent pas de ce type de bogues (parexemple, on a prouvé que toutes les variables du programme sont supérieures à 1, iln’y aura donc pas de division par zéro).

Pour calculer P a, il faudra, comme pour P c, calculer le point fixe d’une fonc-

tion monotone (opérant cette fois sur des valeurs abstraites). Le calcul de ce pointfixe par itération de Kleene peut ne pas terminer, si le domaine abstrait choisi permetd’avoir des chaînes croissantes infinies. Pour éviter ce phénomène, l’interprétationabstraite introduit la notion de widening (Cousot, Cousot, 1992b ; Monniaux, 2009) :le widening transforme une chaîne croissante infinie s0 s1 s2 . . . en unechaîne croissante finie s0 = t0 t1 t2 ·· · tn = tn+1. Par exemple, dans ledomaine des intervalles, le widening détecte si la borne supérieure d’une variable xaugmente dans la suite (sn) et dans ce cas change la borne supérieure en +∞. Ainsi,on force bien la terminaison du calcul : à l’étape suivante, la borne supérieure de x sera

Page 7: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 7/37

Vérification de programmes de contrôle-commande 343

égale à +∞ également. Malheureusement, cette technique ne garantit plus l’obtentionde la propriété minimale, c’est-à-dire du plus petit point fixe de P a : la valeur cal-culée tn est un post point fixe de P a et est plus grande que le plus petit point fixe.Le widening est souvent la source principale de fausses alarmes dans l’analyse sta-tique de programmes, car la sur-approximation introduite pour garantir la terminaisondu calcul est très forte. Des travaux récents visent à limiter ce problème en proposantde nouvelles méthodes d’accélération du calcul de point fixe (Gonnord, Halbwachs,2006; Schrammel, Jeannet, 2010 ; Bouissou, Seladji, Chapoutot, 2012).

2.2. Cas des logiciels de contrôle-commande

L’analyse des logiciels de contrôle-commande par interprétation abstraite est par-ticulièrement intéressante car ce sont souvent des logiciels critiques, c’est-à-dire dontune défaillance serait dangereuse. Il n’existe pas de définition formelle d’un logiciel decontrôle-commande, nous donnons ici une caractérisation du type de logiciel auquelnous nous intéressons. Un logiciel de contrôle-commande est un programme connectéà un environnement extérieur via des capteurs et des actionneurs et qui fonctionneselon la boucle « Lire-Calculer-Écrire » que l’on peut schématiquement représenterainsi :

Initialise ;tant que vrai faire

Lire entrées;Calculer état suivant;

Écrire sorties ;

L’instruction « Lire » récupère des nouvelles valeurs provenant des capteurs (parexemple la hauteur d’eau dans les réservoirs), l’étape « Calculer » décide de l’actionà effectuer (par exemple, ouvrir la vanne de R1) et l’étape « Écrire » utilise les ac-tionneurs pour effectuer cette action (la vanne est donc effectivement ouverte). Nousdétaillons en section 3 la sémantique précise de ces programmes et les liens existantentre ce modèle et les modèles classiques de représentation de systèmes hybrides (no-tamment les automates hybrides (Henzinger, 1996 ; Lygeros et al., 2003)).

Pour effectuer une analyse par interprétation abstraite d’un tel programme, il con-vient de sur-approximer les instructions « Lire » et « Écrire », l’étape « Calculer» pou-vant être analysée comme décrit précédemment. Classiquement, un analyseur statique

va « oublier » l’étape Écrire qui ne modifie pas les valeurs des variables du programme,et va sur-approximer l’instruction « Lire » en utilisant l’intervalle de valeurs que peutfournir le capteur (généralement donné par la spécification du capteur). Ainsi, on cal-cule bien une sur-approximation de l’ensemble des valeurs prises par les variablesdu programme. Cependant, on ne prend alors pas en compte la dynamique des gran-deurs physiques mesurées par le capteur. Or cette dynamique est souvent prise encompte par le programmeur de l’algorithme de contrôle et le programme est conçupour se comporter « normalement » si les entrées suivent cette dynamique. Pour ob-tenir des résultats précis, c’est-à-dire une sur-approximation la plus petite possible

Page 8: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 8/37

344 TSI. Volume 31 – no 3/2012

l1

L1

Evolution de h1 au cours du temps

l2

L2

Evolution de h2 au cours du temps

Figure 2. Simulation du système des deux réservoirs en Simulink

de l’ensemble des comportements du programme, il est donc nécessaire de prendreen compte la dynamique de l’environnement continu et les interactions entre le pro-gramme et l’environnement. Par exemple, pour le système des deux réservoirs, unesimulation réalisée en Simulink donne l’évolution de la figure 2 pour les hauteursd’eau dans chaque réservoir. Une analyse statique de ce système en ne regardant quele programme (et donc en oubliant les étapes Lire et Écrire) serait incapable de dé-

montrer que les hauteurs d’eau restent bornées : il faut savoir que si le programmedécide de fermer la vanne entre les deux réservoirs, la hauteur d’eau dans le réser-voir 1 remonte. L’objectif dans (Bouissou, 2008) était d’étendre les analyses statiquesclassiques pour prendre en compte les interactions entre le programme et son envi-ronnement continu. En particulier, on cherche à donner des garanties sur l’évolutiontemporelle des valeurs physiques : pour tout temps t, on donne des bornes possiblespour ces valeurs. Autrement dit, nous cherchons à calculer l’ensemble atteignable parles grandeurs d’un système physique contrôlées par un programme discret.

Dans la section 6, nous donnons les travaux fondateurs de la théorie des systèmeshybrides, dans laquelle s’inscrit ce travail. Cependant, il nous semble important dementionner maintenant la différence entre notre approche, dédiée aux logiciels em-barqués de contrôle-commande, et la théorie des automates hybrides. Nous l’avons

dit, nous considérons qu’un programme de contrôle-commande fonctionne selon uneboucle Lire-Calculer-Écrire. Nous faisons de plus l’hypothèse que le programme estsynchrone, c’est-à-dire que cette boucle s’exécute à une fréquence connue et que doncles actions Lire et Écrire ne s’exécutent qu’à des instants connus. Au contraire, l’exé-cution d’un automate hybride suit une boucle du type :

Initialise ;tant que vrai faire

Attendre l’évènement E ;Exécute la transition ;

Page 9: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 9/37

Vérification de programmes de contrôle-commande 345

L’exécution d’un système hybride est donc dirigée par les évènements alors qu’unprogramme de contrôle-commande est dirigé par le temps. C’est pour cela que nousavons décidé de développer un nouveau modèle et des techniques d’analyse ad hoc.

3. Un modèle pour les programmes de contrôle-commande

Dans cette section, nous présentons le langage de programmation H-SIMPLEqui est une extension hybride d’un langage impératif de base. Ce langage a été pensépour pouvoir encoder facilement un algorithme reposant sur la boucle « Lire-Calculer-Écrire » présentée en section 1. Il est cependant assez générique et les programmesH-SIMPLE peuvent avoir une forme différente. Lors de l’analyse cependant (voir les

sections 4 et 5), nous supposons que les programmes suivent la boucle « Lire-Calculer-Écrire ». Nous commençons par présenter la syntaxe du langage puis donnons sa sé-mantique. Une sémantique dénotationnelle a été définie dans l’article (Bouissou, Mar-tel, 2008), nous en donnons ici une version opérationnelle, plus simple.

3.1. Le modèle

Nous avons développé H-SIMPLE avec trois objectifs. Premièrement, nous vou-lions séparer clairement les variables discrètes et les variables continues, et faire appa-raître distinctement les capteurs et les actionneurs. Deuxièmement, nous voulions mo-déliser indépendemment le programme de contrôle et l’environnement continu. Enfin,nous souhaitions minimiser les modifications à apporter à un programme de contrôle-

commande existant. Ces trois objectifs sont nécessaires pour que ce modèle soit utilisépour la vérification de programmes de contrôle-commande industriels.

Notre modèle fait donc la différence entre les variables discrètes (appelées DVar)qui sont traditionnellement encodées en utilisant des nombres à virgule flottante, etles variables continues (appelées CVar) qui sont des nombres réels. Les variables dis-crètes sont manipulées par le programme, alors que l’évolution des variables continuesest régie par l’environnement continu. La communication entre ces deux types de va-riables se fait par l’intermédiaire de capteurs qui transforment une variable continueen une variable discrète (avec donc une conversion vers les nombres flottants) et d’ac-tionneurs qui modifient la dynamique des variables continues. Un actionneur ne peutpas modifier la valeur d’une variable continue : celle-ci représente en effet une gran-deur physique, son évolution doit toujours être continue. Nous n’autorisons donc que

des changements dans la dynamique de l’environnement, pas dans sa valeur. Pour ef-fectuer ces changements, nous introduisons des variables discrètes spéciales, appeléesvariables d’actions et notées AVar, qui représentent les actionneurs du système. Cesvariables sont partagées par le programme et l’environnement continu (ce sont desparamètres de la dynamique) ; activer un actionneur revient donc à modifier la valeurd’une de ces variables.

Il existe généralement deux types de contrôle : le contrôle binaire (ou contrôlebang-bang) où le programme choisit de façon binaire entre deux états possibles pour

Page 10: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 10/37

346 TSI. Volume 31 – no 3/2012

un actionneur, et le contrôle numérique où le programme modifie une grandeur numé-rique. Par exemple, les actionneurs qui servent à ouvrir et fermer les vannes du sys-tème des deux réservoirs (figure 1) effectuent du contrôle binaire : la vanne peut êtrefermée ou ouverte. En revanche, un contrôleur de vitesse dans une voiture va effec-tuer un contrôle numérique en modifiant l’intensité de l’accélération à chaque instant.Dans cet article, nous ne considérons que le cas du contrôle binaire, nous avons donnédans l’article (Bouissou et al., 2009) quelques pistes pour gérer le contrôle numérique.Dans le cas du contrôle binaire, les variables d’action seront donc encodées par unevaleur booléenne.

3.1.1. Partie discrète

Syntaxe du langage. La partie discrète de notre modèle est un programme dont lasyntaxe est donnée à la figure 3. Ce langage contient des instructions discrètes – lesaffectations, les tests ainsi qu’une boucle while – plus trois instructions hybrides(HStmt dans la figure 3) :

– sens.y?X où y ∈ CVar et X ∈ DVar. On modélise ici un capteur qui donne àX la valeur de y à l’instant où l’instruction est exécutée;

– act.b!c où c ∈ 0, 1 et b ∈ AVar. Cette instruction représente un actionneur :la dynamique continue sera changée en fonction de la valeur (0 ou 1) passée à b ;

– wait u où u ∈ R+. Cette instruction modélise la durée des autres instructionsdiscrètes : on suppose en effet que chaque instruction est instantanée et on ajouteexplicitement des instructions wait pour compenser le fait qu’elles ne l’étaient pas.

Modèle de la partie discrète. Un modèle de la partie discrète d’un système hybride(voir définition 1) est un programme écrit en H-SIMPLE , plus un ensemble de va-riables continues représentant les valeurs physiques mesurables et un ensemble devariables d’action représentant les actionneurs disponibles.

DÉFINITION 1 (Modèle de la partie discrète). — Un modèle ∆ pour la partie discrèteest un triplé (CV,BV,P ) tel que :

1. CV ⊆ CVar est un ensemble de variables continues ;

2. BV ⊆ AVar est un ensemble de variables booléennes ;

3. P est un programme suivant la syntaxe H-SIMPLE n’utilisant que des va-riables continues de C V pour les actions sens et que des variables de BV pour lesactions act.

EXEMPLE 2 (Problème des deux réservoirs.). — La partie discrète du problème desdeux réservoirs (c’est-à-dire le contrôleur) s’encode très simplement en H-SIMPLE

(figure 4). Le contrôleur dispose de deux capteurs qui mesurent les hauteurs d’eau h1

et h2 et les transforment en variables discrètes X 1 et X 2 (lignes 10 et 11). Puis, siles niveaux critiques ont été franchis, il actionne les vannes et déclenche une alarmeindiquant un problème critique dans le système. On a rajouté dans le programme dela figure 4 deux fonctions d’anticipation (anticipate_h1 et anticipate_h2,lignes 20 et 21) qui permettent de prédire la hauteur d’eau dans chacun des deux

Page 11: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 11/37

Vérification de programmes de contrôle-commande 347

f ∈ F X ∈ DVar

AExp : a ::= f | X | a + a | a − a | a × a | a/a

BExp : b ::= true | false | a = a | a ≤ a

Stmt : s ::= X := a | s; s |if b then s else s | while b do s |hs

u ∈ R+ X ∈ DVar y ∈ CVar b ∈ AVar c ∈ 0, 1

HStmt : hs ::= sens.y?X | act.b!c | wait u

Figure 3. Syntaxe du langage H-SIMPLE

réservoirs deux secondes dans le futur. On ne précise pas l’implémentation de cettefonction d’anticipation, on peut utiliser par exemple une extrapolation linéaire. Enutilisant les valeurs calculées, on peut alors contrôler plus finement les niveaux d’eauen anticipant sur le temps de fermeture des vannes. On va donc ouvrir (ou fermer)les vannes si la valeur prédite dépasse les seuils critiques (lignes 22 à 29). En fin deboucle, l’instruction wait permet de simuler la durée d’exécution des instructionsprécédentes (ici, 0,01 secondes). Le modèle discret pour ce système est donc ∆r =(CV,BV,P ) avec CV = h1, h2, BV = b1, b2 et P est le programme de lafigure 4.

Un des avantages du langage H-SIMPLE est qu’il réduit l’apparition d’effets Zé-non dus aux actions du processus discret. L’effet Zénon est un problème bien connu de

la communauté hybride (Heymann et al., 2005; Zhang et al., 2001) : dans certainessituations, un système hybride peut effectuer une infinité d’actions discrètes en untemps fini. Ceci est impossible dans une exécution réelle, et dans une certaine mesureimpossible dans notre modèle. En effet, l’instruction wait impose que le délai soitune valeur constante u ∈ R+. Comme les programmes sont de tailles finies, il existeun temps minimum τ > 0 tel que toutes les instructions wait augmentent le tempsd’au moins τ secondes. La seule possibilité d’avoir une exécution infinie est donc quecette exécution dure 0 seconde, et il est facile via une analyse de vivacité (en utilisantpar exemple des outils comme Terminator (Cook et al., 2006b ; 2007)) de montrer que

Page 12: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 12/37

348 TSI. Volume 31 – no 3/2012

1 / / Deux v a r i a b l e s c o n ti n u es : h1 e t h22 / / Deux v a r i a b l e s d ’ a c t i o n s : b1 e t b23 / / V a r ia b le s d i s c r e t e s : X1 , X2 ,4 / / h1_min , h1_max ,5 / / h2_min , h2_max ,6 / / X 1 _ i n _ 2 _ s e c s ,7 / / X 2 _ i n _ 2 _ s e c s8 i n t m ai n ( ) 9 w h i l e ( t r u e )

10 s en s . h1 ?X1 ;11 s en s . h2 ?X2 ;12 i f (X1>h1_max)13 a ct . b1 ! 0 ; t h r ow ( a l a r m ) ;14 i f (X2>h2_max)15 a ct . b2 ! 0 ; t h r ow ( a l a r m ) ;16 i f (X1<h1_min )17 a ct . b1 ! 1 ; t h r ow ( a l a r m ) ;18 i f (X2<h2_min )19 a ct . b2 ! 1 ; t h r ow ( a l a r m ) ;20 X 1_i n_2 _s ec s = a n t i c i pa t e _ h 1 ( X1 , X2 ) ;21 X 2_i n_2 _s ec s = a n t i c i pa t e _ h 2 ( X1 , X2 ) ;22 i f ( X1_in _2_se cs >h1_max)23 a c t . b1 ! 0 ;24 i f ( X2_in _2_se cs >h2_max)

25 a c t . b2 ! 0 ;26 i f ( X1_ in_ 2_s ecs <h1_min )27 a c t . b1 ! 1 ;28 i f ( X2_ in_ 2_s ecs <h2_min )29 a c t . b2 ! 1 ;30 w a i t ( 0 . 0 1 ) ; / / d e l a i31 32

Figure 4. Encodage du système des deux réservoirs en H-SIMPLE

toute exécution infinie contient un nombre infini d’instructions wait : dans ce cas, ilne pourra pas y avoir d’effet Zénon.

3.1.2. Partie continue

La partie continue des systèmes hybrides que nous considérons est formée de va-riables évoluant continûment dans le temps et qui représentent les grandeurs phy-siques avec lesquelles le programme interagit. L’évolution de ces grandeurs physiquesest donnée par une équation différentielle ordinaire (EDO), c’est-à-dire une relation

Page 13: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 13/37

Vérification de programmes de contrôle-commande 349

entre une fonction y : D → Rn définie sur un ouvert D et sa dérivée temporelley : D → R

n, donnée par :y(t) = F (y(t), t) . (1)

Par convention, nous notons souvent l’EDO y = F (y, t) et y = F (y) dans le casdune EDO autonome.

Supposons qu’un programme dispose de m variables d’actions b1, . . . , bm ∈ AVar.Nous noterons b ∈ Bm le vecteur de booléens tel que ∀i ∈ [1, m], bi = bi. Alors bpeut prendre 2m valeurs différentes et chacune de ces valeurs représente une configu-ration du système. Par exemple, pour le système des deux réservoirs, on a m = 2 et ily a 4 configurations possibles : V 1, V 2 ouvertes, V 1 ouverte et V 2 fermée, V 2 ouverte

et V 1 fermée, et enfin V 1, V 2 fermées. Le modèle de l’environnement continu asso-ciera donc à chaque valeur de b une équation différentielle représentant l’évolutiondes variables continues dans cette configuration.

DÉFINITION 3 (Modèle du milieu continu). — Un modèle κ pour le milieu continuest un quadruplé κ =

CV,BV, F kk∈Bm

tel que :

1. CV ⊆ CVar est un ensemble de variables continues ;

2. BV = b1, . . . , bm ⊆ AVar est un ensemble de variables d’actions ;

3. ∀k ∈ Bm , F k : R|CV | → R|CV | est continue et Lipschitz par morceaux.

Nous imposons que les fonctions définissant les équations différentielles soient conti-nues et Lipschitz par morceaux pour s’assurer de l’existence et unicité de leur solution.

EXEMPLE 4 (Problème des deux réservoirs). — Le problème des deux réser-voirs possède quatre modes continus correspondant aux cas où les vannes 1 et 2sont ouvertes et/ou fermées. Un modèle continu pour ce système sera donc κr =h1, h2, b1, b2, F 0,0, F 1,0, F 0,1, F 1,1

où F 0,0 représente le cas où les deux

vannes sont ouvertes, F 1,0 le cas où la vanne 1 est fermée, F 0,1 le cas où la vanne2 est fermée et F 1,1 le cas où les deux vannes sont fermées.

3.1.3. Modèle hybride

Dans notre formalisme, un système hybride sera donc un couple (∆, κ) tel que ∆est un modèle de la partie discrète et κ un modèle de la partie continue et tel que ∆ etκ partagent les mêmes variables continues et les mêmes actionneurs.

DÉFINITION 5 (Modèle du système hybride). — Un modèle Ω pour le système hy-bride est un couple Ω = (∆, κ) tel que :

– ∆ =

CV 1, BV 1, P

est un modèle de la partie discrète ;

– κ =

CV 2, BV 2, F kk∈B|BV 2|

est un modèle de la partie continue ;

– CV 1 ⊆ C V 2 et BV 1 ⊆ BV 2.

La dernière condition permet de s’assurer que le programme et le milieu continu sont compatibles, c’est-à-dire que les variables sur lesquelles le programme peut agir (viaune instruction sens ou act) sont bien des variables contrôlées par le milieu continu.

Page 14: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 14/37

350 TSI. Volume 31 – no 3/2012

Dans ce modèle, le programme et son environnement sont deux processus s’exé-cutant en parallèle et communiquant via des capteurs et des actionneurs qui servent decanaux de communication. Ces canaux sont fixes et connus : cette communication estdonc proche du modèle proposé par les Communicating Sequential Processes (Hoare,1985), c’est pourquoi nous utilisons la même syntaxe que les instructions CSP : le« ? » modélise la réception de valeur, le « ! » l’envoi de message.

Remarquons que ce modèle est conforme aux une modélisation de la partie discrètene demande que quelques objectifs que nous nous étions fixés. En effet, ajouts auxprogrammes existants, les actions des capteurs et des actionneurs sont explicites, lacommunication entre les parties discrètes et continues se fait par envoi de messages etenfin les sous-systèmes discrets et continus peuvent être modélisés séparément, dans

des formalismes différents. La figure 5 donne une vision schématique des interactionsentre le milieu continu et le programme discret dans notre modèle. La partie discrèteest un programme écrit en H-SIMPLE qui calcule, en fonction de son état interne etdes entrées provenant des capteurs, un résultat envoyé aux actionneurs. Ce résultat,noté cmd sur la figure 5, équivaut à choisir, parmi tous les modes disponibles, celuicorrespondant à l’actionneur à activer. Le milieu continu peut être vu comme une EDOà commutateur représentée par le bloc en haut du schéma. L’entrée de ce bloc est unecommande venant des actionneurs, et la sortie est la valeur courante y de la solutionde l’EDO. Cette valeur est transmise au capteur qui la transforme en le nombre flottantle plus proche, c’est-à-dire y.

3.2. Sémantique opérationnelle du modèle

L’exécution d’un système hybride (∆, κ) est une succession de transitions dis-crètes, instantanées, modifiant les variables discrètes du programme, et des transitionscontinues, modifiant la valeur des variables de l’environnement continu. L’état d’unsystème hybride (voir définition 6) est donc caractérisé par la valeur de chaque va-riable discrète, de chaque variable continu, des variables d’action ainsi que du temps.Nous définissons un état discret comme une fonction associant à une variable dis-crète un nombre à virgule flottante, et notons Σd l’ensemble des états discrets : Σd =DVar → F. De même, un état continu associe à chaque variable continue une valeurréelle et Σc = CVar → R est l’ensemble des états continus. Enfin, la configuration desactionneurs est donnée par une fonction associant à chaque variable d’action une va-

leur booléenne. Nous notons Σb = AVar → B l’ensemble de ces configurations. Pourchaque état σ et variable v, nous notons σ(v) la valeur de v dans l’état σ et σ[v → r]l’état σ tel que σ(v) = r et pour toute autre variable v, σ(v) = σ(v). Étant donnéun état continu σc ∈ Σc, nous notons σc(y) ∈ R|CVar| le vecteur contenant toutes lesvaleurs associées aux variables continues.

DÉFINITION 6 (État d’un système hybride). — Soit Ω = (∆, κ) un système hybride. L’état du système est un quadruplé σ = (σd, σc, σb, t) tel que σd ∈ Σd , σc ∈ Σc ,σb ∈ Σb et t ∈ R+ représente le temps.

Page 15: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 15/37

Vérification de programmes de contrôle-commande 351

Modele continu

F 1

F 2

· · ·

F n1

s

y

y

y

Capteurs

Programme discret

Etat

interne

y

Actionneurs

cmd

Figure 5. Fonctionnement d’un programme embarqué

Les états discrets ainsi que les configurations des actionneurs seront modifiées parle programme via un système de transition classique, que nous définissons dans lasuite. Par contre, l’état continu est modifié par les équations différentielles qui défi-nissent la dynamique du milieu continu. Soit une EDO de dimension n, y = F (y),où la fonction F : R|CVar| → R|CVar| est continue et Lipschitz par morceaux, et soitσc ∈ Σc un état continu donnant la valeur des variables y. La fonction d’avancementdu temps (souvent appelée time elapse dans la littérature de systèmes hybrides) est lafonction F : Σc ×R+ → Σc définie par :

∀σc ∈ Σc, ∀t ∈ R+, F (σc, t) = y∞(t)

où y∞ est l’unique solution du problème de Cauchy y = F (y), y(0) = σc( y) 2.

Nous définissons maintenant la sémantique opérationnelle de ces systèmes hy-brides comme un système de transition κ stmt, σ → stmt, σ, qui signifieque sous l’effet de l’environnement κ, l’instruction stmt est exécutée dans l’état σet se transforme en l’instruction stmt dans l’état σ. La figure 6 donne les règlesde la sémantique opérationnelle. Nous ne donnons pas les règles pour les instruc-tions discrètes (Stmt à la figure 3) car ce sont les mêmes que pour n’importe quel

2. Nous utilisons ici implicitement l’isomorphisme entre Σc = CVar → R et R|CVar| et considéronsy∞(t) ∈ R

|CVar| comme un élément de Σc.

Page 16: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 16/37

352 TSI. Volume 31 – no 3/2012

σ = σd[X →↑

σc(y)

]

κ sens.y?X ; stmt, (σd, σc, σb, t) → stmt, (σ, σc, σb, t) CAPTEUR

σb = σb[bi → b]

κ act.bi!b; stmt, (σd, σc, σb, t) → stmt, (σd, σc, σb, t) ACTIONNEUR

κ =

V,B, F k , (y0, k0)

b = (σb(b1), . . . , σb(bn)) σc =F b

(σc, u)

κ wait u; stmt, (σd, σc, σb, t) u−→ stmt, (σd, σc, σb, t + u) DÉLAI

stmt, σd →d stmt, σdκ stmt, (σd, σc, σb, t) → stmt, (σ

d, σc, σb, r) DISCRET

Figure 6. Règles d’inférence de la sémantique opérationnelle de H-SIMPLE

langage impératif. Nous supposons disposer d’une règle de transition stmt, σd →d

stmt, σd qui modifie un état discret par une instruction discrète (voir par exemple

le livre (Winskel, 1993) pour une définition de la transition →d). Nous ajoutons troisrègles qui correspondent aux trois instructions hybrides. Les règles CAPTEUR et AC-TIONNEUR sont très simples : elles mettent à jour l’état discret et la configurationdes actionneurs, respectivement. Dans la règle CAPTEUR, la valeur réelle σc(y) esttransformée en une valeur flottante par la fonction de conversion ↑ : cette fonctionest fournie par la norme IEEE-754 de l’arithmétique flottante. La règle DÉLAI corres-pondant à l’instruction wait u est plus compliquée : elle fait avancer le temps tout enmodifiant l’état continu pour que celui-ci contienne à tout instant la solution de l’équa-tion différentielle choisie par l’état des actionneurs. Il faut donc d’abord sélectionnerl’équation différentielle représentant une configuration des actionneurs : on construitle vecteur de booléens b = (σb(b1), . . . , σb(bm)), les variables continues évoluentdonc selon l’équation différentielle F b. On applique alors la fonction d’avancementdans le temps pour calculer le nouvel état continu.

Les règles de la figure 6 permettent de définir une sémantique opérationnelle àpetit pas de H-SIMPLE, notons que nous distinguons la transition induite par la règleDÉLAI des autres transitions en la notant

u

−→. C’est la seule transition qui n’est pas

instantanée (elle modifie le temps dans l’état du système hybride) et sera importanteultérieurement. Dans la suite, le modèle continu utilisé sera implicite : nous notonsstmt, σ → stmt, σ pour κ stmt, σ → stmt, σ .

Notons ⇒ la clôture de la transition →: pour tout σ, σ ∈ Σ, on a stmt, σ ⇒stmt, σ si et seulement si il existe une suite d’états σ1, . . . , σn et d’instructionsstmt1, . . . , s t m tn telle que :

stmt, σ → stmt1, σ1 → stmt2, σ2 · · · → stmtn, σn → stmt, σ

Page 17: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 17/37

Vérification de programmes de contrôle-commande 353

Une exécution d’un programme P dans un environnement continu κ est une suite detransitions « à grand pas» ⇒ et de transitions continues

u−→. Formellement, l’exécutionde P à partir d’un état initial σ0 est une suite d’états et d’instructions telle que :

P, σ0 ⇒ stmt0, σ0 u1−→ stmt1, σ1 ⇒ stmt1, σ

1 u2−→ stmt2, σ2 ⇒ . . .

Notons qu’il existe une différence majeure entre la transition ⇒ qui ne modifie nile temps ni les variables continues et la transition

u−→ qui ne modifie pas les variablesdiscrètes. Ceci est formalisé dans la proposition 7.

PROPOSITION 7 . — Soit une exécution σ0 ⇒ σ 0

u1−→ σ1 ⇒ σ 1

u2−→ σ2 ⇒ . . . d’un programme P . Alors, pour tout i

∈ N , on a :

– σi(t) = σi(t) et σi(y) = σ

i(y)

– ∀v ∈ DVar ∪ AVar , σi(v) = σi+1(v).

4. Génération d’invariants pour une classe de programmes

de contrôle-commande

Nous essayons maintenant de définir une méthode d’analyse des systèmes hybridesprésentés en section 3. Notre but n’est pas de prouver l’absence d’erreurs à l’exécutionsur le programme mais de prouver des propriétés concernant l’évolution temporelle del’environnement continu interagissant avec le programme : une propriété intéressante,par exemple, est de montrer qu’une région de l’espace n’est pas atteignable. Pour prou-

ver ce type de propriétés, il faut vérifier que dans toutes les exécutions possibles dusystème hybride, l’état continu ne rentre jamais dans la région interdite. En raison d’in-certitudes portant sur l’état initial du programme, l’ensemble de toutes les exécutionsn’est pas calculable : nous calculerons donc une sur-approximation des trajectoirescontinues. Notre analyse cherche ainsi à calculer des invariants sur les trajectoires del’environnement continu d’un système hybride. Dans la section 4.2, nous définissonsformellement la notion d’invariants pour la trajectoire temporelle, puis définissons ensection 4.4 un algorithme permettant d’abstraire le programme en un ensemble degraphes, appelé k-tree 3, permettant de calculer ces invariants. L’algorithme de cal-cul des invariants à proprement parler est décrit dans la section 5. La méthode quenous présentons ici est conçue pour fonctionner sur une certaine classe de systèmesde contrôle-commande. Nous commençons par définir cette classe en section 4.1 etdiscutons de sa généralité.

Notations. Dans cette section, nous notons IR le treillis des intervalles fermées sur R.Un état continu abstrait sera donc une fonction des variables continues CVar vers IR,et nous noterons Σc l’ensemble des états continus abstraits. Pour tout σc ∈ Σc, nousnoterons σc( y) ∈ IR

n l’hyper-rectangle contenant les valeurs abstraites de chaquevariable. Pour tout état concret σc ∈ Σc, nous noterons σc ∈ σc si pour toute variable

3. Le terme k-tree est une généralisation des quadtree (Finkel, Bentley, 1974), structure de données trèsemployée pour la représentation d’images.

Page 18: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 18/37

354 TSI. Volume 31 – no 3/2012

continue v ∈ CVar, σc(v) ∈ σc(v). De même, B⊥ représentera le treillis complet desvaleurs booléennes, B⊥ = ⊥, 0, 1, est muni de l’ordre défini par :

⊥ 0, ⊥ 1, 0 , 1 .

L’élément 0 représente la valeur « faux », 1 représente la valeur « vrai ». Nous dé-finissons alors les configurations abstraites pour les actionneurs par les fonctions desvariables d’action AVar dans B⊥ : Σb = AVar → B⊥. Par abus de notation, nous no-terons σb ∈ σb pour signaler qu’une configuration σb ∈ Σb est dans la concrétisationde la configuration abstraite σb ∈ Σb.

4.1. Hypothèses simplificatrices

Nous supposons disposer de programmes de contrôle-commande qui suivent laboucle « Lire-Calculer-Écrire » décrite dans la section 2.2. Autrement dit, les systèmeshybrides que nous considérons sont donnés par (∆, κ) tels que ∆ = (P,CV,AV ), etP est un programme écrit en H-SIMPLE et qui vérifie les hypothèses suivantes 4.

H1 : Capteurs et actionneurs parfaits. Nous supposons que les capteurs et les ac-tionneurs fonctionnent tous à la même fréquence, et qu’il n’y a pas de bruit de lecturesur les capteurs ni d’écriture sur les actionneurs.

H2 : Structure du programme. Nous supposons que P peut s’écrire comme P =while 1 doP l; P c; P e; wait h, où P l est une succession d’instructions sens, P eest une succession de tests if et d’instructions act , et P c ne contient pas d’instruc-tions hybrides. Nous faisons donc l’hypothèse que tous les capteurs mesurent simul-tanément une valeur et que tous les actionneurs écrivent simultanément leur contenu.Ces actions sont instantanées, et l’instruction wait en fin de boucle permet de faireavancer le temps : nous faisons donc l’hypothèse d’un fonctionnement synchrone duprogramme. Notons que nous pourrions relâcher un peu cette hypothèse en supposantque P s’écrit P = while 1 do P l; wait u1; P c; wait u2; P e; wait u3. Cela nemodifierait pas fondamentalement notre méthode, il faudrait juste modifier la défini-tion de la fonction φ dans la section 4.4.

Étant donné ces deux hypothèses, l’exécution du programme P est alors une suite

d’états σ0 ⇒ σ0

h−→ σ1 ⇒ σ1

h−→ . . . où la transition ⇒ représente l’exécution de

P l, P c et P e et h−→ est l’exécution de l’instruction wait. Notons P : Σ → Σ la

fonction telle que pour tout état σ ∈ Σ, σ ⇒ P (σ). Cette fonction ne modifie pas

l’état continu du système car il n’y a pas d’instructions wait dans P l, P c et P e, on adonc, si σ = (σd, σc, σb, t), P (σ) = (σd, σc, σ

b, t) avec σ d ∈ Σd et σ

b ∈ Σb. Ladernière hypothèse que nous faisons porte sur cette fonction P .

H3 : Programmes invariants dans le temps. Nous supposerons que l’algorithmede contrôle-commande ne dépend que des dernières valeurs lues par les capteurs : la

4. Nous n’imposons pas d’hypothèses sur l’environnement continu κ autre que celle donnée en sec-tion 3.1.2, à savoir que les équations différentielles sont continues et Lipschitz par morceaux.

Page 19: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 19/37

Vérification de programmes de contrôle-commande 355

fonction P ne doit pas dépendre d’une mémoire interne. Ainsi, pour tout σ1d, σ2

d ∈Σd et t1, t2 ∈ R, on a : ∀σc ∈ Σc, σb ∈ Σb,

si P (σ1d, σc, σb, t1) = (σ1

d

, σc, σ

b, t1), alors P (σ2d, σc, σb, t2) = (σ2

d

, σc, σ

b, t2).

Autrement dit, si le programme lit deux fois les mêmes valeurs continues sur sescapteurs, alors il activera les mêmes actionneurs à chaque fois, quelles que soient lesvaleurs des variables discrètes avant la lecture par les capteurs. Nous dirons d’un telprogramme qu’il est invariant dans le temps.

Ces hypothèses sont relativement restrictives mais permettent une analyse efficaceet précise des programmes les vérifiant. L’hypothèse H1 est très souvent faite pour

l’analyse de systèmes hybrides, le bruit de mesure ou les erreurs d’écriture sur les ac-tionneurs étant la plupart du temps négligés. Nous pensons pouvoir ajouter à l’analyseactuelle de l’information quant à ce bruit : les techniques présentées ici parlent ducomportement idéal du système, les déviations à ce comportement peuvent être intro-duites grâce à des techniques proches de celles utilisées pour l’analyse de la précisiondes calculs en nombres à virgule flottante (Putot et al., 2003 ; Goubault, Putot, 2006).L’hypothèse H2 est elle souvent vérifiée par les programmes de contrôle-commandeembarqués critiques, qui sont généralement générés à partir d’un modèle synchrone(développé en SCADE par exemple) et qui suivent donc la boucle « Lire-Calculer-Écrire ». Enfin, l’hypothèse H3 est la plus restrictive car elle interdit des programmesqui commencent par filtrer les données lues sur les capteurs avant de les traiter. Cesfiltres utilisent souvent les n dernières valeurs lues pour lisser le signal. Nous pensonsque notre technique peut être étendue pour traiter le cas où l’activation d’un action-

neur dépend des n dernières valeurs lues, avec n fini. Nous discutons cela dans laconclusion.

EXEMPLE 8. — Le programme

P ::= while 1 do(sens.y?X ; if y > 1 then act.b0!0; else act.b0!1;)

est invariant dans le temps. En revanche, le programme

P ::= while 1 do(sens.y?X ; z = z + y; if z > 1 then act.0!0; else act.0!1;)

ne l’est pas car l’exécution d’un actionneur dépend de toutes les valeurs reçues depuisle début du programme.

4.2. Trajectoire continue, invariants de trajectoire

Soit Ω un système hybride vérifiant les hypothèses H1, H2 et H3, et soit h le délai

imposé par l’instruction wait entre deux tours de la boucle. Soit σ0 ⇒ σ 0

h−→ σ1 ⇒σ1

h−→ . . . les états du système lors d’une exécution (tels que définis à la section 3).D’après les hypothèses H1 et H2, nous avons ∀i ∈ N, σ

i(t) = σi(t) ∧ σi+1(t) =σi(t) + h. On a donc notamment σi(t) = i · h.

Page 20: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 20/37

356 TSI. Volume 31 – no 3/2012

DÉFINITION 9 (Trajectoire continue.). — La trajectoire continue de Ω le long de cetteexécution est la suite (σi

c, σib) telle que σi

c ∈ Σc et σib ∈ Σb , et σi = (σi

d, σic, σi

b, i · h). Autrement dit, une trajectoire continue est la projection sur Σc × Σb d’une exécutiondu système hybride.

Du point de vue de l’environnement continu, la seule action que prend le pro-gramme est de changer la configuration σb des actionneurs en fonction des valeurs desvariables continues (via la lecture par les capteurs). Nous définissons donc la fonctionP : Σc × Σb → Σb qui, étant donné une valeur pour les variables continues calculela nouvelle configuration des actionneurs après exécution de la transition ⇒. D’aprèsl’hypothèse H3, la fonction P peut être définie comme

P (σc, σb) = σb ⇔ P (σ

0d, σc, σb, 0) = (σ

d, σc, σ

b, 0),

où σ0d associe à chaque variable discrète la valeur 0. En effet, l’hypothèse H3 stipule

que le résultat de P (σd, σc, σb, t) est le même quel que soit σd ∈ Σd et t ∈ R. Nouschoisissons donc t = 0 et σd = σ0 pour calculer P (σd, σc, σb, t).

La définition d’une trajectoire continue est simplifiée grâce à la fonction P . Ona en effet :

∀i ∈ N,

σi+1b = P (σi

c, σib)

σi+1c =F

σi+1b

(σic, h)

Malheureusement, la fonction P n’est souvent pas calculable, donc la trajectoirecontinue d’un système hybride n’est pas calculable. En suivant la méthodologie del’interprétation abstraite, nous allons calculer une trajectoire abstraite, que nous ap-

pellerons invariant de trajectoire.DÉFINITION 10 (Invariant de trajectoire). — Soit Ω un système hybride. Nous dirons

qu’une suite d’états abstraits (σcn, σb

n) ∈ Σc ×Σd

Nest un invariant de trajec-

toire de Ω si et seulement si, pour toute trajectoire continue (σnc , σn

b ) de Ω on a :∀i ∈ N, σi

c ∈ σci et σi

b ∈ σbi.

Clairement, un invariant étant une suite infinie d’états continus abstraits, nous cher-cherons en priorité à calculer des invariants sous la forme de suite périodique pour enavoir une représentation finie.

Le calcul d’une trajectoire abstraite suit le calcul des trajectoires concrètes : nousallons définir des fonctions P a et

F qui seront des abstractions (au sens de l’in-terprétation abstraite, voir section 2.1) des fonction P et

F . On aura alors :

∀i ∈ N,

σb

i+1 = P a(σci,σb

i)

σci+1 =

F σb

i+1(σc

i, h)

Dans la suite de cette section, nous expliquons comment définir la fonction P a,puis à la section 5 nous décrivons comment définir

F et comment calculer (σci, σb

i)pour tout i ∈ N. Intuitivement, la fonction P va modifier la configuration d’un ac-tionneur en fonction des valeurs lues par les capteurs : à chaque instant, l’actionneur bi

Page 21: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 21/37

Vérification de programmes de contrôle-commande 357

sera modifié si une instruction act.bi!c est exécutée par le programme. Nous pouvonsdonc voir P comme une fonction booléenne qui décide, pour chaque instruction detype act, si elle va être exécutée. La construction de la fonction abstraite P a vientde cette constatation.

4.3. Abstraction des fonctions booléennes

Dans cette section, nous définissons un algorithme d’abstraction des fonctionsréelles à valeur dans B = 0, 1 par une représentation sous forme de k-tree. Soitdonc φ : D → B une fonction booléenne 5 définie sur un hyper-rectangle D ∈ IR

n.Nous définissons d’abord notre notion d’abstraction de φ sous forme d’un k-tree puis

nous donnons l’algorithme permettant de calculer ce k-tree.

4.3.1. Représentation d’une fonction booléenne

Nous allons abstraire une fonction booléenne par sa représentation spatiale, c’est-à-dire un recouvrement de son domaine de définition en un ensemble de rectangles telque la fonction est constante sur chaque rectangle. Rappelons qu’un recouvrementd’un hyper-rectangle b ∈ IR

n est un ensemble I (b) =

b1, . . . , bm

d’élémentsde IR

n tels que b = ∪mi=1bi. Nous représenterons les recouvrements sous la forme

d’arbres réguliers appelés k-tree.

DÉFINITION 11 (k-trees). — Un k-tree de dimension n est un graphe dirigé, acy-clique, ayant une racine unique et deux types de nœuds :

– les nœuds non terminaux de la forme N (b) , avec b ∈ IRn;

– les nœud terminaux de la forme V (v) avec v ∈ 0, 1, ;

et tel que pour tout b ∈ IRn , le nœud N (b) a soit un nœud fils de la forme V (v) soit mnœuds fils non terminaux N 1(b1), N 2(b2), . . . , N m(bm) tels que bi : i ∈ [1, m]est un recouvrement de b. La racine d’un k-tree T doit être un nœud non terminal, et on dira que T est de domaine b , noté dom(T ) = b , si son nœud racine est N (b).

EXEMPLE 12. — La figure 7 montre un k-tree de dimension 2 et de profondeur 3. Lesnœuds N (resp. V ) sont représentés par des rectangles (resp. cercles).

Intuitivement, un k-tree T est la représentation de toutes les fonctions booléennesf telles que, si T possède un nœud N (b) avec un seul nœud fils V (v), alors f vérifie

f (x) v pour tout x ∈ b. L’ordre est ici l’ordre sur le treillis abstrait B⊥ : siv ∈ 0, 1, on devra alors avoir f (x) = v, et si v = top, alors la valeur de f (x)est inconnue. Pour tout k-tree T de domaine D ∈ IR

n, et pour tout x ∈ D, onnote V (x) =

v | ∃N (b) ∈ T, x ∈ b et N (b) a un seul fils V (v)

l’ensemble des

5. Notons que nous n’imposons aucune hypothèse de régularité à φ pour que cette abstraction existe. Dansla suite, φ sera la sémantique d’un programme qui est clairement non continue en présence de tests parexemple.

Page 22: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 22/37

358 TSI. Volume 31 – no 3/2012

[0, 10]× [0, 10]

[0, 5]× [0, 5]

1

[0, 5]× [5, 10]

0

[5, 10]× [0, 5]

[5, 7.5]× [0, 2.5]

[5, 7.5]× [2.5, 5]

0

[7.5, 10]× [0, 2.5]

1

[7.5, 10]× [2.5, 5]

[5, 10]× [5, 10]

0

Figure 7. Exemple d’un k-tree de dimension 2 et de profondeur 3

feuilles de T dont le domaine contient x. On note aussi T (x) =

v∈V (x) v la valeurassociée à x dans le k-tree T .

Ainsi, si T est le k-tree de la figure 7, on a : T

(3, 1.5)

= 1 et T

(6, 1.2)

= .

DÉFINITION 13 (Représentation d’une fonction booléenne). — Soit D ∈ IRn et

f : D → B une fonction booléenne. On dira qu’un k-tree T de dimension n est unereprésentation de f si et seulement si ∀x ∈ D, f (x) T (x).

Clairement, il n’existe pas une unique représentation pour un fonction booléennef . En particulier, si on note dom(f ) ⊆ Rn le domaine de définition de f , alors lek-tree N

dom(f )

−V (

), i.e. le k-tree avec un nœud racine et un nœud terminal

valant , est toujours une représentation de f . Pour distinguer deux représentationsdifférentes d’une même fonction f , nous introduisons une relation de pré-ordre surl’ensemble des k-trees qui est compatible avec la notion naturelle de précision dela représentation : on dira qu’une représentation est plus précise qu’une autre si ellerenvoie moins souvent la valeur .

DÉFINITION 14 (Précision de la représentation : préordre sur les graphes). — Soit T et T deux k-trees avec dom(T ) = dom(T ) = D. On dira que T est plus précis queT si et seulement si ∀x ∈ D, T (x) T (x). On notera alors T T . La relation est un pré-ordre sur l’ensemble des k-trees de même domaine.

EXEMPLE 15. — Le k-tree de la figure 7 est plus précis que le k-tree suivant :

[0, 10]× [0,10]

[0, 5]× [0,5]

1

[0, 5]× [5, 10]

[5,10]× [0,5]

[5,10]× [5, 10]

0

REMARQUE 16. — Le pré-ordre n’est pas un ordre partiel car nous n’avons pasdéfini de forme normale sur les k-trees. Cette forme normale est facile à définir :

Page 23: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 23/37

Vérification de programmes de contrôle-commande 359

entre deux k-trees T et T vérifiant T T et T T , il suffit par exemple deprendre celui de profondeur minimale. Le pré-ordre devient alors un ordre partiel.Nous ne détaillons pas le mécanisme de normalisation des k-tree, mais dans notreimplémentation, nous calculons toujours les formes normales.

4.3.2. Algorithme d’abstraction d’une fonction booléenne

Nous montrons maintenant comment on peut construire un k-tree qui soit unereprésentation d’une fonction booléenne φ : D → B, avec D ∈ IR

n. Pour cela,nous utiliserons la fonction d’inclusion, ou fonction abstraite, pour φ, c’est-à-dire unefonction [φ] : IR

n → B⊥ telle que :

∀b ∈ IRn

, α φ(x) : x ∈ b [φ](b) (2)

où α : P (B) :→ B⊥ est l’abstraction classique des ensembles de valeurs booléennesvers le treillis abstrait B⊥ et est l’ordre partiel sur B⊥.

EXEMPLE 17. — Soit φ : R2 → B la fonction définie par : ∀x, y ∈ R2, φ(x, y) = 1si x = y , φ(x, y) = 0 sinon. La fonction [φ] : IR

2 → B⊥ définie par [φ]([x] , [y]) = 0si [x] ∩ [y] = ∅ et φ([x] , [y]) = sinon, est une fonction d’inclusion pour φ.

Nous n’expliquons pas comment obtenir cette fonction d’inclusion pour toute fonctionφ : Rn → B. Intuitivement, les calculs numériques effectués dans φ seront traduits enleurs équivalents sur le domaine des intervalles, et les tests seront sur-approximés. Àl’aide d’une fonction d’inclusion [φ] pour une fonction φ : D → B avec D ⊆ R

n, onpeut construire un k-tree représentant φ.

DÉFINITION 18 (Calcul de la représentation d’une fonction booléenne). — Soit n ∈ N et D ∈ IR

n un domaine borné. Soit une fonction φ : D → B et soit [φ] : IR

n → B⊥ une fonction d’inclusion pour φ. Soit N max ∈ N une profondeur maximale. On définit alors T φ le k-tree de profondeur maximale N max représentant φ par : T φ = ConstruireKtree([φ], D, 0, N max) , où ConstruireKtree est la fonction donnée par l’algorithme 1.

Remarquons que la fonction ConstruireKtree est décroissante en N max : plusN max est élevé, plus le k-tree construit est précis.

PROPOSITION 19. — Soit D ⊆ Rn et φ : D → B une fonction boo-

léenne. Si [φ] est une fonction d’inclusion pour φ , alors pour tout N max ∈ N ,T =ConstruireKtree([φ],D,1,N max) est une représentation de φ , c’est-à-

dire que pour tout x ∈ D , on a φ(x) T (x).

4.4. Application à l’abstraction des transitions discrètes

Nous expliquons maintenant comment on peut utiliser l’algorithme de la section4.3.2 pour obtenir une abstraction de la fonction P , étape préliminaire au calcul d’in-variant sur les trajectoires. Intuitivement, pour chaque instruction du type act.bi!b,nous allons générer un k-tree qui sera une représentation de la fonction renvoyant 1 si

Page 24: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 24/37

360 TSI. Volume 31 – no 3/2012

Algorithme 1: ConstruireKtree

Entrées : [φ] : IRn → B⊥; Fonction à abstraire

Entrées : D ⊆ IRn; Domaine de définition

Entrées : N ∈ N; Précision actuelleEntrées : N max ∈ N; Précision maximaleSorties : T de domaine D et de hauteur maximale N max − N telle que

∀x ∈ D, φ(x) T (x)

début

x = [φ](D);si x = ∧ N < N max alors

Construite un recouvrement list de D;res = N (D);pour tous les élément l ∈ list faire

aux = ConstruireKtree([φ], l , N + 1, N max);res = N (D) :: aux;

sinon

res = N (D) :: V (x);

retourner res

l’instruction est exécutée et 0 sinon. On pourra alors facilement construire l’abstrac-tion de P : étant donné un état continu, on teste pour chaque instruction act.bi!b

si elle sera exécutée (grâce au k-tree correspondant), puis on met à jour la configu-ration des actionneurs en fonction de chacun de ces résultats. Le point important decette méthode est donc la construction d’une fonction d’inclusion booléenne qui testel’accessibilité d’une instruction en fonction des entrées continues du programme.

La fonction de test d’accessibilité est définie ainsi : étant donné un programme P et une instruction à atteindre, on construit dans un premier temps le graphe de flotde contrôle du programme puis on effectue une analyse statique par interprétationabstraite en avant des états accessibles. Les instructions arithmétiques sont évaluéesen utilisant l’arithmétique d’intervalle, et les tests sont sur-approximés. Nous ne dé-taillons pas d’avantage le principe de l’analyse d’accessibilité, pour plus de détails surce sujet très classique, on pourra lire (Cousot, Cousot, 1977 ; 1994).

DÉFINITION 20 (Abstraction de la fonction P ). — Soit Ω un système hybridedont le programme est P . Pour tout instructions act.bi!b de P , on note T i,b le k-treeconstruit tel que décrit précédemment et qui décide de l’atteignabilité de l’instructionact.bi!b. Alors, la fonction P a : Σc ×Σb → Σb définie par :

P a(σc,σb) = λbi.

σb(bi) si T i,b(σc(y)) = 0

T i,b(σc(y)) sinon

est l’abstraction de P .

Page 25: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 25/37

Vérification de programmes de contrôle-commande 361

Figure 8. k-tree obtenu pour la ligne 17 du programme de la figure 4

PROPOSITION 21. — La fonction P a est une abstraction correcte de la fonction

P :∀σc ∈ Σc, σb ∈ Σb, ∀σc ∈ σc, σb ∈ σb, P (σc, σb) ∈ P a(σc,σb) .

Dans cette section, nous avons donc construit à partir d’un programme H-SIMPLEune fonction P a qui est une abstraction correcte de l’effet du programme sur les ac-tionneurs. Cette fonction peut être vue comme une reconstruction, à partir de P , de lastructure de contrôle de l’algorithme de contrôle-commande : elle décide quelle actiondoit être effectuée en fonction de la position spatiale de l’environnement continu. Latechnique de génération des k-trees a été implémentée dans un analyseur statique quiutilise Newspeak (Hymans, Levillain, 2008). Nous montrons dans (Bouissou, 2008)plusieurs exemples de k-trees obtenus pour différents programmes de contrôle. Lafigure 8 montre le k-tree obtenu pour l’instruction de la ligne 17 du programme de

contrôle du système des deux réservoirs donné à la figure 4. La zone grise représentela zone telle que le k-tree renvoie 1 (l’instruction est atteinte), la zone noire celle où lek-tree renvoie (l’instruction peut-être atteinte) et la zone blanche celle où le k-treerenvoie 0 (l’instruction n’est pas atteinte).

Remarquons que l’analyse d’accessibilité d’instructions de programmes impératifsest un sujet classique, que l’on peut traiter via les travaux portant sur la terminaison deprogrammes et les preuves de propriétés de sûreté (Cook et al., 2006a ; 2007 ; Cou-sot, 2005), ou encore l’analyse de code mort (Chen et al., 1997), souvent très utilisée

Page 26: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 26/37

362 TSI. Volume 31 – no 3/2012

en compilation. Cependant, toutes ces analyses fournissent une sur-approximation del’ensemble des instructions exécutées. Pour que l’abstraction de l’évolution continuesoit précise, il faut que nous obtenions également une sous-approximation des instruc-tions accessibles, c’est-à-dire l’ensemble des instructions qui seront exécutées pourtoutes les entrées du domaine. Dans l’idéal, la différence entre la sur-approximationet la sous-approximation doit être la plus faible possible. Nous avons donc préférédévelopper un nouvel outil permettant de calculer à la fois la sur-approximation et lasous-approximation de telle sorte que l’écart entre les deux soit un des paramètres del’analyse.

5. Génération de trajectoire abstraite

Dans cette section, nous expliquons comment, à partir des k-tree produits par l’al-gorithme de la section 4, nous construisons des invariants de trajectoire pour un sys-tème hybride. Nous avons vu (définition 20) que ces k-trees servent à définir uneabstraction de la fonction P . Nous expliquons dans un premier temps (section 5.1)comment la théorie de l’intégration garantie fournit des abstractions de la fonctionF . Puis (section 5.2), nous montrons comment calculer les invariants de trajectoire,en recherchant des motifs périodiques dans ces trajectoires.

5.1. Abstraction de la fonction d’avancement du temps

Rappelons la définition de la fonction d’avancement du temps F :

F :

Σc × R+ → Σc

(σc, h) → y∞(h) où y∞ est la solution de l’EDO y = F (y), y(0) = σc( y) .

Une abstraction de F doit donc être une fonction [F ] : Σc × R+ → Σc telle que :

∀σc ∈ Σc, ∀σc ∈ σc, y∞(h) ∈ [F ](σc, h) . (3)

Autrement dit, [F ](σ, h) doit contenir toutes les solutions en h de l’EDO y =F (y) avec une valeur initiale σc(y) ∈ σc( y). La théorie de l’intégration garantie

d’équations différentielles (Nedialkov et al., 1999) nous montre qu’il est possible decalculer automatiquement ces sur-approximations des solutions d’EDO. En particu-lier, la librairie GRKLib (Bouissou, Martel, 2007) fournit un moyen automatique decalculer une fonction [F ] monotone vérifiant les conditions de l’équation (3). Remar-quons que cette construction ne suppose pas que la fonction F soit linéaire ou linéairepar morceaux : il suffit que F soit continue et suffisamment dérivable. Nous ne dé-taillons pas plus la théorie de l’intégration garantie, il nous suffit dans cet article desavoir que la construction de la fonction [F ] est possible. Pour plus de détails, nousconseillons la lecture des articles (Nedialkov et al., 1999) et (Nedialkov, 2006).

Page 27: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 27/37

Vérification de programmes de contrôle-commande 363

5.2. Calcul d’invariants : à la recherche de boucle

Munis des fonctions abstraites P a et [F ], abstractions respectives de P et F ,nous pouvons désormais facilement calculer un invariant de trajectoire pour un sys-tème hybride. Rappelons qu’un invariant de trajectoire est une suite d’éléments abs-

traits (σcn, σb

n) ∈ Σc × Σb

Nvérifiant, pour toute trajectoire continue (σn

c , σnb ),

∀i ∈ N, σic ∈ σc

i et σib ∈ σb

i.

Clairement, si σc0 et σb

0 sont des abstractions de l’ensemble des états initiaux dusystème, alors la suite (σc

n, σbn) définie par :

σbi+1 = P a(σc

i,σbi)

σci+1 = [F σb ](σc

i, h) | σb ∈ (σci+1)

est un invariant de trajectoire. En effet, pour calculer la nouvelle configuration des ac-tionneurs σb

i+1, on applique l’abstraction P a de P , puis pour calculer σci+1, on

suit toutes les dynamiques possibles, c’est-à-dire toutes les dynamiques caractériséespar une configuration σb ∈ σb

i+1. Enfin, on fait l’union de toutes ces dynamiquespour obtenir σc

i+1. D’après les propriétés du sûreté des fonctions P a et [F ], ona bien, pour toute trajectoire continue (σi

c, σib) du système : ∀i ∈ N, σi

b ∈ σbi et

σic ∈ σc

i. On peut donc se servir de la suite (σci) pour tester (par exemple) si une

région interdite est atteinte. Cependant, cette suite n’est pas suffisante pour montrerqu’une région interdite n’est jamais atteinte : comme l’élément σc

i donne la positionde l’environnement continu à l’instant i×h, il faudrait calculer l’ensemble (infini) deséléments de la suite pour prouver que la région n’est jamais atteinte. Les techniquesclassiques d’analyse de systèmes hybrides se contentent de calculer les régions attei-

gnables à temps borné, et peuvent donc montrer que la région n’est jamais atteinte surl’intervalle [0, τ ], pour τ fixé. Dans le reste de cet article, nous allons montrer qu’ilest possible de calculer en temps fini un invariant donnant une sur-approximation destrajectoires concrètes pour un temps non borné.

Notons désormais F h la fonction F h : Σc × Σb → Σc × Σb telle que∀n ∈ N,

σc

n+1, σbn+1

= F h

σc

n, σbn

. Nous cherchons donc à calculer lasuite des itérées de F h : F h

n(σc0, σb

0). Pour obtenir des invariants à temps nonborné, nous allons chercher des motifs périodiques dans cette suite. En particulier,nous détecterons le cas où la suite est ultimement périodique, c’est-à-dire telle qu’ilexiste N ∈ N (le rang) et K ∈ N (la période) tels que ∀n ∈ N, n ≥ N ⇒F h

(n+K )(σc0, σb

0) = F h(n)(σc

0, σb0). Si la suite n’est pas périodique, nous al-

lons calculer une sur-approximation périodique de cette suite. Pour cela, nous allonsd’abord détecter le cycle, c’est-à-dire calculer les valeurs de N et K (en section 5.2.1),puis nous calculerons les valeurs de σc

n et σbn (en section 5.2.2).

5.2.1. Détection d’un cycle

Pour détecter le cycle, c’est-à-dire trouver la période de la suite F hn, nous utili-

sons l’algorithme 2. À partir de l’état initial (σc0, σb

0), l’algorithme construit itérati-vement la suite (σc

n, σbn) : en partant d’une suite constante égale à (σc

0, σb0), on

calcule à chaque étape le prochain élément s = (σc, σb) = F h(σci, σb

i), puis on

Page 28: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 28/37

364 TSI. Volume 31 – no 3/2012

teste si un cycle existe. Si on trouve k ≤ i tel que σc σci et σb σb

i, alors ilexiste un cycle de rang k et de période n−k + 1 : on peut donc arrêter le calcul. Sinon,on cherche un élément de la suite qui soit proche de (σc, σb), c’est-à-dire un élémentdont la distance 6 à s est inférieure à α. Si cet élément existe, cela signifie que l’on adéjà calculé l’évolution du système depuis un état proche de s, on peut donc « forcer »le cycle en modifiant la valeur de la suite : σc

k = σck σc et σb

k = σbk σb. On

dit alors qu’on a détecté un « cycle approché » et on termine le calcul. Si aucun cyclen’est détecté, on modifie la valeur suivante de la suite : σc

i+1 = σc et σbi+1 = σb,

puis on continue le calcul en partant du rang i + 1.

Le résultat de cet algorithme est donc une suite (σcn, σb

n) ∈ Σc ×Σb

Nainsi

qu’un rang N

∈ N et une période K

∈ N . La suite n’est pas encore un invariant

pour les trajectoires du système hybride, mais le théorème 22 montre que c’est uneabstraction correcte des trajectoires jusqu’au temps t = (N − 1) × h.

THÉORÈME 22. — Soit (σcn, σb

n, K , N ) les valeurs calculées par l’algorithmeDetectionCycle. Alors, pour toute trajectoire continue (σn

c , σnb ) , on a :

∀k ∈ [0, N − 1], σkc ∈ σc

k.

Remarquons que l’algorithme ne fournit que des sur-approximations des trajec-toires jusqu’au temps (N · h) car, lors de la détection d’un cycle approché, la valeurde σc

N peut avoir changé, il faut donc propager ce changement pour les autres élé-ments de la suite. C’est ce que nous faisons à la section 5.2.2.

Dans l’algorithme 2, le paramètre α est une heuristique permettant de contrôlerl’efficacité et la précision de l’algorithme. Plus α est grand, plus vite l’algorithmetermine (un cycle approché est détecté rapidement), mais l’approximation sera éga-lement plus grande. Un choix trop grand pour α est donc une source potentielle defausses alarmes : l’algorithme unifie deux états continus éloignés et introduit ainsi descomportements nouveaux. Une autre heuristique nécessaire pour cet algorithme estla stratégie de widening. En effet, la terminaison de l’algorithme 2 n’est pas garan-tie car il est possible qu’un cycle approché avec un paramètre α donné n’existe pas.Pour contrer ce problème, nous utiliserons donc une technique proche du widening :toutes les p itérations ( p étant un paramètre fixé par l’utilisateur), α est augmenté jus-qu’à atteindre α = +∞. Ainsi, on garantit la terminaison de l’algorithme, mais enintroduisant deux nouvelles heuristiques : le choix de p et la vitesse d’augmentation

de α. De ces heuristiques dépendent la vitesse de convergence de l’algorithme maiségalement sa précision : en augmentant trop vite α, on peut introduire de faux com-portements dans le système.

6. La distance que nous utilisons ici ne joue pas un rôle fondamental dans la correction de l’algorithme.Nous supposons donc avoir une fonction dS :

Σc × Σb

×

Σc × Σb

→ R+ donnant la distance

entre deux états. En pratique, nous utiliserons la distance de Hausdorff, facile à calculer sur le domaine desintervalles (voir (Bouissou, 2009) pour une définition exacte de la distance dS ).

Page 29: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 29/37

Vérification de programmes de contrôle-commande 365

Algorithme 2: DetectionCycle : détection et création d’un cycle dans latrajectoire abstraite

Entrées : σ0c , σ0

b , α ; État initial et seuilEntrées : F h ; Fonction de transfert abstraiteSorties : Suites σc

n, σbn, rang N et période K

début

σcn = σ0

c ; σbn = σ0

b ;i = 0; K = 0;tant que K = 0 faire

s = (σc, σb) = F h(σci, σb

i);si

∃k ≤

i : s

(σc

k, σnk) alors

N = k; K = i − k + 1;

sinon

d = mindS

s, (σck, σb

k)

: k ≤ i;si d > α alors

(σci+1, σb

i+1) = s;i = i + 1;

sinon

Choisit k ≤ i tel que dS (s, φ(k)) < α;(σc

k, σbk) =

σc

k, σbk s;

N = k; K = i − k + 1;

retourner φ, N,K

5.2.2. Calcul des valeurs

Après avoir détecté un cycle (ou un cycle approché) dans la trajectoire abstraite, ilfaut calculer les valeurs des états abstraits pour tout instant k × h, k ∈ N. Pour cela,on définit un opérateur F S : (Σc×Σb)N → (Σc ×Σb)N sur les suites à valeurs dansΣc ×Σb qui propage la fonction de transfert abstraite F h d’un élément de la suite àl’autre. Cet opérateur dépend du rang N et de la période K calculés par l’algorithme 2,et est défini par, pour tout φ ∈ (Σc × Σb)N, F S (φ) = φ avec :

∀n ∈ N, φ(n) =

φ(n) si n < N

F h(φ(N )) F h(φ(N + K )) si n = N mod K

F h(φ(n − 1)) sinon

.

PROPOSITION 23. — La fonction F S est monotone sur le treillis complet des suites(Σc × Σb)N muni de l’ordre point-à-point φ1 φ2 ⇔ ∀n ∈ N, φ1(n) φ2(n).

La proposition 23 nous permet de conclure que la fonction F s a un plus petitpoint fixe plus grand que (σn

c , σnb ), la suite calculée par l’algorithme 2. En utilisant

l’itération de Kleene, on peut calculer ce point fixe. Le théorème 24 montre que cepoint fixe est un invariant des trajectoires d’un système hybride.

Page 30: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 30/37

366 TSI. Volume 31 – no 3/2012

THÉORÈME 24. — Soit Ω un système hybride et soit φ = (σcn, σb

n) la suite fournie par l’algorithme 2. Soit (σ

c

n, σ

b

n) la suite d’états abstraits, plus petit point fixe de

la fonction F s supérieur à φ. Alors, pour toute trajectoire continue (σnc , σn

b ) de Ω , ona ∀n ∈ N, σn

c ∈ σ

c

n et σnb ∈ σ

b

n.

Remarquons que la suite (σ

c

n, σ

b

n) dans le théorème 24 est ultimement pério-

dique, on peut donc la représenter de manière finie. Elle fournit donc un invariant finides trajectoires continues pour des temps non bornés.

Clairement, il est possible ici aussi d’utiliser le widening pour accélérer le calculdu point fixe de F s : nous utilisons le widening classique sur Σc, et l’appliquonssur l’élément σc

N de la suite, c’est-à-dire sur le premier élément de la trajectoirepériodique. Ceci introduit une autre source de sur-approximation pour les trajectoiresabstraites, mais garantit le calcul en un temps fini.

Dans cette section, nous avons donc montré comment calculer des invariants destrajectoires continues pour des temps non borné. En partant d’une abstraction du pro-gramme sous forme d’un ensemble de k-trees (encodés dans la fonction P a), notrealgorithme essaie de détecter des cycles dans l’évolution des variables continues, enmodifiant les trajectoires abstraites pour créer de tels cycles si ils n’existent pas. Cettetechnique a également été implémentée, nous obtenons pour des exemples classiquesde systèmes hybrides des résultats satisfaisants (voir (Bouissou, 2009) pour des résul-tats). La figure 9 montre l’invariant généré pour le problème des deux réservoirs avecanticipation donné à la figure 4.

6. Travaux connexes

Ce travail étant à cheval entre plusieurs disciplines (sémantique et analyse deslangages de programmation, intégration garantie d’équations différentielles, modéli-sation et analyse de systèmes hybrides), il existe de nombreux travaux traitant d’aumoins une partie de ces sujets. Nous essayons ici de présenter quelques travaux im-portants sur ces différents thèmes.

Modélisation et analyse de systèmes hybrides. Les travaux fondateurs sur les auto-mates hybrides (Alur et al., 1992 ; 1995) définissent un système hybride comme unautomate hybride, c’est-à-dire une extension des automates temporisés dans lesquelsles variables peuvent évoluer selon une équation différentielle ordinaire. Comme nous

l’avons déjà évoqué, la grande différence avec le modèle H-SIMPLE proposé danscet article est que l’exécution d’un automate hybride est dirigée par les évènements,c’est-à-dire qu’un changement d’état discret a lieu dès lors qu’une garde est validée.Au contraire, dans notre modèle, les changements ont lieu à des instants prédéfiniset donnés par les instructions wait du système. Il semble possible d’encoder lesprogrammes H-SIMPLE en des automates hybrides en ajoutant des gardes portantsur le temps à chacune des transitions possibles, cet encodage serait cependantprobablement peu efficace car le nombre d’états discrets risque d’être très importantdans le cadre d’un programme de grande taille. Les outils d’analyse de système

Page 31: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 31/37

Vérification de programmes de contrôle-commande 367

3 4 5 6 7 8 9

5

6

7

8

9

σ0

c

Figure 9. Trajectoire abstraite obtenue pour le programme de la figure 4. Chaquecarré représente un état continu abstrait (i.e. un couple d’intervalles pour h1 et h2.

Les différents styles de traits représentent les différentes dynamiques (en fonction del’ouverture des vannes V 1 et V 2)

hybride, des premiers travaux d’Henzinger (Henzinger et al., 1998) aux outils lesplus récents (Frehse, 2005 ; Frehse et al., 2011), cherchent à calculer les régionsatteignables par un automate hybride à temps borné uniquement. Tous ces outilssupposent que les dynamiques ainsi que les gardes du système hybride sont linéaires,ce qui est une limitation forte de leur utilisation pour des programmes industriels.Notons que les travaux les plus récents (Guernic, Girard, 2008 ; Girard, 2005) utilisentle domaine des zonotopes pour encoder les ensembles de valeurs, domaine égalementutilisé pour l’analyse statique de programmes numériques (Goubault, Putot, 2011).

Intégration garantie d’équations différentielles. Outre GRKLib (Bouissou, Martel,

2007), il existe plusieurs outils permettant de calculer des solutions garanties d’équa-tions différentielles. Citons notamment les travaux fondateurs de Nedialkov sur lelogiciel VNODE (Nedialkov et al., 1999), qui calcule les bornes sur les solutions enutilisant un développement de Taylor de l’équation différentielle, la série de Taylorétant calculée par différentiation automatique. Ces idées ont été reprises et amélioréesdans les outils VSPODE (Lin, Stadtherr, 2007), qui utilisent des modèles de Taylorpour gérer au mieux les dépendances de la solution à des paramètres inconnus, etVALENCIA-IVP (Rauh et al., 2006). Notons que la plupart de ces outils utilisentencore l’arithmétique d’intervalle pour calculer ces solutions garanties, et que les

Page 32: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 32/37

368 TSI. Volume 31 – no 3/2012

limitations portant sur le type de dynamique sont faibles : les outils gèrent aussibien les dynamiques linéaires que non linéaires. Des techniques récentes permettentde gérer les dynamiques non linéaires avec les outils développés pour les systèmeshybrides : on parle alors d’hybridisation des dynamiques non linéaires (Asarin et al.,2007 ; Dang et al., 2010).

Lien entre langages synchrones et modèles hybrides. La théorie des systèmes hybridesest depuis le début développée essentiellement par des spécialistes de l’automatique,il existe peu de liens entre la sémantique des langages de programmation et la théoriedes systèmes hybrides. Ma thèse a été un des premiers travaux dans cette direction,plusieurs autres aspects ont depuis été développés. L’action INRIA Synchronics 7

vise à étudier le lien entre les langages synchrones (Lustre notamment) et les sys-tèmes hybrides. Ainsi, des nouvelles sémantiques de modèles hybrides ont été propo-sées (Benveniste et al., 2011a ; 2011b) : ces travaux visent à apporter un cadre plusproche des langages de programmation aux modèles classiques de systèmes hybrides.De même, le lien entre Lustre et l’environnement physique a été étudié dans l’ar-ticle (Briand, Jeannet, 2009) qui ont développé une méthode d’analyse ad hoc pourle cas d’un automate hybride « synchrone ». Enfin, citons les travaux de (Chapoutot,2008) qui vise à donner une sémantique formelle à Simulink, qui est probablement lelangage de modélisation de systèmes hybrides le plus utilisé mais également le moinsétudié.

7. Conclusion

Dans cet article, nous avons présenté un nouveau modèle pour représenter des sys-tèmes hybrides, spécialement conçu pour décrire fidèlement le fonctionnement desprogrammes de contrôle-commande. Pour cela, nous avons choisi de partir d’un lan-gage de programmation simple, impératif, et avons ajouté trois primitives permettantde gérer la communication entre le programme et son environnement physique. Lasémantique opérationnelle de ce langage est une extension simple de la sémantiqueopérationnelle du langage initial, nous rajoutons essentiellement deux nouveaux typesde variables et une transition de délai qui modifie l’état de l’environnement physiqueen faisant avancer le temps continu. Nous avons ensuite défini une méthode d’ana-lyse permettant de calculer des sur-approximations des trajectoires de l’environnement

physique pour des temps non bornés. Pour cela, nous avons transformé le calcul de cestrajectoires en le calcul d’un point fixe d’une fonction monotone opérant sur les suitespériodiques d’états abstraits. Cette fonction est construite à partir d’une abstractiondu programme sous forme d’un ensemble de k-trees et d’abstractions des dynamiquescontinues calculées grâce à la théorie de l’intégration garantie.

7. http://synchronics.wiki.irisa.fr/tiki-index.php

Page 33: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 33/37

Vérification de programmes de contrôle-commande 369

Ces techniques ont fait l’objet d’une implémentation et les résultats expérimentaux(qui sont disponibles dans (Bouissou, 2008) et (Bouissou, 2009)) montrent l’intérêt deces techniques spécialisées pour des programmes de contrôle-commande.

Il existe évidemment de nombreux points à améliorer pour rendre ces techniquesplus performantes et plus efficaces pour l’analyse de systèmes de contrôle-commandeindustriels. Nous souhaitons notamment prendre en compte des actionneurs numé-riques, ce qui nécessite de définir un calcul de point fixe mixte entre le programmeet l’environnement continu. Nous voulons également utiliser des domaines relation-nels pour l’intégration garantie d’équation différentielle (en nous inspirant du travailde (Combastel, 2005)) pour améliorer le logiciel HybridFluctuat (Bouissou et al.,2009) qui a débuté les travaux en ce sens.

Le travail futur qui nous semble le plus important est la question d’un wideningtemporel, c’est-à-dire un opérateur permettant, en fonction des n premières étapesde calcul, de sur-approximer l’évolution continue jusqu’à t = +∞. Pour l’instant,nous recherchons des cycles dans l’évolution des variables continues pour pouvoirtraiter le temps non borné, cela nous oblige cependant à effectuer de grosses sur-approximations dans les cas où ces phénomènes périodiques ne sont pas présents.Plusieurs pistes nous semblent intéressantes pour améliorer notre analyse.

Si aucun cycle n’apparaît, on peut essayer de détecter dans l’évolution continueune progression selon une suite arithmético-géométrique. Nous nous inspirons pourcela des techniques développées dans (Feret, 2005) pour l’analyse des codes cri-tiques embarqués : le domaine des progressions arithmético-géométriques relie lesvaleurs des variables à l’intérieur d’une boucle avec un compteur i qui décrit lenombre d’itérations de la boucle. Dans notre cas, on essaiera de relier la valeur desvariables avec le temps d’exécution du programme. Le domaine des progressionsarithmético-géométriques ne permet cependant que de détecter des progressions re-lativement simples pour les variables continues. Si les équations différentielles sontfortement non linéaires, les sur-approximations risquent d’être trop importantes etla précision trop faible. Une autre solution est alors d’utiliser les chaînes de récur-rences (Bachmann et al., 1994 ; Pop, 2006), qui sont une extension des progressionsarithmético-géométriques. Les chaînes de récurrences ont été utilisées en compilationpour déterminer à l’avance le nombre d’itérations dans une boucle (Pop, 2006). Lesmotifs de la chaîne de récurrence sont calculés dynamiquement en fonction des va-leurs successives prises par le système en x0, x0 + h, x0 + 2h , . . . Les évolutions quel’on peut obtenir sont plus variées qu’avec le domaine des progressions arithmetico-

géométriques et on pourrait, en utilisant ces chaînes de récurrence, prédire la positiondes variables continues pour tout instant de la forme t0 + i ∗ h, où h est l’intervalle detemps entre deux mesures et i l’indice de la mesure.

Enfin, nous avons commencé des travaux (Bouissou, Seladji, Chapoutot, 2012)sur l’utilisation de techniques d’extrapolation numérique pour améliorer le calcul depoint fixe en interprétation abstraite. Il nous semble possible d’utiliser des techniquessimilaires pour calculer automatiquement, et rapidement, les limites des solutions deséquations différentielles, et ainsi définir un widening continu.

Page 34: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 34/37

370 TSI. Volume 31 – no 3/2012

Bibliographie

Alur R., Courcoubetis C., Halbwachs N., Henzinger T. A., Ho P. H., et al. (1995). The algo-rithmic analysis of hybrid systems. Theoretical Computer Science, vol. 138, no 1, p. 3–34.

Alur R., Courcoubetis C., Henzinger T. A., Ho P. H. (1992). Hybrid automata: An algorith-mic approach to the specification and verification of hybrid systems. In Hybrid systems i,vol. 736, p. 209-229. Springer.

Asarin E., Dang T., Girard A. (2007, January). Hybridization methods for the analysis of nonlinear systems. Acta Inf., vol. 43, p. 451–476.

Bachmann O., Wang P., Zima E. (1994). Chains of recurrences—a method to expedite theevaluation of closed-form functions. In International symposium on symbolic and algebraic

computation (issac’94), p. 242–249. New York, NY, USA, ACM.Benveniste A., Bourke T., Caillaud B., Pouzet M. (2011a, April). Divide and recycle: types and

compilation for a hybrid synchronous language. In ACM SIGPLAN/SIGBED Conferenceon Languages, Compilers, Tools and Theory for Embedded Systems (LCTES’11). Chicago,USA.

Benveniste A., Bourke T., Caillaud B., Pouzet M. (2011b). Non-standard semantics of hybridsystems modelers. Journal of Computer and System Sciences (JCSS), Special issue in honor of Amir Pnueli, vol. 78, no 3.

Birkhoff G. (1940). Lattice theory (vol. 25). American Mathematical Society.

Bouissou O. (2008). Analyse statique par interpretation abstraite de systèmes hybrides . Thèsede doctorat non publiée, Ecole Polytechnique.

Bouissou O. (2009). Proving the correctness of the implementation of a control-commandalgorithm. In J. Palsberg, Z. Su (Eds.), SAS , vol. 5673, p. 102-119. Springer.

Bouissou O., Goubault E., Goubault-Larrecq J., Putot S. (2012). A generalization of p-boxesto affine arithmetic. Computing, vol. 94, p. 189-201. http://dx.doi.org/10.1007/s00607-011-0182-8 (10.1007/s00607-011-0182-8)

Bouissou O., Goubault E., Putot S., Tekkal K., Védrine F. (2009). HybridFluctuat: A staticanalyzer of numerical programs within a continuous environment. In A. Bouajjani, O. Maler(Eds.), Cav, vol. 5643, p. 620-626. Springer.

Bouissou O., Martel M. (2007). GRKLib: a guaranteed runge-kutta library. In Follow-up of international symposium on scientific computing, computer arithmetic and validated nume-rics. IEEE Press.

Bouissou O., Martel M. (2008). A hybrid denotational semantics of hybrid systems. In Procee-

dings of the 17th european symposium on programming languages and systems (esop’08) ,vol. 4960, p. 63-77. Springer.

Bouissou O., Seladji Y., Chapoutot A. (2012). Acceleration of the abstract fixpoint computationin numerical program analysis (accepted). Journal of Symbolic Computation.

Briand X., Jeannet B. (2009). Combining control and data abstraction in the verification of hybrid systems. In Formal methods and models for codesign, memocode’2009. IEEE.

Chapoutot A. (2008). Simulation abstraite : une analyse statique de mod‘eles simulink . Thèsede doctorat non publiée, Ecole Polytechnique.

Page 35: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 35/37

Vérification de programmes de contrôle-commande 371

Chen Y., Gansner E., Koutsofios E. (1997). A C++ data model supporting reachability ana-lysis and dead code detection. In Proceedings of the 6th european software engineeringconference (ESEC/FSE 97), vol. 1301, p. 414–431. Springer. citeseer.ist.psu.edu/article/ chen98data.html

Combastel C. (2005). A state bounding observer for uncertain non-linear continuous-timesystems based on zonotopes. In 44 ieee conference on 44th ieee conference on decision and control.

Cook B., Gotsman A., Podelski A., Rybalchenko A., Vardi M. (2007). Proving that programseventually do something good. SIGPLAN Notices, vol. 42, no 1, p. 265–276.

Cook B., Podelski A., Rybalchenko A. (2006a). Termination proofs for systems code. InProceedings of the 2006 acm sigplan conference on programming language design and implementation (pldi’06), p. 415–426. ACM.

Cook B., Podelski A., Rybalchenko A. (2006b). Terminator: Beyond safety. In 18th internatio-nal conference on computer aided verification (cav’06), vol. 4144, p. 415-418. Springer.

Cousot P. (2005). Proving program invariance and termination by parametric abstraction, la-grangian relaxation and semidefinite programming. In Proceedings of the sixth internatio-nal conference on verification, model checking and abstract interpretation (vmcai’05) , vol.3385, p. 1–24. Springer. http://www.springerlink.com/content/qkufe4uekjgyja4f/

Cousot P., Cousot R. (1977). Abstract interpretation: a unified lattice model for static analysisof programs by construction or approximation of fixpoints. In Conference record of the

fourth acm symposium on principles of programming languages (popl’77), p. 238–252.ACM Press.

Cousot P., Cousot R. (1992a). Abstract interpretation frameworks. Journal of Logic and

Computation, vol. 2, no

4, p. 511–547.Cousot P., Cousot R. (1992b). Comparing the Galois connection and widening/narrowing

approaches to abstract interpretation, invited paper. In Proceedings of the 4th internatio-nal workshop programming language implementation and logic programming (plilp’92) ,vol. 631, p. 269–295. Springer-Verlag.

Cousot P., Cousot R. (1994, 16–19 May). Higher-order abstract interpretation (and applicationto comportment analysis generalizing strictness, termination, projection and PER analysisof functional languages), invited paper. In Proceedings of the 1994 international conferenceon computer languages, p. 95–112. Toulouse, France, IEEE Computer Society Press, LosAlamitos, California.

Cousot P., Halbwachs N. (1978). Automatic discovery of linear restraints among variables of a program. In Conference record of the fifth acm symposium on principles of programminglanguages (popl’78), p. 84–97. ACM Press.

Dang T., Maler O., Testylier R. (2010). Accurate hybridization of nonlinear systems. In Procee-dings of the 13th acm international conference on hybrid systems: computation and control,p. 11–20. New York, NY, USA, ACM. http://doi.acm.org/10.1145/1755952.1755956

Feret J. (2005). The arithmetic-geometric progression abstract domain. In Proceedings of the 6th international conference on verification, model checking and abstract interpretation(vmcai’05), vol. 3385, p. 42–58. Springer.

Finkel R. A., Bentley J. L. (1974). Quad trees a data structure for retrieval on composite keys. Acta Informatica, vol. 4, no 1, p. 1–9.

Page 36: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 36/37

372 TSI. Volume 31 – no 3/2012

Frehse G. (2005). Phaver: Algorithmic verification of hybrid systems past hytech. In M. Morari,L. Thiele (Eds.), Hybrid systems: Computation and control (HSCC 2005), vol. 3414, p. 258-273. Springer.

Frehse G., Guernic C. L., Donzé A., Ray R., et al. (2011). Spaceex: Scalable verification of hybrid systems. In Cav.

Girard A. (2005). Reachability of uncertain linear systems using zonotopes. In M. Morari,L. Thiele (Eds.), Hybrid systems: Computation and control (HSCC 2005), vol. 3414, p. 291-305.

Gonnord L., Halbwachs N. (2006). Combining Widening and Acceleration in Linear RelationAnalysis. In S. Verlag (Ed.), Static Analysis (SAS 2006), vol. 4134, p. 144-160.

Goubault E., Putot S. (2006). Static analysis of numerical algorithms. In Proceedings of the

13th international symposium on static analysis (sas’06), vol. 4134, p. 18-34. Springer.Goubault E., Putot S. (2011). Static analysis of finite precision computations. In Pro-

ceedings of the 12th international conference on verification, model checking, and abs-tract interpretation, p. 232–247. Berlin, Heidelberg, Springer-Verlag. http://portal.acm.org/ citation.cfm?id=1946284.1946301

Guernic C. L., Girard A. (2008). Zonotope-hyperplane intersection for hybrid systems reachabi-lity analysis. In Proceedings of the international workshop on hybrid systems: Computationand control (hscc’08), vol. 4981, p. 215–228. Springer.

Henzinger T. A. (1996). The theory of hybrid automata. In Symposium on logic in computer science, p. 278–292. IEEE Computer Society Press.

Henzinger T. A., Ho P. H., Wong-Toi H. (1998). Algorithmic analysis of nonlinear hybridsystems. IEEE Transactions on Automatic Control, vol. 43, p. 540–554.

Henzinger T. A., Horowitz B., Majumdar R., Wong-Toi H. (2000). Beyond HYTECH: Hybridsystems analysis using interval numerical methods. In Third international workshop onhybrid systems: Computation and control (hscc’00), vol. 1790, p. 130-144. Springer.

Heymann M., Lin F., Meyer G., Resmerita S. (2005). Analysis of zeno behaviors in hybridsystems. IEEE Transactions on Automatic Control, vol. 50, no 3, p. 376-384.

Hoare C. A. R. (1985). Communicating sequential processes. Prentice-Hall.

Hymans C., Levillain O. (2008). Newspeak, Doubleplussimple Minilang for Goodthinkful Static Analysis of C . Technical Note no 2008-IW-SE-00010-1. EADS IW/SE.

Lin Y., Stadtherr M. A. (2007). Validated solutions of initial value problems for parametric odes. Applied Numerical Mathematics, vol. 57, no 10, p. 1145 - 1162. http://www.sciencedirect.com/science/article/B6TYD-4MHPHBR-1/2/ea22e1b99246fda7914d438dbd090738

Lygeros J., Johansson K., Simic S., Zhang J., Sastry S. (2003). Dynamical properties of hybridautomata. IEEE Transactions on Automatic Control, vol. 48, no 1, p. 2-17.

Miné A. (2004). Weakly relational numerical abstract domains. Thèse de doctorat non publiée,École Normale Supérieur de Paris.

Monniaux D. (2009, June). A minimalistic look at widening operators. Higher Order Symbol.Comput., vol. 22, p. 145–154. http://dx.doi.org/10.1007/s10990-009-9046-8

Nedialkov N. (2006). Interval tools for ODEs and DAEs. Rapport technique no CAS 06-09-NN.Dept. of Computing and Software, McMaster University.

Page 37: Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

8/15/2019 Vérification Partielle Des Système de Contrôle Commande Par Interprétation Abstraite

http://slidepdf.com/reader/full/verification-partielle-des-systeme-de-controle-commande-par-interpretation 37/37

Vérification de programmes de contrôle-commande 373

Nedialkov N., Jackson K., Corliss G. (1999). Validated solutions of initial value problemsfor ordinary differential equations. Applied Mathematics and Computation, vol. 105, no 1,p. 21–68.

Pop S. (2006). The ssa representation framework: Semantics, analyses and gcc implementation.Thèse de doctorat non publiée, Ecole des Mines de Paris.

Putot S., Goubault E., Martel M. (2003). Static analysis-based validation of floating-point com-putations. In Numerical software with result verification, vol. 2991, p. 306-313. Springer.

Rauh A., Auer E., Hofer E. (2006). ValEncIA-IVP: A case study of validated solvers for initialvalue problems. In International symposium on scientific computing, computer arithmeticand validated numerics. IEEE.

Schrammel P., Jeannet B. (2010). Extending abstract acceleration methods to data-flow pro-grams with numerical inputs. Electronic Notes in Theoretical Computer Science, vol. 267,no 1, p. 101 - 114. (Proceeding of the Second International Workshop on Numerical andSymbolic Abstract Domains: NSAD 2010)

Winskel G. (1993). The formal semantics of programming languages: an introduction . Cam-bridge, MA, USA, MIT Press.

Zhang J., Johansson K., Lygeros J., Sastry S. (2001). Zeno hybrid systems. International Journal of Robust and Nonlinear Control, vol. 11, p. 435-451.

Olivier Bouissou. est ingénieur-chercheur au sein du laboratoire LMeASI du CEA LIST. Sestravaux portent sur l’analyse statique par interprétation abstraite de programmes critiques

embarqués, en particulier l’analyse des interactions entre le programme et son environnement physique. Il s’intéresse notamment à la qualité des méthodes numériques utilisées pour lasimulation de cet environnement physique, et développe des techniques de simulation garantie.