• Aucun résultat trouvé

S´emantique d´enotationnelle de la partie discr`ete

5.4

S´emantique d´enotationnelle de la partie discr`ete

Nous donnons maintenant une s´emantique d´enotationnelle pour les sous-parties discr`etes des syst`emes hybrides, en supposant que l’on peut connaˆıtre exactement l’´evolution de la partie conti- nue. On s’int´eresse `a un mod`ele discret ∆ =¡CV ar, m, P¢, compos´e d’un ensemble de variables continues et d’un programme ´ecrit en H-SIMPLE. Pour simplifier la compr´ehension de cette section, nous ferons encore l’hypoth`ese que CV ar ne poss`ede qu’une seule variable continue. La s´emantique de ∆ est la s´emantique du programme P soumis `a un environnement ext´erieur κ. On va donc d´efinir une s´emantique d´enotationnelle param´etr´ee par l’environnement κ comme une fonction JP Kκ entre ´etats ´etendus. Nous commen¸cons donc par d´efinir cette notion d’´etat ´etendu,

puis donnons les d´enotations de chaque instruction du langage H-SIMPLE.

5.4.1

Etats ´´

etendus

Comme nous l’avons vu au chapitre 2, un ´etat discret du programme P est une fonction partielle associant `a chaque variable discr`ete v ∈ V ar un nombre `a virgule flottante f ∈ F. Cependant, un programme ´ecrit en H-SIMPLE agit sur d’autres ´el´ements que les variables discr`etes. En effet, P peut modifier le temps d’ex´ecution via une instruction wait et l’environnement continu via une instruction act. Nous devons donc ´etendre la notion d’´etats pour prendre en compte `a la fois l’environnement continu et le temps d’ex´ecution. Nous supposons donc que l’on dispose de trois variables t, act, y 6∈ V ar. La variable t repr´esente le temps d’ex´ecution et sera donc un nombre r´eel positif. La variable y repr´esente l’environnement ext´erieur et sera donc associ´ee `a une fonction continue du temps. Enfin, la variable act repr´esente la suite des commandes envoy´ees par le programme aux actionneurs au cours de son ex´ecution, sa valeur sera donc une fonction constante par morceaux `a valeur dans Bm. Cette fonction est celle que nous supposions connue

pour d´efinir la s´emantique de la partie continue (section 5.3).

D´efinition 5.17 (´Etat ´etendu) L’´etat ´etendu d’un mod`ele discret ∆ =¡CV ar, m, P¢est une fonction σ associant `a chaque variable discr`ete un nombre `a virgule flottante, `a t un nombre r´eel positif, `a y une fonction continue `a valeurs r´eelles et `a act une fonction constante par morceaux `

a valeurs dans Bm. Nous noterons Const(Bm) l’ensemble des fonctions constantes par morceaux `a

valeurs dans Bm. Nous noterons Σ

e l’ensemble des ´etats ´etendus :

Σe=©¡V ar→ V al¢×¡{t} → R+¢×¡{act} → Const(Bm)¢×¡{y} → C0(R+)¢ª. (5.12)

Pour tout ´etat σ∈ Σe, nous noterons σ(X)∈ F la valeur d’une variable discr`ete X ∈ V ar, et pour

toute variable v∈ {t, act, y}, nous noterons σ.v la valeur prise par v dans σ.

Remarque Avec les notations de la d´efinition 5.17, la valeur instantan´ee de l’environnement continu est donn´ee par σ.y(σ.t). Comme `a la section 2.2.2, nous noterons σ[V 7→ v] l’environnement ´egal `a σ sauf pour la variable V ∈ V ar ∪ {t, act, y} qui prend la valeur v. Pour tout v ∈ Bm,

k∈ [1, m] et c ∈ {0, 1}, nous noterons de mˆeme v[k 7→ c] le vecteur de bool´eens ´egal `a v sauf pour la k-i`eme coordonn´ee qui vaut c.

5.4.2

D´enotations des instructions discr`etes

Les d´enotations associ´ees aux instructions discr`etes (Stmt de la figure 5.2) sont exactement les mˆemes que pour les instructions du langage SIMPLE d´efinies `a la figure 2.4.

5.4.3

D´enotations des instructions hybrides

Les d´enotations des instructions hybrides de HStmt sont des fonctions modifiant un envi- ronnement ´etendu : ∀hs ∈ HStmt, JhsK : Σe → Σe. Ces fonctions, donn´ees par la figure 5.12,

– pour tout X ∈ V ar et y ∈ CV ar, sens.y?X modifie la variable X et lui associe le nombre flottant le plus proche de la valeur de la variable continue y `a l’instant ou l’action est ex´ecut´ee (´equation (5.13)). L’op´erateur∼ de l’´equation (5.13) effectue l’op´eration de transtypage.

– pour tout u ∈ R+, wait u modifie la valeur de la variable t et lui donne la valeur t + u

(´equation (5.14)).

– pour tout k ∈ [0, m] et c ∈ {0, 1}, act.k!c modifie un environnement σ comme suit. On rajoute `a la fonction σ.act une marche dont la valeur est la derni`ere valeur prise par σ.act sauf que la k-i`eme coordonn´ee est chang´ee en c (on obtient l’´etat σi dans l’´equation (5.15)).

Ensuite, on change la valeur de la fonction continue y en la solution de l’´equation diff´erentielle donn´ee par la nouvelle fonction σi.act, c’est-`a-dire en la s´emantique JκKσi.act.

Jsens.y ?XKκ=˘(σ, σ′) : σ′= σ[x7→↑∼`σ.y(σ.t)´]¯ (5.13) Jwait uKκ=˘(σ, σ′) : σ′= σ[t7→ σ.t + u]¯ (5.14) Jact.k!cKκ= 8 > < > :(σ, σ ′) : ∃σi∈ Σe, σi= σ » act7→ λx.  σ.act(x) si x≤ σ.t σ.act(σ.t)[k7→ c] sinon – σ′= σiˆy7→ JκKσi.act ˜ 9 > = > ; (5.15)

Fig. 5.12 – D´enotations pour les instructions hybrides.

Exemple 5.12 On reprend et modifie le programme de l’exemple 2.8 de la section 2.2.3. Soit donc le programme H-IMP suivant :

P ::= i = 1; h = 0.01; res = 0; whilei≤ 100 do sens.y?X; res = res + X× h; i = i + 1; wait0.01;

Le programme P calcule, par la m´ethode des rectangles, l’int´egrale des donn´ees qu’il re¸coit via les capteurs. Si on consid`ere le mod`ele continu κ =¡y, 0,{λx.x}¢, la s´emantique de P sous l’environ- nement κ est donn´e par :∀σ ∈ Σe, JP Kκ(σ) = σ[i7→ 100][t 7→ 1][X 7→P100i=1e0.01∗i∗ 0.01].

5.5

S´emantique d´enotationnelle hybride

Dans la s´emantique discr`ete d´efinie `a la section 5.4, nous supposons qu’`a chaque instruction act, on peut calculer la s´emantique de l’environnement continu, c’est-`a-dire la solution d’une ´equation diff´erentielle comme d´efini en section 5.3. Cependant, nous avons vu que ce calcul n´ecessite une it´eration infinie de l’op´erateur de Picard modifi´e (d´efinition 5.15). Nous allons donc essayer de ne pas calculer ce point fixe `a chaque instruction act mais de calculer en parall`ele la s´emantique discr`ete et la s´emantique continue. Soit Ω =¡∆, κ¢un syst`eme hybride, avec ∆ =¡CV ar, m, P¢ et κ =¡V ar, m′,{F

k}k∈Bm, y0

¢

. Pour construire sa s´emantique, nous allons calculer la s´emantique du programme P ainsi que l’´evolution du milieu continu en parall`ele, en respectant les types de communications entre les deux :

– des donn´ees sont pass´ees, via les capteurs, de κ `a ∆ (instructions sens). Cette communi- cation est bloquante : il faut que le programme et l’environnement continu aient atteint le mˆeme temps d’ex´ecution pour que l’´echange de donn´ees s’ex´ecute.