• Aucun résultat trouvé

6.3 Modélisation

6.3.3 Modélisation des automates de modes des contrôleurs

La figure 6.5 illustre l’automate de modes du contrôleur de la figure 6.2. La stratégie de chaque contrôleur dans cette étude de cas est de favoriser l’économie d’énergie dans la mesure du possible. De ce fait, les décisions des contrôleurs se basent sur les règles suivantes :

Les conditions des requêtes de reconfiguration

Etant dans un mode H/V Filter_modej1, le contrôleur décide d’aller dans un mode

H/VFilter_modej2 qui consomme moins si l’utilisateur demande un niveau de perfor-

mance plus bas que le niveau courant, ou si le niveau de la batterie se trouve au-dessous d’un certain seuil qui ne permet plus de rester dans le mode H/V Filter_modej1. Par

exemple, comme le montre la figure 6.5, si le mode courant est HFilter_mode1 et que le niveau de performance requis par l’utilisateur est 2, ou si le niveau de la batterie est inférieur à 750000, le contrôleur envoie une requête au coordinateur pour passer au mode HFilter_mode2. Les conditions des requêtes pour passer à un mode qui consomme moins utilisent la formule :

battery_level/Hj1 < aj1, j2xF B/H1 (6.1)

en mode H/V Filter_modej, battery_level est le niveau de la batterie envoyé par le capteur

de batterie et FB est l’énergie d’une batterie pleine. Le terme aj1, j2est un pourcentage

qui permet de déterminer le seuil de la batterie au dessus duquel une reconfiguration du mode H/V Filter_modej1au mode H/V Filter_modej2est requise. Dans notre étude de

cas, ce terme prend les valeurs suivantes : a1,2 = 75% et a2,3 = 75%.75% pour les deux

types de contrôleurs. Ces deux pourcentages sont utilisés pour envoyer des requêtes de reconfiguration pour passer respectivement du mode H/V Filter_mode1 au mode H/VFilter_mode2, et du mode H/VFilter_mode2 au mode H/VFilter_mode3.

Le terme battery_level/Hj1 donne l’autonomie restante en cycles si la région reste

dans le mode H/V Filter_modej1jusqu’à ce que la batterie se trouve vide. Ici, on néglige

la consommation des autres régions puisque chaque contrôleur à une vision locale du problème de contrôle. Cependant, appliquer cette contrainte à tous les contrôleurs permet de l’appliquer à tout le système. Il faut noter ici que cette consommation ne fait pas la différence entre consommation dynamique et consommation statique. On considère que les valeurs utilisées représentent la consommation totale par cycle de chaque mode d’une région.

Le terme FB/H1donne l’autonomie en cycles de la région si elle reste dans le mode

qui consomme le plus et qui est le plus performant (autonomie minimale). En faisant un compromis entre la performance et la consommation, le contrôle des régions re- configurables vise à améliorer l’autonomie par rapport à une configuration statique implémentant le "mode" le plus performant, qui est en même temps celui qui consomme le plus. Pour cette raison, l’autonomie minimale est prise comme référence dans la partie droite de l’inéquation 6.1.

Dans notre étude de cas, les régions implémentant le filtre vertical consomment plus que les autres puisque les blocs en entrée et en sortie de ce filtre sont de plus grandes tailles par rapport au filtre horizontal. Les valeurs prises pour la consommation par cycle de ces régions selon les modes actifs sont les suivantes : H1 = 6, H2 = 4, H3 = 2,

V1 = 7, V2= 5, et V3= 3. Ces valeurs sont exprimées en unité de consommation qui peut

être de l’ordre de 10−10J. Elles sont prises en tant qu’exemples pour la validation du

modèle de contrôle proposé. Elles peuvent être remplacées par des valeurs effectives si on dispose du matériel nécessaire pour les mesures de consommation d’énergie durant l’exécution de l’application. La valeur du niveau maximal de la batterie prise ici est F B = 1000000 désignant une énergie de l’ordre de 100µJ disponible dans la batterie. Cette petite valeur est utilisée afin d’accélérer le processus de la simulation (arriver tôt aux seuils qui déclenchent les reconfigurations) que nous présentons dans la suite de ce chapitre. En reformulant l’inéquation 6.1, une requête de reconfiguration est envoyée pour passer du mode H/V Filter_modej1au mode H/V Filter_modej2lorsque la condition

suivante est valide :

battery_level < aj1, j2.FB.Hj1/H1 (6.2)

En remplaçant les termes par leurs valeurs dans la condition du passage du mode HFilter_mode1 au mode HFilter_mode2, le niveau de batterie qui déclenche la requête de reconfiguration est 0.75x1000000x6/6= 7500000 comme le montre la figure 6.5.

Etant dans un mode H/V Filter_modej2, le contrôleur décide d’aller dans un mode

<<coordinationConstraint>> {actionKind=request} <<coordinatedTransition>> <<coordinatedTransition>> <<coordinationConstraint>> {actionKind=acceptance} <<coordinatedTransition>> <<coordinatedTransition>> <<coordinationConstraint>> {actionKind=request} {performance_level=3} <<coordinationConstraint>> {actionKind=acceptance} {true} <<coordinatedTransition>> <<coordinatedTransition>> {performance_level=2 or battery_level<750000} {true} <<coordinationConstraint>> {actionKind=request} {performance_level=3 or battery_level<401785} <<coordinationConstraint>> {actionKind=acceptance} {true} <<coordinationConstraint>> {actionKind=request} {performance_level=1 and battery_level>=800000} <<coordinationConstraint>> {actionKind=acceptance} {battery_level>=800000} <<coordinationConstraint>> {actionKind=request} {performance_level=1 and battery_level>=800000} <<coordinationConstraint>> {actionKind=acceptance} {battery_level>=800000} <<coordinationConstraint>> {actionKind=request} {performance_level=2 and battery_level>=437500} <<coordinationConstraint>> {actionKind=acceptance} {battery_level>=437500} VFilter_Mode1 <<mode>> VFilter_Mode2 <<mode>> VFilter_Mode3 <<mode>> <<modeBehavior>> VFilter_ModeAutomaton

FIG. 6.6 – Modélisation de l’automate de modes du contrôleur VFilterController

plus haut que le niveau courant et que le niveau de la batterie se trouve au-dessus d’un certain seuil qui permet de passer au mode H/V Filter_modej1. Par exemple, comme le

montre la figure 6.5, si le mode courant est HFilter_mode2 et que le niveau de perfor- mance requis par l’utilisateur est 1 et le niveau de la batterie est supérieur à 800000, le contrôleur envoie une requête au coordinateur pour passer au mode HFilter_mode1. Les conditions des requêtes pour passer à un mode qui consomme plus suivent la formule : battery_level/Hj1>= bj2, j1.FB/H1 (6.3)

Il faut noter que la valeur de bj2, j1est supérieure à celle de aj1, j2de l’équation 6.1 pour

éviter qu’une fois dans le mode H/V Filter_modej1, les contraintes de l’équation 6.1

entraînent l’envoi une requête pour revenir au mode H/V Filter_modej2très tôt, ce qui

peut entraîner une boucle infinie. Dans notre étude de cas, nous prenons les valeurs suivantes des termes bj2, j1: b2,1= b3,1= 75% + 5% et b3,2= 75%.75% + 5%.

Les conditions de l’acceptation/refus des propositions de reconfiguration

Comme nous avons précisé dans le chapitre 4, le contrôleur accepte ou refuse les pro- positions de reconfiguration envoyées par le coordinateur en se basant sur les données d’observation et sur sa stratégie de contrôle, qui est ici de favoriser l’économie d’énergie. Le contrôleur traite donc les propositions de reconfiguration de la manière suivante. Si la

proposition concerne le passage à un mode qui consomme moins, le contrôleur l’accepte directement. Sinon, le contrôleur vérifie le niveau de performance requis et la contrainte de l’équation 6.1 afin d’accepter ou refuser la proposition comme le montre la fi- gure 6.5. Ici, les contraintes de l’acceptation du passage du mode HFilter_mode1 au mode HFilter_mode2 ou HFilter_mode3 et du mode HFilter_mode2 au mode HFilter_mode3 ont la valeur true alors que pour le reste des contraintes d’acceptation, le niveau de batte- rie est vérifié. Par exemple, pour la contrainte de l’acceptation du passage du mode HFilter_mode2 au mode HFilter_mode1, la condition battery_level >= 800000 doit être valide. La contrainte du refus n’est pas modélisée ici puisqu’on a modélisé la contrainte d’acceptation. L’automate du contrôleur lié au filtre vertical est illustré dans la figure 6.6. Il suit les mêmes principes que celui lié au filtre horizontal en utilisant des seuils de consommation différents puisque les deux filtres n’ont pas la même consommation.