Dtermination de lquivalence comportementale dalgorithmes de contrle commande

  • Slides: 22
Download presentation
Détermination de l’équivalence comportementale d’algorithmes de contrôle - commande Vincent GOURCUFF Directeur de thèse

Détermination de l’équivalence comportementale d’algorithmes de contrôle - commande Vincent GOURCUFF Directeur de thèse : Encadrant : Contact industriel : Jean-Marc FAURE Olivier De SMET Sandrine COUFFIN

Plan de la présentation Introduction Approche proposée Modélisation d’algorithmes de commande Synchronisation des modèles

Plan de la présentation Introduction Approche proposée Modélisation d’algorithmes de commande Synchronisation des modèles Conclusions et perspectives 2

Introduction Contexte Site de contrôle Centrale thermique Raffinerie Quelques chiffres • 16534 lignes de

Introduction Contexte Site de contrôle Centrale thermique Raffinerie Quelques chiffres • 16534 lignes de code C • 1881 sorties • 2560 entrées Turbine électrique 3

Introduction Problématique industrielle CONTROCAD : Utilisateur (cahier des charges) CONTROCAD Entrées • outil industriel

Introduction Problématique industrielle CONTROCAD : Utilisateur (cahier des charges) CONTROCAD Entrées • outil industriel de développement d’algorithme de commande. • programmation du fonctionnement en FBD ou SFC [IEC 61131 -3]. • génération automatique de programme exécutable spécifique au matériel. Sorties Contrôleur industriel Processus à contrôler 4

Introduction Problématique industrielle (2) Utilisateur (cahier des charges) CONTROCAD FBD Objectif industriel : •

Introduction Problématique industrielle (2) Utilisateur (cahier des charges) CONTROCAD FBD Objectif industriel : • Certification SIL 3 (norme sécurité fonctionnelle IEC 61508) Niveau SIL : confiance qui peut être placée dans un système. SFC LEA C Exécutable Objectif scientifique : Équivalence comportementale ? • Déterminer si, quelles que soient les évolutions des entrées, les algorithmes émettent les mêmes sorties. Équivalence comportementale Contrôleur industriel 5

Approche proposée Objectif de détermination d’équivalence comportementale Intégrable dans un processus de développement industriel.

Approche proposée Objectif de détermination d’équivalence comportementale Intégrable dans un processus de développement industriel. • Rapide. • Automatisable et généralisable : pas d’intervention de l’utilisateur. • Permissif : accepte toutes les optimisations, du moment de le comportement extérieur est identique. Comportement extérieur : variation des entrées et sorties du programme. e 1=1 s 2=0 e 1=0 s 2=0 Automate à état fini e 1=0 s 2=1 6

Approche proposée Equivalence comportementale Bisimulation [Milner 79][Park 81] • Applicable sur des label transition

Approche proposée Equivalence comportementale Bisimulation [Milner 79][Park 81] • Applicable sur des label transition systems (LTS) modélisant des systèmes réactifs. • Formalise la condition de d’équivalence comportementale. Dans notre cas : trace – équivalent Approches existantes • Analyse statique - Applicable sur des programmes textuels. - Vérifier l’équivalence sémantique, et non comportementale. - Pas d’optimisation possible - Très rapide. • Solver SAT (automatic theorem proving) - Applicable sur des langages utilisant des opérateurs mathématiques. - Détermine l’équivalence par résolutions mathématique (preuve). - Difficilement automatisable. - Peu sensible à la complexité. 7

Approche proposée Principes AFADL’ 06 Langage du model-checker Langage industriel Programme LEA BOO e

Approche proposée Principes AFADL’ 06 Langage du model-checker Langage industriel Programme LEA BOO e 1 = s 1 IF s 1 THEN BOO 0 = s 2 Modèle du programme LEA Moniteur du LEA (implicite) I E T S Équivalence ? Programme C s 1 = e 1; IF {s 1} { s 2 = 0; } Modèle du programme C Équations récurrentes Moniteur du C I E T S Équations récurrentes Modèle global MODEL CHECKER (Nu. SMV [CCG+02]) Critère d’équivalence comportementale Comportement équivalent ou non Diagnostic en cas d’incohérence 8

Approche proposée Critère d’équivalence comportementale Propriété • En fin de cycle du moniteur, les

Approche proposée Critère d’équivalence comportementale Propriété • En fin de cycle du moniteur, les sorties ont toujours la même valeur dans chaque programme LEA et C. Moniteur E I 1 I 2 S e 1 s 1 s 2 E I 1 I 2 S t t • Condition : synchronisation des modèles dans le modèle global. Propriété en logique temporelle CTL • AG(S 1_LEA = S 1_C) s 1_LEA e 1 s 2_LEA Modèle général s 1_C s 2_C 9

Approche proposée Verrous scientifiques • Modéliser efficacement les programmes industriels de grande taille dans

Approche proposée Verrous scientifiques • Modéliser efficacement les programmes industriels de grande taille dans le langage du model-checker Nu. SMV. • Synchroniser les modèles de programme dans un modèle global pour vérifier leur équivalence comportementale. • Optimiser le modèle global obtenu. 10

Modélisation d’algorithme de commande Objectif Modéliser des programmes avec : • • variables booléennes

Modélisation d’algorithme de commande Objectif Modéliser des programmes avec : • • variables booléennes et/ou entières ; structures conditionnelles ; prise en compte du temps ; multiples affectations de même variables. Performance • Caractériser tous les états « intéressants » mais seulement ceux-ci. • Minimiser les variables à mémoriser. Existant • [Ros 03], [Rd. SLC+00] : modélisation fine et générique des langages, mais non-adaptée aux grands programmes. • [Moo 94], [Car 05] : premières approches utilisant les équations récurrentes, mais restreintes en possibilités. 11

Modélisation d’algorithme de commande Principes Programme LEA e 1 BOO e 1 = s

Modélisation d’algorithme de commande Principes Programme LEA e 1 BOO e 1 = s 1 (I 1) I s 1 s 2 + Moniteur du LEA IF s 1 THEN (I 2) E T S BOO 0 = s 2 Moniteur E I 1 I 2 S e 1 s 2 t 12

Modélisation d’algorithme de commande Principes Traduction/ modélisation Équations récurrentes Modelchecking Trace résultante e 1=1

Modélisation d’algorithme de commande Principes Traduction/ modélisation Équations récurrentes Modelchecking Trace résultante e 1=1 s 2=0 e 1=0 s 2=0 e 1= 1 s 2= 0 AEF e 1=0 s 2=0 13

Modélisation d’algorithme de commande Algorithme général WODES’ 06 Programme API + Moniteur cyclique Analyse

Modélisation d’algorithme de commande Algorithme général WODES’ 06 Programme API + Moniteur cyclique Analyse statique Caractérisation de l’antériorité des variables Transformation Système d’équations récurrentes Optimisation et génération modèle Nu. SMV optimisé • Caractérisation : Utilisation de la variable / Affectation de la variable • Remplacement des variables par leur caractérisation • Développement des blocs fonctionnel • Abstraction du temps • Diminution des variables à mémoriser • « Booléenisation » des entiers • Adaptation syntaxique 14

Modélisation d’algorithme de commande Optimisations : Diminution des variables à mémoriser 2 types de

Modélisation d’algorithme de commande Optimisations : Diminution des variables à mémoriser 2 types de variables : • Variables nécessitant un historique : - utilisées avant d’être affectée - dépendantes d’elle même • Variables ne nécessitant pas d’historique : - seul leur valeur en fin de cycle est utilisée. => inutile mémoriser ces variables. - leur utilisation est remplacée par leur calcul. s 1 n+1 =e 1 n+1+1 s 2 n+1 =s 2 n + s 1 n+1 s 2 n+1 =s 2 n + e 1 n+1+1 15

Modélisation d’algorithme de commande Optimisations : « Booléenisation » des entiers (1) Représentation des

Modélisation d’algorithme de commande Optimisations : « Booléenisation » des entiers (1) Représentation des entiers par défaut : • Arithmetic decision diagram (ADD)[BAHAR 93] : mauvaises performances ADD d’une Addition : e 1+e 2 Objectif : • utiliser les avancés dans les Binary Decision Diagrams (BDD) [BRYANT 86] pour les entiers. 16

Modélisation d’algorithme de commande Optimisations : « Booléenisation » des entiers (2) Méthode :

Modélisation d’algorithme de commande Optimisations : « Booléenisation » des entiers (2) Méthode : 1. Représenter les entiers par les bits qui le compose. 2. Utiliser les BDD sur ces bits. 3. Transformer les opérations sur les entiers en opération sur les bits. 17

Modélisation d’algorithme de commande Optimisations : « Booléenisation » des entiers (3) Résultats :

Modélisation d’algorithme de commande Optimisations : « Booléenisation » des entiers (3) Résultats : Temps (s) de détermination d’équivalence • Gain en performance sur la vérification de variables entières. • Possibilité d’opérations sur les bits des entiers (et, ou, . . . ). • Prise en compte des dépassements de borne. • Extension aux réels possible. Nombre de bits des entiers sortie = (entree 1 + entree 2 + sortie) /3 18

Synchronisation des modèles Principes Modèle global : • Contient le modèle de chaque programme

Synchronisation des modèles Principes Modèle global : • Contient le modèle de chaque programme LEA et C. • Indéterminisme commun : - Entrées communes. - Indéterminisme commun de l’abstraction logique du temps. • Initialisation identique : Pour toutes les sorties s du programme, init(s_LEA) = init(s_C) time e 1 Modèle programme LEA Modèle programme C s 1 s 2 init(s 1_LEA) = init(s 1_C) init(s 2_LEA) = init(s 2_C) s 1_LEA time e 1 s 2_LEA Modèle général s 1_C s 2_C 19

Synchronisation des modèles Abstraction du temps physique de façon logique Exemple [RS 00] :

Synchronisation des modèles Abstraction du temps physique de façon logique Exemple [RS 00] : • TON [IEC 61131 -3] : Temporisation à retard d’enclenchement. in TON • doit être commun aux DEUX modèles Variable "time" supplémentaire d’entrée caractérisant cette indéterminisme e 1 in = f (e 1, . . . ) TON in == 1 Q Indéterminisme entre active et enclenché time in == 1 Q Inactive in = 0 Q=0 Active in = 1 Q=0 in == 0 s 1= f (Q, . . . ) Enclenchée in = 1 Q=1 in == 1 s 2= f (Q, . . . ) 20

Conclusions Résultats sur cas d’étude Application industrielle : centrale thermique • 175 programmes soit

Conclusions Résultats sur cas d’étude Application industrielle : centrale thermique • 175 programmes soit : - 16534 lignes de code C; - 11763 lignes de code LEA. • 1881 sorties dont 59 entières (codée sur 8 bits). • 2572 entrées dont 43 entières (codée sur 8 bits). Modèle LEA Modèle C Nombre de variables de entrée 2560 (Min : 2 Max : 51) 2572 (Min : 2 Max : 51) Nombre de variables de sortie 1881 (Min : 1 Max : 47) Nombre de variables mémorisées 241 (Min : 0 Max : 19) 240 (Min : 0 Max : 19) Temps total de vérification sur Pentium 2. 6 GHz États atteignables Temps de traduction automatique vérification totale : vérification partielle : 1 min 38 5 s Min : 8 Max : 1034 2 min 21

Conclusions Apports et perspectives Apports : • • traduction de langages industriels en langage

Conclusions Apports et perspectives Apports : • • traduction de langages industriels en langage model-checker (Nu. SMV). détermination de l’équivalence comportementale entre deux programmes. optimisation des modèles. application industrielle : - traitement de cas. - intégration dans l’entreprise : spécification de l’outil de traduction automatique en vue de son utilisation dans l’outil de développement. Travaux en cours : • abstraction des variables entières et réelles. • abstraction automatique de blocs fonctionnels. • application aux autres langages de la chaîne de développement du logiciel. 22