2017 AurelienVALADE
2017 AurelienVALADE
2017 AurelienVALADE
DOCTORAT DE L’UNIVERSITÉ DE
TOULOUSE
Délivré par :
l’Institut National des Sciences Appliquées de Toulouse (INSA de Toulouse)
Rapporteurs :
Virginie BLONDEAU-PATISSIER Maître de Conférences (HdR) Institut FEMTO-ST
Examinateurs :
Rémi FLOQUET Ingénieur R&D RF Innovation
Membres invités :
Jean MILPIED Manager R&D TE Connectivity
Directeurs de Thèse :
Jean-Yves FOURNIOLS Professeur des Universités LAAS-CNRS
Les travaux de thèse présentés ici sont le fruit d’un travail collaboratif effectué entre le
LAAS-CNRS de Toulouse et l’entreprise MEAS-France / TE Connectivity sur une durée
de trois ans. L’objectif est ici de mettre en place une méthodologie permettant la réali-
sation de capteurs embarqués intelligents capables d’estimer des paramètres physiques à
partir de la fusion de données multi-physiques, cette stratégie devant permettre l’intégra-
tion de capteurs, jusqu’alors réservés aux mesures en laboratoire dans des environnement
défavorables, au sein de systèmes embarqués disposant de faibles puissances de calculs.
Après une exploration des méthodes liées à la modélisation, l’estimation de paramètres
et les filtres de Kalman, nous détaillons différentes solutions existantes sur lesquelles nous
appuyer pour répondre à la problématique de la fusion de données multi-physiques, pour
les systèmes linéaires, avec le filtre de Kalman, les systèmes non-linéaires avec les filtres
de Extended Kalman Filter, et Unscented Kalman Filter. Puis nous synthétisons un filtre
pour les systèmes hybrides, présentant par exemple une évolution linéaire et une mesure
non-linéaire, utilisant le meilleur des deux parties afin de tendre vers le meilleur compromis
complexité/précision.
Une fois la méthode d’estimation sélectionnée, nous nous attardons sur les problé-
matiques liées à la puissance de calcul et à la complexité algorithmique, pour chercher
les optimisations pouvant êtres mises en place afin de garantir le fonctionnement sur un
système embarqué disposant d’une faible puissance de calcul.
Nous exposons ensuite l’application de cette méthodologie sur le cas d’étude du cap-
teur UQS, commercialisé par TE Connectivity, utilisant la spectroscopie proche infra-
rouge pour déterminer la concentration d’urée en solution dans le cadre de la régulation
des systèmes de dépollution des oxydes d’azote sur les moteurs diesel. Après une présen-
tation des principes de fonctionnement, nous présentons le modèle développé que nous
avons dressé afin de représenter le système, de simuler son comportement et d’effectuer la
fusion de mesures permettant d’extraire la concentration désirée. Au cours de cette étape,
nous abordons les problématiques liées à la calibration du modèle, ainsi qu’à la compen-
sation de dérives, qu’elles soient liées aux conditions d’utilisation ou au vieillissement des
composants.
En s’appuyant sur cette réflexion, nous dressons finalement les modèles hybrides nous
permettant d’aborder les cas de fonctionnement nominaux, ainsi que les recalibrations du
modèle au cours de la vie du produit. Après quoi, nous présentons les résultats obtenus,
d’abord sur des données simulées, puis sur des données capturées sur un système réel,
avant de proposer des pistes d’amélioration de la méthodologie en se basant sur des
modèles tabulés en « boîte noire » qui permettent de faciliter l’étape de calibration tout
en diminuant la charge de calcul.
Finalement, nous généralisons la méthodologie par le biais d’une problématique de
capture de mouvement, pour conclure sur les possibilités et les limites de la solution que
nous avons proposée.
3
4
Abstract
The work detailed in this document is the result of a collaborative effort of the LAAS-
CNRS in Toulouse and MEAS-France / TE Connectivity during a period of three years.
The goal here is to develop a methodology to design smart embedded sensors with the
ability to estimate physical parameters based on multi-physical data fusion. This strategy
tends to integrate sensors technologies, currently dedicated to lab measurements, in low
powered embedded systems working in imperfects environments.
After exploring model oriented methods, parameters estimations and Kalman filters,
we detail various existing solutions upon which we can build a valid response to multi-
physical data fusion problematics, for linear systems with the Kalman Filter, and for
non-linear systems with the Extended Kalman Filter and the Unscented Kalman Filter.
Then, we will synthesize a filter for hybrid systems, having an linear evolution model and
a non-linear measurement model. For example, using the best of the two worlds in order
to obtain the best complexity/precision ratio.
Once we selected the estimation method, we detail computing power and algorithm
complexity problematics in order to find available optimizations we can use to assess the
usability of our system in a low power environment.
Then we present the developed methodology application to the UQS sensor, sold by
TE Connectivity, study case. This sensor uses near infra-red spectroscopy to determine
the urea concentration in a urea/water solution, in order to control the nitrogen-oxyde
depolluting process in gasoline engines. After a design principles presentation, we detail
the model we created in order to represent the system, to simulate its behavior and to
combine the measurement data to extract the desired concentration. During this step, we
focus on the obstacles of our model calibration and the deviation compensation, due to
working conditions or to components aging process.
Based on this development, we finally designed the hybrid models addressing the
nominal working cases and the model re-calibration during the working duration of the
product. After this, we presented obtained results, on simulated data, and on real-world
measured data. Finally, we enhanced the methodology based on tabulated “black box”
models which are easier to calibrate and cheaper to process.
In conclusion, we reapplied our methodology to a different motion capture sensor, to
compile all possible solutions and limits.
5
6
Remerciements
7
8
Table des matières
Résumé 3
Abstract 5
Remerciements 7
Introduction générale 11
1 Etat de l’art 13
1.1 Problématique du capteur intelligent . . . . . . . . . . . . . . . . . . . . . 13
1.2 Modélisation multiphysique et fusion de données . . . . . . . . . . . . . . . 15
1.2.1 Contexte et problématique . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.2 La modélisation du système . . . . . . . . . . . . . . . . . . . . . . 16
1.2.3 Exemple de modélisation et mesure indirecte linéaire : cas basique
d’une sonde PT1000 . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.4 Fusion de données pour une représentation plus globale de l’envi-
ronnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2.5 Observation, fusion de systèmes non-linéaires . . . . . . . . . . . . . 26
1.2.6 Stratégie de calibration et représentation . . . . . . . . . . . . . . . 34
1.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.3.1 Notre fil d’Ariane : le capteur UQS . . . . . . . . . . . . . . . . . . 37
9
2.5 Diminution de la complexité des estimateurs . . . . . . . . . . . . . . . . . 50
2.5.1 Factorisation d’états . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.5.2 Observateur à gain commuté . . . . . . . . . . . . . . . . . . . . . . 51
2.5.3 Calculs en virgule fixe . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.5.4 Pre-processing des mesures pour un système linéaire . . . . . . . . . 52
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Conclusion 117
4.5 Histoire d’un aller et retour : application et réajustement de la méthode . . 117
4.6 Du diagnostique en temps réel . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.7 Ouverture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
10
Introduction générale
11
modèles hybrides nous permettant d’aborder les cas de fonctionnement nominaux, ainsi
que les recalibrations du modèle au cours de la vie du produit. Après quoi, nous présentons
les résultats obtenus, d’abord sur des données simulées, puis sur des données capturées
sur un système réel, avant de proposer des pistes d’amélioration de la méthodologie en
se basant sur des modèles tabulés en «boite noire» qui permettent de faciliter l’étape de
calibration tout en diminuant la charge de calcul.
Finalement, nous généralisons la méthodologie par le biais d’une problématique de
capture de mouvement, pour conclure sur les possibilités et les limites de la solution que
nous avons proposée.
Ce manuscrit est organisé en quatre chapitres :
— Le premier chapitre présente un état de l’art, d’une part autour des capteurs in-
telligents, d’autre part autour des méthodologies de fusion de données par filtrage
bayésien en s’appluyant sur un modèle de système,
— dans le second chapitre nous explorons les questions liées à la complexité algo-
rithmique et à l’optimisation des algorithmes dans le but de les embarquer sur
micro-contrôleur pour effectuer du traitement en temps-réel,
— le troisième chapitre applique la méthodologie présentée au capteur industriel UQS,
en détaillant le modèle dressé du capteur, en y appliquant un filtre de Kalman et
en exploitant les résultats,
— Le dernier chapitre est dédié à la généralisation de la méthode illustrée par un
capteur de capture de mouvement.
Ce manuscrit se termine par une conclusion générale résumant les différents points et
travaux discutés et présentant les perspectives tracées pour la suite de ce projet.
12
Chapitre 1
Etat de l’art
13
Figure 1.1 – SmartDust [5]
de recherche classique. Le monde est SMART y compris dans de marketing télécom qui
prône la techno attitude...
Permettons-nous à notre niveau de définir notre positionnement dans le «smart sen-
sor» en s’appuyant sur deux publications qui semblent différentes mais que nous tentons
d’agréger. Quel est le point commun entre la publication originelle de Kalman en 1960 [7]
et la publication «Smart Dust» de Berkeley en 1999 ? Pour la première c’est une technique
connue et maitrisée ; pour la seconde c’est l’avènement du marché de l’IoT.
Est-il possible d’associer localement à un capteur une approche «filtrage de Kalman»
avec les contraintes de l’embarqué (prix, consommation électrique) pour conférer au nœud
de mesure une adaptabilité et réduire la quantité de datas transmises «dans le cloud» opéré
par les «data scientists» ? Différents travaux tendent à partager cette vision d’architec-
tures versatiles au plus près du capteur afin de conférer un niveau de «robustesse» à la
mesure et ainsi, soit s’affranchir des variations environnementales, soit même penser à
«compenser» par le filtrage des variations de fabrication et ainsi modifier la façon de pen-
ser la technologie ultra reproductible puisque le filtrage pourrait compenser ces variations
de comportement.
14
Figure 1.3 – Smart sensors [8]
15
Il sera donc nécessaire d’effectuer un traitement intelligent, ou une fusion de données,
des différentes informations fournies par les éléments constitutifs du capteur afin de s’af-
franchir des grandeurs d’influences non désirées et de restituer une mesure précise et peu
dépendante des conditions environnementales.
s = h(e, Γ) (1.1)
Ce modèle statique peut être extrait depuis les modèles physiques ou les données
constructeur des composants utilisés. Lorsque ces données ne sont pas disponibles, il est
nécessaire d’effectuer une caractérisation, ce qui consiste en une série de mesures réalisées
sur un ensemble d’échantillons de systèmes, en faisant varier indépendamment puis de
façon croisée, chacun des paramètres d’influence et chacune des entrées du système. Le
modèle statique du système peut alors être dressé par identification de fonctions mathé-
matiques multi-variables ou, lorsque le système est fortement non-linéaire et ne peut être
identifié de façon simple, par des tableaux de données multi-dimentionnelles (une dimen-
sion par entrée, grandeur d’influence et sortie du système). Cette seconde méthode est
appelée tabulation (Look-Up Table, LUT en anglais).
Si l’échantillon est suffisamment important, cette caractérisation pourra nous donner
le modèle statique du système mais aussi un modèle de dispersion qui pourra être utilisé
en phase de calibration pour faire converger le modèle générique vers le système réel.
En répétant ce même test de façon régulière sur un temps suffisamment long, il sera
aussi possible de dresser un modèle statistique d’évolution des paramètres internes du
système lié à son vieillissement.
Le modèle dynamique quant à lui, représente le comportement du système lors des
phases transitoires (lorsque l’une ou plusieurs de ses entrées, de ses paramètres d’influence
ou de ses états internes varient dans le temps).
On peut alors distinguer deux fonctions :
— l’évolution de l’état interne du système (que nous noterons x(t)) en fonction de
l’évolution des entrées et des paramètres d’influence :
16
ẋ(t) = f (x(t), e(t), Γ(t)) (1.2)
— l’évolution des mesures en sortie du système en fonction de l’état interne, des
entrées et de paramètres :
Une fois tous les éléments constitutifs modélisés, il est possible de modéliser le capteur
complet comme un assemblage de ces éléments. Il peut alors être nécessaire d’effectuer
des caractérisations complémentaires afin de déterminer les interactions entre certains
éléments (par exemple l’échauffement d’un composant pouvant modifier le point de fonc-
tionnement d’un autre).
Lorsque les différentes caractéristiques ont étés déterminées, il est alors possible de
représenter le système sous la forme d’un modèle afin d’en déterminer les propriétés et de
pouvoir en extraire les mesures utiles à notre objectif de capteur intelligent. Pour repré-
senter ce modèle, il existe deux grandes catégories que nous allons détailler ci-dessous :
— le modèle linéaire invariant dans le temps,
— le modèle non-linéaire.
17
Figure 1.4 – Fonction de transfert G(p) d’un système
D’un point de vue pratique, ces modèles représentent parfaitement des systèmes li-
néaires tels que de l’électronique linéaire (résistances, condensateurs, inductances, ampli-
ficateurs) ou des comportements physiques (thermique, diffusion...). Ils ne sont cependant
pas applicables dans le cas de composants présentant des non-linéarités (diodes, CTN...),
à moins d’effectuer une linéarisation autour de points de fonctionnement.
Le système de représentation le plus simple utilisé pour les systèmes mono-entrée,
mono-sortie est la fonction de transfert. Ce système réagit donc selon l’équation (1.6). La
fonction de transfert de ce système est alors définie par l’équation (1.7).
S(p)
= G(p) (1.7)
E(p)
G(p) étant la fonction de transfert du système dans le domaine de Laplace. On peut
alors représenter le système selon la Figure 1.4.
18
Afin de simplifier l’analyse de tels systèmes, lorsque les non-linéarités sont suffisam-
ment faibles, il est fréquent de les étudier comme systèmes LIT en effectuant une linéari-
sation locale autour d’un certain nombre de points de fonctionnement. Nous retrouvons
alors les propriétés liées aux systèmes LIT [9].
Une fois les propriétés du modèle établies, il est important de fixer une convention
de représentation afin de l’étudier plus en détail. Nous allons détailler deux types de
représentations communes en automatique dans la section suivante.
Le système proposé ici est un capteur de rayonnement solaire basé sur un corps ther-
mique de capacité thermique Cs et de résistance thermique Rs , déterminés par les pro-
priétes du matériau et la géométrie du système, vis-à-vis de la température ambiante
Tamb . La température interne du système est désignée par la grandeur Ts , exprimée en ◦ C
et mesurée via la résistance PT1000 Rth , alimentée par un courant constant I.
Nous supposerons ici que la température ambiante Tamb est constante et connue.
L’entrée du système est désignée par le flux thermique Qe (t) et la sortie du système
est la tension Vs (t).
Le système peut être séparé en deux parties :
— le comportement thermique,
— la conversion thermo-électrique.
19
Le comportement thermique répond à l’équation (1.8).
Rs
Ts (p) = Qe (p) + Tamb (p) (1.9)
1 + Rs Cs p
Cette partie peut donc se représenter selon la Figure 1.6.
Ts (t)
Rth (t) = R0 (1 − ) (1.10a)
1000
IR0
Vs (t) = Rth (t)I = IR0 − Ts (t) (1.10b)
1000
On en déduit le schéma bloc de la conversion (Figure 1.7) que l’on vient associer au
système précédent pour définir le système complet(Figure 1.8).
20
Vs (p) Rs −R0 I R0 Rs I
Gs/Qe (p) = = =− (1.11a)
Qe (p) 1 + Rs Cs p 1000 1000(1 + Rs Cs p)
Vs (p) −R0 I
Gs/T amb (p) = = (1.11b)
Tamb (p) 1000
Vs (p)
Gs/R0 I (p) = =1 (1.11c)
R0 I(p)
Nous remarquons ainsi que même dans le cas d’un système simple, le nombre de fonc-
tions de transfert à calculer devient important. De plus, la notion d’évolution temporelle
du système n’est pas parfaitement explicitée par cette représentation, G(p) étant une
relation d’entrées/sorties qui masque l’état du système (et donc l’information que nous
souhaitons observer). Pour ces raisons, la représentation d’état est généralement préférée
dès que la complexité du système devient importante.
La représentation d’état
A partir du moment où la complexité d’un système ne peut plus se résumer à une
simple relation d’entrées/sorties, ou quand il est nécessaire de représenter des paramètres
et/ou états internes du système, la représentation d’état devient la solution privilégiée.
Ainsi, nous définissons les n états internes de notre système par le vecteur X (appelé
vecteur d’états) tel que :
x
1
..
X= . (1.12)
xn
Les m entrées du système sont définies par le vecteur U, appelé vecteur de commande :
u
1
..
U= . (1.13)
um
Et les k sorties sont représentées par le vecteur Y, appelé vecteur de mesure :
y
1
..
Y= . (1.14)
yk
Ainsi, le système général est régi par les équations :
21
interactions. Mais il présente un avantage encore plus important lorsque nous considérons
le système comme étant LIT.
En effet, dans ce cas les équations d’évolution et de mesure deviennent :
Avec
— [A] la matrice d’évolution de dimensions [n, n],
— [B] la matrice de commande de dimensions [n, m],
— [C] la matrice de mesure de dimensions [k, n],
— [D] la matrice direct de dimensions [k, m] (cette matrice est généralement nulle).
En dérivant un modèle d’état linéaire, il devient possible par analyse des propriétés de
[A], [B], [C] et [D] de déterminer des propriétés importantes telles que la commandabilité
et l’observabilité des états X du système.
Pour notre exemple, nous pouvons placer la mesure Qe dans l’état du système. En
effet, il ne s’agit pas d’une entrée du système au sens où nous ne la connaissons pas a
priori et nous cherchons à estimer sa valeur. Ce capteur peut alors se représenter par les
vecteurs d’état, de commande et de mesure suivants :
Q
X= e (1.17a)
Ts
Y= Vs (1.17b)
Tamb
U= (1.17c)
1
0 0
[A] = 1 −1
(1.18a)
Cs R s Cs
0 0
[B] = 1
(1.18b)
R s Cs
0
h i
[C] = −R0 I (1.18c)
0 1000
h i
[D] = 0 R0 I (1.18d)
Observabilité
D’après [9], l’observabilié d’un système est définie par :
22
Dans le cas qui nous intéresse, cela signifie que si notre capteur est observable, il est
possible d’estimer son état interne, dans lequel nous aurons au préalable mis la mesure qui
nous intéresse. Il s’agit donc d’une condition nécessaire pour nous permettre de réaliser
la fusion de données et en extraire la grandeur physique désirée de façon non biaisée.
Ce critère est déterminé pour un système linéaire par le calcul du rang de la matrice
d’observabilité [O] définie par (1.19) (n étant le nombre d’états du système).
C
C[A]
[O] =
..
(1.19)
.
C[A]n−1
Il faut que la matrice [O] soit régulière (donc det([O]) 6= 0).
Dans le cas de notre capteur de rayonnement solaire, nous obtenons :
−R0 I
0 1000
[O] = −R0 I R0 I
(1.20)
1000Cs 1000Rs Cs
R02 I 2
det ([O]) =− 6 (1.21)
10 Cs
Ainsi, le flux thermique Qe est observable si R0 6= 0 et I 6= 0 sur ce capteur.
Il devient alors possible de vérifier si le système est observable, et dans le cas contraire,
de vérifier si l’ajout de points de mesures (augmentation de Y, et donc de [C]) permet de
le rendre observable. Par exemple, on voit ici qu’il est inutilie de mesurer I en plus de V
pour observer Qe .
Une fois l’observabilité obtenue sur notre système (ou modèle), il s’agit de mettre en
place un observateur, ou un estimateur, permettant d’estimer l’état du modèle à partir
des mesures. Dans notre cas, nous confions cette tâche à un filtre de Kalman, ce qui est
l’une des solutions les plus étudiées pour effectuer de la fusion de données multi-capteurs
[11][12].
Les observateurs
Le principe de base d’un observateur consiste à estimer l’état d’un système observable
à partir de ses entrées et de ses sorties. Pour ce faire, la solution consiste à réaliser le
précédé en trois étapes :
— Estimer l’état du système depuis le modèle :
˜
Ẋ(t) = f (X̂(t), U(t)),
23
— Prédire les sorties observées :
Ỹ(t) = h(X̃(t), U(t)),
— Corriger l’état par propagation de l’erreur d’estimation à partir de la mesure Y(t) :
X̂(t) = X̃(t) + [K](Y(t) − Ỹ(t))
Différent types d’observateurs peuvent être réglés en modifiant la valeur de [K]. Le
cas optimal en terme d’erreur quadratique est l’estimateur Bayesien ([13]) dans le cadre
des systèmes continus en temps et en état. Ce filtre se base sur un calcul de la densité
de probabilité de l’espace d’états et des mesures pour propager à chaque instant l’erreur
de mesure proportionnellement à cette probabilité. Le gain de correction [K] est ainsi
mis à jour de façon continue en fonction de l’état courant estimé du système. Cet esti-
mateur représente cependant une charge de calcul trop importante pour être réalisé par
un calculateur sur un système dont l’espace d’état est trop grand. Nous allons donc nous
concentrer sur une simplification du filtre Bayesien sous certaines hypothèses.
La discrétisation
Zt
[A](t−t0 )
X(t) = e X0 + e[A](t−τ ) [B] u(τ ) dτ (1.22)
t0
∞ k
En prenant la forme développée de l’exponentielle d’une matrice e[A] t = [A]k tk! ,
P
n=0
l’intégrale précédente se simplifie et l’expression devient :
Xk+1 = e[A] Te Xk + [A]−1 e[A] Te − I [B] uk (1.24)
24
L’équation de sortie étant une combinaison linéaire valable à tout instant, elle reste
inchangée. Nous obtenons donc un modèle d’état discret représentant exactement le com-
portement du système continu échantilloné–bloqué par la forme :
Xk+1 = e[A] Te Xk + [A]−1 eA Te − I [B] uk (1.25)
Yk = [C]Xk + [D] Uk (1.26)
Cette représentation reste exacte quelle que soit la période d’échantillonage choisie.
Cependant dans le cas d’une modélisation analytique, le calcul de l’exponentielle et de
l’inverse matricielle peut donner des résultats trop complexes à utiliser ou tout simplement
être trop complexe à calculer en un temps raisonnable. Dans ce cas, des transformations
approchées demandant des fréquences d’échantillonage plus élevées peuvent être utili-
sées : ainsi l’intégrale 1.22 peut être simplifiée en utilisant le développement partiel de
l’exponentielle eA Te ≈ I + A Te ce qui permet d’éviter le calcul de l’inverse et donne :
Avec :
— Xk le vecteur d’état à l’instant k ayant pour covariance la matrice carrée [P],
— Yk le vecteur de mesure à l’instant k,
— Uk le vecteur de commande à l’instant k,
— Vk le vecteur de bruit d’état à l’instant k ayant pour covariance la matrice carrée
[Q],
— Wk le vecteur de bruit de mesure à l’instant k ayant pour covariance la matrice
carrée [R].
25
X̂k−1
Evolution
X̃k
Prédiction
X̃k Ỹk Yk
Correction
X̂k
Le filtre de Kalman est un filtre récursif (i.e. il utilise la sortie de son estimation
corrigée à l’instant k pour estimer l’état à l’instant k + 1) qui peut être représenté sous
la forme de la Figure 1.9, avec, pour chaque étape, les opérations décrites en Table 1.1.
Ce filtre vise à minimiser l’erreur quadratique de X̂k .
La plus grosse latitude de réglage du filtre de Kalman, pour un modèle donné, consiste
en l’ajustement des coefficients des matrices de covariance de l’estimé [P0 ] (matrice [P] à
l’instant initial, permettant une convergence rapide et précise du filtre), [Q] et [R].
Pour un système linéaire bien modélisé, ce filtre présente d’excellentes performances.
Son plus gros point faible étant cependant son incapacité à traiter les cas non-linéaires.
Pour répondre à cela, plusieurs méthodes ont étés développées au cours des années. Nous
nous concentrerons sur les deux méthodes principales : le filtre de Kalman étendu (Ex-
tended Kalman Filter, EKF) et l’Unscented Kalman Filter (UKF).
26
— Nous remplaçons la résistance Rth de notre capteur de rayonnement solaire par une
thermistance à coefficient de température négatif (CTN) dont la réponse est
1 1
Rth (T ) = R0 exp −B( − ) (1.32)
T0 T
Figure 1.10 – Un accéléromètre 2 axes est installé sur une roue pour en déterminer la
vitesse
Comme évoqué en 1.2.2, la solution la plus fréquente pour traiter un système non
linéaire consiste à linéariser ce système autour de son point de fonctionnement. Dans
le cas d’un système en représentation d’état, et dont le point de fonctionnement évolue
au cours du temps, cela consiste à calculer des matrices Jacobiennes de transition (et
de mesure) que nous noterons [FX ] et [FV ] pour les matrices relatives respectivement à
l’évolution de l’état et à l’impact du bruit dans l’équation d’évolution.
De même, pour l’équation de mesure, nous aurons respectivement [HX ] et [HW ] pour
l’état et le bruit.
Ainsi, les équations du système deviennent :
27
Étape Filtre de EKF Système réel
X̃k+1 = f (X̂k , Uk , 0) Xk+1 = f (Xk , Uk , Vk )
Évolution [P̃k+1 ] = [FX,k+1 ][P̂k ][FX,k+1 ]T
+[FV,k+1 ][Q][FV,k+1 ]T
Prédiction/mesure Ỹk = h(X̃k , Uk , 0) Yk = h(Xk , Uk , Wk )
Ek = Yk − Ỹk
[Kk ] = [P̃k ][HX,k ]T ([HX,k ][P̃k ][HX,k ]T + [R])−1
Correction
X̂k = X̃k + [Kk ]Ek
[P̂k ] = (I − [Kk ][HX,k ])[P̃k ]
28
Unscented Transform pour propager les densités de probabilités directement au travers
de la fonction non-linéaire.
λ
,i = 0
ωiµ = λ+n
1
(1.36a)
2(λ+n)
, i ∈ [1, 2n]
ω0µ + 1 − α2 + β ,i = 0
ωic = 1
(1.36b)
2(λ+n)
, i ∈ [1, 2n]
2n
Y˜ =
X µ
ωi Y (i) (1.37a)
i=0
2n
ωic (Yi − Y˜ )(Yi − Y˜ )T
X
[C̃Y ] = (1.37b)
i=0
29
(a) Densité de probabilité pour UKF
Figure 1.11 – Densité de probabilité obtenu sur un cosinus pour x ∼ N (10, 0.52 )
30
Méthode Moyenne Covariance
Monte Carlo -0.7354 0.07860
Unscented Transform -0.734450 0.0960
Linéarisation -0.8390 0.07399
Table 1.3 – Données statistiques propagées dans f (x) = cos(x) pour x ∼ N (10, 0.52 )
est présentée en Figure 1.11, ainsi que les moyennes et covariances obtenues après les
différentes méthodes (Table 1.3).
Nous remarquons ainsi que la méthode Unscented Transform fournit une approxima-
tion plus précise de la linéarisation locale, tout en ayant une charge calculatoire nettement
plus faible que la méthode Monte Carlo.
A partir de là, la méthodologie pour obtenir le filtre de Kalman UKF est la suivante :
— Évolution :
— Générer un jeu de points pondérés pour l’état
q q
Xk = X̂k , X̂k + (n + λ)[P̂k ], X̂k − (n + λ)[P̂k ] (1.39)
— Projection de la mesure :
— Générer un jeu de points pour l’état estimé
q q
X̃k+1 = X̃k+1 , X̃k+1 + (n + λ)[P̃k+1 ], X̃k+1 − (n + λ)[P̃k+1 ] (1.42)
31
— ainsi que la covariance croisée état/mesure
2n
(i) (i)
ωic (X̃k+1 − X̃k+1 )(Ỹk+1 − Ỹk+1 )T
X
[P̃xy,k+1 ] = (1.45)
i=0
— On en déduit finalement le gain de Kalman
32
Lorsque nous initialisons les filtres EKF et UKF dans le même état, nous obtenons
pour une évolution bruitée de Qe et une valeur fixe de Tamb l’estimation de Qe (Figure
1.12a) et de Ts (Figure 1.12b).
(a) Estimation de Qe
(b) Estimation de Ts
Nous remarquons ainsi que pour cette application, le filtre EKF et le filtre UKF ont des
performances équivalentes et fournissent une estimation cohérente avec la réalité terrain.
Dans ce cas, le filtre UKF ayant généralement une complexité plus importante, il est donc
préférable d’utiliser un filtre EKF.
33
Capteur accéléromètre sur roue
Pour cet exemple, l’évolution du système est linéaire et son équation de sortie est
fortement non-linéaire (fonctions trigonométriques).
L’état du système est représenté par le vecteur X :
θ
X = θ̇
(1.49)
θ̈
avec
— θ l’angle de rotation de la roue (en rad),
— θ̇ la vitesse angulaire de la roue (en rad/s),
— θ̈ l’accélération angulaire de la roue (en rad/s2 ).
La matrice d’évolution [A] est :
0 1 0
[A] = 0 0 1
(1.50)
0 0 0
Nous obtenons pour estimation de la vitesse de rotation la Figure 1.13a et pour l’esti-
mation de l’accélération angulaire la Figure 1.13b, le filtre EFK ayant été initialisé avec
l’état initial du modèle pour limiter la divergence à l’initialisation.
Nous remarquons ainsi que le filtre EKF diverge rapidement sur cette application
(en moins de 10s), jusqu’à atteindre une singlarité numérique aux alentours de 4000s
empêchant la poursuite des calculs, alors que le filtre UFK arrive à maintenir l’estimation
lorsqu’il a convergé vers l’état du système.
34
(a) Estimation de la vitesse angulaire
Figure 1.13 – Comparaison des filtres EFK et UFK pour l’estimation de l’état de la roue
35
effectuer et les rend donc embarquables sur une architecture à faible puissance de calculs
tel que les micro-contrôleurs.
Selon les caractéristiques des paramètres du système, ces filtres pourront êtres linéaires,
non-linéaires ou hybrides.
Γcal
Φ̃
Yk Filtre de Calibration
Uk
Phase 1
Φ̃
Γ̃k
Yk Filtre d’Estimation
Uk
Phase 2
Dans le cas de notre capteur de rayonnement solaire, nous pouvons, par exemple, fixer
Φ = (R0 ) et Γ = (Qe ).
Lors de la calibration du capteur, nous positionnons celui-ci dans le noir. Nous sommes
donc en conditions contrôlées, avec Qe = 0. Le premier estimateur peut alors déterminer
la valeur du paramètre R0 .
Une fois cette étape effectuée, la valeur R0 est connue et figée, le second estimateur
peut alors déterminer la valeur de Qe quelles que soient les conditions de fonctionnement
du système.
1.3 Conclusion
Au cours de ce chapitre, nous avons exploré la problématique de la fusion de données
multi-physiques pour les capteurs.
Dans un premier temps, nous nous sommes concentrés sur la modélisation, avec les
problématiques liées à la linéarité, à la dispersion et au vieillissement des capteurs, puis,
nous nous sommes intéressés aux modes de représentations qui étaient à notre disposition,
pour finalement se concentrer sur la représentation d’état qui est la plus appropriée dans
le cas de systèmes multi-entrées, multi-sorties et à états internes cachés.
Finalement, nous nous sommes intéressés aux observateurs nous permettant d’estimer
l’état interne de notre modèle, et en particulier sur les filtres de Kalman.
En lien avec la problématique de non-linéarité de la plupart des systèmes physiques,
nous avons développé deux classes de filtres de Kalman non-linéaires : l’EKF et l’UKF.
36
Bien que le premier présente un avantage de simplicité de mise en place et de com-
préhension, nous avons montré que le filtre UKF présentait un net avantage en termes de
précision face à son concurrent.
Nous avons ainsi présenté un système de filtres hybrides permettant d’obtenir de
meilleures performances pour les systèmes présentant une équation linéaire et l’autre
non-linéaire.
L’évolution de la complexité des systèmes et de la capacité de calculs nous permet
désormais de réaliser des capteurs moins coûteux en effectuant, de façon algorithmique,
la fusion de données d’un ensemble de sous-capteurs moins sélectifs. Ainsi, un capteur de
qualité des fluides peut maintenant effectuer des mesures aussi variées que la température,
la puissance d’émission et de transmission optique de LEDs, la conductivité ou la capacité
du fluide [18].
CTN
Fluide
Photo
LED détecteur
Figure 1.15 – Principe de base du capteur UQS
Bien que performantes, les techniques que nous avons abordé au cours de ce chapitre
présentent cependant une contrepartie en termes de charge de calcul et d’occupation
mémoire. Cela peut s’avérer sans grand désagrément lorsque le programme est exécuté
sur une machine moderne. L’objectif de réaliser des capteurs embarqués nous contraint
cependant à limiter nos ressources, pour des raisons de coût ou de consommation. Ainsi,
dans le prochain chapitre, nous allons nous intéresser à la réduction de la charge de notre
37
algorithme de fusion sur le processeur sur lequel il s’exécute afin de pouvoir l’embarquer
au sein d’un capteur intelligent.
38
Bibliographie
[1] R. MOOS. A brief overview on automotive exhaust gas sensors based on electroce-
ramics. Int. J. Appl. Ceram. Technol, pages 401–413, 2005.
[2] Jing GAO. Etude et Mise au Point d’un Capteur de Gaz Pour la Détection Sélective
de NOx en Pot d’Echappement Automobile. PhD thesis, 2011.
[3] P.VERNOUX A.HADJAR, J.P VIRICELLE. Complementary study and optimiza-
tion of potentiometric nox sensor and nh3 detection, July 2012.
[4] M.Schweizer-Berberich et al. Pulsed mode of operation and artificial neural network
evaluation for improving the co selectivity of sno2 gas sensors. Sensors and Actuators
B : Chemical, 65 :91–93, June 2000.
[5] J. M. Kahn ; R. H. Katz ; K. S. J. Pister. Next century challenges : Mobile networking
for “smart dust”. Proceeding MobiCom ’99 Proceedings of the 5th annual ACM/IEEE
international conference on Mobile computing and networking, pages 271–278, 1999.
[6] The Economist. Where the smart is, June 2016.
[7] Kalman R. E. A new approach to linear filtering and prediction problems. Transac-
tion of the ASME- Journal of Basic Engineering, 82 (series D) :35–45, 1960.
[8] B.F. Spencer Jr. ; Manuel E. Ruiz-Sandoval ; Narito Kurata. Smart sensing techno-
logy : Opportunities and challenges. Structiral Control Health Monitoring journal,
11 :349–368, 2004.
[9] Yves Granjon. Automatique, Systèmes linéaires, non linéaires, à temps continu, à
temps discret, représentation d’états. Dunod, 2nde edition, 2010.
[10] B.M. Brown. The Mathematical Therory of Linear Systems. Chapman & Hall LTD.,
1961.
[11] H. Wang ; S. Dong. Adaptive fusion design using multiscale unscented kalman fil-
ter approach for multisensor data fusion. Mathermatical Problems in Engineering,
2015 :10, 2015.
[12] Y. Huang et al. Journal of Bionic Engineering, Volume 4, Issue 1 :53–62, March
2007.
[13] Fredrik Orderud. Comparison of kalman filter estimation approaches for state space
models with nonlinear measurements. 2005.
[14] Robert Grover Brown ; Patrick Y.C. Hwang. Introduction to Random Signal and
Applied Kalman Filtering. Wiley, 4th edition, 2012.
[15] S.J. Julier ; J.K. Uhlmann. A new extension of the kalman filter to nonlinear systems.
Signal Processing, Sensor Fusion, and Target Recognition VI, 3068, 1997.
[16] P. Del Moral ; A. Doucet. Particle methods : An introduction with applications.
ESAIM : PROCEEDINGS, 44 :1–46, January 2014.
39
[17] Eric A. Wan and Rudolph Van Der Merwe. The unscented kalman filter for nonlinear
estimation. pages 153–158, 2000.
[18] Hao Wu ; Chao Tan ; Feng Dong. An on-line adaptive estimation method for water
holdup measurement in oil–water two-phase flow with a conductance/capacitance
sensor. Measurement Science and Technology, 27(7), July 2016.
40
Chapitre 2
Au cours du chapitre précédent, nous avons vu que, sous hypothèse de ressources suffi-
santes, il était possible de réaliser un capteur multi-physique intelligent basant sa mesure
sur la fusion de données provenant de plusieurs de ses éléments constitutifs. Cette solu-
tion présente, entre autres, l’avantage de pouvoir embarquer un capteur sur un équipement
dont les conditions de fonctionnement ne sont pas contrôlées de façon précise.
Les algorithmes permettant de résoudre ces problématiques sont cependant parfois
compliqués à exécuter en temps réel sur une machine moderne (par exemple, le filtre
particulaire consomme une grande quantité de ressources pour obtenir une précision et
une vitesse de convergence satisfaisantes). À partir de ce constat, la question d’embarquer
des algorithmes complexes sur capteurs se pose. En effet, les ressources disponibles sur
le capteur sont nettement inférieures aux ressources d’un ordinateur moderne, pour des
raisons de coût, d’encombrement et de consommation électrique. Ainsi, comment est-il
possible de sélectionner et d’adapter une solution présentée au chapitre 1.2 pour qu’elle
fonctionne sur un capteur ?
Au cours de ce chapitre, nous allons nous intéresser dans un premier temps aux ques-
tions de limitation des ressources liées aux applications embarquées, à la complexité des
algorithmes utilisés et de leurs implications en termes de temps de calcul. Dans une se-
conde section, nous nous attarderons sur les notions de temps-réel et de criticité avant de
présenter les solutions proposées afin de diminuer la charge de calculs, et ainsi permettre
à notre capteur d’embarquer de l’intelligence.
41
2.1.1 Notions de temps réel
La notion de temps réel peut être définie comme :
En informatique, on parle d’un système temps réel lorsque ce système est capable
de contrôler (ou piloter) un procédé physique à une vitesse adaptée à l’évolution
du procédé contrôlé[1].
Pour une interface homme-machine par exemple, une réponse inférieure à 100ms sera
perçue comme temps-réel[2], alors que pour la mesure de température d’un bâtiment, un
temps de réponse de 10s sera lui aussi temps-réel.
Afin d’être considéré comme un système temps-réel, notre capteur doit donc être en
mesure d’effectuer ses mesures et de fusionner les données, le tout en un temps inférieur à
la période de mesure demandée (imposée par le système ou l’environnement, le temps le
plus court étant celui qui fixe la contrainte). Le temps de calcul et donc la complexité des
algorithmes, ou bien la puissance du micro-contrôleur, doit être adapté afin de satisfaire
cette contrainte, quelles que soient les conditions.
2.1.2 Risques
En cas de non respect de la contrainte de temps-réel, le capteur peut se trouver dans
le cas où sa fréquence d’échantillonnage, et donc le modèle d’évolution du système, est
instable[3]. Il peut aussi perdre des échantillons de la mesure si le processus d’échan-
tillonnage est indépendant des calculs. Dans les deux cas, un problème de consistance des
données entre le modèle et la réalité est probable, on parle alors de désynchronisation.
De plus, un calcul trop long et une désynchronisation peuvent entraîner une perte de
données en sortie ou la transmission de données erronées. Les risques de tels évènements
et leur criticité doivent êtres évalués pour déterminer une marge de sécurité vis-à-vis du
temps de calcul. Ainsi, pour une forte criticité, il faudra garantir un temps réel du capteur
quelles que soient les conditions, on parle alors de temps réel “dur”. Dans le cas d’une
plus faible criticité, on pourra se permettre des désynchronisations occasionnelles, on parle
alors de temps réel “mou”.
Par exemple, un capteur de vitesse de roue sur une voiture a une forte criticité si on
le lie au calculateur d’ABS, ou de suspension [4], avec un temps de réponse devant être le
plus faible possible (disons 10ms). Si on le lie au tableau de bord pour afficher la vitesse
du véhicule, la criticité diminue ainsi et la contrainte temps réel peut être relâchée à un
temps de réponse de 100ms sans détérioration des performances.
2.1.3 Verrous
Lorsque la criticité d’un système nous impose un comportement temps-réel avec des
temps de réponse faibles, nous pouvons faire face à plusieurs verrous qu’il nous faudra
lever avant d’atteindre notre objectif. Parmi ceux-là, nous pouvons trouver :
— Une fréquence d’échantillonnage mal dimensionnée vis-à-vis de l’évolution de l’envi-
ronnement : un sous-échantillonnage nous fait perdre des informations importantes
tandis qu’un sur-échantillonnage augmente le temps de calcul de façon inutile,
— Un modèle ou des algorithmes trop complexes pour être exécutés dans le temps
imparti sur le micro-contrôleur sélectionné,
42
— Une mauvaise sélection de micro-contrôleur, trop petit en termes de mémoire, ou
trop faible en vitesse de calcul pour exécuter les calculs minimaux requis dans le
temps imparti.
Ainsi dans le premier cas, une étude du comportement du système peut permettre de
trouver le meilleur compromis en termes de période d’échantillonnage pour l’environne-
ment déterminé. Dans le second cas, il existe des techniques de simplification que nous
détaillerons en section 2.5. Finalement, si l’optimisation d’algorithmes ne suffit pas, le
remplacement de l’unité de calcul par une version plus adaptée est incontournable (à
moins de réévaluer les exigences de temps de réponse à la baisse).
Figure 2.1 – Évolution des parts de marché des micro-contrôleurs en fonction de leur
architecture [5]
De plus, les périphériques permettant d’accélérer les calculs tels que les unités à virgule
flottante (Floating Point Unit, FPU [6]) souvent absentes dans le passé car coûteuses
et gourmandes en énergie, deviennent de plus en plus accessibles [7]. Afin d’estimer la
43
Processeur Flops simple précision Ops virgule fixe 32 bits
9S08 8 bits / 16MHz ≈ 17000 ≈ 3M
STMF103RB 32 bits / 72MHz ≈ 340000 ≈ 32M
STMF4x 32 bits / 216 MHz / FPU ≈ 1M sans FPU, ≈ 12M ≈ 100M
faisabilité d’algorithmes sur les capteurs embarqués, nous avons évalué la capacité de
quelques architectures représentatives du marché et des possibilités offertes :
— le M9S08 comme représentant de petits processeurs 8 bits
— les STMF1xx comme représentant de processeurs 32 bits sans unité de virgule flot-
tante
— les STMF4xx comme représentants de processeurs 32 bits avec unités de calcul en
virgule flottante
Un simple banc de test a été réalisé sur un M9S08DZ128 et un STMF103RB permettant
de mesurer le temps d’exécution en nombre de cycles d’horloges de plusieurs multiplica-
tions/accumulations avec différentes résolutions de calcul (virgule fixe, et flottant simple
précision). Nous utilisons les résultats du benchmark [8] pour extrapoler les performances
dans le cas de l’utilisation de l’unitée flottante du STMF4xx.
La Table 2.1 donne les ordres de grandeur du nombre d’opérations (arithmétiques
simples : multiplications par constantes, multiplications, additions) par seconde, mesurés
sur les différentes architectures.
On remarque que l’effort de codage des calculs en virgule fixe permet des gains énormes
en puissance de calcul. Cependant les algorithmes évoqués par la suite peuvent perdre
leur propriétés par cette dégradation de la résolution, spécialement les filtres de Kalmans
utilisant des inversions de matrices où le passage en virgule fixe peut rendre l’algorithme
instable. Nous évaluerons donc par la suite uniquement le pire cas de l’utilisation de calculs
en virgule flottante simple précision.
Une limitation importante est celle de la taille de la mémoire embarquée (quelques
kilo-octets de programme et de mémoire vive) qui contraint les calculs les plus exigeants
à être déportés. Bien que les processeurs soient déclinés sous différentes tailles de mémoire,
sans impact sur l’architecture du code et du système (souvent seul le coût est modifié, dans
un même boîtier, pour un même système), celle-ci peut limiter l’utilisation de certains
algorithmes. L’empreinte mémoire des algorithmes n’est pas étudiée dans ce mémoire
car une première évaluation a montré que ce critère n’était pas critique dans le cas des
applications envisagées sur une puce comportant 128 ko de Flash et 6ko de RAM.
En revanche, la durée d’exécution des algorithmes constitue une contrainte très cri-
tique, les sections suivantes évaluent la complexicité des algorithmes d’estimation envisa-
gés afin de donner un outil pour leur dimensionnement.
44
connus :
— Le nombre de lignes de code exécutées,
— Le nombre d’opérations à virgule flottante exécutées (Floating Point OPerations,
FLOP),
— Nombre d’accès mémoire...
D’après [9], l’analyse asymptotique mathématique d’un algorithme permet de donner
un indicateur plus fiable qu’une mesure de performances effectuée sur une architecture
donnée avec un jeu de données fixé.
Ainsi, l’opération consiste à prendre un indicateur numérique donné, en fonction d’une
grandeur d’entrée, notée n (par exemple le nombre de points dans un vecteur) et de définir
la complexité de l’algorithme T (f (n)).
Par exemple, pour le calcul de la moyenne d’un vecteur de longueur n, avec l’algorithme
1.
Algorithme 1 : Calcul de la moyenne d’un vecteur
Fonction Moyenne (vecteur)
Entrée : vecteur Vecteur dont on veut calculer la moyenne
Sortie : moyenne Moyenne du vecteur d’entrée
somme=0;
Pour i de 1 à longueur(vecteur) faire
somme = somme + vecteur[i];
FinPour
somme
moyenne = longueur(vecteur) ;
FinFonction
Nous obtenons, ainsi :
— Pour le nombre de lignes exécutées : T (3 + 2n),
— Pour le nombre d’opérations à virgule flottante : T (2 + 2n).
Nous pouvons aussi utiliser l’indicateur O(n) comme indicateur de complexité asymp-
totique de l’algorithme. Ainsi, dans les deux cas :
45
cette évaluation, nous considérerons comme indicateur, le nombre d’opérations à virgules
flottantes effectuées.
46
2.3.3 Addition de deux matrices
Soit deux matrices [A] et [B] de dimensions (n, m), on définit le vecteur [C] = [A]+[B]
tel que
Algorithme 4 : Addition de deux matrices
Fonction AjouterMatrices(A,B)
Entrée : A Matrice de dimensions (n, m)
Entrée : B Matrice de dimensions (n, m)
Sortie : C Matrice de dimensions (n, m)
Pour i de 0 à n − 1 faire
Pour j de 0 à m − 1 faire
C[i, j] = A[i, j] + B[i, j] ;
FinPour
FinPour
FinFonction
Nous obtenons ainsi une complexité de :
— n ∗ m additions,
— n ∗ m affectations.
D’où une complexité algorithmique de T (n ∗ m) = O(n ∗ m).
47
Ce qui nous donne une complexité en FLOP de T (4n3 + 2n2 ) ∼ O(4n3 ).
Dans un estimateur de Kalman les matrices inversées sont des matrices de covariances
Hermitiennes (et donc symétriques) qui peuvent êtres inversées en utilisant la décompo-
sition de Cholesky, ce qui divise encore par deux la complexité algorithmique du calcul
[10].
On a ainsi :
— n ∗ m additions,
— n divisions.
Soit deux matrices [A] et [B] de dimensions respectives (n, m) et (p, m) composées de
m vecteurs de longueurs respectives n et p. Nous définissons Ā et B̄ les vecteurs moyennes
de ces matrices.
Ainsi, la matrice de covariance [C] de dimensions (n, p) est définie par l’algorithme :
48
Algorithme 7 : Calcul de la matrice de covariance
Fonction MatriceCovariance(A, B, Ā, B̄)
Entrée : A Matrice de dimensions (n, m) composée de m vecteurs de longueur
n
Entrée : B Matrice de dimensions (p, m) composée de m vecteurs de longueur p
Entrée : Ā vecteur moyen de A
Entrée : B̄ vecteur moyen de B
Sortie : C Matrice de covariance de dimensions (n, p)
Pour i de 0 à n-1 faire
Pour j de 0 à p-1 faire
somme = 0;
Pour k de 0 à m-1 faire
somme = somme + (A[i, k] - Ā[i])*(B[k, j] - B̄[j]);
FinPour
C[i, j] = somme;
FinPour
FinPour
FinFonction
Ce qui nous donne les opérations :
— n ∗ m ∗ p multiplications,
— n ∗ m ∗ p additions,
— n ∗ p ∗ (m + 1) affectations.
Et donc une complexité algorithmique de T (2 ∗ n ∗ m ∗ p) = O(2 ∗ n ∗ m ∗ p).
2.3.8 Récapitulatif
En résumé, les complexités de calcul de chaque opération mathématique peut se ré-
pertorier suivant la Table 2.2.
49
chaque étape de calcul (c.f. Table 2.3) et pour l’algorithme complet (c.f. Table 2.4).
Nous remarquons ainsi que bien que les filtres EKF et UKF appartiennent à la même
classe de complexité (∼ O(n3 )), l’algorithme UKF est environ deux fois plus demandeur
en termes de temps de calcul.
50
Complexité du système Complexité factorisée
Estimateur
complet (FLOPs) (FLOPs)
EKF 8788 2548
UKF 21970 6370
KF + UKF N/A 3298
LUT
Dans le cas de fonctions représentatives du système non identifiables ou présentant des
comportements difficiles à calculer (racines, trigonométrie...), l’utilisation de tables de re-
cherche peut être mise en place avec une interpolation simple entre les points. Au travers
de cette technique, il est possible de faire des calculs de fonctions multi-dimensionnelles
complexes avec un petit micro-contrôleur, pour peu que la mémoire disponible soit suffi-
sante pour stocker les tableaux de points.
51
simplifier la complexité du filtre [11]. On peut par exemple pré-calculer des matrices de
gain que nous stockerons en mémoire et que nous sélectionnerons en fonction de l’état
du système. Cette solution réduit le filtre de Kalman à un simple observateur dit à gain
commuté.
L’algorithme se résume alors aux étapes et complexités présentées en table 2.6.
Ainsi, la complexité totale d’un tel filtre diminue pour devenir T (.) = 4 ∗ m ∗ n + 2 ∗
m ∗ p + 2 ∗ m + 2 ∗ n2 + 2 ∗ n ∗ p + 2 ∗ n, soit O(.) = 2 ∗ n2 .
2.6 Conclusion
Au cours de ce chapitre, nous avons vu que le fait d’avoir un algorithme fonctionnel
hors ligne, à puissance de calcul illimité ne garantissait pas la possibilité de réaliser un
52
capteur intelligent temps-réel. Nous avons parcouru un ensemble de techniques permettant
d’étudier, puis de diminuer la complexité des algorithmes exécutés par le micro-contrôleur
afin de rendre réalisable le système.
Au cours du prochain chapitre, nous allons mettre en oeuvre la méthodologie que
nous venons de développer sur une application de capteurs intelligents embarqués : le
projet UQS utilisant un système de spectroscopie infrarouge embarqué et de mesure de
températures pour estimer la concentration d’urée en solution aqueuse dans un réservoir
d’AdBlue, pour la dépollution des gaz d’échappement sur les véhicules à moteur.
Nous nous intéresserons ensuite à l’application de qualification du geste sportif, abor-
dée par le projet Architecture Reconfigurable Embarquée Multi-capteurs (AREM), qui pré-
sente une contrainte temps-réel forte avec un besoin de traitements de données à une
fréquence de 50Hz.
L’étude de ces deux capteurs présente des intérêts variés de par les différentes échelles
de temps et de compensation qu’ils abordent, en pointant cependant vers un même but :
traduire des données d’entrées multi-physiques complexes vers un indicateur simple.
“L’ère de la sobriété, de la simplicité heureuse a sonné.”, Pierre Rabhi
53
54
Bibliographie
55
56
Chapitre 3
Au cours des chapitres précédents nous avons décrit une méthodologie que nous avons
utilisée pour réaliser des capteurs embarqués intelligents. Nous avons d’abord exploré le
point de vue modélisation, représentation et traitement du signal, puis le point de vue
contraintes d’implémentation liées au matériel utilisé.
Nous allons maintenant nous intéresser à l’application de cette méthode sur un cas
pratique : le capteur de qualité d’urée UQS (Urea Quality Sensor) développé et commer-
cialisé par MEAS-France / TE Connectivity.
Après une description de son principe de fonctionnement et des informations fournies
par le capteur, nous listerons les paramètres d’influence pouvant agir sur les différents élé-
ments du système. Nous nous intéresserons ensuite aux modèles multi-physiques que nous
avons dressés du système et de ses éléments constitutifs afin de décrire au mieux son com-
portement en fonction des paramètres d’influence. Puis, nous présenterons les différentes
représentations que nous avons élaborées du système et en étudierons l’observabilité, avant
de parler des différents filtres et observateurs découlants de ces représentations ainsi que
de leurs performances.
Finalement, nous aborderons les problématiques liées à l’implémentation sur la cible
réelle embarquée, avant de présenter les solutions proposées.
57
3.1.1 Spectroscopie NIR
Le principe sur lequel s’appuie le capteur UQS est la mesure de l’absorption électroma-
gnétique d’une substance dans le proche infra-rouge pour en déterminer sa composition.
Ce principe, nommé spectroscopie, est utilisé depuis de nombreuses années en laboratoire
pour l’analyse d’espèces chimiques [5].
Ainsi, pour effectuer cette mesure, un spectromètre de laboratoire peut émettre une
lumière blanche, et lorsqu’il est étalonné sur celle-ci, mesurer la modification du spectre
lorsque l’on intercalle un échantillon entre la source lumineuse et l’élément sensible (Figure
3.1). Dans ce cas, nous obtenons le spectre d’absorption de cette espèce aux longueurs
d’ondes mesurées, sous la forme de counts (unité élémentaire de sortie des convertisseurs
analogique/numériques), dépendant du paramétrage et de la calibration du spectroscope.
La mesure dans le NIR (bande des 750nm à 1100nm dans notre cas) permet de dé-
terminer la présence d’espèces chimiques telles que l’eau et l’urée [6] (c.f. Figure 3.2).
Dans ce cas, afin de s’affranchir du paramétrage du spectroscope, nous avons normalisé
les courbes en ratio par rapport à la valeur maximale du spectre de l’urée à 25◦ C.
Figure 3.2 – Spectres d’absorption de l’eau et de l’urée à 32.5% sur 3cm à 25◦ C
58
être étalonnés avant chaque utilisation et maintenus dans un environnement contrôlé
(température, humidité, poussière...). Le processus de mesure impose donc un matériel
volumineux, coûteux et difficile à mettre en oeuvre qui ne peut être embarqué tel quel sur
un véhicule.
Afin de simplifier le fonctionnement et de diminuer les coûts, tout en permettant
au capteur de fonctionner dans une plage de température plus large, le capteur UQS
repose sur la sélection de trois points du spectre et l’utilisation de composants optroniques
standards pour réaliser sa mesure.
Ainsi les composants sélectionnés pour effectuer l’émission optique sont des LEDs
(Light Emitting Diodes) qui sont des composants présentant un spectre d’émission optique
relativement fin. La réception quant à elle est effectuée par des photo-diodes dont la
sensibilité spectrale est concentrée dans le NIR [7].
Afin de choisir les longueurs d’ondes optimales pour effectuer les mesures, nous pou-
vons construire la Figure 3.4 par soustraction du spectre de l’eau à celui de l’urée.
Nous choisissons donc de réaliser trois points de mesure sur cette courbe : un point de
sensibilité nulle à la concentration, utilisé comme référence, et deux points sensibles à la
concentration. Les longueurs d’onde sélectionnées sont 810nm, 970nm et 1020nm.
Nous obtenons ainsi pour les trois LEDs les spectres d’émission suivants (Figure 3.5).
Contrairement aux spectromètres de laboratoires qui émettent une lumière blanche et
décomposent le spectre à la réception, ce qui leur permet en une mesure de connaître le
spectre d’absorption de l’échantillon mesuré (voir Figure 3.1), le produit UQS utilise deux
photo-diodes : une pour la voie directe, permettant d’effectuer les mesures d’absorption,
et une sur la voie miroir permettant de compenser les variations de caractéristiques des
59
Figure 3.4 – Sensibilité spectrale de la concentration d’urée à 25◦ C
LEDs dans le temps (Figure 3.6). Aucun de ces détecteurs n’étant sélectif en longueur
d’onde (Figure 3.7), l’analyse spectrale est effectuée par allumage et mesure séquentielle
de chacune des LEDs (Figure 3.8).
60
Figure 3.7 – Sensibilité spectrale des photo-diodes à 25◦ C
sensibilite(λ, 25)
D’un point de vue système optique, nous pouvons considérer deux grandes catégories
d’entrées :
— les entrées commandées par la partie intelligente du système : les courants d’exci-
tation des LEDs dans notre cas,
— les entrées de mesures (ou grandeurs d’influence) du système : ici, il s’agira des
températures des différents éléments, ainsi que du type et de la concentration du
fluide.
Les sorties quant à elles seront les valeurs mesurables par l’unité numérique de traite-
ment, à savoir les températures des éléments (prises à proximité des LEDs, photo-diodes
et du chemin optique) ainsi que les courants en sortie des photo-diodes.
61
3.2 Paramètres d’influence et modèle
Les conditions de fonctionnement du produit, immergé dans un réservoir sur un véhi-
cule, peuvent fortement varier au cours de sa vie. Il peut ainsi voir :
— des variations de température importantes (selon les saisons, l’exposition ou les
utilisations, le produit peut fonctionner entre −10◦ C et +80◦ C, avec parfois des
évolutions thermiques rapides lors de l’activation du circuit de dégivrage de l’urée),
— des fluides inappropriés, lorsque l’opérateur de maintenance du véhicule effectue,
par erreur ou à propos, le remplissage avec le mauvais fluide (gasoil, eau, lave
glace...),
— des altérations du chemin optique, lorsque le réservoir est sale (contient de la
poussière) ou que l’urée dégaze (produit des bulles qui peuvent se fixer le long du
chemin optique),
— des vibrations liées au déplacement du véhicule...
62
(a) sensibilité thermique de l’eau : absorption(λ, 0, T )
sation). Les cas d’obstructions totales ou d’obstructions rapides seront considérés comme
étant traités en amont par un autre algorithme travaillant sur les données brutes.
63
(a) LED4 : Sled4 (λ, T, L4current )
64
Figure 3.11 – LED package UQS
65
[10] : cette dérive est observable car affectant à la fois la voie directe et la voie
miroir de façon proportionnelle, et donc aisément compensable,
— Une opacification des plastiques sur le chemin optique liée à leur vieillis-
sement [11] : cette dérive peut être délicate à observer car n’affectant pas de façon
identique toutes les longueurs d’onde. Un réajustement des paramètres du mo-
dèle en conditions connues (ré-étalonnage) peut être nécessaire pour corriger ce
vieillissement,
— Une humidification du boîtier, liée à la pénétration d’eau due à l’immer-
sion continue dans le fluide : cette humidification modifiant le comportement
optique, voire le rendant inopérant en cas de condensation, ne sera pas adressée
par les algorithmes traités ici.
LEDs
Nous pouvons représenter une LED selon le schéma bloc en Figure 3.12.
Cela signifie qu’une LED est un composant commandé par un courant Icmd , subissant
l’impact d’une température Tled et émettant un spectre Sled . Le modèle que nous devons
réaliser aura donc deux paramètres physiques d’entrée et une sortie.
Pour que le modèle soit représentatif, nous devons donc établir la relation permettant
de déterminer le spectre de chacune des trois LED en fonction des variations des courants
de commande et des températures.
Ces modèles ont étés réalisés sous la forme de tables LUT à 2 entrées, renseignées par
les données mesurées en laboratoire sur chaque LED. Ces données nous ont étés fournies
par MEAS-France / TE Connectivity qui les a collectées selon la procédure suivante :
66
— Le boitier LED est fixé sur un module à effet Peltier permettant d’en asservir la
température, et le flux optique de sortie est transmis à un spectroscope (Figure
3.13),
— Le module à effet Peltier est réglé de façon successive pour que la température des
LEDs soit de 0, 20, 40 et 60◦ C,
— Pour chaque température, le courant d’excitation de chaque LED est piloté pour
des valeurs allant de 8 à 50mA selon les LEDs,
— Pour chaque couple température/courant, le spectre de chaque LED est mesuré et
sauvegardé dans un fichier séparé.
A partir de ces mesures, le modèle que nous utilisons consiste en une interpolation
linéaire du spectre de sortie entre ces points de caractérisation, en fonction de la tempé-
rature et du courant auxquels sont soumis les LEDs (Figure 3.10).
Photo-diodes
La photo-diode quant à elle fonctionne comme la réciproque de la LED : à un spectre
d’entrée et à une température donnés, il fait correspondre un courant de sortie (Figure
3.14).
Pour modéliser ce capteur, nous considérons que son courant de sortie est la somme
de :
— son courant d’obscurité (Idark ), dépendant uniquement de la température et mesu-
rable lorsque le capteur est dans le noir total (son spectre d’entrée est nul quelle
que soit la longueur d’onde),
— la somme des contributions de chaque puissance spectrale reçue multipliée par la
sensibilité spectrale correspondante (équation 3.1).
Z +∞
Idet (Tdet , Sentree ) = Idark (Tdet ) + Sentree (λ) · sensibilite(Tdet , λ)dλ (3.1)
−∞
Pour dresser ce modèle nous avons donc besoin de déterminer Idark (Tdet ) et sensibilite(Tdet , λ)
pour la photo-diode utilisée.
67
Dans ce but, nous avons utilisé un monochromateur afin de générer un spectre lu-
mineux très étroit dont la longueur d’onde peut être sélectionnée et nous avons mesuré,
sur la bande de sensibilité du capteur, le courant généré par l’excitation à cette longueur
d’onde. Cette caractérisation a été réalisée en deux temps :
— Une caractérisation précise par pas de 20nm, à 23◦ C effectuée au LAAS-CNRS,
selon la Figure 3.15,
— Une caractérisation plus large (pas de 40 à 70nm) aux températures de 10, 30, 50
et 80◦ C réalisé par MEAS-France / TE Connectivity.
Le modèle, quant à lui, utilise les tables générées par ces mesures et effectue une
interpolation linéaire en température et polynomiale d’ordre 3 en longueur d’onde pour
générer le spectre de sensibilité. A partir de là, il calcule le courant de sortie à partir de
l’équation 3.1.
Absorption de l’urée
L’absorption de l’urée correspond à la modification spectrale effectuée par le fluide le
long du chemin optique. Cette modification dépend de la température et de la composition
du fluide. Dans notre cas, nous ne considérerons que les cas où le fluide est composé d’un
mélange d’eau et d’urée, dont les proportions peuvent varier.
Ce modèle peut être représenté selon la Figure 3.16.
Pour ce modèle, nous considérons que le spectre de sortie peut être calculé selon
l’équation 3.2 pour toute valeur λ de longueur d’onde :
68
Nous avons de plus considéré que le comportement en absorption du fluide était linéaire
en fonction de la concentration ce qui donne :
(32.5 − %u)
absorption(λ, Tu , %u) = absorptioneau (λ, Tu ) + absorption32.5% (λ, Tu ) (3.3)
32.5
où nous utilisons dans cette interpolation linéaire l’absorption de l’eau absorptioneau (λ, Tu )
et l’absorption absorption32.5% (λ, Tu ) d’un fluide composé à 32.5% d’urée à partir des
données fournies par MEAS-France / TE Connectivity pour ces deux fluides à -10, 0, 10,
20, 30, 40, 50 et 60◦ C (la Figure 3.4 représente ces fonctions pour une température de
25◦ C).
Les caractérisations ayant été effectuées par l’entreprise pour un trajet optique de
longueur 1cm dans le fluide et le produit ayant un trajet de 3cm dans le fluide, nous
avons, de plus, mis à la puissance 3 les niveaux d’absorption fournis pour s’adapter au
produit.
Nous obtenons ainsi les courbes d’absorption présentées en Figure 3.9. Ces trois mo-
dèles réalisés, nous avons ensuite mis au point un modèle orienté signal, composé des
éléments modélisés, du capteur.
69
Tled %u Tf luid Tdir
Li,mirror
det
Les équations du modèle optique sont résumées ici et comportent donc une grande
quantité de tables non linéaires :
Z +∞
Li,mir = Sled,i (λ, Tled , Li,current ) Kmir,i sens(λ, Tmir ) dλ(3.4)
−∞
Z +∞
Li,dir = Sled,i (λ, Tled , Li,current ) Kmir,i Kdir Kdir,i abs(λ, Tu , %u) sens(λ, Tdir ) dλ(3.5)
−∞
70
De plus, il fournit en sorties :
— Les 3 points de mesure de température effectués par les capteurs : Tu M es, Tled M es,
Tdir M es (respectivement la température du fluide, du point entre les LEDs et la
photo-diode miroir et le dernier à côté de la photo-diode directe),
— Les valeurs «réelles» des températures des composants : Tf luid , Tled , Tmir et Tdir
(respectivement la température du fluide, des LEDs, de la photo-diode miroir et
de la photo-diode directe).
Et peut donc se représenter selon la Figure 3.18.
Caractérisation de l’auto-échauffement
Les mesures thermiques sur le capteurs UQS ont étés répétées à deux occasions au
LAAS-CNRS : sur la version A du capteur en Décembre 2014 et sur la version B du
capteur en Mai 2016.
Pour réaliser ces mesures, nous avons utilisé :
— Une caméra thermique FLIR x6580sc,
— Un PC portable équipé du logiciel de communication CAN MEAS-France / TE
Connectivity SUS Studio,
— Un boîtier de communication USB/CAN NI CAN,
— Une alimentation stabilisée permettant d’alimenter le produit à +5V,
— Un étau permettant de maintenir le produit en position.
Pour réaliser les mesures thermiques sur les capteurs, ces derniers sont montés «PCB
nus» : toutes les parties mécaniques ainsi que les guides optiques sont retirés pour qu’il
ne reste que le circuit imprimé avec les composants.
71
Le circuit est alors positionné devant la caméra (Figure 3.19), connecté au boîtier NI
CAN et à l’alimentation stabilisée (éteinte).
Après mise au point et démarrage de l’enregistrement des données sur la caméra, le
produit est alimenté. L’enregistement se déroule jusqu’à stabilisation des températures
sur le produit.
Le test est répété sur les deux faces du circuit imprimé.
Sur la version A du produit, nous avons effectué les mesures en deux fois :
— une première mesure sur circuit normal,
— une seconde mesure sur circuit peint en noir (peinture à la bombe, permettant
d’homogénéiser l’émissivité thermique).
Les résultats présentés ici correspondent aux résultats de la seconde session de mesures,
jugée plus pertinente. Ainsi le produit est positionné tel que vu depuis la caméra (Figure
3.20). Nous obtenons ainsi, en régime stabilisé un profil thermique du produit selon les
trois lignes Li1, Li2 et Li3 les températures présentées en Figure 3.21, ainsi que la réponse
temporelle présentée en Figure 3.22.
Nous remarquons ainsi que les principaux échauffements sont réalisés par le micro-
contrôleur et le driver de bus CAN. De plus, le temps de réponse thermique du système
à l’allumage est d’environ 1 minute (donc une stabilisation à 95% de la valeur finale à 3
minutes) et varie légèrement selon les composants concernés.
72
Figure 3.20 – Positionnement du capteur vu par la caméra
73
(a) vue de face
74
(a) vue de face
75
Figure 3.25 – Positionnement du capteur vu par la caméra (vue de côté)
Nous pouvons ainsi remarquer que les mesures de côté (Figure 3.25) n’atteignent pas
l’état stable, et sont par conséquent à refaire pour être significatives. A part cela, les
temps observés sont comparables à ceux mesurés sur la version A du capteur.
Remarques : L’émissivité thermique des différents matériaux présent n’étant pas par-
faitement connue, les valeurs indiquées par la caméra, ainsi que les différences de tem-
pératures entre les composants ne sont pas des mesures exactes. La composante la plus
intéressante étant donc le comportement dynamique et l’évolution relative des compo-
sants.
De plus, le produit étant sorti de son boîtier, cette caractérisation thermique est utili-
sable uniquement à but indicatif et n’est pas représentative du comportement thermique
réel du système en conditions normales d’utilisation. Cette caractérisation permet de
mettre en équations les phénomènes thermiques de manière à obtenir un modèle simple,
i.e. linéaire et suffisemment précis comme proposé dans la section suivante.
Modèle thermique
Afin de dresser le modèle thermique du capteur, nous avons considéré la géométrie de ce
dernier, puis dressé un modèle électrique équivalent permettant de déterminer les différents
échanges thermiques. Pour cela, nous avons utilisé la table d’équivalence présentée en
Table 3.1.
Nous avons ainsi dressé le modèle thermique à partir des observations effectuées dans
la section 3.3.5 sous la forme du modèle électrique équivalent présenté en Figure 3.26.
Ce modèle considère, d’une part, 4 températures liées à des zones du PCB identifiées
par : la température Tcpu dans la zone CPU ; celle de la zone de mesure du trajet direct
par Tdir M es ; celle de la zone de mesure du trajet mirroir et des LEDs d’émission par
76
Modèle thermique Modèle électrique
conduction thermique conductance électrique
capacité thermique capacité électrique
flux thermique courant électrique
température tension
Table 3.1 – Correspondance entre les composants thermique et les composants électriques
équivalents
77
Tu M es.
Tcpu
Tu M es
Tled M es
Nous considérons les valeurs du vecteur d’état X =
Tdir M es
composé de 7 tem-
Tled
Tdir
Tmir
pératures jugées pertinentes pour notre modèle.
dTu M es
Cu = (Tcpu − Tu M es) Gu + (Tf luid − Tu M es) Gub (3.6)
dt
En dressant l’ensemble des équations différentielles des températures composant le
vecteur d’état, nous pouvons déterminer les matrices d’évolution A (3.7) et de commande
B (3.8).
78
0 1 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 1 0 0 0
[C] =
0 0 0 0 0 0 0
(3.9)
0 0 0 0 1 0 0
0 0 0 0 0 0 1
0 0 0 0 0 1 0
0 0
0 0
0 0
[D] =
0 1
(3.10)
0 0
0 0
0 0
Nous remarquons que le vecteur de sortie comprend les véritables mesures issues de
capteurs, i.e. toutes les variables se terminant par M es, et des températures n’étant pas
directement mesurées mais qui sont estimées par l’observateur d’état que l’on construit à
partir de ce modèle dans la section 3.3.7. Ces dernières sont donc des mesures issues du
capteur logiciel.
Ainsi, l’équation d’évolution du système s’obtient sous la forme discrete 3.11 en consi-
dérant l’équation comme un système échantillonné–bloqué vu dans la section 1.2.4. La fré-
quence d’échantillonnage Te , d’une seconde, étant rapide devant les constantes de temps
observées, de l’ordre de la minute, la forme simplifié de l’expression discrète est choisie.
L’équation de mesure, augmentée des températures virtuellement ajoutées par le capteur
logiciel, reste inchangée sous la forme de l’équation 3.12.
79
— Un échelon thermique : le produit est placé dans un bain d’eau à température
ambiante, alimenté jusqu’à stabilisation des températures (ou à la suite du test
précédent). A l’instant T1 , nous ajoutons une grande quantité d’eau à ébullition
(environ 2 fois le volume du bain initial) et nous mélangeons délicatement pour
évacuer les bulles du trajet optique et homogénéiser les températures du fluides.
Durant tout le test, ainsi que les 20 minutes suivantes, les mesures sont sauvegar-
dées dans un fichier sur le PC de test.
À partir des données produites par ces deux tests, nous sommes en mesure d’identifier
les constantes de temps des impacts de chaque entrée sur les températures de sortie
(traduites par des rapports conductance/capacité), ainsi que les rapports à appliquer sur
les impacts (traduits par des rapports de conductances).
L’identification de ces paramètres est relativement aisée pour les fonctions de transfert
vers les températures mesurées Tu M es, Tled M es et Tdir M es. Elle est cependant plus
difficile en ce qui concerne les températures réelles des composants Tled , Tmir et Tdir car ces
informations ne sont pas directement observables au travers des mesures, mais seulement
par extrapolation au niveau des mesures optiques (variations des puissances émises par
les LEDs, des courants d’obscurité des photo-diodes et de leurs sensibilités).
La résolution analytique des paramètres du modèle d’évolution discret eA Te étant
irréalisable, nous choisissons de résoudre les paramètres d’évolution dans le domaine
continu. Pour cela, nous commençons par résoudre les paramètres Gu , Gl , Gd , Gt , Cc , Cu , Cl
et Cd en partant d’une valeur initiale, et en cherchant à minimiser l’erreur de l’expression :
Paramètre Valeur
Gt 1.88789722e-08
Cc 9.99355658e-03
Gu 3.90177558e-07
Gub 6.80321536e-08
Cu 1.44679623e-05
Gd 3.79327528e-05
Gdb 1.59315523e-05
Cd 1.61689630e-03
Gl 7.82413025e-04
Glb 3.61409392e-04
Cl 8.89679715e-03
80
A partir de là, les paramètres τled , τmir et τdir ont étés déterminés manuellement
par dichotomie afin de minimiser l’erreur de mesure au niveau des courants mesurés
(L2direct , L3direct , L3direct , L2mirror , L3mirror , L4mirror ) sur le modèle optique alimenté par
les mesure logicielles Tled , Tdir et Tmir de l’estimateur thermique. Nous obtenons ainsi les
résultats présentés dans la Table 3.3.
Paramètre Valeur
τled 100
τdir 50
τmir 100
Une fois le modèle calibré, nous sommes en mesure de le tester en comparant son
comportement aux mesures réelles, soit lors d’un démarrage à froid dans un fluide de
température connue, soit par rapport à des variations de température de profil connu
réalisé en cryostat, ou en confrontant l’estimation aux mesures pour l’échelon thermique
(Figure 3.27).
Estimateur thermique
Dans un premier temps, le modèle thermique étant parfaitement établi et linéaire, nous
pouvons mettre en place un estimateur nous permettant de déterminer les températures
des différents éléments du système ainsi que du fluide à partir des mesures effectuées par
les capteurs.
Pour cela, nous modifions le modèle précédent tel que :
— La température du fluide, jusqu’à présent utilisée comme entrée du système, de-
vienne un état interne du système (qui correspond aux données que nous voulons
estimer),
— L’entrée de commande de la puissance de dissipée Pcpu est une constante,
— Les sorties du système sont les mesures effectuées par le capteur Tu M es, Tled M es
et Tdir M es.
81
(a) Estimation des températures
Figure 3.27 – Comparaison du modèle Thermique avec les mesures réelles lors d’un
échelon thermique
Nous obtenons ainsi pour vecteurs de commande, d’état (3.14) et de mesure (3.15) :
Tcpu
Tu M es
Tled M es
Tdir M es
X= (3.14)
Tf luid
Tled
Tdir
Tmir
82
Figure 3.28 – Modèle complet du capteur
Tu M es
Y = Tled M es
(3.15)
Tdir M es
U = (Pcpu ) (3.16)
Nous pouvons ainsi déduire les matrices d’évolution (3.17, 3.18) et de mesure (3.19,
3.20) :
83
direct_merge :
leds : dict mirror_gains : dict direct_gains : dict gain_pipe
absorption : direct_photo : direct_demux : direct_dico :
-L2 : Spectra_LED_pipe -L2 : gain_pipe -L2 : gain_pipe
absorption_pipe model_photodiode_pipe demux_pipe dico_pipe
-L3 : Spectra_LED_pipe -L3 : gain_pipe -L3 : gain_pipe
-L4 : Spectra_LED_pipe -L4 : gain_pipe -L4 : gain_pipe
Etat interne X
- Cu : Float64
- Tled : Float64
- Tu : Float64 mirror_merge :
84
- Kdirect : Float64 gain_pipe
- Kmirror : Float64 mirror_photo : mirror_demux : mirror_dico :
model_photodiode_pipe demux_pipe dico_pipe
thermal_model :
ThermalModel
En mode calibration
Lors de la phase de calibration, le capteur est plongé dans un bain dont la concentration
d’urée est connue, les paramètres que nous souhaitons estimer étant les gains directs
Kdirect, KdirectX ainsi que les gains miroir Kmirror et KmirrorX.
L2 current
L3current
L4current
u%
Le vecteur de commande du modèle orienté signal est donc Ucalib = .
Tled
Tdir
Tf luid
Tmir
Kdirect2
Kdirect3
Kdirect4
Le vecteur d’état correspondant est Xcalib = .
Kmirror2
Kmirror3
Kmirror4
Afin de limiter la redondance, et donc les colinéarités dans le modèle, nous avons
choisi de combiner les gains communs Kdirect et Kmirror avec les gains Kdirect4 et
Kmirror4, vu que la LED4 n’est impactée que de façon négligeable par la concentration
d’urée.
85
L2direct
L2mirror
L3direct
Les sorties du modèle quant à elles sont les courants de sortie : Ycalib =
L3mirror
L4direct
L4mirror
.
A partir de ces données, nous avons utilisé un modèle d’évolution identitaire (la matrice
d’évolution A est une matrice identité de la taille du vecteur d’état), et nous avons utilisé
un filtre HUKF afin de traiter l’estimation du vecteur d’état.
Lorsque l’estimation a convergé, les paramètres Kdirect2, Kdirect3 et Kdirect4 contiennent
la calibration du capteur et peuvent être sauvegardés pour être de nouveau utilisés lors
de la phase d’estimation de la concentration.
Une fois le capteur calibré, les gains directs de calibration sont figés et utilisés comme
commandes de l’estimateur de concentration. Dans cette phase, la concentration d’urée
n’est plus connue et doit donc être estimée.
L2current
L3current
L4current
Tled
Tdir
Ainsi, le vecteur de commande du modèle devient Uestim = .
Tf luid
T mir
Kdirect2
Kdirect3
Kdirect4
Le vecteur d’état est diminué des gains directs indépendant. On y ajoute cependant
le gain direct
commun Kdirect ainsi que la concentration d’urée u%. Ainsi, il devient
u%
Kmirror2
Xestim = Kmirror3
.
Kmirror4
Kdirect
Nous gardons les gains miroirs indépendants KmirrorX afin de prendre en compte les
variations de puissance d’émission des LEDs. Le gain direct commun Kdirect quant à lui
correspond à une opacification homogène du chemin optique (vieillissement des plastiques,
poussière...).
Le vecteur de mesure quant à lui reste identique à celui utilisé lors de la phase de
calibration Yestim = Ycalib .
86
3.3.8 Simulation
Une fois l’estimateur et le modèle mis en place, nous sommes en mesure d’effectuer les
premières simulations sur modèle afin de valider la cohérence globale de la démarche.
Pour cela, nous avons réalisé trois types de simulations que nous allons décrire ici :
— une simulation de calibration et de convergence en estimation, avec des variations
de température et de concentration,
— une simulation de calibration et de convergence en estimation avec des variations
de l’opacité du chemin optique,
— une simulation de calibration et de convergence en estimation avec des variations
des puissances d’émission des LEDs.
87
(a) Scenario complet
88
Durant tout le test, les bruits de mesures gaussiens d’écart-types :
— 0.2◦ C pour les températures,
— 5 counts pour les mesures optiques.
Les résultats de simulation de la température sont présentés en Figure 3.32 et 3.33.
Nous obtenons ainsi une erreur moyenne et un écart-type pour chaque paramètre tels
que présentés dans le tableau 3.4.
Avec une erreur maximale d’estimation de l’ordre de 2% d’urée sur la plage de test,
nous considérons que l’estimateur mis en place est suffisamment fiable pour effectuer des
simulations plus avancées.
89
Paramètre Erreur Moyenne (◦ C) Ecart-type (◦ C)
Tf luid (◦ C) -0.892 0.629
Tled (◦ C) -0.218 0.122
Tdirect (◦ C) -0.812 0.469
u% (%) -0.0224 1.224
Pour la seconde étape de validation, nous cherchons à estimer l’impact d’une variation
de gain direct (correspondant à l’opacité du fluide le long du chemin optique, par variation
de la poussière par exemple). Pour cela, nous avons mis en place le scénario de simulation
suivant :
— Lors du test, la température est fixée à 40◦ C et la concentration d’urée à 30%,
— Les 500 premières secondes, le gain direct est fixé à 1.3, stable,
— entre 500 et 3500 secondes, le gain direct diminue progressivement de 1.3 à 0.7, de
façon linéaire,
— entre 3500 et 6000 secondes, le gain est maintenu stable à 0.7.
Les bruits de mesure sont maintenus aux niveaux du test précédent.
Nous obtenons ainsi l’estimation de la concentration d’urée présentée en Figure 3.34.
Nous remarquons que la variation de gain direct utilisée lors de la simulation n’a pas
d’impact sur l’estimation de la concentration d’urée, avec une erreur moyenne d’estimation
de 0.706% et un écart-type de 0.297% sur la durée du test.
Ainsi, la stratégie mise en place pour compenser les variations communes de gain direct
(et donc, les obstructions telles que la poussière) présente des résultats prometteurs.
90
Convergence lors d’une variation de puissance des LEDs
Pour le test final, nous voulons vérifier l’impact d’une variation de puissance d’émission
des LEDs sur l’estimation de la concentration d’urée. Cette variation étant simulée par une
variation du gain miroir correspondant à la LED incriminée, et pouvant retranscrire un
vieillissement du composant, une dégradation de celui-ci ou une variation de la commande.
Pour ce test, nous avons simulé le scénario suivant :
— Lors du test, la température est fixée à 40◦ C et la concentration d’urée à 30%,
— Les 100 premières secondes, le gain miroir global est fixé à 0.9, stable et les gains
miroir individuels sont fixés à 1.0,
— entre 100 et 2000 secondes, le gain miroir de la LED2 diminue progressivement de
1.0 à 0.9, de façon linéaire,
— entre 2000 et 3500 secondes, le gain miroir de la LED4 diminue de 1.0 à 0.8,
— entre 3500 et 6000 secondes, les gains sont maintenus stables.
Nous obtenons ainsi l’estimation de la concentration d’urée présentée en Figure 3.35.
Nous remarquons que la variation de gain miroir utilisée lors de la simulation n’a pas
d’impact sur l’estimation de la concentration d’urée, avec une erreur moyenne d’estimation
de 0.499% et un écart-type de 0.294% sur la durée du test.
Ainsi, la stratégie mise en place pour compenser les variations individuelles de gain
miroir (et donc, les variations de puissance d’émission des LEDs) présente des résultats
prometteurs.
En effet, au cours des trois essais précédents, notre estimateur présente une erreur
d’estimation de la concentration inférieure à 1%. La prochaine étape de validation consiste
donc à vérifier le comportement de l’estimateur sur des données produites par le système
réel.
91
3.3.9 Application sur des données capteur
Afin de valider le comportement de l’estimateur sur des données réelles, nous avons
utilisé des données fournies par MEAS-France / TE Connectivity correspondant à des
essais effectués en cryostat sur des capteurs UQS en version B.
Considérations techniques
Notre estimateur étant prévu pour fonctionner à une fréquence d’échantillonnage de
1Hz, et les données fournies étant de fréquences variables, comprises entre 0.2 et 0.5Hz,
nous avons du effectuer une interpolation entre les points pour produire des données
utilisables par notre algorithme.
Les bruits de mesure configurés dans l’estimateur étant valables pour un échantillon-
nage direct, l’estimateur s’est cependant retrouvé dans l’incapacité de rejeter automati-
quement les «glitch» (sauts de signaux, dus à un parasite ou à une erreur lors de l’enre-
gistrement des données), ce qui nous a amené à devoir retirer manuellement les données
erronées avant de les fournir à l’estimateur.
En effet, une donnée erronée se retrouvait répétée sur plusieurs échantillons au travers
de l’interpolation mise en place, ce qui désorientait le comportement de l’algorithme. Cette
intervention n’impacte cependant pas la représentativité du test car une fois embarqué,
l’estimateur sera directement alimenté, à fréquence fixe, par les mesures du capteur.
Protocole de test
Pour ce test, le produit subit deux jeux de mesures successifs :
— une phase de calibration, au cours de laquelle le produit est immergé dans de l’urée
à 33%, et subit quatre paliers de températures : 0◦ C, 20◦ C, 40◦ C et 60◦ C (Figure
3.36),
— une phase de test, au cours de laquelle le produit est immergé dans de l’urée à
32.5% et subit les quatre mêmes paliers de température.
Sur le premier jeu de données, l’estimateur est positionné en mode calibration afin
d’estimer les gains de transmission individuels des LEDs. Sur le second jeu de données,
l’estimateur est positionné en mode estimation d’urée afin de tester la fonctionnalité
première du produit.
Étape de calibration
Comme décrit précédemment, l’étape de calibration a pour but de compenser les dis-
persions au niveau des gains du produit à partir de mesures effectuées dans un état connu.
La Figure 3.37 présente les valeurs des gains estimés par l’estimateur de calibration lors
de cette procédure sur les données du capteur.
Nous remarquons ainsi que, contrairement à la même procédure effectuée lors de la
simulation et dont les résultats sont présentés en Figure 3.31, les gains varient au cours
de la phase de calibration.
Ces variations peuvent traduire des variations environnementales, des modifications
comportementales du produit ou une imprécision de modélisation. Si nous les recoupons
avec le profil thermique de la phase de calibration (Figure 3.36), nous remarquons qu’ils
correspondent aux paliers thermiques, ce qui privilégie l’hypothèse de l’imprécision dans
le modèle.
92
Figure 3.36 – Profil de température lors de la phase de calibration du capteur
Quoi qu’il en soit, une variation des gains au cours de la calibration pose la question
de la valeur à fixer comme consigne pour l’estimateur de concentration. Dans le cas de
notre simulation, nous avons fait le choix de mémoriser la dernière valeur de gain estimée
(ce qui permet lors de l’intégration dans le produit de diminuer l’utilisation mémoire en
n’ayant pas de sauvegarde de l’historique).
93
Figure 3.38 – Estimation de la concentration d’urée
Interprétation
A partir des différentes simulations effectuées, nous remarquons que l’estimateur a un
comportement prometteur lorsqu’il est appliqué sur le modèle de simulation, mais diverge
lorsqu’il est appliqué sur les données produites par le système réel.
Ce comportement traduit donc une imprécision dans le modèle que nous avons utilisé
pour représenter le système. Par exemple, une ou plusieurs des hypothèses prises lors de
la modélisations ne sont pas valables, à savoir (non exhaustif) :
— La dissipation thermique est constante après allumage du capteur, et ne dépend
pas de la température,
— Le comportement en absorption est linéaire en fonction de la concentration en urée,
— Les gains de transmission sont constants quelles que soient les conditions de fonc-
tionnement du système,
— Les composants électroniques non optiques (amplificateurs, résistances, convertis-
seur analogique/numérique...) ne sont impactés que de façon négligeable par la
température,
— Les dilatations, et autres comportements thermo-mécaniques, n’impactent pas le
comportement du capteur...
Chacune de ces imprécisions peut impacter le comportement du modèle, et par la même
occasion celui de l’estimateur, le rendant ainsi inopérant pour l’application sélectionnée.
Pistes d’améliorations
D’après les résultats présentés ci-dessus, nous déduisons que l’estimateur n’est pas
utilisable en l’état actuel sur le système réel. Nous pouvons cependant en tirer des pistes
94
de travail permettant de lever cette limitation.
La première piste consisterait à continuer d’affiner le modèle des éléments du capteur.
Comme nous l’avons dit précédemment, certaines caractérisations (telle que celle des
photo-diodes) ont étés effectuées avec une faible précision et mériteraient d’être refaites
pour correspondre plus précisément à la réalité du capteur.
De plus, les caractérisations prises en entrée du modèle ont étés effectuées sur un seul
composant et ne sont donc pas représentatives d’un point de vue statistique. Nous ne
sommes en effet pas capable de déterminer la dispersion de certaines valeurs entre deux
composants, ou au cours de la vie du composant.
Une seconde piste consisterait à ne plus utiliser un modèle complet du capteur mais
plutôt à se baser sur un modèle boîte noire complet, faisant correspondre à chaque jeu
de paramètres d’entrée, un jeu de mesures au travers de tables de recherches. Ce modèle
pourrait alors être renseigné en phase de calibration de façon simple en faisant passer le
produit dans les différents états et en sauvegardant les informations dans la mémoire.
L’estimateur de concentration utiliserait alors le modèle boîte noire de la même façon
qu’il utilise actuellement le modèle orienté signal afin de déterminer la concentration
d’urée. Nous détaillerons dans la section suivante les travaux effectués en ce sens.
95
La seconde solution étant la voie déjà explorée par MEAS-France / TE Connectivity
sur le produit, nous nous concentrerons sur la version LUT, et plus particulièrement sur
la mise à jour des données de la LUT au cours de la calibration.
Principe de fonctionnement
La température étant une information continue, et les points de mémorisation de
la LUT étant des points discrets, nous nous sommes retrouvés face à la question de la
stratégie à adopter pour mettre à jour les informations dans la LUT.
Notre choix s’est porté sur une méthode utilisant deux LUT différentes :
— une permettant de mémoriser l’information utile (par exemple, les niveaux de ré-
ception des LEDs en fonction de la température),
— l’autre permettant de donner un niveau de confiance dans les données contenues
dans la première.
Ainsi, à partir de ces deux informations, nous pouvons effectuer une régression linéaire
pondérée permettant d’estimer le polynôme représentant le mieux le comportement du
système.
Nous noterons que pour cette stratégie, nous n’utilisons plus qu’une seule information
de température, et non les trois mesures présentées dans le modèle orienté signal.
A chaque mesure, nous calculons ainsi un indice de confiance en la mesure, en se
basant, entre autre, sur :
— la «distance thermique» : il s’agit de la distance entre température mesurée et
chaque point de la LUT,
— la «distance de mesure» : il s’agit de la distance entre la mesure courante et la
valeur correspondante dans la LUT,
— la «stabilité de mesure» : il s’agit de la différence entre la mesure courante et la
mesure effectuée à la seconde précédente.
Ainsi, en se basant sur ces indices, nous pouvons déterminer un niveau de confiance
en notre mesure. Ce niveau de confiance est alors utilisé pour mettre à jour la LUT de
confiance et la LUT de mesures (en se basant sur le rapport entre la confiance de la mesure
et la confiance précédente).
96
Donc, si la différence entre la calibration actuelle du produit et la mesure est impor-
tante, la confiance est faible et la calibration est faiblement modifiée. Cependant, si la
mesure persiste de façon cohérente autour de la même valeur, la confiance en l’état de
calibration diminue et la confiance en la mesure augmente, ce qui fait converger la calibra-
tion vers la mesure en cours. Plus les valeurs se rapprochent, plus la confiance augmente,
pour finalement considérer le point comme très fiable.
De cette façon, si le système est soumis à des températures suffisamment variées du-
rant un temps suffisamment long, la confiance en chaque point parcouru et mémorisé
sera importante, et le produit pourra se calibrer pour compenser la dégradation de ses
performances.
Par exemple, sur un profil thermique simple, et sur une seule LED, nous obtenons
lors d’une simulation l’évolution de l’erreur normalisée (une erreur de 1 correspond à une
erreur de 100%) présentée en Figure 3.39. Pour ce test, la LUT est composée d’une valeur
tous les 5◦ C sur la plage −10◦ C − 60◦ C et la température parcourt la totalité de cette
plage au cours du cycle.
Nous remarquons qu’au cours du temps, l’erreur (moyenne et écart-type) ainsi que
l’erreur quadratique mesurées sur les valeurs, entre la table de référence simulée et la
table de calibration estimée, tendent à diminuer au fur et à mesure que de nouvelles
températures sont explorées.
97
Piste d’utilisation
A ce stade, les travaux menés sur cet algorithme n’ont pas été intégrés avec un es-
timateur permettant de déterminer la concentration d’urée. Il serait cependant possible,
en dressant un modèle de simulation du système se basant sur les LUT ainsi que sur les
gains directs/miroirs utilisés dans le modèle orienté signal du capteur, de réaliser un filtre
HUKF similaire à celui présenté plus haut.
La seule condition d’utilisation est de garantir que la procédure de calibration est
effectuée sur un seul plein d’urée, dont la concentration est parfaitement connue.
3.5 Conclusion
Au cours de ce chapitre, nous avons illustré avec un cas concret industriel notre métho-
dologie permettant d’estimer un paramètre physique en fusionnant les différentes mesures
du capteur.
Dans un premier temps, nous nous sommes attardés sur la méthodologie orientée mo-
dèle, plus intuitive à mettre en place, qui nous a permis de comprendre en détails le
comportement du capteur. Nous nous sommes cependant rendus compte que la carac-
térisation séparée des différents éléments était un processus difficile à mettre en oeuvre,
et ne rendait finalement pas compte assez précisément du comportement réel du capteur
assemblé pour être utilisable au sein d’un estimateur (Figure 3.40).
Nous avons de plus remarqué que la charge de calculs nécessaire à embarquer pour
mettre en place un estimateur autour d’un tel modèle était parfaitement irréaliste compte
tenu des contraintes techniques liées à la cible du produit.
D’un point de vue conceptuel, la première étape correspond à dire que le capteur
effectue les mesures physique et transmet les données brutes au calculateur de bord (ECU)
(Figure 3.41).
Notre objectif étant de distribuer l’intelligence entre les différents éléments du véhicule,
nous nous orientons plutôt vers une intégration de plusieurs petits filtres de Kalman
simplifiés au plus près de la mesure, pour ne fournir à l’ECU que l’information utile
(Figure 3.42).
Cependant, nous pourrions pousser encore plus loin le raisonnement, en implémen-
tant les différents filtres de Kalman sur plusieurs unités de calculs (Processing Unit, PU)
pouvant être des micro-contrôleurs ou des circuits logiques dédiés (Figure 3.43) : Com-
plex Programmable Logic Device (CPLD), Field Programmable Gate-Array (FPGA), ou
98
Figure 3.41 – Le calculateur de bord effectue le calcul et contient toute l’intelligence
Figure 3.43 – La complexité est répartie sur différentes unités de traitements intégrées
au capteur
Cette méthodologie a été explorée au cours de nos travaux sur le projet Architecture
Reconfigurable Embarquée Multi-capteurs (AREM) [14] que nous explorerons au cours du
chapitre 4.
Cette étude nous a cependant permis de valider la méthodologie au niveau des es-
timateurs, qui présentent de bons résultats sur les simulations et une charge de calculs
acceptable, à condition de changer de modèle pour passer sur un modèle de LUT, nette-
ment plus rapide à itérer.
Nous avons de plus proposé une stratégie permettant de construire ce modèle de façon
dynamique et embarquée, de sorte que le capteur soit en mesure de s’auto-calibrer lorsqu’il
est dans des conditions de fonctionnement connues.
99
Bien que ces travaux n’aient pas eu le temps d’aboutir sur un démonstrateur com-
plet, assemblant ces différents blocs, nous sommes confiants quant à la faisabilité et aux
résultats pouvant êtres fournis par un tel système, en embarqué et temps réel.
Afin d’adresser plus en profondeur cette problématique de temps-réel, nous explorons
au cours du chapitre suivant l’applicabilité de cette méthode sur les problématiques de
temps-réel plus strict sur des cibles embarquées.
100
Bibliographie
[1] Arnaud Frobert Jean Milpied, Olivier Lepreux. Sensitivity of scr control strategies
to diesel exhaust fluid quality : a simulation study. 2015.
[2] Martyn V. Twigg. Urea-scr technology for denox after treatment of diesel exhausts.
Fundamental and Applied Catalysis :221–232, 2014.
[3] M. Stavros A. SKARLIS. IR spectroscopy based kinetic modeling of NH 3 -SCR on
Fe-zeolites : Application for diesel engines aftertreatment system simulation. PhD
thesis, 2013.
[4] M.W. Markus. Optimisation of the sncr-denox method using diode laser spectroscopy.
5 :115–115, 2003.
[5] Donald BURNS ; Emil CIURCZAK. Handbook of Near-Infrared Analysis, Third Edi-
tion (Practical Spectroscopy). pp. 349–369. 2007.
[6] Hoeil Chung ; Mark A. Arnold ; Martin Rhiel ; David W. Murhammer. Simultaneous
measurements of glucose, glutamine, ammonia, lactate, and glutamate in aqueous
solutions by near-infrared spectroscopy. Applied Spectroscopy, 50 :270–276, 1996.
[7] Shih-Shin Tseng Tai-Sheng Yeh. A low cost led based spectrometer. Journal of the
chinese chemical society, 53 :1067–1072, 2006.
[8] J.B. Cumming. Temperature dependence of light absorption by water. Nuclear Ins-
truments and Methods in Physics Research Section A : Accelerators, Spectrometers,
Detectors and Associated Equipment, 713 :1–4, 2013.
[9] A. A. Efremov ; N. I. Bochkareva ; R. I. Gorbunov ; D. A. Lavrinovich ; Y. T. Rebane ;
D. V. Tarkhin ; Y. G. Shreter. Effect of the joule heating on the quantum efficiency
and choice of thermal conditions for high-power blue ingan/gan leds. Semiconductors,
40 :605–610, 2006.
[10] Otto Pursiainen ; Norbert Linder ; Arndt Jaeger ; Raimund Oberschmid ; Klaus Streu-
bel. Identification of aging mechanisms in the optical and electrical characteristics
of light-emitting diodes. Applied Physics Letters, 79, 2001.
[11] David L. Allara. Aging of polymers. Environmental Health Perspectives, 11 :29–33,
June 1975.
[12] Richard STEVENS. UNIX Network Programming, Volume 2, Second Edition : In-
terprocess Communications. Prentice Hall.
[13] C.T. Kelley. Iterative Methods for Optimization. Frontiers in Applied Mathematics,
1999.
[14] Aurélien Valade et al. Système intelligent multi-capteurs dédié à la capture du mou-
vement. CETSIS, pages 155–160, 2014.
101
102
Chapitre 4
Au cours du chapitre précédent, nous avons montré qu’il était possible, à partir d’un
modèle suffisamment détaillé, de concevoir et de réaliser un capteur embarqué en utilisant
la fusion de données multi-physiques à partir d’un filtre de Kalman.
Les travaux présentés, reposant uniquement sur des données transmises au travers
d’un bus CAN, et non directement traitées sur le composant posent encore la question de
l’applicabilité en temps-réel d’une telle méthodologie. Pour adresser cette problématique,
nous allons nous pencher sur un second projet réalisé au cours de cette thèse : le projet
Architecture Reconfigurable Embarquée Multi-capteurs (AREM) [1, 2].
L’objectif de ce projet est de concevoir et de réaliser un réseau type BodyLAN à partir
de systèmes embarqués à base de centrales inertielles, pour permettre le monitoring temps
réel du mouvement sportif (du point de vue biomécanique).
Puis d’apporter une analyse instantanée des données mesurées, pour évaluer la qualité
du mouvement et le comparer à un "mouvement expert".
Enfin, cet ensemble multi capteur doit apporter un retour temps réel sur la qualité du
mouvement effectué soit pour un athlète ou encore pour un entraineur. Pour cela, l’une
des informations pouvant être utile serait l’orientation d’un capteur dans l’espace, ce qui
permet de déterminer l’orientation d’un segment du corps de l’athlète et donc pourrait
permettre la reconstruction du squelette, ou de plusieurs segments stratégiques en multi-
pliant le nombre de capteurs sur le corps (principe de la motion capture [3]). En équipant
chacune de ces centrales de son propre système de traitement, en faisant ainsi une archi-
tecture distribuée, nous avons décidé d’effectuer la fusion de données permettant d’obtenir
l’orientation d’un capteur dans l’espace, à partir des données brutes, de façon locale sur
chaque unité de traitement. Nous ne nous concentrerons ici que sur le fonctionnement
d’une seule de ces unités.
Nous allons dans un premier temps généraliser la méthode appliquée pour le capteur
UQS, puis l’appliquer au capteur AREM, en nous attardant sur la problématique du
temps-réel. Ensuite, nous présenterons la solution que nous avons choisie pour mettre
en place ce système, puis nous présenterons les résultats obtenus à partir de l’un de ces
capteurs. Finalement, nous proposerons un modèle plus contraint permettant de rajouter
de l’information, et de tendre vers un indicateur de performances en temps réel.
103
4.1 Généralisation de la méthode
En se basant sur ces travaux, nous pouvons généraliser la méthode pour l’appliquer
sur différents types de capteurs destinés à êtres embarqués avec des ressources limitées,
en suivant la procédure suivante :
— Dresser la liste des entrées/sorties et des paramètres d’influence du système,
— Définir, si nécessaire, les paramètres de calibration du système,
— Déterminer les différents cas d’utilisation de ce système, ainsi que les conditions
liées,
— A partir de là, déterminer les vecteurs de commande, de mesure et d’état du sys-
tème dans les différents cas d’utilisation,
— Si nécessaire, séparer les paramètres indépendants sous la forme de plusieurs sous-
systèmes,
— Mettre en place un modèle (mathématique ou basé sur des LUTs) permettant
de déterminer les sorties du système en fonction de son état interne et de ses
commandes,
— Mettre en place un ou plusieurs filtres de Kalman (linéaire, non-linéaire ou hybride)
permettant d’estimer l’état interne du système à partir du modèle.
Afin de mieux ajuster les paramètres des filtres de Kalman, il est intéressant de disposer
de jeux de mesures sur un nombre de capteurs suffisamment large pour en tirer des valeurs
statistiques de référence (valeurs moyenne, dispersion, bruits, vieillissement...).
104
Figure 4.1 – Système AREM intégré
— Pour entrée du système, son orientation dans l’espace, que nous pouvons représen-
ter en utilisant les angles d’Euler pour définir la rotation du capteur par rapport
au repère NED (North East Down),
— Pour paramètres d’influence, le champ magnétique environnant (perturbations élec-
tromagnétiques, champ magnétique terrestre), ainsi que son accélération (accélé-
ration gravitationnelle et déplacement du capteur),
— Pour sorties du système, les mesures, selon les axes ~x, ~y et ~z du capteur, de l’accé-
lération, de la vitesse de rotation et du champ magnétique environnant.
Paramètres de calibration
Sur des capteurs de centrales inertielles intégrés à faible coût (tels que ceux utilisés au
sein du projet AREM, ou dans les téléphones portables actuels), nous avons à compenser
lors de la calibration :
— les offsets de mesure sur les accéléromètres et gyroscopes,
— les gains de mesure sur les accéléromètres et gyroscopes,
— le champ magnétique résiduel (Hard/Soft Iron Distortion).
Ces compensations doivent êtres effectuées lors d’une phase de calibration du capteur.
Cas d’utilisation
Concernant les cas d’utilisation, le capteur sera utilisé dans les cas suivants :
— une phase de calibration, au cours de laquelle le capteur est déplacé selon toutes les
rotations autour des axes ~x, ~y et ~z pour déterminer les gains et offsets de mesures,
et ceci à partir des valeurs min/max et moyennes des mesures,
— une phase d’estimation d’attitude, au cours de laquelle nous chercherons à déter-
miner l’orientation du capteur à partir de ses mesures et de sa calibration.
105
Figure 4.2 – Méthodologie appliquée à AREM
106
Vecteurs du modèle
Dans tous les cas, le vecteur de mesure du capteur est constitué des sorties de celui-ci,
à savoir ici les valeurs d’accélération, de vitesse de rotation et de champ magnétique sur
les axes ~x, ~y et ~z, que nous noterons ax , ay , az , gx , gy , gz et mx , my , mz . Ainsi le vecteur de
mesure du capteur sera alors :
ax
ay
az
gx
Y=
gy
(4.1)
gz
mx
my
mz
Le vecteur d’état pourrait quant à lui être composé des positions et des vitesses an-
gulaires selon les angles d’Euler :
vx
vy
vz
X=
(4.3)
yaw
pitch
roll
107
Mise en place du modèle
A partir de ces informations, nous pouvons dresser le modèle mathématique de pro-
jection des vecteurs de gravité et de nord magnétique qui permettront de projeter les
mesures. On aura donc une fonction d’évolution pouvant être linéaire :
δyaw
= vx (4.4)
δt
δpitch
= vy (4.5)
δt
δroll
= vz (4.6)
δt
(4.7)
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Ẋ = [A] X + [B] U = X + U (4.8)
1 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 1 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
et une fonction de mesure non linéaire :
Y = mesure(U, X) (4.9)
108
Engine Lite [11][12] de chez ST Microelectronics, qui effectue la fusion Attitude Heading
Reference System (AHRS) [13] de données des différents capteurs de la centrale inertielle
pour déterminer l’attitude du système en utilisant les quaternions comme représentation
interne.
Sur cette application, le filtre est en mesure d’effectuer la fusion de données, sur le
micro-contrôleur cadencé à 72MHz, à une fréquence de 50Hz (soit 20ms entre chaque
estimation), et fournit un résultat d’estimation corrigée à 25Hz (soit 40ms entre chaque
résultat fournit) (Figure 4.3), tout en gérant la sauvegarde de données sur carte SD et la
retransmission au travers d’un lien WiFi en temps réel, permettant ainsi un affichage ou
un post-traitement des orientations du capteur.
109
Figure 4.4 – Installation du capteur AREM conjointement aux capteur passifs Vicon
0 Z
−100
−200
0 20 40 60 80 100 120
sample number
AREM Tag orientation
100
X
Y
50
angle (degrees)
−50
−100
29 050 29 100 29 150 29 200 29 250 29 300 29 350
sample number
Figure 4.5 – Comparaison de l’orientation mesurée par le système Vicon et par AREM
sur une rotation selon l’axe Y
110
4.3.2 Utilisation pour l’analyse de la nage
L’objectif premier du système AREM étant la qualification du mouvement sportif,
nous avons effectué des essais sur le mouvement de natation. Pour cela, nous avons installé
une carte AREM sur la main gauche d’un nageur (Figure 4.6) et collecté l’évolution de
l’orientation de ce capteur au cours d’une session de natation [15].
Des études simlilaires ont étés menées par [16] et [17].
Au cours de ces essais, nous avons constaté que le lien WiFi était rompu à partir du
moment où la main du nageur était immergée, l’eau agissant comme un filtre absorbant
la bande de fréquence de 2.4GHz du WiFi. Les données présentées lors de cette étude sont
donc collectées depuis la carte SD intégrée au prototype du capteur.
Partant de là, nous avons effectué une campagne de mesures sur différents nageurs,
de niveau amateur à élite, afin de comparer le mouvement mesuré et de rechercher des
indicateurs de performance (lié à la distinction de niveau et/ou à la dégradation du mou-
vement par la fatigue [15]). Nous obtenons par exemple les Figures 4.7a et 4.7b sur un
nageur amateur et un nageur élite.
Depuis ces données, nous pouvons par exemple remarquer que le nageur amateur a une
fréquence de nage plus importante que le nageur élite, la forme globale du geste est de plus
relativement différente. Autant d’indicateurs qui peuvent être étudiés de façon approfondie
pour, à terme, permettre la mise en place d’un diagnostic embarqué en temps-réel lors du
geste sportif.
La poursuite de ces travaux permettrait, en collaboration avec des spécialistes en bio-
mécanique, de fournir aux coachs sportifs, pour les sportifs de haut niveau ou amateurs,
des indications quantifiables leur servant au quotidien dans leur pratique, et le tout ins-
tantanément lors de l’action.
L’intérêt ici est de montrer qu’en appliquant ces méthodes, nous sommes désormais en
mesure d’effectuer de la mesure d’indicateurs de mouvement en temps-réel et en embarqué,
ce qui ouvre la voie, dans les années à venir à des applications plein air telles que l’aide
à l’entraînement sportif, là où, il y a peu de temps, les environnements contrôlés tels que
le Vicon étaient rois.
4.4 Conclusion
Au cours de ce chapitre, nous avons montré que la méthode présentée sur le capteur
UQS, avec des contraintes temps-réel faibles, pouvait être généralisée et appliquée avec
des contraintes de temps plus exigeantes sur une application complètement différente telle
que l’analyse du mouvement sportif, en temps réel et en conditions non contrôlées.
Cette étude va dans le sens des objets connectés intelligents qui sont amenés à être de
plus en plus présents dans notre environnement dans les années à venir. Nous pouvons citer
par exemple les capteurs connectés aux smartphones tels que les cardio-fréquencemètres,
ainsi que les montres connectées permettant de disposer de l’information instantanément,
en temps réel, d’un seul coup d’oeil.
L’utilisation de filtrage avancé prédictif tel que le filtre de Kalman nous pemettrait
ainsi d’enrichir par un modèle, et donc d’améliorer la réponse de capteurs, afin d’éviter
d’obtenir des erreurs. En l’occurence, un capteur d’activité de Smart Watch nous indiquant
que l’on a marché 10km durant nos heures de bureau alors que nous sommes simplement
restés installés devant notre ordinateur.
111
(a) Vue de dessus
112
(a) Nageur amateur
Figure 4.7 – Comparaison du mouvement d’un nageur amateur avec un nageur élite
113
114
Bibliographie
[1] Aurélien Valade et al. Système intelligent multi-capteurs dédié à la capture du mou-
vement. CETSIS, pages 155–160, 2014.
[2] A. VALADE et al. Embedded sensors system applied to wearable motion analysis in
sports. 9th International Conference on Biomedical Electronics and Devices, 2016.
[3] Carmen M. N. Brigante ; Nunzio Abbate ; Adriano Basile ; Alessandro Carmelo Faulisi
and Salvatore Sessa. Towards miniaturization of a mems-based wearable motion cap-
ture system. IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, 58(8),
August 2011.
[4] Kenneth A. Mann ; Frederick Werner ; Andrew K. Palmer. Frequency spectrum ana-
lysis of wrist motion for activities of daily living. Journal of Orthopaedic Research,
7 :304–306, 1989.
[5] Qinggang Meng ; Baihua Li ; Horst Holstein. Recognition of human periodic move-
ments from unstructured information using a motion-based frequency domain ap-
proach. Image Vision Computing, 24 :795–809, 2006.
[6] ST Microelectronics. inemo engine lite, overview and download instructions.
[7] David Hoag. Apollo guidance and navigation considerations of apollo imu gimbal
lock. MIT Instrumentation Laboratory Document, E-1344, 1963.
[8] Jack B. Kuipers. Quaternions and rotation Sequences : a Primer with Applications
to Orbits, Aerospace, and Virtual Reality. Princeton University Press, 1999.
[9] Simon L. Altmann. Rotations, quaternions, and double groups. Oxford University
Press, 1986.
[10] Sebastian O.H. Madgwick. An efficient orientation filter for inertial and iner-
tial/magnetic sensor arrays, April 2010.
[11] ST Microelectronics. Um1601 user manual, 2015.
[12] ST Microelectronics. Um1679 user manual, 2013.
[13] Mei Wang ; Yunchun Yang ; R.R. Hatch ; Yanhua Zhang. Adaptive filter for a mi-
niature mems based attitude and heading reference system. Position Location and
Navigation Symposium, 2004.
[14] Werner Goebl and Caroline Palmer. Temporal control and hand movement efficiency
in skilled music performance. PLoS One, 2013.
[15] M. Mangin et al. An instrumented glove for swimming performance monitoring. IC
Sports 2015, pages 53–58, 2015.
[16] Andrew J Callaway, Jon E Cobb, and Ian Jones. A comparison of video and acce-
lerometer based approaches applied to performance monitoring in swimming. Inter-
national Journal of Sports Science & Coaching, 4(1) :139–153, 2009.
115
[17] Ethos : Miniature orientation sensor for wearable human motion analysis. SENSORS,
2010.
116
Conclusion
Notre objectif au début de ces travaux consistait à étudier des méthodes pouvant être
adaptées pour améliorer la fiabilité des mesures sur un capteur embarqué, en se basant
sur un ensemble de mesures multi-physiques. Avec pour application principale le produit
UQS de notre partenaire MEAS-France / TE Connectivity, et pour application secondaire
le capteur AREM développé au LAAS-CNRS au cours de cette thèse.
Après quelques recherches, nous avons arrêté notre choix sur l’utilisation d’estimateurs
de Kalman permettant de déterminer de façon optimale l’état du système, pour peu que
nous disposions d’un modèle adéquat de celui-ci. Nous étudions en détail le fonctionnement
de tels filtres pour les systèmes linéaire et non-linéaires au cours du chapitre 1.2. Ainsi,
nous montrons qu’en fonction du type du système, nous choisissons plutôt :
— un filtre de Kalman pour les systèmes linéaires. En effet, ce dernier est le plus
simple à itérer et est parfaitement adapté pour de tels systèmes,
— un filtre de Kalman étendu (EKF) pour les systèmes présentant des non-linéarités
faibles (avec des comportements d’évolution et de mesure représentés par des fonc-
tions monotones),
— un filtre Unscented Kalman Filter (UKF) pour les systèmes présentant de fortes
non-linéairités, pouvant entrainer une divergence de l’estimation sur un filtre EKF,
ou lorsque les ressources de calculs ne sont pas limitées,
Nous présentons de plus une optimisation hybridant les filtres entres eux pour les
systèmes disposant, par exemple, d’une évolution linéaire et d’une mesure non-linéaire.
Une fois cette méthode établie, nous étudions en détails la complexité calculatoire
de l’utilisation de tels filtres au cours du chapitre 2, en la mettant en parallèle avec les
puissances de calculs généralement constatées dans les marché des systèmes embarqués.
Cette information nous permet d’en déduire directement la complexité maximale d’un
système pouvant être implémentée dans une puce en fonction des performances de celle-ci
et du temps de calcul disponible pour chaque estimation.
A partir de là, notre travail a consisté en l’établissement d’une méthodologie applicable
sur le capteur UQS, pouvant être généralisée sur d’autres capteurs, et d’en déterminer les
limites.
117
mesure enrichie.
Pour cela, nous nous appuyons sur un modèle du système, qui doit être réalisé afin de
déterminer les relations entrées/sorties en fonction des différents paramètres d’influence
du système. Ensuite, nous listons les grandeurs pouvant être directement obtenues depuis
les mesures (températures...) ainsi que celles qui doivent êtres estimées (concentration
d’urée...).
Au besoin, nous avons la possibilité d’ajouter des variables d’ajustement permettant
de compenser des dispersions entre produits (étape de calibration, illustrée par les gains
direct sur UQS), ou des éléments pouvant varier dans le temps, et pouvant avoir un
impact sur le comportement des mesures (cas des gains miroir, reflétant une variation de
la puissance d’émission ou du gain direct commun permettant de compenser l’impact de
poussières dans le chemin optique).
Une fois le modèle dressé, nous pouvons mettre en place un estimateur permettant de
déterminer les paramètres inconnus (non mesurables directement). Afin que le résultat
d’estimation soit le moins biaisé possible, il est important de limiter les colinéarités dans
le modèle qui ont pour conséquence de détériorer l’observabilité de celui-ci (cf. chapitre
1.2.3). Cette dernière peut être facilement déterminée dans le cadre d’un système linéaire
par observation des matrices du modèle, elle est cependant nettement plus complexe à
obtenir, précisément en ce qui concerne un système non linéaire car elle varie en fonction
de l’état du système et de la jacobienne de celui-ci (pour un système non linéaire, certains
états peuvent êtres moins observables que d’autres, conduisant donc à une mesure moins
précise dans cette zone).
Avec nos travaux sur le projet UQS, nous avons remarqué que, bien que plus intuitif à
mettre en place, un modèle du système uniquement basé sur l’agrégation des comporte-
ments physiques individuels de chacun de ses éléments pouvait se trouver complètement
inadapté pour une implémentation dans un système embarqué dont les ressources de cal-
culs sont limitées. Dans le cadre du projet UQS, ceci est dû au fait que la propagation
des spectres optiques et des modifications associées implique un grand nombre de calculs
pour chaque itération du modèle, ainsi qu’une forte occupation mémoire, ce qui, couplé à
une puissance de calcul faible, rend l’estimation impossible en temps réel.
A partir de ce constat, nous avons préféré concentrer notre effort sur une solution
hybride, dont le modèle de fonctionnement du capteur serait représenté par une LUT
de mesures en fonctions des paramètres d’entrées. Cette LUT, pouvant être mise à jour
de façon dynamique lorsque les conditions sont contrôlées, peut ensuite être couplée à
un estimateur de Kalman non linéaire ou hybride (type EKF, UKF, HEKF ou HUKF)
pour déterminer l’état du système une fois calibré. Cette solution présente à la fois un
avantage de simplicité et de flexibilité, ce qui la rend privilégiée dans le cadre d’un système
embarqué, par définition limité en ressources.
Afin de garantir une certaine cohérence des données contenues dans la LUT, ainsi
qu’une extrapolation sur les points n’ayant pas étés mesurés, il est également possible
d’effectuer une régression polynomiale pondérée sur les données stockées dans la LUT.
Le résultat de cette régression pouvant servir directement de modèle comportemental du
système, utilisé par l’estimateur.
118
l’objectif est de déterminer en temps réel un indice de performances sportive à partir de
mesures effectuées sur des données provenant d’une centrale inertielle 9 axes (composée
d’un accéléromètre 3 axes, un gyroscope 3 axes et un magnétomètre 3 axes). Pour cela,
nous choisissons de reconstruire l’orientation du capteur dans l’espace à partir de la fusion
des données brutes produites par les centrales intertielles.
Pour les résultats soient pertinents d’un point de vue qualification du mouvement,
nous désirons effectuer l’estimation à un fréquence de 50Hz, et nous disposons pour cela
d’un microcontrôleur 32bits STM32F103 cadencé à 72MHz.
Nous proposons un modèle permettant de déterminer l’orientation du capteur dans
l’espace, sous hypothèse que celui-ci n’effectue que des rotations et ne subisse donc pas
d’accélérations extérieures. Après estimation de la complexité algorithmique de notre mo-
dèle, nous constatons que celui-ci ne peut être implémenté tel-quel dans le système en
satisfaisant la contrainte de 50Hz. Nous proposons alors différentes optimisation algorith-
miques permettant de résoudre ce problème.
Finalement, nous présentons la solution que nous avons implémentée, reposant sur
la bibliothèque proposée par ST Microelectronics, ainsi que les résultats obtenus lors de
mesures effectuées, d’abord en conditions contrôlées, nous permettant de comparer le com-
portement avec un système Vicon utilisé comme référence, puis dans un environnement
applicatif sur des nageurs.
4.7 Ouverture
Avec la croissance continue des puissances de calculs embarquées et la réduction des
coûts des éléments sensibles, la fusion de données multi-physiques et les capteurs intelli-
gents sont amenés à se multiplier dans nos environnements au cours des prochaines années.
Ces mesures enrichies et pré-traitées seront alors plus fiables et aisées à utiliser dans des
applications plus complexes telles que la robotique, la domotique ou le coaching.
La méthodologie que nous avons explorée au cours de ce mémoire nous fournit ainsi
un point de départ permettant d’appréhender les enjeux liés au design de tels capteurs,
se basant sur des approches ne pouvant être appliquées, jusqu’à il y a peu, qu’en post-
traitement ou sur ordinateurs, pour obtenir des performances suffisantes pour garantir un
temps-réel.
Il est cependant à noter que la complexité des systèmes allant aussi croissante, tous les
systèmes ne pouront pas êtres résolus uniquement au travers de cette méthode. Si nous
prenons par exemple le cas d’un système présentant de forts couplages colinéaires entre
les différents paramètres, ou ne disposant pas de suffisamment de points de mesures pour
le rendre observable, notre méthodologie devient inopérante.
Dans de tels cas, elle permet cependant de déterminer, au travers du modèle, quelles
sont les inconnues à lever au travers de mesures supplémentaires, ainsi que d’établir une
première estimation de la complexité calculatoire nécessaire à la résolution du modèle, et
ainsi d’orienter la conception matérielle du système, qu’il s’agisse de l’ajout d’éléments
sensibles, ou de dimensionnement de la puissance de calcul.
Concernant le modèle, nous préconisons d’identifier clairement quels sont les comporte-
ments linéaires et non-linéaires, et si possible découpler dans des sous-systèmes isolés (s’il
n’existe pas d’interractions bidirectionnelles entre les deux). Dans ce cas, la complexité
algorithmique est nettement optimisée et l’identification de paramètres est simplifiée. Il
est aussi intéressant de noter qu’un grand nombre de systèmes physiques présentent des
119
évolutions linéaires et des sorties non-linéaires, dans de tels cas, l’utilisation d’un filtre
hybride est la plus optimale en terme de compromis précision/performances.
Au-delà d’un enjeu scientifique, nous sommes persuadés que la multiplication des cap-
teurs et la fusion de données embarquées au plus proche de la mesure constitue l’avenir
des systèmes embarqués.
120
Ma production scientifique
121