• Aucun résultat trouvé

Chapitre 3 : Recherche de scénarios dans les systèmes hybrides

3.2. Méthode d’extraction des scénarios dans un système hybride

3.2.2. Prise en compte du continu par des abstractions temporelles

3.2.2.1 Principe

Nous allons, dans cette section, mettre en évidence les modifications que nous avons effectuées par rapport à l'algorithme précédent pour diminuer le nombre de scénarios qui étaient générés car ils étaient cohérents avec la seule vue discrète, mais qu'il fallait rejeter dans une seconde étape car ils étaient incohérents vis-à-vis de la dynamique continue.

La méthode que nous proposons prend en compte les conditions associées au franchissement de certaines transitions. Ces conditions sont des seuils impliquant des variables continues. Par approximation temporelle de la dynamique hybride, ces seuils sont transformés en des durées qui correspondent au temps que met le système pour les atteindre quand les transitions sont sensibilisées. Comme, pour l'instant nous travaillons uniquement d'un point de vue qualitatif et non quantitatif, ce que nous retenons c'est, lorsque c'est possible, l'ordre suivant lequel ces transitions pourront être franchies. Ainsi nous pourrons nous trouver dans une situation où deux transitions t1 et t2 sont franchissables si l'on considère le réseau de Petri ordinaire, mais qui sont telles que t1 sera toujours franchie avant t2 si l'on considère l'abstraction temporelle. Dans la génération des scénarios seul le franchissement de t1 sera considéré puisque celui de t2 avant t1 serait en fait incohérent avec la dynamique continue. Dans la nouvelle version de l'algorithme cela apparaît sous la forme d'une sorte de priorité : si t1 et t2 sont franchissables, seul celui de t2, plus prioritaire, est examiné.

Pour prendre en compte ce mécanisme, cette version de l'algorithme introduit une nouvelle liste de données (Lint2) qui est une liste de transitions franchissables ou potentiellement franchissables à ne pas franchir car elles sont en conflit avec des transitions qui doivent être franchies avant elles (à cause de l’aspect continu). La prise en compte de ces relations de précédence provenant de la dynamique continue et non spécifiées par le réseau de Petri ordinaire permet de réduire le nombre de scénarios générés en éliminant un certain nombre de scénarios incohérents vis-à-vis de la dynamique continue

Figure 3.1. La priorité due aux seuils associés aux transitions

Considérons un exemple. Dans la figure 3.1 on suppose que le système algébro-différentiel associé à la place P1 garantit que la variable x est croissante. A la transition t1 on associe le seuil x=v1 et à la transition t2 le seuil x=v2 avec v1<v2. On suppose enfin que lorsque le jeton arrive dans la place p1 nous avons toujours x< v1. Alors, si la place P3 est marquée, la transition t1 sera franchie avant t2 puisque le seuil associé à t1 est inférieur à celui de t2. Dans ce cas on ne

P1 P2

P3

t3 t1 (v1) t2 (v2)

69

considère pas le scénario associé au franchissement de t2. Par contre, si t3 est déjà franchie (place P3 vide) et si la place P2 est marquée, on ne peut plus franchir t1 et t2 sera alors franchie.

3.2.2.2 Précédence et causalité directe et indirecte

Dans l'exemple ci-dessus, nous n'examinerons finalement qu'un seul type de scénarios, ceux pour lesquels la transition t2 est franchie après t3. Nous avons donc une relation de précédence entre le franchissement de t3 qui vide la place P3 et celui de t2. Pourtant aucune place ne relie t3 à t2. Cette relation de précédence est donc une conséquence de la dynamique continue et des seuils associés aux transitions t1 et t2. Nous parlerons dans ce cas de relation de précédence indirecte et de causalité indirecte.

Les relations de précédence et de causalité directes sont celles qui sont mises en évidence par le seul réseau de Petri, c'est-à-dire par le seul aspect discret. Par exemple dans la figure 3.2, la place P2 induit une relation de causalité directe entre le franchissement de t1 et celui de t2. Il faut avoir produit un jeton dans la place P2 par le franchissement de t1 pour pouvoir franchir t2.

Figure 3.2. Lien de causalité direct

3.2.2.3 Cas de priorités entre les franchissements des transitions

Nous venons de voir que la dynamique continue pouvait induire des relations de précédence entre des franchissements de transitions. Un phénomène tout à fait analogue peut se produire si l'on introduit des règles de priorité entre les franchissements des transitions. Bien que nous n'ayons pas introduit explicitement des règles de priorité entre les franchissements des transitions, elles peuvent s'avérer nécessaires pour représenter des stratégies de commande et de reconfiguration de façon simple. De plus, à cause de ce qui précède, elles seront prises en compte de façon simple dans notre algorithme.

Considérons par exemple le réseau de Petri de la figure 3.3 a. Il représente une fenêtre temporelle (la place p1 contient un jeton entre les franchissements de t1 et de t2) pendant laquelle le traitement t4 non seulement peut être effectué, mais doit être effectué sans attente s'il y a une

P1

P2

P3 t1

70

demande (présence d'un jeton dans P2 suite au franchissement de t3). De façon classique, cela peut être exprimé en rendant le franchissement de t4 prioritaire par rapport à celui de t2.

Figure 3.3 a. Lien de causalité indirecte

En ce qui concerne les relations de précédence, seuls deux types de scénarios pourront avoir lieu. Celui de la figure 3.3.b pour lequel t3 est franchie après t2 et celui de la figure 3.3.c pour lequel t4 est franchie avant t2. La relation de précédence et de causalité entre t2 et t3 dans la figure 3.3.b est une relation indirecte comme précédemment car elle ne correspond pas à une place reliant les deux transitions.

Figure 3.3 b. Lien de causalité indirecte entre t2 et t3

Figure 3.3 c. Lien de causalité direct entre t4 et t2

3.2.2.4 Retour sur le principe de l'amélioration de l'algorithme

Ce que nous venons de présenter dans cette section c'est le principe de l'amélioration de l'algorithme de recherche des scénarios. Grâce à une abstraction temporelle de la dynamique continue, nous mettons en évidence des relations de précédence et de causalité indirectes entre certains franchissements de transition. Dans le cœur de l'algorithme cela est exprimé sous la forme de règles de priorité (une certaine transition n'est pas franchie si une autre est franchissable). Dans l'expression des résultats, c'est-à-dire des scénarios, cela apparaît sous la forme de relations de précédence/causalité indirectes entre des transitions qui ne sont pas reliées par une place. Ainsi nous allons restreindre, parfois fortement, le nombre de scénarios générés et pour chaque scénario l'ensemble des séquences de franchissements cohérentes avec la relation

1 2 f P2 t1 t4 t2 1 1 p t3 p1 t1 t2 t3 p2 P1 P2 t3 t2 t4 t1

71

d'ordre partiel strict associée au scénario. La phase de vérification du fait que ces scénarios sont effectivement cohérents vis-à-vis de la dynamique continue en sera simplifiée d'autant.

Dans le paragraphe suivant nous donnons une description de l’algorithme de génération de scénarios. Nous présentons la structure de données, les procédures et les différentes étapes. Il est à noter qu’une seule exécution de l’algorithme génère automatiquement plusieurs scénarios. En effet partant d’un état redouté, on remonte dans la chaîne des causalités dans le réseau de Petri inverse jusqu’à un état de fonctionnement normal, on arrête alors le raisonnement arrière et on entame une démarche avant. Dans cette dernière appelée « raisonnement avant » on commence par l’état de fonctionnement normal trouvé précédemment, et on parcourt le réseau de Petri pour atteindre l’état redouté en enrichissant le marquage quand c’est nécessaire. Tous les scénarios possibles et cohérents vis-à-vis de la dynamique continue du système sont ainsi générés.