6.2 S´emantique des mod`eles pour une it´eration
6.2.4 S´emantique des mod`eles hybrides
Dans cette section, nous utilisons les fonctions sample, activate ainsi que la s´emantique L.MD des mod`eles `a temps discret et la s´emantique L.MC des mod`eles `a temps continu pour d´efinir la s´emantique des mod`eles hybrides. Cette s´emantique introduit explicitement les capteurs et les actionneurs dans le mod`ele Simulink. Nous sommes ainsi capables de valider les comportements num´eriques d’une sp´ecification d’un syst`eme embarqu´e en prenant en compte tous les ´el´ements
introduisant des approximations. Nous notons L.MH la s´emantique des mod`eles hybrides Simulink
et nous la d´efinissons pour une it´eration i de la boucle de simulation.
La s´emantique hybride des mod`eles Simulink introduit une nouvelle approche de l’analyse statique de programmes. En effet, nous prenons en compte, dans une unique repr´esentation, des ´el´ements aux propri´et´es math´ematiques diff´erentes, la r´esolution d’´equations diff´erentielles, uti- lis´ees dans les mod`eles `a temps continu, et l’´etude de la pr´ecision num´erique dans les mod`eles `a temps discret. De plus, l’introduction des capteurs et des actionneurs sont une nouveaut´e dans le cadre de la validation des logiciels embarqu´es. Nous consid´erons ainsi tous les acteurs importants, du point de vue de la qualit´e num´erique, qui entrent dans la composition d’un syst`eme embarqu´e. Ce qui signifie que nous validons les comportements num´eriques d’un logiciel embarqu´e en le plon- geant dans un mod`ele d’environnement physique et en le faisant interagir avec ce dernier au travers de capteurs et d’actionneurs. Nous sommes alors en mesure d’´etudier toutes les sources potentielles d’approximations num´eriques. La seconde originalit´e de notre approche r´eside dans l’interaction ´etroite entre deux s´emantiques permettant de d´efinir une s´emantique de mod`eles hybrides Simu- link. Nous introduisons, dans cette section, les interactions entre diff´erentes s´emantiques. Ce qui constituent une nouveaut´e du point de vue de la s´emantique des langages de programmation. En
effet, il est rare de trouver un langage de programmation qui n´ecessite diff´erentes interpr´etations de ces constructions syntaxiques. En g´en´eral, ces diff´erences sont li´ees uniquement aux types de bases tels que les nombres entiers ou les nombres flottants. Ces types entraˆınent uniquement diff´erents modes d’´evaluation des expressions arithm´etiques, mais ils ne changent pas de mani`ere importante la s´emantique du langage. Dans notre cas, l’interpr´etation des mod`eles `a temps continu et celle des mod`eles `a temps discret sont tr`es diff´erentes. Ce qui se traduit, dans la s´emantique des mod`eles hybrides, par une interaction inhabituelle entre deux s´emantiques ind´ependantes.
La s´emantique concr`ete L.MH des mod`eles hybrides est d´efinie par la combinaison de la
s´emantique L.MCdes mod`eles `a temps continu et de la s´emantique L.MDdes mod`eles `a temps discret. Nous rappelons qu’un mod`ele M est soit `a temps continu, soit `a temps discret. L’aspect hybride vient des sous-syst`emes de M qui peuvent ˆetre `a temps continu ou `a temps discret. Par exemple, le syst`eme de la figure 4.2(a) est un syst`eme hybride. La s´emantique L.MHd´etermine la s´emantique `
a utiliser suivant le type du sous-syst`eme. Nous utilisons les r`egles de conversion suivantes : – si le mod`ele M est `a temps continu alors nous utilisons la s´emantique L.MCet
– si le mod`ele M′ est `a temps continu alors nous continuons avec la s´emantique L.M C ; – si le mod`ele M′ est `a temps discret alors nous choisissons la s´emantique L.M
D. Ce cas de figure correspond `a l’utilisation d’un capteur dans un syst`eme embarqu´e. Nous utilisons alors la fonction sample ;
– si le mod`ele M est `a temps discret alors nous utilisons la s´emantique L.MDet – si le mod`ele M′ est `a temps continu alors nous optons pour la s´emantique L.M
C. Ce cas de figure correspond `a l’utilisation d’un actionneur dans un syst`eme embarqu´e. Nous utilisons, dans ce cas, la fonction activate ;
– si le mod`ele M′ est `a temps discret alors nous continuons avec la s´emantique L.M D. Nous supposons que tous les syst`emes d’un mod`ele Simulink sont typ´es. Ce qui signifie qu’`a chaque sous-syst`eme d’un mod`ele Simulink M est associ´ee une information stipulant sa nature, `a temps continu ou `a temps discret.
Les versions concr`etes et abstraites de la s´emantique des mod`eles hybrides sont sensiblement les mˆemes. Nous d´etaillons uniquement la version abstraite L.M♯H de la s´emantique des mod`eles hybrides pour une it´eration i. Chaque sous-syst`eme poss`ede son propre environnement d´ependant
de son type. Soit µ une fonction de partition. Nous notons σ♯
µ l’environnement repr´esentant soit un environnement d’un mod`ele `a temps continu θ♯
µ, soit un environnement d’un mod`ele `a temps discret φ♯
µ. La d´efinition de la s´emantique abstraite L.M ♯
H suit les s´emantiques L.M ♯ C et L.M
♯ D. Nous d´efinissons la s´emantique du syst`eme d’´equations des sorties Eo
iJMK celle du syst`eme d’´equations des ´etats Es
iJMK.
L’aspect hybride des mod`eles Simulink se situe, dans notre formalisme, dans le syst`eme d’´equations EoJMK. En effet, la pr´esence de sous-syst`emes dans le mod`ele est traduite par des ´equations de la forme ℓ = f (~xin). Nous d´efinissons la s´emantique du syst`eme d’´equations EoiJMK associ´ees aux sorties du mod`ele M en consid´erant la pr´esence d’appels de fonctions. Pour des raisons de lisibilit´e, nous pr´esentons l’´evaluation de la s´equence d’´equations Io
iJMK sous la forme
d’un algorithme. En effet, la s´emantique du syst`eme d’´equations Eo
iJMK d’un mod`ele hybride M
est d´efinie suivant la forme des ´equations et elle d´epend du type de M . L’ensemble des cas `a ´etudier est alors plus ais´ement mis en avant sous la forme d’un algorithme. L’algorithme 1 d´ecrit l’´evaluation de la s´equence d’´equations IoiJMK. La s´equence ´evalue chaque ´equation une `a une. Suivant le type du mod`ele M , `a temps continu ou `a temps discret, les ´equations sont ´evalu´ees dans la s´emantique des mod`eles `a temps continu L.M♯Cou dans la s´emantique des mod`eles `a temps discret L.M♯D. Si l’´equation contient un appel de fonction les r`egles de conversion pr´ec´edemment d´efinies sont appliqu´ees.
La s´emantique abstraite du syst`eme d’´equations Eo
iJMK se fonde sur l’´evaluation de la s´equence d’´equations Io
iJMK d´ecrite par l’algorithme 1. Cependant, la pr´esence potentielle de boucle dans la graphe de d´ependance de EoiJMK n´ecessite le calcul d’un plus petit point fixe. Nous avons alors la d´efinition suivante : LEo iJMKM♯H(σ ♯ µ) = lfp LIo iJMKM♯H(σ ♯ µ) . (6.16)
La s´emantique abstraite du syst`eme d’´equations des ´etats Es
choisissant la s´emantique associ´ee au type de M . Nous avons alors la d´efinition suivante : LEsiJMKM ♯ H(σ ♯ µ) = ( LEs iJMKM ♯ C σµ♯
si M est `a temps continu LEs iJMKM ♯ D σ ♯ µ
si M est `a temps discret . (6.17)
Au final la s´emantique abstraite L.M♯Hd’un mod`ele hybride M pour l’it´eration i est donn´ee par : LEiJMKM♯H(σ ♯ µ) = LEsiJMKM ♯ H LEoiJMKM ♯ H(σ ♯ µ) . (6.18)
Algorithme 1 Evaluation de la s´equence d’´equations Io
iJMK.
Entr´ee(s): Io
iJMK une s´equence d’´equations, σ♯µ un environnement abstrait. Sortie(s): σ♯
µ environnement contenant les sorties de M .
pour toute ´equation e∈ Io
iJMK faire
si M continu alors
si e est de la forme ℓ = f (~xin) alors si f = E JM′K est `a temps continu alors
σ♯= LE JM′KM♯ C(σ
♯)
sinon{ f = E JM′K est `a temps discret } φ♯= sample♯ σ♯, ~x in σ♯= activate♯LE JM′KM♯ D(φ♯), ℓ fin si
sinon{ e est de la forme ℓ = exp }
σ♯= LeM♯ KT(σ
♯) fin si
sinon{M est discret}
si e est de la forme ℓ = f (~xin) alors si f = E JM′K est `a temps continu alors
θ♯= activate♯ σ♯, ~x in σ♯= sample♯LE JM′KM♯
C(θ♯), ℓ
sinon{ E JM′K est `a temps discret} σ♯= LE JM′KM♯
D(σ♯) fin si
sinon{ e est de la forme ℓ = exp }
σ♯= LeM♯ KED(σ ♯) fin si fin si fin pour
La correction de la s´emantique abstraite L.M♯H par rapport `a la s´emantique concr`ete L.MH est obtenue par les th´eor`emes de correction de la s´emantique des mod`eles `a temps discret (voir th´eor`eme 6.1), de la s´emantique des mod`eles `a temps continu (voir th´eor`eme 6.2), de la fonction activate (voir th´eor`eme 6.3) et de la fonction sample (voir th´eor`eme 6.4).