Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

2017 AurelienVALADE

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 122

Capteurs intelligents : quelles méthodologies pour la

fusion de données embarquées ?


Aurelien Valade

To cite this version:


Aurelien Valade. Capteurs intelligents : quelles méthodologies pour la fusion de données embar-
quées ?. Micro et nanotechnologies/Microélectronique. INSA de Toulouse, 2017. Français. �NNT :
2017ISAT0007�. �tel-01592864�

HAL Id: tel-01592864


https://theses.hal.science/tel-01592864
Submitted on 25 Sep 2017

HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est


archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents
entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non,
lished or not. The documents may come from émanant des établissements d’enseignement et de
teaching and research institutions in France or recherche français ou étrangers, des laboratoires
abroad, or from public or private research centers. publics ou privés.
THÈSE
En vue de l’obtention du

DOCTORAT DE L’UNIVERSITÉ DE
TOULOUSE
Délivré par :
l’Institut National des Sciences Appliquées de Toulouse (INSA de Toulouse)

Présentée et soutenue le 18/05/2017 par :


Aurélien VALADE
Capteurs intelligents : quelles méthodologies pour la fusion
de données embarquée?

École doctorale et spécialité :


GEET : Micro et Nanosystèmes
Unité de Recherche :
Laboratoire d’Analyse et d’Architecture des Systèmes (LAAS-CNRS)
Président du Jury :
Thierry CAMPS Professeur des Universités Université Paul Sabatier

Rapporteurs :
Virginie BLONDEAU-PATISSIER Maître de Conférences (HdR) Institut FEMTO-ST

Camel TANOUGAST Professeur des Universités Université de Lorraine

Examinateurs :
Rémi FLOQUET Ingénieur R&D RF Innovation

Membres invités :
Jean MILPIED Manager R&D TE Connectivity

Pascal ACCO Maître de Conférences INSA Toulouse

Directeurs de Thèse :
Jean-Yves FOURNIOLS Professeur des Universités LAAS-CNRS

Georges SOTO-ROMERO Maître de Conférences LAAS-CNRS


2
Résumé

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

Je tiens tout particulièrement à remercier le LAAS-CNRS, l’INSA de Toulouse et


mes directeurs de thèse, Jean-Yves FOURNIOLS et Georges SOTO-ROMERO, ainsi que
Pascal ACCO pour leur soutien, leur investissement et les enseignements dont ils m’ont
gratifiés tout au long de cette thèse.
Je remercie également Jean MILPIED, Tom FOUGERE et la société MEAS-France /
TE Connectivity pour m’avoir permis de réaliser ces travaux à leurs côtés, ainsi que pour
leur souplesse.
Finalement, je remercie de tout coeur ma famille, mes amis et ma compagne pour leur
amour et leur présence indéflectible dans les moments difficiles, et sans qui rien de tout
cela n’aurait été possible.

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

2 Vers une sobriété technique, ou comment simplifier pour embarquer 41


2.1 Un capteur au sein d’un système : la relation au temps . . . . . . . . . . . 41
2.1.1 Notions de temps réel . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.1.2 Risques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.1.3 Verrous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2 Quid des limitations techniques . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2.1 Limitations liées aux systèmes embarqués . . . . . . . . . . . . . . . 43
2.3 Complexité algorithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.3.1 La multiplication de matrice . . . . . . . . . . . . . . . . . . . . . . 46
2.3.2 Addition de deux vecteurs . . . . . . . . . . . . . . . . . . . . . . . 46
2.3.3 Addition de deux matrices . . . . . . . . . . . . . . . . . . . . . . . 47
2.3.4 Transposition de matrice . . . . . . . . . . . . . . . . . . . . . . . . 47
2.3.5 Inversion de matrice . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.3.6 Calcul de vecteur moyen . . . . . . . . . . . . . . . . . . . . . . . . 48
2.3.7 Calcul de matrice de covariance . . . . . . . . . . . . . . . . . . . . 48
2.3.8 Récapitulatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.4 Complexité du filtre de Kalman . . . . . . . . . . . . . . . . . . . . . . . . 49

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

3 Un cas pratique industriel : le projet UQS 57


3.1 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.1.1 Spectroscopie NIR . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.1.2 Le capteur UQS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.1.3 Grandeurs d’entrées-sorties . . . . . . . . . . . . . . . . . . . . . . . 61
3.2 Paramètres d’influence et modèle . . . . . . . . . . . . . . . . . . . . . . . 62
3.2.1 La thermique au coeur du système . . . . . . . . . . . . . . . . . . 62
3.2.2 Obstructions optiques . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.2.3 Sensibilité mécanique . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.3 Approche orientée modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.3.1 Paramètres de dispersion . . . . . . . . . . . . . . . . . . . . . . . . 65
3.3.2 Paramètres de vieillissement . . . . . . . . . . . . . . . . . . . . . . 65
3.3.3 Modèle des éléments optiques . . . . . . . . . . . . . . . . . . . . . 66
3.3.4 Modèle orienté signal du système optique . . . . . . . . . . . . . . . 69
3.3.5 Une dynamique thermique indépendante . . . . . . . . . . . . . . . 70
3.3.6 Modèle complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.3.7 Estimation et stratégies de calibration . . . . . . . . . . . . . . . . 81
3.3.8 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.3.9 Application sur des données capteur . . . . . . . . . . . . . . . . . 92
3.3.10 Question de puissance . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.4 Approche sans modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.4.1 Méthode des LUTs de calibration . . . . . . . . . . . . . . . . . . . 96
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

4 Applicabilité de la méthode avec contrainte temps-réel 103


4.1 Généralisation de la méthode . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.2 Contraintes matérielles et temporelles . . . . . . . . . . . . . . . . . . . . . 104
4.3 Application de la méthode au système . . . . . . . . . . . . . . . . . . . . 104
4.3.1 Essais en environnement contrôlé . . . . . . . . . . . . . . . . . . . 109
4.3.2 Utilisation pour l’analyse de la nage . . . . . . . . . . . . . . . . . . 111
4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

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

Doter un capteur d’une intelligence embarquée (Smart sensors) est un domaine en


pleine expansion qui conjugue capteurs/conditionneurs et traitement de l’information au
sens du diagnostic au plus près du capteur. Cette approche permet de conférer une adapta-
bilité du capteur à des variations de procédés de fabrication d’une part et à des variations
d’environnement lors de l’utilisation du capteur en minimisant les procédés de recali-
bration pour compenser les dérives d’autre part. L’idée n’est pas nouvelle en soi mais
l’avènement de microcontrôleurs de petite taille et à faible coût permet d’aller au-delà du
conditionnement I2C ou SPI qu’on connait pour contrôler in situ le signal en appliquant
des techniques bayésiennes de filtrage pour corriger la mesure dans le capteur.
Issue de techniques maitrisées pour des systèmes en capacité de calcul déportée, ce
travail de recherche réalisé en partenariat avec la société MEAS-France / TE Connectivity
et l’équipe S4M du LAAS-CNRS a pour objectif de mettre en place une méthodologie
permettant la réalisation de capteurs embarqués intelligents capables d’estimer des para-
mètres physiques à partir de la fusion de données multi-physique. Cette stratégie devant
permettre l’intégration de capteurs jusqu’alors réservés aux mesures en laboratoire dans
des environnements défavorables, au sein de capteurs embarqués disposants 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éma-
tiques liées à la puissance de calcul et à la complexité algorithmique, afin de chercher
les optimisations pouvant être 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 MEAS-France / 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ésentation 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’ef-
fectuer 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 compensation de dérives, qu’elles soient liées aux conditions d’utilisation ou au vieillis-
sement des composants. En s’appuyant sur cette réflexion, nous dressons finalement les

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

1.1 Problématique du capteur intelligent


Les stratégies de traitement du signal sont au cœur de la performance métrologique
de tout capteur dans son environnement. Dans le cadre de ses activités de développement
de capteurs embarqués, MEAS-France / TE Connectivity souhaite définir et mettre en
œuvre des algorithmes innovants de traitement numérique du signal d’un capteur de gaz
embarqué. A dimension applicative immédiate, ces travaux de thèse ont été conduits en
collaboration entre le site MEAS-Frace / TE Connectivity France de Toulouse et le Labo-
ratoire d’Analyse et d’Architecture des Systèmes (LAAS ) l’équipe S4M. Destinés à être
installés sur une plateforme hardware existante, les travaux conduits ont pour objectifs
scientifiques principaux la définition, le codage et la validation de méthodes algorithmiques
innovantes et intelligentes permettant de stabiliser et d’optimiser les performances métro-
logiques d’un capteur en lui associant une intelligence embarquée.
Le contexte industriel de ces travaux concerne la problématique de respect des normes
environnementales et particulièrement des normes antipollution pour l’automobile, ac-
tuellement Euro6 qui pousse les constructeurs de véhicules particuliers et de poids lourds
vers la mise en œuvre de technologies avancées de contrôle des émissions. Les systèmes
catalytiques de post-traitement des gaz d’échappement jouent un rôle principal dans le
contrôle embarqué de ces émissions (HC, CO, NOx, particules)[1]. Citons le système ca-
talyseur 3 voies pour le moteur à allumage commandé par exemple, ou encore, le système
SCR (Selective Catalysis Reduction) pour le moteur Diesel. Etant donné l’engagement
au respect de ces normes durant la vie du véhicule (>300 000km) les constructeurs et
équipementiers sont tenus d’assurer le bon fonctionnement de ces systèmes catalytiques
durant leur opération et surtout à alerter le système de contrôle moteur en cas de dys-
fonctionnement : c’est l’On Board Diagnosis ou OBD. La norme OBD implique la mise en
œuvre de nombreux capteurs embarqués sur les systèmes d’échappement pour contrôler
l’opérabilité et la performance des systèmes de dépollution et donc le bon respect des
normes d’émissions[2]. Cependant, des verrous persistent tels que la non linéarité de la
réponse, la dérive lente à long terme ou l’influence de certaines conditions environnemen-
tales sur la sensibilité, telles que la température des gaz. Au-delà de la robustesse et du
design de la technologie de mesure, l’optimisation des performances du capteur ne peut
se concrétiser que par l’intégration d’une gestion intelligente de la mesure et donc par la
mise en œuvre de stratégies algorithmiques de traitement du signal [3][4].
Du point de vue académique, la thématique du smart sensing, ou plus exactement
pour nous du «smart sensor», est d’actualité avec près de 10M citations sous un moteur

13
Figure 1.1 – SmartDust [5]

Figure 1.2 – The Internet of Things [6]

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]

1.2 Modélisation multiphysique et fusion de données


1.2.1 Contexte et problématique
Avec l’évolution des technologies, les objets connectés ou le durcissement des normes
anti-pollution, le besoin de capteurs embarqués n’a jamais été aussi important qu’à notre
époque. Les besoins vont de l’équipement de loisir (domotique, mesure de données physio-
logiques pour les sports...) aux applications critiques (détecteur de fumée, de monoxyde
de carbone, de collision pour les véhicules...) en passant par des applications industrielles
(contrôle de qualité en production, automatisation des procédés...).
Cette augmentation de la demande va de pair avec un besoin de diminution des coûts
de production, d’accélération des temps de développement, de facilitation de l’utilisation
(en retirant les procédures de calibration avant chaque utilisation par exemple), d’aug-
mentation de la précision et de diminution des temps de réponse. A cela, nous pouvons
ajouter le besoin de miniaturisation des capteurs, qui est un axe favorisant les facteurs
précédemment cités.
Jusqu’à présent, la réalisation de capteurs consistait à mettre en place des designs spé-
cifiques s’appuyant sur les propriétés physiques de matériaux souvent coûteux. Certains
capteurs devaient de plus être ré-étalonnés dans un échantillon de référence avant chaque
utilisation (cas du Ph-mètre), ou fonctionner dans des conditions contrôlées (température,
hygrométrie...) afin de garantir la précision maximale. Cela impose des procédés volumi-
neux et/ou contraignants à utiliser, qui ne sont pas applicables dans le cas de mesure
embarquée en continue.
L’une des solution pour adresser simultanément tous ces besoins consiste à assembler
un ensemble de capteurs multi-physique disponibles «sur étagère» afin de remplir la tâche
désirée.
L’augmentation des plages de mesure, le non contrôle de l’environnement (qui est
inhérent à la notion de capteur embarqué) et l’utilisation d’éléments non dédiés, sensibles
à plusieurs grandeurs physiques autres que celle que nous souhaitons mesurer augmentent
la difficulté de traitement de l’information. En effet, il n’est dans ces conditions plus
possible d’observer directement la grandeur physique mesurée par simple mesure de l’un
des éléments constitutifs du capteur.

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.

1.2.2 La modélisation du système


La modélisation du système consiste à déterminer la fonction permettant, à partir
d’un certain nombre d’entrées et de paramètres d’influence de prédire les mesures que
nous observerons en sortie.
Dans la suite de cette section, nous utiliserons indistinctement le mot système pour
désigner soit le capteur complet, soit l’un de ses éléments constitutifs.
Dans le cas de systèmes composés, tels que les capteurs que nous nous proposons
d’étudier, cette modélisation passe d’abord par la modélisation de ses éléments constitu-
tifs, puis par l’intégration du système complet.
Pour cela, il faut avant tout dresser la liste des entrées-sorties, ainsi que des paramètres
d’influence du système.
Une fois cette liste dressée, il est possible de diviser le comportement du système selon
deux axes : le comportement statique et le comportement dynamique.
Le premier représente le comportement du système lorsque ses entrées, son état interne
et ses sorties sont stables. Il s’agit généralement du comportement utile pour la mesure
de l’information. Il peut être représenté par une relation entrées/paramètres/sorties indé-
pendante du temps. On peut ainsi obtenir l’équation (1.1) pour représenter les mesures s
disponibles en sortie du système pour une combinaison d’entrées e et de paramètres Γ.

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 :

s(t) = h(x(t), e(t), Γ(t)) (1.3)

La première équation étant appelée équation d’évolution du système et représentant


la dynamique du système, la seconde étant appelée équation de mesure et représentant
la partie statique entre l’état interne et la sortie du système. Ces deux fonctions peuvent
êtres influencées par un bruit (appelé bruit d’état pour la première et bruit de mesure
pour la seconde).
Ainsi, une LED a pour grandeur d’entrée un courant et pour valeur de sortie un spectre
lumineux d’intensité plus ou moins importante. Cependant, cet élément est aussi sensible
à la température et peut voir aussi bien son spectre que sa puissance d’émission varier
fortement en fonction de ce paramètre.
Le comportement statique de la LED peut être caractérisé en faisant varier le courant
d’entrée i(t) et la température T (t) et en mesurant l’émission sspectre (t) à l’aide d’un
spectroscope en régime stable.
Son comportement dynamique peut se décomposer à 2 échelles temporelles :
— Sur une très petite période : le comportement de l’émission en fonction d’une
variation de courant ou de température,
— Sur une longue période : la dégradation des performances de la LED due à son
vieillissement.
Nous avons les équations d’état :

i̇ = fi (v(t), Tled (t)) (1.4a)


˙ (t) = fT led (Tled , Tamb )
Tled (1.4b)

Nous avons donc, pour une LED la fonction de sortie (1.5).

sspectre (t) = hled (i(t), Tled (t)) (1.5)

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.

Modèle Linéaire Invariant dans le Temps


Un système Linéaire Invariant dans le Temps (LIT) peut être défini selon le chapitre
I de [9].
Dans le cas d’un capteur, cela suppose que :

17
Figure 1.4 – Fonction de transfert G(p) d’un système

— le capteur ait une réponse linéaire (g(e + ∆e) = g(e) + g(∆e))


— le capteur ne manifeste aucune notion de vieillissement (modification lente de pa-
ramètres du modèle au cours de la vie du capteur).
Les propriétés de tels systèmes ont été largement étudiées par le passé [10] [9] et
présentent de forts avantages quant à l’analyse du système.
Ainsi, chaque système LIT peut être représenté comme une combinaison linéaire de la
contribution de chacune de ses entrées (théorème de superposition). Chaque contribution
peut donc être étudiée séparément de façon décorrélée lorsque les hypothèses de LIT sont
respectées, ce qui simplifie grandement l’étape de modélisation.
De tels systèmes répondent généralement à un jeu d’équations différentielles qui ré-
gissent leur évolution. Il est alors commode d’utiliser la transformée de Laplace pour
analyser les comportements associés. Ceux-ci sont alors vus comme des combinaisons li-
néaires dans le domaine de Laplace (p étant la variable de Laplace, F (p) est appelée
fonction de transfert du système, cf. 1.2.2) (1.6) :
Z +∞ Z +∞
S(p) = s(t) exp(−pt)dt = g(e(t)) exp(−pt)dt = G(p)E(p) (1.6)
0+ 0+

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.

Modèle non linéaire


Pour les systèmes présentant des non-linéarités, les hypothèses précédentes ne sont
plus valides. Il est alors impossible de décrire le comportement du système sous la forme
de combinaisons linéaires des contributions des différentes entrées.
De même, la décorrélation des entrées les unes par rapport aux autres n’est plus
garantie, ce qui nécessite une caractérisation plus poussée en croisant différents paramètres
pour couvrir l’ensemble de l’espace d’états auquel le système peut être soumis (voir 1.2.2).
Cette modélisation est plus générale, mais plus difficile à traiter. Ainsi, les évolutions
du système font souvent intervenir des équations différentielle non linéaires et les solutions
des intégrales multidimensionnelles.

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.

1.2.3 Exemple de modélisation et mesure indirecte linéaire : cas


basique d’une sonde PT1000
Dans cette section nous allons aborder deux des principales représentations de systèmes
utilisées en automatique : la fonction de transfert et la représentation d’états.
Ces deux conventions présentent chacune leurs avantages et inconvénients que nous
allons tenter d’exposer ici. Dans les deux cas, nous supposerons que le système est LIT
ou linéarisé autour d’un point de fonctionnement.
Cette représentation présente un intérêt lors de la réalisation de systèmes composés.
Ainsi, par exemple, nous pouvons représenter le système multi-physique linéaire simple
représenté en Figure 1.5 sous la forme d’un assemblage de fonctions de transfert.
Nous l’utilisons pour illustrer notre démarche de modélisation adaptée à la fusion de
données de capteurs.

Figure 1.5 – Système multiphysique linéaire simple

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).

Ts (t) − Tamb δTs (t)


Qe (t) − = Cs = Cs T˙s (t) (1.8)
Rs δt
Avec δTδts (t) = T˙s (t) la dérivée partielle de Ts (t) en fonction du temps.
Ce qui, en transformée de Laplace donne :

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.

Figure 1.6 – Schéma bloc du comportement thermique

Pour poursuivre le schéma bloc du comportement de la PT1000, on prend en compte


la conversion thermo-électrique selon les équations (1.10a,1.10b).

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).

Figure 1.7 – Schéma bloc de la conversion thermo-électrique

Figure 1.8 – Schéma bloc du système complet

Il est ainsi possible de caluler simplement les fonctions de transfert du système :

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 :

Ẋ(t) = f (X(t), U(t)) (1.15a)


Y(t) = h(X(t), U(t)) (1.15b)

X et Y pouvant être affectés par des bruits.


La force de cette convention est de représenter l’évolution des états internes (états réels,
paramètres de calibration, entrées non commandées) du système, ainsi que toutes leurs

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 :

Ẋ(t) = [A]X(t) + [B]U(t) (1.16a)


Y(t) = [C]X(t) + [D]U(t) (1.16b)

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

Et les matrices suivantes :

 
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 :

Un système est dit observable à un instant t1 , si la connaissance du signal d’entrée


et du signal de sortie sur l’intervalle de temps [t1 , t2 ] permet de calculer l’état du
sytème à l’instant t2 .

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].

1.2.4 Fusion de données pour une représentation plus globale


de l’environnement
Dans le cas étudié ici, nous réalisons la fusion de données (entrées/sorties de notre sys-
tème de mesure) à l’aide d’un observateur, dans le but d’avoir une estimation la plus juste
possible de l’état de notre système (contenant les paramètres, états internes ainsi que la
(ou les) grandeur(s) physique(s) que nous souhaitons mesurer, cf. capteur de rayonnement
solaire 1.2.3).

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

Le matériel nous permettant d’effectuer l’estimation de l’état de notre système étant


une unité de calculs informatique (ordinateur, microcontrôleur...), il est incapable, par
nature, de travailler sur des signaux continus tels que décrits précédemment. Ces derniers
doivent être transformés en une suite de nombres pour pouvoir êtres traités [9]. Il s’agit
de la discrétisation.
Toutes les méthodes présentées ici s’appuieront sur des données et des modèles de
systèmes discrétisés.
Ce changement a un impact au niveau de la représentation du système. Ainsi nous ne
calculons plus la dérivée de l’état du système mais la valeur de celui-ci à l’instant suivant,
que nous noterons :
— Xk l’état à l’instant tk = k Te ,
— Xk+1 l’état à l’instant suivant tk+1 = (k + 1) Te ,
Pour une transformation d’un système à temps continu vers un système à temps dis-
cret, échantillonné avec une période d’échantillonnage Te , nous utilisons la solution géné-
rale de l’équation d’évolution pour un état initial X0 = X(t0 ) et une entrée u(t) :

Zt
[A](t−t0 )
X(t) = e X0 + e[A](t−τ ) [B] u(τ ) dτ (1.22)
t0

Comme la commande u(t) est constante pendant chaque période d’échantillonnage,


modélisé par un bloqueur d’ordre zéro, et en prenant Xk comme condition initiale de
l’équation précédente il vient :
T 
Z e 
Xk+1 = e[A] Te Xk +  e[A] τ dτ  [B] uk (1.23)
0

∞ 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 :

Xk+1 = e[A] Te Xk + Te [B] uk (1.27)


Yk = [C]Xk + [D] uk (1.28)

En remplaçant aussi le terme exponentiel restant par son développement partiel, la


solution se réduit à une méthode d’intégration considrant que la dérivée de l’état est
constante et égale à Ẋ(tk ) = A X(tk ) + [B] u(tk ) pendant une période d’intégration. On
obtient alors dans ce cas la forme suivante :

Xk+1 = Xk + Te [A] Xk + Te [B] uk (1.29)


Yk = [C]Xk + [D] uk (1.30)

Le filtre de Kalman (KF)


Le filtre de Kalman [7] est une simplification du filtre Bayesien pour un système linéaire
à temps discret pour lequel les bruits de mesure et d’état sont supposés gaussiens.
Ces deux hypothèses fortes permettent de réduire la complexité de l’estimateur à un
calcul de moyennes et de covariances au travers de transformations linéaires.
En plus des vecteurs d’état, de mesure et de commande précédemment cités, nous
ajoutons ici à nos équations d’évolution et de mesure des vecteurs de bruits (respective-
ment V et W), accompagnés de leurs matrices de covariance respectives [Q] et [R] [14].
Ainsi, les équations d’évolution et de mesure du système deviennent :

Xk+1 = [A]Xk + [B]Uk + Vk (1.31a)


Yk = [C]Xk + [D]Uk + Wk (1.31b)

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

Figure 1.9 – Processus récursif du filtre de Kalman

Étape Filtre de Kalman Système réel


X̃k+1 = [A]X̂k + [B]Uk Xk+1 = [A]Xk + [B]Uk + Vk
Évolution
[P̃k+1 ] = [A][P̂k ][A]T + [Q]
Prédiction/mesure Ỹk = [C]X̃k + [D]Uk Yk = [C]Xk + [D]Uk + Wk
Ek = Yk − Ỹk
[Kk ] = [P̃k ][C]T ([C][P̃k ][C]T + [R])−1
Correction
X̂k = X̃k + [Kk ]Ek
[P̂k ] = (I − [Kk ][C])[P̃k ]

Table 1.1 – Etapes de fonctionnement du filtre de Kalman

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).

1.2.5 Observation, fusion de systèmes non-linéaires


Nous allons détailler dans cette partie les deux algorithmes de fusion que nous avons
sélectionné pour les systèmes non-linéraires : le filtre EKF et le filtre UKF. Afin d’ad-
dresser deux niveaux de non-linéarité différents pour effectuer la comparaison des deux
algorithmes, nous nous proposons de prendre pour exemples non-linéaires les deux appli-
cations suivantes :

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

avec pour paramètres

R0 = 10000 ± 5% B = 3984 T0 = 298

Ce système présente une équation de mesure non-linéaire monotone, ainsi la déri-


vation de cette fonction aura toujours le même signe et sera considérée comme une
non-linéarité faible.
— Nous fixons sur une roue dont l’axe est immobile un accéléromètre deux axes (x, y)
selon le schéma en Figure 1.10, la roue tournant à une vitesse θ̇ et subissant une
accélération angulaire θ̈, les deux étant inconnues.
Ce système présente des équations de mesures non-linéaires complexes car faisant
appel à des fonctions trigonométriques. Ainsi la dérivée de ces fonctions change
de signe en fonction de l’état du système, elles seront donc considérées comme des
non-linéarités fortes.

Figure 1.10 – Un accéléromètre 2 axes est installé sur une roue pour en déterminer la
vitesse

Le filtre de Kalman étendu (EKF)

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 ]

Table 1.2 – Etapes de fonctionnement du filtre de Kalman Etendu

Xk+1 = f (Xk , Uk , Vk ) (1.33a)


δf (Xk , Uk , Vk )
[FX,k+1 ] = (1.33b)
δXk
δf (Xk , Uk , Vk )
[FV,k+1 ] = (1.33c)
δVk
Yk+1 = h(Xk , Uk , Vk ) (1.33d)
δh(Xk , Uk , Wk )
[HX,k+1 ] = (1.33e)
δXk
δf (Xk , Uk , Wk )
[HW,k+1 ] = (1.33f)
δWk
les fonctions f (.) et h(.) étant non-linéaires. Ainsi les matrices jacobiennes [FX,k ] et
[FV,k ] sont utilisées pour la prédiction de [P̃k+1 ] et la matrice [HX,k ] est utilisée pour la
correction de l’état du système, selon la procédure décrite en Table 1.2.
Cette méthode présente de gros avantages, entre autres, elle est simple à comprendre
car s’appuyant directement sur le filtre de Kalmant en présentant au filtre un système
linéarisé autour d’un point de fonctionnement déterminé par l’état, et évoluant au cours
du temps. Elle présente de plus une complexité algorithmique du même ordre que le filtre
de Kalman, pour peu que les fonctions f (.) et h(.) ainsi que les calculs des jacobiennes
soient peu gourmands en ressources.
Ce filtre a cependant une faiblesse pour les systèmes présentant de fortes non-linéarités,
la propagation de l’erreur et de la densité de propabilité des états (par covariance) s’ef-
fectuant de façon linéaire. Ceci peut entraîner des surcompensations et des divergences
de l’estimation de l’état dans le pire cas (comme montré en 1.2.5).
Pour parer à cette limitation, l’algorithme Unscented Kalman Filter (UKF) [15] a été
développé en se basant sur une version mixte entre les filtres à particules [16] et les filtres
de Kalman.

Le filtre Unscented Kalman Filter (UKF)


Afin de lever les problèmes liés aux non-linéarités dans la projection des densités de
probabilités au travers du modèle par le filtre EKF, le filtre UKF utilise la méthode

28
Unscented Transform pour propager les densités de probabilités directement au travers
de la fonction non-linéaire.

Unscented Transform Le principe proposé ici est de remplacer l’approximation li-


néaire du système et la projection gaussienne au travers de leurs moyennes et covariance
par la projection au travers du système non-linéaire d’un ensemble de 2n + 1 états pon-
dérés (n étant la dimension du vecteur d’état) et soigneusement choisi. Il devient alors
possible de recalculer les moyennes et covariances des états ou mesure de sortie après avoir
subit le comportement non linéaire.
Cette méthode permet ainsi une propagation plus précise de l’erreur d’estimation au
travers du système [13][17][14].
Les étapes de fonctionnement de la transformation sont les suivantes :
— Sélectionner les 2n + 1 points d’état à propager, représentés par la matrice X (i)
composée de 2n + 1 vecteurs d’état de longueur n :





X̃ q ,i = 0
X (i) = X̃ + (µ + λ)[CX ] , i ∈ [1, n] (1.34)

 q
X̃ − (µ + λ)[CX ] , i ∈ [n + 1, 2n]

— Transformer les points :


Y (i) = f (X (i) ), i ∈ [0, 2n] (1.35)
— Définir les poids :


λ
 ,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]

— Calculer la moyenne et la covariance du résultat :

2n
Y˜ =
X µ
ωi Y (i) (1.37a)
i=0
2n
ωic (Yi − Y˜ )(Yi − Y˜ )T
X
[C̃Y ] = (1.37b)
i=0

Avec pour paramètres :


— α le facteur d’étalement des points d’estimation par rapport à la moyenne,
— β un facteur relatif à la distribution (pour une distribution gaussienne, β = 2),
— λ = α2 (n + κ) − n,
— κ le facteur d’échelle, κ = 3 − n dans le cas général.
Nous pouvons ainsi appliquer cette méthode pour une fonction non-linéaire à une
dimension, par exemple :
y = f (x) = cos(x) (1.38)
avec en entrée une distribution gaussienne x ∼ N (10, 0.52 ). La densité de probabilité
obtenue en fonction de la méthode (Monte Carlo, Unscented Transform et linéarisation)

29
(a) Densité de probabilité pour UKF

(b) Densité de probabilité pour EKF

(c) Densité de probabilité pour Monte Carlo

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)

Avec Xk une matrice de dimension (n, 2n + 1) et représentant les 2n + 1 états


à propager (pondérés par ω c et ω µ calculés précédemment et fixes pour un
système donné).
— Propager l’état au travers de sa fonction d’évolution
(i) (i)
X̃k+1 = f (Xk , Uk , 0), i ∈ [0, 2n] (1.40)

— Puis calculer ses statistiques avec les méthodes de l’Unscented Transform


2n
X µ (i)
X̃k+1 = ωi X̃k+1 (1.41a)
i=0
2n
(i) (i)
ωic (X̃k+1 − X̃k+1 )(X̃k+1 − X̃k+1 )T + [Q]
X
[P̃k+1 ] = (1.41b)
i=0
(1.41c)

— 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)

— Propager les points dans la fonction de mesure


(i) (i)
Ỹk+1 = h(X̃k+1 , Uk+1 , 0), i ∈ [0, 2n] (1.43)

— Estimer l’espérance et la covariance de la mesure


2n
µ (i)
X
Ỹk+1 = ωi Ỹk+1 (1.44a)
i=0
2n
(i) (i)
ωic (Ỹk+1 − Ỹk+1 )(Ỹk+1 − Ỹk+1 )T + [R]
X
[P̃yy,k+1 ] = (1.44b)
i=0

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

[Kk+1 ] = [P̃xy,k+1 ][P̃yy,k+1 ]−1 (1.46)


— Pour finalement corriger l’état et sa covariance à partir de la mesure Yk+1

X̂k+1 = X̃k+1 + [Kk+1 ](Yk+1 − Ỹk+1 ) (1.47a)


T
[P̂k+1 ] = [P̃k+1 ] − [Kk+1 ][P̃yy,k+1 ][Kk+1 ] (1.47b)
Bien que présentant une charge de calculs plus importante, le filtre UKF reste plus
proche de la densité de probabilité réelle du système, ce qui lui permet de converger plus
rapidement et d’obtenir une estimation plus précise que les deux méthodes précédentes en
cas de forte non-linéarité, comme nous allons le montrer au cours de la prochaine section.

Filtres de Kalman hybrides (HEKF/HUKF)


Les différents filtres de Kalman proposés jusqu’à présent sont soit adaptés à des sys-
tèmes linéaires et peu demandeurs en ressources, soit à des systèmes non-linéaires et
nécessitant des ressources importantes. Cependant, nous avons vu que la représentation
d’état décrit un système selon deux équations :
— une équation d’évolution,
— une équation de mesure.
Les filtres proposés supposent que ces deux équations soient linéaires ou non-linéaires.
Ainsi, le cas d’un système hybride, dont l’une des équations est linéaire et l’autre non-
linéaire, nous pousse à utiliser des solutions de filtre non-linéaire pour les deux équations,
générant ainsi un surcoût calculatoire.
La solution que nous proposons consiste à dériver des deux catégories de filtres pré-
cédentes une nouvelle catégorie de filtres dits hybrides, utilisant la résolution linéaire
d’un filtre KF pour l’équation linéaire et la résolution EKF ou UKF pour l’équation
non-linéaire. Nous obtenons ainsi les filtres Hybrid Extended Kalman Filter (HEKF) et
Hybrid Unscented Kalman Filter (HUKF). Cette solution permet de garantir le meilleur
compromis précision/performances pour l’estimation de l’état d’un tel système.
Nous allons maintenant comparer le comportement des filtres proposés pour les deux
systèmes présentés précédemment :
— Le capteur de rayonnement solaire à CTN pour une non-linéarité faible,
— Le capteur accéléromètre sur roue pour une non-linéarité forte.

Capteur de rayonnement solaire à CTN


Ce système permet d’illustrer le cas où seule l’équation de sortie est non-linéaire, le
comportement dynamique du système restant linéraire. Ainsi, pour le filtre EFK, nous
devons calculer la matrice jacobienne de mesure [H] qui aura pour valeur (en fonction de
la température du système T s en ◦ C) :
" #
−B 1 1
 
[H](Ts ) = 0, 2
exp −B − (1.48)
(Ts + 273) T0 Ts + 273

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

Figure 1.12 – Résultats d’estimation EKF et UKF sur l’estimateur de rayonnement


non-linéaire

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

Le vecteur de sortie est représenté par


   
a g cos(θ) + rθ̈ 
Y= x = (1.51)
ay −g sin(θ) + θ̇2
avec g = 9.80N , l’accération gravitationnelle et r = 0.5m le rayon de la roue.
L’accéléromètre sur l’axe x (tangentiel à la roue) mesure l’accélération gravitationnelle
et l’accélération tangentielle alors que l’accéléromètre sur l’axe y (dans l’axe de la roue)
mesure l’accélération gravitationnelle et la force centripète exercée par la roue en rotation.
Pour le filtre EKF, nous utilisons la matrice jacobienne de mesure :
   
δax δax δax
[H](θ) =  δθ δ θ̇ δ θ̈  =  g sin(θ) 0 r 
(1.52)
δay δay δay
δθ δ θ̇ δ θ̈
−g cos(θ) 2 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.

1.2.6 Stratégie de calibration et représentation


Afin de permettre à un système de mettre à jour de façon automatique sa calibration,
nous avons choisi d’appliquer une stratégie se basant sur l’utilisation de deux filtres de
Kalman complémentaires : un filtre chargé d’estimer l’état interne du système et pre-
nant comme entrée de commande les paramètres de calibration, un second filtre chargé
d’estimer les paramètres de calibration n’étant activé que lorsque les conditions de fonc-
tionnement du système sont connues. Ainsi, si nous notons Γ l’ensemble des paramètres à

34
(a) Estimation de la vitesse angulaire

(b) Estimation de l’accélération angulaire

Figure 1.13 – Comparaison des filtres EFK et UFK pour l’estimation de l’état de la roue

estimer et Φ l’ensemble des paramètres de calibration du modèle, nous obtenons l’archi-


tecture présentée en Figure 1.14. Lors de la phase de calibration (phase 1) les paramètres
Φ sont fixés et connus, l’estimateur est alors chargé de déterminer les paramètres de ca-
libration Γ. Dans un second temps, lorsque le système est calibré, il fonctionne en mode
estimation (phase 2), et estime les valeurs de Φ à partir des paramètres de calibration
fixes déterminés précédemment.
Cette méthodologie se base sur le besoin de travailler avec des systèmes observables
pour garantir des estimations non biaisées, ainsi les deux sous-systèmes sont suffisamment
définis par leurs conditions propres pour être observables.
De plus, comme nous le verrons dans la section 2.5, cette solution permet de diminuer
la taille du vecteur d’état, ce qui diminue de façon importante la complexité des calculs à

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

Figure 1.14 – Architecture de gestion de la calibration

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].

1.3.1 Notre fil d’Ariane : le capteur UQS


Les solutions que nous allons proposer s’appuient sur une identification des paramètres
d’influence des différents éléments constitutifs du capteur, une modélisation des influences
et une fusion récursive des données permettant d’estimer la grandeur d’influence repré-
sentant la mesure que nous souhaitons exploiter. Pour cela, nous allons d’abord détailler
la modélisation des éléments constitutifs, puis la représentation du système. Cela nous
permettra par la suite de déterminer si la grandeur que nous souhaitons mesurer est
observable. Finalement nous traiterons de l’estimation et du filtrage de l’information.
L’un des exemples de cette nouvelle méthodologie est le capteur UQS (Urea Quality
Sensor) que nous détaillerons au chapitre 3, développé par MEAS-France / TE Connec-
tivity, dont le but est d’effectuer une mesure embarquée en temps-réel de la concentration
d’urée en solution aqueuse dans le réservoir dédié à cet effet sur les poids lourds et engins
de chantier. Pour s’acquitter de cette tâche, ce capteur est composé de LEDs (Light Emit-
ting Diodes) infrarouges à plusieurs longueurs d’ondes, de photodétecteurs et de capteurs
de température de type CTN (résistances à Coefficient de Température Négatif) (Figure
1.15).

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

Vers une sobriété technique, ou


comment simplifier pour embarquer

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.

2.1 Un capteur au sein d’un système : la relation au


temps
Plus qu’un système embarqué multi-physique, un capteur est lui-même un élément
constitutif d’un système. Son rôle est de renseigner ce système sur l’état et l’évolution
de son environnement. En ce sens, il se place en tant que passerelle entre les deux et
subit par la même occasion une double contrainte : il doit être en mesure de transmettre
les informations à la vitesse demandée par le système, tout en prenant en compte la
dynamique de son environnement le plus fidèlement possible. On parle alors de capteur
temps-réel.

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).

2.2 Quid des limitations techniques


Les limitations techniques liées aux systèmes embarqués (et par extension aux cap-
teurs intelligents) proviennent en grande partie des choix architecturaux inhérents à ces
systèmes. Ainsi, un système embarqué se distingue principalement par son alimentation
électrique autonome (généralement sur batteries), ce qui implique une recherche de la
diminution de la consommation électrique. En outre, il fait souvent parti d’un système
plus grand et donc doit tendre vers une diminution des coûts de production.

2.2.1 Limitations liées aux systèmes embarqués


Ainsi les systèmes embarqués sont principalement caractérisés par des ressources maté-
rielles limitées. Un capteur intelligent à très faible coût sera donc probablement construit
autour d’un micro-contrôleur simple coeur, avec une architecture 8 bits et une fréquence de
calcul inférieure à 20MHz. La Figure 2.1 montre que le coût aussi bien financier qu’énergé-
tique rend possible l’utilisations de puces de plus en plus complexes, ainsi les processeurs
32 bits sont aussi utilisés que ceux de 8 bits de nos jours.

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

Table 2.1 – Performances

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.

2.3 Complexité algorithmique


L’étude de la vitesse d’exécution ou de l’occupation mémoire d’un algorithme est
une étape importante pour comparer les algorithmes entre eux et sélectionner celui qui
conviendra le mieux pour une application donnée.
Selon le type d’opération effectuée, ou l’architecture matérielle utilisée, nous pou-
vons dresser plusieurs types d’indicateurs de complexité. On trouvera ainsi pour les plus

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 :

lim T (f (n)) = O(2n) (2.1)


n→+∞

à interpréter comme le fait que la complexité augmente de façon proportionnelle à 2n.


Nous pouvons ainsi appliquer cette démarche dans le cas qui nous intéresse pour
étudier la complexité algorithmique des différentes opérations de base pour notre fusion
de données afin de nous aider à dresser une carte des complexités de nos différents filtres
de Kalman.
Les opérations mathématiques de base liées à notre filtre de Kalman sont :
— La multiplication de matrices,
— L’addition de vecteurs,
— L’addition de matrices,
— La transposition de matrice,
— L’inversion de matrice.
De plus, le filtre UKF utilise les opérations spécifiques suivantes :
— Le calcul d’un vecteur moyen depuis un jeu de vecteurs,
— Le calcul de la matrice de covariance d’un jeu de vecteurs.
Nous nous proposons ici d’évaluer la complexité de chacune de ces opérations, puis
d’en déduire la complexité algorithmique de chaque filtre de Kalman en fonction des
dimensions des vecteurs d’état (n), vecteur de mesure (m) et de commande (p). Pour

45
cette évaluation, nous considérerons comme indicateur, le nombre d’opérations à virgules
flottantes effectuées.

2.3.1 La multiplication de matrice


Soit deux matrices [A] et [B] de dimensions respectives (n, m) et (m, p), la multipli-
cation [A][B] s’effectue de la façon suivante :
Algorithme 2 : Multiplication de matrice
Fonction Multiplie(A,B)
Entrée : A matrice de dimensions (n,m)
Entrée : B matrice de dimensions (m,p)
Sortie : C matrice 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]*B[k, j];
FinPour
C[i, j] = somme;
FinPour
FinPour
FinFonction
Avec cet algorithme, pour multiplier nos matrices nous avons :
— n ∗ m ∗ p multiplications,
— n ∗ m ∗ p additions,
— n ∗ m ∗ (p + 1) affectations.
Ce qui nous donne une complexité T (2 ∗ n ∗ m ∗ p) = O(2 ∗ n ∗ m ∗ p).

2.3.2 Addition de deux vecteurs


Soit deux vecteurs A et B de longueur n, on définit le vecteur C = A + B tel que
Algorithme 3 : Addition de deux vecteurs
Fonction AjouterVecteur(A,B)
Entrée : A Vecteur de longueur n
Entrée : B Vecteur de longueur n
Sortie : C Vecteur de longueur n
Pour i de 0 à n − 1 faire
C[i] = A[i] + B[i] ;
FinPour
FinFonction
Nous obtenons ainsi une complexité de :
— n additions,
— n affectations.
D’où une complexité algorithmique de T (n) = O(n).

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).

2.3.4 Transposition de matrice


Soit une matrice [A] de dimensions (n ∗ m), le calcul de [B] = [A]T se fait tel que :
Algorithme 5 : Transposition d’une matrice
Fonction TransposeMatrice(A)
Entrée : A Matrice de dimensions (n, m)
Sortie : B Matrice de dimensions (m, n)
Pour i de 0 à n − 1 faire
Pour j de 0 à m − 1 faire
B[j, i] = A[i, j] ;
FinPour
FinPour
FinFonction
Nous avons ici :
— n ∗ m affectations.
Avec notre indicateur basé sur les FLOPs, cette opération est considérée comme de
complexité nulle. Dans les faits, on peut se passer de cette fonction en créant des fonctions
annexes telles que la multiplication de matrice par la transposée d’une autre matrice.

2.3.5 Inversion de matrice


Selon les propriétés de la matrice, il existe plusieurs algorithmes pouvant être appli-
qués. Le cas le plus général est l’algorithme de Gauss-Jordan dont la complexité pour une
matrice carrée de dimensions n ∗ n est :
— 2n3 + 2n2 multiplications/divisions,
— 2n3 soustractions,
— 2n3 + 7n2 affectations.

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].

2.3.6 Calcul de vecteur moyen

Soit une matrice [A] de dimensions (n, m) composée de m vecteurs de n longueur, on


calcule le vecteur moyen M tel que :

Algorithme 6 : Calcul de vecteur moyen


Fonction VecteurMoyen(A)
Entrée : A Matrice composée de m vecteurs de longueur n (dimensions (n, m))
Sortie : M Vecteur moyen de longueur n
Pour i de 0 à n-1 faire
somme = 0;
Pour j de 0 à m-1 faire
somme = somme + A[i, j];
FinPour
M[i] = somme / m;
FinPour
FinFonction

On a ainsi :

— n ∗ m additions,
— n divisions.

Ce qui nous donne une complexité T (n ∗ (m + 1)) ∼ O(n ∗ m).

2.3.7 Calcul de matrice de covariance

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.

Opération T (.) O(.)


Multiplication de matrice 2∗n∗m∗p 2∗n∗m∗p
Addition de deux vecteurs n n
Addition de deux matrices n∗m n∗m
Transposition de matrice 0 0
Inversion de matrice 4 ∗ n + 2 ∗ n2
3
4 ∗ n3
Vecteur moyen d’une matrice n ∗ (m + 1) n∗m
Moyenne d’un vecteur n+1 n
Covariance de deux matrices 2∗n∗m∗p 2∗n∗m∗p

Table 2.2 – Récapitulatif des complexités algorithmiques des opérations mathématiques

2.4 Complexité du filtre de Kalman


À partir de là, nous pouvons estimer la complexité des filtres de Kalman, EKF et UKF
en fonction des longueurs de leurs vecteurs d’état n, de mesure m et de commande p, pour

49
chaque étape de calcul (c.f. Table 2.3) et pour l’algorithme complet (c.f. Table 2.4).

Algo Opération O(.)


X̃k+1 = [A]X̂k + [B]Uk 2n2
[P̃k+1 ] = [A][P̂k ][A]T + [Q] 4n3
Ỹk = [C]X̃k + [D]Uk 2m(n + p)
(E)KF Ek = Yk − Ỹk m
[Kk+1 ] = [P̃k ][C]T ([C][P̃k ][C]T + [R])−1 4n m / 4m2 n
2

X̂k = X̃k + [Kk ]Ek 2mn


[P̂k] = (I − [Kk ][C])[P̃k ]  ∼ 2n3 / 2m2 n
q
Xk = X̂k , X̂k ± (n + λ)[P̂k ] n3
(i) (i)
X̃k+1 = f (Xk ) 2nO(f (.))
µ (i)
X̃k+1 = 2n i=0 ωi X̃k+1 4n2
P
(i) (i)
[P̃k+1 ] = 2n c T
i=0 ωi (X̃k+1 − X̃k+1 )(X̃k+1 − X̃k+1 ) + [Q] 6n3
P
(i) (i)
UKF Ỹk+1 = g(X̃k+1 , Uk+1 , 0) (2n + 1)O(g(.))
µ (i)
Ỹk+1 = 2n i=0 ωi Ỹk+1 4m2 n
P
(i) (i)
[P̃yy,k+1 ] = 2n c T
i=0 ωi (Ỹk+1 − Ỹk+1 )(Ỹk+1 − Ỹk+1 ) + [R] 6m2 n
P
P2n c (i) (i)
[P̃xy,k+1 ] = i=0 ωi (X̃k+1 − X̃k+1 )(Ỹk+1 − Ỹk+1 )T 4n2 m
X̂k = X̃k + [Kk ]Ek 2mn
[P̂k ] = (I − [Kk ][C])[P̃k ] ∼ 2n3 / 2m2 n

Table 2.3 – Complexité des étapes de filtrage en fonction de n, m et p

Algorithme T (.) O(.)


(E)KF 4n3 + 4m3 + 6m2 n + 4n2 m + 3n2 + · · · 4n3
UKF 10n3 + 4n2 m + 14m2 n + 23n2 + 6m2 + · · · 10n3

Table 2.4 – Complexité des filtres de Kalman

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.

2.5 Diminution de la complexité des estimateurs


Nous venons de voir que la complexité des algorithmes pouvait avoir un impact non
négligeable sur la faisabilité d’un capteur temps-réel. Ainsi, l’une des solutions les plus
communes pour permettre la faisabilité sans augmenter les coûts de production consiste
à réaliser des optimisations algorithmiques, ou à diminuer la consommation de ressources
des solutions mises en place. Nous allons explorer au cours de cette section les solutions
permettant de résoudre ce problème.

50
Complexité du système Complexité factorisée
Estimateur
complet (FLOPs) (FLOPs)
EKF 8788 2548
UKF 21970 6370
KF + UKF N/A 3298

Table 2.5 – Comparaison de complexité entre un système factorisé ou complet (pour 13


états)

2.5.1 Factorisation d’états


Nous avons vu sur la Table 2.4 que la complexité du filtre de Kalman était principale-
ment influencée par la dimension de son vecteur d’état et proportionnelle à O(n3 ). Ainsi,
la diminution du nombre d’états n, ou la séparation du système en plusieurs sous-systèmes
indépendants permet de nettement diminuer la charge de calculs.
De plus, dans la plupart des cas, la dynamique thermique est modélisée sous forme
linéaire et constitue un sous système influant les mesures. Par exemple, si nous prenons
le système UQS discuté en Chapitre 3, le vecteur d’état complet du système varie de 13 à
14 états. Cependant, il peut être factorisé en un système linéaire de 8 états et un système
non-linéaire de 5 à 6 états, ce qui nous donne une complexité en FLOP selon le tableau
2.5.
Nous remarquons ainsi que par factorisation du système en une partie linéaire et une
partie non linéaire, on obtient une diminution de complexité d’un facteur 6.

2.5.2 Observateur à gain commuté


Approximation du modèle
Parfois, le modèle non-linéaire du système, ou le calcul de ses matrices jacobiennes
peuvent êtres longs à itérer pour un système embarqué. On est alors amené à simplifier
ce système en approximant son fonctionnement à une ou plusieurs fonctions simples à
itérer. On peut par exemple faire une régression sur un jeu de données important pour
en tirer un polynôme de faible degré, moins précis, mais permettant au programme de
rentrer dans la mémoire du micro-contrôleur.

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.

Observateur de Kalman statique


La principale difficulté de l’algorithme du filtre de Kalman réside dans les diverses
multiplications et l’inversion de matrice liée au calcul du gain dynamique de correction.
L’utilisation de la technique des LUT appliquée au gain de Kalman permet de fortement

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.

Algo Opération O(.)


X̃k+1 = [A]X̂k + [B]Uk 2n2
Ỹk = [C]X̃k + [D]Uk 2m(n + p)
Gain commuté
Ek = Yk − Ỹk m
X̂k = X̃k + [Kk ]Ek 2mn

Table 2.6 – Complexité des étapes de filtrage à gain commuté en fonction de n, m et p

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.5.3 Calculs en virgule fixe


Comme évoqués précédemment, les micro-contrôleurs généralement utilisés dans les
capteurs sont dépourvus d’unités de calculs flottants et doivent donc effectuer toutes les
opérations relatives à ces calculs par émulation logicielle. Ainsi, le temps consacré à une
opération flottante est nettement plus important que celui consacré à la même opération
sur un entier.
La solution d’optimisation proposée consiste donc à réaliser tous les calculs en entier
avec un facteur d’échelle prédéterminé, et correspondant à l’application (permettant le
meilleur compromis précision/plage maximum de mesure) [12]. Bien que très performante,
cette solution impose une étude préalable rigoureuse pour la sélection de la représenta-
tion et peut provoquer des instabilités numériques sur certaines opérations (par exemple
l’inversion d’une matrice de covariance). Elle est donc à ne réserver que pour les cas
nécessitant les optimisations les plus extrêmes.

2.5.4 Pre-processing des mesures pour un système linéaire


Dans certains cas, les mesures réalisées par un capteur peuvent êtres simplement tra-
duites en informations linéaires. Cette traduction peut être effectuée par LUT ou par un
calcul peu coûteux, ce qui simplifie fortement l’estimateur en aval.
Par exemple, dans le cas de notre capteur de rayonnement solaire évoqué au chapitre
1.2, il est possible de remplacer la mesure de CTN dans l’équation du modèle par la
température correspondante à cette mesure (Ts ) et ainsi revenir à un filtre de Kalman
linéaire, plus simple à calculer.
Il faut cependant noter que dans ce cas, la non-linéarité du bruit de mesure n’est pas
répercuté sur le filtre, ce qui peut conduire à une solution sous-optimale.

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

[1] James Martin. Programming real-time computer systems. Prentice-Hall, 1965.


[2] Robert B. Miller. Response time in man-computer conversational transactions. In-
ternational Buisness Machines Corporation, 1968.
[3] K.G. Shin ; P. Ramanathan. Real-time computing : a new discipline of computer
science and engineering. Proceedings of the IEEE, 82 :6–24, January 1994.
[4] M.E.M.B. Gaid ; A. Cela ; Y. Hamam. Optimal integrated control and scheduling
of networked control systems with communication constraints : application to a car
suspension system. IEEE Transactions on Control Systems Technology, 14 :776–787,
2006.
[5] IC Insights. The mcclean report, 2014.
[6] Jean-Pierre Deschamps ; Géry Jean Antoine Bioul ;Gustavo D. Sutter. Synthesis of
Arithmetic Circuits : FPGA, ASIC, and Embedded Systems. Wiley Online Library,
Mars 2006.
[7] Sameh Galal ; Mark Horowitz. Energy-efficient floating-point unit design. IEEE
Transactions on Computers, 60 :913–922, 2010.
[8] STMicroelectronics. Floating point unit demonstration on stm32. An4044, Applica-
tion Note, May 30 2016.
[9] S. Russell and P. Norvig. Intelligence artificielle : Avec plus de 500 exercices. Pearson
Education. Pearson, 2010.
[10] G.H. Golub ; C.F. Van Loan. Matrix Computations. Johns Hopkins University Press,
3rd edition, 1996.
[11] B. Sinopoli ; L. Schenato ; M. Franceschetti. Kalman filtering with intermittent ob-
servations. IEEE Transactions on Automatic Control, 49 :1453–1464, 2004.
[12] S. Ardalan ; S. Alexander. Fixed-point roundoff error analysis of the exponentially
windowed rls algorithm for time-varying systems. IEEE Transactions on Acoustics,
Speech and Signal Processing, 35 :770–783, 2003.

55
56
Chapitre 3

Un cas pratique industriel : le projet


UQS

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.

3.1 Principe de fonctionnement

Le capteur UQS est un capteur embarqué, développé et commercialisé par MEAS-


France / TE Connectivity, chargé de mesurer la concentration d’urée en solution aqueuse
dans un réservoir. Ce capteur est utilisé dans le cadre du système SCR (Selective Catalytic
Reduction) pour la dépollution des oxydes d’azote (N O, N O2 ) sur les gros moteurs diesel
[1][2]. Il utilise le principe de la spectroscopie proche infra-rouge (Near Infra-Red, NIR)
pour déterminer le type de fluide dans le réservoir et, dans le cas de l’urée, mesurer sa
concentration.
Les travaux effectués autour de la mesure optique d’ammoniac au sein du système
SCR portent actuellement principalement sur sa mesure en phase gazeuse [3][4].

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.

Figure 3.1 – Principe de fonctionnement d’un spectromètre

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

Il est ainsi possible de déterminer à partir d’un spectromètre de laboratoire la concen-


tration d’urée en solution aqueuse par analyse du spectre d’absorption du liquide. Pour
ce projet, nous faisons l’hypothèse que le spectre d’abosrption évolue linéairement pour
chaque longueur d’onde en fonction de la concentration en urée, et peut donc être com-
plètement déterminé à partir des mesures d’absorption réalisées.
La spectroscopie de laboratoire impose cependant des contraintes importantes quant
aux conditions de mesure. En effet, la source lumineuse ainsi que le capteur doivent

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.

3.1.2 Le capteur UQS


Le capteur UQS est un capteur devant mesurer la concentration d’urée sur un véhicule
et transmettre cette information au calculateur central au travers du bus CAN. Il doit
donc être capable d’effectuer les mesures en continu dans un environnement défavorable
soumis à de fortes variations environnementales et à des vibrations, le tout en garantissant
une fiabilité de fonctionnement et des coûts de productions compatibles avec le secteur
automobile.
Pour répondre à ce besoin, l’architecture de laboratoire spectromètre/PC a été sim-
plifiée en se basant sur trois sources lumineuses à spectre étroit sélectionnées en fonction
du besoin spécifique, de capteurs photo-diodes à large spectre de sensibilité et d’une ar-
chitecture basée sur le micro-contrôleur 8bits (Figure 3.3).

Figure 3.3 – Architecture matérielle du capteur UQS

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

Figure 3.5 – Spectre d’émission des LEDs à 25◦ C


Sled,i (λ, 25, Li,current )

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).

Figure 3.6 – Principe de fonctionnement du capteur UQS

60
Figure 3.7 – Sensibilité spectrale des photo-diodes à 25◦ C
sensibilite(λ, 25)

Figure 3.8 – Séquence d’allumage des LEDs

3.1.3 Grandeurs d’entrées-sorties

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...

3.2.1 La thermique au coeur du système


De par son architecture, le système présente une forte sensibilité à la température de
ses différents éléments. Nous pouvons par exemple remarquer que les spectres d’absorption
de l’eau et de l’urée varient en température (Figures 3.9a et 3.9b)[8], ce qui impose une
mesure de la température du fluide. De plus, les comportements thermiques des compo-
sants électroniques et optroniques (LEDs, photo-diodes, amplificateurs...) sont eux aussi
fortement sensibles à chacune de leurs températures [9] (Figures 3.10a et 3.10b).

3.2.2 Obstructions optiques


Le principe de fonctionnement du capteur, se basant sur le comportement optique du
fluide, est de fait sensible aux évènements se produisant sur ce chemin que nous pourrons
classifier selon 4 catégories :
— Obstruction partielle, identique sur toutes les voies : il s’agit d’une atténua-
tion du signal de façon proportionnelle sur toutes les voies. Ce cas de figure peut
être facilement observé grâce à la LED4 qui n’est pas sensible à la concentration
et à la redondance des mesures,
— Obstruction partielle, sur une ou plusieurs voies de façon décorrélée : il
peut par exemple s’agir d’une bulle ou de poussière dans le chemin optique. Ce cas
est plus difficile à traiter que le précédent car il peut affecter le principe même de
fonctionnement du capteur s’il n’est pas diagnostiqué. Une redondance des LEDs
en plusieurs positions permet de diminuer l’impact du problème,
— Obstruction totale sur toutes les voies : il peut s’agir d’un fluide givré ou
d’un obstacle dans le chemin optique. Aucune mesure ne peut être effectuée dans
ces conditions,
— Obstruction totale sur une ou plusieurs voies : Dans le cas d’une particule
opaque dans le chemin optique d’une ou plusieurs LEDs. Cette erreur est géné-
ralement facilement détectée et l’obstruction de courte durée, ce qui permet de
continuer la mesure par élimination des points défaillants.
Au cours de notre étude, nous ne nous occuperons donc que du cas d’une obstruction
partielle, identique ou non sur toutes les voies, mais évoluant de façon lente (par exemple
dans le cas de dégradation des propriétés optiques des plastiques au cours des mois d’utili-

62
(a) sensibilité thermique de l’eau : absorption(λ, 0, T )

(b) sensibilité thermique de l’urée : absorption(λ, 32.5, T )

Figure 3.9 – Sensibilité des spectres d’absorption à la température du fluide

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.

3.2.3 Sensibilité mécanique


L’utilisation de composants optroniques, et en particulier de LEDs mises en boîtiers
compacts (Figure 3.11), donne au système une sensibilité mécanique liée à l’alignement
des éléments optiques.
Cette sensibilité peut se traduire de deux façons différentes :
— par une dispersion des puissances reçues d’un produit à l’autre,
— par une sensibilité thermique des gains de transmission optique dues aux dilatations

63
(a) LED4 : Sled4 (λ, T, L4current )

(b) LED2 : Sled2 (λ, T, L2current )

Figure 3.10 – Sensibilité thermique des LEDs

des différents éléments mécaniques et optiques du capteur en fonction de leurs


températures.
La dispersion de centrage d’un capteur à l’autre sera un élément de calibration que
nous modéliserons par des gains directs et miroirs. Le comportement thermique quant à
lui, devra être inclus de façon dynamique et dépendante de la température.

3.3 Approche orientée modèle


Afin d’effectuer la mesure de la concentration d’urée à partir du capteur UQS, notre
première approche a consisté à dresser un modèle multi-physique du capteur et de ses

64
Figure 3.11 – LED package UQS

éléments et d’en déterminer les paramètres d’influence :


— Les paramètres de dispersion, qui décrivent la spécificité d’un capteur par rapport
à un autre,
— Les paramètres de vieillissement, qui décrivent les modifications du comportement
du capteur au cours de sa vie.

3.3.1 Paramètres de dispersion


Parmi les paramètres de dispersion, nous retrouvons la dispersion intrinsèque à tous
les composants utilisés, qu’il s’agisse de tolérances mécaniques, de dispersions de résis-
tances, ou de tout autre composant électronique. Nous considérerons cependant que cette
dispersion se répartit majoritairement selon deux axes :
— La dispersion des spectres d’émission des LEDs, principalement par rapport
à leur longueur d’onde centrale, qui détermine leur position vis-à-vis du spectre
d’absorption des fluides mesurés.
— L’influence du montage mécanique du capteur sur les gains de transmis-
sion, de réflexion optique ainsi que sur la sensibilité thermique due à la dilatation
des matériaux.
Ces paramètres de dispersion seront compensés dans le modèle du capteur lors de la
calibration en usine de celui-ci ou lors de la première utilisation.

3.3.2 Paramètres de vieillissement


Comme tout système physique, le capteur est soumis à un processus de vieillissement
qui altère son comportement. Dans le cas de capteurs en laboratoire, cette dérive est
compensée par un ré-étalonnage régulier, voire systématique avant chaque utilisation du
système. Pour un capteur embarqué sur véhicule, nous ne pouvons cependant pas nous
permettre d’utiliser une procédure aussi lourde, ceci sera donc compensé par l’utilisation
de paramètres liés au vieillissement qui seront remis à jour de façon régulière par le système
lorsque les conditions seront stables. Les principaux impacts du vieillissement étant :
— Une diminution lente de la puissance optique émise par les LEDs pour
une puissance électrique donnée en entrée (diminution du rendement)

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.

3.3.3 Modèle des éléments optiques


A partir de ces paramètres, nous avons dressé les modèles multi-physiques et multi-
paramétriques des trois principaux constituants de la chaîne de mesure, à savoir :
— Les LEDs, sensibles aux courants d’excitation et à la température, ces dernières
fournissent un spectre optique,
— Les photo-diodes, sensibles à un spectre optique et à la température, ils fournissent
en sortie un courant,
— le fluide le long du trajet optique (nous ne nous concentrons que sur l’urée dans
notre cas), sensible à la température et à la concentration d’urée, celui-ci absorbe
et modifie le spectre optique qui le parcourt.
Nous allons détailler dans les trois prochaines parties les modèles dont nous avons tiré
ces éléments.

LEDs
Nous pouvons représenter une LED selon le schéma bloc en Figure 3.12.

Figure 3.12 – Schéma bloc d’une LED


Sled,i (λ, Tled , Icmd )

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é.

Figure 3.13 – Manipulation de caractérisation des LEDs

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).

Figure 3.14 – Schéma bloc de la photo-diode


Idet (Tdet , Sentree )

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.

Figure 3.15 – Manipulation de caractérisation de la photo-diode au LAAS-CNRS

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.

Figure 3.16 – Schéma bloc du modèle d’absorption du fluide


Ssortie (λ, Tu , %u)

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 :

Ssortie (λ, Tu , %u) = Sentree (λ) · absorption(λ, Tu , %u) (3.2)


où absorption(λ, Tu , %u) correspond au facteur de transmission de la longueur d’onde
λ à la température T u pour une concentration de %u pourcent d’urée dans l’eau.

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.

3.3.4 Modèle orienté signal du système optique


Une fois les éléments constitutifs principaux du capteur modélisés, nous avons choisi
de les assembler de façon à dresser un modèle orienté signal du capteur. De cette façon,
le modèle global simule en interne le comportement de chaque élément, en propageant les
signaux d’un élément à l’autre et en les mettant à jour via les différents éléments traversés.
De par son principe de fonctionnement, nous avons implémenté ce modèle, ainsi que
ces sous-modèles, selon un design pattern publisher subscriber [12].
Afin d’intégrer différentes altérations du signal, nous avons de plus ajouté un ensemble
de gains pouvant êtres réglés indépendemment :
— Le gain direct, noté Kdirect permettant de simuler une opacification du chemin
optique (par exemple de la poussière),
— Le gain miroir, noté Kmirror est utilisé pour représenter les variations de puissance
d’émission des LEDS, il correspond au facteur de transmission entre la voie miroir
et les LEDs,
— Des gains dissociés KdirectX (X correspondant au numéro de chaque LED) et
KmirrorX permettant de simuler une modification de la calibration du capteur
pour les premières et une variation individuelle des puissances d’émission pour les
secondes.
D’un point de vue implémentation, nous avons de plus choisi d’affecter à la voie directe
le gain Kmirror ∗ Kdirect car une variation de la puissance des LEDs affecte aussi la voie
directe.
Ce modèle peut être représenté selon la Figure 3.17.
Nous voyons ainsi que le modèle orienté signal prend en entrées :
— Les courants d’excitation des LEDs comme entrées de commandes,
— Les températures des différents éléments comme grandeurs d’influence,
— La concentration d’urée comme grandeur d’influence,
— Les gains de transmission directs et miroirs comme grandeurs d’influence.
et fournit en sortie :
— les courants mesurés en sortie des photo-diodes.

69
Tled %u Tf luid Tdir

Li,current Sled,i (λ) Smir,i (λ) Sdir,i (λ) Li,direct


Sled abs det
Kmirror,i Kdirect,i · Kdirect
Tmir

Li,mirror
det

Figure 3.17 – Schéma bloc du modèle orienté signal

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)
−∞

Ainsi, ce modèle correspond aux contraintes d’interface et de représentation détermi-


nées précédemment.
A ce stade, nous considérons cependant le comportement du système comme statique
et instantané. Afin de représenter le comportement dynamique, nous avons donc choisi de
séparer le comportement thermique du comportement optique.

3.3.5 Une dynamique thermique indépendante


Si on s’attarde sur le comportement physique des composants, on se rend compte que la
température de ces derniers a une influence sur leurs sorties. Cependant, cette température
n’est influencée que de façon négligeable par le comportement des autres éléments du
système. Elle représente de plus un comportement dynamique bien plus lent que la partie
optique (considérée comme instantanée aux vues de la période d’échantillonnage de 500ms
du système).
Ces différentes considérations nous ont amené à établir le comportement thermique du
système comme un sous-système indépendant dont les sorties servent de paramètres d’en-
trée au modèle optique décrit précédemment. Comme évoqué dans le chapitre précédent
2.5.1, la représentation séparée de ce sous-système linéaire permet de réduire fortement
la complexité de l’estimateur global.
Pour dresser ce modèle, nous considérons que le système thermique comprend 2 entrées
distinctes :
— La température ambiante, correspondant à la température du fluide dans lequel
baigne le capteur, Tf luid ,
— L’auto-échauffement dû à la dissipation par effet Joules Pd des différents com-
posants (comme présenté ci-dessous, cet échauffement est principalement dû au
micro-contrôleur et au driver de bus CAN). Celle-ci est considéré comme constant
après allumage.

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.

Figure 3.18 – Schéma bloc du modèle thermique

Ce comportement thermodynamique étant linéaire par nature, cette modélisation sé-


parée permet de plus de diminuer la complexité des calculs durant la phase d’estimation
que nous traiterons ci-dessous.
Pour caractériser et identifier le modèle thermique, deux campagnes de mesures ont
été effecuées dans le laboratoire :
— la caractérisation thermique du PCB nu, i.e. sans le boitier plastique et sans im-
mersion dans le liquide, présentée dans la section 3.3.5 effectuée à l’aide d’une
caméra thermique. Cette caractérisation a permis de mettre en évidence les phé-
nomènes d’auto–échauffement et d’orienter le modèle analytique développé dans la
section 3.3.5 vers les phénomènes thermiques les plus sensibles ;
— des mesures de réponses à des échelons (présentées dans la section 3.3.5 de tem-
pératures du fluide) et à des échelons d’auto-échauffement, soit des démarrages à
froid. Ces mesures ont permis l’identification paramétrique du modèle.

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é.

Figure 3.19 – Installation du capteur devant la caméra IR

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.

Sur la version B , la procédure précédente a été répétée sur un produit nu et non


peint. Le produit a été positionné successivement selon les vues de face (Figure 3.23a), de
dos (Figure 3.23b) et de côté (Figure 3.23c) pour effectuer les mesures.
Les résultats obtenus lors de ces mesures, selon les différentes lignes, sont présentés en
Figures 3.24 et 3.25.

72
Figure 3.20 – Positionnement du capteur vu par la caméra

Figure 3.21 – Profil thermique du capteur en état stable

Figure 3.22 – Comportement transitoire du capteur

73
(a) vue de face

(b) vue de dos

(c) vue de côté

Figure 3.23 – Positionnement du capteur vu par la caméra

74
(a) vue de face

(b) vue de dos

Figure 3.24 – Positionnement du capteur vu par la caméra

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

Figure 3.26 – Modèle électrique équivalent au système thermique

TLED M es ; et celle de la zone de mesure de la température d’urée par Tu M es. On modélise


le flux thermique venant de l’échauffement de la CPU et du transmetteur CAN par une
source de courant Pcpu affectant directement Tcpu .
Nous modélisons par les conductances Gl , Gu , et Gd l’échange thermique entre la zone
CPU et les zones voisines. Les échanges thermiques entre chaque zone et le fluide via le
boîtier sont modélisés par Glb , Gub , Gdb et Gt . Ainsi le modèle est totalement couplé de
sorte que chacune des températures peut influencer l’autre par le biais du phénomène de
conduction thermique.
Les observations sur les réponses en échelon thermique et sur la caméra thermique ont
permis de mettre en évidence le fait que les capteurs de température situés dans chacune
de ces zones évoluent, du fait de leur emplacement sur le PCB, avant que les éléments
actifs de la chaine optique ne soient réellement affectés par ces variations thermiques.
Afin de simplifier le modèle et son identification paramétrique nous avons représenté ce
phénomène de retard par une dynamique de premier ordre. Ainsi la température Tled M es
correspondant au capteur de température est retardée par un premier ordre via Gled1
et Cmir pour donner une température Tmir affectant le détecteur de retour mirroir. Ne
souhaitant pas modéliser un couplage thermique mais un phénomène de retard causal de
Tled M es vers Tmir , nous considérons qu’une adapatation d’impédance est effectuée par un
ampli de gain unitaire (symbole formé d’un triangle sur le schéma 3.26)commandant le
premier ordre. Il en est de même pour Tled , donnée elle aussi par un premier ordre (Gled2
et Cled ) issue de Tled M es et Tdir issue de Tdir M es via Gdir et Cdir .
A partir de là, nous pouvons déterminer les équations différentielles nous permettant
de déterminer le comportement des différents points de température en fonction de valeurs
des divers paramètres (valeurs des composants). Par exemple, l’équation 3.6 représente

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).

−(Gu +Gl +Gd +Gt )


 
Gu Gl Gd
Cc Cc Cc Cc
0 0 0
 
Gu −(Gu +Gub )

 Cu Cu
0 0 0 0 0 

 
Gl −(Gl +Glb )

 Cl
0 Cl
0 0 0 0 

 
Gd −(Gd +Gdb )
[A] = 0 0 0 0 0
 
Cd Cd
 
 
1 Gled2 1
0 0 = 0 − τled 0 0
 
 
 τled Cled 
1 Gdir 1
0 0 = 0 0 − τdir 0
 
 
 τdir Cdir 
1 Gled1 1
0 0 0 τmir
= Cmir
0 0 − τmir
(3.7)
 
1 Gt
 Cc Cc 
Gub
0
 
 
 Cu 
Glb
0
 
 
 Cl 
[B] = Gdb (3.8)
 

 0 Cd


 

 0 0 

 

 0 0 

0 0

Ainsi que les matrices



de mesure

[C] (3.9) et [D] (3.10) permettant d’obtenir le vecteur
Tu M es
 
 Tled M es 
 
 
 T M es 
 dir 
 
de mesures Y =   Tf luid .

 

 Tled  
 

 Tmir  
Tdet

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.

Xk+1 = e[A] Te Xk + Te [B] Uk (3.11)


Yk = [C] Xk + [D] Uk (3.12)

avec Te la période d’échantillonnage du système.


Afin d’identifier les paramètres de ce modèle, une campagne de mesure (présentée dans
la suite) effectue des échelons de température de fluide et d’auto–échauffement permettant
d’identifier les valeurs numériques des paramètres.

Procédure d’étalonnage et caractérisation


Une fois la structure du modèle dressée, il faut attribuer des valeurs aux différents
paramètres de conductances et de capacités. Pour cela, nous avons effectué sur un produit
UQS les essais suivants :
— Un démarrage à froid : le produit est positionné non alimenté dans un bain d’eau à
température ambiante durant 10min afin d’être parfaitement thermalisé. Le produit
est ensuite allumé, toujours dans le bain, et ses mesures sont enregistrées sur une
durée de 20min dans un fichier par le biais d’une liaison CAN vers un PC.

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 :

(Ymes,k − Ỹk (Γ)) · (Ymes,k − Ỹk (Γ))T


X
(3.13)
k

en utilisant une fonction de recherche itérative de minimum [13], avec :


— Γ = (Gu , Gl , Gd , Gt , Cc , Cu , Cl , Cd )T le jeu de paramètres à estimer,
— Y = (TuM es , TledM es , TdirM es )T les mesures effectuées lors de la phase de calibration,
 T
— Ỹ(Γ) = T̃uM es , T̃ledM es , T̃dirM es les mesures estimées d’après le modèle thermique
paramétré par Γ.
En appliquant cette technique sur les mesures de calibration thermique, nous avons
pu déterminer le jeu de paramètres présentés en Table 3.2.

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

Table 3.2 – Valeurs des paramètres de calibration du modèle thermique

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

Table 3.3 – Valeurs des paramètres de calibration manuelle

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).

3.3.6 Modèle complet


Une fois ces deux éléments mis en place, nous pouvons composer le modèle orienté
signal complet du système à partir du modèle thermique et du modèle optique. Ce modèle
peut être représenté selon le schéma bloc 3.28, et est détaillé en Figure 3.29.

3.3.7 Estimation et stratégies de calibration


Nous disposons maintenant d’un système composé de deux sous-modèles :
— le modèle thermique, linéaire, indépendant de la partie optique et pré-calibré,
— le modèle optique orienté signal, commandé par le modèle thermique et pou-
vant faire l’objet d’une calibration pour fixer les gains de transmission Kdirect,
KdirectX, Kmirror et KmirrorX ainsi que la concentration d’urée.
En s’appuyant sur ces modèles nous pouvons donc dresser un ensemble d’estimateurs
de Kalman permettant de répondre à la problématique d’estimation des paramètres per-
mettant de fournir une concentration d’urée fiable en sortie.

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

(b) Erreurs d’estimation

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

De plus, le vecteur de commande devient (3.16) :

U = (Pcpu ) (3.16)

Nous pouvons ainsi déduire les matrices d’évolution (3.17, 3.18) et de mesure (3.19,
3.20) :

−(Gu +Gl +Gd +Gt )


 
Gu Gl Gd Gt
Cc Cc Cc Cc Cc
0 0 0
 
Gu −(Gu +Gub ) Gub

 Cu Cu
0 0 Cu
0 0 0 

 
Gl −(Gl +Glb ) Glb

 Cl
0 Cl
0 Cl
0 0 0 

 
Gd −(Gd +Gdb ) Gdb
[A] = 
 Cd
0 0 Cd Cd
0 0 0


 
0 0 0 1
= GCled2 0 1
− τled 0 0
 
 
 τled led 
1 Gdir 1
0 0 0 = Cdir 0 0 − τdir 0
 
 
 τdir 
1 Gled1 1
0 0 0 0 τmir
= Cmir
0 0 − τmir
(3.17)

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

Figure 3.29 – Modèle orienté signal complet


 
1
 Cc 

 0 

 

 0 

 
[B] = 
 0 
 (3.18)
 

 0 

 

 0 

0
 
0 1 0 0 0 0 0 0
 
[C] =  0 0 1 0 0 0 0 0 

 (3.19)
0 0 0 1 0 0 0 0
 
0
 
[D] =  0 

 (3.20)
0
A partir de ces équations, nous sommes en mesure de mettre en place l’estimateur
de Kalman linéaire permettant d’obtenir les températures des différents composants, qui
nous serviront de commande pour les estimations sur les modèles orientés signaux.

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.

En mode estimation de 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.

Procédure de calibration du capteur


Le profil de calibration utilisé est identique pour les trois tests et est décrit comme
suit (Figure 3.30) :
— La concentration d’urée est connue et de 32.5%,
— Les gains directs sur les LEDs 2, 3 et 4 sont respectivement 0.8, 1.1 et 1.3,
— Le gain global (commun à toutes les LEDs) sur la voie mirroir est de 0.9,
— Tous les autres gains sont à 1.0,
— la procédure de calibration est effectuée sur une durée de 3000 secondes (50 min),
— les 100 premières secondes, la température du fluide est à 5◦ C,
— ensuite, la température monte selon une rampe entre 5◦ C et 60◦ C durant les 2400
secondes (40 minutes) suivantes,
— sur les 500 dernières secondes, la température reste constante à 60◦ C.

Figure 3.30 – Profil thermique de calibration

Nous constatons que le modèle thermique (Figure 3.30) et le modèle de calibration


optique (Figure 3.31) convergent rapidement vers les valeurs paramétrées pour la simula-
tion.
Une fois la calibration effectuée, les valeurs de gains sont sauvegardées comme para-
mètres pour l’estimateur d’urée.

87
(a) Scenario complet

(b) Début de scénario

Figure 3.31 – Evolution des gains estimés lors de la phase de calibration

Convergence lors d’une variation de température

La première étape de validation consiste ensuite à valider le fonctionnement de l’es-


timateur lors de variations de température et de concentration d’urée. Pour cela, nous
avons mis en place le scénario suivant :
— Durant les 800 premières secondes, la température est de 60◦ C et la concentration
de 30% d’urée,
— Entre 800 et 2200 secondes, la concentration diminue de façon linéaire de 30% à
10%,
— Puis les paramètres sont stables de 2200 à 3000s,
— Finalement la température diminue de 60◦ C à 10◦ C entre 3000 et 4000s, avant de
finir sur un état stable jusqu’à 6000s.

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.

Figure 3.32 – Comparaison de l’estimation et de la simulation de température (variation


de température et de concentration)

Figure 3.33 – Comparaison de l’estimation et de la simulation de concentration (variation


de température et de concentration)

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

Table 3.4 – Erreurs sur l’estimation des paramètres principaux

Convergence lors d’une variation d’opacité sur le chemin optique

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.

Figure 3.34 – Comparaison de l’estimation et de la simulation de concentration (variation


de gain direct)

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.

Figure 3.35 – Comparaison de l’estimation et de la simulation de concentration (variation


de gains miroirs)

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

Figure 3.37 – Évolution des gains estimés lors de la 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).

Étape d’estimation de la concentration


Pour la phase d’estimation de la concentration, l’estimateur de concentration est cali-
bré à partir des gains déterminés précédemment, puis se voit appliquer les jeux de mesures
de la phase de test. La concentration du fluide est alors estimée (Figure 3.38).
Nous remarquons ainsi que la concentration est estimée entre 15% et 55%, avec une

93
Figure 3.38 – Estimation de la concentration d’urée

concentration moyenne de 28.09% contre une concentration réelle de 32.5% et un écart-


type de 9.32%.
Ces résultats confirment l’hypothèse effectuée lors de la calibration quant à l’impréci-
sion du modèle du capteur.

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.

3.3.10 Question de puissance


Bien qu’étant la solution la plus élégante, le modèle orienté signal poserait un problème
de taille lors de son implémentation sur cible (dans l’hypothèse où il serait fonctionnel).
Comme évoqué au cours du Chapitre 2, les problématiques de complexité algorithmique
sont une partie centrale de la réalisation de systèmes embarqués. Bien que la complexité de
l’estimateur de Kalman soit modérée si nous choisissons avec soin nos vecteurs d’états et de
mesure, le modèle orienté signal présenterait quant à lui une complexité trop importante
pour être intégré au sein de l’architecture actuelle.
Il faut en effet considérer que le système actuel est construit autour d’un micro-
contrôleur 8bits, dépourvu de FPU, cadencé à 16MHz et ne disposant que de 128Ko
de mémoire Flash (dont seulement 60Ko sont disponibles actuellement).
Or, d’un point de vue mémoire, les LUT utilisées pour représenter le modèle des diffé-
rents éléments du système dépasseraient probablement l’espace disponible pour permettre
une précision suffisante pour le système. De plus, chaque itération du modèle demande
un grand nombre de multiplications (700 ∗ 3 ∗ 2 = 4200), et ce répété pour chaque tirage
de l’estimateur HUKF, ce qui est irréalisable à la fréquence d’échantillonnage de 1Hz.
A titre indicatif, sur un PC utilisant un processeur Intel Core i7 à 3.5GHz, l’estimation
du scénario de test de 8135s est effectuée en 400s, soit un temps moyen par échantillon
de 50ms.
L’approche boîte noire est donc la piste privilégiée pour répondre à la problématique
d’estimation sur ce capteur.

3.4 Approche sans modèle


Les approches sans modèle, ou «boîte noire» peuvent se présenter sous plusieurs
formes :
— Absence complète de modèle formel, donc sous forme de LUT,
— Modèle hybride polynomial, cherchant à synthétiser le comportement complet du
système sous la forme d’un polynôme.

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.

3.4.1 Méthode des LUTs de calibration


Le point principal lors d’un système en boîte noire est la question de la calibration de
ce dernier. En effet, dans le cadre d’un système comme UQS, le comportement du système
dépend de la température des différents éléments de ce dernier. Cette variable ne pouvant
pas être commandée sur le terrain, le capteur doit donc être en mesure «d’attendre» que
la température soit bonne pour mémoriser l’information, et ce, à condition qu’elle soit
fiable.
Une calibration polynomiale n’est alors possible que lorsque la quantité de données
fiables acquises est suffisante, on peut alors effectuer une régression sur les données pour
converger vers les valeurs des coefficients du polynôme.
Pour ces différentes raisons, nous avons choisi, en collaboration avec Tom FOUGERE
de MEAS-France / TE Connectivity, de mettre en place un système de mémorisation
des mesures sous forme de LUT. Lorsque celles-ci sont effectuées dans un fluide de réfé-
rence, il devient alors théoriquement possible au produit de s’auto-calibrer s’il dispose de
suffisamment d’informations.

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.

Figure 3.39 – Evolution de l’erreur au cours d’une simulation sur LUT

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).

Figure 3.40 – Le micro-contrôleur n’est qu’une interface entre le PC et les éléments


sensibles

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.42 – Le micro-contrôleur effectue le traitement et ne transmet que l’information


utile à l’ECU

Application-Specific Integrated Circuits (ASIC).

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

Applicabilité de la méthode avec


contrainte temps-réel

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...).

4.2 Contraintes matérielles et temporelles


La capture et l’analyse du mouvement humain, et particulièrement lors du geste spor-
tif, nécessite la capacité de traiter les données fournies par les capteurs à une cadence
importante (pour des mouvements compris entre 1Hz et 10Hz selon les études [4, 5].
Dans notre cas, les capteurs fournissant des mesures à 50Hz (soit un temps de traitement
maximal par échantillon de 20ms), nous avons sélectionné cette valeur pour contrainte.
Le matériel choisi est de plus un capteur System on Package, le iNemo-M1 [3] de chez
ST Microelectronics, composé de :
— Un accéléromètre 3 axes et magnétomètre 3 axes LSM303DLHC,
— Un gyroscope 3 axes L3GD20,
— Un micro-contrôleur 32bits STM32F103REY6, sans FPU, cadencé à 72MHz.
Pour des raisons d’ergonomie, d’encombrement et de capacité des batteries, nous avons
fait le choix d’effectuer la totalité du traitement, ainsi que la gestion de la communica-
tion avec l’environnement extérieur au travers d’un lien WiFi, au sein même du micro-
contrôleur intégré au capteur.
Nous obtenons ainsi le système présenté en Figure 4.1.

4.3 Application de la méthode au système


En appliquant la méthodologie proposée sur ce système pour déterminer l’orientation
d’un capteur à partir des mesures, nous obtenons les étapes suivantes (Figure 4.2).

Liste des entrées/sortie et paramètres d’influence


Ainsi, nous avons par exemple :

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

Au cours de la phase de calibration, seules les valeurs minimales, maximales et moyennes


de ces mesures nous intéressent, il n’est donc pas utile de mettre en place de filtre de Kal-
man, et donc de vecteurs associés.
Au cours de la phase d’estimation, le vecteur de commande U est composé des gains
et offsets de calibration. Nous pouvons avoir par exemple les biais bmx , bmy et bmz pour le
magnétomètre, bgx , bgy et bgz pour le gyroscope et les gains gax , gay et gaz pour l’accéléro-
mètre, ce qui donne le vecteur :
 

gax 

 gay 

 

 gaz 

 

 bgx 

 
U= 
 bgy 
 (4.2)
 

 bgz 

 

 bmx 

 

 bmy 

bmz

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)

Mise en place du filtre de Kalman


A partir du modèle précédent, il suffit de mettre en place un filtre de Kalman hybride
pour la phase d’estimation de l’orientation du capteur pour déterminer l’orientation de
celui-ci (tel que présenté en 1.2.5).
Nous avons donc un vecteur d’état de 6 états, un vecteur de mesure de 9 mesures et un
vecteur de commande de 9 commandes. A partir de là, nous pouvons calculer la complexité
du filtre de Kalman associé qui serait de 9309 FLOPs par estimation, sans optimisation
particulière du code d’estimation. A une fréquence de 50Hz, cela fait un besoin calculatoire
de 465 450 FLOPs/sec. Or, nous estimons d’après le tableau 2.1 (Chapitre 2) que le
STM32F103 à 72MHz a une capacité de calcul de 340 000 FLOPs/s !
Avec optimisation du code, et en particulier des algorithmes d’inversion de matrice,
nous pouvons cependant espérer diminuer à 7 851 FLOPs par estimation. Nous avons
aussi la possibilité de n’effectuer l’étape de correction que pour un échantillon sur deux, ce
qui permet de diminuer suffisamment la complexité pour rendre l’opération envisageable.
Cette solution particulière est celle adoptée par ST Microelectronics pour sa bibliothèque
iNemo Engine[6].
L’un des inconvénients de la représentation yaw, pitch, roll utilisée ici est la présence
de singularité par blocage de cardant [7]. L’une des solutions à ce problème est l’utilisation
de la représentation des rotations par un quaternion [8][9].
De tels filtres ont déjà été étudiés, optimisés et documentés [3][10]. Nous nous sommes
donc appuyés sur ces travaux pour ce projet avec l’utilisation de l’application iNemo

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.

Figure 4.3 – Architecture EKF de la bibliothèque iNemo Engine [6]

4.3.1 Essais en environnement contrôlé


Afin de valider le fonctionnement du système, nous avons testé celui-ci en environ-
nement contrôlé, afin de comparer sa mesure avec celle d’un système Vicon servant de
référence. Pour cela, nous avons installé le capteur sur un support solidaire de trois cap-
teurs passifs Vicon [14] (Figure 4.4). Cet assemblage a ensuite été positionné sur un plan
de référence et tourné successivement selon les axes X, Y et Z.
Le système de référence est composé de douze caméras Vicon MX3+ et du système
de traitement associé. Il fournit la position de chacun des capteurs passifs dans l’espace,
à une fréquence de 200Hz. A partir des coordonnées de ces 3 points, nous reconstruisons
l’orientation dans l’espace du support de référence du capteur, que nous pouvons ensuite
comparer à la mesure effectuée par le système AREM.
Afin de comparer les mesures des deux systèmes, nous avons tracé les orientations
mesurées par les deux systèmes, en utilisant les angles d’Euler comme représentation,
en interpolant les données acquises par AREM afin d’obtenir un nombre d’échantillons
compatible entre les deux systèmes. Les résultats obtenus sont présentés en Figure 4.5.
Nous remarquons ainsi que l’allure générale du mouvement est correctement retrans-
crite, cependant la dynamique n’est pas parfaitement identique. Ce phénomène est en
partie dû à des pertes de données lors de la transmission de l’information entre la carte
AREM et le PC durant la phase de mesure. En effet, la principale différence entre les
deux graphes se trouve au niveau de l’axe des X qui passe par un point de singularité sur
le Vicon (lorsque l’ange selon l’axe des Z atteint les 90◦ C). Concernant l’exploitation du

109
Figure 4.4 – Installation du capteur AREM conjointement aux capteur passifs Vicon

Vicon frame computed orientation


100
X
Y
angle (degrees)

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

mouvement en Y, nous observons bien des fréquences similiaires du fait de la différence


d’origine de l’axe du temps et de la différence de fréquence d’échantillonnage.
Afin de palier à ces problèmes de communication, les versions suivantes du système
ont étés équipées d’une carte SD permettant de garder un stockage local des résultats
d’estimations, ce que nous avons utilisé pour l’étude menée sur le mouvement en natation.

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

(b) Vue de côté

Figure 4.6 – Installation du système AREM pour le test en piscine

112
(a) Nageur amateur

(b) Nageur élite

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.

4.5 Histoire d’un aller et retour : application et ré-


ajustement de la méthode
Nous avons illustré notre méthode au cours du chapitre 3 sur l’application industrielle
du projet UQS et montré qu’elle permet d’intégrer un ensemble de mesures qui, prises
individuellement nécessiteraient un environnement de mesure contrôlé (comme en labora-
toire) pour en extraire l’information utile, mais qui, lorsqu’elles sont considérées dans leur
ensemble, permettent de compenser les variations environnementales pour en extraire une

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.

4.6 Du diagnostique en temps réel


Après cela, nous présentons au cours du chapitre 4 l’application de la méthode sur le
système AREM imposant des contraintes de temps-réel plus importantes. Pour ce système,

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

Conférences internationales avec comité de relecture


— Aurélien Valade, Antony Costes, Anthony Bouillod, Morgane Mangin, Georges
Soto-Romero, Jean-Yves Fourniols, Frederic Grappe. Embedded sensors system
applied to wearable motion analysis in sports. BioDevices : 170-175, 2016
— M. Mangin, A. Valade, A. Costes, A. Bouillod, P. Acco and G. Soto-Romero. An
Instrumented Glove for Swimming Performance Monitoring. ICSports : 53-58, 2015
— Juan D. Lemos, A. Mauricio Hernández, Georges Soto-Romero, Aurelien Valade.
Instrumented Glove for Skills Assessment in Neurosurgical Simulation. BioCAS,
2014
— A. Valade, G. Soto Romero, C. Escriba, A. Bouillod, J. Pinot, J. Cassirame, Jean-
Yves Fourniols, F. Grappe. Wearable multi-sensor system for embedded body posi-
tion and motion analysis during cycling. World Congress of Cycling Science, 2014
— A Bouillod, J Pinot, A Valade, J Cassirame, G Soto-Romero, F Grappe. Gross
efficiency is improved in standing position with an increase of the power output.
World Congress of Cycling Science, J Cycling Vol. 3(2) : 6, 2014

Conférences nationales avec comité de relecture


— Aurélien Valade, Anthony Bouillod, Florian Girard, Steeven Flores, Fabrice Se-
verac, Georges Soto-Romero, Christophe Escriba, Jean-Yves Fourniols, Julien Pi-
not, Frederic Grappe, Juan Diego Lemos, Mauricio Hernandez. Système Intelligent
Multi-capteurs dédié à la capture du mouvement. CETSIS : 155-160, 2014

121

Vous aimerez peut-être aussi