Adaptative high-gain extended Kalman filter and applications
Adaptative high-gain extended Kalman filter and applications
Adaptative high-gain extended Kalman filter and applications
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
tel-00559107, version 1 - 24 Jan 2011<br />
Ph.D.-FSTC-10-2010<br />
Faculté des Sciences, de la Technologie<br />
et de la Communication<br />
THÈSE<br />
Présentée le 30/04/2010 à Luxembourg<br />
en vue de l’obtention du grade académique de<br />
UFR 907 Sciences et Techniques<br />
Le2i, Laboratoire, Electronique, Informatique<br />
et Image, UMR CNRS 5158<br />
DOCTEUR DE L’UNIVERSITÉ DU LUXEMBOURG<br />
EN INFORMATIQUE<br />
DOCTEUR DE L’UNIVERSITÉ DE BOURGOGNE<br />
EN INFORMATIQUE<br />
Spécialité: Automatique<br />
par<br />
Nicolas BOIZOT<br />
Né le 14 Juillet 1977 à Dijon, France<br />
ADAPTIVE HIGH-GAIN EXTENDED KALMAN FILTER<br />
Jury<br />
Dr Jean-Paul Gauthier, Président<br />
Professeur, Université de Toulon<br />
Dr Eric Busvelle, Directeur de thèse<br />
Professeur, Université de Bourgogne<br />
Dr Jürgen Sachau, Directeur de thèse<br />
Professeur, Université du Luxembourg<br />
Dr Jean-Claude Vivalda, Rapporteur<br />
Directeur de Recherches, INRIA Metz<br />
Dr Gildas Besançon, Rapporteur<br />
Maître de conférences HDR, INP Grenoble<br />
Dr Martin Schlichenmaier, Examinateur<br />
Professeur, Université du Luxembourg<br />
AND APPLICATIONS
tel-00559107, version 1 - 24 Jan 2011
tel-00559107, version 1 - 24 Jan 2011<br />
Qu’est-ce qui nous prend, de mourir comme des cons,<br />
nous qui pourtant savions vivre † ?<br />
à Richard Boizot<br />
Ce jour là, j’ai bien cru tenir quelque chose et que ma vie<br />
s’en trouverait changée.<br />
Mais rien de cette nature n’est définitivement acquis.<br />
Comme une eau, le monde vous traverse et pour un temps<br />
vous prête ses couleurs.<br />
Puis se retire, et vous replace devant ce vide que l’on porte en soi,<br />
devant cette espèce d’insuffisance centrale de l’âme<br />
qu’il faut bien apprendre à côtoyer, à combattre,<br />
et qui, paradoxalement est peut-être<br />
notre moteur le plus sûr ‡ .<br />
† Frederic Dard à propos de Michel Audiard, Libération, 30 Juillet 1985.<br />
‡ Nicolas Bouvier, L’usage du monde.<br />
à Joëlle Boizot
tel-00559107, version 1 - 24 Jan 2011
tel-00559107, version 1 - 24 Jan 2011<br />
Remerciements<br />
Je remercie tout d’abord monsieur Jean-Paul Gauthier pour avoir accepté la<br />
présidence de ce jury de thèse, pour ses intuitions extrêmement pertinentes et<br />
pour m’avoir transmis le goût de la théorie du contrôle il y a de ça quelques<br />
années.<br />
Monsieur Gildas Besançon a accepté le rôle de rapporteur de ce manuscrit. Lui<br />
présenter ce travail me tenait particulièrement à coeur. Les échanges que nous<br />
avons eu, alors que je n’en étais qu’au tout début m’ont encouragé à croire en<br />
l’approche adaptative, à explorer l’aspect temps réel du problème.<br />
Monsieur Jean-Claude Vivalda m’a fait l’honneur d’être rapporteur de mon travail.<br />
J’ai beaucoup apprécié l’acuité de sa relecture et de ses questions portant<br />
sur ce lemme avec lequel je me suis battu pendant la rédaction pensant, naïf, que<br />
ce ne serait qu’une bagatelle.<br />
I’m thankful to mister Martin Schlichenmaier for being part of the jury. I remember<br />
that it took us ages to organize a talk at the doctor<strong>and</strong>s seminar of the<br />
Mathematics Research Unit: although I don’t know if the audience did, I learned<br />
a lot that day.<br />
Je remercie monsieur Jürgen Sachau d’avoir coencadré ce travail, de m’avoir accueilli<br />
au sein de son équipe, de m’avoir offert beaucoup d’autonomie et surtout<br />
de m’avoir soutenu dans mes choix.<br />
Je te suis reconnaissant, Eric, de.... plein de choses en fait. Tout d’abord, de<br />
m’avoir proposé ce beau sujet, de m’avoir instillé un peu de tes qualités scientifiques,<br />
pour ton humanité, pour ta façon à motiver les troupes. Pour le Poissonscorpion.<br />
Merci à M. Ulrich Sorger pour avoir suivi l’évolution de ce travail, à Pascal Bouvry,<br />
Nicolas Guelfy et Thomas Engel pour m’avoir accueilli avec bienveillance dans leur<br />
unité (CSC) et laboratoires respectifs (LASSY et Com.Sys).<br />
M. Massimo Malvetti a été d’une rare gentillesse et a beaucoup contribué à ce<br />
que la cotutelle soit mise en place dans de bonnes conditions.<br />
Merci à M. Jean-Regis Hadji-Minaglou de s’être dem<strong>and</strong>é ce que je pouvais fiche<br />
dans le labo et d’avoir écouté la (longue) réponse. Merci encore pour nos discussions<br />
du midi et pour la Bonne Adresse.<br />
Nos secrétaires font preuve de patience pour gérer le flou artistique qui caractérise<br />
souvent une université, je dois avouer en avoir eu ma part. Merci à Ragga,<br />
Fabienne, Denise, Danièle, Steffie, Virginie et tout particulièrement à Mireille
tel-00559107, version 1 - 24 Jan 2011<br />
Kies, témoin de cette période qui m’a vu m’exercer au violon après les heures de<br />
bureau.<br />
Tout le monde n’a pas la chance de converser avec une incarnation de Nick<br />
Tosches. C’est systématique, je quitte Alex<strong>and</strong>re Ewen avec la furieuse envie de<br />
lire à nouveau Héros oubliés du rock’n roll ou Confessions d’un chasseur d’opium.<br />
Les amis, la famille m’ont aussi apporté beaucoup de soutien dans cette histoire,<br />
qu’il me soit permis de les remercier ici.<br />
A tout seigneur tout honneur.<br />
Mult¸umesc Laurici ¸si Kenneth. Vous avez quelque part initié le mouvement, fait<br />
route avec moi et même aidé à manier les rames.<br />
Ma trinité se décompose en M’sieur Alex, M’sieur Alain et M’sieur Davy. Merci<br />
pour vos conseils avisés qu<strong>and</strong> mes pensées arpentaient un ruban de Moebius.<br />
Je souris à mes soeurs Hélène et Marie-Pierre. Je n’oublie pas la belle Emma,<br />
ses geôliers et ses vénérables ancêtres Monique et Christian, ainsi que Serge qui a<br />
troqué le soleil de la drôme pour la bise du Luxembourg le temps d’un week-end.<br />
Parlant de famille, je pense de suite aux Arpendiens. Sans être un inconditionnel<br />
de la série, je ne vois d’autre choix que de suivre un format de type friends.<br />
Merci à<br />
– Celui qui, de la perfide Albion, passait sous le manteau des articles traitant de<br />
cinétique chimique – Celui qui enseignait la théorie de la relaxation par les chats<br />
– Celui qui savait démontrer que la vie est toujours plus chaotique que ce que l’on<br />
pense – Celui qui discutait jusqu’à deux-trois heures du matin même si le train<br />
pour Auxerre est à huit – Celui qui parlait peu, mais recevait comme un prince,<br />
sous le regard d’un Lion – Celui dont l’humour était dévastateur – Celui qui se la<br />
dorait au soleil –<br />
Merci Céline de parler aux types qui jonglent aux arrêts de bus et pour ton amitié.<br />
Paul, Dylan et Prisque Busvelle forment un comité d’accueil d’une qualité à forger<br />
les légendes.<br />
Merci à la danseuse aux yeux aigue-marine, aux chanteurs, au happy living room<br />
b<strong>and</strong>, aux mentors violonistiques, bouilleurs de cru distillant l’enthousiasme.<br />
Il n’y a qu’un authentique Spritz pour effacer tout souvenir d’une campagne<br />
simulations désastreuse. Merci Maria.<br />
Last but so far from least. Anne-Marie, dame de l’été aux reflets de jais, Am<strong>and</strong>ine,<br />
dame de l’hiver aux reflets d’or et Pierrick, le géant modéhen forment le<br />
gang de la rue de Neudorf. Une équipe dont on peut douter de l’existence qu<strong>and</strong><br />
on sait qu’on lui dem<strong>and</strong>e de vivre avec quelqu’un qui passe une partie de son<br />
temps dans les astres, n’écoute pas qu<strong>and</strong> lui parle et crincrinte usuellement entre<br />
vingt-deux heures et minuit.<br />
Me croirez-vous ?<br />
Ils existent !
tel-00559107, version 1 - 24 Jan 2011<br />
Abstract<br />
Keywords - nonlinear observers, nonlinear systems, <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>,<br />
adaptive <strong>high</strong>-<strong>gain</strong> observer, Riccati equation, continuous-discrete observer, DCmotor,<br />
real-time implementation.<br />
The work concerns the “observability problem” — the reconstruction of a dynamic<br />
process’s full state from a partially measured state— for nonlinear dynamic systems.<br />
The Extended <strong>Kalman</strong> Filter (EKF) is a widely-used observer for such<br />
nonlinear systems. However it suffers from a lack of theoretical justifications <strong>and</strong><br />
displays poor performance when the estimated state is far from the real state, e.g.<br />
due to large perturbations, a poor initial state estimate, etc. . .<br />
We propose a solution to these problems, the Adaptive High-Gain (EKF).<br />
Observability theory reveals the existence of special representations characterizing<br />
nonlinear systems having the observability property. Such representations<br />
are called observability normal forms. A EKF variant based on the usage of a<br />
single scalar parameter, combined with an observability normal form, leads to an<br />
observer, the High-Gain EKF, with improved performance when the estimated<br />
state is far from the actual state. Its convergence for any initial estimated state<br />
is proven. Unfortunately, <strong>and</strong> contrary to the EKF, this latter observer is very<br />
sensitive to measurement noise.<br />
Our observer combines the behaviors of the EKF <strong>and</strong> of the <strong>high</strong>-<strong>gain</strong> EKF. Our<br />
aim is to take advantage of both efficiency with respect to noise smoothing <strong>and</strong><br />
reactivity to large estimation errors. In order to achieve this, the parameter that<br />
is the heart of the <strong>high</strong>-<strong>gain</strong> technique is made adaptive. Voila, the Adaptive<br />
High-Gain EKF.<br />
A measure of the quality of the estimation is needed in order to drive the adaptation.<br />
We propose such an index <strong>and</strong> prove the relevance of its usage. We provide a<br />
proof of convergence for the resulting observer, <strong>and</strong> the final algorithm is demonstrated<br />
via both simulations <strong>and</strong> a real-time implementation. Finally, extensions<br />
to multiple output <strong>and</strong> to continuous-discrete systems are given.
tel-00559107, version 1 - 24 Jan 2011
tel-00559107, version 1 - 24 Jan 2011<br />
Résumé<br />
Mots clefs - observateurs non linéaires, systèmes non linéaires, filtre de <strong>Kalman</strong><br />
étendu, observateur à gr<strong>and</strong>-<strong>gain</strong> adaptatif, équation de Riccati, observateur continu/discrèt,<br />
moteur DC, implémentation temps réel.<br />
Le travail porte sur la problématique de “l’observation des systèmes” — la reconstruction<br />
de l’état complet d’un système dynamique à partir d’une mesure<br />
partielle de cet état. Nous considérons spécifiquement les systèmes non linéaires.<br />
Le filtre de <strong>Kalman</strong> étendu (EKF) est l’un des observateurs les plus utilisés à<br />
cette fin. Il souffre cependant d’une performance moindre lorsque l’état estimé<br />
n’est pas dans un voisinage de l’état réel. La convergence de l’observateur dans<br />
ce cas n’est pas prouvée.<br />
Nous proposons une solution à ce problème : l’EKF à gr<strong>and</strong> <strong>gain</strong> adaptatif.<br />
La théorie de l’observabilité fait apparaître l’existence de représentations caractérisant<br />
les systèmes dit observables. C’est la forme normale d’observabilité.<br />
L’EKF à gr<strong>and</strong> <strong>gain</strong> est une variante de l’EKF que l’on construit à base d’un<br />
paramètre scalaire. La convergence de cet observateur pour un système sous sa<br />
forme normale d’observabilité est démontrée pour toute erreur d’estimation initiale.<br />
Cependant, contrairement à l’EKF, cet algorithme est très sensible au bruit<br />
de mesure.<br />
Notre objectif est de combiner l’efficacité de l’EKF en termes de lissage du bruit, et<br />
la réactivité de l’EKF gr<strong>and</strong>-<strong>gain</strong> face aux erreurs d’estimation. Afin de parvenir<br />
à ce résultat nous rendons adaptatif le paramètre central de la méthode gr<strong>and</strong><br />
<strong>gain</strong>. Ainsi est constitué l’EKF à gr<strong>and</strong> <strong>gain</strong> adaptatif.<br />
Le processus d’adaptation doit être guidé par une mesure de la qualité de l’estimation.<br />
Nous proposons un tel indice et prouvons sa pertinence. Nous établissons une<br />
preuve de la convergence de notre observateur, puis nous l’illustrons à l’aide d’une<br />
série de simulations ainsi qu’une implémentation en temps réel dur. Enfin nous<br />
proposons des extensions au résultat initial : dans le cas de systèmes multi-sorties<br />
et dans le cas continu-discret.
tel-00559107, version 1 - 24 Jan 2011
tel-00559107, version 1 - 24 Jan 2011<br />
Résumé Étendu<br />
Dans ce travail nous abordons le problème de la synthèse d’observateurs pour<br />
les systèmes non linéaires.<br />
Un système de ce type est défini par un ensemble d’équations de la forme:<br />
où<br />
− t est la variable de temps,<br />
� dx(t)<br />
dt = f(x(t),u(t),t)<br />
y(t) = h(x(t),u(t),t)<br />
− x(t) est la variable d’état, de dimension n,<br />
− u(t) est l’entrée du système, ou variable de contrôle, de dimension nu,<br />
− y(t) est la sortie, ou mesure, de dimension ny,<br />
− f, h, sont des <strong>applications</strong> dont au moins une est non linéaire.<br />
Un observateur est un algorithme qui assure la reconstruction, ou estimation,<br />
de la variable x(t) sur la base de données partielles : la mesure y(t) et l’entrée<br />
u(t). Cet état estimé sera par la suite utilisé à des fins de contrôle du système,<br />
ou de supervision comme illustré en Figure 1, où z(t) désigne l’état estimé.<br />
+<br />
u(t)<br />
Controleur<br />
Consigne<br />
Système<br />
x(t)<br />
y(t)<br />
Figure 1: Boucle de contrôle<br />
Observateur<br />
z(t)<br />
Etat<br />
estimé<br />
La mise au point et l’étude d’observateurs peuvent être décomposées en trois<br />
sous-problèmes :
tel-00559107, version 1 - 24 Jan 2011<br />
− Le problème d’observabilité se penche sur les équations constituant le système.<br />
Ce modèle permet-il la reconstruction effective de l’état à partir de ses<br />
mesures ?<br />
− Le problème de convergence se concentre sur l’observateur lui-même. L’état<br />
estimé converge-t-il vers l’état réel, et à quelle vitesse (i.e. exponentielle,<br />
polynomiale...) ?<br />
− Le problème de la fermeture de la boucle de contrôle s’intéresse à la stabilité<br />
d’un algorithme de contrôle lorsque celui-ci s’appuie sur l’estimation que lui<br />
fournit un observateur.<br />
Ces trois problèmes, bien connus dans le cas des systèmes linéaires, font l’objet<br />
d’une intense activité de recherche pour ce qui est des systèmes non linéaires.<br />
Le texte que nous présentons porte sur la mise au point d’un observateur et la<br />
résolution du second des problèmes énoncés plus tôt qui lui est associé.<br />
Motivations<br />
Notre observateur prototype est le filtre de <strong>Kalman</strong> étendu (EKF) pour lequel<br />
[43, 58, 68] constituent de bonnes entrées en matière. Travailler avec l’EKF est<br />
particulièrement intéressant car<br />
− il est très rép<strong>and</strong>u auprès des ingénieurs,<br />
− sa mise en oeuvre pratique se fait de manière très naturelle,<br />
− il est particulièrement adapté à une utilisation en temps réel,<br />
− il possède de bonnes performance de lissage du bruit de mesure [101].<br />
Un problème connu de ce filtre est son manque de garanties de stabilité. Sa<br />
convergence 1 n’est prouvée que localement, c’est-à-dire lorsque l’état estimé se<br />
trouve dans un voisinage de l’état réel.<br />
Une garantie de convergence globale peut être obtenue en ayant recours à la<br />
méthodologie gr<strong>and</strong> <strong>gain</strong> telle que proposée par Gauthier et al. [47, 54, 57]. Cette<br />
approche repose sur deux composantes:<br />
1. l’usage d’une représentation du système non linéaire considéré, caractéristique<br />
de l’observabilité 2 du système,<br />
2. une modification de l’algorithme EKF reposant sur l’usage d’un unique<br />
paramètre scalaire que l’on dénote usuellement θ.<br />
L’observateur obtenu est appelé filtre de <strong>Kalman</strong> étendu gr<strong>and</strong> <strong>gain</strong> (HGEKF).<br />
Pourvu que le paramètre θ soit fixé à une valeur assez gr<strong>and</strong>e, alors cet algorithme<br />
est convergent quelle que soit l’erreur d’estimation initiale. Il est de cette manière<br />
1<br />
On entend par convergence de l’observateur le fait que l’état estimé tende asymptotiquement vers l’état<br />
réel.<br />
2L’observabilité<br />
est une propriété (intrinsèque) d’un système indiquant qu’il est possible de distinguer deux<br />
état distinct à partir des sorties correspondantes.
tel-00559107, version 1 - 24 Jan 2011<br />
robuste aux gr<strong>and</strong>es perturbations que le système pourrait essuyer (par exemple<br />
un changement soudain de la variable d’état dû à une erreur de fonctionnement<br />
comme dans [64]). Ce paramètre permet de plus de régler la vitesse de convergence<br />
: plus il est choisi gr<strong>and</strong> et plus la convergence est rapide. Cependant, comme θ<br />
est multiplié à y, la variable de sortie, il en amplifie d’autant le bruit de mesure.<br />
Il arrive donc que pour un signal de sortie fortement bruité il soit impossible<br />
d’utiliser efficacement le HGEKF.<br />
Notre objectif est de proposer un observateur de type filtre de <strong>Kalman</strong> réunissant<br />
les avantages de l’EKF et du HGEKF. Nous allons faire appel à la structure<br />
adéquate en fonction de nos besoins. Pour ce faire, nous devons:<br />
1. proposer une manière d’estimer à quel moment il est nécessaire de changer<br />
la configuration de l’observateur,<br />
2. proposer un mécanisme d’adaptation,<br />
3. prouver la convergence globale de l’observateur, montrer que celle-ci peut<br />
être réalisée en un temps arbitrairement court.<br />
Forme normale d’observabilité entrées multiples, simple<br />
sortie<br />
Nous situons notre approche dans le cadre de la théorie de l’observabilité<br />
déterministe de Gauthier et al., présentée dans [57] et [40]. Une rapide revue des<br />
principales définitions et résultats de cette théorie est faite dans le Chapitre 2 de<br />
cette thèse. Nous nous contentons ici de définir la forme normale d’observabilité<br />
pour les systèmes à entrées multiples et simple sortie (MISO). Ce choix est fait<br />
de sorte à ce que l’exposé conserve toute sa clarté.<br />
L’observateur, ainsi que les notions que nous présentons, restent valable pour<br />
les systèmes à sorties multiples (MIMO) pourvu que l’algorithme soit adapté en<br />
conséquence. En effet, contrairement aux systèmes MISO, pour qui la forme normale<br />
est essentiellement unique, il existe plusieurs formes d’observabilité MIMO.<br />
La description de l’observateur pour une représentation à sorties multiples est<br />
donnée au Chapitre 5 de ce texte.<br />
Nous considérons les systèmes de la forme:<br />
�<br />
dx<br />
dt<br />
y<br />
=<br />
=<br />
A (u) x + b (x, u)<br />
C (u) x<br />
où x (t) ∈ X ⊂ R n , X compact, y (t) ∈ R, et u(t) ∈ Uadm ⊂ R nu est borné pour<br />
tout t ≥ 0.<br />
(1)
tel-00559107, version 1 - 24 Jan 2011<br />
Les matrices A (u) et C (u) sont définies par:<br />
⎛<br />
0<br />
⎜<br />
A(u) = ⎜<br />
.<br />
⎝<br />
a2 (u)<br />
0<br />
0<br />
a3 (u)<br />
. ..<br />
· · ·<br />
. ..<br />
. ..<br />
0<br />
⎞<br />
0<br />
⎟<br />
. ⎟<br />
0 ⎟ ,<br />
⎟<br />
an (u) ⎠<br />
0 · · · 0<br />
C (u) = � a1 (u) 0 · · · 0 � ,<br />
où 0
tel-00559107, version 1 - 24 Jan 2011<br />
Nous définissons les matrices<br />
et<br />
⎛<br />
1 0 · · · 0<br />
⎜<br />
∆ = ⎜<br />
0<br />
⎜<br />
⎝ .<br />
1<br />
θ<br />
. ..<br />
. ..<br />
. ..<br />
.<br />
0<br />
0 · · · 0 1<br />
θn−1 ⎞<br />
⎟<br />
⎠ ,<br />
Qθ = θ∆ −1 Q∆ −1 ,<br />
Rθ = θ −1 R.<br />
Le filtre de <strong>Kalman</strong> étendu à gr<strong>and</strong> <strong>gain</strong> adaptatif est le système:<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
dz<br />
dt = A(u)z + b(z, u) − S−1C ′ R −1<br />
dS<br />
dt<br />
θ (Cz − y(t))<br />
= −(A(u)+b∗ (z, u)) ′ S − S(A (u)+b∗ (z, u)) + C ′ R −1<br />
dθ<br />
dt<br />
θ C − SQθS<br />
= F(θ, Id (t))<br />
avec pour conditions initiales : z(0) ∈ χ, S(0) symétrique définie positive, et<br />
θ(0) = 1. La fonction F constitue le mécanisme d’adaptation de l’observateur.<br />
Nous la définissons par ses propriétés, récapitulées au Lemme V.<br />
Id nous sert à estimer la qualité de l’estimation rendue par l’observateur. Cette<br />
quantité est calculée comme suit:<br />
pour une “longueur d’horizon” d>0, l’innovation est:<br />
� t<br />
Id (t) =<br />
t−d<br />
�y (t − d, x (t − d) , τ) − y (t − d, z (t − d) , τ)� 2 dτ (3)<br />
où y (t0,x0, τ) est la sortie du système (1) au temps τ avec pour condition initiale<br />
x (t0) =x0.<br />
Par conséquent y (t − d, x (t − d) , τ) n’est autre que y(τ), la sortie du système<br />
(1). Nous insistons sur le fait que y (t − d, z (t − d) , τ) n’est pas la sortie de<br />
l’observateur.<br />
L’importance de cette quantité est explicitée par le lemme suivant. Il apparaît<br />
aussi dans la preuve de convergence du Théorème IV (voir la preuve du Théorème<br />
36 au Chapitre 3) que ce résultat est la pierre angulaire du mécanisme d’adaptation.<br />
Lemme II<br />
Soient x0 1 ,x02 ∈ Rn , et u ∈ Uadm. y � 0,x0 1 , ·� et y � 0,x0 2 , ·� sont les trajectoires de<br />
sortie du système (1) avec conditions initiales x0 1 et x02 , respectivement. Alors la<br />
propriété suivante (dite “observabilité persistante”) est vraie :<br />
∀d >0, ∃λ 0 d > 0 tel que ∀u ∈ L1 b (Uadm)<br />
(2)
tel-00559107, version 1 - 24 Jan 2011<br />
Remarque III<br />
�x 0<br />
1 − x 0<br />
2� 2 ≤ 1<br />
λ 0 d<br />
� d<br />
�y � 0,x 0 1, τ � − y � 0,x 0 2, τ � � 2 dτ. (4)<br />
0<br />
1. Si l’on considère que x0 1 = z(t − d), et que x02 = x(t − d) alors le Lemme II<br />
nous indique que :<br />
�z(t − d) − x(t − d)� 2 ≤ 1<br />
λ0 � t<br />
�y (τ) − y (t − d, z (t − d) , τ)�<br />
d t−d<br />
2 dτ,<br />
ou, de manière équivalente,<br />
�z(t − d) − x(t − d)� 2 ≤ 1<br />
λ0 Id(t).<br />
d<br />
c’est-à-dire que modulo la multiplication par un paramètre constant, l’innovation<br />
au temps t est borne supérieure de l’erreur d’estimation au temps t − d.<br />
2. L’innovation est définie de manière plus détaillée dans la Section 3.3 du<br />
Chapitre 3. Son implémentation est explicitée au Chapitre 4.<br />
Le théorème suivant est le résultat au coeur de cette thèse : le lemme précédent<br />
le sert, les différentes <strong>applications</strong> et extensions en découlent.<br />
Théorème IV<br />
Pour tout temps arbitraire T ∗ > 0 et tout ε ∗ > 0, il existe 0 0, il existe une constante M(∆T ) telle que :<br />
− pour tout θ1 > 1, et<br />
− tout couple γ1 ≥ γ0 > 0,<br />
il existe une fonction F (θ, I) de sorte que l’équation<br />
˙θ = F (θ, I (t)) , (5)<br />
où 1 ≤ θ (0) < 2θ1, et I (t) est une fonction positive et mesurable, a les propriétés<br />
suivantes:<br />
1. il existe une unique solution θ (t), vérifiant 1 ≤ θ (t) < 2θ1, pour tout t ≥ 0,<br />
�<br />
�<br />
2. � F(θ,I)<br />
�<br />
�<br />
� ≤ M,<br />
θ 2<br />
3. si I (t) ≥ γ1 pour t ∈ [τ,τ + ∆T ] alors θ (τ + ∆T ) ≥ θ1,<br />
4. tant que I (t) ≤ γ0, θ (t) décroît vers 1.
tel-00559107, version 1 - 24 Jan 2011<br />
Résultats de simulation et implémentation temps réel<br />
La mise en oeuvre pratique de l’observateur pour un moteur à courant continu<br />
et connecté en série est décrite en détail au Chapitre Chapitre 4. Le modèle est<br />
obtenu en réalisant d’une part l’équilibre des forces électriques – i.e. à partir<br />
de la représentation sous forme de circuit électrique, voir Figure 2 – et d’autre<br />
part l’équilibre mécanique – i.e. loi de Newton. L’état du système obtenu est de<br />
dimension 2, l’entrée et la sortie sont de dimension 1:<br />
⎧ � � �<br />
⎨ LI˙ u − RI − Laf ωrI<br />
=<br />
J ˙ωr<br />
Laf I<br />
⎩<br />
2 �<br />
− Bωr − Tl<br />
(6)<br />
y = I<br />
où<br />
− I et ωr sont les variables d’état : l’intensité du courant et la vitesse de<br />
rotation respectivement,<br />
− u(t) est la quantité de courant en entrée,<br />
− R est la somme des résistances du circuit,<br />
− L est la somme des inductances du circuit,<br />
− Laf est l’inductance mutuelle,<br />
− J est l’inertie du système,<br />
− B est le coefficient de frottement de l’axe du moteur, et<br />
− Tl est le couple de charge.<br />
Rf<br />
Lf<br />
La<br />
Ra<br />
C<br />
A<br />
+<br />
- B<br />
Figure 2: Moteur DC : circuit équivalent<br />
La mise en oeuvre de l’observateur requiert trois étapes :<br />
− l’analyse d’observabilité et la mise en lumière de la forme canonique,<br />
− la définition de la fonction d’adaptation,<br />
− le réglage des différents paramètres.<br />
Observabilité<br />
L’analyse d’observabilité par la méthode différentielle (Cf. Section 4.1.2) montre<br />
que si I ne s’annule pas, alors ce système est observable 3 . Il est de plus possible,<br />
3 notez que si I est nul, cela veut dire qu’il n’y a pas de courant et que le moteur est soit à l’arrêt, soit en<br />
phase d’arrêt.
tel-00559107, version 1 - 24 Jan 2011<br />
!<br />
"#+<br />
"#$<br />
"#*<br />
"#%<br />
"#)<br />
"#&<br />
"#(<br />
"#'<br />
"#!<br />
! , )- . ,"<br />
! , !"- . ,"<br />
! , '"- . ,"<br />
! , '"- . ,"#&<br />
! , '"- . ,"#$<br />
"<br />
!! !"#$ !"#% !"#& !"#' " "#' "#& "#% "#$ !<br />
Figure 3: Influence de β et m sur la forme de la sigmoïde.<br />
tout en conservant l’observabilité, d’estimer Tl, qui est une perturbation non<br />
mesurée. Pour ce faire, le modèle est étendu à trois équations en utilisant le<br />
modèle trivial : Tl<br />
˙ = 0.<br />
Le changement de coordonnées:<br />
x2 ˙<br />
x3 ˙<br />
R ∗+ × R × R → R ∗+ × R × R<br />
(I,ω r,Tl) ↩→ (x1,x2,x3) =(I, Iωr, ITl)<br />
transforme le système en la forme normale d’observabilité<br />
⎛<br />
x1 ˙<br />
⎝<br />
⎞ ⎛<br />
0<br />
⎠ = ⎝ 0<br />
Laf<br />
− L<br />
0<br />
0<br />
− 1<br />
0 0<br />
J<br />
0<br />
⎞ ⎛<br />
x1<br />
⎠ ⎝ x2<br />
⎞ ⎛<br />
⎠+<br />
⎜<br />
⎝ − B<br />
J x2 + Laf<br />
La fonction d’adaptation<br />
x3<br />
− Laf<br />
L<br />
1<br />
L<br />
J x3 1<br />
(u(t) − Rx1)<br />
Laf x<br />
− 2 2 u(t)<br />
+<br />
x2x3<br />
x1<br />
L x1<br />
u(t) x3 + L x1<br />
x2<br />
L x1<br />
R − L x3<br />
L’observateur présenté dans la section précédente est complété en exprimant explicitement<br />
sa fonction d’adaptation:<br />
où<br />
− F0(θ) =<br />
F(θ, Id) =µ(Id)F0(θ) + (1 − µ(Id))λ(1 − θ) (8)<br />
� 1<br />
∆T θ2 pourθ ≤ θ1<br />
1<br />
∆T (θ − 2θ1) 2 pour θ >θ 1<br />
− µ(I) = � 1+e −β(I−m)� −1 est une fonction sigmoïde paramétrée par β et m<br />
(Cf. Figure 3).<br />
,<br />
− R<br />
L x2<br />
(7)<br />
⎞<br />
⎟<br />
⎠ .
tel-00559107, version 1 - 24 Jan 2011<br />
Réglage des paramètres<br />
La procédure d’adaptation implique l’usage de nombreux paramètres de réglages.<br />
La première impression est celle d’une certaine confusion face aux choix à réaliser.<br />
Il est en fait possible de régler tous ces paramètres un à un, selon un ordre logique.<br />
Cet ordre est illustré par la Figure 4. La procédure complète est détaillée dans la<br />
Section 4.2.3, nous en donnons un aperçu ci-dessous.<br />
L’ensemble des paramètres se divise en deux groupes : les paramètres relatifs à<br />
la performance de chacun des deux modes de l’observateur, et ceux relatifs à la<br />
procédure d’adaptation.<br />
Paramètres hors<br />
adaptation<br />
⎧<br />
⎨<br />
⎩<br />
R<br />
Q<br />
θ1<br />
Etape<br />
Paramètres de performance<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
Paramètres de la<br />
procédure d'adaptation<br />
β<br />
λ<br />
∆T<br />
d<br />
m1<br />
� δ<br />
m2<br />
Etape 2 Etape 3<br />
θ1<br />
Figure 4: Gras : paramètres cruciaux.<br />
Tout l’intérêt de l’approche adaptative que nous développons est de pouvoir<br />
découpler l’influence de Q et R d’un côté, et de θ de l’autre, sur la performance<br />
de l’observateur. Dans un filtre de <strong>Kalman</strong> étendu à gr<strong>and</strong> <strong>gain</strong>, les matrices Q<br />
et R perdent leur sens premier car elles sont, de manière définitive, changées à<br />
cause de leur multiplication par θ. Lorsque l’observateur n’est pas en mode gr<strong>and</strong><br />
<strong>gain</strong>, ces deux matrices retrouvent leur sens classique. Il faut donc les régler de<br />
sorte à ce que le bruit de mesure soit filtré de manière optimale. Nous pouvons<br />
pour cela faire appel à des méthodes classiques [58].<br />
Il en va de même pour θ, le paramètre de gr<strong>and</strong> <strong>gain</strong> : seule sa performance de<br />
convergence nous intéresse. θ est choisi comme il est habituel de le faire pour<br />
les observateurs de type gr<strong>and</strong> <strong>gain</strong>. On prendra toutefois soin de limiter les<br />
“overshoots” au maximum.<br />
Paramètres d’adaptation<br />
Parmi l’ensemble des paramètres d’adaptation seuls d, la longueur de la fenêtre<br />
de calcul de l’innovation et m, le second paramètre de la sigmoïde, doivent être<br />
modifiés d’un observateur à l’autre. Les autres pourront être fixés une fois pour<br />
toutes quel que soit le procédé étudié.
tel-00559107, version 1 - 24 Jan 2011<br />
Il faut être conscient de l’influence du bruit de mesure sur le calcul de l’innovation.<br />
En effet, lorsque l’observateur estime parfaitement l’état du système le calcul de<br />
l’innovation n’est constitué que de l’intégration du bruit de mesure. Conséquemment<br />
si la procédure d’adaptation devait être déclenchée dès que l’innovation est non<br />
nulle alors θ serait toujours gr<strong>and</strong>. La sigmoïde est décalée sur la droite par<br />
l’usage du paramètre m. Nous proposons de calculer m à partir d’une estimation<br />
de la déviation st<strong>and</strong>ard du bruit de mesure. Une méthode de calcul efficace est<br />
donnée en Section 4.2.3.<br />
Si d est trop petit alors l’information contenue dans l’innovation sera noyée dans le<br />
bruit. Si d est au contraire trop gr<strong>and</strong> alors le temps de calcul devient rédhibitoire.<br />
Démonstration de performance<br />
Les Figures 5, 6, 7 donnent un aperçu de la performance de l’observateur lors d’un<br />
scénario simple. Ces figures sont commentées en Section 4.2.4, où les résultats<br />
donnés par un scénario plus complexe sont aussi montrés. Une série de courbes<br />
renseigne sur les effets d’un mauvais réglage du paramètre m.<br />
On remarquera que le comportement hybride recherché, lissage du bruit équivalent<br />
à celui d’un filtre de <strong>Kalman</strong> étendu (courbe bleu foncé) et vitesse de convergence<br />
comparable à un filtre de <strong>Kalman</strong> étendu à gr<strong>and</strong> <strong>gain</strong> (courbe bleu ciel), est<br />
atteint.<br />
+ #<br />
&!!<br />
%&!<br />
%!!<br />
$&!<br />
$!!<br />
#&!<br />
#!!<br />
Estimation via HGEKF<br />
Signal réel<br />
Estimation via EKF<br />
Estimation via AEKF<br />
"&!<br />
! "! #! $! %! &!<br />
temps<br />
'! (! )! *! "!!<br />
Figure 5: Estimation de la vitesse de rotation.<br />
La seconde moitié du Chapitre 4 est consacrée à la description détaillée de la<br />
programmation de l’observateur dans un environnement temps réel dur. Un tel
tel-00559107, version 1 - 24 Jan 2011<br />
, $<br />
m2<br />
$+&<br />
$<br />
#+&<br />
#<br />
"+&<br />
"<br />
!+&<br />
!<br />
!!+&<br />
!"<br />
Estimation via HGEKF<br />
Signal réel<br />
Estimation via EKF<br />
Estimation via AEKF<br />
!"+&<br />
! "! #! $! %! &!<br />
temps<br />
'! (! )! *! "!!<br />
8<br />
6<br />
4<br />
2<br />
Figure 6: Estimation du couple de charge.<br />
0<br />
0 10 20 30 40 50 60 70 80 90 100<br />
8<br />
6<br />
4<br />
2<br />
Evolution de<br />
Innovation<br />
0<br />
0 10 20 30 40 50 60 70 80 90 100<br />
Figure 7: Gr<strong>and</strong> <strong>gain</strong> et Innovation.<br />
!
tel-00559107, version 1 - 24 Jan 2011<br />
système d’exploitation force l’utilisateur à programmer son algorithme de sorte à<br />
respecter les contraintes de temps de calcul qui lui sont imposées – i.e. les calculs<br />
non terminés sont interrompus. Nous y démontrons que l’observateur peut être<br />
utilisé dans un environnement contraignant, sur un moteur réel : il fonctionne de<br />
belle manière à une vitesse d’échantillonnage de 100 Hz.<br />
Extensions<br />
Pour conclure nous proposons deux extensions au théorème principal.<br />
La première concerne les systèmes à sorties multiples. Il n’existe pas de forme<br />
d’observabilité unique pour ce type de systèmes, ainsi l’observateur doit être<br />
adapté à chaque nouvelle forme rencontrée. Nous avons choisi une généralisation<br />
du système 1 pour laquelle nous avons décrit en détail les modifications à apporter.<br />
Ces modifications sont tout à fait cohérentes avec la définition originale<br />
de l’observateur dans le sens où si la sortie se résume à 1 variable alors la configuration<br />
redevient celle donnée initialement. Nous montrons en détails les points<br />
de la preuve conduisant à une modification de l’algorithme de sorte à inspirer de<br />
nouvelles structures pour systèmes à sorties multiples.<br />
La seconde extension porte sur les systèmes de type continus/discrets. Ces systèmes<br />
constituent une description du procédé plus proche de la réalité dans le sens où<br />
la dynamique est décrite de façon continue et les mesures sont modélisées par un<br />
processus discret. Nous simulons ainsi le système de capteurs de manière réaliste.<br />
Nous proposons un observateur adapté et montrons que l’une des hypothèses sur<br />
la fonction d’adaptation peut être relâchée. Ceci nous permet de concevoir l’usage<br />
de fonctions algébriques au lieu de fonctions différentielles, évacuant ainsi la question<br />
du retard dû au temps de montée du paramètre gr<strong>and</strong> <strong>gain</strong> à dynamique<br />
continue. Pour mener à bien la preuve de convergence de cet observateur, nous<br />
avons été amenés à développer une preuve de l’existence de bornes pour l’équation<br />
de Riccati, qui était jusqu’ici absente de la littérature.<br />
En guise de conclusion, nous précisons que ce travail a permis la rédaction:<br />
− d’un article de journal, accepté pour publication dans Automatica [22],<br />
− d’un chapitre de livre, écrit à l’occasion de l’école d’été d’automatique de<br />
Grenoble 2007 [21],<br />
− de communications lors de trois conférences internationales [23–25],<br />
− d’une intervention pour un workshop Linux Realtime [26].
tel-00559107, version 1 - 24 Jan 2011<br />
Contents<br />
List of Figures xxvi<br />
List of Tables xxvii<br />
Nomenclature xxx<br />
1 Introduction 1<br />
1.1 Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
1.2 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
1.3 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
1.4 Dissertation Outline <strong>and</strong> Comments to the Reader . . . . . . . . . . . . . . . 8<br />
2 Observability <strong>and</strong> High-<strong>gain</strong> Observers 10<br />
2.1 Systems <strong>and</strong> Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
2.2 The Several Definitions of Observability . . . . . . . . . . . . . . . . . . . . . 12<br />
2.3 Observability Normal Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
2.3.1 First case: ny >nu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
2.3.2 Second case: ny ≤ nu . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
2.4 Single Output Normal Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
2.5 High-<strong>gain</strong> Observers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
2.6 On Adaptive High-<strong>gain</strong> Observers . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
2.6.1 E. Bullinger <strong>and</strong> F. Allőgower . . . . . . . . . . . . . . . . . . . . . . . 23<br />
2.6.2 L. Praly, P. Krishnamurthy <strong>and</strong> coworkers . . . . . . . . . . . . . . . . 24<br />
2.6.3 Ahrens <strong>and</strong> Khalil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
2.6.4 Adaptive <strong>Kalman</strong> Filters . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
2.6.5 Boutayeb, Darouach <strong>and</strong> coworkers . . . . . . . . . . . . . . . . . . . . 32<br />
2.6.6 E. Busvelle <strong>and</strong> J-P. Gauthier . . . . . . . . . . . . . . . . . . . . . . . 35<br />
3 Adaptive High-<strong>gain</strong> Observer: Definition <strong>and</strong> Convergence 37<br />
3.1 Systems Under Consideration . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
3.2 Observer Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
3.3 Innovation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
3.4 Main Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
3.5 Preparation for the Proof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
3.6 Boundedness of the Riccati Matrix . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
xxi
tel-00559107, version 1 - 24 Jan 2011<br />
CONTENTS<br />
3.7 Technical Lemmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />
3.8 Proof of the Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
3.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
4 Illustrative Example <strong>and</strong> Hard real-time Implementation 56<br />
4.1 Modeling of the Series-connected DC Machine <strong>and</strong> Observability Normal Form 57<br />
4.1.1 Mathematical Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
4.1.2 Observability Cannonical Form . . . . . . . . . . . . . . . . . . . . . . 59<br />
4.2 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
4.2.1 Full Observer Definition . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
4.2.2 Implementation Considerations . . . . . . . . . . . . . . . . . . . . . 61<br />
4.2.3 Simulation Parameters <strong>and</strong> Observer Tuning . . . . . . . . . . . . . . 62<br />
4.2.4 Simulation Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
4.3 real-time Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />
4.3.1 Softwares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />
4.3.2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />
4.3.3 Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
4.3.4 Implementation Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />
4.3.5 Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />
4.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />
5 Complements 92<br />
5.1 Multiple Inputs, Multiple Outputs Case . . . . . . . . . . . . . . . . . . . . . 93<br />
5.1.1 System Under Consideration . . . . . . . . . . . . . . . . . . . . . . . 93<br />
5.1.2 Definition of the Observer . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
5.1.3 Convergence <strong>and</strong> Proof . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />
5.1.3.1 Lemma on Innovation . . . . . . . . . . . . . . . . . . . . . . 96<br />
5.1.3.2 Preparation for the Proof . . . . . . . . . . . . . . . . . . . . 98<br />
5.1.3.3 Intermediary Lemmas . . . . . . . . . . . . . . . . . . . . . . 100<br />
5.1.3.4 Proof of the Theorem . . . . . . . . . . . . . . . . . . . . . . 101<br />
5.2 Continuous-discrete Framework . . . . . . . . . . . . . . . . . . . . . . . . . . 103<br />
5.2.1 System Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104<br />
5.2.2 Observer Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />
5.2.3 Convergence Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106<br />
5.2.4 Innovation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />
5.2.5 Preparation for the Proof . . . . . . . . . . . . . . . . . . . . . . . . . 108<br />
5.2.6 Proof of the Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />
6 Conclusion <strong>and</strong> Perspectives 115<br />
Appendices<br />
A Mathematics Reminder 121<br />
A.1 Resolvent of a System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122<br />
A.2 Weak-∗ Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123<br />
xxii
tel-00559107, version 1 - 24 Jan 2011<br />
CONTENTS<br />
A.3 Uniform Continuity of the Resolvant . . . . . . . . . . . . . . . . . . . . . . . 125<br />
A.4 Bounds on a Gramm Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128<br />
B Proof of Lemmas 130<br />
B.1 Bounds on the Riccati Equation . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />
B.1.1 Part One: the Upper Bound . . . . . . . . . . . . . . . . . . . . . . . . 133<br />
B.1.2 Part Two: the Lower Bound . . . . . . . . . . . . . . . . . . . . . . . 142<br />
B.2 Proofs of the Technical Lemmas . . . . . . . . . . . . . . . . . . . . . . . . . . 151<br />
C Source Code for Realtime Implementation 153<br />
C.1 Replacement Code for the File: rtai4 comedi datain.sci . . . . . . . . . . . . 154<br />
C.2 Computational Function for the Simulation of the DC Machine . . . . . . . . 155<br />
C.3 AEKF Computational Functions C Code . . . . . . . . . . . . . . . . . . . . . 157<br />
C.4 Innovation Computational Functions C Code . . . . . . . . . . . . . . . . . . 159<br />
C.5 Ornstein-Ulhenbeck Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162<br />
References 165<br />
xxiii
tel-00559107, version 1 - 24 Jan 2011<br />
xxiv<br />
CONTENTS
tel-00559107, version 1 - 24 Jan 2011<br />
List of Figures<br />
1 Boucle de contrôle schématisée . . . . . . . . . . . . . . . . . . . . . . . . . . ix<br />
2 Moteur DC : circuit équivalent . . . . . . . . . . . . . . . . . . . . . . . . . . xv<br />
3 Graphe d’une sigmoïde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi<br />
4 Ordonnancement des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . xvii<br />
5 Estimation de la vitesse de rotation. . . . . . . . . . . . . . . . . . . . . . . . xviii<br />
6 Estimation du couple de charge. . . . . . . . . . . . . . . . . . . . . . . . . . xix<br />
7 Gr<strong>and</strong> <strong>gain</strong> et Innovation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix<br />
1.1 Control Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
1.2 Estimation Demonstration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
1.3 Estimation with noise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
2.1 Observability Equivalence Diagram. . . . . . . . . . . . . . . . . . . . . . . . 17<br />
2.2 A Switching Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
3.1 The Computation of Innovation. . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />
4.1 Series-connected DC Motor: equivalent circuit representation. . . . . . . . . . 58<br />
4.2 Observer Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
4.3 Observer Main Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />
4.4 Computation of Innovation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
4.5 Simulation Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
4.6 Observer Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />
4.7 Tuning Q <strong>and</strong> R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
4.8 Scenario 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
4.9 Tuning of θ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
4.10 Graph of the Sigmoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
4.11 Simulation Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
4.12 Output Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />
4.13 Scenario 2: Speed Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
4.14 Scenario 2: Torque Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
4.15 Scenario 3: Speed Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />
4.16 Scenario 3: Torque Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />
4.17 Scenario 2: Innovation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />
4.18 Scenario 3: Innovation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />
4.19 Effect of Parameter m2: Estimation . . . . . . . . . . . . . . . . . . . . . . . 75<br />
xxv
tel-00559107, version 1 - 24 Jan 2011<br />
LIST OF FIGURES<br />
4.20 Effect of Parameter m2: Innovation . . . . . . . . . . . . . . . . . . . . . . . . 76<br />
4.21 Graphical Implementation of a real-time task. . . . . . . . . . . . . . . . . . . 78<br />
4.22 Compilation of a real-time task. . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
4.23 Xrtailab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />
4.24 Connections Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />
4.25 The Testbed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />
4.26 AEKF: Implementation Diagram . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />
4.27 Luenberger Observer in Real-time . . . . . . . . . . . . . . . . . . . . . . . . 90<br />
4.28 <strong>Kalman</strong> <strong>filter</strong> in Real-time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90<br />
4.29 AEKF in Real-time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />
4.30 High-<strong>gain</strong> Parameter in Real-time . . . . . . . . . . . . . . . . . . . . . . . . 91<br />
5.1 A Subdivision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br />
C.1 Colored Noise Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163<br />
xxvi
tel-00559107, version 1 - 24 Jan 2011<br />
List of Tables<br />
4.1 Set of Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
4.2 Parameters for Real-time Experiment . . . . . . . . . . . . . . . . . . . . . . 89<br />
C.1 Arguments of the DC Simulation . . . . . . . . . . . . . . . . . . . . . . . . . 155<br />
C.2 Arguments of the Main Function . . . . . . . . . . . . . . . . . . . . . . . . . 157<br />
C.3 Arguments of the Innovation Function . . . . . . . . . . . . . . . . . . . . . . 160<br />
xxvii
tel-00559107, version 1 - 24 Jan 2011<br />
xxviii<br />
LIST OF TABLES
tel-00559107, version 1 - 24 Jan 2011<br />
Nomenclature<br />
χ a compact subset of the state space<br />
δt<br />
sampling time<br />
˙x(t) the time derivative of the time variable x(t): dx<br />
dt (t)<br />
F adaptation function<br />
Id(t) innovation for a window of length d, at time t (continuous time framework)<br />
Id,k<br />
innovation for a window of length dδt, at epoch k (discrete time framework)<br />
θ, θ(t), θk <strong>high</strong>-<strong>gain</strong> parameter<br />
A ′<br />
transpose of the matrix A<br />
diag(v) a dim(v) × dim(v) matrix, such that (diag(v))i,j = δijvi<br />
L 1 b (Uadm) the set of integrable (thus measurable), bounded functions having their values<br />
in Uadm.<br />
n dimension of the state space<br />
nu<br />
ny<br />
P (t) S −1 (t)<br />
dimension of the input space<br />
dimension of the output space<br />
S(t) Riccati matrix<br />
t time variable<br />
u(t) input space<br />
X a n-dimensional analytic differentiable manifold<br />
x(t) state space<br />
y(t) output space<br />
z(t) estimated state (continuous time framework)<br />
xxix
tel-00559107, version 1 - 24 Jan 2011<br />
zk<br />
estimated state (discrete time framework)<br />
AEKF adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong><br />
EKF <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong><br />
HGEKF <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong><br />
MISO multiple input multiple output<br />
MISO multiple input single output<br />
SISO single input single output<br />
w.r.t. with respect to<br />
xxx<br />
LIST OF TABLES
tel-00559107, version 1 - 24 Jan 2011<br />
Chapter 1<br />
Introduction<br />
Juggling. Balls fly in thin air, tracing parabolas. The juggler sees, <strong>and</strong> reacts. Eyes move,<br />
muscles follow, <strong>and</strong> the improbable act of using only two h<strong>and</strong>s to keep three, four, five or<br />
even more balls in the air continues, non-stop.<br />
It goes without saying that the juggler has both eyes open. Why, though? With one eye<br />
closed, the juggling becomes harder, as depth perception becomes di?cult <strong>and</strong> field of view<br />
more limited. Juggling with one eye closed can be done, but only at the cost of training <strong>and</strong><br />
perseverance.<br />
What about juggling blindfolded? Only the best jugglers can do this by inferring the<br />
position of each ball from their h<strong>and</strong>s <strong>and</strong> the accuracy of their throws. This is because they<br />
know what the parabola should look like.<br />
When we rely on partial measurements to reconstruct the state of a physical process,<br />
we are like blindfolded jugglers. We only have limited information to tell us the di?erence<br />
between what we think the state is <strong>and</strong> what it actually is. In process control, the tool<br />
dedicated to the state reconstruction task is known as an observer.<br />
An observer is a mathematical algorithm that estimates the state of a system. What<br />
makes the observer special is that it does not guess. It infers, based on a prediction of what<br />
it expects to measure <strong>and</strong> a correction driven by the difference between the predicated <strong>and</strong><br />
the measured.<br />
The concept of observer is introduced in this chapter with only little mathematical formalism.<br />
We provide an idea of the ma jor issues of the field <strong>and</strong> put forward the motivations<br />
underlying the present work.<br />
1
tel-00559107, version 1 - 24 Jan 2011<br />
1.1 Context<br />
1.1 Context<br />
We can model any physical process by considering it as a system. In our framework, a<br />
set of relevant variables describes the evolution of the state of the system with time. These<br />
are called the state variables. The system interacts with the outside world in three different<br />
ways:<br />
− input, or control, variables are quantities that have an effect on the system behavior<br />
<strong>and</strong> that can be set externally, they are denoted u(t),<br />
− output variables, or measurements, are quantities that are monitored, generally they<br />
are a subset or a transformation of the state variables, we denote them by y(t),<br />
− perturbations are variables that have an effect on the system behavior <strong>and</strong> that cannot<br />
be controlled; most of the time they cannot be measured 1 .<br />
The state variables are represented by a multidimensional vector, denoted x(t). The evolution<br />
of x(t) with time is accounted for by an ordinary differential equation 2 :<br />
dx(t)<br />
dt<br />
= f(x(t),u(t),t).<br />
The relation between state <strong>and</strong> output variables, i.e. the measurement step, is described by<br />
an application:<br />
y(t) =h(x(t),u(t),t).<br />
A system is therefore defined as a set of two equations of the form:<br />
� dx(t)<br />
dt = f(x(t),u(t),t)<br />
y(t) = h(x(t),u(t),t)<br />
The state estimate rendered by the observer can be used for monitoring purposes, by<br />
a control algorithm as schematized in Figure 1.1, or processed off-line (e.g. in prototyping<br />
assessment as in [21], section 3.6).<br />
For example, in the juggling experiment, the state variables are the 3D position <strong>and</strong> speed<br />
of the balls. The input variables are the impulses the h<strong>and</strong>s apply to the balls.<br />
With eyes wide open, the output variables are the balls position. In the one eyed juggling<br />
experiment the output variables are an imperfect knowledge of the balls position, e.g. because<br />
of the hindered depth perception. In the blind juggling experiment, tactile signals are the<br />
output variable.<br />
In all these three cases the model is the same: the one of a falling apple.<br />
1 From an observer’s point of view, measured perturbations <strong>and</strong> control are both inputs. The controller’s<br />
point of view is different since it uses the controls to stabilize the system <strong>and</strong> reject perturbations.<br />
2 We do not consider either partial differential equations or algebraic differential equations.<br />
2
tel-00559107, version 1 - 24 Jan 2011<br />
+<br />
Controller<br />
Set<br />
Points<br />
u(t)<br />
System<br />
x(t)<br />
y(t)<br />
Figure 1.1: A control loop.<br />
The study of observers is divided into three subproblems:<br />
Observer<br />
z(t)<br />
Estimated<br />
state<br />
1.1 Context<br />
1. the observability problem is the study of a given mathematical model in order to determine<br />
to which extent it can be useful to estimate state variables,<br />
2. the convergence problem focuses on the observer algorithm, the diminution of the error<br />
between the real <strong>and</strong> estimated state is studied <strong>and</strong> the convergence to zero assessed<br />
(see Figure 1.2),<br />
3. the loop closure problem addresses the stability of closed control loops, when the state<br />
estimated by an observer is used by a controller 3 (see Figure 1.1).<br />
The juggler solves the two first problems when he is capable of catching the balls having<br />
one or both eyes closed. He solves the third problem when he goes on juggling.<br />
For systems that are described by linear equations, the situation is theoretically well<br />
known <strong>and</strong> answers to all those problems have already been provided (see for example [74]).<br />
We therefore concentrate on the nonlinear case.<br />
There is a large quantity of observers available for nonlinear systems, derived from practical<br />
<strong>and</strong>/or theoretical considerations:<br />
− <strong>extended</strong> observers are adaptations of classic linear observers to the nonlinear case (e.g.<br />
[58]),<br />
− adaptive observers estimate both the state of the system <strong>and</strong> some of the model parameters;<br />
a linear model can be turned into one that is nonlinear in this configuration<br />
(e.g [98]),<br />
− moving horizon observers see the estimation procedure as an optimization problem (e.g.<br />
[12]),<br />
3 A controller calculates input values that stabilize the physical process around a user defined set point or<br />
trajectory. The model used in the observer <strong>and</strong> the possible model used in the controller may not be the same.<br />
3
tel-00559107, version 1 - 24 Jan 2011<br />
1.2 Motivations<br />
− interval observers address models with uncertain parameters. Unlike adaptive observers<br />
they do not estimate the model parameters. They use the fact that any parameter p<br />
lives in an intervals of the form [pmin,pmax] (e.g. [91, 105]).<br />
The present work focuses on <strong>high</strong>-<strong>gain</strong> observers, which are a refinement of <strong>extended</strong><br />
observers, allowing us to prove that the estimation error converges to zero in a global sense.<br />
The design of such observers relies on a general theory of observability for nonlinear systems<br />
[57]. It is proven that the convergence is exponential. This means that the estimation error<br />
is bounded on the upper limit by a decreasing exponential of time, whose rate of convergence<br />
can be set by the user. The loop closure problem is studied in [57], Chapter 7, <strong>and</strong> a weak<br />
separation principle is stated in [113] (see also [21]).<br />
Our prototype observer is the <strong>Kalman</strong> <strong>filter</strong>. In order to further develop our motivations,<br />
we provide a review of <strong>high</strong>-<strong>gain</strong> observer algorithms in the next section. A complete discusion<br />
is the object of Section 2.5.<br />
A non measured state variable<br />
&!!<br />
%"!<br />
%!!<br />
$"!<br />
$!!<br />
#"!<br />
#!!<br />
"!<br />
Initial guess<br />
'()* +,-.)*<br />
/+0,1)0,2. 3,) ). (40(.5(5 6)*1). 7,*0(8<br />
/+0,1)0,2. 3,) ) 9,-9!-),. (40(.5(5 6)*1). 7,*0(8<br />
!<br />
! " #! #" $! $"<br />
Time<br />
Figure 1.2: Estimation of a non measured variable:<br />
The initial estimated state is wrong. With time, the observer reduces the estimation error.<br />
1.2 Motivations<br />
The <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> is a practical answer to the observation problem for nonlinear<br />
systems. Although global convergence is not theoretically proven, this observer works well in<br />
practice. High-<strong>gain</strong> observers are based on <strong>extended</strong> observers, <strong>and</strong> result from the grouping<br />
of two main ingredients:<br />
1. the use of a special representation of the nonlinear system, provided by the observability<br />
theory (see Chapter 2) <strong>and</strong>,<br />
4
tel-00559107, version 1 - 24 Jan 2011<br />
2. the use of a variant of <strong>extended</strong> observers.<br />
1.2 Motivations<br />
A story is best told when started from the beginning. Thus we begin by introducing the<br />
<strong>Kalman</strong> <strong>filter</strong> in the linear case. A linear system is given by:<br />
� dx(t)<br />
dt = Ax(t)+Bu(t),<br />
y(t) = Cy(t),<br />
where A, B <strong>and</strong> C are matrices (having the appropriate dimensions) that may or may not<br />
depend on time. The two archetypal observers for such a system were proposed in the 1960’s<br />
by D. G. Luenberger [86], R. E. <strong>Kalman</strong>. <strong>and</strong> B. S. Bucy [75, 76]. They are known as the<br />
Luenberger observer <strong>and</strong> the <strong>Kalman</strong>-Bucy <strong>filter</strong> respectively.<br />
The leading mechanism in those two algorithms is the prediction correction scheme. The<br />
new estimated state is obtained by means of:<br />
− a prediction based on the model <strong>and</strong> the old estimated state, <strong>and</strong><br />
− the correction of the obtained values by the measurement error weighted by a <strong>gain</strong><br />
matrix.<br />
We denote the estimated state by z(t). The corresponding equation for the estimated state<br />
is:<br />
dz(t)<br />
= Az(t)+Bu(t) − K (Cz(t) − y(t)) .<br />
dt<br />
In the Luenberger observer, the matrix K is computed once <strong>and</strong> for all. The real part of<br />
all the eigenvalues of (A − KC) have to be strictly negative.<br />
In the <strong>Kalman</strong> <strong>filter</strong>, the <strong>gain</strong> matrix is defined as K(t) =S−1 (t)C ′<br />
R−1 where S is the<br />
solution of the differential equation:<br />
d<br />
S(t) =−A′ S(t) − S(t)A − S(t)QS(t)+C<br />
dt ′<br />
R −1 C.<br />
This equation is a Riccati equation of matrices <strong>and</strong> is referred to as the Riccati equation.<br />
The matrices A, B <strong>and</strong> C are expected to be time dependent (i.e. A(t), B(t) <strong>and</strong> C(t)).<br />
Otherwise, the <strong>Kalman</strong> <strong>filter</strong> is equivalent to the Luenberger observer.<br />
The <strong>Kalman</strong> <strong>filter</strong> is the solution to an optimization problem where the matrices Q <strong>and</strong><br />
R play the role of weighting coefficients (details can be found in [75]). These matrices must<br />
be symmetric definite positive. According to this definition, the <strong>Kalman</strong> <strong>filter</strong> is an optimal<br />
solution to the observation problem. We will see below that the <strong>Kalman</strong> <strong>filter</strong> has a stochastic<br />
interpretation that gives sense to those Q <strong>and</strong> R matrices.<br />
Those two observers are well known algorithms, i.e. convergence can be proven. However,<br />
when the matrices A, B <strong>and</strong> C are time dependent, the <strong>Kalman</strong> <strong>filter</strong> has to be used since<br />
the <strong>gain</strong> matrix is constantly being updated.<br />
Observability in the linear case is characterized by a simple criterion. The loop closure<br />
problem has an elegant solution called the separation principle: controller <strong>and</strong> observer can<br />
be designed independently <strong>and</strong> the overall loop remains stable. Interesting <strong>and</strong> detailed exposes<br />
on the <strong>Kalman</strong> <strong>filter</strong> can be found in [43, 45, 58].<br />
5
tel-00559107, version 1 - 24 Jan 2011<br />
1.2 Motivations<br />
Not all processes can be represented by linear relationships. Let us consider nonlinear<br />
systems of the form:<br />
� dx(t)<br />
dt<br />
y(t)<br />
=<br />
=<br />
f(x(t),u(t),t)<br />
h(x(t),u(t),t) ,<br />
where f <strong>and</strong> h are nonlinear <strong>applications</strong>. The prediction correction strategy is applied as in<br />
the linear case. Since the correction <strong>gain</strong> is linearly computed via matrices, a linearization of<br />
the system is used.<br />
This mathematical operation has to be done at some point in the state space. Since the<br />
real state of the system is unknown, it is difficult to pick such a point. The estimated state<br />
is, therefore, used. Consequently the correction <strong>gain</strong> matrix has to be constantly updated.<br />
The <strong>Kalman</strong> <strong>filter</strong> equations are considered 4 . Let us denote:<br />
− z, as the estimated state,<br />
− A, as the partial derivative of f with respect to x, at point (z, u, t) <strong>and</strong>,<br />
− C, as the partial derivative of h with respect to x, at point (z, u, t).<br />
This observer is then defined as:<br />
�<br />
dz(t)<br />
dt = f(z, u, t) − S−1C ′<br />
d<br />
dt<br />
R−1 (Cz − y)<br />
S = −A′ S − SA − SQS + C ′<br />
R−1C .<br />
This algorithm is called the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>.<br />
The <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> is an algorithm widely used in engineering sciences [58]. It<br />
works well in practice, which explains its popularity. There is, however, a lack of theoretical<br />
justification concerning its effectiveness. Indeed, except for small initial errors, there is no<br />
analytical proof of convergence for this observer. This is due to the linearization, which is<br />
performed along the estimated trajectory. The resulting matrices used in the Riccati equation<br />
are not correct enough outside of the neighborhood of the real trajectory. The system is poorly<br />
approximated <strong>and</strong> convergence cannot be proved.<br />
A modification of this observer, the <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>, solves the problem.<br />
Provided that the system is under a representation specific to the observability property 5 , the<br />
observer converges exponentially. In other words, the estimation error is upper bounded by<br />
an exponential of time.<br />
The main results of the observability theory for nonlinear systems are introduced in Chapter<br />
2. The definitions of several <strong>high</strong>-<strong>gain</strong> observers are also included there.<br />
Corruption of signals by noise is a major issue in engineering. Signals processed by an<br />
observer are derived from a sensor, which inherently implies the presence of noise. This<br />
influence appears both on the state <strong>and</strong> on the output variables. In the stochastic setting<br />
systems are then represented by equations of the form:<br />
�<br />
dX(t) = f(X(t),u(t),t)dt + Q 1<br />
2 dW (t)<br />
dY (t) = h(X(t),u(t),t)dt + R 1<br />
2 dV (t)<br />
4<br />
The Lunenberger observer can be used for nonlinear systems, but necessitates a special representation of<br />
the nonlinear system that will be introduced in the next chapter.<br />
5<br />
This observability property is related to the first problem, i.e. the observability problem.<br />
6
tel-00559107, version 1 - 24 Jan 2011<br />
where:<br />
− X(0) is a r<strong>and</strong>om variable,<br />
− X(t) <strong>and</strong> Y (t) are r<strong>and</strong>om processes,<br />
1.3 Contributions<br />
− V (t) <strong>and</strong> W (t) are two independent Wiener processes, also independent from x(0) (refer<br />
to Appendix C.5).<br />
In this context, Q is the covariance matrix of the state noise, <strong>and</strong> R is the covariance matrix<br />
of the measurement noise.<br />
We consider a<strong>gain</strong> the linear case together with the two assumptions:<br />
1. x(0) is a gaussian r<strong>and</strong>om variable, <strong>and</strong><br />
2. state <strong>and</strong> output noises are gaussian white noises.<br />
In this setting the <strong>Kalman</strong> <strong>filter</strong> is an estimator of the conditional expectation of the state,<br />
depending on the measurements available so far 6 . When the Q <strong>and</strong> R matrices of the observer<br />
defined above are set to the Q <strong>and</strong> R covariance matrices of the system, the noise is optimally<br />
<strong>filter</strong>ed (refer to [43, 45]).<br />
In practice noise characteristics are not properly known. Therefore the matrices Q <strong>and</strong><br />
R of the observer are regarded as tuning parameters. They are adjusted in simulation.<br />
In the nonlinear case the analysis in the stochastic setting consists of the computation of<br />
the conditional density of the r<strong>and</strong>om process X(t). A solution to this problem is given by an<br />
equation known as the Duncan-Mortensen-Zakaï equation [80, 108]. It is rather complicated<br />
<strong>and</strong> cannot be solved analytically. Numerically, we make use of several approximations. One<br />
of the methods is called particle <strong>filter</strong>ing (e.g. see [21, 42] for details). When we obfuscate<br />
the stochastic part of the problem, we obtain an observer with an elegant formulation: the<br />
<strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>. Let us focus on its stochastic properties.<br />
As demonstrated in [101], the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> displays excellent noise rejection<br />
properties. However, proof of the convergence of the estimation error can be obtained only<br />
when the estimated state comes sufficiently close to the real state.<br />
On the other h<strong>and</strong>, the <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> is proven to globally converge<br />
(in a sense explained in subsequent chapters). However, it behaves poorly from the noise<br />
rejection point of view. Indeed, it has the tendency to amplify noise, thus resulting in a<br />
useless reconstructed signal. This problem is illustrated 7 in Figure 1.3.<br />
1.3 Contributions<br />
This dissertation concentrates on the fusion between the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> <strong>and</strong> the<br />
<strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> by means of an adaptation strategy. Our purpose is to<br />
merge the advantages of both structures:<br />
6<br />
z(t) =E [x(t)/Ft], where Ft = σ (y(s),s∈ [0,t]), i.e. the σ−algebra generated by the output variables for<br />
t ∈ [0; t].<br />
7<br />
These two curves are obtained with the same observers as in Figure 1.2, the values of the tuning parameter<br />
are unchanged. The level of noise added to the output signal is the same in the two simulations.<br />
7
tel-00559107, version 1 - 24 Jan 2011<br />
&!!<br />
%"!<br />
%!!<br />
1.4 Dissertation Outline <strong>and</strong> Comments to the Reader<br />
$"!<br />
'()* +,-.)*<br />
/+0,1)0,2. 3,) ). (40(.5(5 6)*1). 7,*0(8<br />
$!!<br />
! "! #!! #"!<br />
&!!<br />
%"!<br />
%!!<br />
$"!<br />
'()* +,-.)*<br />
/+0,1)0,2. 3,) ) 9,-9!-),. (40(.5(5 6)*1). 7,*0(8<br />
$!!<br />
! "!<br />
Time<br />
#!! #"!<br />
Figure 1.3: Estimation with noise.<br />
− the noise smoothing properties of the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> when the estimated state<br />
is sufficiently close to the real state;<br />
− the global convergence property of the <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> when the<br />
estimated state is far from the real state.<br />
We propose an adaptation strategy in order to navigate between <strong>high</strong>-<strong>gain</strong> <strong>and</strong> non <strong>high</strong><strong>gain</strong><br />
modes. The adaptation requires knowledge of a quantity that reflects the quality of the<br />
estimation. Such a quality measurement is proposed <strong>and</strong> its usage is justified by an important<br />
lemma, i.e. Lemma 33 in Chapter 3. The convergence of the resulting observer is analytically<br />
proven. Extensions to the initial result are proposed.<br />
Practical aspects of the implementation of the algorithm are also considered. The use of<br />
an adaptation strategy implies the introduction of several new parameters. Guidelines to the<br />
choice of those parameters are given <strong>and</strong> a methodology is proposed.<br />
1.4 Dissertation Outline <strong>and</strong> Comments to the Reader<br />
The reminder of the manuscript is organized as follows:<br />
− Chapter 2 contains a summary of the theory of observability in the deterministic<br />
setting. Observability normal forms are introduced <strong>and</strong> <strong>high</strong>-<strong>gain</strong> observers defined. A<br />
review of nonlinear observers having adaptive strategies for their correction <strong>gain</strong> closes<br />
the chapter.<br />
− The adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> is defined in Chapter 3. We define our<br />
strategy <strong>and</strong> justify it with an important lemma. The complete proof of convergence is<br />
8
tel-00559107, version 1 - 24 Jan 2011<br />
detailed here.<br />
1.4 Dissertation Outline <strong>and</strong> Comments to the Reader<br />
− Chapter 4 is dedicated to the implementation of the observer. An example is used<br />
to progress through the different steps. An experiment on a real process illustrates the<br />
behavior of the observer in a real-time environment.<br />
− Finally Chapter 5 includes extensions to the original result.<br />
Complementary material is included in the appendices.<br />
Readers Interested in a practical approach of the adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>...<br />
...should read Chapter 4.<br />
...should take a look to Section 3.1 (definition of the MISO normal form), <strong>and</strong> to Definition<br />
30 (of the observer). If they are not familiar with <strong>high</strong>-<strong>gain</strong> observers, Definition 15 (<strong>high</strong>-<strong>gain</strong><br />
EKF) may be of help.<br />
...will find the main theoretical results in Lemma 33 (lemma on innovation) <strong>and</strong> Theorem<br />
36 (convergence of the observer).<br />
Readers interested only in the definition of the observer <strong>and</strong> its proof of convergence...<br />
...can read directly Chapter 3.<br />
...shall read Chapter 2 in order to underst<strong>and</strong> the motivations for the use of the observability<br />
form.<br />
Readers that want to explore a bit further than the initial continuous MISO normal form...<br />
...should go to Chapter 5. Some of the informations of this chapter are also useful for<br />
st<strong>and</strong>ard <strong>high</strong>-<strong>gain</strong> EKFs: dealing with multiple outputs systems, underst<strong>and</strong>ing the proof<br />
of the properties of the continuous discrete Riccati equation,...<br />
9
tel-00559107, version 1 - 24 Jan 2011<br />
Chapter 2<br />
Observability <strong>and</strong> High-<strong>gain</strong><br />
Observers<br />
Contents<br />
2.1 Systems <strong>and</strong> Notations . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
2.2 The Several Definitions of Observability . . . . . . . . . . . . . . . 12<br />
2.3 Observability Normal Forms . . . . . . . . . . . . . . . . . . . . . . 15<br />
2.3.1 First case: ny >nu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
2.3.2 Second case: ny ≤ nu . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
2.4 Single Output Normal Form . . . . . . . . . . . . . . . . . . . . . . 18<br />
2.5 High-<strong>gain</strong> Observers . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
2.6 On Adaptive High-<strong>gain</strong> Observers . . . . . . . . . . . . . . . . . . 21<br />
2.6.1 E. Bullinger <strong>and</strong> F. Allőgower . . . . . . . . . . . . . . . . . . . . . . 23<br />
2.6.2 L. Praly, P. Krishnamurthy <strong>and</strong> coworkers . . . . . . . . . . . . . . . 24<br />
2.6.3 Ahrens <strong>and</strong> Khalil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
2.6.4 Adaptive <strong>Kalman</strong> Filters . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
2.6.5 Boutayeb, Darouach <strong>and</strong> coworkers . . . . . . . . . . . . . . . . . . . 32<br />
2.6.6 E. Busvelle <strong>and</strong> J-P. Gauthier . . . . . . . . . . . . . . . . . . . . . . 35<br />
10
tel-00559107, version 1 - 24 Jan 2011<br />
2.1 Systems <strong>and</strong> Notations<br />
The work presented in this dissertation follows the framework of the theory of deterministic<br />
observation developed by J-P Gauthier, I. Kupka, <strong>and</strong> coworkers. This theory has<br />
a very long history the beginning of which can be found in the articles of R. Herman, A.<br />
J. Krener [65], <strong>and</strong> H. J. Sussmann [110]. In the book [57], which is in itself a summary of<br />
several papers [53–56, 70], J-P. Gauthier <strong>and</strong> I. Kupka exposed well established definitions<br />
for observability <strong>and</strong> several important subsequent theorems.<br />
An important result of the theory is that there exist representations of nonlinear systems<br />
that characterize observability (those are denoted by observability normal forms in the literature).<br />
The article [52], from J-P Gauthier <strong>and</strong> G. Bornard, often referenced, contains early<br />
results.<br />
The construction of <strong>high</strong>-<strong>gain</strong> observers, either of the Luenberger (J-P. Gauthier, H.<br />
Hammouri <strong>and</strong> S. Othman [54]) or of the <strong>Kalman</strong> (F. Deza, E. Busvelle et al. [47]) style,<br />
rests upon the theory that normal forms are crucial in order to establish the convergence<br />
of such observers. Here convergence means that the estimation error decreases to zero. As<br />
we will see in Chapter 3, <strong>and</strong> in Theorems 14, 16 <strong>and</strong> 29, the estimation error decays at an<br />
exponential rate. Those observers are also called exponential observers.<br />
In the present chapter, the main concepts of observability theory in the deterministic<br />
setting are presented together with more recent results such as those from E. Busvelle <strong>and</strong><br />
J-P. Gauthier [38–40].<br />
The main contribution of this work is the construction <strong>and</strong> the proof of convergence of a<br />
<strong>high</strong>-<strong>gain</strong> observer algorithm, whose <strong>high</strong>-<strong>gain</strong> parameter is time varying. Hence a review of<br />
such adaptive-<strong>gain</strong> observers is proposed: F. Allgőwer <strong>and</strong> E. Bullinger (1997), M. Boutayeb<br />
et al. (1999), E. Busvelle <strong>and</strong> J-P. Gauthier (2002), L. Praly et al.(2004 <strong>and</strong> 2009) <strong>and</strong> a<br />
recent paper from H. K. Khalil (2009).<br />
2.1 Systems <strong>and</strong> Notations<br />
A system in the state space representation is composed of two time dependent equations1 :<br />
⎧<br />
⎨<br />
(Σ)<br />
⎩<br />
dx(t)<br />
dt<br />
y(t)<br />
x(0)<br />
=<br />
=<br />
=<br />
f(x(t),u(t),t)<br />
h(x(t),u(t),t)<br />
x0<br />
where<br />
− x(t) denotes the state of the system, belonging to R n , or more generally to a ndimensional<br />
analytic differentiable manifold X,<br />
− u(t) is the control (or input) variable with u(t) ∈ Uadm ⊂ R nu ,<br />
− y(t) denotes the measurements (or outputs) <strong>and</strong> takes values in a subset of R ny ,<br />
− f is a u-parameterized smooth nonlinear vector field, <strong>and</strong><br />
− the observation mapping h : X × Uadm → R ny is considered to be smooth <strong>and</strong> possibly<br />
nonlinear.<br />
1 Later on, the time dependency will be omitted for notation simplicity.<br />
11
tel-00559107, version 1 - 24 Jan 2011<br />
2.2 The Several Definitions of Observability<br />
The inputs are time functions defined on open intervals of the form [0,T[ (with the<br />
possibility that T =+∞). The functions u(.) are assumed to be measurable <strong>and</strong> bounded<br />
almost everywhere on any compact sub-interval of [0,T[. The corresponding function set is<br />
L ∞ (Uadm).<br />
The outputs are also functions of time defined on open intervals of the form [0,T(u)[.<br />
This notation takes into account that for a given input function, defined for a maximum time<br />
T , the system might become unstable (i.e. explode toward infinity). The explosion time is<br />
likely to be less than T . Therefore we have T (u) ≤ T . Output functions are also measurable<br />
<strong>and</strong> bounded almost everywhere on any compact sub-interval of [0,T(u)[. The corresponding<br />
function set is L ∞ (R ny ).<br />
The set of all systems of the form (Σ) is denoted S = {Σ =(f, h)}. The genericity (or<br />
non-genericity) property of observable systems is considered with respect to the set S.<br />
The topologies associated to those sets are<br />
− the C ∞ Whitney topology for the set S (see, e.g. [66]) 2 . Two important features of that<br />
topology are<br />
1. it is not metrizable <strong>and</strong>,<br />
2. it has the Baire property 3 ,<br />
− either the topology of uniform convergence or the weak-∗ topology for the sets L ∞ (Uadm)<br />
<strong>and</strong> L ∞ (R ny ),<br />
− we will also use the topology of the euclidean norm when dealing with subspaces of R q ,<br />
q = n, nu or ny.<br />
2.2 The Several Definitions of Observability<br />
Observability is the notion that translates the property of a system to permit the reconstruction<br />
of the full state vector from the knowledge of the input <strong>and</strong> output variables. In<br />
other words: considering any input function u(.), can any two distinct initial states x 1 0 , x2 0 be<br />
distinguished from one another?<br />
Definition 1<br />
− The state-output mapping of the system (Σ) is the application:<br />
PXΣ,u : X → L ∞ (R ny )<br />
x0 ↦→ y(.)<br />
− A system (Σ) is uniformly observable (or just observable) w.r.t. a class C of inputs<br />
if for each u(.) ∈ C, the associated state-ouput mapping is injective.<br />
2 A basic neighborhood of a system Σ = (f, h) in the C j Whitney topology is determined by a set of<br />
functions ɛ(z) > 0, <strong>and</strong> formed by the systems ˜ Σ =( ˜ f,˜g) ∈ S such that the derivatives, up to the order j, of<br />
(f − ˜ f, h − ˜ h), w.r.t all the variables, have their norm at point z =(x, u) less than ɛ(z).<br />
3 Baire property: a countable intersection of open dense subsets is dense.<br />
12
tel-00559107, version 1 - 24 Jan 2011<br />
2.2 The Several Definitions of Observability<br />
This definition appears as the most natural one 4 , but as injectivity is not a stable property<br />
observability is difficult to manipulate from a topological point of view 5 . In order to render<br />
the notion of observability more tractable, Definition 1 is modified by considering the first<br />
order approximation of the state-output mapping. Let us begin with the definition of the<br />
first order approximation of a system:<br />
Definition 2<br />
− The first (state) variation of (Σ) (or lift of (Σ) on TX) is given by:<br />
⎧<br />
⎪⎨<br />
(TXΣ)<br />
⎪⎩<br />
dx(t)<br />
dt<br />
dξ(t)<br />
dt<br />
= f(x, u)<br />
= Dxf(x,<br />
ˆy =<br />
u)ξ<br />
dxh(x, u)ξ<br />
where<br />
– (x,ξ ) ∈ TX (or R n × R n ) is the state of (TXΣ),<br />
– dxh is the differential of h w.r.t. to x, <strong>and</strong><br />
(2.1)<br />
– Dxf is the tangent mapping to f (represented by the Jacobian matrices of h <strong>and</strong><br />
f w.r.t. x).<br />
− the state-output mapping of TXΣ is denoted PTXΣ,u. This mapping is in fact the<br />
differential of PXΣ,u w.r.t. x0 (i.e. its first order approximation, TPXΣ,u|x0 ).<br />
The second part of Definition 1 is adapted to this new state-output mapping in a very<br />
natural way.<br />
Definition 3<br />
The system (Σ) is said uniformly infinitesimally observable 6 w.r.t. a class C of<br />
inputs if for each u(.) ∈ C <strong>and</strong> each x0 ∈ X, all the (x0 parameterized) tangent mappings<br />
TPX Σ,u|x0 are injective.<br />
Since the state-output mapping considered in this definition is linear then the injectivity<br />
property has been topologically stabilized. Finally a third definition of observability has been<br />
proposed by using the notion of k−jets 7 .<br />
4<br />
An equivalent definition, based on the notion of indistinguishability can be found in [19] (Definitions 2<br />
<strong>and</strong> 3).<br />
� 5 3<br />
e.g. x ↦→ x � is injective, but for all ɛ > 0, � x ↦→ x 3 − ɛx � isn’t.<br />
6 ∞<br />
Infinitesimal observability can also be considered “at a point (u, x) ∈ L × X”, or only “at a point<br />
u ∈ L ∞ ”<br />
7 The k-jets j k u of a smooth function u at the point t = 0 are defined as<br />
j k u =<br />
�<br />
u(0), ˙u(0), ..., u (k−1) �<br />
(0) .<br />
Then for a smooth function u <strong>and</strong> for each x0 ∈ X, the k-jets j k y =<br />
�<br />
y(0), ˙y(0), . . . , y (k−1) �<br />
(0) is well defined:<br />
this is the k-jets extension of the state-output mapping.<br />
See [9] for details. The book is though not so easy to find. R. Abraham’s webpage can be of help.<br />
13
tel-00559107, version 1 - 24 Jan 2011<br />
Definition 4<br />
2.2 The Several Definitions of Observability<br />
− (Σ) is said to be differentially observable of order k, if for all j k u the extension to<br />
k-jets mapping<br />
Φ Σ k : X → R kny<br />
is injective.<br />
x0 ↦→ j k y<br />
− (Σ) is said to be strongly differentially observable of order k if for all j k u, the<br />
extension to k-jets mapping<br />
is an injective immersion 8 .<br />
Φ Σ<br />
k,j k u : X → R kny<br />
x0 ↦→ j k y<br />
From Definition 4, strong differential observability implies differential observability. The<br />
first component of the application (ΦΣ k,jk ) corresponds to the state-ouput mapping (i.e.<br />
u<br />
Definition 1). When the control variable belongs to C ∞ , (strong) differential observability<br />
implies C ∞ observability. It may seem that little is <strong>gain</strong>ed by adding those extra definitions.<br />
In fact the notion of differential observability can be checked in a really practical way as it is<br />
explained at the end of this section.<br />
In order to prove differential observability we need the controls to be sufficiently differentiable<br />
so that differentiations can be performed. But since in practice the control variable is<br />
not likely to be differentiable, we are looking forward to L ∞ observability. We consider now<br />
the following theorem:<br />
Theorem 5 ([57], 4.4.6 page 56)<br />
For an analytic system (Σ) (i.e. when f <strong>and</strong> g are analytic, or C ω functions) the following<br />
properties are equivalent:<br />
1. (Σ) is observable for all C ω inputs,<br />
2. (Σ) is observable for all L ∞ inputs.<br />
This means that for an analytic system both strong differential observability <strong>and</strong> differential<br />
observability imply L ∞ observability (i.e. observability for the class of L ∞ (Uadm)<br />
inputs).<br />
Another consequence of the theory (as explained in [40, 57], Chapters 3.1 <strong>and</strong> 4.4) is that,<br />
for analytic systems, uniform infinitesimal observability implies observability of systems (Σ)<br />
restricted to small open subsets of X, the union of which is dense in X.<br />
As we will see with the theorems of next paragraph, although observability or uniform<br />
observability is not an easy property to establish in itself, a good method is to find a coordinate<br />
transformation that puts it under an observability form.<br />
Another method comes from the definition of differential observability:<br />
8<br />
Immersion: all the tangent mappings Tx0Φ Σ<br />
k,jk Σ<br />
u to the mapΦ k,jk u have full rank n at each point.<br />
14
tel-00559107, version 1 - 24 Jan 2011<br />
− Consider that the output y(t) is known for all times t ≥ 0.<br />
2.3 Observability Normal Forms<br />
− Compute the successive time derivatives of the outputs until there exists a k>0 such<br />
that the state x(t) can be uniquely computed, for all times, from the equations of<br />
(˙y(t), ¨y(t), ...) where y(t),u(t) are known time varying parameters.<br />
− We have found a k-jets extension of (Σ) that is injective <strong>and</strong> therefore it is at least<br />
differentially observable.<br />
− Assuming that (Σ) is analytic, then it is L ∞ observable.<br />
An illustration of this method is given in Chapter 4, Section 4.1.2. The process under<br />
consideration is a series-connected DC machine (see also [21], part 3.5).<br />
2.3 Observability Normal Forms<br />
The main significance of the theory is the existence of two distinct situations, which depend<br />
on the number of outputs with respect to the number of inputs. In one case observability<br />
is a generic property 9 , <strong>and</strong> it is not a generic property in the other case. These two specific<br />
situations are explained in the subsections below.<br />
2.3.1 First case: ny >nu<br />
The first case occurs when the number of outputs is greater than the number of inputs,<br />
i.e. ny >nu. The situation is defined by two theorems. The first states the genericity<br />
property of the set of observable systems in S; the second theorem introduces the (generic)<br />
observability normal form.<br />
Theorem 6 ([57], 4.2.2 <strong>and</strong> 4.2.4 page 40)<br />
1. The set of systems that are strongly differentially observable of order 2n +1 is residual<br />
in S.<br />
2. The set of analytic strongly differentially observable systems (of order 2n +1) that are<br />
moreover L ∞ -observable is dense in S.<br />
Theorem 7 ([40])<br />
The following is a generic property on S. Set k =2n +1. For all sufficiently smooth u(.),<br />
denote j k u(t) = � u(t), ˙u(t), ..., u (k−1) (t) � . Choose an arbitrarily large, relatively compact 10<br />
open subset Γ of X. Consider also an arbitrary bound on the control <strong>and</strong> its first k derivatives<br />
(i.e. u, ˙u, .., u (k) ). Then the mappings<br />
Φ Σ<br />
k,j k u : X → R kny<br />
x(t) ↦→ � y(t), ˙y(t), ..., y (k−1) (t) �<br />
9 A subset is said to be generic if it contains a residual subset. A subset is said to be residual if it is a<br />
countable intersection of open dense subsets.<br />
10 A subset is said relatively compact if its closure is compact.<br />
15
tel-00559107, version 1 - 24 Jan 2011<br />
2.3 Observability Normal Forms<br />
are smooth injective immersions that map the trajectories of the system (Σ) (restricted to Γ)<br />
to the trajectories of the system:<br />
⎧<br />
y = z1<br />
⎪⎨<br />
z1 ˙ = z2<br />
.<br />
zk−1 ˙ = zk<br />
⎪⎩<br />
�<br />
zk ˙ = φk z1,z2, ..., zk, u, ˙u, ..., u (k)�<br />
(2.2)<br />
The form of (2.2) is called a phase variable representation where all the zi components<br />
of the state vectors are of dimension ny. Since k =2n + 1 then the total dimension of the<br />
state space of the phase variable representation is (2n + 1)ny.<br />
Let v = � u(t), ˙u(t), . . . , u (k) (t) � denote the controls of the phase variable representation.<br />
Then since all the mappingsΦ Σ<br />
k,jk are smooth injective immersions restricted to the subset<br />
u<br />
Γ of Theorem 7, systems of the form (2.2) are observable, strongly differentially observable<br />
<strong>and</strong> uniformly infinitesimally observable. That is to say that the set of systems that can be<br />
embedded in a phase variable representation is contained into the set of observable systems.<br />
Therefore, in the case ny >nu, observable systems are generic in S <strong>and</strong> can generically<br />
be embedded into a phase variable representation.<br />
2.3.2 Second case: ny ≤ nu<br />
In the previous section we depicted observability as a generic property when there are<br />
more outputs than inputs (ny >nu). This is no longer the case when ny ≤ nu. We restrict<br />
the exposure in this instance to single output systems, i.e. ny = 1. We also restrict the<br />
exposure to analytic systems within the set S. The study of observability in this case is done<br />
with the help of a tool called the canonical flag of distributions. We define it below.<br />
As we will see in the theorems to come, the study of observability is done by establishing<br />
existence or non-existence of a canonical flag of distributions.<br />
Definition 8<br />
− Consider a system Σ =( f, h) ∈ S. We define the canonical flag of distributions<br />
D(u) as ⎧<br />
⎪⎨ D(u) =<br />
⎪⎩<br />
� D0 (u) ⊃ D1 (u) ⊃ ... ⊃ Dn−1 (u) �<br />
D0 (u)<br />
D<br />
= Ker(dxh)<br />
k+1 (u) = Dk (u) ∩ Ker(dxL k+1<br />
f h)<br />
(2.3)<br />
where Lf h is the Lie derivative of h with respect to the vector field f. Ker denotes the<br />
kernel of an application. The control u(t) being considered as fixed.<br />
− If the distributions D i (u) have constant rank n − i − 1, <strong>and</strong> are independent of u(.),<br />
then D(u) is denoted as a uniform canonical flag.<br />
The property<br />
((Σ) has a uniform canonical flag )<br />
16
tel-00559107, version 1 - 24 Jan 2011<br />
2.3 Observability Normal Forms<br />
is <strong>high</strong>ly non-generic (it has co-dimension ∞, see [57]). The non-genericity of observability<br />
is given by the two following theorems.<br />
Theorem 9 ([38], Pg 22)<br />
The system (Σ) has a uniform canonical flag if <strong>and</strong> only if for all x 0 ∈ X, there is a<br />
coordinate neighborhood of x 0 , (V x 0,x), such that in those coordinates the restriction of (Σ)<br />
to V x 0 can be written as<br />
where ∂h<br />
∂x1<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
y = h(x1,u)<br />
˙x1 = f1(x1,x2,u)<br />
˙x2 = f2(x1,x2,x3,u)<br />
.<br />
˙xn−1 = fn−1(x1,x2, ..., xn,u)<br />
˙xn = fn(x1,x2, ..., xn,u)<br />
∂fi <strong>and</strong> ∂xi+1 , i =1, ..., n − 1, never equal zero on Vx0 × Uadm.<br />
(2.4)<br />
As was the case for the form (2.2) of the previous section, a system under the form (2.4)<br />
is infinitesimally observable, observable <strong>and</strong> differentially observable of order n. Therefore<br />
if a system (Σ) has a uniform canonical flag then when restricted to neighborhoods of the<br />
form Vx0 × Uadm<br />
an be<br />
summarized in t<br />
Existence of a<br />
uniform<br />
canonical flag<br />
Existence of a<br />
normal form<br />
(restricted to a<br />
neighborhood)<br />
Observability<br />
(i e uniform<br />
infinitesimal<br />
observability)<br />
Figure 2.1: Observability Equivalence Diagram.<br />
Infinitesimal observability still needs to be related to the normal form (2.4) in order to<br />
obtain a complete equivalence diagram. This is done with a second theorem.<br />
Theorem 10 ([38], Pg 24-25)<br />
If (Σ) is uniformly infinitesimally observable, then, on the complement of a sub-analytic<br />
subset of X of co-dimension 1, (Σ) has a uniform canonical flag.<br />
The combination of those two theorems closes the Diagram 2.1 which means that the<br />
normal form (2.4) characterizes uniform infinitesimal observability.<br />
In the control affine case, the situation above can be rewritten in a stronger way. We<br />
first recall that such a control affine system is<br />
⎧<br />
p�<br />
⎪⎨<br />
˙x = f(x)+ gi(x)ui<br />
(2.5)<br />
⎪⎩<br />
i=1<br />
y = h(x).<br />
17
tel-00559107, version 1 - 24 Jan 2011<br />
We then define the function<br />
for which we can establish Lemma 11 below.<br />
Φ : X → Rn �<br />
x ↦→ h(x),Lfh(x), ..., L n−1<br />
f h(x)<br />
�<br />
2.4 Single Output Normal Form<br />
Lemma 11<br />
(Σ) is observable ⇒ Φ is of maximum rank (i.e. n) on an open dense subset V of X.<br />
Let us choose any subset W ⊂ X such that the restriction of Φ to W is, as said in the<br />
lemma, a diffeomorphism. Then the theorems above are modified into:<br />
Theorem 12 ([38], Pg 26-27)<br />
Assume that (Σ) is observable. Then the restriction Φ|W maps (Σ) into a system of the<br />
form:<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
y = x1<br />
˙x1 = x2 +<br />
˙x2 = x3 +<br />
.<br />
˙x2 = xn +<br />
p�<br />
i=1<br />
p�<br />
i=1<br />
p�<br />
i=1<br />
˙xn = ψ(x)+<br />
g1,i(x1)ui<br />
g2,i(x1,x2)ui<br />
gn−1,i(x1,x2, ..., xn−1)ui<br />
p�<br />
i=1<br />
gn,i(x1,x2, ..., xn−1,xn)ui.<br />
(2.6)<br />
.<br />
Conversely, if a system is under the form (2.6), on an open subset Ω ⊂ Rn , then it is<br />
observable.<br />
In conclusion, we want to emphasize the representations (2.2), (2.4) <strong>and</strong> (2.6) as they<br />
translate observability. Their general form is ˙x = Ax + b(x, u) where A is an upper diagonal<br />
matrix <strong>and</strong> b(x, u) is a triangular vector field. As a consequence the proof of the convergence<br />
of <strong>high</strong>-<strong>gain</strong> observers is carried out considering such normal forms. In addition, as we will<br />
see with the proof of Chapter 3, both the structure of the matrix A <strong>and</strong> of the vector field<br />
b(x, u) will be very useful.<br />
A generalization of the normal form (2.6) to multiple output systems is used in Chapter<br />
5 in order to extend the definition of the observer to systems with more than one output<br />
variables. This form is distinct from the phase variable representation given in equation<br />
(2.2).<br />
2.4 Single Output Normal Form<br />
The normal form introduced in this section is the one we use in order to define <strong>and</strong> prove<br />
the convergence of the observer for multiple-input, single-output (MISO) systems. We use<br />
18
tel-00559107, version 1 - 24 Jan 2011<br />
2.4 Single Output Normal Form<br />
the single-output assumption for simplicity <strong>and</strong> clarity of the exposure only. Up to a few<br />
modifications, the theorems can be proven in the multiple output case. Indeed, there is no<br />
unique normal form when ny > 1, therefore the definition of the observer has to be changed<br />
according to each specific case. In Chapter 5 a block wise generalization of the MISO normal<br />
form is considered, <strong>and</strong> the differences between the single output <strong>and</strong> the multiple output<br />
case are explained.<br />
As usual the system is represented by a set of two equations:<br />
− an ordinary differential equation that drives the evolution of the state,<br />
− an application that models the sensor measurements.<br />
Those two equations are of the form:<br />
�<br />
dx<br />
dt<br />
y<br />
=<br />
=<br />
A (u) x + b (x, u)<br />
C (u) x,<br />
where<br />
− x (t) ∈ X ⊂ R n , X compact,<br />
− y (t) ∈ R,<br />
− u(t) ∈ Uadm ⊂ R nu bounded.<br />
The matrices A (u) <strong>and</strong> C (u) are defined by:<br />
⎛<br />
0<br />
⎜<br />
A(u) = ⎜<br />
.<br />
⎝<br />
a2 (u)<br />
0<br />
0<br />
a3 (u)<br />
. ..<br />
· · ·<br />
. ..<br />
. ..<br />
0<br />
⎞<br />
0<br />
⎟<br />
. ⎟<br />
0 ⎟<br />
an (u) ⎠<br />
0 · · · 0<br />
C (u) = � a1 (u) 0 · · · 0 �<br />
(2.7)<br />
with 0
tel-00559107, version 1 - 24 Jan 2011<br />
2.5 High-<strong>gain</strong> Observers<br />
2.5 High-<strong>gain</strong> Observers<br />
Early descriptions of <strong>high</strong>-<strong>gain</strong> observers can be found in multiple references including<br />
J-P. Gauthier et al., [54], F. Deza et al., [46, 47], A. Tornambé, [111], H. K. Khalil et al. <strong>and</strong><br />
[50].<br />
The first <strong>high</strong>-<strong>gain</strong> observer construction that we present in this section is the Luenberger<br />
style prototype algorithm of [54]. Afterwards we define the <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>.<br />
Its structure is quite similar to that of the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>, which is well known <strong>and</strong><br />
well used in engineering [58, 60]. In our case, it has been adapted to the observability normal<br />
form.<br />
High-<strong>gain</strong> observers are embedded with a structure based on a fixed scalar parameter<br />
(denoted θ) which allows us to prove that the estimation error decays to zero, exponentially<br />
at a rate that depends on the value of θ. When the <strong>high</strong>-<strong>gain</strong> parameter is taken equal to 1,<br />
<strong>high</strong>-<strong>gain</strong> observers reduce to their initial nonlinear version.<br />
Definition 13<br />
We suppose that all the ai(u) coefficients of the normal form (2.7) are equal to 1. The<br />
classical (or Luenberger) <strong>high</strong>-<strong>gain</strong> observer is defined by the equation<br />
dz<br />
dt = Az + b(z, u) − Kθ (Cz − y(t)) (2.8)<br />
where Kθ = ∆K with 11 ∆ = diag �� θ,θ 2 , ...,θ n�� <strong>and</strong> K is such that (A − KC) is Hurwicz<br />
stable.<br />
It is in fact not important that the ai(u) coefficients equal 1 or any other non zero constant<br />
since a change of coordinates brings us back to the situation where ai = 1.<br />
On the other h<strong>and</strong>, it is of the utmost importance that the coefficients do not depend on<br />
either u(t) or time:<br />
− the correction <strong>gain</strong> K is computed off-line (i.e. for u = u ∗ ), (A(u) − KC(u)) may<br />
not remain stable for u �= u ∗ <strong>and</strong> the convergence of the observer is not guaranteed<br />
anymore.<br />
− in full generality: (A(t) − K(t)C(t) stable ∀t >0), � (the system is stable).<br />
The convergence of the <strong>high</strong>-<strong>gain</strong> Luenberger observer is expressed in the following theorem.<br />
Theorem 14<br />
For any a>0, there is a large enough θ > 1 such that ∀(x0,z0) ∈ (χ × χ), we have<br />
for some polynomial k of degree n.<br />
�z(t) − x(t)� 2 ≤ k(a)e −at �z0 − x0�<br />
In <strong>Kalman</strong> style observers, the correction <strong>gain</strong> is computed at the same time as the<br />
estimated state, <strong>and</strong> therefore constantly updated. It is the solution of a Riccati equation<br />
11 Here, diag denotes the square matrix filled with zeros except for the diagonal that is composed of the<br />
adequate vector.<br />
20
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
(of matrices). The corresponding matrix (denoted S or P ) is called the Riccati matrix. It is<br />
a symmetric <strong>and</strong> positive definite matrix 12 . Since S is a (n × n) symmetric square matrix,<br />
we only need to compute the upper or the lower part of the matrix (i.e. there are n(n+1)<br />
2<br />
equations to solve).<br />
Definition 15<br />
The <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> is defined by the two equations below:<br />
�<br />
dz<br />
dt = A(u)z + b(z, u) − S−1C ′<br />
R−1 (Cz − y)<br />
dS<br />
dt = −(A(u)+b∗ (z, u)) ′<br />
S − S(A (u)+b∗ (z, u)) + C ′<br />
R−1C − SQθS.<br />
(2.9)<br />
The matrices Q <strong>and</strong> R are originally the covariance matrices of the state <strong>and</strong> output<br />
noise respectively, <strong>and</strong> therefore are expected to be symmetric <strong>and</strong> positive definite. Since<br />
this observer is developed within the frame of the deterministic observation theory, those two<br />
matrices will be used as tuning parameters. Qθ is defined as Qθ = θ 2 ∆ −1 Q∆ −1 where θ > 1<br />
is a fixed parameter <strong>and</strong><br />
⎛<br />
1 0 · · · 0<br />
⎜<br />
∆ = ⎜<br />
0<br />
⎜<br />
⎝ .<br />
1<br />
θ<br />
. ..<br />
. ..<br />
. ..<br />
.<br />
0<br />
0 · · · 0 1<br />
θn−1 ⎞<br />
⎟<br />
⎠ .<br />
In most cases, normal form representations are not used when implementing an <strong>extended</strong><br />
<strong>Kalman</strong> <strong>filter</strong> (case θ = 1). The Jacobian matrices of f <strong>and</strong> h (computed with respect to the<br />
variable x) are used in the Riccati equation:<br />
dS<br />
dt<br />
� �′ � � � �′<br />
∂f<br />
∂f ∂h<br />
= −<br />
S − S<br />
+<br />
R<br />
∂x |x=z ∂x |x=z ∂x |x=z<br />
−1<br />
� �<br />
∂h<br />
− SQθS.<br />
∂x |x=z<br />
Refer to Chapter 1 for a more detailed explanation.<br />
Theorem 16 ([47, 57])<br />
For θ large enough <strong>and</strong> for all T>0, the <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> (2.9) satisfies<br />
the inequality below for all t> T<br />
θ :<br />
�z(t) − x(t)� 2 ≤ θ n−1 k(T )�z( T<br />
) − x(T<br />
θ θ )�2 T<br />
−(θω(t)−µ(T ))(t−<br />
e θ )<br />
for some positive continuous functions k(T ), ω(T ) <strong>and</strong> µ(T ).<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
In this section, we review a few adaptation strategies for the <strong>high</strong>-<strong>gain</strong> parameter that<br />
can be found in the literature. Strategies that are based on Luenberger like 13 observers are<br />
12 The fact that the solution of the Riccati equation of the observer (2.9) remains definite positive is not<br />
obvious <strong>and</strong> must be proven. Such a proof can be found in [57], Lemma 6.2.15 <strong>and</strong> Appendix B in the<br />
continuous discrete case.<br />
13 Here Luenberger like has to be understood in a broad sense. That is: observers with a correction <strong>gain</strong><br />
matrix that is not computed online <strong>and</strong>, most of the time, computed following a pole placement-like scheme.<br />
21
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
presented in Subsections 2.6.1, 2.6.2 <strong>and</strong> 2.6.3. In the case of <strong>Kalman</strong> like observers, recall<br />
that the <strong>high</strong>-<strong>gain</strong> modification is used to provide a structure to the Q <strong>and</strong> R matrices.<br />
Therefore adaptation of the <strong>high</strong>-<strong>gain</strong> parameter can be understood as an adaptation of the<br />
covariance matrices of the state <strong>and</strong> measurement noise. This topic has been the object of<br />
quite extensive studies <strong>and</strong> a large bibliography on the subject is available, both in the linear<br />
<strong>and</strong> nonlinear cases. Subsection 2.6.4 provides references to such works while Subsections<br />
2.6.5 <strong>and</strong> 2.6.6 focuses on <strong>high</strong>-<strong>gain</strong> constructions specifically.<br />
The adaptation of the <strong>high</strong>-<strong>gain</strong> parameter is, as said in Chapter 1, motivated by the<br />
need to combine the antagonistic behaviors of an observer that <strong>filter</strong>s noise efficiently <strong>and</strong> of<br />
an observer that is able to converge quickly when large perturbations or jumps in the state<br />
are detected. We want to emphasize the usefulness of this approach with three examples:<br />
1. In [64] S. Haugwitz <strong>and</strong> coworkers describe the model of a chemical reactor coupled<br />
with a <strong>high</strong>ly efficient heat exchanger. The reactor is expected to be used to process<br />
a <strong>high</strong>ly exothermic chemical reaction, <strong>and</strong> the temperature measured at specific spots<br />
constitutes the multidimensional output variable. Although the inlet concentrations<br />
are supposed to be known <strong>and</strong> fixed, it may happen that the apparatus meant to blend<br />
the reactants fails. The inlet concentration is then no longer the one expected, thus<br />
provoking a non-measured large perturbation. The authors use, quite successfully, an<br />
<strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> that takes into account this possibility of failure in the same<br />
spirit as when we estimate the load torque of the DC machine in Chapter 4. An adaptive<br />
<strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> can be really efficient for this kind of application by<br />
increasing the performance of the observer at perturbation times.<br />
2. In vehicle navigation, data from an inertial navigation system (INS) — a 3-axis accelerometer<br />
coupled with a gyroscope — <strong>and</strong> data from a global navigation satellite<br />
systems (GPS, GALILEO, GLONASS) are fusioned. The first type of sensors is very<br />
precise at time 0 but with an error domain that grows with time. Sensors of the second<br />
type have an error domain larger that the one of the INS at time 0 but that is stable.<br />
The purpose here is to know the position as precisely as possible with an error domain<br />
as small as possible. An observer that <strong>filter</strong>s the measurement noise is needed but estimation<br />
error may increase with time because of sudden changes of direction, sudden<br />
changes in the topology of the road or the loss of the GPS signal because of tunnels<br />
or urban canyons. The estimation of the covariance matrices Q <strong>and</strong> R of <strong>Kalman</strong> like<br />
<strong>filter</strong>s is the subject of the articles [96, 115] (linear case) or [37] (nonlinear case). The<br />
book of M. S. Greywal [60] provides a solid introduction to this topic.<br />
3. In a refinery, changes of the processed crude oil are perturbations. Starting from the<br />
atmospheric column, the disturbance propagates along the refinery. The speed of propagation<br />
of the disturbance front depends on many parameters (the several processes<br />
have low time constants, crude oil can be retained,...), <strong>and</strong> is not accurately known. An<br />
EKF 14 like observer is useful when there are no such changes, <strong>and</strong> an adaptive <strong>high</strong>-<strong>gain</strong><br />
observer would be of use in order to detect the feed change [38, 47, 113].<br />
Finally we want to cite a few techniques used in order to render an observer’s <strong>gain</strong> adaptive<br />
that we have not considered:<br />
14 Extended <strong>Kalman</strong> <strong>filter</strong>.<br />
22
tel-00559107, version 1 - 24 Jan 2011<br />
− statistical methods [115],<br />
− genetic algorithms based observers [97],<br />
− Neural networks based observers [109],<br />
− fuzzy logic approach [72].<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
Those observers are based on empirical methods. As a result, very little can be demonstrated<br />
or proven with respect to their convergence properties.<br />
2.6.1 E. Bullinger <strong>and</strong> F. Allőgower<br />
In a 1997 paper, E. Bullinger <strong>and</strong> F. Allgőwer proposed a <strong>high</strong>-<strong>gain</strong> observer having a<br />
varying <strong>high</strong>-<strong>gain</strong> parameter. Their observer is inspired by the structure proposed by A.<br />
Tornambè in [111]. It is a Luenberger like observer for a system of the form (2.7) except that<br />
αi(u) = 1 for all i ∈ 1, ..., n. Only the last component of the vector field b(x, u) is not equal to<br />
zero (see definition below). The control variable u may be of the form u = � u, ˙u, u (2) , . . . , u (n)�<br />
which is not one of the assumptions of system (2.7). As it appears below, the main difference<br />
between this observer <strong>and</strong> a classic <strong>high</strong>-<strong>gain</strong> is that the influence of the vector field to the<br />
model dynamic is neglected.<br />
Definition 17<br />
Consider a single input, single output system of the form<br />
Then define a <strong>high</strong>-<strong>gain</strong> obsever<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
x1 ˙ = x2<br />
x2 ˙ = x3<br />
.<br />
xn−1 ˙ = xn<br />
xn ˙ = φ(x, u)<br />
y = x1<br />
(2.10)<br />
˙z = Az − ∆K(z1 − y) (2.11)<br />
with ∆K defined in the same manner as for the observer (2.8):<br />
− ∆ = diag �� θ,θ 2 , . . . ,θ n�� , <strong>and</strong><br />
� �<br />
��<br />
− A − K 1 0 . . . 0 is Hurwicz stable.<br />
Then:<br />
− select a strictly increasing sequence of elements of R: {1, θ1, θ2, ...},<br />
− choose λ > 0, a small positive scalar, <strong>and</strong><br />
23
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
− consider the adaptation function:<br />
�<br />
γ|y(t) − z1(t)|<br />
˙s =<br />
2 for |y(t) − z1(t)| > λ<br />
0 for |y(t) − z1(t)| ≤ λ.<br />
The parameter θ is adapted according to the rule:<br />
− when t =0set θ =1<br />
− when s(t) =θi, set θ = θi (or in other words θ = sup{θi ≤ s(t)}).<br />
(2.12)<br />
It is clear from the definition of the adaptation procedure that the parameter θ cannot<br />
decrease which makes this observer a solution to a tuning problem rather than the noise<br />
reduction problem. The convergence of the observer is established in the following theorem.<br />
This observer comes from a paper published in 1997 (i.e. [35]), we therefore checked<br />
for updates of the strategy in more recent paper. In [36], the authors address λ-tracking<br />
problems 15 . The observer they use is the one described in this section.<br />
Theorem 18 ([35])<br />
Consider the system (2.10) above, together with the assumptions<br />
1. the system exhibits no finite escape time, <strong>and</strong><br />
2. the nonlinearity φ(x, u) is bounded.<br />
Then for any λ > 0, γ > 0, β > 0 <strong>and</strong> any S0:<br />
the total length of time for which the observer output error is larger than λ is finite.<br />
That is to say:<br />
�<br />
∃Tmax < ∞ : dt < Tmax where T = {t|�y(t) − z1(t)� ≥λ}.<br />
T<br />
In another theorem of the same paper (i.e. Theorem 3 of [35]), an upper bound for the<br />
estimation error for <strong>high</strong> values of t is provided. But in the original article from which this<br />
observer is inspired, [111], the estimation error is not bounded by an exponentially decreasing<br />
function of the time.<br />
The main differences between these works <strong>and</strong> with the work proposed here is that firstly<br />
that our observer is a <strong>Kalman</strong> based observer which, implies taking into account the evolution<br />
of the Riccati matrix. The second distinction is that here we address the problem of noise<br />
reduction when the estimation is sufficiently good.<br />
2.6.2 L. Praly, P. Krishnamurthy <strong>and</strong> coworkers<br />
The second observer with a dynamically sized <strong>high</strong>-<strong>gain</strong> parameter proposed that we will<br />
expose in this review is one from L. Praly, K. Krishnamurthy <strong>and</strong> coworkers. Descriptions of<br />
15 As explained in the article, λ-tracking is used for processes for which we know for certain that asymptotic<br />
stabilization can be achieved only by approximation. The objective is therefore modified into one of stabilizing<br />
the state within a sphere of radius λ centered on the set point.<br />
24
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
their observer construction can be found in articles like [16, 78, 79, 103] 16 . In the following<br />
we present the observer defined in [16], as it complies with the latest updates of their theory.<br />
Definition 19<br />
The system dynamics are:<br />
⎧ ⎛<br />
⎞ ⎛<br />
0 a2(y) 0 ... 0<br />
⎜ 0 0 a3(y) ... 0<br />
⎟ ⎜<br />
⎪⎨ ⎜<br />
˙x = ⎜<br />
.<br />
⎟ ⎜<br />
⎜ .<br />
.. .<br />
⎟ ⎜<br />
⎟ x + ⎜<br />
⎜<br />
⎟ ⎜<br />
⎝ 0 ... ... ... an(y) ⎠ ⎝<br />
⎪⎩<br />
0 ... ... ... 0<br />
y = x1 + δy(t).<br />
It is also denoted �<br />
where<br />
− y is the measured output,<br />
− the functions ai are locally Lipschitz,<br />
f1(u, y)<br />
f2(u, y, x2)<br />
f3(u, y, x2,x3)<br />
. . .<br />
fn(u, y, x2, ..., xn)<br />
˙x = A(y)x + b(y, x2, .., xn, , u)+∆( t)<br />
y = x1 + δy(t)<br />
⎞<br />
⎛<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ + ⎜<br />
⎟ ⎜<br />
⎠ ⎝<br />
δ1(t)<br />
δ2(t)<br />
δ3(t)<br />
. . .<br />
δn(t)<br />
⎞<br />
⎟<br />
⎠<br />
(2.13)<br />
(2.14)<br />
− u is a vector in R nu representing the known inputs <strong>and</strong> a finite number of their derivatives,<br />
− the vector ∆(t) represents the unknown inputs, <strong>and</strong><br />
− δy is the measurement noise.<br />
The construction of the observer is based on some additional knowledge concerning the<br />
system:<br />
1. a function α of the output y such that 0 < ρ
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
Those conditions, imposed on the vector fields fi, appear to be very technical, but are in<br />
fact necessary in order to prove the convergence of the observer. Moreover, the importance<br />
of the functionΓ( u, y) has not to be underestimated as it is of the utmost importance in the<br />
definition of the update law of the <strong>high</strong>-<strong>gain</strong> parameter.<br />
Definition 20<br />
The <strong>high</strong>-<strong>gain</strong> observer with updated <strong>gain</strong> is defined by the set of equations:<br />
�<br />
˙z = A(y)x + b(y, z2, .., zn, , u)+θLA(y)K � z1−y<br />
θb �<br />
�<br />
�<br />
˙θ = θ ϕ1(ϕ2 − θ)+ϕ3Γ(u, y) 1 + �n j=2 |ˆx j| vj<br />
��<br />
(2.15)<br />
where L = diag(L b ,L b+1 , ..., L b+n−1 ).<br />
Theorem 21<br />
Consider the system (2.13) <strong>and</strong> the associated observer (2.15). It is is then possible to<br />
choose the parameters ϕ1, ϕ2, ϕ3 (with ϕ2, ϕ3 <strong>high</strong> enough) such that for any L(0) ≥ ϕ2 the<br />
estimation error e(t) =z(t) − x(t) is bounded as follows:<br />
|L −1 e(t)| ≤ β1(L(0) −1 e(0),t)+sup s∈[0,t[γ1<br />
��� ����<br />
for all t ∈ [0,Tu[. Moreover L statisfies the relation:<br />
⎛�⎛<br />
�<br />
�� � �<br />
�<br />
e(0)<br />
⎜�⎜<br />
⎜�⎜<br />
L(t) ≤ 4ϕ2 + β2<br />
,t + sups∈[0,t[γ2 ⎜�⎜<br />
L(0)<br />
⎝�⎝<br />
�<br />
�<br />
δ(s)<br />
ϕ2<br />
α(y(s))δy(s)<br />
δ(s)<br />
ϕ2<br />
α(y(s))δy(s)<br />
Γ(u(s),y(s))<br />
x(s)<br />
where β1 <strong>and</strong> β2 are KL functions, <strong>and</strong> γ1, γ2 are functions of class K.<br />
��� ����<br />
⎞�⎞<br />
�<br />
�<br />
⎟�⎟<br />
⎟�⎟<br />
⎟�⎟<br />
⎠�⎠<br />
�<br />
�<br />
This work uses a special form of the phase variable representation (2.2) of J-P. Gauthier<br />
et al. <strong>and</strong> therefore applies to observable systems in the sense of Section (2.2) above. The<br />
observer (2.15) has roughly the same structure as a Luenberger <strong>high</strong>-<strong>gain</strong> observer except<br />
for the fact that the correction <strong>gain</strong> is given as a function of the output error. The update<br />
function is determined by a function that bounds the incremental rate of the vector field<br />
b(y, x, u)(this is the part written in bold in (2.15)).<br />
The strategy adopted here isn’t based on a global Lipschitz vector field, which implies<br />
the off-line search <strong>and</strong> tuning of the upper bound (or the value) of the <strong>high</strong>-<strong>gain</strong> parameter<br />
θ. Instead, the observer tunes itself as a consequence of the adaptation function. However<br />
the function that drives the adaptation may not be that easy to find.<br />
The idea is quite similar to that of E. Bullinger <strong>and</strong> F. Allgőwer [35], with the difference<br />
being that in their case the adaptation is driven by the output error <strong>and</strong> in the case of L.<br />
Praly et al. the adaptation is model dependent.<br />
Theorem 21 states 17 that the observer (2.15) together with its adaptation function gives,<br />
at least for bounded solutions, an estimation error converging to a ball centered at the origin<br />
with a radius that depends on the asymptotic L ∞ -norm of the disturbances δ <strong>and</strong> δy. This<br />
17 The precise <strong>and</strong> complete theorem appear in the article [16], Theorem 1.<br />
26
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
consequently means that provided the disturbances vanish, the estimation error converges to<br />
0. This observer is not based on any quality metric of the estimation <strong>and</strong> the evolution of<br />
the <strong>high</strong>-<strong>gain</strong> doesn’t depend of the quality convergence. Therefore the situation may arise<br />
such that the observer has already converged <strong>and</strong> that the <strong>high</strong>-<strong>gain</strong> is still <strong>high</strong>, which would<br />
therefore amplify the noise.<br />
The work herein, contrary to this section’s observer, is set in the global Lipschitz setting.<br />
Further, it aims to provide an observer for which the <strong>high</strong>-<strong>gain</strong> parameter decreases to 1 (or<br />
the the lowest value allowed by the user) when the local convergence 18 of the algorithm can<br />
be used (i.e. the <strong>high</strong>-<strong>gain</strong> is not needed anymore).<br />
2.6.3 Ahrens <strong>and</strong> Khalil<br />
This paper deals with a closed loop control strategy that comprises an observer having a<br />
<strong>high</strong>-<strong>gain</strong> switching scheme. We focus on the observer’s definition together with the switching<br />
strategy used, <strong>and</strong> only give a simplified version of the system the authors consider, refer to<br />
[11] for details.<br />
Definition 22<br />
The simplified version of the system used in [11] is<br />
�<br />
˙x = Ax + Bφ(x, d, u)<br />
y = Cx + v<br />
where<br />
− x ∈ R n is the state variable,<br />
− y ∈ R is the output,<br />
− d(t) ∈ R p is a vector of exogenous signals,<br />
− v(t) ∈ R is the measurement noise, <strong>and</strong><br />
− u(t) is the control variable.<br />
The matrices A, B <strong>and</strong> C are:<br />
⎛<br />
0<br />
⎜ .<br />
⎜<br />
A = ⎜ .<br />
⎜<br />
⎝ 0<br />
1<br />
0<br />
. . .<br />
0<br />
1<br />
. ..<br />
. . .<br />
...<br />
. ..<br />
. ..<br />
0<br />
⎞ ⎛ ⎞<br />
0<br />
0<br />
⎟ ⎜ ⎟<br />
.<br />
⎟ ⎜<br />
⎟ ⎜ .<br />
⎟<br />
⎟ ⎜ ⎟<br />
0<br />
⎟ B = ⎜<br />
⎟ ⎜ .<br />
⎟<br />
⎟ ⎜ ⎟<br />
1 ⎠ ⎝ 0 ⎠<br />
0 . . . . . . . . . 0<br />
1<br />
�<br />
�<br />
C = 1 0 ... ... 0 .<br />
The set of assumptions for this system is:<br />
(2.16)<br />
18 The convergence of the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> can be proven for small initial errors only (see the proof<br />
of Chapter 3).<br />
27
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
− d(t) is continuously differentiable, <strong>and</strong> takes its values in a compact subset of R p ,<br />
− both d(t) <strong>and</strong> d<br />
dtd(t) are bounded,<br />
− v : R + ↦→ R is a measurable function of t <strong>and</strong> is bounded (i.e. ∃µ >0, |v(t)| ≤ µ), <strong>and</strong><br />
− φ is a locally Lipschitz function in x <strong>and</strong> u, uniformly in d, over the domain of interest.<br />
The Lipschitz constant is independent of d(t).<br />
The observer proposed for such a system comes from earlier works such as [50].<br />
Definition 23<br />
Let us denote by z the estimated state. The observer is<br />
where for i =1, 2<br />
˙z = Az + Bφ(z, d, u) − Hi(Cz − y)<br />
H ′<br />
�<br />
α1,i<br />
i = θi<br />
α2,i<br />
θ2 , ...,<br />
i<br />
αn,i<br />
θn i<br />
The θi’s are small positive parameters such that 0 < θ1 < θ2, <strong>and</strong> the αi’s are chosen in such<br />
a way that the roots of the polynomial:<br />
have negative real parts.<br />
�<br />
.<br />
s n + α1,is n−1 + α2,is n−2 + ... + αn,i =0<br />
This observer is defined with two values for the <strong>high</strong>-<strong>gain</strong> parameter:<br />
− θ1 corresponds to the fast state reconstruction mode,<br />
− θ2 makes the observer much more efficient w.r.t. noise <strong>filter</strong>ing.<br />
The two sets of αi parameters can be chosen such that they are distinct from one another.<br />
The switching scheme between the two values of θ has two main restrictions:<br />
− the value of θ should change whenever an excessively large estimation error is detected,<br />
<strong>and</strong><br />
− the value of θ should not change because of overshoots. During an overshoot, the<br />
situation may arise when the estimated trajectory crosses the real trajectory, but has<br />
not yet converged. Switching from θ1 to θ2, in this case, is not desirable.<br />
Definition 24 (Switching scheme)<br />
Let us define δ > 0 <strong>and</strong> Td > 0, two constant parameters <strong>and</strong> D =[−δ; δ]. The value of θ<br />
is changed whenever 19 (z1 − y1) exits or enters D. When an overshoot occurs, the estimation<br />
error may enter <strong>and</strong> exit quickly the domain D: convergence is not achieved yet. The large<br />
value of the <strong>high</strong>-<strong>gain</strong> parameter is still needed. Those situations are h<strong>and</strong>led by the use of a<br />
delay timer. Priority is given to the <strong>high</strong>-<strong>gain</strong> mode (see Figure 2.2):<br />
19 Matrix C gives us (Cz − y) =(z1 − y1).<br />
28
tel-00559107, version 1 - 24 Jan 2011<br />
− whenever |y1 − z1| > δ then θ = θ1, <strong>and</strong> the delay timer is reset,<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
− when |y1 − z1| < δ, we don’t know wether it is an overshoot or not: θ = θ1 <strong>and</strong> the<br />
delay timer is started,<br />
− when |y1 − z1| < δ <strong>and</strong> the delay timer is equal to Td, estimation is satisfactory <strong>and</strong><br />
θ = θ2.<br />
The authors consider a control strategy that stabilizes the system provided that the<br />
full state is known. They include a fixed <strong>high</strong>-<strong>gain</strong> observer <strong>and</strong> consider the closed loop<br />
system. They propose a set of assumptions such that the system-observer-controler ensemble<br />
is uniformly asymptotically stable 20 , (see [11], Theorem 1). The last step is the demonstration<br />
that stability remains when the <strong>high</strong>-<strong>gain</strong> of the observer is switched between two well defined<br />
values (see [11], Theorem 2 <strong>and</strong> example of Section 4).<br />
The Luemberger observer doesn’t have the same local properties as the <strong>extended</strong> <strong>Kalman</strong><br />
<strong>filter</strong>, namely good <strong>filter</strong>ing properties <strong>and</strong> analytically guaranteed convergence for small<br />
initial errors. We therefore expect a <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> having a varying θ<br />
parameter to be more efficient with respect to the noise <strong>filter</strong>ing issue.<br />
y z<br />
2.6.4 Adaptive <strong>Kalman</strong> Filters<br />
Overshoots=no <strong>high</strong> <strong>gain</strong> change<br />
Td<br />
Change in the <strong>high</strong> <strong>gain</strong> value<br />
Time<br />
Figure 2.2: Switching strategy to deal with peaking.<br />
We now consider the problem of the adaptation of the <strong>high</strong>-<strong>gain</strong> parameter of <strong>Kalman</strong><br />
<strong>filter</strong>s. Recall that the <strong>high</strong>-<strong>gain</strong> parameter is used to provide the Q <strong>and</strong> R matrices with a<br />
specific structure. Therefore, the adaptation of the <strong>high</strong>-<strong>gain</strong> parameter may be seen as the<br />
modification of those two matrices 21 . There is nonetheless a big difference when the <strong>high</strong>-<strong>gain</strong><br />
structure is not considered: there is no proof of convergence of the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong><br />
when the estimated state doesn’t lie in a neighborhood of the real state. The situation could<br />
be even worse. Examples of systems for which the <strong>filter</strong> doesn’t converge can be found in<br />
[100, 101].<br />
The adaptation problem, when viewed as the adaptation of the Q <strong>and</strong> R matrices, has<br />
been the object of quite a few publications both in linear <strong>and</strong> nonlinear cases. In the linear<br />
20 The Theorem demonstrates that all the trajectories are bounded (ultimately with time) <strong>and</strong> that the<br />
trajectory (under output feedback i.e. using the observer) is close to that of the state feedback (i.e. controller<br />
with full state knowledge).<br />
21 Recall that when the system is modeled using stochastic differential equations, Q <strong>and</strong> R represent the<br />
covariances of the state <strong>and</strong> output noise, respectively.<br />
29
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
part of the world, early references may be found in the book edited by A. Gelb[58], the two<br />
volumes book of P. S. Maybeck [89, 90], Chapter 10 of the second one in particular, the book<br />
from C. K. Chui <strong>and</strong> G. Chen [43]. Recent papers can be found in the INS/GPS community,<br />
such as [96, 115] or the book from M. S. Grewal [60]. The review article of R. K. Mehra<br />
[92] is warmly advised as an introduction to the topic. We do not expatiate on the subject<br />
since 1) most of the techniques developed in those papers are statistical methods, 2) the main<br />
bottleneck in the analysis is due to the linearization of the model in order to use the Riccati<br />
equation which is specific to the nonlinear case, 3) when switching based methods are used<br />
we have a better time explaining them directly in the nonlinear setting.<br />
In the non linear case a vast majority of strategies are proposed for discrete-time systems.<br />
We describe a subset of those strategies below.<br />
Definition 25<br />
A discrete time system is defined by a set of two equations of the form:<br />
�<br />
xk+1 = f(xk,uk)<br />
yk+1 = h(xk+1)<br />
(2.17)<br />
with the usual notation xk = x(kδt), δt > 0 being the sample time. At least one of the two<br />
functions f <strong>and</strong> h is nonlinear.<br />
The discrete <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> associated with this system is given by the set of<br />
equations:<br />
where<br />
P rediction<br />
�<br />
⎧<br />
⎪⎨<br />
Correction<br />
⎪⎩<br />
z −<br />
k+1<br />
P −<br />
k+1<br />
= f(zk,uk)<br />
′<br />
= AkPkA k + Qk,<br />
zk+1 = z −<br />
k+1 + Lk+1(yk+1 − h(z −<br />
k+1 ))<br />
P +<br />
k+1 = (Id − Lk+1C)P −<br />
k+1<br />
Lk+1 = P −<br />
k+1<br />
C ′<br />
(CP −<br />
k+1<br />
′<br />
C + R) −1 ,<br />
− zk denotes the estimated state, <strong>and</strong> P0 is a symmetric positive definite matrix,<br />
− A is the jacobian matrix of f, computed along the estimated trajectory,<br />
− C is the jacobian matrix of h, computed along the estimated trajectory.<br />
The first strategy we present was proposed by M. G. Pappas <strong>and</strong> J. E. Doss in their<br />
article [99] (1988). Although they do not consider the observability issue of the system, it is<br />
nonetheless an underlying concern of their work:<br />
− when the system is at steady state, the system is less observable <strong>and</strong> a slow observer<br />
is required to give an accurate estimate, noise smoothing being an additional derived<br />
benefit,<br />
30
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
− when the state of the system changes (different operating point, modification of the<br />
physical characteristics of the process,...), it becomes more observable. A faster observer<br />
can be considered <strong>and</strong> is needed to efficiently track the rapidly changing state variables.<br />
The implementation they propose consists of two observers in parallel. Changes in the state<br />
of the system are seen as faults. They are detected via a modified fault detection algorithm<br />
[62]. The original algorithm is decomposed into three steps.<br />
1. The fault input sequence is formed as<br />
wk = α1wk−1 +(zk − zk−1)<br />
where wk is an estimation of the direction of the parameter change. At steady state,<br />
(zk − zk−1) corresponds to the measurement noise <strong>and</strong> therefore its sign is expected to<br />
change frequently. Depending on the value of α1 so is the case of wk.<br />
2. The fault test sequence is<br />
sk = sign ((zk − zk−1) wk−1) .<br />
− sk negative indicates that the parameter estimate variation is changing direction:<br />
no fault occurs,<br />
− sk positive over many successive tests, indicates that the variation is constant <strong>and</strong><br />
a fault is detected.<br />
3. The fault sequence is <strong>filter</strong>ed with the equation:<br />
rk = α2rk−1 + (1 − α2)sk<br />
where α2 determines the speed of fault detection <strong>and</strong> the rate of false alarms 22 .<br />
This strategy is modified in the three following ways:<br />
1. in order to reduce the influence of small noise components in the signal, the number of<br />
significant figures used in the calculations of (zk − zk−1) is truncated,<br />
2. in order to cope with the situation when (zk − zk−1) = 0, the sequence s is modified as<br />
sk = sign(−10 8 +(zk − zk−1)wk−1).<br />
When the parameter estimations doesn’t change, the sign function remains negative<br />
<strong>and</strong> no fault is detected,<br />
3. the sequence r(t) is clamped at a minimum value of −0.5, preventing excessively large<br />
drifts at steady state.<br />
22 For <strong>high</strong> values of α2 we obtain a <strong>high</strong> pass <strong>filter</strong> like behavior, <strong>and</strong> conversely for α2 small.<br />
31
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
In this strategy, α2 is a very important parameter as it is used to decide if the sign is<br />
considered to be either constant or if it is constantly changing.<br />
The ideas behind the second strategy come directly from articles like the one of M. S.<br />
Mehra [92] or the book of P. S. Maybeck [90]. References for this method are [69] (sensor<br />
fusion in robotics), [83] (visual motion estimation via camera sensor), <strong>and</strong> [37, 102] (in flight<br />
orientation). This method aims at estimating Q, the process state noise covariance matrix.<br />
It is viewed as a measure of the uncertainty in the state dynamics between two consecutive<br />
updates of the observer. An observation of Q, denoted Q ∗ is given by the equation (see [37]):<br />
which can be rewritten<br />
Q ∗ = (zk+1 − z −<br />
k+1 )(zk+1 − z −<br />
k+1 )′<br />
+ P −<br />
k+1 − Pk+1 − Qk ,<br />
Q ∗ = (zk+1 − z −<br />
k+1 )(zk+1 − z −<br />
k+1 )′<br />
= (zk+1 − z −<br />
k+1 )(zk+1 − z −<br />
k+1 )′<br />
− Qk))<br />
− (AkPkA ′<br />
k − Qk)).<br />
− (Pk+1 − (P −<br />
k+1<br />
The new value for the matrix Q, denoted ˆ Qk+1 is obtained using a moving average (or low<br />
pass <strong>filter</strong>) process:<br />
ˆQk+1 = ˆ Qk + 1<br />
�<br />
Q ∗ − ˆ �<br />
Qk .<br />
LQ<br />
LQ is the size of the window that sets the number of updates being averaged. In this pro-<br />
cedure, LQ is a performance parameter that has to be tuned. The quantity (zk+1 − z −<br />
k+1 )=<br />
Kk(yk − hk(z −<br />
k )) plays a key role in this strategy. It is denoted as innovation, <strong>and</strong> contains<br />
specific information on the quality of the estimation. In our work, we use a modified definition<br />
of innovation, <strong>and</strong> prove that it is a quality measurement of the estimation error23 .<br />
A third strategy consists of designing of a set of nonlinear observers with different values<br />
for Q <strong>and</strong> R. They are used in parallel <strong>and</strong> the final estimated state is chosen among all the<br />
estimates available. A selection criteria has to be defined: minimization of innovation is the<br />
most straightforward method that can be used (see the observer of Subsection 2.6.6). (We<br />
refer the reader to the algorithm of K. J. Bradshaw, I. D. Reid <strong>and</strong> D. W. Murray [32], <strong>and</strong><br />
references therein.) Every estimate is associated with a probability density computed with a<br />
maximum likelihood algorithm. The state estimate is then obtained as a combination of all<br />
the observers’ outputs weighted by their associated probability.<br />
Notice that for nonlinear systems, E [u(x)] is distinct from u(E [x]). An interesting feature<br />
of this strategy, is that the first quantity can be computed quite naturally.<br />
2.6.5 Boutayeb, Darouach <strong>and</strong> coworkers<br />
In their research M. Boutayeb, M. Darouach <strong>and</strong> coworkers proposed several types of<br />
observers, including <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> based obsevers [30, 31], observers based on the<br />
differential mean value theorems [116, 117], H∞ <strong>filter</strong>ing [13], or for systems facing bounded<br />
23 Cf. Lemma 33 of Chapter 3<br />
32
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
disturbances [18]. This section deals with the observer described in [31], <strong>and</strong> in particular<br />
with the adaptive scheme proposed in [30]. The analysis they propose is set in the discrete<br />
time setting.<br />
First of all, note that the approach we described in the first part of this Chapter, <strong>and</strong><br />
the approach followed in the articles cited above are different, in the sense that the systems<br />
considered are not expected to display the same observability property. Indeed in the present<br />
case, the authors only need the system to be N-locally uniformly observable <strong>and</strong> do not<br />
perform any change of variables. This implies that the class of nonlinear systems for which<br />
the observer is proven to converge is bigger than the one considered in the present work (see<br />
the numerical examples displayed in [30], for example). This observer can be used for systems<br />
that cannot be put into a canonical observability form. The drawback to this approach then,<br />
is that the observer converges locally <strong>and</strong> asymptotically (i.e. the state error is not upper<br />
bounded by an exponential term).<br />
Definition 26<br />
1. We consider a discrete, nonlinear, system as in Definition 25 where xk ∈ R n , uk ∈ R nu<br />
<strong>and</strong> yk ∈ R ny . The maps f <strong>and</strong> h are assumed to be continuously differentiable with<br />
respect to the variable x.<br />
2. The observer is defined as:<br />
�<br />
zk+1/k = f(zk,uk)<br />
Pk+1/k = FkPkF ′<br />
k + Qk<br />
where<br />
<strong>and</strong><br />
�<br />
z k+1/k+1 = z k+1/k − Kk+1(h(z k+1/k) − yk+1)<br />
P k+1/k+1 = (In − Kk+1Hk+1)P k+1/k<br />
Kk+1 = P k+1/kH ′<br />
k+1 (Hk+1P k+1/kH ′<br />
k+1 + Rk+1) −1 ,<br />
∂f(x, uk)<br />
Fk = |x=zk<br />
∂x<br />
,<br />
∂h(x, uk)<br />
Hk = |x=z . k+1/k ∂x<br />
(2.18)<br />
This definition is that of a discrete <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>. It is completed by a set of<br />
assumptions that appear in the statement of the convergence theorem. Since the <strong>extended</strong><br />
<strong>Kalman</strong> <strong>filter</strong> is known to converge when the estimated state is very close to the real state,<br />
the following theorem increases the size of this region.<br />
Theorem 27 ([30])<br />
We assume that:<br />
1. the system defined in equation (2.17) is N-locally uniformly rank observable, that is to<br />
33
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
say that there exists an integer N ≥ 1 such that<br />
rank ∂<br />
⎛<br />
h(x, uk)<br />
⎜<br />
h(., uk) ◦ f(x, uk)<br />
⎜<br />
∂x ⎜<br />
⎝<br />
.<br />
h(., uk+N−1) ◦ h(., uk+N−2) ◦ h(., uk) ◦ f(x, uk)<br />
⎞<br />
⎟<br />
⎠<br />
|x=x k =n<br />
for all xk ∈ K, <strong>and</strong> N-tuple of controls (uk, . . . , uk+N−1) ∈ U (where K <strong>and</strong> U are two<br />
compact subsets of R n <strong>and</strong> (R nu ) N , respectively),<br />
2. Fk, Hk are uniformly bounded matrices, <strong>and</strong> F −1<br />
k<br />
Let us define:<br />
1. the time varying matrices α <strong>and</strong> β by:<br />
exists.<br />
(xk+1 − z k+1/k) = βkFk(xk − zk)<br />
αk+1ek+1 = Hk+1(xk+1 − z k+1/k),<br />
2. the weighting matrices Rk <strong>and</strong> Qk such that, there exists a parameter 0 < ζ< 1 such<br />
that<br />
�<br />
<strong>and</strong> that 24<br />
sup |(αk+1)i − 1| ≤<br />
i=1,...,ny<br />
sup |(βk)j| ≤<br />
j=1,...,n<br />
σ(Rk+1)<br />
σ(Hk+1Pk+1/kH ′<br />
k+1 + Rk+1)<br />
�<br />
(1 − ζ)σ(FkPkF ′<br />
k<br />
+ Qk)<br />
σ(F ′<br />
k )σ(Pk)σ(Fk)<br />
Then, the observer (2.18) ensures local asymptotic convergence:<br />
lim<br />
k→∞ (xk − zk) = 0.<br />
In [30] the authors propose to choose Qk = γe ′<br />
k ekIn + δIn where ek = h(z k/k−1) − yk is<br />
the innovation. γ is taken sufficiently large, <strong>and</strong> δ sufficiently small such that the inequalities<br />
of Assumption (4) are met for all values of ek. Special attention must be given to the fact<br />
that Qk should not be set to a <strong>high</strong> value when the innovation is small 25 .<br />
The adaptation strategy we propose in Chapter 3 is based on the same kind of strategy<br />
but uses the innovation over a sliding horizon as the quality measurement for the estimation.<br />
By doing this we can link the adaptive scheme to the proof of convergence of the observer,<br />
which is not done for the observer of this section.<br />
24 σ <strong>and</strong> σ denotes respectively the maximum <strong>and</strong> minimum singular values.<br />
25 The article of L. Z. Guo <strong>and</strong> Q. M. Zhu [61], propose a hybrid strategy based on this subsection’s observer.<br />
They use the structure proposed by M. Boutayeb et al together with a neural network approach.<br />
34<br />
� 1<br />
2<br />
.<br />
� 1<br />
2<br />
,
tel-00559107, version 1 - 24 Jan 2011<br />
2.6.6 E. Busvelle <strong>and</strong> J-P. Gauthier<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
The article [38] of E. Busvelle <strong>and</strong> J-P Gauthier propose an observer that is <strong>high</strong>-<strong>gain</strong> at<br />
time 0 <strong>and</strong> then decreases toward 1. In a nutshell, the observer evolves from a pure <strong>high</strong>-<strong>gain</strong><br />
mode that ensures convergence to an <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> configuration that efficiently<br />
smooths the noise. To achieve this, the <strong>high</strong>-<strong>gain</strong> parameter is allowed to decrease <strong>and</strong> the<br />
convergence is proven. This article is, in some sense, the starting point of the present Ph.D.<br />
work.<br />
Definition 28<br />
The <strong>high</strong>-<strong>gain</strong> <strong>and</strong> non <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>, for a system as defined<br />
in Section 2.4, is given by the three equations:<br />
⎧<br />
⎪⎨<br />
dz<br />
dt = A(u)z + b(z, u) − S(t)−1C ′<br />
R−1 (Cz − y(t))<br />
dS<br />
dt = −(A(u)+b∗ (z, u)) ′<br />
S − S(A(u)+b∗ (z, u)) + C ′<br />
R−1C − SQθS (2.19)<br />
⎪⎩<br />
dθ<br />
dt<br />
= λ(1 − θ)<br />
where Qθ = θ 2 ∆ −1 Q∆ −1 , ∆ = diag( � 1, 1<br />
θ<br />
, ..., ( 1<br />
θ )n−1� ), Q <strong>and</strong> R as in (2.9), <strong>and</strong> λ is a<br />
positive parameter.<br />
If θ (0) = 1, then θ (t) ≡ 1 <strong>and</strong> (2.19) is nothing else than a classical <strong>extended</strong> <strong>Kalman</strong><br />
<strong>filter</strong> applied in a canonical form of coordinates. Therefore it may not converge, depending<br />
on the initial conditions of the system.<br />
If λ =0<strong>and</strong> θ (0) = θ0 are large, then θ (t) ≡ θ0 remains large <strong>and</strong> (2.19) is a <strong>high</strong>-<strong>gain</strong><br />
<strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> as defined above in Equation (2.9).<br />
The idea in (2.19) is to set θ (0) to a sufficiently large value, <strong>and</strong> to set λ to a sufficiently<br />
small value such that the observer converges exponentially quickly at the beginning. The<br />
estimated state reaches the vicinity of the real trajectory before θ becomes too small <strong>and</strong> the<br />
local convergence of the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> guarantees that it will remain close to the<br />
state of the system.<br />
Theorem 29<br />
For any ε ∗ > 0, there exists λ0 such that for all 0 ≤ λ ≤ λ0, for all θ0 large enough, for<br />
all S0 ≥ c Id, for all χ ⊂ R n , χ a compact subset, for all ε0 = z0 − x0,with (z0,x0) ∈ χ 2 , with<br />
x0 ∈ χ the following estimation holds for all t ≥ 0:<br />
Moreover the short term estimate<br />
||ε(t)|| 2 ≤ ||ε (0) || 2 ε ∗ e −at .<br />
||ε(t)|| 2 ≤ ||ε(0)|| 2 θ(t) 2(n−1) e −(a1θ(T )−a2)t<br />
holds for all T>0 <strong>and</strong> for all 0 ≤ t ≤ T , for all θ0 sufficiently large. The scalars a1 <strong>and</strong> a2<br />
are positive constants.<br />
This theorem demonstrates that the observer converges for any initial error. Nevertheless<br />
it is clearly not a persistent observer since after some time it is more or less equivalent to<br />
an <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> because θ (t) is close to one. In order to make it persistent, the<br />
authors propose to use several such observers, each of them being initialized at different times<br />
35
tel-00559107, version 1 - 24 Jan 2011<br />
2.6 On Adaptive High-<strong>gain</strong> Observers<br />
in such a way that at any moment at least one of the observers has θ large <strong>and</strong> at least one<br />
observer has θ close to 1. The state of the observer having the shortest output error 26 is then<br />
selected. As shown in [38], this observer performs well in our <strong>applications</strong>. It is successfully<br />
applied for identification purposes in [40]. Nevertheless this procedure is not very reasonable<br />
since:<br />
− Even if the overall construction gives a persistent observer, it is a time-dependant<br />
observer,<br />
− It can be time consuming since it requires at least five (empirical value) observers in<br />
parallel,<br />
− The parameter λ has to be chosen sufficiently small, which means that after a perturbation,<br />
we can not return as quickly as we would like to a classical <strong>extended</strong> <strong>Kalman</strong><br />
<strong>filter</strong>, even if the observer performs well,<br />
− The choice of the criteria used to select the best prediction between our observers, is<br />
not theoretically justified.<br />
This second chapter, which focused on the theoretical framework that encompasses our<br />
work, ends with the analysis of this last observer. In this chapter, we also provided insight<br />
into several adaptation strategies. In the next chapter we introduce the adaptive <strong>high</strong>-<strong>gain</strong><br />
<strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> <strong>and</strong> develop the full proof of convergence.<br />
26 The output error (Cz − y) is the equivalent of innovation for continuous time systems.<br />
36
tel-00559107, version 1 - 24 Jan 2011<br />
Chapter 3<br />
Adaptive High-<strong>gain</strong> Observer:<br />
Definition <strong>and</strong> Convergence<br />
Contents<br />
3.1 Systems Under Consideration . . . . . . . . . . . . . . . . . . . . . 39<br />
3.2 Observer Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
3.3 Innovation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
3.4 Main Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
3.5 Preparation for the Proof . . . . . . . . . . . . . . . . . . . . . . . 44<br />
3.6 Boundedness of the Riccati Matrix . . . . . . . . . . . . . . . . . . 47<br />
3.7 Technical Lemmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />
3.8 Proof of the Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
3.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
37
tel-00559107, version 1 - 24 Jan 2011<br />
Up to this point, we have already studied the system, i.e., the system is of the normal<br />
form, either naturally or after a change of variables. According to theory, in order to reconstruct<br />
the state of this system, we can use any of the exponentially converging observers of<br />
Chapter 2. However, we wont.<br />
In this chapter, we solve the convergence part of the observability problem. Our goal is<br />
to define an observer that combines the antagonistic behaviors of the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong><br />
(EKF) <strong>and</strong> the <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> (HG-EKF).<br />
The EKF is extensively used, 1) because of its attractive <strong>filter</strong>ing properties (as explained<br />
in articles such as [101]), <strong>and</strong> 2) because it actually performs well in practice. However, a<br />
proof of convergence for this algorithm is known only for small initial estimation errors (as<br />
it can be seen in [17, 38] or within the proof of the main theorem below). Additionally, from<br />
a practical point of view, the EKF h<strong>and</strong>les large perturbations with difficulty, as has been<br />
observed in simulations <strong>and</strong> experiments.<br />
Contrarily, the HG-EKF possesses improved global properties [47]. It converges regardless<br />
of the initial guess <strong>and</strong>/or independently of large perturbations. On the other h<strong>and</strong>, it<br />
is rather sensitive with respect to noise.<br />
Recall that the <strong>high</strong>-<strong>gain</strong> structure uses a single parameter denoted θ (θ > 1), <strong>and</strong> referred<br />
to as the <strong>high</strong>-<strong>gain</strong> parameter. The HG-EKF does its global job if <strong>and</strong> only if θ is sufficiently<br />
large. When θ is set to 1, it is formally equivalent to the st<strong>and</strong>ard EKF.<br />
The idea here is to make the parameter θ adaptive. Thus,<br />
− when the estimated state is far from the real state, θ is made sufficiently large such<br />
that the observer converges for any initial guess,<br />
− when the estimation is sufficiently close to the real state we allow θ to decrease. Once<br />
this condition is satisfied, the local convergence of the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> is applicable<br />
<strong>and</strong> the noise is more efficiently smoothed.<br />
It is natural to perform the adaptation under the guise of a differential equation of the<br />
form<br />
˙θ = F(θ, I), (3.1)<br />
where I is some quantity reflecting the amplitude of the estimation error: the smaller I the<br />
smaller the error.<br />
We introduce a simple <strong>and</strong> natural concept of “innovation” for the quantity I. This innovation<br />
concept is different from the one that is usually used 1 . It allows us to reflect the<br />
estimation error more precisely.<br />
The convergence of this observer is established in the continuous time setting for multiple<br />
inputs, single output systems 2 . This choice is made for the sake of maintaining the simplicity<br />
of the exposure, because a few modifications have to be made in order to cope with multiple<br />
outputs systems. Such modifications are explained in Chapter 5.<br />
1 Most of the time innovation is defined as<br />
− I = y − h(z, u) for the continuous case, with the notations of Definition 15,<br />
− I = y − h(z −<br />
k ,uk) for the discrete case, with the notations of Definition 25.<br />
2 We have the generic case when nu > 1 <strong>and</strong> the non-generic case when nu = 1, C.f. Chapter 2.<br />
38
tel-00559107, version 1 - 24 Jan 2011<br />
3.1 Systems Under Consideration<br />
3.1 Systems Under Consideration<br />
We consider multiple input, single output nonlinear systems as in Section 2.4. We properly<br />
define all the constants: �<br />
dx<br />
dt<br />
y<br />
=<br />
=<br />
A (u) x + b (x, u)<br />
C (u) x<br />
(3.2)<br />
where x (t) ∈ X ⊂ Rn , X compact, y (t) ∈ R, <strong>and</strong> u(t) ∈ Uadm ⊂ Rnu is bounded for all times.<br />
The matrices A (u) <strong>and</strong> C (u) are:<br />
⎛<br />
0<br />
⎜<br />
A(u) = ⎜<br />
.<br />
⎝<br />
a2 (u)<br />
0<br />
0<br />
a3 (u)<br />
. ..<br />
· · ·<br />
. ..<br />
. ..<br />
0<br />
⎞<br />
0<br />
⎟<br />
. ⎟<br />
0 ⎟ ,<br />
⎟<br />
an (u) ⎠<br />
0 · · · 0<br />
C (u) = � a1 (u) 0 · · · 0 � ,<br />
with3 0
tel-00559107, version 1 - 24 Jan 2011<br />
Definition 30<br />
The adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> is the system:<br />
⎧<br />
⎪⎨<br />
dz<br />
dt<br />
⎪⎩<br />
= A(u)z + b(z, u) − S−1C ′ R −1<br />
θ (Cz − y(t))<br />
dS<br />
dt = −(A(u)+b∗ (z, u)) ′ S − S(A (u)+b∗ (z, u)) + C ′ R −1<br />
θ C − SQθS<br />
dθ<br />
dt = F(θ, Id (t)).<br />
3.3 Innovation<br />
(3.3)<br />
The functions F <strong>and</strong> Id will be defined later, in Section 3.3 <strong>and</strong> Lemma 42. The function<br />
Id is called the innovation. The initial conditions are z(0) ∈ χ, S(0) is symmetric positive<br />
definite, <strong>and</strong> θ(0) = 1.<br />
The function F has only to satisfy certain requirements stated precisely in Lemma 42.<br />
Therefore, several different choices for an adaptation function are possible.<br />
Roughly speaking, F(θ, Id (t)) should be such that if the estimation z (t) is far from x (t)<br />
then θ (t) increases (<strong>high</strong>-<strong>gain</strong> mode). Contrarily, if z (t) is close to x (t), θ goes to 1 (<strong>Kalman</strong><br />
<strong>filter</strong>ing mode). As it is clear from the proof of Theorem 36, this observer makes sense only<br />
when θ(t) ≥ 1, for all t ≥ 0. This is therefore another requirement that F(θ, Id) has to meet.<br />
The achievement of this behavior requires that we evaluate the quality of the estimation.<br />
This is the object of the next section.<br />
Remark 31<br />
1. Readers familiar with <strong>high</strong>-<strong>gain</strong> observers may notice that the matrices Rθ <strong>and</strong> Qθ are<br />
not exactly the same as in earlier articles such as [38, 47, 57]. The definitions developed<br />
here can also be substituted into those previous works without consequence.<br />
2. The hypothesis θ(0) = 1 may appear a bit atypical as compared to the results in [38, 57]<br />
for instance.<br />
− For technical reasons, the result of Lemma 39 depends on the initial value of θ,<br />
<strong>and</strong> θ(0) = 1 has no impact on α <strong>and</strong> β.<br />
− Secondly, note that in the case of large perturbations, θ will increase. In these<br />
instances, the initial value of θ is of little importance as we show in Lemma 42<br />
that the adaptation function can be chosen in such a way that θ reaches any large<br />
value in an arbitrary small time.<br />
− Finally, in the ideal case of no initial error, θ doesn’t increase which saves us from<br />
useless noise sensitivity due to a large <strong>high</strong>-<strong>gain</strong> initial value.<br />
3.3 Innovation<br />
The innovation Id is a measurement of the quality of the estimation. It is different 4 from<br />
the st<strong>and</strong>ard concept of innovation, which is based on a linearization around the estimated<br />
4 The same definition of innovation is used for moving horizon observers where the estimated state is the<br />
solution of a minimization problem. The cost function used here represents the proximity to the real state. It<br />
is the innovation we use, ([12, 95]).<br />
In related publications, observability is defined by the inequality of Lemma 33. In our case, the inequality is<br />
a consequence of the observability theory.<br />
40
tel-00559107, version 1 - 24 Jan 2011<br />
trajectory.<br />
Definition 32<br />
For a “forgetting horizon” d>0, the innovation is:<br />
� t<br />
Id (t) =<br />
t−d<br />
3.3 Innovation<br />
�y (t − d, x (t − d) , τ) − y (t − d, z (t − d) , τ)� 2 dτ (3.4)<br />
where y (t0,x0, τ) denotes the output of the system (3.2) at time τ with x (t0) =x0.<br />
Hence y (t − d, x (t − d) , τ) denotes y(τ), the output of the process. Notice that y (t − d, z (t − d) , τ)<br />
is not the output of the observer.<br />
For a good implementation, it is important to underst<strong>and</strong> the significance of this definition.<br />
Figure 3.1 illustrates the situation at time t. Innovation is obtained as the square of the<br />
L 2 distance between the black (plain) <strong>and</strong> the red (dot <strong>and</strong> dashed) curves. They respectively<br />
represent the output of the system on the time interval [t−d, t], <strong>and</strong> the prediction performed<br />
with z(t − d) as initial state.<br />
y(t)<br />
z(0)<br />
x(0)<br />
0<br />
0<br />
t-d<br />
Output traj.<br />
Estimated output<br />
y(t-d,z(t-d),t)<br />
t<br />
time<br />
Figure 3.1: The Computation of Innovation.<br />
The importance of innovation in this construction is explained by the following lemma.<br />
As we will see in Section 3.8, this is the cornerstone of the proof.<br />
Lemma 33<br />
Let x0 1 ,x02 ∈ Rn , <strong>and</strong> u ∈ Uadm. Let us consider the outputs y � 0,x0 1 , ·� <strong>and</strong> y � 0,x0 2 , ·�<br />
of system (3.2) with initial conditions respectively x0 1 <strong>and</strong> x02 . Then the following property<br />
(called persistent observability) holds:<br />
∀d >0, ∃λ 0 d > 0 such that ∀u ∈ L1 b (Uadm)<br />
�x 0<br />
1 − x 0<br />
2� 2 ≤ 1<br />
λ 0 d<br />
� d<br />
�y � 0,x 0 1, τ � − y � 0,x 0 2, τ � � 2 dτ. (3.5)<br />
0<br />
41
tel-00559107, version 1 - 24 Jan 2011<br />
Let us set x0 1 = z(t − d), <strong>and</strong> x02 = x(t − d) then Lemma 33 gives:<br />
�z(t − d) − x(t − d)� 2 ≤ 1<br />
λ0 � t<br />
�y (τ) − y (t − d, z (t − d) , τ)�<br />
d t−d<br />
2 dτ,<br />
or, equivalently,<br />
3.3 Innovation<br />
�z(t − d) − x(t − d)� 2 ≤ 1<br />
λ0 Id(t).<br />
d<br />
This is to say, that up to a multiplicative constant, innovation at time t upper bounds the<br />
estimation error at time t − d.<br />
Remark 34<br />
One could think that the adaptation scheme is likely to react with a delay time d when<br />
the estimation error is large. However, as is explained in Chapter 4, Remark 45, it may not<br />
always be the case in practice.<br />
Proof.<br />
Let x1 (t) =x x 0 1 ,u (t) <strong>and</strong> x2 (t) =x x 0 2 ,u (t) be the solutions of (3.2) with xi (0) = x 0 i ,<br />
i =1, 2. For any a ∈ [0, 1] ,<br />
b (ax2 + (1 − a) x1,u)<br />
� a ∂<br />
= b (x1,u)+<br />
0 ∂α b (α x2 + (1 − α) x1,u) dα<br />
� a ∂<br />
= b (x1,u)+<br />
∂x b (α x2 + (1 − α) x1,u) dα (x2 − x1) .<br />
Hence for a =1<br />
b (x2,u) − b (x1,u) =<br />
�� 1 ∂b<br />
0 ∂x (α x2<br />
=<br />
�<br />
+ (1 − α) x1,u) dα (x2 − x1)<br />
B (t)(x2 − x1) ,<br />
where B (t) = (bi,j) (i,j)∈{1,..,n} is a lower triangular matrix since<br />
Set ε = x1 − x2, <strong>and</strong> consider the system:<br />
⎧<br />
⎨<br />
⎩<br />
0<br />
b (x, u) =(b (x1,u) ,b(x1,x2,u) , . . . , b (x, u)) ′<br />
.<br />
˙ε = A (u) x1 + b (x1,u) − A (u) x2 − b (x2,u)<br />
= [A (u)+B (t)] ε<br />
yɛ = C (u) ε = a1 (u) ε1.<br />
It is uniformly observable5 as a result of the structure of B (t). Let us consider Ψ( t), the<br />
resolvent of the system, <strong>and</strong> the Gramm observability matrix Gd:<br />
� d<br />
Gd = Ψ (v) ′ C ′ CΨ (v) dv.<br />
5<br />
See [57] for instance, or compute the observability matrix<br />
�<br />
φO = C ′<br />
|(CA) ′<br />
| . . . |(CA n ) ′�′<br />
,<br />
<strong>and</strong> check the full rank condition for all inputs.<br />
0<br />
42
tel-00559107, version 1 - 24 Jan 2011<br />
3.3 Innovation<br />
Since �B (t)� ≤Lb each bi,j(t) can be interpreted as a bounded element of L∞ [0,d] (R). We<br />
�<br />
identify L∞ [0,d] (R)<br />
� n(n+1)<br />
2<br />
to L∞ �<br />
[0,d] R n(n+1) �<br />
2 <strong>and</strong> consider the function:<br />
Λ : L ∞ [0,d]<br />
�<br />
R n(n+1)<br />
2<br />
�<br />
× L ∞ [0,d] (Rnu ) −→ R +<br />
(bi,j) (j≤i)∈{1,..,n},u↩ → λmin (Gd)<br />
where λmin (Gd) is the smallest eigenvalue of Gd. Let us endow L ∞ [0,d]<br />
�<br />
R n(n+1)<br />
2<br />
�<br />
× L ∞ [0,d] (Rnu )<br />
with the weak-* topology6 <strong>and</strong> R has the topology induced by the uniform convergence. The<br />
weak-* topology on a bounded set implies uniform continuity of the resolvent, hence Λ is<br />
continuous7 .<br />
Since control variables are supposed to be bounded,<br />
Ω1 =<br />
�<br />
L ∞ [0,d]<br />
�<br />
R n(n+1)<br />
2<br />
�<br />
; �B� ≤Lb<br />
<strong>and</strong><br />
�<br />
Ω2 = u ∈ L ∞ [0,d] (Rn �<br />
);�u� ≤Mu<br />
are compact subsets. Therefore Λ (Ω1 × Ω2) is a compact subset of R which does not contain<br />
0 since the system is observable for any input. � Thus Gd is never singular. Moreover, for Mu<br />
sufficiently large,<br />
includes L∞ [0,d] (Uadm).<br />
�<br />
u ∈ L∞ [0,d] (Rn );�u� ≤Mu<br />
Hence, there exists λ0 d such that Gd ≥ λ0 d Id for any u <strong>and</strong> any matrix B(t) as above.<br />
Since<br />
y � 0,x 0 1, τ � − y � 0,x 0 2, τ � = CΨ (τ) x 0 1 − CΨ (τ) x 0 2,<br />
then � �<br />
�y 0<br />
0,x1, τ � − y � 0,x 0 2, τ �� �2 = � � 0<br />
CΨ (τ) x1 − CΨ (τ) x 0 �<br />
�<br />
2<br />
2 ,<br />
<strong>and</strong> finally<br />
� d �<br />
�y<br />
0<br />
� 0,x 0 1, τ � − y � 0,x 0 2, τ �� �2 dτ = � x0 1 − x0 � ′ �<br />
2 Gd x0 1 − x0 �<br />
2<br />
≥ λ0 �<br />
�x d<br />
0 1 − x0 �<br />
�<br />
2<br />
2 .<br />
�<br />
(3.6)<br />
Remark 35<br />
As is clear from the proof, we could have used both linearizations along the trajectories x1<br />
<strong>and</strong> x2 in order to define I. However, that definition would lead to the same inequality. In<br />
addition our definition is more practical to implement.<br />
The solution of the Riccati equation can also not be used to obtain an information equivalent<br />
to innovation. Here, to compute our innovation, we make an exact prediction (without<br />
the correction term that could disturb the estimation).<br />
6 The definition of the weak-* topology is given in Appendix A.<br />
7 This property is explained in Appendix A.<br />
43
tel-00559107, version 1 - 24 Jan 2011<br />
3.4 Main Result<br />
3.4 Main Result<br />
The exponential convergence of the adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> is expressed<br />
in the theorem below.<br />
Theorem 36<br />
For any time T ∗ > 0 <strong>and</strong> any ε ∗ > 0, there exist 0 < d < T ∗ <strong>and</strong> a function F (θ, Id) such<br />
that, for all times t ≥ T ∗ <strong>and</strong> any initial state couple (x0,z0) ∈ χ 2 :<br />
�x (t) − z (t)� 2 ≤ ε ∗ e −a (t−T ∗ )<br />
where a>0 is a constant (independent from ε ∗ ).<br />
This theorem can be expressed in two different ways: with or without a term �ɛ0� 2 in the<br />
upper bound. The bound of Theorem 36 was presented in [23] <strong>and</strong> [22] 8 . The expression we<br />
use here should be interpreted to mean that the square of the error can be made arbitrarily<br />
small in an arbitrary small time. For the sake of completeness, we develop the other inequality<br />
in Remark 44.<br />
The proof is a Lyapunov stability analysis which requires several preliminary computations<br />
<strong>and</strong> additional results. In order to facilitate comprehension, we divide the proof into<br />
several parts:<br />
1. the computation of several preliminary inequalities, in particular the expression of the<br />
Lyapunov function we want to study,<br />
2. the derivation of the properties of the Riccati matrix S,<br />
3. the statement of several intermediary lemmas, among which is the lemma that states<br />
the existence of eligible adaptive functions, <strong>and</strong> finally<br />
4. the articulation of the proof.<br />
We begin with the computation of some preliminary inequalities in Section 3.5.<br />
3.5 Preparation for the Proof<br />
Remember 9 that θ ≥ 1, for all t ≥ 0.<br />
We denote by z the time dependent state variable of the observer.<br />
The estimation error is ε = z − x.<br />
We consider the change of variables ˜x = ∆x, <strong>and</strong><br />
− ˜z = ∆z, <strong>and</strong> ˜ε = ∆ε,<br />
− ˜ S = ∆ −1 S∆ −1 ,<br />
8 The other bound is<br />
�x (t) − z (t)� 2 ≤�ε0� 2 ε ∗ e −αqm(t−τ) .<br />
9 This is one of the requirements F(θ, Id) have to meet. Existence of such a function is shown in Lemma 42.<br />
44
tel-00559107, version 1 - 24 Jan 2011<br />
− ˜ b(., u) =∆b(∆ −1 ., u),<br />
− ˜ b ∗ (·,u)=∆b ∗ � ∆ −1 ·,u � ∆ −1 .<br />
3.5 Preparation for the Proof<br />
Since C = � a1(u) 0 . . . 0 � , <strong>and</strong> ∆= diag �� 1, θ −1 , ...,θ −(n−1)�� then C∆ = C. We<br />
have the following identity for the A(u) <strong>and</strong>∆:<br />
⎛<br />
⎞ ⎛<br />
0 a2 (u) 0 · · · 0 1 0 0 · · · 0<br />
⎜<br />
.<br />
⎜ 0 a3 (u) ..<br />
⎟ ⎜<br />
. ⎟ ⎜ 1<br />
⎟ ⎜ 0 θ 0 .<br />
A(u)∆= ⎜<br />
.<br />
⎜<br />
.<br />
.. . .. ⎟ ⎜<br />
0 ⎟ ⎜<br />
1<br />
⎟ ⎜ 0 0 θ<br />
⎝<br />
0 an (u) ⎠ ⎜<br />
⎝<br />
0 · · · 0<br />
2<br />
. .. .<br />
.<br />
. .. . .. 0<br />
1<br />
0 · · · · · · 0 θn−1 ⎞<br />
⎟<br />
⎠<br />
⎛ a2(u)<br />
0 θ 0 · · · 0<br />
⎜<br />
a3(u)<br />
⎜ 0 θ<br />
= ⎜<br />
⎝<br />
2<br />
. .. .<br />
.<br />
. .. . .. 0<br />
an(u)<br />
0 θn−1 ⎞<br />
⎟ =<br />
⎟<br />
⎠<br />
0 · · · 0<br />
1<br />
θ ∆A(u).<br />
This relation leads to the set of equalities:<br />
(a) ∆A = θA∆, (b) A ′<br />
∆ = θ∆A ′<br />
,<br />
(c) A∆−1 = θ∆−1A, (d) ∆−1A ′<br />
= θA ′<br />
∆−1 .<br />
Because we want to express the time derivative of ˜ε we need to know the time derivative of<br />
∆, as θ is time dependent. We simply write<br />
d∆<br />
dt =<br />
⎛<br />
d(1)<br />
dt 0 · · · 0<br />
⎜ � �<br />
⎜ d 1<br />
⎜ 0 dt θ<br />
.<br />
⎜<br />
⎝<br />
.<br />
.<br />
..<br />
�<br />
0<br />
d 1<br />
0 · · · 0 dt θn−1 ⎞<br />
⎟<br />
⎠<br />
�<br />
=<br />
⎛<br />
0 0 · · · 0<br />
⎜ 0 −<br />
⎜<br />
⎝<br />
˙ θ<br />
θ2 ⎞<br />
⎟<br />
. ⎟<br />
.<br />
. .. ⎟<br />
0 ⎠ ,<br />
0 · · · 0 − (n−1) ˙ θ<br />
θ n<br />
which can be rewritten as a multiplication of matrices with the use of<br />
N = diag ({0, 1, 2, ..., n − 1}). We obtain the two identities10 :<br />
d<br />
F(θ,I)<br />
(a) dt (∆) =− θ N∆ (b) d<br />
dt<br />
(3.7)<br />
� ∆ −1 � = F(θ,I)<br />
θ N∆−1 . (3.8)<br />
The dynamics of the error are given by:<br />
�<br />
˙ε =˙z − ˙x = A (u) − S −1 C ′<br />
R −1<br />
θ C<br />
�<br />
ε + b (z, u) − b (x, u) ,<br />
<strong>and</strong> the error dynamics after the change of variables are:<br />
d˜ε<br />
dt<br />
d∆ = dt ε + ∆˙ε<br />
= − ˙ θ<br />
θ<br />
10 remember that ˙ θ = F(θ, I).<br />
N∆ε + ∆<br />
�<br />
A (u) − S−1C ′<br />
R −1<br />
θ C<br />
�<br />
ε + ∆( b (z, u) − b (x, u))<br />
= − ˙ θ<br />
θ N ˜ε + θA (u)˜ε − θ∆S−1∆∆−1C ′<br />
R−1C∆−1∆ε �<br />
= θ − F(θ,I)<br />
θ2 N ˜ε + A˜ε − ˜ S−1C ′<br />
R−1C ˜ε + 1<br />
� ��<br />
˜b<br />
θ (˜z, u) − ˜b (˜x, u) .<br />
45<br />
+∆b � ∆ −1 ˜z, u � − ∆b � ∆ −1 ˜x, u �<br />
(3.9)
tel-00559107, version 1 - 24 Jan 2011<br />
The Riccati equation turns into<br />
d ˜ S<br />
dt = ˙ θ<br />
θ N∆−1 S∆ −1 + ˙ θ<br />
3.5 Preparation for the Proof<br />
θ ∆−1S∆−1N − ∆−1 (A + b∗ (z, u)) ′<br />
S∆−1 −∆−1S (A + b∗ (z, u))∆ −1 + ∆−1C ′<br />
= ˙ �<br />
θ<br />
θ N ˜ S + ˜ �<br />
SN − � A∆−1 + b∗ (z, u) ∆−1�′ ∆ ˜ S<br />
R −1<br />
θ C∆−1<br />
−∆ −1 SQθS∆ −1<br />
− ˜ S∆ � A∆−1 + b∗ (z, u) ∆−1� + C ′<br />
�<br />
˙θ<br />
= θ θ2 �<br />
N ˜ S + ˜ � �<br />
SN − A ′ �<br />
S ˜ + SA ˜ + C ′<br />
R−1C − ˜ SQ˜ S<br />
− ˜ S∆b∗ (z, u) ∆−1 − ∆−1b∗′ (z, u) ∆ ˜ �<br />
S<br />
�<br />
F(θ,I)<br />
= θ θ2 �<br />
N ˜ S + ˜ � �<br />
SN − A ′ �<br />
S ˜ + SA ˜ + C ′<br />
R−1C − ˜ SQ˜ S<br />
�<br />
.<br />
The derivative of the Lyapunov function �ε ′ � S�ε is<br />
d˜ɛ ′ �<br />
S˜ɛ ˜<br />
dt = θ − F(θ,I)<br />
= θ<br />
R −1<br />
θ C − ˜ S∆Qθ∆ ˜ S<br />
− 1<br />
θ ˜ S ˜ b ∗ (˜z, u) − 1<br />
θ ˜ b ∗′<br />
(˜z, u) ˜ S<br />
θ2 N˜ɛ + A˜ɛ − ˜ S−1C ′<br />
R−1C˜ɛ + 1<br />
� ��′<br />
˜b<br />
θ (˜z, u) − ˜b (˜x, u) ˜S˜ɛ<br />
+θ˜ɛ ′ � F(θ,I)<br />
θ2 �<br />
N ˜ S + ˜ � �<br />
SN − A ′ �<br />
S ˜ + SA ˜ + C ′<br />
R−1C − ˜ SQ˜ S<br />
− 1<br />
�<br />
˜S ˜<br />
θ b∗ (˜z, u)+ ˜b ∗ ′<br />
(˜z, u) ˜ ��<br />
S ˜ɛ<br />
+θ˜ɛ ′ �<br />
S˜<br />
− F(θ,I)<br />
θ2 N˜ɛ + A˜ɛ − ˜ S−1C ′<br />
R−1C˜ɛ + 1<br />
� ��<br />
˜b<br />
θ (˜z, u) − ˜b (˜x, u)<br />
� ��<br />
˜b (˜z, u) − ˜b (˜x, u) − ˜b ∗ (˜z, u)˜ɛ .<br />
�<br />
−˜ɛ ′<br />
C ′<br />
R −1 C˜ɛ − ˜ɛ ′ ˜ SQ ˜ S˜ɛ + 2<br />
θ ˜ɛ′ ˜ S<br />
We consider that Q ≥ qm Id, <strong>and</strong> since �ε ′<br />
C ′<br />
R −1 C�ε ≥ 0<br />
(3.10)<br />
(3.11)<br />
d<br />
�<br />
�ε<br />
dt<br />
′ �<br />
S�ε � ≤−θqm�ε ′ � �<br />
S� 2 ′<br />
�ε +2�ε �S ˜b (�z, u) − ˜b (�x, u) − ˜∗ b (�z, u) �ε . (3.12)<br />
The theorem is proven using the inequality (3.12), which requires some knowledge of the<br />
properties of S. We can note that the equality (3.10) has a strong dependency on θ, which<br />
we must remove in order to derive properties for S. Indeed, for the moment we don’t know<br />
which values θ should reach during runtime. To determine these values, we introduce the<br />
time reparametrization dτ = θ (t) dt, or equivalently τ = � t<br />
0 θ (ν) dν. We denote:<br />
− ¯x (τ) = ˜x(t), ¯z (τ) = ˜z(t), <strong>and</strong> ε (τ) =�ε (t), <strong>and</strong><br />
− ¯ θ (τ) =θ(t), ū (τ) =u(t), <strong>and</strong> S (τ) = � S (t).<br />
We obtain the time derivative with respect to the time scale, τ, using the simple calculation:<br />
Therefore<br />
d¯ɛ<br />
dτ<br />
d¯ε<br />
dτ<br />
= d˜ε (t)<br />
dt<br />
dt<br />
dτ<br />
= 1<br />
θ (t)<br />
d˜ε (t)<br />
.<br />
dt<br />
I)<br />
= −F(θ,<br />
¯θ 2<br />
N ¯ε + A¯ε − ¯ S −1 C ′<br />
R −1 C ¯ε + 1<br />
� �<br />
˜b<br />
¯θ<br />
(¯z,ū) − ˜b (¯x, ū)<br />
46
tel-00559107, version 1 - 24 Jan 2011<br />
such that<br />
d ¯ S<br />
dt =<br />
F(θ, I)<br />
¯θ 2<br />
� � �<br />
NS ¯ + SN ¯ − A ′ �<br />
S ¯ + SA ¯<br />
3.6 Boundedness of the Riccati Matrix<br />
− 1<br />
¯θ<br />
+ C ′<br />
R −1 C − ¯ SQ¯ S (3.13)<br />
�<br />
.<br />
� ¯S ˜ b ∗ (¯z,ū)+ ˜ b ′ ∗ (¯z,ū) ¯ S<br />
We complete the description of the observer in the τ time scale with the equation<br />
d¯ θ<br />
dτ = F(¯ θ, Ī)<br />
¯θ<br />
.<br />
This last set of equations is established in order to investigate the properties of the Riccati<br />
matrix, particularly the fact that it is bounded (Cf. Section 3.6).<br />
Remark 37<br />
The Lipstchitz constant of the vector field b(., u) is the same in the x(t), ˜x(t) <strong>and</strong> ¯x(τ)<br />
coordinates. It occurs quite naturally in the single output case but implies a special definition<br />
of the observer in the multiple output case. Consequently this fact is proven in Chapter 5,<br />
Lemma 51, for systems having multiple outputs.<br />
3.6 Boundedness of the Riccati Matrix<br />
The Riccati matrix S(t) has some very important properties:<br />
− S(t) can be upper <strong>and</strong> lower bounded by matrices of the form c.Id, <strong>and</strong><br />
− if S(0) is symmetric definite positive, then S(t) is also symmetric definite positive for<br />
all times.<br />
Those � properties are established in the book [57], with the difference being that the term<br />
�<br />
�<br />
� F(θ,I)<br />
�<br />
�<br />
�<br />
� doesn’t appear in the Riccati equation (Cf. Section 2.4 of the 6th chapter of the<br />
θ 2<br />
book), <strong>and</strong> that the result there is also only valid for times t ≥ T ∗ , for some T ∗ > 0. As we<br />
will see in the present section, when θ(0) is set to 1 we can say a little bit more.<br />
Lemma 38 ([57])<br />
�<br />
�<br />
Let us consider the Riccati equation (3.13). If the functions ai (u (t)), ��b ∗ i,j (z,u)<br />
� �<br />
� �<br />
�, �<br />
� F(θ,I)<br />
θ 2<br />
�<br />
�<br />
�<br />
�are smaller than aM > 0, <strong>and</strong> if ai (u (t)) >am > 0 then for all τ0 > 0 there exist two constants<br />
0 < �α < � β (depending on τ0, aM, am) such that, for all τ ≥ τ0, the solution of the Riccati<br />
equation satisfies the inequality<br />
�α Id ≤ S (τ) ≤ � β Id.<br />
This first relation is <strong>extended</strong> to all times t>0 via a second lemma.<br />
Lemma 39<br />
We still consider the Riccati equation (3.13) with S (0) = S0 being a symmetric definite<br />
positive matrix taken in a compact subset of the form aId ≤ S0 ≤ bId, 0 < a < b <strong>and</strong><br />
θ (0) = 1. Then there exist two constants 0 < α 0 (<strong>and</strong> therefore α Id ≤ � S (t) ≤ β Id for all t ≥ 0).<br />
47
tel-00559107, version 1 - 24 Jan 2011<br />
3.6 Boundedness of the Riccati Matrix<br />
Proof.<br />
We denote by |.|, the Frobenius norm of matrices: |A| = � T race(A ′ A). Recall that for<br />
two symmetric semi-positive matrices A, B such that 0 ≤ A ≤ B we have11 :0≤ |A| ≤| B|.<br />
Choose τ0 > 0 <strong>and</strong> apply Lemma 38 to obtain �α <strong>and</strong> � β such that �α Id ≤ S (τ) ≤ � β Id for<br />
all τ ≥ τ0. In order to extend the inequality for 0 ≤ τ ≤ τ0, we start from:<br />
� τ dS (v)<br />
S (τ) = S0 +<br />
0 dτ dv<br />
⎡<br />
� �<br />
τ<br />
= S0 + ⎣− A(u)+<br />
0<br />
�b ∗ (z,u) F(θ, I)<br />
−<br />
θ θ 2 N<br />
�′<br />
S<br />
�<br />
−S A(u)+ �b ∗ (z,u) F(θ,I)<br />
−<br />
θ θ 2 �<br />
N + C ′<br />
R−1 �<br />
C − SQS dv.<br />
As θ (0) = 1, then S (0) = S (0) = S0, which together with SQS > 0 (symmetric semipositive)<br />
leads to<br />
⎡<br />
� �<br />
τ<br />
S (τ) ≤ S0 + ⎣− A(u)+<br />
0<br />
�b ∗ (z,u) F(θ, I)<br />
−<br />
θ θ 2 N<br />
�′<br />
S<br />
<strong>and</strong><br />
�<br />
� � τ �<br />
�S (τ) � ≤ |S0| + 2<br />
0<br />
with AM = sup (|A(u(τ))|) <strong>and</strong><br />
[0;τ0]<br />
−S<br />
�<br />
A(u)+ � b ∗ (z,u)<br />
θ<br />
F(θ,I)<br />
−<br />
θ 2 �<br />
N + C ′<br />
R−1 �<br />
C dv,<br />
�<br />
�<br />
AM + B + �<br />
F(θ, I)<br />
�<br />
θ 2<br />
�<br />
�<br />
�<br />
� |N|<br />
�<br />
��S � �<br />
� �<br />
+ �C ′<br />
R −1 �<br />
�<br />
C�<br />
dv<br />
�<br />
�<br />
��b ∗ �<br />
�<br />
(z,u) � ≤ B. Then<br />
�<br />
�S � �<br />
� �<br />
≤ |S0| + �C ′<br />
R −1 � � τ<br />
�<br />
C�<br />
τ0 + 2s � �<br />
�S� dv,<br />
with s = aM |N| + AM + B. Applying Gronwall’s lemma gives us for all 0 ≤ τ ≤ τ0,<br />
�<br />
�S � � �<br />
� �<br />
≤ |S0| + �C ′<br />
R −1 � �<br />
�<br />
C�<br />
τ0 e 2sτ<br />
� �<br />
�<br />
≤ |S0| + �C ′<br />
R −1 � �<br />
�<br />
C�<br />
τ0 e 2sτ0<br />
�<br />
≤ b √ �<br />
�<br />
n + �C ′<br />
R −1 � �<br />
�<br />
C�<br />
τ0 e 2sτ0<br />
= β1.<br />
In the same manner we denote P = S −1 , <strong>and</strong> use the equation<br />
dP<br />
dt<br />
= P<br />
�<br />
A(u)+ � b ∗ (z,u)<br />
θ<br />
−<br />
F(θ, I)<br />
θ 2 N<br />
�′ �<br />
+ A(u)+ �b ∗ (z,u)<br />
−<br />
θ<br />
11 See Appendix B.1 for details of establishing this fact.<br />
48<br />
0<br />
F(θ, I)<br />
θ 2 N<br />
�<br />
P<br />
(3.14)<br />
− PC ′<br />
R −1 CP + Q
tel-00559107, version 1 - 24 Jan 2011<br />
to obtain, for all 0 ≤ τ ≤ τ0, <strong>and</strong> with �s >0:<br />
�<br />
�P � � ≤ (|P0| + |Q| τ0) e2�sτ0 1 =<br />
≤ � 1<br />
a<br />
√ n + |Q| τ0<br />
� α1<br />
2�sτ0 1 e =<br />
From the inequalities (3.14) <strong>and</strong> (3.15) we deduce that 12 for all 0 ≤ τ ≤ τ0<br />
We now define<br />
such that for all τ ≥ 0<br />
α1 Id ≤ S (τ) ≤ β1 Id.<br />
α1 .<br />
�<br />
α = min (a,α 1, �α) <strong>and</strong> β = max b,β 1, � �<br />
β<br />
α Id ≤ S (τ) ≤ β Id.<br />
This relation is therefore true also in the t time scale.<br />
3.7 Technical Lemmas<br />
3.7 Technical Lemmas<br />
(3.15)<br />
Three lemmas are proposed in the following section. The two first are purely technical <strong>and</strong><br />
are used in the very last section of the present chapter. They are from [38]. Their respective<br />
proofs are reproduced in Appendix B.2.<br />
The third lemma concerns the adaptation function. It basically shows that the set of<br />
c<strong>and</strong>itate adaptation functions for our adaptive <strong>high</strong>-<strong>gain</strong> observer is not empty. The proof<br />
is constructive: we display such a function.<br />
Lemma 40 ([38])<br />
Let {x (t) > 0,t≥ 0} ⊂ R n be absolutely continuous, <strong>and</strong> satisfying:<br />
12 Trivially, we have<br />
However<br />
This is the reason why we need the relation:<br />
dx(t)<br />
dt ≤−k1x + k2x √ x,<br />
�S� ≤β1 ⇒ S ≤ β1Id.<br />
α1 ≤�S� � α1Id ≤ S.<br />
�P �≤ 1<br />
α1<br />
⇒�P �≤ 1<br />
<strong>and</strong> then we use the following matrix property (see Appendix B.1):<br />
in order to end up with<br />
α1<br />
(P ≥ Q>0) ⇒ � Q −1 ≥ P −1 > 0 � .<br />
α1Id ≤ S.<br />
49
tel-00559107, version 1 - 24 Jan 2011<br />
for almost all t>0, for k1, k2 > 0. Then, if x (0) < k2 1<br />
4k2 , we have<br />
2<br />
x(t) ≤ 4 x (0) e −k1t .<br />
3.7 Technical Lemmas<br />
Lemma 41 ([38])<br />
Consider �b (˜z) − �b (˜x) − �b ∗ (˜z)˜ε as in the inequality (3.12) (omitting to write u in ˜ �<br />
b) <strong>and</strong><br />
�<br />
suppose θ ≥ 1. Then ��b (˜z) − �b (˜x) − �b ∗ �<br />
�<br />
(˜z)˜ε � ≤ Kθn−1 �˜ε� 2 , for some K>0.<br />
Lemma 42 (adaptation function)<br />
For any ∆T >0, there exists a positive constant M(∆T ) such that:<br />
− for any θ1 > 1,<strong>and</strong><br />
− any γ1 > γ0 > 0,<br />
there is a function F (θ, I) such that the equation<br />
˙θ = F (θ, I (t)) , (3.16)<br />
for any initial value 1 ≤ θ (0) < 2θ1, <strong>and</strong> any measurable positive function I (t), has the<br />
properties:<br />
1. that there is a unique solution θ (t) defined for all t ≥ 0, <strong>and</strong> this solution satisfies<br />
1 ≤ θ (t) < 2θ1,<br />
�<br />
�<br />
2. � F(θ,I)<br />
�<br />
�<br />
� ≤ M,<br />
θ 2<br />
3. if I (t) ≥ γ1 for t ∈ [τ,τ + ∆T ] then θ (τ + ∆T ) ≥ θ1,<br />
4. while I (t) ≤ γ0, θ (t) decreases to 1.<br />
Remark 43<br />
The main property is that if I (t) ≥ γ1, θ (t) can reach any arbitrarily large θ1 in an<br />
arbitrary small time ∆T , <strong>and</strong> that this property can be achieved by a function satisfying<br />
F (θ, I) ≤ Mθ 2 with M independent from θ1 (but dependant from ∆T ).<br />
Proof.<br />
Let F0 (θ) be defined as follows:<br />
� 1<br />
F0 (θ) = ∆T θ2 if θ ≤ θ1<br />
2<br />
(θ − 2θ1) if θ >θ 1<br />
(the choice 2θ1 is more or less arbitrary) <strong>and</strong> let us consider the system<br />
�<br />
˙θ<br />
θ (0)<br />
=<br />
=<br />
F0 (θ)<br />
1<br />
.<br />
Simple computations give the solution:<br />
⎧<br />
⎪⎨<br />
∆T<br />
θ (t) =<br />
∆T − t<br />
⎪⎩<br />
θ1∆T<br />
2θ1 −<br />
θ1t + (2 − θ1)∆T<br />
while θ ≤ θ1<br />
when θ >θ 1.<br />
1<br />
∆T<br />
50
tel-00559107, version 1 - 24 Jan 2011<br />
3.7 Technical Lemmas<br />
Therefore θ(t) reaches θ1 at time t 0. The function µ is such that14 :<br />
⎧<br />
⎨ 1 if I ≥ γ1<br />
µ (I) = ∈ [0, 1]<br />
⎩<br />
0<br />
if γ0 ≤ I ≤ γ1<br />
if I ≤ γ0.<br />
We claim that all properties are satisfied.<br />
If I ≥ γ1, F (θ, I) =F0 (θ) ensuring Property 3, (refer to the beginning of the proof).<br />
Conversely, if I ≤ γ0, F (θ, I) =λ (1 − θ) then Property 4 is fulfiled. Moreover, because<br />
F (θ, I) is Lipschitz, Property 1 is verified. Let us check property 2 :<br />
�<br />
�<br />
�<br />
F (θ, I)<br />
� θ2 �<br />
�<br />
�<br />
� ≤<br />
�<br />
�F0<br />
�<br />
(θ)<br />
� θ2 �<br />
�<br />
�<br />
� +<br />
�<br />
�<br />
�<br />
λ (1 − θ)<br />
� θ2 �<br />
�<br />
�<br />
� . (3.17)<br />
The first term satisfies:<br />
�<br />
�<br />
− θ ≤ θ1, � F0(θ)<br />
�<br />
�<br />
� = 1<br />
θ 2<br />
θ 2<br />
�<br />
�<br />
− � F0(θ)<br />
�<br />
�<br />
� = 1<br />
∆T<br />
∆T<br />
, <strong>and</strong><br />
� �2 θ−2θ1<br />
θ ≤ 1<br />
∆T if θ ≥ θ1 (<strong>and</strong> θ < 2θ1).<br />
The second term satisfies:<br />
�<br />
�<br />
�<br />
λ (1 − θ)<br />
� θ2 �<br />
�<br />
�<br />
�<br />
− 1 1<br />
� = λθ = λ<br />
θ2 4 −<br />
θ2 4 − θ +1<br />
θ2 �<br />
⎛<br />
= λ ⎝ 1<br />
4 −<br />
� � ⎞<br />
θ<br />
2<br />
2 − 1<br />
⎠ ≤<br />
θ<br />
λ<br />
4 .<br />
Property 2 is satisfied because of (3.17) with M = 1<br />
∆T<br />
13 When 1 < θ0 ≤ θ1 the solution to equation (5.11) is:<br />
And for θ1 < θ0 < 2θ1 the solution of (5.11) is:<br />
+ λ<br />
4 .<br />
�<br />
∆T θ0<br />
θ(t) =<br />
when θ(t) ≤ θ1<br />
∆T −θ0t<br />
θ(t) = 2θ1 −<br />
when θ(t) > θ1.<br />
θ(t) =2θ1 −<br />
∆T θ0θ1<br />
θ0θ1t+(2θ0−θ1)∆T<br />
∆T (2θ1 − θ0)<br />
∆T + t(2θ1 − θ0) .<br />
The conclusion remains the same: if θ0 < θ1, θ1 is reached in a time smaller than∆ T , <strong>and</strong> remains below 2θ1<br />
in all cases.<br />
14 Such a function is explicitely defined in Section 4.2.1 of Chapter 4.<br />
51
tel-00559107, version 1 - 24 Jan 2011<br />
3.8 Proof of the Theorem<br />
3.8 Proof of the Theorem<br />
First of all let us choose a time horizon d (in Id (t)) <strong>and</strong> a time T such that 0 < d < T < T ∗ .<br />
Set∆ T = T − d. Let λ be a strictly positive number <strong>and</strong> M = 1<br />
∆T<br />
+ λ<br />
4<br />
as in Lemma 42. Let<br />
α <strong>and</strong> β be the bounds from Lemma 39.<br />
From the preparation for the proof, inequality (3.12) can be written, using Lemma 39<br />
(i.e. using ˜ S ≥ α Id), <strong>and</strong> omitting the control variable u<br />
d˜ε ′ ˜ S˜ε (t)<br />
dt<br />
≤−αqmθ˜ε ′ � �<br />
S˜ε ˜ ′<br />
(t) + 2˜ε S˜<br />
˜b (˜z) − ˜b (˜x) − ˜∗ b (˜z)˜ε . (3.18)<br />
From (3.18) we can deduce two inequalities: the first one, local, will be used when ˜ε ′ ˜ S˜ε (t)<br />
is small, whatever the value of θ. The second one, global, will be used mainly when ˜ε ′ ˜ S˜ε (t)<br />
is not in a neighborhood of 0 <strong>and</strong> θ is large.<br />
Using � �<br />
�� ˜b (˜z) − ˜b (˜x) − ˜∗ �<br />
b (˜z)˜ε � ≤ 2Lb �˜ε� ,<br />
together with α Id ≤ ˜ S ≤ β Id (Lemma 39), (3.18) becomes the “global inequality”<br />
d˜ε ′ ˜ S˜ε (t)<br />
dt<br />
≤<br />
�<br />
−αqmθ +4 β<br />
α Lb<br />
�<br />
˜ε ′ S˜ε ˜ (t) . (3.19)<br />
Because of Lemma 41, we obtain the“local inequality” as follows:<br />
�<br />
�<br />
�˜b (˜z) − ˜b (˜x) − ˜b ∗ �<br />
�<br />
(˜z)˜ε � ≤ Kθ n−1 �˜ε� 2 .<br />
Since 1 ≤ θ ≤ 2θ1, inequality (3.18) implies<br />
Since �˜ε� 3 =<br />
� 3<br />
�˜ε�<br />
2� 2<br />
d˜ε ′ ˜ S˜ε (t)<br />
dt<br />
≤<br />
≤−αqm˜ε ′ S˜ε ˜ (t)+2K (2θ1) n−1 � �<br />
�<br />
�S˜ �<br />
� �˜ε� 3 .<br />
� 1<br />
α ˜ε′ ˜ S˜ε (t)<br />
� 3<br />
2<br />
, the inequality becomes<br />
˜ε ′ S˜ε ˜ (t) ≤−αqm˜ε ′ S˜ε ˜<br />
2K (2θ1)<br />
(t)+ n−1 β<br />
α 3<br />
2<br />
Let us apply 15 Lemma 40 which states that if<br />
then, for any t ≥ τ,<br />
˜ε ′ ˜ S˜ε (τ) ≤<br />
α5q2 m<br />
16 K2 (2θ1) 2n−2 ,<br />
β2 ˜ε ′ ˜ S˜ε (t) ≤ 4˜ε ′ ˜ S˜ε (τ)e −αqm(t−τ) .<br />
�<br />
˜ε ′ � 3<br />
2<br />
S˜ε ˜ (t) . (3.20)<br />
15 This lemma cannot be applied if we use Qθ <strong>and</strong> R instead of Qθ <strong>and</strong> Rθ in the definition of the observer<br />
as it is done in [38]. This is due to the presence of a F<br />
θ<br />
for all times.<br />
term that prevents parameters k1 <strong>and</strong> k2 to be positive<br />
52
tel-00559107, version 1 - 24 Jan 2011<br />
3.8 Proof of the Theorem<br />
Consequently, provided there is a real γ such that<br />
�<br />
1 αε∗ γ ≤ 2n−2 min<br />
(2θ1) 4 , α5q2 m<br />
16 K2β 2<br />
�<br />
, (3.21)<br />
then ˜ε ′ ˜ S˜ε (τ) ≤ γ implies, for any t ≥ τ,<br />
˜ε ′ ˜ S˜ε (t) ≤<br />
αε ∗<br />
(2θ1) 2n−2 e−αqm(t−τ) . (3.22)<br />
Note that excluding the change of variables, we have arrived at the end result.<br />
From (3.19):<br />
˜ε ′ ˜ S˜ε (T ) ≤ ˜ε ′ ˜ S˜ε (0) e (−αqm+4 β<br />
α Lb)T ,<br />
<strong>and</strong> if we suppose θ ≥ θ1 for t ∈ [T, T ∗ ], T ∗ >T, using (3.19) a<strong>gain</strong>:<br />
where<br />
Now, we choose θ1 <strong>and</strong> γ for<br />
˜ε ′ ˜ S˜ε (T ∗ ) ≤ ˜ε ′ ˜ S˜ε (0) e (−αqm+4 β<br />
α Lb)T e (−αqmθ1+4 β<br />
α Lb)(T ∗ −T )<br />
≤ M0e −αqmT e<br />
M0e −αqmT e<br />
β<br />
4 LbT ∗<br />
α e−αqmθ1(T ∗−T ) ,<br />
M0 = sup<br />
x,z∈X<br />
ε ′ Sε (0) . (3.23)<br />
β<br />
4 LbT ∗<br />
α e −αqmθ1(T ∗−T )<br />
≤ γ (3.24)<br />
<strong>and</strong> (3.21) to be satisfied simultaneously, which is possible since e−cte×θ1 cte <<br />
θ 2n−2<br />
1<br />
enough. Let us chose a function F as in Lemma 42 with∆ T = T − d <strong>and</strong> γ1 = λ0 dγ β .<br />
We claim that there exists τ ≤ T ∗ such that ˜ε ′ ˜ S˜ε (τ) ≤ γ.<br />
Indeed, if ˜ε ′ ˜ S˜ε (τ) > γ for all τ ≤ T ∗ because of Lemma 33:<br />
γ < ˜ε ′ S˜ε ˜ 2 2 β<br />
(τ) ≤ β �˜ε (τ)� ≤ β �ε (τ)� ≤<br />
λ0 Id (τ + d) .<br />
d<br />
for θ1 large<br />
Therefore, Id (τ + d) ≥ γ1 for τ ∈ [0,T ∗ ] <strong>and</strong> hence Id (τ) ≥ γ1 for τ ∈ [d, T ∗ ]. Thus, we have<br />
θ (t) ≥ θ1 for t ∈ [T, T ∗ ] which provides a contradiction (i.e. ˜ε ′ ˜ S˜ε (T ∗ ) ≤ γ) thanks to (3.8)<br />
<strong>and</strong> (3.24).<br />
Finally, for t ≥ τ, using (3.22)<br />
which proves the theorem.<br />
�ε (t)� 2 ≤ (2θ1) 2n−2 �˜ε (t)� 2<br />
2n−2<br />
(2θ1)<br />
≤ α<br />
≤ ε∗e−αqm(t−τ) 53<br />
˜ε ′ ˜ S˜ε (t)<br />
(3.25)
tel-00559107, version 1 - 24 Jan 2011<br />
3.9 Conclusion<br />
Remark 44 (alternative result)<br />
We propose a modification of the end of the proof that allows �ε(0)� 2 to appear in the<br />
final inequality.<br />
Consider equation (3.21) <strong>and</strong> replace it with:<br />
�<br />
1 αε∗ γ ≤ 2n−2 min<br />
(2θ1) 4β , α5q2 m<br />
16 K2β 2<br />
�<br />
. (3.26)<br />
Then equation (3.22) becomes:<br />
˜ε ′ ˜ S˜ε (t) ≤<br />
αε ∗<br />
β (2θ1) 2n−2 e−αqm(t−τ) . (3.27)<br />
Now replace the definition of M0 given in equation (5.18) by M0 = max<br />
�<br />
supx,z∈X ε ′<br />
�<br />
Sε (0) , 1 .<br />
Finally consider the very last inequality (3.25). It can also be developed as follows (with<br />
M0 ≥ 1):<br />
�ε (t)� 2 ≤ (2θ1) 2n−2 �˜ε (t)� 2 2n−2<br />
(2θ1)<br />
≤ ˜ε<br />
α<br />
′ S˜ε ˜ (t)<br />
2n−2<br />
(2θ1)<br />
≤ 4 ˜ε<br />
α<br />
′ S˜ε ˜ −αqm(t−τ)<br />
(τ)e<br />
2n−2<br />
(2θ1)<br />
≤ 4<br />
α<br />
2n−2<br />
(2θ1)<br />
≤ 4<br />
α<br />
2n−2<br />
(2θ1)<br />
≤ 4<br />
α<br />
�<br />
˜ε ′ ˜ S˜ε (0) e (−αqm+4 β<br />
α Lb)T e (−αqmθ1+4 β<br />
α Lb)(T ∗ −T ) �<br />
e −αqm(t−τ)<br />
�<br />
β<br />
2<br />
β. �˜ε (0)� e (−αqm+4 α Lb)T<br />
e (−αqmθ1+4 β<br />
α Lb)(T ∗−T ) �<br />
e −αqm(t−τ)<br />
�<br />
β<br />
2<br />
β. �˜ε (0)� M0e (−αqm+4 α Lb)T<br />
e (−αqmθ1+4 β<br />
α Lb)(T ∗−T ) �<br />
e −αqm(t−τ)<br />
From (3.24) we know that the bracketed expression is smaller than γ. Equations (3.26) <strong>and</strong><br />
(3.27), θ(0) = 1 lead to:<br />
�ε (t)� 2 2n−2<br />
(2θ1)<br />
≤ 4 β �˜ε (0)�<br />
α<br />
2<br />
�<br />
≤�ε0� 2 ε ∗ e −αqm(t−τ) .<br />
αε ∗<br />
4β (2θ1) 2n−2<br />
Since τ ≤ T ∗ , e −αqm(τ−T ∗ ) ≥ 1 <strong>and</strong> we can obtain the inequality<br />
3.9 Conclusion<br />
�ɛ(t)� 2 ≤�ε0� 2 ε ∗ e −αqm(t−T ∗ ) .<br />
�<br />
e −αqm(t−τ)<br />
In this chapter, the adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> was introduced for a multiple<br />
input, single output system. The exponential convergence of the algorithm has been<br />
proven. This proof has been decomposed in a series of significant lemmas:<br />
54
tel-00559107, version 1 - 24 Jan 2011<br />
1. the innovation at time t places an upper bound on the error at time t − d,<br />
3.9 Conclusion<br />
2. the Riccati matrix S is bounded from above <strong>and</strong> below, for all times t, independently<br />
from θ,<br />
3. the set of c<strong>and</strong>idate adaptation functions is non empty.<br />
In the next chapter, the description of the observer is completed with an adaptation<br />
function <strong>and</strong> the analysis of an example. This study is done both in a simulation <strong>and</strong> in<br />
a real process. We also propose guidelines to the tuning of the several parameters of the<br />
observer.<br />
55
tel-00559107, version 1 - 24 Jan 2011<br />
Chapter 4<br />
Illustrative Example <strong>and</strong> Hard<br />
real-time Implementation<br />
Contents<br />
4.1 Modeling of the Series-connected DC Machine <strong>and</strong> Observability<br />
Normal Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
4.1.1 Mathematical Model . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
4.1.2 Observability Cannonical Form . . . . . . . . . . . . . . . . . . . . . 59<br />
4.2 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
4.2.1 Full Observer Definition . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
4.2.2 Implementation Considerations . . . . . . . . . . . . . . . . . . . . 61<br />
4.2.3 Simulation Parameters <strong>and</strong> Observer Tuning . . . . . . . . . . . . . 62<br />
4.2.4 Simulation Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
4.3 real-time Implementation . . . . . . . . . . . . . . . . . . . . . . . 76<br />
4.3.1 Softwares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />
4.3.2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />
4.3.3 Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
4.3.4 Implementation Issues . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />
4.3.5 Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />
4.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />
56
tel-00559107, version 1 - 24 Jan 2011<br />
4.1 Modeling of the Series-connected DC Machine <strong>and</strong> Observability Normal<br />
Form<br />
In this chapter, we focus now on the implementation of the adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong><br />
<strong>Kalman</strong> <strong>filter</strong> that was introduced in Chapter 3. We provide a full definition of the observer,<br />
in which an adaptation function is explicitly given. A methodology is advanced for tuning<br />
the several parameters. Our goal is to demonstrate that the adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong><br />
<strong>Kalman</strong> <strong>filter</strong> can be used in practice even in the case of a relatively fast process, e.g. 100<br />
Hz.<br />
The process we consider is a series-connected DC motor, modeled via a nonlinear SISO 1<br />
system when current <strong>and</strong> voltage are the only observables. This process has been used in<br />
previous studies, allowing us to compare our results here with those from the earlier works (see<br />
[87, 93]). Moreover, the machine itself is readily available <strong>and</strong> experiments can be considered<br />
quite realistic. Although the process is quite simple, the implementation of the observer in a<br />
real-time environment raises interesting questions that a simulation does not.<br />
The modeling itself of the process <strong>and</strong> the observability study are investigated in Section<br />
4.1. The implementation of the process in a simulation is the subject of Section 4.2. The<br />
methodology for the tuning the parameters is also developed in this section. Finally, a set of<br />
real experiments performed using an actual machine using a hard real-time operating system<br />
is detailed in Section 4.3.<br />
4.1 Modeling of the Series-connected DC Machine <strong>and</strong> Observability<br />
Normal Form<br />
Basically, an electric motor converts electrical energy into mechanical energy. In a DC<br />
motor, the stator (also denoted field) is composed of an electromagnet, or a permanent<br />
magnet, that immerses the rotor in a magnetic field. The rotor (also denoted armature) is<br />
made of an electromagnet that once supplied with current creates a second magnetic field. The<br />
stator is kept fixed while the rotor is allowed to move — i.e., rotate. The attraction/repelling<br />
behavior of magnets generates the rotative motion.<br />
In order to make the rotative motion permanent, one of the two magnetic fields has<br />
to be switched at appropriate moments. The magnetic field created by the stator remains<br />
fixed. The rotor windings are connected to a commutator causing the direction of the current<br />
flowing through the armature coils to switch during the rotation. This reverses the polarity<br />
of the armature magnetic field. Successive commutations then maintain the rotating motion<br />
of the machine.<br />
A DC motor whose field circuit <strong>and</strong> armature circuit are connected in series, <strong>and</strong> therefore<br />
fed by the same power supply, is referred to as a series-connected DC motor [77].<br />
4.1.1 Mathematical Model<br />
The model of the series-connected DC motor is obtained from the equivalent circuit representation<br />
shown in Figure 4.1. We denote If as the current flowing through the field part<br />
of the circuit (between points A <strong>and</strong> C), <strong>and</strong> Ia as the current flowing through the armature<br />
circuit (between points C <strong>and</strong> B). When the shaft of the motor is turned by an external force,<br />
the motor acts as a generator <strong>and</strong> produces an electromotive force. In the case of the DC<br />
1 Single input single output.<br />
57
tel-00559107, version 1 - 24 Jan 2011<br />
4.1 Modeling of the Series-connected DC Machine <strong>and</strong> Observability Normal<br />
Form<br />
motor, this force will act a<strong>gain</strong>st the current applied to the circuit <strong>and</strong> is then denoted back<br />
or counter electromotive force (BEMF or CEMF). The electrical balance leads to<br />
for the field circuit, <strong>and</strong> to<br />
for the armature circuit. The notations are:<br />
Lf ˙<br />
If + Rf If = VAC<br />
La ˙<br />
Ia + RaIa = VCB − E<br />
− Lf <strong>and</strong> Rf for the inductance <strong>and</strong> the resistance of the field circuit,<br />
− La <strong>and</strong> Ra for the inductance <strong>and</strong> the resistance of the armature circuit,<br />
− E for the Back EMF.<br />
Kirchoff’s laws give us the relations:<br />
�<br />
The total electrical balance is<br />
I = Ia = If<br />
V = VAC + VCB.<br />
L ˙<br />
I + RI = V − E,<br />
where L = Lf + La <strong>and</strong> R = Rf + Ra. The field flux is denoted byΦ . We have Φ= f(If )=<br />
f(I), <strong>and</strong> E = KmΦωr where Km is a constant <strong>and</strong> ωr is the rotational speed of the shaft.<br />
The second equation of the model is given by the mechanical balance of the shaft of the<br />
motor using Newton’s second law of motion. We consider that the only forces applied to the<br />
shaft are the electromechanical torque Te, the viscous friction torque <strong>and</strong> the load torque Tl<br />
leading to<br />
J ˙<br />
ωr = Te − Bωr − Tl<br />
where J denotes the rotor inertia, <strong>and</strong> B the viscous friction coefficient. The electromechanical<br />
torque is given by Te = KeΦI with Ke denoting a constant parameter. We consider that<br />
the motor is operated below saturation [93]. In this case, the field flux can be expressed<br />
by the linear expression Φ= Laf I, where Laf denotes the mutual inductance between the<br />
field <strong>and</strong> the rotating armature coils. To conclude with the modeling of the DC, motor we<br />
impose the ideal hypothesis of 100% efficiency of conservation of energy, which is expressed<br />
as K = Km = Ke. For simplicity in the notation, we write Laf instead of KLaf . The voltage<br />
Rf<br />
Lf<br />
La<br />
Figure 4.1: Series-connected DC Motor: equivalent circuit representation.<br />
58<br />
Ra<br />
C<br />
A<br />
+<br />
- B
tel-00559107, version 1 - 24 Jan 2011<br />
4.1 Modeling of the Series-connected DC Machine <strong>and</strong> Observability Normal<br />
Form<br />
is the input of the system, u(t), <strong>and</strong> the current, I(t), is the measured output. The resulting<br />
following SISO model for the series-connected DC motor is:<br />
⎧ � � �<br />
⎨ LI˙ u − RI − Laf ωrI<br />
=<br />
J ˙ωr<br />
Laf I<br />
⎩<br />
2 �<br />
− Bωr − Tl<br />
(4.1)<br />
y = I<br />
This model is used to simulate the DC motor by means of a Matlab/Simulink S-function.<br />
4.1.2 Observability Cannonical Form<br />
Before implementing the observer to reconstruct the state vector of this system, we test the<br />
system’s observability property. We use the differentiation approach, i.e. we check differential<br />
observability (which implies observability):<br />
− if I(t) is known with time, then ˙<br />
I =(u − R.I − Laf ωrI)/L is known <strong>and</strong> as long as u(t),<br />
R, Laf <strong>and</strong> L are known then ωr can be computed,<br />
− because ωr(t) is known, ωr ˙ =(Laf I2 − Bωr − Tl)/J can also be computed. From the<br />
knowledge of I(t), Laf , B,<strong>and</strong> J, then Tl can be estimated.<br />
We conclude that a third variable can be added to the state vector in order to reconstruct<br />
the load torque applied to the shaft of the motor along with the state of the system. We<br />
assume that the load torque is constant over time. Sudden changes of the load torque then,<br />
are interpreted as non modeled perturbations. The estimation of the load torque is made<br />
possible including the constraint ˙<br />
Tl = 0 in equation (4.1). We now need to find the coordinate<br />
transformation that puts this systems into the observability canonical form.<br />
From the equation y = I, we choose x1 = I <strong>and</strong> then<br />
which by setting x2 = Iωr becomes<br />
x1 ˙ = 1<br />
L (u(t) − RI − Laf Iωr),<br />
x1 ˙ = − Laf<br />
L x2 + 1<br />
L (u(t) − Rx1) =α2(u)x2 + b1(x1,u). (4.2)<br />
We now compute the time derivative of x2:<br />
x2 ˙ = ˙ Iωr + Iωr ˙ = − 1<br />
J TlI − B<br />
J Iωr + Laf<br />
J I3 − Laf<br />
L ω2 rI + u(t)<br />
L ωr − R<br />
L ωrI<br />
provided that I>0 (i.e. x1 > 0). This constraint represents a reasonable assumption since<br />
when I, the current of the circuit, equals zero there is no power being supplied to the engine<br />
<strong>and</strong> therefore there is nothing to observe. We have ωr = x2<br />
x1 , <strong>and</strong> x3 = TlI. The above<br />
equation then becomes<br />
x2 ˙ = − 1<br />
J x3 − B<br />
J x2 + Laf<br />
J x31 = α3(u)x3 + b2(x1,x2,u)<br />
59<br />
− Laf<br />
L<br />
x 2 2<br />
x1<br />
u(t) x2 R<br />
+ L − x1 L x2<br />
(4.3)
tel-00559107, version 1 - 24 Jan 2011<br />
4.2 Simulation<br />
a<strong>gain</strong> provided that I>0 (i.e. x1 > 0). This leads us to the expression Tl = x3 . Recall that<br />
x1<br />
Tl<br />
˙ = 0, then<br />
Thus the application:<br />
x3 ˙ = − Laf x2x3<br />
L x1<br />
+ u(t) x3<br />
−<br />
L x1<br />
R<br />
L x3 = b3(x1,x2,x3,u). (4.4)<br />
R ∗+ × R × R → R ∗+ × R × R<br />
(I,ω r,Tl) ↩→ (I, Iωr, ITl)<br />
is a change of coordinates that puts the system (4.1), into the observer canonical form2 defined by equations (4.2), (4.3), (4.4).<br />
The inverse application is:<br />
�<br />
(x1,x2,x3) ↩→ x1, x2<br />
,<br />
x1<br />
x3<br />
�<br />
.<br />
x1<br />
Computations of the coefficients of the matrix b ∗<br />
that appears in the Riccati equation of the<br />
observer — Cf. next section — are left to the reader.<br />
4.2 Simulation<br />
4.2.1 Full Observer Definition<br />
We now recall the equations of the adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>. As we want<br />
to minimize the computational time required to invert the matrix S, let us define P = S−1 .<br />
The identity dP dS−1<br />
dt = dt<br />
dS = S−1<br />
dt S−1 allows us to rewrite the observer as:<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
dz<br />
dt = A(u)z + b(z, u)+PC′ R −1<br />
dP<br />
dt<br />
θ (Cz − y(t))<br />
= P (A(u)+b∗ (z, u)) ′ +(A (u)+b∗ (z, u))P − PC ′ R −1<br />
dθ<br />
dt<br />
θ CP + Qθ<br />
= µ(Id)F0(θ) + (1 − µ(Id))λ(1 − θ)<br />
(4.5)<br />
where<br />
− Rθ = θ −1 R,<br />
− Qθ = θ∆ −1 Q∆ −1 ,<br />
− ∆θ = diag �� 1, θ,θ 2 , . . . ,θ n−1�� ,<br />
− F0(θ) =<br />
� 1<br />
∆T θ2 ifθ ≤ θ1<br />
1<br />
∆T (θ − 2θ1) 2 if θ >θ 1<br />
,<br />
− µ(I) = � 1+e −β(I−m)� −1 is a β <strong>and</strong> m parameterized sigmoid function (Cf. Figure<br />
4.10),<br />
2 One could ask about the compact subset required by Theorem 36. In the present situation, a compact<br />
subset would be a collection of three closed <strong>and</strong> bounded intervals. The problem arises from the exclusion of<br />
0 as a possible value for x1. This is solved by picking any small ɛ > 0 <strong>and</strong> considering that for I = x1 < ɛ the<br />
motor is running too slowly to be of any practical use. Those trajectories are now in a compact subset of the<br />
state space.<br />
60
tel-00559107, version 1 - 24 Jan 2011<br />
4.2 Simulation<br />
− the innovation, Id, is defined by the formula:<br />
� t<br />
Id(t) = �y(s) − ˆyt−d(s)� 2 ds (4.6)<br />
where<br />
t−d<br />
– y(s) is the output of the DC machine (the current),<br />
– ˆyt−d(s) =x1 (t − d, z(t − d),s) with x (t − d, z(t − d),s) is the solution of the normal<br />
form equations (4.2), (4.3), (4.4) over the time window [t − d, t], with the<br />
initial condition that x(t − d) =z(t − d), is the estimated state at time t − d.<br />
4.2.2 Implementation Considerations<br />
z(t<br />
dz/dt=<br />
dS/dt=<br />
d!/dt=<br />
u(t<br />
d delay<br />
Innovation<br />
Figure 4.2: Observer Structure.<br />
The simulation of the DC motor is straightforward. Thus, here we only comment on<br />
the implementation of the observer. The computation of a solution for the algorithm above<br />
is decomposed in two main parts (see Figure 4.2):<br />
1. the computation of the innovation, Id(t),<br />
2. the update of the estimated state, the elements of Riccati matrix <strong>and</strong> the variable θ.<br />
The latter part is common to all continuous time <strong>Kalman</strong> style observers. It presents no<br />
particular difficulties 3 , <strong>and</strong> is illustrated in Figure 4.3.<br />
In order to compute the innovation (refer to Figure 4.4) we need to:<br />
3 From theory, we know that the Riccati matrix is symmetric. Therefore we can solve the equation for only<br />
either the upper triangular part or the lower triangular part of the matrix.The introduction of this artifice has<br />
two advantages:<br />
− it saves computational time (the solution of n(n+1)<br />
equations are needed instead of n 2<br />
2 ),<br />
− because of tiny machine inaccuracies, the situation may arise when the coefficients, which are supposed<br />
to be equal, are determined to be unequal. This situation violates the symmetric requirement of the<br />
matrix <strong>and</strong> algorithm breaks down.<br />
To solve the matrix equations, the implementation of the observer requires the use of a small utility that<br />
transforms (n × n) square matrices into vectors, <strong>and</strong> vice-versa.<br />
Another device, which can be used when considering discrete-time systems, is to work directly with the square<br />
root of the Riccati matrix. This method is detailed in [43], Chapter 7.2.<br />
61<br />
y(t
tel-00559107, version 1 - 24 Jan 2011<br />
4.2 Simulation<br />
single objective contrary to the multi-objective tuning required for non adaptive observers.<br />
The parameters are split into two categories (see Figure 4.6) :<br />
− the ones defining the performance of the system with respect to noise <strong>and</strong> perturbations:<br />
– matrices Q <strong>and</strong> R are meant to provide decent noise <strong>filter</strong>ing 4 ,<br />
– θ1 characterizes the performance of the <strong>high</strong>-<strong>gain</strong> mode,<br />
− the parameters related to the adaptation procedure:<br />
– computation of innovation: d, the delay, <strong>and</strong> δ the time discretization used to<br />
calculate Id,<br />
– the rising time of θ: ∆T ( ∆T appears in the function F0(θ) of the observer (4.5)),<br />
– the sigmoid function parameters: β, m = m1 + m2,<br />
– the speed of the decay of θ(t) when innovation is small: λ.<br />
Let us propose a methodology for the tuning of our set of parameters.<br />
Without the<br />
adaptation equation<br />
⎧<br />
⎨<br />
⎩<br />
R<br />
Q<br />
θ1<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
Parameters of the<br />
adaptation equation<br />
β<br />
λ<br />
∆T<br />
d<br />
m1<br />
� δ<br />
m2<br />
θ1<br />
STEP STEP 2 STEP 3<br />
Figure 4.6: Bold: crucial parameters.<br />
1. Non adaptive parameter tuning (Q, R <strong>and</strong> θ1).<br />
At this stage simulations/experiments are done using the observer with F(θ, Id) = 0<br />
(i.e. it is an <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>, <strong>high</strong>-<strong>gain</strong> if θ(0) > 1).<br />
First, we tune the classical EKF by making some simulations with noise, or by<br />
choosing some experimental data sets without large perturbations. Our goal here is to<br />
achieve acceptable smoothing of the noise. The input signal of the DC machine is set<br />
to u(t) = 120 + 12 sin(t). This condition makes the system state oscillate <strong>and</strong> eases the<br />
burden of the graphical analyses 5 . The observer’s initial state is taken to be equal to<br />
the system’s initial state whenever the initial state is known. For all these simulations,<br />
the load torque is kept constant equal to 0.55. We refer to this situation as the first<br />
scenario.<br />
The matrices Q <strong>and</strong> R are required to be symmetric definite positive. Usually, in<br />
the continuous case, they are considered diagonal with positive coefficients:<br />
4<br />
In the stochastic setting, Q <strong>and</strong> R are the covariance matrices of the state (resp. output) noise. In our<br />
deterministic point of view, they constitute additional tuning parameters.<br />
5<br />
This is not a requirement at all. It’s only here to provide a non stationary signal as the output. This step<br />
can also be performed with a stationary system.<br />
64
tel-00559107, version 1 - 24 Jan 2011<br />
− R is set in order to reflect the measurement noise covariance,<br />
4.2 Simulation<br />
− the diagonal coefficients of Q are made larger for the state variables, which are<br />
unknown or for which the model is less accurate (in our case, this would be the<br />
load torque).<br />
We decided to set R = 1 <strong>and</strong> attempted several different configurations for Q. Figure<br />
4.7 shows a plot of our estimate of the second state variable (red line) as compared to the<br />
real values (black line) for several simulations. Comparing all the results in the figure,<br />
we consider that the tuning in the third panel (from the top) provided the observer<br />
with optimal noise smoothing properties. The values of Q used in the subsequent<br />
experiments (fourth <strong>and</strong> fifth panels from the top) do not improve the performance,<br />
while also making the observer really slow.<br />
Contrary to what is normally done (see for example the application part of [38]), we<br />
choose values for the Q matrix, which are much larger for the measured variable than<br />
those that are unknown. By choosing the values in such a way, the observer is retarded<br />
with respect to the observable, which mean that those parameters would converge quite<br />
slowly, as compared to a bad initialization <strong>and</strong>/or sudden changes in the load torque.<br />
The <strong>high</strong>-<strong>gain</strong> mode is meant to cope with those situations.<br />
In order to determine an initial value for θ1, we simulate large disturbances in a<br />
second scenario. The input variable is kept constant 6 (V = 120), <strong>and</strong> the load torque<br />
is increased from 0.55 to 2.55 at the time step=30. The initial state is still considered<br />
as being equal to the actual system state. Q <strong>and</strong> R are set to be the values chosen<br />
previously. The <strong>high</strong>-<strong>gain</strong> parameter, θ(0) = θ0, is then chosen in order to achieve the<br />
best observer time response during this disturbance. The performance with respect<br />
to noise is ignored. The data corresponding to the estimate of the load torque (third<br />
state variable) are plotted in Figure 4.9. We expect the noise to amplify the overshoot<br />
problem. Thus, we therefore try to select θ0 such that offsets are avoided as much as<br />
possible.<br />
In the definition of the function F0 of the observer (4.5), θ1 has to be set such that<br />
2θ1 = θ0 where θ0 denotes the value we just found.<br />
2. Sigmoid function, innovation <strong>and</strong> adaptive procedure.<br />
We now consider the fully implemented observer with ˙ θ = F(θ, Id) <strong>and</strong> θ(0) = 1.<br />
Several parameters can be set in this case regardless of the application:<br />
− β <strong>and</strong> m: recall that according to Lemma 42 of Chapter 3 the function µ(Id)<br />
should possess the following features:<br />
⎧<br />
⎨<br />
µ(Id) =<br />
⎩<br />
1 ifγ 1 ≤ Id<br />
∈ [0, 1] ifγ 1 ≤ Id < γ0<br />
0 if Id < γ0<br />
6 This not a requirement at al. The input variable may still be considered to be varying when changes in<br />
the load torque are made.<br />
65
tel-00559107, version 1 - 24 Jan 2011<br />
400<br />
300<br />
200<br />
0<br />
400<br />
10 20 30 40 50 60<br />
300<br />
200<br />
0<br />
400<br />
10 20 30 40 50 60<br />
300<br />
200<br />
0<br />
400<br />
10 20 30 40 50 60<br />
300<br />
200<br />
0<br />
400<br />
10 20 30 40 50 60<br />
300<br />
200<br />
0 10 20 30 40<br />
"&<br />
"!<br />
&<br />
!<br />
Real values<br />
Estimated state<br />
Figure 4.7: Tuning of the Q <strong>and</strong> R matrices.<br />
4.2 Simulation<br />
Q = diag(1,1,5)<br />
Q = diag(1,1,1)<br />
Q = diag(1,10 -1 ,10 -2 )<br />
Q = diag(1,10 -2 ,10 -4 )<br />
Q = diag(1,10 -3 ,10 -6 )<br />
!&<br />
! "! #! $!<br />
Rotation speed (Wr)<br />
%! &! '!<br />
%!!<br />
#!!<br />
!<br />
!#!!<br />
! "! #! $!<br />
Load torque (Tl)<br />
%! &! '!<br />
$<br />
#<br />
"<br />
Curent (I)<br />
!<br />
! "! #! $! %! &! '!<br />
Figure 4.8: Sample of a simulation (scenario 1).<br />
66
tel-00559107, version 1 - 24 Jan 2011<br />
2.5<br />
2<br />
1.5<br />
1<br />
0.5<br />
Load torque estimate<br />
Overshoots<br />
10 10.5 11 11.5 12 12.5 13 13.5 14 14.5<br />
Figure 4.9: Choice of a value for 2θ1.<br />
4.2 Simulation<br />
Real values<br />
! 0 = 5<br />
! 0 = 10<br />
! 0 = 8<br />
! 0 = 15<br />
We chose a sigmoid function whose equation appears in the definition of the observer<br />
(4.5). A graphical representation is displayed in Figure 4.10. The parameters<br />
β <strong>and</strong> m play the same role as the bounding parameters, γ0 <strong>and</strong> γ1, in the<br />
properties of the innovation shown above. The first parameter, β, controls the<br />
duration of the transition part of the sigmoid. The <strong>high</strong>er β is, the smaller is the<br />
transition. In practice, the best results are obtained for a small transition time<br />
(i.e. a large value of β) 7 .<br />
When m = 0, µ(0) = 0.5. The role of the parameter m is to pull the sigmoid to<br />
the right. m is actually divided into two components, i.e., m = m1 +m2. We want<br />
m1 is to be such that µ(Id) ≈ 0 when Id is around 0. Because of the presence of<br />
noise in the measured signal, we need to add m2 to this value. The procedure is<br />
explained below. The choice of m1 can be made either via a graphical method or<br />
by solving a nonlinear equation 8 .<br />
− λ: Contrary to the observer of [38] “λ small enough” is no longer required, since<br />
θ increases when estimation error becomes too large. However, the situation may<br />
arise when the innovation oscillates up <strong>and</strong> down after some large disturbance.<br />
7<br />
Note that the need for a small transition time is consistent with the requirements expressed in Theorem<br />
36 of Chapter 3, i.e., when neither θ is <strong>high</strong>-<strong>gain</strong> nor the estimation error is sufficiently small, the state of the<br />
system is unclear. We want to reach one of those two domains.<br />
8<br />
Let us choose 0 < ε1 < 1, small <strong>and</strong> l, a transition length. We keep m = 0 <strong>and</strong> solve the equation<br />
µ(l/2) − µ(−l/2) = (1 − ε1) − ε1 in order to find the corresponding β.<br />
Now choose ε2 > 0, sufficiently small, is used as the zero value (the function µ(x) = 0 has no solution). Set β<br />
to the value found previously <strong>and</strong> solve for m using the equation µ(0) = ε2.<br />
67
tel-00559107, version 1 - 24 Jan 2011<br />
4.2 Simulation<br />
With a <strong>high</strong> value of λ, θ oscillates as well. In order to give some resilience to θ<br />
in this case, λ should be not be set too <strong>high</strong>. A value between 1 <strong>and</strong> 10 seems to<br />
be sufficient.<br />
− ∆T : (in the adaptation function of the observer (4.5)). The smaller∆ T , the<br />
shorter the rising time of θ. We take∆ T =0.1. This is sufficiently small that the<br />
equation F0(θ) remains compatible with the ODE solver 9 .<br />
As explained at the end of the previous subsection (i.e. Subsection 4.2.2), innovation<br />
is considered as a discrete function of time. Therefore we need to set the sampling time<br />
of this process. We denote it δ. It depends on the measurement hardware <strong>and</strong> is<br />
not a critical parameter. Nevertheless, it seems intuitive that d<br />
δ must be sufficiently<br />
d<br />
<strong>high</strong> to at least reflect the rank of the observability of the system, i.e. δ ≥ n − 1.<br />
Indeed, innovation is used as a direct measurement of distinguishability. A theoretical<br />
justification of this remark is provided in Section 5.2 of Chapter 5 where an adaptive<br />
continuous-discrete version of our observer is provided.<br />
Parameters d <strong>and</strong> m2 are closely related to the application, but in a very clear manner.<br />
When d is too small, innovation is not sufficiently large to distinguish between an<br />
increase in the estimation error <strong>and</strong> the influence of noise. On the other h<strong>and</strong>, a value<br />
for the innovation that is too <strong>high</strong> increases the computation time as the prediction is<br />
made on a larger time interval. The value of d has to be chosen using our knowledge of<br />
the time constant of the system (simulations or data samples), i.e., some fraction (e.g.<br />
) of the smallest time constant appears to be a reasonable choice.<br />
1<br />
3<br />
to 1<br />
5<br />
Remark 45<br />
When the system encounters a <strong>high</strong> perturbation at time t, one would expect a delay<br />
of length d in the adaptation of θ. However, the inequality of Lemma 33 is valid for<br />
any delay 0
tel-00559107, version 1 - 24 Jan 2011<br />
!<br />
"#+<br />
"#$<br />
"#*<br />
"#%<br />
"#)<br />
"#&<br />
"#(<br />
"#'<br />
"#!<br />
! , )- . ,"<br />
! , !"- . ,"<br />
! , '"- . ,"<br />
! , '"- . ,"#&<br />
! , '"- . ,"#$<br />
"<br />
!! !"#$ !"#% !"#& !"#' " "#' "#& "#% "#$ !<br />
4.2 Simulation<br />
Figure 4.10: Effect of the parameters β <strong>and</strong> m on the shape of the sigmoid.<br />
output signal without noise. In the case where the output signal is corrupted by noise<br />
v(t), we have<br />
ymes(t) =y(t − d, x(t − d), τ)+v(τ).<br />
Therefore with x(t − d) =z(t − d):<br />
Id(t) = � t<br />
t−d �y(t − d, x(t − d), τ)+v(τ) − y(t − d, z(t − d), τ)�2 dτ<br />
= � t<br />
t−d �v(τ)�2 dτ �= 0.<br />
(4.7)<br />
We use σ to denote the st<strong>and</strong>ard deviation of v(t). We estimate m2 is the threesigma,<br />
which seams reasonable <strong>and</strong> empirically sound. Then from equation (4.7), we<br />
obtain the relation Id(t) ≤ 9σ 2 d. Therefore, m2 ≈ 9σ 2 d appears to be a reasonable<br />
choice. However, practice demonstrates that m2 computed in this way is over estimated.<br />
Although less common in engineering practice, we advise using a one-sigma rule 10 :<br />
m2 ≈ σ 2 d.<br />
3. Final tuning<br />
All the parameters being set as before, we run a series of simulations with the output<br />
signal corrupted by noise. The parameter load torque is changed suddenly from 0.55 to<br />
2.55 (scenario 2). We modify θ1 in order to improve (shorten) convergence time of the<br />
observer when the system faces perturbations. Overshoots are kept as low as possible.<br />
Remark 46<br />
This methodology can also be applied for a hardware implementation. In the case where<br />
a complete simulator for the process is absent, the observer can be tuned in an open loop:<br />
− when the plant is operating, more or less, in steady state, in order to tune the parameters<br />
related to noise <strong>filter</strong>ing,<br />
− when a perturbation occurs in order to set parameters related to adaptation.<br />
10 In the present example: σ = 2 <strong>and</strong> d = 1, thus m2 = 4.<br />
69
tel-00559107, version 1 - 24 Jan 2011<br />
Parameter Value Role<br />
Q diag(1, 10 −1 , 10 −2 ) Filtering<br />
R 1 Filtering<br />
θ1 4 High-<strong>gain</strong><br />
β 1664 π<br />
e Adaptation*<br />
m1 0.005 Adaptation*<br />
m2 4 Adaptation<br />
λ 5 Adaptation*<br />
∆T 0.1 Adaptation*<br />
d 1 Innovation<br />
δ 0.1 Innovation*<br />
Table 4.1: Final choice of parameters (*: Application-free parameters).<br />
4.2.4 Simulation Results<br />
The performance of the observer is accounted for via two scenarios:<br />
− scenario 2: a single change in the load torque is performed at time 30,<br />
4.2 Simulation<br />
− scenario 3: a series of changes are implemented every 20 units of time. The sequence<br />
of the values taken by Tl is [0.55, 2.5, 1.2, 1.5, 3.0.8, 0.55].<br />
The output of the system for each scenario is displayed in Figure 4.12. The estimation<br />
results are displayed in<br />
− Figures 4.13 <strong>and</strong> 4.14, for scenario 2,<br />
− Figures 4.15 <strong>and</strong> 4.16, for scenario 3.<br />
In all the figures, the thick black line corresponds to the real values of the state variables. In<br />
each case the behaviors of several observers are shown:<br />
− dark blue plot: estimation rendered by an <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>, with Q <strong>and</strong> R<br />
matrices as given in Table 4.1,<br />
Scenario 1 u(t) = 120 + 12 sin(t), Tl(t) = 0.55 ∀t ≥ 0<br />
Scenario 2 u(t) = 120, Tl(t) =0.55 ∀t ∈ [0; 30[ then Tl(t) =<br />
2.55 ∀t ∈ [30; 100[<br />
Scenario 3 u(t) = 120, Tl(0) = 0.55, Tl(k20),<br />
k > 0 changes according to the sequence<br />
[0.55, 2.5, 1.2, 1.5, 3.0.8, 0.55]<br />
Figure 4.11: The several simulation scenarios.<br />
70
tel-00559107, version 1 - 24 Jan 2011<br />
4.2 Simulation<br />
− light blue curve: estimation rendered by a High-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> with θ = 7,<br />
− red line: estimation done by the adaptive <strong>high</strong>-<strong>gain</strong> <strong>Kalman</strong> <strong>filter</strong>.<br />
15<br />
10<br />
5<br />
Second scenario output signal<br />
0<br />
0 10 20 30 40 50 60 70 80 90 100<br />
15<br />
10<br />
5<br />
Third scenario output signal<br />
0<br />
0 20 40 60 80 100 120 140 160 180 200<br />
Figure 4.12: Output signal for the two scenarios.<br />
In the first scenario, when the perturbation occurs (at time 30), we see that, as expected,<br />
the perturbation is detected by innovation, which crosses the y = m2 red line of Figure 4.17.<br />
The <strong>high</strong>-<strong>gain</strong> parameter then increases <strong>and</strong> convergence is made more effective. We see<br />
that when no perturbation occurs, innovation remains less than m2 <strong>and</strong> the behavior of the<br />
observer is the same as the one of the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> 11 . The speed of convergence<br />
after the perturbation is comparable to that of the <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> modulo,<br />
i.e., a small delay that corresponds to the time needed:<br />
1. for the perturbation to have an effect on the output,<br />
2. for the perturbation to be detected,<br />
3. <strong>and</strong> for the <strong>high</strong>-<strong>gain</strong> to rise.<br />
Notice that this delay depends also on the parameter δ, the sample time set for the computation<br />
of the innovation. Since θ reacts on behalf of the innovation, its behavior can change<br />
only every δ period of time.<br />
11 Actually, the performance of the AEKF versus that of the EKF depends also on the level of the noise <strong>and</strong><br />
on the system under consideration. For example, if the noise level is really <strong>high</strong>, one would probably set the<br />
matrix Q to a very low value thus rendering the EKF even slower. This very low value of Q has only a little<br />
effect on the AEKF behavior in <strong>high</strong>-<strong>gain</strong> mode. Therefore the AEKF would be as quick to respond as in the<br />
present situation <strong>and</strong> the EKF would be slower. In [21] <strong>and</strong> [22], the AEKF is used in some other examples<br />
thus providing additional insight into the differences between EKF <strong>and</strong> AEKF.<br />
71
tel-00559107, version 1 - 24 Jan 2011<br />
/ #<br />
0 $<br />
&!!<br />
%&!<br />
%!!<br />
$&!<br />
$!!<br />
#&!<br />
#!!<br />
012,-32,45 6,27 3 89!0:;<br />
53=<br />
012,-32,45 ?,3 0:;<br />
012,-32,45 6,27 @0:;<br />
"&!<br />
! "! #! $! %! &!<br />
+,-.<br />
'! (! )! *! "!!<br />
$+&<br />
$<br />
#+&<br />
#<br />
"+&<br />
"<br />
!+&<br />
!<br />
!!+&<br />
!"<br />
Figure 4.13: Scenario 2: Estimation of the rotation speed.<br />
123-.43-56 7-38 4 9:!1;<<br />
=/4> 2-?64><br />
123-.43-56 @-4 1;<<br />
123-.43-56 7-38 A1;<<br />
!"+&<br />
! "! #! $! %! &!<br />
,-./<br />
'! (! )! *! "!!<br />
Figure 4.14: Scenario 2: Estimation of the torque load.<br />
72<br />
4.2 Simulation
tel-00559107, version 1 - 24 Jan 2011<br />
4.2 Simulation<br />
In the second scenario, we notice that at some unexpected moments the adaptive <strong>high</strong><strong>gain</strong><br />
observer has the same behavior as that of the non <strong>high</strong>-<strong>gain</strong> observer (e.g. Figure 4.15).<br />
When we take a look at Figure 4.18, we see that θ didn’t actually increase for t ∈ [40; 80] <strong>and</strong><br />
t ∈ [100; 160]. The explanation lies in Figure 4.12. The sudden change in the torque load<br />
wasn’t sufficient enough to have a significant effect on the output signal.<br />
As in the previous scenario, the adaptive observer presents two advantages with respect<br />
to the two other <strong>filter</strong>s, namely that of improved noise rejection <strong>and</strong> that of increased speed<br />
of convergence in the event of perturbations.<br />
- "<br />
'!!<br />
#'!<br />
#!!<br />
('!<br />
(!!<br />
"'!<br />
"!!<br />
&'!<br />
./0*+10*23 4*05 1 67!.89<br />
:,1; /*.89<br />
&!!<br />
! "! #! $! %! &!!<br />
)*+,<br />
&"! &#! &$! &%! "!!<br />
Figure 4.15: Scenario 3: Estimation of the rotation speed.<br />
We conclude this section with Figure 4.19, which shows the estimation obtained from a<br />
adaptive <strong>high</strong>-<strong>gain</strong> observer with a poorly chosen value for m2. Since it is too small, θ is<br />
increasing when it is not needed. The corresponding innovation plot is provided in Figure<br />
4.20.<br />
73
tel-00559107, version 1 - 24 Jan 2011<br />
, '<br />
m2<br />
#<br />
'<br />
"<br />
&<br />
!<br />
-./)*0/)12 3)/4 0 56!-78<br />
!&<br />
9+0: .);20:<br />
-./)*0/)12
tel-00559107, version 1 - 24 Jan 2011<br />
m2<br />
- "<br />
- '<br />
8<br />
6<br />
4<br />
2<br />
Evolution of the !<br />
0<br />
0 20 40 60 80 100 120 140 160 180 200<br />
8<br />
6<br />
4<br />
2<br />
(!!<br />
#!!<br />
'!!<br />
"!!<br />
Innovation<br />
0<br />
0 20 40 60 80 100 120 140 160 180 200<br />
Figure 4.18: Scenario 3: Innovation.<br />
&!!<br />
! "! #! $! %! &!!<br />
)*+,<br />
&"! &#! &$! &%! "!!<br />
#<br />
'<br />
"<br />
&<br />
!<br />
!&<br />
! "! #! $! %! &!!<br />
)*+,<br />
&"! &#! &$! &%! "!!<br />
4.2 Simulation<br />
Figure 4.19: Estimation with a adaptive <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> with a too low m2<br />
parameter.<br />
75
tel-00559107, version 1 - 24 Jan 2011<br />
%<br />
$<br />
#<br />
"<br />
#<br />
m2 = 1.8<br />
+(,-!,.(/ 0.1.)*2*1 3!4<br />
4.3 real-time Implementation<br />
!<br />
!<br />
%<br />
"! #! $! %! &!!<br />
'()*<br />
5//67.2(6/<br />
&"! &#! &$! &%! "!!<br />
$<br />
"<br />
!<br />
! "! #! $! %! &!!<br />
'()*<br />
&"! &#! &$! &%! "!!<br />
Figure 4.20: Innovation for a low m2 parameter.<br />
4.3 real-time Implementation<br />
In order to investigate in depth the way the adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong><br />
works, we implemented the <strong>filter</strong> on a DC machine in our laboratory, at the University of<br />
Luxemburg. The issues which concerned us when performing those experiments were:<br />
− the study of the feasibility of a real time implementation, since:<br />
1. a solution of the Riccati equation requires the integration of n(n+1)<br />
2 differential<br />
equations, where n denotes the dimension of the state space,<br />
2. the computation of innovation appears to be time intensive 12 ,<br />
− the study of the influence of unknown <strong>and</strong> non-estimated modeling errors on the adaptation<br />
scheme <strong>and</strong> finding a way to h<strong>and</strong>le them.<br />
We considered the real-time part of this problem as being the major issue of this set of<br />
experiments. Therefore we decided to use a hard real-time operating system.<br />
4.3.1 Softwares<br />
In computer science, real-time computing is the study of hardware <strong>and</strong> software systems<br />
that are subject to operational deadlines from event to system response. The real-time<br />
framework can be divided into two parts: soft <strong>and</strong> hard real-time. A requirement is considered<br />
12 This question was also raised by M. Farza <strong>and</strong> G. Besançon at an early stage of this work, at the occasion<br />
of the conference [25].<br />
76
tel-00559107, version 1 - 24 Jan 2011<br />
4.3 real-time Implementation<br />
to be hard real-time whenever the completion of an operation after its deadline is considered<br />
useless. When limited delays in the response time can be accepted, or in other words when<br />
we can afford to wait for the end of computations, the system is said to be soft real-time.<br />
The most common approach consists of defining a real-time task <strong>and</strong> using a clock that<br />
sends signals to the system at a frequency set by the user. Each time a signal is sent by the<br />
clock, a real-time task is launched whatever the conclusion of the previous task. In other<br />
words, a hard real-time system does not make a task conditional with respect to the real-time<br />
constraints. The system forces the designer of the task to respect the real-time constraints.<br />
We chose a Linux based real-time engine provided with a full development suite: RTAI-Lab<br />
[34].<br />
RTAI-Lab is composed of several software components including:<br />
− RTAI [5]: RTAi is a user friendly RealTime Operating System.<br />
The linux O.S. suffers from a lack of real time support. To obtain real time behavior, it is<br />
necessary to change the kernel source code. RTAI is an add-on to the Linux Kernel core<br />
that provides it with the features of an industrial real-time operating system within a<br />
full non real-time operating system (access to TCP/IP, graphical display <strong>and</strong> windowing<br />
systems, etc...).<br />
Basically RTAI is a non intrusive interrupt dispatcher, it traps the peripheral interrupts<br />
<strong>and</strong> when necessary re-routes them to Linux. It uses a concept called Hardware<br />
Abstraction Layer to get information into <strong>and</strong> out of the kernel with only a few dependencies.<br />
RTAI considers Linux as a background task running when no real time activity<br />
occurs.<br />
− Comedi [4]: Comedi is a collection of drivers for a variety of common data acquisition<br />
plug-in boards. The drivers are implemented as a core Linux kernel module.<br />
− Scilab/Scicos [6–8, 41]: Scilab is a free scientific software package for numerical computation<br />
similar to Matlab. The software was initially developed at INRIA <strong>and</strong> is now<br />
under the guidance of the Scilab consortium (see the history section of [8]).<br />
Scicos is a a graphical dynamical system modeler <strong>and</strong> simulator (or Computer Aided<br />
Control System Design Software) developed by the group METALAU at INRIA. It<br />
provides a block oriented development environment that can be found either embedded<br />
into Scilab or in the distribution ScicosLab 13 .<br />
− RTAI-Lib [5, 34]: RTAI-Lib is a Scicos palette, i.e. a collection of blocks to use with<br />
Scicos. This palette is specific to the real-time issues RTAI is dealing with. These<br />
blocks can be used to generate a real-time task (which is not the case of the regular<br />
Scicos blocks).<br />
− Xrtailab [34]: Xrtailab is a oscilloscope-like software that takes care of communications<br />
between the non real-time part of the platform (i.e. the Linux O.S, the graphic displays)<br />
<strong>and</strong> the real-time executable when it is active. With Xrtailab, it is possible to plot <strong>and</strong><br />
record signals <strong>and</strong> change online the parameter values of the simulation blocks (e.g. PI<br />
<strong>and</strong> PID coefficients, activate braking).<br />
13 Notice that recent versions of Scilab (2010) doesn’t seem to include Scicos anymore but some similar<br />
utility called xcos.<br />
77
tel-00559107, version 1 - 24 Jan 2011<br />
Scicos call from<br />
scilab console<br />
Scilab call from the Konsole terminal<br />
4.3 real-time Implementation<br />
Real-time clock<br />
Real-time task<br />
Superblock<br />
Figure 4.21: Graphical Implementation of a real-time task.<br />
For portability <strong>and</strong> flexibility reasons, we used a Linux Live CD 14 comprising the RTAI-<br />
Lab suite: RTAI-Knoppix 15 [3, 94]. When we operate in realtime, that is to say when an<br />
observer is running, the RT tasks don’t require any hard drive access. Consequently there is<br />
no difference between the linux live CD <strong>and</strong> a regular linux installation.<br />
The development of a real-time executable is done from Scicos, launched from Scilab<br />
as shown on Figure 4.21. A Scicos diagram, which is meant to be compiled as a real-time<br />
application is composed of two blocks:<br />
− an external clock (in red),<br />
− a Scicos superblock that contains the whole real-time task (in black).<br />
The only input to this block is the external clock signal. Communication between the system<br />
<strong>and</strong> the real-time task is done using specific blocks (signal generation, Scopes, Analog/Digital<br />
<strong>and</strong> Digital/Analog blocks [34]). They can be found in the RTAI-Lib palette 16 .<br />
The graphical program obtained is compiled into a real-time executable with the help of<br />
an automatic code generator. Figure 4.22 shows the three steps of the compilation:<br />
14 A Live CD is an O.S. that deploys directly from the CD. No specific installation is needed on the host<br />
machine. The programs <strong>and</strong> real-time tasks can be provided via an external storage source as a USB key.<br />
In short, as far as the various softwares are concerned, the only hardware devices required are the CD with<br />
RTAI-Knoppix <strong>and</strong> a USB key.<br />
15 The version we used was built on a Linux kernel, 2.6.17 (SMP enabled kernel is available) <strong>and</strong> embedded<br />
with<br />
− RTAI version 3.4<br />
− Scilab-4.0/Scicos CACSD platform.<br />
16 In Scicos language, a palette is a collection of predefined blocks.<br />
78
tel-00559107, version 1 - 24 Jan 2011<br />
− the selection of the compilation options,<br />
4.3 real-time Implementation<br />
− the setting of the real-time parameters (sample time of the real-time executable,...),<br />
− the display of a successful compilation notification.<br />
The program that was compiled above is called Phd DEMO. This real-time executable is<br />
started from the system console with one of the two following comm<strong>and</strong> lines:<br />
− ./Phd DEMO -f xx<br />
− ./Phd DEMO<br />
In the first case, the -f option specifies that a duration of execution is provided. The xx<br />
symbols have to be replaced by the desired length of time, in seconds. In the second case, no<br />
duration is given <strong>and</strong> the program runs until it is stopped by the user. In RTAI-Lab, there<br />
is only one way to properly stop a real-time executable while it is running, i.e., to use the<br />
Xrtailab application.<br />
As for Scilab, Xrtailab can be launched from a system console. The use of Xrtailab is<br />
illustrated in Figure 4.23. The two first images give an account of the connection procedure.<br />
The last image demonstrates a few possibilities of Xrtailab such as the display of signals<br />
entering a Scope block or the ability to change blocks parameters on the fly.<br />
A more detailed explanation on how the whole RTAI-lab suite works may be found in<br />
[34].<br />
4.3.2 Hardware<br />
The testbed is composed of<br />
− a DC motor from Lucas Nuelle (ref. SE2665-5C) that can be connected in series. This<br />
machine is coupled<br />
– on one end with a tachometer 17 (ref.2662-5U),<br />
– on the other end with a propeller 18 (47.0 x 30.5 cm, together with a 5 ◦ pitch).<br />
The propeller is attached to a 52mm center hub. Those parts were manufactured<br />
by Aero-naut (ref.7234/97),<br />
− a programmable DC source from Delta Electronika (SM-300-10D),<br />
− an I/O card from National Instruments (6024E-DAQ) that allows for communications<br />
between the physical system <strong>and</strong> the control system.<br />
A communication diagram showing the relationship between the different elements of the<br />
testbed is provided in Figure 4.24. The figure shows:<br />
17<br />
The tachometer is only used in order to compare the estimated speed to the real one, <strong>and</strong> to calibrate the<br />
mathematical model (see Subsection 4.3.3) .<br />
18<br />
The brake we had at our disposal was not working properly. We therefore decided to pursue the experiments<br />
without it. As it can be seen from the second equation of system (4.1), if the resistive torque is not<br />
sufficient, there are good chances for the machine to run wild. The role of the propeller is to provide the motor<br />
with a sufficiently <strong>high</strong> <strong>and</strong> stable resistive torque. We chose our propeller on behalf of the study [44].<br />
79
tel-00559107, version 1 - 24 Jan 2011<br />
Figure 4.22: Compilation of a real-time task.<br />
4.3 real-time Implementation<br />
− that measurements of the current, voltage <strong>and</strong> speed are fed to the hard real-time O.S.,<br />
− <strong>and</strong> that set values for the voltage are delivered to the power supply.<br />
The hard real-time O.S. has therefore 3 inputs <strong>and</strong> 1 output signals.<br />
Figure 4.25 displays both a picture of the testbed. Also shown in the photograph is the<br />
the friction tool n ◦ 1. The undetermined perturbations were produced by means of a h<strong>and</strong><br />
applied braking friction on the (back) motor’s shaft.<br />
The computer was a Dell PC equipped with a P. IV, 3GHz processor <strong>and</strong> a 512 Mb DDR2<br />
SDRAM memory.<br />
4.3.3 Modeling<br />
A model for the series-connected DC machine has been proposed in Section 4.1.1 above.<br />
We now need to adapt this model to the testbed as the presence of the propeller needs to be<br />
taken into account. This model can be written, in a short form,<br />
�<br />
I ˙ 1 = L (V − R.I − Laf Iωr)<br />
ωr ˙ = 1<br />
J (Laf Iωr − Tres)<br />
where Tres is the overall resistive torque. The model from Section 4.1.1 is changed in the two<br />
following ways:<br />
80
tel-00559107, version 1 - 24 Jan 2011<br />
Figure 4.23: Xrtailab.<br />
4.3 real-time Implementation<br />
1. we cannot keep the ideal efficiency of the machine assumption any longer. Therefore,<br />
instead of considering a unique mutual inductance Laf we separate it into two distinct<br />
parameters: Laf1 <strong>and</strong> Laf2 ,<br />
2. the resistive torque Tres is modeled as the sum of<br />
− a viscous friction torque generated by the contacts inside the motor: Bωr,<br />
− a torque due to the presence of the propeller <strong>and</strong> which is modeled according to<br />
),<br />
the technical report [44] as (pω 2.08<br />
r<br />
− an unknown perturbation torque (i.e. braking), just as before: Tl.<br />
The final model thus obtained is<br />
� ˙<br />
I = (V − R.I − Laf1 Iωr)/L<br />
ωr ˙ = (Laf2Iωr − Bωr − pω2.08 r<br />
− Tl)/J.<br />
Neither the observability analysis nor the change of variables that brought the model<br />
into its normal form are affected by these modifications. Therefore, in the same manner as<br />
before, we can estimate the load torque Tl by adding a third equation. The corresponding<br />
81
tel-00559107, version 1 - 24 Jan 2011<br />
!<br />
!" #<br />
Figure 4.24: Connections Diagram.<br />
4.3 real-time Implementation<br />
Figure 4.25: A view on the testbed (<strong>and</strong>, on the left, the friction tool).<br />
observability normal form is then<br />
⎛<br />
˙x1<br />
⎝ ˙x2<br />
˙x3<br />
⎞<br />
⎠ =<br />
⎛<br />
⎝ 0 − Laf<br />
0<br />
1<br />
L<br />
0<br />
0<br />
− 1<br />
0 0<br />
⎛<br />
J<br />
0<br />
⎞ ⎛<br />
⎠ ⎝<br />
⎜<br />
+ ⎜<br />
⎝<br />
�<br />
1<br />
L u(t) x2<br />
x1<br />
x2<br />
x3<br />
⎞<br />
⎠<br />
1<br />
L<br />
(u(t) − Rx1)<br />
�<br />
Laf2x31 − Bx2 − p x2.08<br />
2<br />
x1.08 �<br />
�<br />
1<br />
u(t) x3<br />
⎟<br />
�<br />
⎠<br />
x2x3 − Laf1 − Rx3<br />
x1 x1 .<br />
x1 − Rx2 − Laf1 x2 �<br />
2 + x1<br />
1<br />
J<br />
1<br />
L<br />
This model needs to be calibrated, i.e., we need to find appropriate values for the parameters<br />
R, L, B, J, Laf1 ,Laf2 <strong>and</strong> p. We find the values following a st<strong>and</strong>ard approach. First,<br />
we applied a linear method in order to identify some of the parameters. Second, we used<br />
a nonlinear optimization technique to obtain more accurate values for the complete set of<br />
parameters.<br />
1. From data samples (voltage, current <strong>and</strong> speed) an initial estimation is obtained via<br />
the least mean squares technique.<br />
Let us consider the initial model (not in normal form) at steady state. Suppose that<br />
L = J = 1 <strong>and</strong> that the load torque (Tl) is null. With the parameters B, Laf ,p as<br />
82<br />
⎞
tel-00559107, version 1 - 24 Jan 2011<br />
unknowns (i.e. Laf1 = Laf2 ), the model becomes19 :<br />
� V<br />
0<br />
�<br />
=<br />
� I Iωr 0 0<br />
0 I 2 ωr ω 2.08<br />
r<br />
4.3 real-time Implementation<br />
⎛<br />
�<br />
⎜<br />
⎝<br />
From a series of experiments we collected enough data to constitute three sets of values:<br />
(V1, ..., VN), (I1, ..., IN) <strong>and</strong> ((ωr)1, ..., (ωr)N) <strong>and</strong> found a mean least squares solution<br />
to the equation above.<br />
2. At this stage a nonlinear optimization routine was used20 . The solutions found above<br />
together with L = J = 1, <strong>and</strong> Laf = Laf1 = Laf2 where taken as the initial values of the<br />
optimization routine. The cost function to minimize is taken as the distance between<br />
measured data <strong>and</strong> predicted trajectory<br />
� T ∗<br />
�I(v) − Ĩ(v)�2 � T ∗<br />
dv + α2 �ωr(v) − ˜ωr(v)� 2 dv,<br />
K(L, R, Laf1 , J, Laf2 , B, p) ↦→ α1<br />
where<br />
0<br />
− I <strong>and</strong> ωr are some measured data that excite the dynamical modes of the process<br />
(in a pseudo r<strong>and</strong>om binary sequence manner [85]),<br />
− Ĩ <strong>and</strong> ˜ωr are the predicted trajectory obtained from the model above using the<br />
measured input variables <strong>and</strong> Ĩ(0) = I(0) <strong>and</strong> ˜ωr(0) = ωr(0).<br />
− <strong>and</strong> α1, α2 are weighting factors, that may be used to compensate for the difference<br />
of scale between the current <strong>and</strong> voltage amplitudes.<br />
3. The situation may arise when the solution found by the optimization routine is a local<br />
minimum. In this case, the solution set of parameters doesn’t match the experimental<br />
data while the search algorithm stops. A solution would be to slightly modify the<br />
output of the algorithm <strong>and</strong> relaunch the search.<br />
Because of the great number of parameters <strong>and</strong> the difficulty in analyzing the cost<br />
function, this re-initialization is rather venturesome. It is difficult to determine which<br />
parameters shall be modified, <strong>and</strong> how. We propose to compare the measured data (I<br />
<strong>and</strong> ωr) to the predictions ( Ĩ <strong>and</strong> ˜ωr), using the initial set of parameters, <strong>and</strong> to find<br />
p1 (resp. p2) such that p1I ≈ Ĩ (resp. p2ωr ≈ ˜ωr). Then we reuse the initial model in<br />
order to determine how to modify the parameters, e.g.<br />
L ˙ Ĩ = V − RĨ − Laf1Ĩ ˜ωr<br />
R<br />
Laf<br />
B<br />
p<br />
L(p1 ˙<br />
I) =V − R(p1I) − Laf1 (p1I)(p2ωr)<br />
(p1L) ˙<br />
I = V − (Rp1)I − (Laf1 p1p2)Iωr.<br />
Although non st<strong>and</strong>ard, this method gives us new initial values for a new optimization<br />
search. In practice, this method produced excellent results.<br />
⎞<br />
⎟<br />
⎠ .<br />
19 If we keep Laf1 �= Laf2, the least square solution of the second line is trivially (0, 0, 0)<br />
20 We kept it simple: the simplex search method (see, for example, [88, 104]).<br />
83<br />
0
tel-00559107, version 1 - 24 Jan 2011<br />
4.3.4 Implementation Issues<br />
4.3 real-time Implementation<br />
Once the Live CD is loaded <strong>and</strong> the computer is running under the Linux distribution,<br />
the real-time environment has to be activated following three stages:<br />
1. several RTAI <strong>and</strong> COMEDI modules are loaded with the following shell comm<strong>and</strong>s (Cf.<br />
[34], page 11) 21 :<br />
insmod / usr / r e a l t i m e / modules / r t a i h a l . ko}<br />
insmod / usr / r e a l t i m e / modules / r t a i u p . ko $\ sharp$or r t a i l x r t . ko}<br />
insmod / usr / r e a l t i m e / modules / r t a i f i f o s . ko}<br />
insmod / usr / r e a l t i m e / modules / r t a i s e m . ko}<br />
insmod / usr / r e a l t i m e / modules / rtai mbx . ko}<br />
insmod / usr / r e a l t i m e / modules / r t a i m s g . ko}<br />
insmod / usr / r e a l t i m e / modules / r t a i n e t r p c . ko ThisNode =”127.0.0.1”}<br />
insmod / usr / r e a l t i m e / modules / rtai shm . ko}<br />
insmod / usr / r e a l t i m e / modules / r t a i l e d s . ko}<br />
insmod / usr / r e a l t i m e / modules / r t a i s i g n a l . ko}<br />
insmod / usr / r e a l t i m e / modules / r t a i t a s k l e t s . ko}<br />
modprobe n i p c i m i o }<br />
modprobe comedi }<br />
modprobe kcomedilib }<br />
modprobe c o m e d i fc}<br />
insmod / usr / r e a l t i m e / modules / r t a i c o m e d i . ko }<br />
2. the calibration of input/output signals is taken over by a routine provided with the<br />
Comedi drivers. The corresponding shell comm<strong>and</strong>s are:<br />
comedi \ c o n f i g /dev/ comedi0 n i \ pcimio<br />
comedi \ c a l i b r a t e −−no−c a l i b r a t e −S ni6024e . c a l i b r a t i o n<br />
chmod 666 /dev/comedi {∗}<br />
During this calibration large amplitude step impulses are sent to the motor. In this<br />
part of the procedure, it is essential to safety that the power supply BE OFF.<br />
At the end of the calibration, when the routine stops, the voltage step IS UP (i.e. a <strong>high</strong><br />
amount of voltage is delivered as soon as one turns the power supply on). This problem<br />
is addressed by implementing a (dummy) program 22 that generates any input signal<br />
<strong>and</strong> sends it to the power supply. The corresponding executable is then run for a few<br />
seconds. At the end of every RTAI-Lab generated program, output signals generated by<br />
the program are reset to zero. Consider that this program is named end of load.cos. The<br />
corresponding realtime executable, after compilation, is end of load.exe. The comm<strong>and</strong><br />
lines for a full <strong>and</strong> safe calibration are then:<br />
comedi \ c o n f i g /dev/ comedi0 n i \ pcimio<br />
comedi \ c a l i b r a t e −−no−c a l i b r a t e −S ni6024e . c a l i b r a t i o n<br />
chmod 666 /dev/comedi {∗}<br />
. / e n d of l o a d −f 5<br />
21 Without Super User rights, those comm<strong>and</strong>s are ignored. Employing the sudo comm<strong>and</strong> is sufficient.<br />
22 i.e. A clock, any signal (sine wave or step) <strong>and</strong> a Digital/Analog block.<br />
84
tel-00559107, version 1 - 24 Jan 2011<br />
4.3 real-time Implementation<br />
3. the RTAI version (i.e. 3.4) that is embedded in the RTAI-Knoppix has an error in<br />
the application file that links the Scicos Analog/Digital block (Analog to digital) of the<br />
RTAI-lib palette to the real-time executable end file. The consequence of this error is<br />
that is that it is impossible to measure more than one signal. After a few discussions<br />
with the RTAI community, a solution was provided to us by R. Bucher in the form of a<br />
corrected version of the faulty file: rtai4 comedi datain.sci. The correct code is given in<br />
Appendix C.1. The files to be replaced are located on the virtual file system UNIONFS<br />
deployed by the Live CD, in the following repositories:<br />
/UNIONFS/ usr / s r c / r t a i −3.4/ r t a i −lab / s c i l a b / macros /RTAI/<br />
/UNIONFS/ usr / l o c a l / s c i l a b −4.0/ macros /RTAI/<br />
It is also necessary to recompile the file in the second repository using the shell comm<strong>and</strong><br />
s c i l a b −comp r t a i 4 c o m e d i d a t a i n . s c i<br />
To do this, one need only to copy/paste the code of Appendix C.1 in any text editor, save<br />
this file with the name rtai4 comedi datain.sci <strong>and</strong> perform the following comm<strong>and</strong>s<br />
(MY USB KEY has to be replaced with the correct path name):<br />
sudo rm /UNIONFS/ usr / l o c a l / s c i l a b −4.0/ macros /RTAI/ r t a i 4 c o m e d i d a t a i n . s c i<br />
sudo rm /UNIONFS/ usr / l o c a l / s c i l a b −4.0/ macros /RTAI/ r t a i 4 c o m e d i d a t a i n . bin<br />
sudo rm /UNIONFS/ usr / s r c / r t a i −3.4/ r t a i −lab / s c i l a b / macros /RTAI/..<br />
r t a i 4 c o m e d i d a t a i n . s c i<br />
sudo cp MY USB KEY/ r t a i 4 c o m e d i d a t a i n . s c i /UNIONFS/ usr / l o c a l / s c i l a b −4.0/..<br />
macros /RTAI/ r t a i 4 c o m e d i d a t a i n . s c i<br />
sudo cp MY USB KEY/ r t a i 4 c o m e d i d a t a i n . s c i /UNIONFS/ usr / s r c / r t a i −3.4/ r t a i ..<br />
−lab / s c i l a b / macros /RTAI/ r t a i 4 c o m e d i d a t a i n . s c i<br />
sudo cd /UNIONFS/ usr / l o c a l / s c i l a b −4.0/ macros /RTAI/<br />
s c i l a b −comp r t a i 4 c o m e d i d a t a i n . s c i }<br />
The real-time platform is now fully functional.<br />
The I/O signal is sampled sufficiently fast as compared to the motor time constant. We<br />
implement the continuous version of the adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>. The<br />
general structure of the observer is the same as before. It is displayed in Figure 4.26 together<br />
with the corresponding Scicos diagram:<br />
− as before the observer consists of two user defined functions that work in quite the same<br />
way as Matlab S-functions,<br />
− the update of the observer equations is performed continuously <strong>and</strong> the computation<br />
of the innovation is done in the discrete time framework,<br />
− a delay block of length d guarantees that we have access at time t to the estimated<br />
state computed at time t − d (with the default value being equal to the initial guess of<br />
the observer)<br />
− two Analog/Digital blocks get the measured voltage (control variable of the machine)<br />
<strong>and</strong> current (output variable of the machine),<br />
85
tel-00559107, version 1 - 24 Jan 2011<br />
4.3 real-time Implementation<br />
− the two last blocks are <strong>gain</strong> factors that adjust the measured signals to the appropriate<br />
scale 23 .<br />
The implementation of the two main blocks is done with the RTAICblock block that<br />
appears in the RTAI-lib palette. It is an adaptation of the Cblock2 block of the palette<br />
Others 24 .<br />
Generally speaking, Scicos blocks are composed of two files: the interfacing function <strong>and</strong><br />
the computational function. The role of the interfacing function is to link the computational<br />
function to Scicos. It defines how the computational function has to be interpreted <strong>and</strong> what<br />
the appearance of the Scicos block actually is (number of entry points, size <strong>and</strong> name of the<br />
block, etc.). The computational function is the core of the block. It defines what the block<br />
does. Most of the time a flag parameter is used to specify which part of the computational<br />
function has to be considered. As may be guessed from its name, the computational function<br />
of this block has to be written in C code. The structure is similar to that of a Matlab<br />
S-function (see [41], Chpt. 9, in particular Sec. 9.5.2).<br />
The calculation of a solution for the Riccati equation requires several matrix multiplications.<br />
We examined the two following approaches:<br />
1. Scicos is embedded into Scilab, which deals pretty smoothly with the multiplication of<br />
matrices. Scilab is built from several FORTRAN, C <strong>and</strong> C++ routines <strong>and</strong> is open<br />
source. This means that the original files are serviceable from Scilab source code. In<br />
order to use those routines in C, the header<br />
#include <br />
is required. The two routines we need are<br />
(a) extern int C2F(dmmul)(); that takes the matrices A, B, C as input parameters<br />
<strong>and</strong> outputs the matrix C = A × B,<br />
(b) extern int C2F(dmmul)(); that takes the matrices A, B, C as input parameters<br />
<strong>and</strong> outputs the matrix C = C + A × B,<br />
Combinations of those two functions enable us to perform all the matrix multiplications<br />
required. In addition, recall that the Ricatti matrix of <strong>Kalman</strong>-like <strong>filter</strong>s is square<br />
symmetric, i.e., for a dim(n × n) matrix, only n(n + 1)/2 integrations (or updates)<br />
are required. A small program that transforms the square matrix into a corresponding<br />
column vector <strong>and</strong> vice versa, must be developed.<br />
2. the matrices used have particular shapes:<br />
− A(u) is an upper diagonal matrix,<br />
− Q <strong>and</strong> R are taken diagonal,<br />
− b ∗ (z, u) is lower triangular.<br />
23 The I/O card delivers a digital input positive signal on the range (0 − 5), while the maximum current<br />
supported by the DC supply is 10 A. The scaling factor is therefore 2. The scaling factor for the voltage is 60.<br />
24 The palette Others is a regular Scicos palette. Since those two functions need to interact with the real-time<br />
routine of the operating system <strong>and</strong> have to be taken from the RTAI-lib palette.<br />
86
tel-00559107, version 1 - 24 Jan 2011<br />
z(t<br />
dz/dt=<br />
dS/dt=<br />
d!/dt=<br />
u(t<br />
d delay<br />
Innovation<br />
y(t<br />
4.3 real-time Implementation<br />
Figure 4.26: Decomposition of the adaptive-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>.<br />
(development diagram <strong>and</strong> Scicos block of the real-time task)<br />
Consequently, developing the equations on paper gives us simplified expressions. In<br />
addition, useless computations are avoided 25 .<br />
In the case of the DC machine, with a model made up of 3 equations, the second solution is<br />
definitely the one to use.<br />
The computation of the innovation requires a solution of the model given in equation<br />
(4.3.3) over a time window of length d. This may also be done using an external routine,<br />
lsode, which already exists in Scilab source code. It is the simulator used both by Scilab<br />
<strong>and</strong> Scicos to cope with ordinary differential equations. Here a<strong>gain</strong> the machine.h header<br />
<strong>and</strong> a function call, identical to the ones described above, need to be included (for more<br />
information on how to use this routine see [73]). Unfortunately, unlike dmmul <strong>and</strong> dmmul1,<br />
the use of lsode is not supported by the real-time compiler. We instead implement a fourth<br />
order Runge-Kutta algorithm (see [104] for example).<br />
The C code of those two computational functions is given in Appendices C.3 <strong>and</strong> C.4.<br />
4.3.5 Experimental Results<br />
We implemented the adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> along with<br />
− a Luenberger <strong>high</strong>-<strong>gain</strong> observer,<br />
− an <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>,<br />
− <strong>and</strong> a <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>.<br />
Several simulations were performed in order to find <strong>and</strong> correct values for the <strong>high</strong>-<strong>gain</strong><br />
parameters. The parameters were estimated at a low speed (ωr = 180 rad.s −1 ) <strong>and</strong> the<br />
observers tested according to the following scenario:<br />
25 In the present case n = 3 which is rather low <strong>and</strong> allows us to reasonably develop the equations by h<strong>and</strong>.<br />
In the case of systems with much <strong>high</strong>er dimensions or multiple output systems the use of formal calculation<br />
softwares such as Mathematica, Mapple or Maxima [2] shall be considered.<br />
87
tel-00559107, version 1 - 24 Jan 2011<br />
− the machine is fed 54V for 30 seconds<br />
− at t = 30 the input voltage is switched to 42V for another 30 seconds<br />
4.3 real-time Implementation<br />
− the voltage is then raised to 66V <strong>and</strong> finally shut down after 30 seconds.<br />
At each step, for a period of about 10 seconds, an undetermined frictional force is applied<br />
to the shaft of the motor (those perturbations are applied by h<strong>and</strong>, which explains why we<br />
operate at such low speeds).<br />
Figure 4.27 shows the estimations provided by the Luenberger observer in an open loop 26 .<br />
The <strong>high</strong>-<strong>gain</strong> parameter was set to θ =2.5 <strong>and</strong> the application was run with a 0.001 seconds<br />
time sampling.<br />
Because of the additional computations needed to dynamically solve the Ricatti equation,<br />
the <strong>high</strong>-<strong>gain</strong> <strong>Kalman</strong> <strong>filter</strong> is often seen as a very slow observer. Compared to a Luenberger<br />
<strong>filter</strong> this is indeed the case. Thus, we ran the real-time task at time samplings of 0.01<br />
seconds. On the positive side, this observer is more efficient than a Luenberger when dealing<br />
with systems with a matrix A that depends on the input variable u(t).<br />
The results presented in Figure 4.28 show the estimation of the rotational speed computed<br />
by both an <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> (θ = 1) <strong>and</strong> its <strong>high</strong>-<strong>gain</strong> counterpart (θ =2.5). Since<br />
our perturbations are done by h<strong>and</strong> (<strong>and</strong> are thus not reproducible), the only way we can<br />
display such information is to run the two observers in parallel. We therefore feel that it<br />
is possible to tune the code of the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> to make it run efficiently with a<br />
sample time of 0.001 seconds. As expected, the non <strong>high</strong>-<strong>gain</strong> <strong>filter</strong> reacts more slowly to the<br />
applied perturbations. As the measurement noise is not large, it is difficult to distinguish the<br />
(bad) influence of a large value of θ on the estimation. This influence can still be noticed in<br />
the time windows [5; 10] <strong>and</strong> [25; 30].<br />
The adaptive-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> is more dem<strong>and</strong>ing in terms of computational<br />
time even though this observer runs at the sample time 0.01 seconds. Table 4.2 shows the<br />
values selected for this experiment.<br />
The results of this last experiment are displayed in Figure 4.29. Because this run was<br />
done with no other observer in parallel, a comparison is not easy to make. Still, we can see<br />
that, when dealing with perturbations, the observer has a speed of convergence comparable<br />
to that of the <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> <strong>and</strong> responds in a nature that is as smooth<br />
as the one of the <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>.<br />
If we take a look at Figure 4.30 we see that the parameter θ reacts 9 times during<br />
the experiment: once for every modification plus one extra time corresponding to a bad<br />
initialisation. Those reactions correspond to:<br />
− measured changes of the input voltage,<br />
− non-measured changes in the load torque (i.e. perturbations).<br />
It seems regular that changes occur in the second situation but not in first. In fact, this is<br />
due to modeling errors which means that the innovation may not vanish. This problem is<br />
solved by <strong>filter</strong>ing the innovation 27 in the following way:<br />
26 During perturbations estimation is less precise but stays in a range of 10 to 15% of the real value.<br />
Remember that we had no sensor to measure the torque precisely when the model was calibrated.<br />
27 The convergence result can be proven with such a <strong>filter</strong>ing process. Once the time d ∗ of Theorem 36 has<br />
been set, we have to design the <strong>filter</strong>ing procedure in such a way that I doesn’t vanish in a time less than d ∗ .<br />
88
tel-00559107, version 1 - 24 Jan 2011<br />
Parameter Value Role<br />
Q diag(1, 10 −1 , 10 −2 ) Filtering<br />
R 1 Filtering<br />
θ1 1.25 High-<strong>gain</strong><br />
β 1664 π<br />
e Adaptation*<br />
m1 0.005 Adaptation*<br />
m2 0.004 Adaptation<br />
λ 100 Adaptation*<br />
∆T 0.01 Adaptation*<br />
d 0.1 Innovation<br />
δ 0.1 Innovation*<br />
Table 4.2: Final choice of parameters (*: Application-free parameters).<br />
� ˙If = α(I − If )<br />
Iused = I − If<br />
where α fixes the maximum time that θ will remain fixed at its maximum value.<br />
4.4 Conclusions<br />
4.4 Conclusions<br />
In this chapter, the adaptive <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> was completely defined. A<br />
sigmoid function allows us to take care of the influence of measurement noise on the final value<br />
of innovation. We proposed a clear methodology in order to efficiently tune the parameters of<br />
the observer. Its performance was compared to those of a pure <strong>high</strong>-<strong>gain</strong> <strong>and</strong> a non <strong>high</strong>-<strong>gain</strong><br />
observer in simulation.<br />
In the second part of this chapter, the implementation of the observer, in a hard real-time<br />
environment, on a simple process has been investigated in detail. The observer’s behavior is<br />
as efficient as it is in simulations. The compliance to hard real-time constraints showed that<br />
the effective use of this algorithm is not a mathematician’s mid-summer night’s dream.<br />
89
tel-00559107, version 1 - 24 Jan 2011<br />
!%#$<br />
!"#$<br />
!&'$<br />
!%#$<br />
!"#$<br />
!&'$ !%#$ !"#$<br />
4.4 Conclusions<br />
Figure 4.27: Speed estimation using a <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> Luenberger observer.<br />
(+p): begining of perturbation, (-p): end of perturabtion, (Ic): change of the input.<br />
!%#$<br />
!"#$<br />
!&'$<br />
!%#$<br />
Figure 4.28: Speed estimation using a <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong><br />
(+p): begining of perturbation, (-p): end of perturabtion, (Ic): change of the input.<br />
90<br />
!"#$<br />
!&'$<br />
!%#$<br />
!"#$
tel-00559107, version 1 - 24 Jan 2011<br />
!%#$ !"#$ !&'$<br />
!%#$<br />
!"#$<br />
!&'$ !%#$ !"#$<br />
4.4 Conclusions<br />
Figure 4.29: Speed estimation using the adaptive-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong><br />
(+p): begining of perturbation, (-p): end of perturabtion, (Ic): change of the input.<br />
#+&<br />
#+!<br />
"+&<br />
"+!<br />
! "! #! $! %! &! '! (! )! *! "!!<br />
,-./<br />
Figure 4.30: Evolution of theta.<br />
91
tel-00559107, version 1 - 24 Jan 2011<br />
Chapter 5<br />
Complements<br />
Contents<br />
5.1 Multiple Inputs, Multiple Outputs Case . . . . . . . . . . . . . . . 93<br />
5.1.1 System Under Consideration . . . . . . . . . . . . . . . . . . . . . . 93<br />
5.1.2 Definition of the Observer . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
5.1.3 Convergence <strong>and</strong> Proof . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />
5.1.3.1 Lemma on Innovation . . . . . . . . . . . . . . . . . . . . . 96<br />
5.1.3.2 Preparation for the Proof . . . . . . . . . . . . . . . . . . . 98<br />
5.1.3.3 Intermediary Lemmas . . . . . . . . . . . . . . . . . . . . . 100<br />
5.1.3.4 Proof of the Theorem . . . . . . . . . . . . . . . . . . . . . 101<br />
5.2 Continuous-discrete Framework . . . . . . . . . . . . . . . . . . . . 103<br />
5.2.1 System Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104<br />
5.2.2 Observer Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />
5.2.3 Convergence Result . . . . . . . . . . . . . . . . . . . . . . . . . . . 106<br />
5.2.4 Innovation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />
5.2.5 Preparation for the Proof . . . . . . . . . . . . . . . . . . . . . . . . 108<br />
5.2.6 Proof of the Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />
92
tel-00559107, version 1 - 24 Jan 2011<br />
5.1 Multiple Inputs, Multiple Outputs Case<br />
This chapter contains several additional <strong>and</strong> complementary considerations, which are<br />
related to adaptive <strong>high</strong>-<strong>gain</strong> observers. The first section provides some insight into the<br />
multiple outputs case. A generalization of the observer of Chapter 3 is also presented. In the<br />
second section, we develop an observer for a continuous-discrete system.<br />
For these two cases, we define the requirements necessary to achieve exponential convergence.<br />
5.1 Multiple Inputs, Multiple Outputs Case<br />
From a theoretical point of view, the multiple outputs case is harder to h<strong>and</strong>le than the case<br />
of a single output. Indeed, there is no unique observability form (see [19, 20, 27, 51, 57, 63, 84]<br />
<strong>and</strong> the references herein). The multiple outputs case is also more complex in practice since<br />
the various normal forms lead to different definitions of the observer. In the section below,<br />
we propose a generalization of the normal form (3.2) together with the definition of the<br />
corresponding observer. The proof of the convergence of this observer is given in Subsection<br />
5.1.3.<br />
Although in a more compact form than in Chapter 3, we keep the proof self contained,<br />
which implies that we will repeat ourselves to some extent. The modifications of the proof,<br />
which are specific to the Multiple Inputs/Multiple Outputs(MIMO) case, are denoted by a<br />
thin vertical line in the left margin. The single output case, which was presented before, is<br />
included in this generalized version.<br />
5.1.1 System Under Consideration<br />
We focus on a blockwise generalization of the multiple input, single output form (3.2) of<br />
Chapter 3. A similar form has been used in the Ph.D. thesis of F. Viel, [113] for a <strong>high</strong>-<strong>gain</strong><br />
<strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>. Another choice has been made in [57] for an even dimension state<br />
vector.<br />
− The state variable x(t) resides, as before, within a compact subset χ ⊂ R n ,<br />
− The input variable u(t) resides within a subset Uadm ⊂ R nu ,<br />
− The output vector y(t) is within R ny where ny ≤ 1.<br />
The system is of the form:<br />
<strong>and</strong> the state variable is decomposed as<br />
�<br />
dx<br />
dt = A (u) x + b (x, u)<br />
y = C (u) x.<br />
x(t) = � x1(t), ..., xny(t) �′<br />
,<br />
, (5.1)<br />
where for any i, i ∈ {1, ..., ny}: xi ∈ χi ⊂ Rni ny �<br />
, χi compact. Therefore n = ni, <strong>and</strong> each<br />
element xi(t) is such that:<br />
xi(t) = � x 1 i (t),x 2 i (t), ..., x ni<br />
i (t)�′ .<br />
93<br />
i=1
tel-00559107, version 1 - 24 Jan 2011<br />
5.1 Multiple Inputs, Multiple Outputs Case<br />
The matrices A(u) <strong>and</strong> C(u) are given by:<br />
⎛<br />
⎞<br />
A1(u) 0 . . . 0<br />
⎜ 0 A2(u) . . . 0 ⎟<br />
A = ⎜<br />
⎝<br />
.<br />
. .. . ..<br />
⎟<br />
. ⎠<br />
0 . . . 0 Any(u)<br />
, Ai(u)<br />
⎛<br />
0 α<br />
⎜<br />
= ⎜<br />
⎝<br />
2 i . . . 0<br />
0 . ⎞<br />
. .<br />
. ..<br />
⎟<br />
0 ⎟<br />
.<br />
. .. . ..<br />
⎟ ni α ⎠<br />
i<br />
0 . . . 0 0<br />
<strong>and</strong> the matrix C(u) is the generalization:<br />
⎛<br />
C1(u)<br />
⎜ 0<br />
C = ⎜<br />
⎝ 0<br />
0<br />
C2(u)<br />
...<br />
...<br />
...<br />
. ..<br />
0<br />
0<br />
0<br />
⎞<br />
⎟<br />
⎠<br />
0 0 ... Cny(u)<br />
, Ci = � α1 i (u) 0 ... 0 � .<br />
Finally the vector field b(x, u) is defined as:<br />
⎛ ⎞<br />
b1(x, u)<br />
⎜<br />
b(x, u) = ⎜ b2(x, u) ⎟<br />
⎝ ... ⎠<br />
bny(x, u)<br />
, bi(x,<br />
⎛<br />
b<br />
⎜<br />
u) = ⎜<br />
⎝<br />
1 i (x1i ,u)<br />
b2 i (x1i ,x2i ,u)<br />
...<br />
b ni<br />
i (x,u)<br />
⎞<br />
⎟<br />
⎠ .<br />
Remark 47<br />
The very last component of each element bi(., .) of the vector field b is allowed to depend<br />
on the full state. As one can see, the linear part is a Brunovsky form of observability: this<br />
is clearly a generalization of system (3.2). Nevertheless not every observable system can be<br />
transformed into this form.<br />
5.1.2 Definition of the Observer<br />
In order to preserve the convergence result, apply a few modifications to the observer. There<br />
are mainly three points to consider<br />
− the definition of innovation is adapted, rather trivially, to a multidimensional output<br />
space;<br />
− the matrix∆ , generated with the parameter θ is not the generalization one would<br />
imagine initially;<br />
− <strong>and</strong> the definition of the matrix Rθ must remain compatible with the matrix∆.<br />
Let us first recall the equations of the observer:<br />
⎧<br />
⎨<br />
⎩<br />
dz<br />
dt = A(u)z + b(z, u) − S−1C ′<br />
dS<br />
dt<br />
(Cz − y(t))<br />
= −(A(u)+b∗ (z, u)) ′<br />
S − S(A (u)+b∗ (z, u)) + C ′<br />
R −1<br />
dθ<br />
dt<br />
θ C − SQθS<br />
= F(θ, Id (t))<br />
where Q <strong>and</strong> R are symmetric positive definite matrices of dimension (n × n) <strong>and</strong> (ny × ny)<br />
respectively. The innovation at time t is:<br />
� t<br />
Id(t) = �y(s) − y (t − d, z(t − d),s) � 2 ny R ds<br />
where:<br />
t−d<br />
R −1<br />
θ<br />
94
tel-00559107, version 1 - 24 Jan 2011<br />
5.1 Multiple Inputs, Multiple Outputs Case<br />
− y (t − d, z(t − d),s) denotes the output of the system of Subsection 5.1 computed over<br />
the interval s ∈ [t − d; t] with z(t − d) as the initial state,<br />
− y is the measured output of dimension ny.<br />
Let us now denote n∗ = max � �<br />
n1,n2, ..., nny , the size of the largest block, <strong>and</strong> define the<br />
matrix:<br />
⎛<br />
1/θ<br />
⎜<br />
∆i = ⎜<br />
⎝<br />
n∗−ni 0<br />
0<br />
1/θ<br />
... 0<br />
n∗ .<br />
−(ni−1)<br />
. ..<br />
. ..<br />
. ..<br />
.<br />
0<br />
0 . . . 0 1/θn∗ ⎞<br />
⎟<br />
⎠<br />
(5.2)<br />
−1<br />
<strong>and</strong> ∆ is given by diag(∆1, ..., ∆ny). The definition of Qθ is the same as before:<br />
Qθ = θ∆ −1 Q∆ −1 .<br />
We need to provide a new definition for the matrix Rθ. To do so, we begin with the matrix:<br />
⎛<br />
θ<br />
⎜<br />
δθ = ⎜<br />
⎝<br />
n∗−n1 0 ... 0<br />
0 θn∗ . −n2 .. .<br />
. .. . .. 0<br />
0 . . . 0 θn∗ ⎞<br />
⎟<br />
⎠<br />
−nny<br />
,<br />
<strong>and</strong> set:<br />
The initial state of the observer is:<br />
− z(0) ∈ χ ⊂ R n ,<br />
Rθ = 1<br />
θ δθRδθ.<br />
− S(0) ∈ Sn(+), the set of the symmetric positive definite matrices,<br />
− θ(0) = 1.<br />
Remark 48<br />
This definition can also be used for single output systems. Since (ny = 1) ⇒ (n = n1 <strong>and</strong><br />
n ∗ = n) ⇒ (n ∗ − n1 = 0). Therefore:<br />
− δθ =1,<br />
− ∆ is the same as in Chapter 3, equation (3.3).<br />
5.1.3 Convergence <strong>and</strong> Proof<br />
The convergence theorems remain as presented in Chapter 3:<br />
Theorem 49<br />
For any time T ∗ > 0 <strong>and</strong> any ε ∗ > 0, there exist 0 < d < T ∗ <strong>and</strong> a function F (θ, Id) such<br />
that for any time t ≥ T ∗ :<br />
�x (t) − z (t)� 2 ≤ ε ∗ e −a (t−T ∗ )<br />
where a>0 is a constant (independent from ε ∗ ).<br />
95
tel-00559107, version 1 - 24 Jan 2011<br />
5.1 Multiple Inputs, Multiple Outputs Case<br />
The proof of convergence is quite long. For the sake of simplicity, we divide the proof into<br />
several parts:<br />
1. the innovation lemma,<br />
2. a study of the properties of the Riccati matrix S,<br />
3. the calculation of some preliminary inequalities (i.e. the preparation for the proof),<br />
4. the three technical lemmas,<br />
5. <strong>and</strong> the main body of the proof.<br />
Points 2, 4 <strong>and</strong> 5 are essentially the same as in the single output case. Only points 1 <strong>and</strong> 3<br />
require modifications for the multiple output case. The modifications are explained here.<br />
5.1.3.1 Lemma on Innovation<br />
Lemma 50 (Lemma on innovation, multiple output case)<br />
Let x0 1 ,x02 ∈ Rn <strong>and</strong> u ∈ Uadm. Let us consider the outputs y � 0,x0 1 , ·� <strong>and</strong> y � 0,x0 2 , ·�<br />
of system (5.1) with initial conditions respectively x0 1 <strong>and</strong> x02 . Then the following property<br />
(called persistent observability) holds:<br />
Proof.<br />
∀d >0, ∃λ0 d > 0 such that ∀u ∈ L1 b (Uadm)<br />
� d<br />
�y � 0,x 0 1, τ � − y � 0,x 0 2, τ � � 2 ny R dτ (5.3)<br />
�x 0<br />
1 − x 0<br />
2� 2 ≤ 1<br />
λ 0 d<br />
0<br />
Let x1 (t) =x x 0 1 ,u (t) <strong>and</strong> x2 (t) =x x 0 2 ,u (t) the solutions of (5.1) with xi (0) = x 0 i<br />
A few computations lead to<br />
b (x2,u) − b (x1,u)=B (t)(x2 − x1)<br />
� 1 ∂b<br />
where B(t) =<br />
0 ∂x (αx2 + (1 − α)x1,u)dα.<br />
Set ε = x1 − x2. Let us consider the system:<br />
�<br />
˙ε = [A (u)+B (t)] ε<br />
yɛ = C (u) ε = a1 (u) ε1.<br />
, i =1, 2.<br />
It is uniformly observable1 due to the structure of B (t). We define the Gramm observability<br />
matrix, Gd, using Ψ( t), the resolvent2 of this system:<br />
� d<br />
Gd = Ψ (v) ′ C ′ CΨ (v) dv.<br />
1 See [57], for example. Alternatively, one could compute the observability matrix<br />
φO =<br />
<strong>and</strong> check the full rank condition for any input.<br />
2 Cf. Appendix A.1<br />
0<br />
�<br />
C ′<br />
|(CA) ′<br />
| . . . |(CA n ) ′�′<br />
,<br />
96
tel-00559107, version 1 - 24 Jan 2011<br />
5.1 Multiple Inputs, Multiple Outputs Case<br />
Since �B (t)� ≤Lb, each bi,j(t) can be considered as a bounded element of L∞ [0,d] (R).<br />
�<br />
We identify L∞ [0,d] (R)<br />
�p with L∞ [0,d] (Rp ) where3 We consider the function:<br />
p =<br />
ny �<br />
i=1<br />
ni(ni − 1)<br />
2<br />
+ nyn.<br />
Λ : L ∞ [0,d] (Rp ) × L ∞ [0,d] (Rnu ) −→ R +<br />
(bi,j) (j≤i)∈{1,..,n},u↩ → λmin (Gd)<br />
where λmin (Gd) is the smallest eigenvalue of Gd. Let us endow L ∞ [0,d] (Rp ) × L ∞ [0,d] (Rnu )<br />
with the weak-* topology4 <strong>and</strong> R has the topology induced by the uniform convergence. The<br />
weak-* topology on a bounded set implies uniform continuity of the resolvent, hence Λ is<br />
continuous5 .<br />
Since control variables are supposed to be bounded,<br />
Ω1 =<br />
�<br />
L ∞ [0,d]<br />
�<br />
R n(n+1)<br />
2<br />
�<br />
; �B� ≤Lb<br />
<strong>and</strong><br />
�<br />
Ω2 = u ∈ L ∞ [0,d] (Rn �<br />
);�u� ≤Mu<br />
are compact subsets. Therefore Λ (Ω1 × Ω2) is a compact subset of R which does not contain<br />
0 since the system is observable for any input. � Thus Gd is never singular. Moreover, for Mu<br />
sufficiently large,<br />
includes L∞ [0,d] (Uadm).<br />
�<br />
u ∈ L∞ [0,d] (Rn );�u� ≤Mu<br />
Hence, there exists λ0 d such that Gd ≥ λ0 d Id for any u <strong>and</strong> any matrix B(t) as above. We<br />
conclude that � d �<br />
�y � 0,x 0 1, τ � − y � 0,x 0 2, τ �� �2 dτ ≥ λ 0 �<br />
�x d<br />
0 1 − x 0 �<br />
�<br />
2<br />
2 . (5.4)<br />
0<br />
3 The matrix B(t) can be divided into ny parts of dimensions (ni × n), i ∈ {1, ..., ny}. For each of those<br />
parts, the last line may be full (i.e. derivation of the vector field elements of the form bi,n i (x, u) w. r. t. the<br />
state x). It gives a maximum of nyn elements.<br />
For each one of the ny parts, the lower triangular part of a square of dimension (ni −1×ni −1) may contain<br />
non zero elements. That makes ni(ni − 1)/2 elements.<br />
Therefore the maximum number of non null elements of the matrix B(t) is:<br />
ny �<br />
i=1<br />
ni(ni − 1)<br />
2<br />
+ nyn.<br />
4 The definition of the weak-* topology is given in Appendix A.<br />
5 This property is explained in Appendix A.<br />
97<br />
�
tel-00559107, version 1 - 24 Jan 2011<br />
5.1.3.2 Preparation for the Proof<br />
5.1 Multiple Inputs, Multiple Outputs Case<br />
First, we remind the reader of the change of variables that we performed in Subsection 3.5.<br />
− ɛ = x − z is the estimation error,<br />
− ˜x = ∆x,<br />
− ˜ b(., u) =∆b(∆ −1 ., u),<br />
− ˜ b ∗ (., u) =∆b(∆ −1 ., u)∆ −1 .<br />
The definition of the matrix ∆ gives us the following property.<br />
Lemma 51<br />
1. The vector field ˜ b(˜x, u) has the same Lipschitz constant as b(x, u).<br />
2. The matrix ˜ b ∗ (˜x, u) has the same bound as the Jacobian of b(x, u)<br />
Remark 52<br />
This lemma is valid for both the definition of Chapter 3 <strong>and</strong> the definition of Section 5.1.2<br />
provided above. The proof is given in [57], pg. 215. We reproduce the proof for the multiple<br />
output case since it allows us to justify the definition of ∆.<br />
Proof.<br />
Recall that θ(t) ≥ 1.<br />
1. Consider a component of ˜b(., u) of the form ˜b k i (., u) with i ∈ {1, ..., ny} <strong>and</strong> k ∈<br />
{1, ..., ni − 1}. From the change of variables ˜b(., u) =∆b(∆−1 ., u) we have:<br />
˜k 1<br />
bi (x, u) =<br />
n∗ − ni + k − 1 b<br />
�<br />
θ n∗−ni 1<br />
xi , θ n∗−ni+1 2<br />
xi , ...,θ n∗ �<br />
−ni+k−1 k<br />
xi ,u .<br />
We denote Lb as the Lipschitz constant of b(., u) w.r.t. the variable x:<br />
�<br />
�<br />
�˜b k i (x, u) − ˜b k �<br />
�<br />
i (z, u) �<br />
=<br />
≤<br />
1<br />
θn∗ �<br />
�b −ni +k−1<br />
� θn∗−nix1 i , ...,θ n∗−ni+k−1xk i ,u �<br />
−b � θn∗−niz1 i , ...,θ n∗−ni+k−1zk i ,u �� �<br />
Lb<br />
θn∗ �<br />
�<br />
−ni +k−1<br />
� θn∗−nix1 i , ...,θ n∗−ni+k−1xk i ,u �<br />
− � θn∗−niz1 i , ...,θ n∗−ni+k−1zk i ,u �� �<br />
Lb<br />
≤<br />
θn∗−ni +k−1 θn∗−ni+k−1 � � � x1 i , ..., xki ,u� − � z1 i , ..., zk i ,u��� �<br />
= Lb<br />
� � x1 i , ..., xki ,u� − � z1 i , ..., zk i ,u��� .<br />
(5.5)<br />
Therefore the Lipschitz constant of b(., .) is the same in the two coordinate systems.<br />
Consider now an element of the form ˜b ni<br />
i (., u). Such an element can be a function of<br />
the full state. First of all we note that when n ∗ = max<br />
i∈{1,...,ny} ni we have:<br />
� � ∆ −1 x − ∆ −1 z � �≤θ n∗ −1 �x − z�.<br />
98
tel-00559107, version 1 - 24 Jan 2011<br />
5.1 Multiple Inputs, Multiple Outputs Case<br />
The matrix ∆ has been defined such that, for all ni, i ∈ {1, ..., ny}:<br />
This implies that for all ni, i ∈ {1, ..., ny}:<br />
proving the first part of the lemma.<br />
˜ni 1<br />
bi (., u) =<br />
θn∗−1 ˜b ni<br />
i (., u).<br />
� ˜ bni (˜x, u) − ˜ bni (˜z, u)� ≤Lb�x − z�,<br />
2. The situation is simpler for the Jacobian matrix ˜ b ∗ (., u). Consider any element denoted<br />
˜ b(i,j)(˜z). From the definition of the change of variables there exists ĩ ∈ N <strong>and</strong> ˜j ∈ N<br />
(i.e. they can be equal to one) such that:<br />
˜ b ∗ (i,j) (˜z) = 1<br />
θ ĩ b∗ (i,j) (˜z)θ˜j<br />
with ĩ ≥ ˜j (otherwise the element b∗ (i,j) = 0 because of the structure of b(x, u)). Then<br />
proving the lemma.<br />
�˜b ∗ (i,j) (˜z)� ≤θ˜j−ĩ ∗<br />
�b(i,j) (˜z)� ≤ �b ∗ (i,j) (˜z)� ≤Lb.<br />
Remark 53<br />
When ∆ is defined in a different way, the Lipschitz constant of ˜ b isn’t Lb. The constant<br />
actually depends on the value of θ. This leads to a inconsistent proof since Lb is used in the<br />
definition of θ1 in the proof of Theorem 49.<br />
When an observability form distinct from (5.1) is used, ∆ has to be redefined in such a<br />
way that the condition (5.5) is satisfied.<br />
We have the following set of identities:<br />
<strong>and</strong><br />
(a) ∆A = θA∆, (b) A ′<br />
∆ = θ∆A ′<br />
,<br />
(c) A∆−1 = θ∆−1A, (d) ∆−1A ′<br />
= θA ′<br />
∆−1 ,<br />
d<br />
F(θ,I)<br />
(e) dt (∆) =− θ N∆, (f) d<br />
dt<br />
(g) ∆ −1 C ′<br />
R −1<br />
θ C∆−1 = ∆ −1 C ′ � 1<br />
� ∆ −1 � = F(θ,I)<br />
θ N∆−1 ,<br />
θ δθRδθ<br />
= θC ′<br />
R−1C. � −1 C∆ −1<br />
The matrix N is defined by<br />
⎛<br />
N1<br />
⎜<br />
N = ⎜ 0<br />
⎜<br />
⎝ .<br />
0<br />
N2<br />
. ..<br />
...<br />
. ..<br />
. ..<br />
0<br />
.<br />
0<br />
⎞<br />
⎟<br />
⎠<br />
0 . . . 0 Nny<br />
, Ni<br />
⎛<br />
n<br />
⎜<br />
= ⎜<br />
⎝<br />
∗ − ni<br />
0<br />
0<br />
n<br />
... 0<br />
∗ − ni +1 . .<br />
. ..<br />
. .<br />
. ..<br />
.<br />
0<br />
0 . . . 0 n∗ ⎞<br />
⎟<br />
⎠<br />
− 1<br />
.<br />
99<br />
(5.6)<br />
(5.7)
tel-00559107, version 1 - 24 Jan 2011<br />
5.1 Multiple Inputs, Multiple Outputs Case<br />
The dynamics of the error after the change of coordinates are given by:<br />
d˜ε<br />
dt<br />
= θ<br />
<strong>and</strong> the Riccati equation becomes<br />
d ˜ S<br />
dt<br />
= θ<br />
� F(θ,I)<br />
θ 2<br />
�<br />
F(θ, I)<br />
−<br />
θ2 N ˜ε + A˜ε − ˜ S −1 C ′<br />
R −1 C ˜ε + 1<br />
� �<br />
˜b (˜z, u) − ˜b (˜x, u)<br />
θ<br />
�<br />
, (5.8)<br />
�<br />
N ˜ S + ˜ SN<br />
�<br />
−<br />
�<br />
A ′ ˜ S + ˜ SA<br />
These two equations are used to compute the derivative of �ε ′ � S�ε:<br />
�<br />
+ C ′<br />
R−1C − ˜ SQ˜ S − 1<br />
θ ˜ S˜b ∗ (˜z, u) − 1<br />
θ ˜b ∗′ (˜z, u) ˜ �<br />
S .<br />
(5.9)<br />
d<br />
�<br />
�ε<br />
dt<br />
′ �<br />
S�ε � ≤−θqm�ε ′ � �<br />
S� 2 ′<br />
�ε +2�ε �S ˜b (�z, u) − ˜b (�x, u) − ˜∗ b (�z, u) �ε . (5.10)<br />
The proof of the theorem comes from the stability analysis of this last equation. This analysis<br />
requires the use of four lemmas, which we state below.<br />
5.1.3.3 Intermediary Lemmas<br />
The proofs of Lemmas 54 <strong>and</strong> 57 can be found in Sections 3.6 <strong>and</strong> 3.7 respectively. Lemmas<br />
55 <strong>and</strong> 56 are proven in Appendix B.2.<br />
Lemma 54 (Bounds for the Riccati equation)<br />
Let us consider the Riccati equation (5.8). We suppose that<br />
�<br />
�<br />
− the functions ai (u (t)), ��b ∗ i,j (z,u)<br />
�<br />
�<br />
�,<br />
−<br />
�<br />
�<br />
�<br />
� F(θ,I)<br />
�<br />
�<br />
�<br />
�are smaller than aM > 0 <strong>and</strong> if ai (u (t)) >am > 0<br />
θ 2<br />
− S (0) = S0 is symmetric definite positive, taken in a compact of the form aId ≤ S0 ≤<br />
bId, <strong>and</strong><br />
− θ(0) = 1<br />
Then there exist two constants 0 < α 0,t≥ 0} ⊂ R n be absolutely continuous, <strong>and</strong> satisfying:<br />
dx(t)<br />
dt ≤−k1x + k2x √ x,<br />
for almost all t>0, for k1, k2 > 0. Then, if x (0) < k2 1<br />
4k2 , x(t) ≤ 4 x (0) e<br />
2<br />
−k1t .<br />
Lemma 56 (Technical lemma two)<br />
Consider �b (˜z) − �b (˜x) − �b ∗ (˜z)˜ε as in the inequality (3.12) (omitting to write u in ˜ �<br />
b) <strong>and</strong><br />
�<br />
suppose θ ≥ 1. Then ��b (˜z) − �b (˜x) − �b ∗ �<br />
�<br />
(˜z)˜ε � ≤ Kθn−1 �˜ε� 2 , for some K>0.<br />
100
tel-00559107, version 1 - 24 Jan 2011<br />
5.1 Multiple Inputs, Multiple Outputs Case<br />
Lemma 57 (adaptation function)<br />
For any ∆T >0, there exists a positive constant M(∆T ) such that:<br />
− for any θ1 > 1,<strong>and</strong><br />
− any γ1 > γ0 > 0,<br />
there is a function F (θ, I) such that the equation<br />
˙θ = F (θ, I (t)) , (5.11)<br />
for any initial value 1 ≤ θ (0) < 2θ1, <strong>and</strong> any measurable positive function I (t), has the<br />
properties:<br />
1. (5.11) has a unique solution θ (t) defined for all t ≥ 0, <strong>and</strong> this solution satisfies 1 ≤<br />
θ (t) < 2θ1,<br />
�<br />
�<br />
2. � F(θ,I)<br />
�<br />
�<br />
� ≤ M,<br />
θ 2<br />
3. if I (t) ≥ γ1 for t ∈ [τ,τ + ∆T ] then θ (τ + ∆T ) ≥ θ1,<br />
4. while I (t) ≤ γ0, θ (t) decreases to 1.<br />
5.1.3.4 Proof of the Theorem<br />
First of all let us choose a time horizon d (in Id (t)) <strong>and</strong> a time T such that 0 < d < T < T ∗ .<br />
Let F be a function as in Lemma 57 with∆ T = T − d, <strong>and</strong> M such that fact 2 of Lemma 57<br />
is true. Let α <strong>and</strong> β be the bounds from Lemma 54.<br />
From the preparation of the proof, inequality (5.10) can be written, using Lemma 54 (i.e.<br />
using ˜ S ≥ α Id)<br />
d˜ε ′ ˜ S˜ε (t)<br />
dt<br />
≤−αqmθ˜ε ′ � �<br />
S˜ε ˜ ′<br />
(t) + 2˜ε S˜<br />
˜b (˜z) − ˜b (˜x) − ˜∗ b (˜z)˜ε . (5.12)<br />
From (5.12) we can deduce two inequalities: the first one, global, will be used mainly<br />
when ˜ε ′ ˜ S˜ε (t) is not in a neighborhood of 0 <strong>and</strong> θ is large. The second one, local, will be used<br />
when ˜ε ′ ˜ S˜ε (t) is small, whatever the value of θ.<br />
Using � �<br />
�� ˜b (˜z) − ˜b (˜x) − ˜∗ �<br />
b (˜z)˜ε � ≤ 2Lb �˜ε� ,<br />
together with α Id ≤ ˜ S ≤ β Id (Lemma 54), (5.12) becomes the “global inequality”<br />
d˜ε ′ ˜ S˜ε (t)<br />
dt<br />
≤<br />
�<br />
−αqmθ +4 β<br />
α Lb<br />
�<br />
˜ε ′ S˜ε ˜ (t) . (5.13)<br />
Thanks to Lemma 56 we get the“local inequality” as follows:<br />
�<br />
�<br />
�˜b (˜z) − ˜b (˜x) − ˜b ∗ �<br />
�<br />
(˜z)˜ε � ≤ Kθ n−1 �˜ε� 2 .<br />
101
tel-00559107, version 1 - 24 Jan 2011<br />
Since 1 ≤ θ ≤ 2θ1 inequality (5.12) implies<br />
Since �˜ε� 3 =<br />
� 3<br />
�˜ε�<br />
2� 2<br />
d˜ε ′ ˜ S˜ε (t)<br />
dt<br />
≤<br />
5.1 Multiple Inputs, Multiple Outputs Case<br />
≤−αqm˜ε ′ S˜ε ˜ (t)+2K (2θ1) n−1 � �<br />
�<br />
�S˜ �<br />
� �˜ε� 3 .<br />
� 1<br />
α ˜ε′ ˜ S˜ε (t)<br />
� 3<br />
2<br />
, it becomes<br />
˜ε ′ S˜ε ˜ (t) ≤−αqm˜ε ′ S˜ε ˜<br />
2K (2θ1)<br />
(t)+ n−1 β<br />
α 3<br />
2<br />
Let us apply 6 Lemma 55, which states that if<br />
then, for any t ≥ τ,<br />
˜ε ′ ˜ S˜ε (τ) ≤<br />
α5q2 m<br />
16 K2 (2θ1) 2n−2 ,<br />
β2 ˜ε ′ ˜ S˜ε (t) ≤ 4˜ε ′ ˜ S˜ε (τ)e −αqm(t−τ) .<br />
�<br />
˜ε ′ � 3<br />
2<br />
S˜ε ˜ (t) . (5.14)<br />
Provided there exists a real γ, such that<br />
�<br />
1 αε∗ γ ≤ 2n−2 min<br />
(2θ1) 4 , α5q2 m<br />
16 K2β 2<br />
�<br />
, (5.15)<br />
then ˜ε ′ ˜ S˜ε (τ) ≤ γ implies, for any t ≥ τ,<br />
From (5.13)<br />
˜ε ′ ˜ S˜ε (t) ≤<br />
αε ∗<br />
(2θ1) 2n−2 e−αqm(t−τ) . (5.16)<br />
˜ε ′ ˜ S˜ε (T ) ≤ ˜ε ′ ˜ S˜ε (0) e (−αqm+4 β<br />
α Lb)T ,<br />
<strong>and</strong> if we suppose θ ≥ θ1 for t ∈ [T, T ∗ ], T ∗ >T, using (5.13) a<strong>gain</strong>:<br />
where<br />
Now, we choose θ1 <strong>and</strong> γ for<br />
˜ε ′ ˜ S˜ε (T ∗ ) ≤ ˜ε ′ ˜ S˜ε (0) e (−αqm+4 β<br />
α Lb)T e (−αqmθ1+4 β<br />
α Lb)(T ∗ −T )<br />
≤ M0e −αqmT e<br />
M0e −αqmT e<br />
β<br />
4 LbT ∗<br />
α e−αqmθ1(T ∗−T ) ,<br />
(5.17)<br />
M0 = sup<br />
x,z∈X<br />
ε ′ Sε (0) . (5.18)<br />
β<br />
4 LbT ∗<br />
α e −αqmθ1(T ∗−T )<br />
≤ γ (5.19)<br />
<strong>and</strong> (5.15) to be satisfied simultaneously, which is possible since e−cte×θ1 cte <<br />
θ 2n−2 for θ1<br />
1<br />
sufficiently large. Let us choose a function F as in Lemma 57 with∆ T = T − d <strong>and</strong> γ1 = λ0 dγ β .<br />
6 This lemma cannot be applied if we use Qθ <strong>and</strong> R instead of Qθ <strong>and</strong> Rθ in the definition of the observer<br />
as in [38]. This is due to the presence of a F<br />
θ<br />
times.<br />
term that prevents parameters k1 <strong>and</strong> k2 to be positive for all<br />
102
tel-00559107, version 1 - 24 Jan 2011<br />
5.2 Continuous-discrete Framework<br />
We claim that there exists τ ≤ T ∗ such that ˜ε ′ ˜ S˜ε (τ) ≤ γ. Indeed, if ˜ε ′ ˜ S˜ε (τ) > γ for all<br />
τ ≤ T ∗ then because of Lemma 50:<br />
γ < ˜ε ′ S˜ε ˜ 2 2 β<br />
(τ) ≤ β �˜ε (τ)� ≤ β �ε (τ)� ≤<br />
λ0 Id (τ + d) .<br />
d<br />
Therefore, Id (τ + d) ≥ γ1 for τ ∈ [0,T ∗ ] <strong>and</strong> hence Id (τ) ≥ γ1 for τ ∈ [d, T ∗ ], so we have<br />
θ (t) ≥ θ1 for t ∈ [T, T ∗ ], which results in a contradiction (˜ε ′ ˜ S˜ε (T ∗ ) ≤ γ) because of (5.17)<br />
<strong>and</strong> (5.19).<br />
Finally, for t ≥ τ, using (5.16)<br />
<strong>and</strong> the theorem is proven.<br />
�ε (t)� 2 ≤ (2θ1) 2n−2 �˜ε (t)� 2<br />
2n−2<br />
(2θ1)<br />
≤ α<br />
≤ ε∗e−αqm(t−τ) ,<br />
˜ε ′ ˜ S˜ε (t)<br />
(5.20)<br />
Remark 58<br />
Just as in the single output case, an alternative result can be derived. Refer to Remark<br />
44, Chapter 3.<br />
5.2 Continuous-discrete Framework<br />
In the present section we develop an adaptation of the observer to continuous discrete<br />
systems. In such systems, the evolution of the state variables is described by a continuous<br />
process, <strong>and</strong> the measurement component of the system by a discrete function. When we<br />
cannot use the quasi-continuity assumption of measurements, as we did before, this version<br />
is the one to use.<br />
In engineering sciences, when pure discrete <strong>filter</strong>s are used, the discrete model needed is<br />
sometimes obtained from a continuous formulation. The model<br />
is transformed into:<br />
˙x = f(x(t),u(t),t)<br />
x(t ∗ + δt) =x(t ∗ )+f (x(t ∗ ),u(t ∗ ),t ∗ ) δt,<br />
where δt represents the sampling time of the process. This equation represents nothing<br />
more than Euler’s numerical integration method. In other words, this modeling technique is<br />
a special case of the continuous-discrete framework. The mechanization equation of inertial<br />
navigation systems 7 is an example of such modeling, details of which can be found in [10, 114]<br />
for example.<br />
Although we directly consider a single output continuous-discrete normal form, we want<br />
to draw the reader’s attention to the problem of the preservation of observability under sampling.<br />
In [15], the authors prove that for a continuously observable 8 system, observability is<br />
7<br />
The mechanization process merges the data coming from 3-axis accelerometers to those coming from a<br />
gyroscope.<br />
8<br />
Uniformly observable for a class of input functions, <strong>and</strong> uniformly infinitesimally observable in the sense<br />
of the definitions given in Chapter 2.<br />
103
tel-00559107, version 1 - 24 Jan 2011<br />
5.2 Continuous-discrete Framework<br />
preserved provided that the sample time δt is small enough. (Both examples <strong>and</strong> counterexamples<br />
can be found in this article (see also [14] on the same topic)).<br />
Let us state the main theorem of [15].<br />
Theorem 59<br />
Assume that a nonlinear system is observable for every input u(.) <strong>and</strong> uniformly infinitesimally<br />
observable 9 , then for all M>0, there exists a δ0 > 0 such that the associated<br />
δ−sampled system is observable for all δ ≤ δ0 <strong>and</strong> all M, D−bounded input u δ .<br />
5.2.1 System Definition<br />
Let us consider the continuous-discrete version of the multiple input, single output system of<br />
Chapter 3 (Equation 3.2):<br />
�<br />
dx<br />
dt = A(u(t))x + b(x(t),u(t))<br />
(5.21)<br />
yk = Cxk<br />
where<br />
− δt is the constant sampling time of the measurement procedure,<br />
− x (t) ∈ χ ⊂ R n , χ compact, <strong>and</strong> xk = x(kδt), k ∈ N,<br />
− u(t) ∈ Uadm ⊂ R nu bounded, <strong>and</strong> uk = u(kδt), k ∈ N,<br />
− y (t) ∈ R, <strong>and</strong> yk = y(kδt), k ∈ N.<br />
The matrices A (u) <strong>and</strong> C (u) are defined by:<br />
⎛<br />
0<br />
⎜<br />
A(u) = ⎜<br />
.<br />
⎝<br />
a2 (u)<br />
0<br />
0<br />
a3 (u)<br />
. ..<br />
· · ·<br />
. ..<br />
. ..<br />
0<br />
⎞<br />
0<br />
⎟<br />
. ⎟<br />
0 ⎟<br />
an (u) ⎠<br />
0 · · · 0<br />
C = � 1 0 · · · 0 �<br />
with 0
tel-00559107, version 1 - 24 Jan 2011<br />
5.2 Continuous-discrete Framework<br />
Remark 60<br />
Notice that the matrix C is defined differently than in the previous systems. Details lie in<br />
Appendix B, Remark 94 in particular.<br />
5.2.2 Observer Definition<br />
In the continuous-discrete setting the observer is defined by:<br />
1. a set of prediction equations for t ∈ [(k − 1)δt,kδt[,<br />
2. a set of correction equations at times t = kδt.<br />
In the following we use the notations:<br />
− z(t) is the estimated state for all t ∈](k − 1)δt,kδt[,<br />
− zk(−) is the estimated state at the end of a prediction period,<br />
− zk(+) is the estimated state after a correction step (i.e. at the beginning of a new<br />
prediction period).<br />
The prediction equations for t ∈ [kδt, (k + 1)δt[, with initial values zk−1(+), Sk−1(+)<br />
are<br />
�<br />
˙z<br />
˙S<br />
=<br />
=<br />
A(u)z + b(z, u)<br />
− (A(u)+b∗ (z, u)) ′<br />
S − S (A(u)+b∗ (z, u)) − SQθS<br />
(5.22)<br />
where S0 is a symmetric definite positive matrix taken inside a compact subset of the form<br />
aId ≤ S0 ≤ bId.<br />
The correction equations are:<br />
⎧<br />
zk(+) = zk(−) − Sk(+) −1C ′<br />
where<br />
⎪⎨<br />
⎪⎩<br />
Sk(+) = Sk(−)+C ′<br />
�i=d<br />
r −1<br />
θ Cδt<br />
Ik,d = �yk−i − ˆyk−i�<br />
i=0<br />
2<br />
θk = F (θk−1, Ik,d)<br />
− x0 <strong>and</strong> z0 belongs to χ, a compact subset of R n ,<br />
− θ(0) = θ0 = 1,<br />
− r <strong>and</strong> Q are symmetric definite positive matrices 10 :<br />
– Qθ = θ∆ −1 Q∆ −1 ,<br />
– rθ = 1<br />
θ r,<br />
r −1<br />
θ δt(Czk(−) − y)<br />
10 r is written in capital letters to emphasize the fact that the system is single output.<br />
105<br />
(5.23)
tel-00559107, version 1 - 24 Jan 2011<br />
with ∆= diag � {1, 1<br />
θ , ..., 1<br />
θ n−1 } � ,<br />
5.2 Continuous-discrete Framework<br />
− the innovation, Ik,d (d ∈ N ∗ ), is computed over the time window [(k − d)δt; kδt] with:<br />
– yk−i denotes the measurement at epoch k − i, <strong>and</strong><br />
– ˆyk−i denotes the output of system (5.21) at epoch k − i with z ((k − d)δt) as initial<br />
value at epoch k − d.<br />
Remark 61<br />
In [24] we presented a different version of this observer. In this paper, the adaptation of<br />
the <strong>high</strong>-<strong>gain</strong> parameter was determined during the prediction steps via a differential equation.<br />
We changed our strategy with respect to the peculiar manner in which the continuous discrete<br />
version of the observer works.<br />
Recall that the estimation is a sequence of continuous prediction periods followed by discrete<br />
correction steps when a new measurement/observation is available. Consequently, since<br />
innovation is based on the measurements available, it is computed at the correction steps.<br />
Suppose now that θ is adapted via a differential equation. It starts to change during the<br />
prediction step following the computation of a large innovation value, <strong>and</strong> reaches θ1 after<br />
some time. If alternatively θ is adapted at the end of the correction step, directly after the<br />
computation of innovation, then it reaches θ1 much faster.<br />
We opt for the strategy in which θ is adapted at the end of the correction step 11 .<br />
An advantage brought about by this approach is that now we may remove one of the<br />
assumptions on the adaptation function: “there exists M such that | F<br />
θ 2 | 0 <strong>and</strong> any ɛ ∗ > 0, there exist<br />
− two real constants µ <strong>and</strong> θ1,<br />
− d ≥ n − 1 ∈ N ∗ , <strong>and</strong><br />
− an adaptation function F(θ, I),<br />
such that for all δt sufficiently small (i.e. 2θ1δt
tel-00559107, version 1 - 24 Jan 2011<br />
− let θ increase when innovation is large,<br />
− have θ decrease toward 1 when innovation is small.<br />
5.2 Continuous-discrete Framework<br />
In the continuous-discrete setting, an extra hypothesis, related to the sampling time, appears<br />
(see Lemma 63 below). As a consequence the beginning of the proof of Subsection 5.2.6 is<br />
performed independently from δt.<br />
5.2.4 Innovation<br />
The lemma for innovation in the continuous-discrete case is:<br />
Lemma 63<br />
Let x0 , ξ0 ∈ Rn �<br />
<strong>and</strong> u ∈ Uadm. Let us consider the outputs yj 0,x0 � �<br />
<strong>and</strong> yj 0, ξ0 � of<br />
system (5.21) with initial conditions x0 <strong>and</strong> ξ0 respectively. Then the following condition<br />
(called persistent observability) holds:<br />
∀d ∈ N ∗ large enough (i.e. d ≥ n − 1), ∃λ 0 d > 0 such that ∀u ∈ L1 b (Uadm)<br />
�<br />
�x0 − ξ 0<br />
�2 ≤ 1<br />
λ0 i=d<br />
d<br />
i=0<br />
� 0<br />
�yi 0,x � � 0<br />
− yi 0, ξ � � 2 .<br />
Proof.<br />
Let x (t) <strong>and</strong> ξ (t) be the solutions of the first equation of system (5.21) with x 0 <strong>and</strong> ξ 0<br />
as initial values. We denote the controls by u(t).<br />
As in the proof of Lemma 33 we have:<br />
b(ξ,u) − b(x, u) =B(t)(ξ − x) (5.24)<br />
where B (t) = (bi,j) (i,j)∈{1,..,n} is a lower triangular matrix since b (x, u) is a lower triangular<br />
vector field. Set ε = x − ξ. Then<br />
˙ε = [A (u)+B (t)] ε. (5.25)<br />
We consider the system formed by equation (5.25) <strong>and</strong> C (uk) εk = a1 (uk) ε1,k as output. Let<br />
us consider Ψ( t), the resolvent (5.25), <strong>and</strong> the Gramm observability matrix<br />
�i=d<br />
Gd = Ψ (iδt) ′<br />
i=0<br />
C ′<br />
iCiΨ (iδt) .<br />
From the lower triangular structure of B(t), the upper triangular structure of A(u) <strong>and</strong> the<br />
form of the matrix Ci = C(u(iδt)), we can deduce that Gd is invertible 12 when d ≥ n − 1. It<br />
12 ψ0(.) is the resolvent of system (5.25) (refer to Appendix A.1). The Gramm observability matrix can be<br />
written:<br />
⎛<br />
⎜<br />
Gd = ⎜<br />
⎝<br />
C0<br />
C1Ψ0(kδt)<br />
...<br />
CdΨ0(dδt)<br />
⎞′<br />
⎛<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎠ ⎝<br />
C0<br />
C1Ψ0(kδt)<br />
...<br />
CdΨ0(dδt)<br />
⎞<br />
⎟<br />
⎠<br />
= φ′ φ.<br />
Therefore Gd is invertible provided it is of rank n, which can be achieved for d ≥ n − 1.<br />
107
tel-00559107, version 1 - 24 Jan 2011<br />
5.2 Continuous-discrete Framework<br />
is, therefore, also symmetric positive definite. We consider the same function as before (Cf.<br />
Lemma 33):<br />
Λ : L∞ �<br />
[0,d] R n(n+1) �<br />
2 × L∞ [0,d] (Rnu ) −→ R + .<br />
With the same reasoning as in Lemma 33, we deduce the existence of a scalar λ0 d > 0 such that<br />
Gd ≥ λ0 d Id for any u <strong>and</strong> any matrix B(t) having the structure specified above. Therefore:<br />
�i=d<br />
�<br />
�yi i=0<br />
5.2.5 Preparation for the Proof<br />
� 0<br />
0,x � � 0<br />
− yi 0, ξ �� �2 = � x 0 − ξ 0�′ � 0 0<br />
Gd x − ξ �<br />
≥ λ 0 �<br />
� 0 0<br />
d x − ξ � �2 .<br />
In order to establish the preliminary inequalities needed in the proof, we first recall the<br />
matrix inversion lemma:<br />
Lemma 64 (matrix inversion lemma [67], Section 0.7.4)<br />
If M is symmetric positive definite, <strong>and</strong> λ > 0 then<br />
(M + λMC ′<br />
CM) −1 = M −1 − C ′<br />
(λ −1 + CMC ′<br />
) −1 C.<br />
The estimation error is denoted ɛ(t) =z(t) − x(t), <strong>and</strong> we consider the change of variables:<br />
− ˜x = ∆x, ˜z = ∆z <strong>and</strong> ˜ɛ = ∆ɛ,<br />
− ˜ b(., u) =∆b(∆ −1 ., u), <strong>and</strong> ˜ S = ∆ −1 S∆ −1 ,<br />
− ˜ b ∗ (., u) =∆b ∗ (∆ −1 ., u)∆ −1 .<br />
As before, the Lipschitz constant of the vector field remains the same in the new system of<br />
coordinates (Cf. Lemma 51).<br />
The error dynamics are given by<br />
in the continuous case, <strong>and</strong><br />
˙ɛ = A(u)ɛ +(b(z, u) − b(x, u)) (5.26)<br />
ɛk(+) = ɛk(−) − δtS −1 (+)C ′<br />
r −1<br />
θ Cɛk(−) (5.27)<br />
in the discrete case.<br />
We <strong>high</strong>light the relations below as they are useful for the following computations:<br />
where N = diag ({0, 1, . . . , n − 1}).<br />
∆A(u) =θA(u)∆,<br />
∆−1A ′<br />
(u) =θA ′<br />
(u)∆−1 ,<br />
Remark 65<br />
Notice that on intervals of the form [kδt, (k + 1)δt[, the derivative of θ is equal to zero.<br />
108<br />
(5.28)
tel-00559107, version 1 - 24 Jan 2011<br />
For t ∈ [kδt;(k + 1)δt[,<br />
<strong>and</strong><br />
d ˜ S<br />
dt<br />
d˜ɛ<br />
dt<br />
� �<br />
= θ − A(u)+ 1<br />
θ ˜b ∗ �′<br />
(z, u)<br />
5.2 Continuous-discrete Framework<br />
�<br />
= θ A(u)˜ɛ + 1<br />
� �<br />
˜b(˜z, u) − b(˜x, u)<br />
θ<br />
�<br />
, (5.29)<br />
˜S − ˜ �<br />
S A(u)+ 1<br />
θ ˜b ∗ �<br />
(z, u) − ˜ SQ˜ �<br />
S . (5.30)<br />
We now consider the Lyapunov function ˜ɛ ′ ˜ S˜ɛ <strong>and</strong> use identities (5.29, 5.30) to obtain the<br />
equality below:<br />
�<br />
d ˜ɛ ′ �<br />
S˜ɛ ˜ �<br />
2<br />
dt = θ θ ˜ɛ′ � �<br />
S˜<br />
˜b(˜z, u) − ˜b(˜x, u) − ˜b ∗ (˜z, u)˜ɛ − ˜ɛ ′ �<br />
SQ ˜ S˜ɛ ˜ .<br />
(5.31)<br />
Similarly, at time kδt,<br />
�<br />
˜ɛk(+) = Id − θδt ˜ S −1 ′<br />
k (+)C r−1 �<br />
C ˜ɛk(−), (5.32)<br />
<strong>and</strong>,<br />
˜Sk(+) = ˜ Sk(−)+θδtC ′<br />
r −1 C. (5.33)<br />
As we did for the differential equations, we use (5.32) <strong>and</strong> (5.33) to compute the Lyapunov<br />
function at time kδt:<br />
�<br />
˜ɛ ′ �<br />
S˜ɛ ˜ (+) = ˜ɛ′ k<br />
k (−)<br />
�<br />
Id − θδt ˜ S −1<br />
k<br />
�<br />
From (5.33), we replace<br />
(+)C ′<br />
×<br />
= ˜ɛ ′<br />
k (−)<br />
�<br />
˜Sk(+) − 2θδtC ′<br />
r−1C r−1 �′<br />
C<br />
Id − θδt ˜ S −1<br />
k<br />
˜Sk(+)<br />
(+)C ′<br />
r −1 C<br />
�<br />
˜ɛk(−)<br />
+(θδt) 2 C ′<br />
r −1 C ˜ Sk(+) −1 C ′<br />
r −1 C<br />
�<br />
θδtC ′<br />
r−1 � �<br />
C with ˜Sk(+) − ˜ �<br />
Sk(−) :<br />
�<br />
˜ɛ ′ �<br />
S˜ɛ ˜ (+) = ˜ɛ′<br />
k<br />
From equation (5.33) we write:<br />
S −1<br />
k<br />
k (−)<br />
= ˜ɛ ′<br />
k (−)<br />
�<br />
˜Sk(−) ˜ Sk(+) −1 �<br />
Sk(−) ˜<br />
� ˜Sk(−) −1 ˜ Sk(+) ˜ Sk(−) −1<br />
−1<br />
(−)Sk(+)Sk (−) =S−1<br />
k (−)+θδt<br />
<strong>and</strong> compute [S −1<br />
k<br />
This results in:<br />
�<br />
˜ɛ ′ �<br />
S˜ɛ ˜<br />
k (+) = ˜ɛ′ � Sk(−) ˜ − C ′<br />
( r<br />
θδt + C ˜ S −1<br />
=<br />
k<br />
�<br />
˜ɛ ′ �<br />
S˜ɛ ˜ (−) − ˜ɛ′ k (−)<br />
�<br />
C ′<br />
( r<br />
r S−1<br />
k<br />
(−)C ′<br />
˜ɛk(−)<br />
� −1<br />
˜ɛk(−).<br />
�<br />
˜ɛk(−).<br />
(5.34)<br />
(5.35)<br />
CS −1<br />
k (−), (5.36)<br />
(−)Sk(+)S −1<br />
k (−)]−1 by using Lemma 64 with λ = θδt<br />
r <strong>and</strong> M = ˜ S −1<br />
k (−).<br />
k<br />
109<br />
′<br />
(−)C ) −1 �<br />
C ˜ɛ<br />
θδt + C ˜ S −1<br />
k<br />
(−)C ′<br />
) −1 C<br />
�<br />
˜ɛk(−).<br />
(5.37)
tel-00559107, version 1 - 24 Jan 2011<br />
5.2 Continuous-discrete Framework<br />
As in Section 3.5, we need to write the prediction-correction Riccati equations in a different<br />
time scale (τ), so that we can bound the Riccati matrix independently from θ. We consider<br />
dτ = θ(t)dt or equivalently τ = � t<br />
0 θ(v)dv <strong>and</strong> keep the notation ¯x(τ) = ˜x(t).<br />
⎧<br />
⎨ d<br />
⎩<br />
¯ �<br />
S<br />
dτ = − A(u)+ ˜b ∗ �′ �<br />
(z,u)<br />
S − S A(u)+<br />
θ<br />
˜b ∗ �<br />
(z,u)<br />
− SQS<br />
θ<br />
¯Sk(+) = ¯ Sk(−)+θδtC ′<br />
r−1 (5.38)<br />
C.<br />
Since θ(t) varies within an interval of the form [1, θmax], the instants tk = kδt, k ∈ N are<br />
difficult to track in the τ time scale. For convenience, tk = kδt is denoted τk in the τ time<br />
scale.<br />
With the help of this representation we are able to derive the following lemma:<br />
Lemma 66<br />
Let us consider the prediction correction Riccati equations (5.38), <strong>and</strong> the assumptions:<br />
�<br />
�<br />
− the functions ai (u (t)), �˜b ∗ i,j (z,u)<br />
�<br />
�<br />
�, are smaller than aM > 0,<br />
− ai (u (t)) ≥ am > 0, i =2, ..., n,<br />
− θ(0) = 1, <strong>and</strong><br />
− S(0) is a symmetric positive definite matrix taken from a compact subset of the form<br />
aId ≤ S(0) ≤ bId.<br />
Then, there exists a constant µ, <strong>and</strong> two scalars 0 < α 0, <strong>and</strong> ε ∗ as in Theorem 62.<br />
Let us now set a time T such that 0 < T < T ∗ .<br />
Let α <strong>and</strong> β be the bounds of Lemma 66.<br />
For t ∈ [kδt;(k + 1)δt[, inequality (5.31) can be written (i.e. using αId ≤ ˜ S),<br />
d˜ε ′ ˜ S˜ε (t)<br />
dt<br />
≤−αqmθ˜ε ′ � �<br />
′<br />
S˜ε ˜ (t) + 2˜ε ˜S ˜b (˜z) − ˜b (˜x) − ˜∗ b (˜z)˜ε<br />
110<br />
(5.39)
tel-00559107, version 1 - 24 Jan 2011<br />
5.2 Continuous-discrete Framework<br />
with qm > 0 such that qmId < Q (<strong>and</strong> omitting to write the control variable u).<br />
From (5.39) we can deduce two bounds: the first bound, the local bound, will be useful<br />
when ˜ε ′ ˜ S˜ε (t) is small independent of the value of θ. The second bound, the global bound,<br />
will be useful mainly when ˜ε ′ ˜ S˜ε (t) is not in the neighborhood of 0.<br />
Global bound: Starting from:<br />
�<br />
�<br />
�˜b (˜z) − ˜b (˜x) − ˜b ∗ �<br />
�<br />
(˜z)˜ε � ≤ 2Lb �˜ε� ,<br />
together with α Id ≤ ˜ S ≤ β Id (Lemma 66), (5.39) becomes<br />
d˜ε ′ ˜ S˜ε (t)<br />
dt<br />
≤<br />
�<br />
−αqmθ +4 β<br />
α Lb<br />
�<br />
˜ε ′ S˜ε ˜ (t) . (5.40)<br />
Local bound: Using Lemma 56<br />
�<br />
�<br />
�˜b (˜z) − ˜b (˜x) − ˜b ∗ �<br />
�<br />
(˜z)˜ε � ≤ Kθ n−1 �˜ε� 2 ,<br />
which because 1 ≤ θ ≤ 2θ1, implies that<br />
The fact that �˜ε� 3 =<br />
d˜ε ′ ˜ S˜ε (t)<br />
dt<br />
� 3<br />
�˜ε�<br />
2� 2<br />
≤−αqm˜ε ′ S˜ε ˜ (t)+2K (2θ1) n−1 � �<br />
�<br />
�S˜ �<br />
� �˜ε� 3 .<br />
≤<br />
� 1<br />
α ˜ε′ ˜ S˜ε (t)<br />
� 3<br />
2<br />
, allows us to write<br />
˜ε ′ S˜ε ˜ (t) ≤−αqm˜ε ′ S˜ε ˜<br />
2K (2θ1)<br />
(t)+ n−1 β<br />
α 3<br />
2<br />
Let us apply Lemma 55: If there exists ξ such that<br />
then for any kδt ≤ ξ ≤ t ≤ (k + 1)δt<br />
If γ ∈ R such that<br />
then ˜ε ′ ˜ S˜ε (ξ) ≤ γ implies<br />
˜ε ′ ˜ S˜ε (ξ) ≤<br />
α5q2 m<br />
16 K2 (2θ1) 2n−2 ,<br />
β2 ˜ε ′ ˜ S˜ε (t) ≤ 4˜ɛ ′ ˜S˜ε (ξ)e −αqm(t−ξ) .<br />
�<br />
˜ε ′ � 3<br />
2<br />
S˜ε ˜ (t) . (5.41)<br />
�<br />
1 αε∗ γ ≤ 2n−2 min<br />
(2θ1) 4β , α5q2 m<br />
16 K2β 2<br />
�<br />
, (5.42)<br />
˜ε ′ ˜ S˜ε (t) ≤<br />
αε ∗<br />
β (2θ1) 2n−2 e−αqm(t−ξ) . (5.43)<br />
Given any arbitrary value of δt, there exists kT ∈ N such that T ∈ [kT δt;(kT + 1)δt[. From<br />
the global bound (5.40), with θk ≥ 1, for all k ∈ N:<br />
˜ε ′ ′ β<br />
S˜ε ˜ (T ) ≤ ˜ε ˜S˜ε (kT δt)e (−αqm+4 α Lb)(T −kT δt)<br />
.<br />
111
tel-00559107, version 1 - 24 Jan 2011<br />
When we consider t ∈ [kδt, (k+1)δt[, this requirement means that<br />
We know from (5.37) that in full generality<br />
�<br />
˜ɛ ′ �<br />
S˜ɛ ˜ (+) ≤<br />
Thus<br />
<strong>and</strong> since<br />
˜ε ′ ˜ S˜ε (T ) ≤<br />
k<br />
5.2 Continuous-discrete Framework<br />
�<br />
˜ɛ ′ � �<br />
S˜ɛ ˜ (kδt) = ˜ɛ ′ �<br />
S˜ɛ ˜<br />
k (+).<br />
�<br />
˜ɛ ′ �<br />
S˜ɛ ˜ (−). (5.44)<br />
k<br />
�<br />
˜ε ′ �<br />
β<br />
S˜ε ˜ (−)e (−αqm+4 α<br />
kT<br />
Lb)(T −kT δt)<br />
,<br />
�<br />
˜ε ′ �<br />
S˜ε ˜ (−) is the end value of the equation (5.31) for t ∈ [(kT − 1)δt; kT δt[, then:<br />
kT<br />
�<br />
˜ε ′ � �<br />
S˜ε ˜ (−) ≤ ˜ε<br />
kT<br />
′ �<br />
β<br />
S˜ε ˜ (+)e(−αqm+4 α<br />
kT −1 Lb)δt .<br />
We can therefore, iteratively, independently from δt, obtain the inequality:<br />
˜ε ′ ˜ S˜ε (T ) ≤ ˜ε ′ ˜S˜ε (0) e (−αqm+4 β<br />
α Lb)T . (5.45)<br />
We now suppose that θ ≥ θ1 for t ∈ [T, T ∗ ], T ∗ ∈ [ ˜ kδt, ( ˜ k + 1)δt[ <strong>and</strong> use (5.40):<br />
˜ε ′ � �<br />
S˜ε ˜ ∗ ′ β<br />
(T ) ≤ ˜ɛ ˜S˜ε ˜kδt e (−αqmθ1+4 α Lb)(T ∗−˜ kδt)<br />
. (5.46)<br />
As before, independent of δt, we obtain:<br />
where M0 = sup ε<br />
x,z∈χ<br />
′<br />
Sε (0).<br />
˜ε ′ S˜ε ˜ (T ∗ ) ≤<br />
′<br />
˜ɛ ˜S˜ε (T )e (−αqmθ1+4 β<br />
α Lb)(T ∗−T )<br />
,<br />
≤ ˜ε ′ S˜ε ˜ (0) e (−αqm+4 β<br />
α Lb)T<br />
e (−αqmθ1+4 β<br />
α Lb)(T ∗−T )<br />
,<br />
β<br />
4 LbT ∗<br />
α e−αqmθ1(T ∗−T ) ,<br />
≤ M0e −αqmT e<br />
Now, we choose θ1 <strong>and</strong> γ such that<br />
M0e −αqmT e<br />
(5.47)<br />
β<br />
4 LbT ∗<br />
α e −αqmθ1(T ∗−T )<br />
≤ γ (5.48)<br />
<strong>and</strong> (5.42) are satisfied simultaneously, which results because e −cte×θ1 < cte<br />
θ 2n−2<br />
1<br />
for θ1 suffi-<br />
ciently large.<br />
We check that the condition 13 2θ1δt θ1. The adaptation function must have the following features:<br />
13 We arbitrarily set θmax =2θ1.<br />
112
tel-00559107, version 1 - 24 Jan 2011<br />
− θ is such that 1 ≤ θk ≤ 2θ1, for all k ∈ N,<br />
− Set γ1 = λ0 d γ<br />
β , <strong>and</strong> 0 ≤ γ0 ≤ γ1:<br />
Remark 67<br />
5.2 Continuous-discrete Framework<br />
– suppose, for any arbitrary j ∈ N, Id,k > λ0 d γ<br />
β in the time interval [jδt,jδt+(T −dδt)]<br />
then θ (jδt +(kT − d)δt)) > θ1.<br />
– when Id, k "1<br />
˜ɛ ′ ˜ S˜ɛ(ξ)e −αqm(t−ξ)<br />
(5.49)
tel-00559107, version 1 - 24 Jan 2011<br />
5.2 Continuous-discrete Framework<br />
Remark 68<br />
As for the continuous case, the convergence proof can be <strong>extended</strong> to the multiple output<br />
case following the instructions of Section 5.1. The only difference lies in the usage of Lemma<br />
64 with equation (5.36), where we cannot write θδt<br />
r<br />
since R is no longer a scalar. Since R is<br />
definite positive, we can assume the existence of a scalar ˜r such that R>˜rId. Then (5.36)<br />
can be written:<br />
S −1<br />
k<br />
<strong>and</strong> Lemma 64 can be used.<br />
−1<br />
(−)Sk(+)Sk (−) ≤ S−1<br />
k (−)+θδt<br />
114<br />
˜r S−1<br />
k<br />
(−)C ′<br />
CS −1<br />
k (−),
tel-00559107, version 1 - 24 Jan 2011<br />
Chapter 6<br />
Conclusion <strong>and</strong> Perspectives<br />
The work described in this thesis deals with the design of an observer of the <strong>Kalman</strong> type<br />
for nonlinear systems.<br />
More precisely, we considered the <strong>high</strong>-<strong>gain</strong> formalism <strong>and</strong> proposed an improvement of<br />
the <strong>high</strong>-<strong>gain</strong> <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong> in the form of an adaptive scheme for the parameter at<br />
the heart of the method. Indeed, although the <strong>high</strong>-<strong>gain</strong> approach allows us to analytically<br />
prove the convergence of the algorithm in the deterministic setting, it comes with an increased<br />
sensitivity to measurement noise. We propose to let the observer evolve between two end<br />
point configurations, one that rejects noise <strong>and</strong> one that makes the estimate converge toward<br />
the real trajectory. The strategy we developed here allowed us to analytically prove this<br />
convergence.<br />
Observability theory constitutes the framework of the present study. Thus, we began this<br />
thesis by providing a review <strong>and</strong> some insight into the main results of the theory of [57]. We<br />
also provided a review of similar adaptive strategies. In this introduction <strong>and</strong> background<br />
review, we stated that the main concern of the thesis would be theoretically proving that the<br />
observer is convergent.<br />
The observer has been described in Chapters 3 <strong>and</strong> 5. It was initially described in the<br />
continuous setting, <strong>and</strong> afterwards <strong>extended</strong> to the continuous-discrete setting. The adaptive<br />
strategy was also explained in those chapters. This strategy is composed of two elements:<br />
1. a measurement of the quality of the estimation, <strong>and</strong><br />
2. an adaptation equation.<br />
The quality measurement is called innovation or innovation for an horizon of length d. It<br />
is slightly different than the usual concept of innovation. The major improvement provided<br />
by our definition is a proof that shows that innovation places an upper bound on the past<br />
estimation error (the delay equals the parameter d above mentioned). This fact is a corner<br />
stone of the overall convergence proof.<br />
The second element of the strategy is the adaptation equation that drives the <strong>high</strong>-<strong>gain</strong><br />
parameter. A differential equation was used in the continuous setting, <strong>and</strong> a function in<br />
the continuous-discrete setting (i.e. the adaptation is performed at the end of the update<br />
procedure). The sets of requirements for those two <strong>applications</strong> have been proposed such that<br />
several adaptation functions can be conceived. The set of possible <strong>applications</strong> isn’t void, as<br />
we demonstrated by actually displaying an eligible function.<br />
115
tel-00559107, version 1 - 24 Jan 2011<br />
The full proof of convergence has been developed in the single output continuous setting,<br />
<strong>and</strong> afterwards <strong>extended</strong> to the multiple output <strong>and</strong> continuous-discrete settings.<br />
A second major concern of this work, was the applicability of the observer. We therefore<br />
extensively described its implementation on a single output system: a series-connected DC<br />
machine. The time constraints where investigated via experiments performed using a real<br />
motor in a hard real-time environment. The testbed was described in Chapter 4 <strong>and</strong> the<br />
compatibility with real-time constraints assessed.<br />
We conclude this work with some ideas for future investigations.<br />
The Luenberger Case<br />
It is much more direct to prove the convergence of a <strong>high</strong>-<strong>gain</strong> Luenberger observer.<br />
This is because of the absence of the Riccati equation. However, it prevents us from<br />
providing a local result of convergence when θ = 1. Therefore the adaptation strategy<br />
has to be different from that used here (Cf. [11]), or performed for a specific class of<br />
nonlinear systems (see for example [19]).<br />
Automatic code generation<br />
The implementation procedure for this algorithm is now well known. It can be roughly<br />
classified into two parts: 1) coding specific to the model, <strong>and</strong> 2) coding related to the<br />
observer mechanisms. It would be interesting to create a utility that automatically<br />
generates the code of the observer once the model has been provided. We could save<br />
development time, <strong>and</strong> implementation errors cause by typos.<br />
Dynamic output stabilization<br />
Dynamic output stabilization is considered in the second part of [57]. An extension of<br />
this work to a closed loop containing an adaptive observer is a natural development.<br />
This may be accomplished because the observer presented here is an exponential observer.<br />
Since θ is allowed to increase when convergence is not achieved, we can expect to<br />
deliver a good estimate to the control algorithm. The ability to quickly switch between<br />
modes will be important.<br />
Cascaded systems<br />
Let us consider an observable nonlinear cascaded system of the form:<br />
⎧<br />
⎨<br />
⎩<br />
˙x = f(x, u),<br />
˙ξ = g(x,ξ ),<br />
y = h(x,ξ ).<br />
One could imagine a situation where the state variable x is well known or estimated,<br />
but not the variable ξ. Does the θ parameter of the observer really need to be <strong>high</strong><br />
for the part of the estimation that corresponds to x? We could consider a <strong>high</strong>-<strong>gain</strong><br />
observer with two varying <strong>high</strong>-<strong>gain</strong> parameters.<br />
Unscented <strong>Kalman</strong> <strong>filter</strong><br />
The unscented <strong>Kalman</strong> <strong>filter</strong> is a derivative free, nonlinear observer that has received a<br />
lot of attention recently [71]. This observer is based on the unscented transformation:<br />
116
tel-00559107, version 1 - 24 Jan 2011<br />
a method to calculate the statistics of a r<strong>and</strong>om variable which undergoes a nonlinear<br />
transformation [112]. Continuous <strong>and</strong> continuous-discrete versions of this observer<br />
have been proposed in [108]. The idea is to study, the extent to which the <strong>high</strong>-<strong>gain</strong><br />
formalism, <strong>and</strong> consequently adaptive <strong>high</strong>-<strong>gain</strong> mechanisms can be embedded into this<br />
observer.<br />
117
tel-00559107, version 1 - 24 Jan 2011<br />
118
tel-00559107, version 1 - 24 Jan 2011<br />
Appendices<br />
119
tel-00559107, version 1 - 24 Jan 2011<br />
120
tel-00559107, version 1 - 24 Jan 2011<br />
Appendix A<br />
Mathematics Reminder<br />
Contents<br />
A.1 Resolvent of a System . . . . . . . . . . . . . . . . . . . . . . . . . . 122<br />
A.2 Weak-∗ Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123<br />
A.3 Uniform Continuity of the Resolvant . . . . . . . . . . . . . . . . . 125<br />
A.4 Bounds on a Gramm Matrix . . . . . . . . . . . . . . . . . . . . . . 128<br />
121
tel-00559107, version 1 - 24 Jan 2011<br />
A.1 Resolvent of a System<br />
A.1 Resolvent of a System<br />
In this subsection, we recall basic concepts from the theory of linear differential equations.<br />
Details can be found in [106].<br />
A first order system of linear differential equations is given by:<br />
where<br />
1. t ∈ I, an interval of R,<br />
2. x ∈ R n ,<br />
dx<br />
dt<br />
3. A(t) is a t dependent matrix of dimension (n × n),<br />
4. b(t) is a t dependent vector field of dimension n.<br />
= A(t)x(t)+b(t) (A.1)<br />
First, remind, that provided that the <strong>applications</strong> A(t) <strong>and</strong> b(t) are continuous then for<br />
all s ∈ I <strong>and</strong> for all x0 ∈ R n , this equation has a unique solution on I such that x(s) =x0.<br />
We now consider the associated homogenous equation:<br />
dx<br />
dt<br />
= A(t)x(t). (A.2)<br />
Let us denote by x(t, s, x0) the solution of (A.2) at time t with initial condition x(s, s, x0) =x0.<br />
We define the application:<br />
ξ ↦→ x(t, s,ξ ), (A.3)<br />
that associates to any element ξ of R n the solution of (A.2) starting from ξ.<br />
Let c1,c2 be two positive scalars <strong>and</strong> ξ1, ξ2 two elements of R n . Consider the trajectory<br />
c1x(t, s,ξ 1)+c2x(t, s,ξ 2). For t = s, we have:<br />
c1x(s, s,ξ 1)+c2x(s, s,ξ 2) =c1ξ1 + c2ξ2 = x(s, s, c1ξ1 + c2ξ2).<br />
From the unicity of solutions, we conclude that<br />
c1x(t, s,ξ 1)+c2x(t, s,ξ 2) =x(t, s, c1ξ1 + c2ξ2).<br />
That is to say that for all t <strong>and</strong> s in I, (A.3) is linear. Therefore there is a t <strong>and</strong> s dependent<br />
matrix such that:<br />
x(t, s, x0) =φ(t, s)x0,<br />
with φ(s, s) = Id. This matrix is called the resolvent 1 of (A.2). The resolvent has the<br />
following properties:<br />
Theorem 69<br />
1. φ(t, s) is linear w.r.t. the variables s <strong>and</strong> t,<br />
1 φ(s, s) =Id is also said to be the resolvent of the equation (A.1).<br />
122
tel-00559107, version 1 - 24 Jan 2011<br />
2. φ(s, s) =Id,<br />
3. for all τ ∈ I, φ(t,τ )φ(τ,s)=φ(t, s),<br />
4. φ −1 (t, s) =φ(s, t),<br />
5. ∂<br />
∂<br />
dtφ(t, s) =A(t)φ(t, s) <strong>and</strong> dsφ(t, s) =−φ(t, s)A(s),<br />
6. in particular: ∂<br />
dt φ−1 (t, s) ′<br />
= −A ′<br />
(s)φ −1 (t, s) ′<br />
,<br />
A.2 Weak-∗ Topology<br />
7. the solution of (A.2) at time t with, x(s) =x0 is given by: x(t) =φ(t, s)x0,<br />
8. the solution of (A.1) at time t with, x(s) =x0 is given by:<br />
A.2 Weak-∗ Topology<br />
� t<br />
x(t) =φ(t, s)x0 + φ(t, v)b(v)dv.<br />
Let E be a Banach space 2 <strong>and</strong> denote its norm by �.�E. E ∗ is the dual vector space 3 of<br />
E, <strong>and</strong> E ∗∗ is the dual vector space of E ∗ : the bi-dual space of E. A dual space is embedded<br />
with the dual norm defined as:<br />
�f�E ∗ = sup<br />
x∈E,�x�≤1<br />
|f(x)|.<br />
Therefore E ∗ has the topology induced by the dual norm. The object of this section is to<br />
give the definition of two additional topologies that can be built on the space E ∗ : the weak<br />
<strong>and</strong> the weak-∗ topologies. The topology described above, induced by the dual norm, is also<br />
called strong topology.<br />
For f ∈ E ∗ <strong>and</strong> x ∈ E we denote < f, x > instead of f(x). It is called the dual scalar<br />
product.<br />
Topology Associated to a Family of Applications<br />
We consider a set X <strong>and</strong> a family of topological spaces (Yi)i∈I. For all i ∈ I, let ϕi denote<br />
an application from X to Yi. We want to embed X with the coarser topology that makes all<br />
the <strong>applications</strong> ϕi continuous. In the following this topology is denoted T.<br />
Let i be an element of I. Let ωi be an open subset of Yi. If the application ϕi is continuous<br />
then ϕ −1<br />
i (ωi) is an open subset of X. Consequently T shall contain the family of subsets of<br />
X defined by ϕ −1<br />
i (ωi) when ωi scans all the open subsets of Yi. This remark applies to all<br />
i ∈ I. We denote (Oλ)λ∈Λ the family composed by all the subsets of the form ϕ −1<br />
i (ωi), where<br />
ωi is an open subset of Yi, <strong>and</strong> i ∈ I.<br />
2 i.e. A normed vector space, complete with respect to the topology of its norm.<br />
3 The space of all the continuous linear forms on E.<br />
123<br />
s
tel-00559107, version 1 - 24 Jan 2011<br />
A.2 Weak-∗ Topology<br />
The problem “find the coarser 4 topology that makes the <strong>applications</strong> ϕi continuous” is<br />
transformed into: “find the coarser family of subsets of X that contains (Oλ)λ∈Λ <strong>and</strong> that is<br />
stable under any finite intersection <strong>and</strong> any infinite union of its elements” 5 .<br />
Consider first the family of all the subsets of X obtained as the intersection of a finite<br />
number of elements of the form Oλ, λ ∈ Λ. It is a family of subsets of X stable under finite<br />
intersections.<br />
Secondly, consider all the infinite unions of elements of this latter family 6 . We finally end<br />
up with the family<br />
⎧<br />
⎨<br />
˜T =<br />
⎩<br />
�<br />
infinite<br />
⎡<br />
⎣ �<br />
finite<br />
Oλ<br />
⎤ ⎫<br />
⎬<br />
⎦ , λ ∈ Λ<br />
⎭ .<br />
˜T is a topology: stability under infinite union is obvious, <strong>and</strong> the proof of the stability under<br />
finite intersection is left as an exercise of sets theory.<br />
Consider now any topology ˆ T of X that makes all the <strong>applications</strong> ϕi : X → Yi, i ∈ I<br />
continuous. Then all the subsets of the form ϕ −1<br />
i (ωi), ωi being an open subset of Yi, i ∈ I, are<br />
contained in ˆ T. And since ˆ T is a topology, it contains all the elements of ˜ T. Thus any topology<br />
that makes all (ϕi)i∈I continuous contains ˜ T: it is the coarser topology we are searching for.<br />
Definition of the Weak Topology<br />
For a fixed f ∈ E ∗ , we define the application ϕf : E → R by ϕf (x) =< f, x >. When f<br />
describes the set E ∗ , we have a family of <strong>applications</strong> (ϕf )f∈E ∗.<br />
Definition 70<br />
The weak topology is the coarser topology that renders all the <strong>applications</strong> (ϕf )f∈E ∗<br />
continuous.<br />
A weak topology is built on the dual space E ∗ by considering the <strong>applications</strong> (ϕξ)ξ∈E ∗∗.<br />
Definition of the Weak-∗ Topology<br />
We define a canonical injection from E to E ∗∗ :<br />
− let x ∈ E be fixed<br />
− E∗ → R<br />
f ↦→ < f, x > is a continuous linear form on E∗ , that is to say an element of E ∗∗ ,<br />
denoted Jx.<br />
− we have:<br />
< Jx, f > (E ∗∗ ,E ∗ )=< f, x > (E ∗ ,E), ∀x ∈ E, ∀f ∈ E ∗ .<br />
The application x ↦→ Jx is a linear injection.<br />
4<br />
The coarser topology is the one that contains “the least” number of open sets.<br />
5<br />
Obviously ∅ <strong>and</strong> X are contained in (Oλ)λ∈Λ. Therefore the stability under infinite unions, <strong>and</strong> the<br />
stability under finite intersections define a topology.<br />
6<br />
If we perform the infinite union first <strong>and</strong> then the finite intersection, we obtain a family that is not stable<br />
under infinite union anymore.<br />
124
tel-00559107, version 1 - 24 Jan 2011<br />
A.3 Uniform Continuity of the Resolvant<br />
– Let x <strong>and</strong> y be two elements of E, J(x + y) is the associated element of E ∗∗ .<br />
For all f ∈ E ∗ : =< x+ y, f >=< x, f > + < y, f >. Thus<br />
J(x + y) ≡ Jx + Jy.<br />
– If Jx is an identically null application, then < f, x >= 0∀f ∈ E ∗ , which means<br />
that x = 0. The kernel is composed of the null element.<br />
It may happen that J is not a surjective application: E is therefore identified to a subspace<br />
of E ∗∗ .<br />
We now consider a fixed x ∈ E <strong>and</strong> the application ϕx : E ∗ → R defined as f ↦→ ϕx(f) =<<br />
f, x >. Since x can be any elements of E, we obtain a family of <strong>applications</strong>: (ϕx)x∈E.<br />
Definition 71<br />
The weak-* topology is the coarser topology that renders all the <strong>applications</strong> (ϕx)x∈E<br />
continuous.<br />
The weak-∗ topology makes continuous the family of <strong>applications</strong> F1 =(ϕx)x∈E <strong>and</strong> the<br />
weak topology makes continuous the family of <strong>applications</strong> F2 =(ϕξ)ξ∈E∗∗. Since E can<br />
be seen as a subset of E ∗∗ , the family F1 can be seen as a subfamily of F2. Therefore the<br />
topology constructed using the family F1 is coarser than the one obtained from the family<br />
F2.<br />
More details concerning those topologies can be found in [33] (in Moliere’s mother tongue)<br />
or [107] (in Shakespear’s mother tongue).<br />
A.3 Uniform Continuity of the Resolvant<br />
In the proof of some lemmas7 we use the fact that “the weak-* topology on a bounded<br />
set implies uniform continuity of the resolvent”. We explain how it works in the present<br />
subsection. We consider a control affine system of the form:<br />
⎧<br />
⎪⎨<br />
˙x<br />
(Σ)<br />
⎪⎩<br />
x(0)<br />
=<br />
=<br />
�i=p<br />
f(x)+ gi(x)ui,<br />
i=1<br />
x0.<br />
Let PΣ : Dom (PΣ) ⊂ L ∞ ([0; T ] , R nu ) → C 0 ([0; T ] ,X), be the “input to state” mapping<br />
ofΣ , i.e., the mapping that, to any u(.), associates the corresponding state trajectory<br />
(t ∈ [0; T ] ↦→ x(t)).<br />
We endow L ∞ ([0; T ] , R nu ) with the weak-* topology, <strong>and</strong> C 0 ([0; T ] ,X) with the topology<br />
of uniform convergence. The following lemma is proven in [57].<br />
Lemma 72<br />
PΣ has open domain <strong>and</strong> is continuous on bounded sets (w.r.t. the topologies above).<br />
The proof of this lemma is reproduced below (refer to [57] for the complete statement).<br />
In order to ease the underst<strong>and</strong>ing of this proof we first recall a few facts concerning the<br />
properties of the weak-* topology.<br />
7 Lemmas 33 <strong>and</strong> 38, <strong>and</strong> their equivalent in Chapter 5.<br />
125
tel-00559107, version 1 - 24 Jan 2011<br />
The weak-* topology on L ∞ sets<br />
A.3 Uniform Continuity of the Resolvant<br />
According to what is said in Section A.2, we can embed L ∞ with either the weak or the<br />
weak-∗ topology. We choose the weak-∗ topology, the coarser one 8 . The following theorem,<br />
stated with the same notations as before, gives us an important property of this topology:<br />
Theorem 73 ([33], III-25, Pg 48)<br />
Let E be a separable Banach space, then BE ∗ = {f ∈ E∗ ; �f� ≤1} is metrizable for the<br />
weak-∗ topology 9 .<br />
Conversely, if BE ∗ = {f ∈ E∗ ; �f� ≤1} is metrizable for the weak-∗ topology then E is<br />
separable.<br />
Now, recall that (L 1 ) ∗ = L ∞ <strong>and</strong> L ∞ ⊂ (L 1 ) ∗ [33, 107] <strong>and</strong> consider the three theorems<br />
below.<br />
Theorem 74 ([33])<br />
I - IV-7, Pg 57: L p is a normed vector space for 1 ≤ p ≤∞.<br />
II - (Fischer-Riesz) - IV-8, Pg 57: L p is a Banach space for 1 ≤ p ≤∞.<br />
III - IV-13, Pg 62: L p is separable 10 for 1 ≤ p
tel-00559107, version 1 - 24 Jan 2011<br />
A.3 Uniform Continuity of the Resolvant<br />
Here G(x(s)) denotes a column vector field whose elements are the gi’s of Σ, <strong>and</strong> u denote<br />
the line vector composed of elements ui.<br />
Proof.<br />
First of all, let us write:<br />
x(t) = x0 +<br />
� �<br />
t<br />
f(x(s)) +<br />
Then<br />
�xn(t) − x(t)� ≤<br />
≤<br />
≤<br />
0<br />
i=nu �<br />
gi(x(s))ui(s)<br />
� t<br />
i=1<br />
= x0 + [f(x(s)) + u(s)G(x(s))] ds.<br />
0<br />
��<br />
�<br />
� t<br />
�<br />
�<br />
� [f(xn(s)) + un(s)G(xn(s)) − f(x(s)) − u(s)G(x(s))] ds�<br />
�<br />
��0<br />
� t �<br />
�<br />
� f(xn(s)) + un(s)G(xn(s)) + un(s)G(x (s))<br />
0<br />
−un(s)G(x (s)) − f(x(s)) − u(s)G(x(s)) � ds � �<br />
��<br />
� t �<br />
�<br />
� f(xn(s)) + un(s)G(xn(s)) − f(x(s)) − un(s)G(x (s))<br />
0<br />
� �<br />
�<br />
ds�<br />
�<br />
��<br />
� t �<br />
+ �<br />
� (un(s) − u(s))G(x (s)) � �<br />
�<br />
ds�<br />
� = A + B.<br />
The terms A <strong>and</strong> B are such that:<br />
B ≤<br />
��<br />
�<br />
� θ<br />
�<br />
sup �<br />
� (un(s) − u(s))G(x(s))ds�<br />
�<br />
θ∈[0;T ] 0<br />
� t<br />
� t<br />
A ≤ �f(xn(s)) − f(x(s))� ds + �(G(xn) − G(x)� |un(s)|ds.<br />
0<br />
0<br />
Because un converges ∗−weakly, the sequence (�un�∞ : n ∈ N) is bounded. The Lipschitz<br />
� t<br />
properties of f <strong>and</strong> G give A ≤ m �xn(s) − x(s)� ds.<br />
Therefore<br />
�xn(t) − x(t)� ≤ sup<br />
θ∈[0;T ]<br />
The result is given by Gronwall’s lemma.<br />
0<br />
0<br />
��<br />
�<br />
� θ<br />
�<br />
� t<br />
�<br />
� (un(s) − u(s))G(x(s))ds�<br />
� + m �xn(s) − x(s)� ds.<br />
0<br />
For all θ ∈ [0,T], for all δ > 0, let us consider a subdivision {tj} of [0,T], such that<br />
θ ∈ [ti,ti+1] <strong>and</strong> tj+1 − tj < δ for all j. We have,<br />
��<br />
�<br />
� θ<br />
�<br />
�<br />
� (un(s) − u(s))G(x(s))ds�<br />
� ≤<br />
��<br />
�<br />
� ti<br />
�<br />
�<br />
� (un(s) − u(s))G(x(s))ds�<br />
� +<br />
��<br />
�<br />
� θ<br />
�<br />
�<br />
� (un(s) − u(s))G(x(s))ds�<br />
� .<br />
0<br />
0<br />
127<br />
0<br />
�<br />
ti<br />
ds
tel-00559107, version 1 - 24 Jan 2011<br />
With ε > 0 being given, define ε ∗ = ε<br />
k<br />
take δ ≤ ε∗<br />
2γm<br />
, where γ = sup<br />
x∈R n<br />
A.4 Bounds on a Gramm Matrix<br />
, where k comes from the preceding lemma. We<br />
�G(x)�, <strong>and</strong> m = sup �un − u�∞. We get, for all θ ∈ [0,T]:<br />
n<br />
��<br />
�<br />
� θ<br />
�<br />
�<br />
� (un(s) − u(s))G(x(s))ds�<br />
�<br />
ti<br />
≤ mγδ ≤ ε∗<br />
2<br />
By the weak-* convergence of (un), there exists N ∈ N∗ such that for all n > N,<br />
��<br />
�<br />
� ti<br />
� ε∗<br />
�<br />
� (un(s) − u(s))G(x(s))ds�<br />
� ≤<br />
2 .<br />
0<br />
By the lemma, there exists N ∈ N ∗ such that for all n > N, for all t ∈ [0,T], �xn(t)−x(t)� ≤ε,<br />
which proves the sequential continuity.<br />
A.4 Bounds on a Gramm Matrix<br />
This section’s material is taken from [57], Chapter 6, Section 2.4.2. We present a lemma<br />
useful to investigate the properties of the Riccati matrix of <strong>extended</strong> <strong>Kalman</strong> <strong>filter</strong>s, both in<br />
the continuous <strong>and</strong> continuous discrete settings. This lemma is used in Appendix B.<br />
Let Σ be a system12 on Rn , of the form<br />
⎧<br />
where<br />
⎪⎨<br />
(Σ)<br />
⎪⎩<br />
dx<br />
dτ<br />
= A(u)x +<br />
y = C(u)x,<br />
n�<br />
k, l =1<br />
l ≤ k<br />
uk,lek,lx<br />
− A(u) is a an anti-shift matrix whose elements never equals zero, <strong>and</strong> are bounded,<br />
− C(u) = � α(u) 0 ... 0 � , where α never equals zero <strong>and</strong> is bounded,<br />
− ei,j is such that ei,jxk = δjkvi, where {vk} denotes the canonical basis of R n .<br />
(A.4)<br />
The term on the right of the “ + ” sign is a lower triangular (n × n) matrix. For (ui,j),<br />
a measurable bounded control function, defined on [0,T], we denote ψu(t, s) the associated<br />
resolvent matrix (see Section A.1 above). We define the Gramm observability matrix of Σ by<br />
� T<br />
Gu =<br />
0<br />
ψ ′<br />
u(v, T )C ′<br />
Cψu(v, T )dv.<br />
The matrix Gu is symmetric <strong>and</strong> positive semi-definite. The system (A.4) is observable for<br />
all u(.) measurable <strong>and</strong> bounded.<br />
12 In order to make this system easier to underst<strong>and</strong>, we only describe it as single output. The result of the<br />
lemma is though valid for multi outputs systems.<br />
128
tel-00559107, version 1 - 24 Jan 2011<br />
A.4 Bounds on a Gramm Matrix<br />
Lemma 76<br />
If a bound B is given on the controls ui,j, then there exist two positive scalars 0 < α
tel-00559107, version 1 - 24 Jan 2011<br />
Appendix B<br />
Proof of Lemmas<br />
Contents<br />
B.1 Bounds on the Riccati Equation . . . . . . . . . . . . . . . . . . . 131<br />
B.1.1 Part One: the Upper Bound . . . . . . . . . . . . . . . . . . . . . . . 133<br />
B.1.2 Part Two: the Lower Bound . . . . . . . . . . . . . . . . . . . . . . 142<br />
B.2 Proofs of the Technical Lemmas . . . . . . . . . . . . . . . . . . . 151<br />
130
tel-00559107, version 1 - 24 Jan 2011<br />
B.1 Bounds on the Riccati Equation<br />
B.1 Bounds on the Riccati Equation<br />
This section deals with the properties of the Riccati matrix S. We consider the continuous<br />
discrete framework. The proof follows the ideas of [57] where those properties are investigated<br />
in details for continuous time systems 1 .<br />
Lemma 77<br />
Let us consider the prediction correction equations:<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
d ¯ S<br />
dτ<br />
�<br />
= − A(ū)+ ¯ �′<br />
b(¯z,ū)<br />
θ<br />
R −1 C<br />
¯Sk(+) = ¯ Sk(−)+θδtC ′<br />
with the notations of Section 5.2.1, <strong>and</strong> the set of assumptions:<br />
¯S − ¯ �<br />
S A(ū)+ ¯ �<br />
b(¯z,ū)<br />
−<br />
θ<br />
¯ SQ¯ S<br />
− Q <strong>and</strong> R are fixed symmetric positive definite matrices,<br />
�<br />
�<br />
− the functions ai (u (t)), �˜b ∗ �<br />
�<br />
i,j (z, u) �, are smaller than aM > 0,<br />
− ai (u (t)) ≥ am > 0,<br />
− θ(0) = 1, <strong>and</strong><br />
(B.1)<br />
− S(0) is a symmetric positive definite matrix taken in a compact of the form aId ≤<br />
S(0) ≤ bId.<br />
Then, there exist a constant µ, <strong>and</strong> two scalars 0 < α
tel-00559107, version 1 - 24 Jan 2011<br />
B.1 Bounds on the Riccati Equation<br />
− Sn is the set of (n × n) symmetric matrices having their values in R,<br />
− Sn(+) is the set of positive definite matrices of Sn,<br />
− Tr(S) denotes the trace of the matrix S,<br />
− for any matrix S, |S| = � Tr(S ′ S) is the Frobenius norm, when S ∈ Sn, |S| = � Tr(S 2 ),<br />
− for any matrix S, �S�2 = sup<br />
�x�2=1<br />
�Sx�2, is the norm induced by the second euclidean<br />
norm, we also write it �S� by omission,<br />
− we keep the τ time scale notation, but we use S instead of ¯ S to ease the reading of<br />
equations,<br />
� kδt<br />
− τk = θ(v)dv. Since θ is fixed during prediction periods, the time elapsed between<br />
0<br />
two correction steps is (τk − τk−1) =θk−1δt.<br />
�<br />
− A st<strong>and</strong>s for the matrix<br />
θ.<br />
A(ū)+ ¯ b(¯z,ū)<br />
θ<br />
�<br />
, we omit to write the dependencies to u, z <strong>and</strong><br />
Matrix facts<br />
Notice that according to equation (B.1), if S(0) is symmetric then S(t) is symmetric.<br />
1. On the Frobenius norm (Cf. [67], Section 5.6):<br />
(a) If U <strong>and</strong> V are orthogonal matrices then |UAV | = |A|,<br />
(b) if A is symmetric semi positive then |A| = |DA|, where DA is the diagonal form of<br />
A,<br />
(c) if A is as in (b), |A| = �� λ 2 i<br />
(d) �A�2 ≤ |A| ≤ � (n)�A�2,<br />
(e) A is symmetric, A ≤�A�2Id ≤ |A|Id.<br />
2. On the trace of square matrices (Cf. [67]):<br />
� 1<br />
2 , where λi ≥ 0 denotes the eigenvalues of A,<br />
(a) If A, B are (n × n) matrices, then |Tr(AB)| ≤ � Tr(A ′ A) � Tr(B ′ B),<br />
(b) if S is (n × n), <strong>and</strong> symmetric semi positive, then Tr(S 2 ) ≤ Tr(S) 2 ,<br />
(c) if S is as in (b) then Tr(S 2 ) ≥ 1<br />
nTr(S) 2 ,<br />
(d) if S is as in (b) then, Tr(SQS) ≥ q<br />
ntr(S)2 , with q = min<br />
�x�=1 x′ Qx, <strong>and</strong> Q symmetric<br />
definite positive,<br />
(e) as a consequence of (b) <strong>and</strong> (c), if S is as in (b), <strong>and</strong> �.� denotes any norm on<br />
(n × n) matrices, then there exist l, n > 0 such that<br />
l�S� ≤Tr(S) ≤ m�S�.<br />
3. On inequalities between semi positive matrices (Cf. [67], Sections 7.7 <strong>and</strong> 7.8), A <strong>and</strong><br />
B are symmetric in this paragraph:<br />
132
tel-00559107, version 1 - 24 Jan 2011<br />
(a) if A ≥ B ≥ 0, <strong>and</strong> U is orthogonal, then U ′<br />
AU ≥ U ′<br />
BU,<br />
B.1 Bounds on the Riccati Equation<br />
(b) A, <strong>and</strong> B as in (a), <strong>and</strong> A is invertible, then ρ(BA −1 ) ≤ 1, where ρ denotes the<br />
spectral radius,<br />
(c) A, <strong>and</strong> B as in (a), then λi(A) ≥ λi(B), where λi(M) denote the i th eigenvalue of<br />
the matrix M sorted in ascending order,<br />
(d) A, <strong>and</strong> B as in (a), <strong>and</strong> both invertible then B −1 ≥ A −1 ≥ 0,<br />
(e) A, <strong>and</strong> B as in (a), then det(A) ≥ det(B), <strong>and</strong> Tr(A) ≥ Tr(B),<br />
(f) if A1 ≥ B1 ≥ 0, <strong>and</strong> if A2 ≥ B2 ≥ 0 then A1 + A2 ≥ B1 + B2 ≥ 0.<br />
4. From facts 1.(c) <strong>and</strong> 3.(f) we deduce that:<br />
B.1.1 Part One: the Upper Bound<br />
(A ≥ B ≥ 0) ⇒ (|A| ≥| B| ≥ 0) .<br />
This first part of the proof is decomposed into three steps. Let T ∗ be a fixed, positive scalar.<br />
1. We prove that there is β1 such that for all τk ≤ T ∗ , k ∈ N, Sk(+) ≤ β1Id,<br />
2. we show that there exists β2 such that for all T ∗ ≤ τk, k ∈ N, Sk(+) ≤ β2Id,<br />
3. we deduce the result for all times.<br />
The first fact can be directly proven as follows.<br />
Lemma 78<br />
Consider equation (B.1) <strong>and</strong> the assumptions of Lemma 77. Let T ∗ > 0 be fixed. There<br />
exists β1 > 0 such that<br />
Sk(+) ≤ β1Id,<br />
for all τk ≤ T ∗ , k ∈ N, independently from the subdivision {τi}i∈N.<br />
Proof.<br />
For all τ ∈ [τk−1; τk], equation (B.1) gives:<br />
� τ dS (v)<br />
S (τ) = Sk−1(+) +<br />
dτ dv,<br />
= Sk−1(+)<br />
� τ<br />
+<br />
τk−1<br />
τk−1<br />
⎡<br />
⎣−<br />
�<br />
A(u)+ � b ∗ (z, u)<br />
θ<br />
�′<br />
S − S<br />
Since SQS is symmetric definite positive, we can write<br />
⎡<br />
� �<br />
τ<br />
S (τ) ≤ Sk−1(+) + ⎣− A(u)+ �b ∗ �′<br />
(z, u)<br />
S − S<br />
θ<br />
<strong>and</strong> fact 4 gives us<br />
τk−1<br />
� τ<br />
|S(τ)| ≤| Sk−1(+)| +<br />
133<br />
τk−1<br />
�<br />
A(u)+ � b ∗ (z, u)<br />
θ<br />
�<br />
�<br />
A(u)+ � b ∗ (z, u)<br />
θ<br />
⎤<br />
− SQS⎦<br />
dv.<br />
� ⎤<br />
⎦ dv,<br />
2s|S|dv, (B.2)
tel-00559107, version 1 - 24 Jan 2011<br />
B.1 Bounds on the Riccati Equation<br />
where AM = sup<br />
[0;T ∗ �<br />
�<br />
(|A(u(τ)|), �<br />
]<br />
�b ∗ �<br />
�<br />
(z, u) � ≤ Lb <strong>and</strong> s = AM + Lb.<br />
Gronwall’s lemma gives<br />
|S(τ)| ≤| Sk−1(+)|e 2s(τ−τk−1)<br />
. (B.3)<br />
Therefore, with c = |C ′<br />
RC|,<br />
|Sk(+)| ≤| Sk−1(+)|e 2s(τk−τk−1) + c (τk − τk−1) . (B.4)<br />
Consider a subdivision {τk}k∈N such that τ0 = 0. From equation (B.4):<br />
|S1(+)| ≤| S0|e 2sτ1 + cτ1.<br />
Since we set θ(0) = 1 then ¯ S0 = S0 <strong>and</strong> there is no ambiguity in the notation. We iterate to<br />
obtain<br />
|S2(+)| ≤| S0|e 2sτ2 + cτ1e 2s(τ2−τ1) + c(τ2 − τ1),<br />
<strong>and</strong> for all k ∈ N<br />
|Sk(+)| ≤| S0|e2sτk �i=k<br />
+ c (τi − τi−1) e 2s(τk−τi)<br />
i=1<br />
≤ |S0|e2sτk + ce2sτk �i=k<br />
i=1<br />
(τi − τi−1) e −2sτi .<br />
Since e−2sτ is a decreasing function of τ, the sum on the right h<strong>and</strong> side of the inequality is<br />
smaller than the integral of e−2sτ over the interval [0, τk]. Therefore<br />
|Sk(+)| ≤| S0|e2sτk + ce2sτk � τk<br />
e<br />
0<br />
−2sτ dτ<br />
≤ |S0|e2sτk + c<br />
�<br />
2sτk<br />
2s e − 1 � .<br />
From this last equation we conclude that for any subdivision <strong>and</strong> any k ∈ N such that τk ≤ T ∗ :<br />
�<br />
|Sk(+)| ≤ |S0| + c<br />
�<br />
2sT ∗<br />
e = β1.<br />
2s<br />
In order to prove the result for times greater than T ∗ , consider a symmetric semi positive<br />
matrix S. We have S ≤ |S|Id = � Tr(S 2 )Id, <strong>and</strong> according to fact 2.(b): S ≤ Tr(S)Id.<br />
Therefore, investigations on the upper bound are done in the form of investigations on the<br />
trace of S.<br />
Lemma 79<br />
If S : [0,T[→ Sn is a solution to dS<br />
dτ<br />
where:<br />
= −A′ S − SA − SQS then for almost all τ ∈ [0,T[,<br />
d<br />
dτ Tr(S) ≤−a (Tr (S(τ))) 2 +2bTr (S(τ)) ,<br />
a = λmin(Q)<br />
n<br />
b = sup τ Tr(A ′<br />
(τ)A(τ)) 1<br />
2 .<br />
134
tel-00559107, version 1 - 24 Jan 2011<br />
Proof.<br />
d<br />
dτ Tr(S(τ)) = −Tr(SQS) − Tr(A ′<br />
B.1 Bounds on the Riccati Equation<br />
S) − Tr(SA)<br />
≤ −Tr(SQS)+2|Tr(A ′<br />
S)|.<br />
From the matrix facts: Tr(SQS) > q<br />
n (Tr(S)) 2 , with q = min<br />
�x�=1 x′ Qx, <strong>and</strong><br />
|Tr(A ′<br />
S)| ≤ � Tr(A ′ A) � Tr(S ′ S)<br />
≤ Tr(A ′<br />
A) 1 � 1<br />
2 Tr(S) 2� 2<br />
�<br />
≤ sup Tr(A<br />
t<br />
′<br />
A) 1 �<br />
2 Tr(S).<br />
Therefore<br />
d<br />
dτ Tr(S) ≤−aTr(S) 2 +2bTr(S)<br />
where a <strong>and</strong> b are as in the lemma.<br />
Useful bounds for Tr(S(τ)) can be derived from Lemma 79. In the following, x st<strong>and</strong>s for<br />
Tr(S).<br />
Lemma 80<br />
Let a, b be two positive constants. Let x : [0,T[→ R + (possibly T =+∞) be an absolutely<br />
continuous function satisfying for almost all 0 < τ 2b<br />
a<br />
Proof.<br />
− If x(τ) ≤ 2b<br />
a<br />
− Otherwise, we define<br />
˙x(τ) ≤−ax 2 (τ)+2bx(τ).<br />
<strong>and</strong> 0. The solution x(τ) is such that:<br />
x(τ) ≤ max � (x(0), 2b<br />
a )� for all τ ∈ [0,T[.<br />
then for all τ > 0 ∈ [0,T[ we have the two inequalities:<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
x(τ) ≤ 2b 2b 1<br />
+<br />
a a e2bτ − 1 ,<br />
2bx0e<br />
x(τ) ≤<br />
2bτ<br />
ax0 (e2bτ − 1) + 2b .<br />
for all τ ∈ [0,T[, trivially we have x(τ) ≤ max (x(0), 2b<br />
a ).<br />
E =<br />
�<br />
τ ∈ [0,T[: x(τ) > 2b<br />
�<br />
a<br />
(B.5)<br />
which is a non empty set. Take any connected component ]α,β [⊂ E such that α > 0.<br />
There are two situations:<br />
1. β = T , <strong>and</strong> x(β) ≥ 2b<br />
2b<br />
a , x(α) = a ,<br />
135
tel-00559107, version 1 - 24 Jan 2011<br />
2. β 0}: it has positive measure.<br />
Suppose it is not the case: therefore x decreases from time α to time β. This<br />
implies that x(α) >x(β) which is in contradiction with ⋆. Therefore the<br />
measure of F is strictly positive.<br />
However for any τ ∈]α,β [⊂ E we have x(τ) > 2b<br />
a : −aX2 +2bX < 0 since x(τ) > 2b<br />
a .<br />
Then ˙x(τ) < 0 <strong>and</strong> τ /∈ F , which means that F is not of positive measure. This gives<br />
us a contradiction: either α = 0 or E = ∅ (first item at the beginning of the proof).<br />
Consider α = 0: E = [0, τ1[, τ1 > 0 <strong>and</strong> x(t) ≤ max (x(0), 2b<br />
a ), for all τ ≥ τ1. For<br />
τ ∈ [0, τ1[:<br />
� �<br />
2b<br />
˙x(τ) ≤ a − x(τ) x(τ) < 0,<br />
a<br />
which means that x(τ) is decreasing on [0, τ1[ (x(τ) 2b<br />
2b<br />
a , then x(τ) > a for τ ∈ [0, τ1[ as above. It means that:<br />
� �<br />
2b<br />
˙x ≤ a − x(τ) x(τ).<br />
a<br />
We rewrite it:<br />
Consider<br />
or in other terms<br />
Integration with respect to time gives:<br />
�<br />
x<br />
ln<br />
x − 2b<br />
�<br />
a<br />
− ˙x(τ)<br />
a � 2b<br />
a − x� ≥ 1.<br />
x<br />
� �<br />
d ln<br />
x<br />
x − 2b<br />
��<br />
a<br />
= − 2b<br />
a dx<br />
x(x − 2b<br />
a )<br />
� �<br />
a d<br />
2b dτ<br />
ln<br />
x<br />
x − 2b<br />
��<br />
a<br />
=<br />
− ˙x<br />
(x − 2b ≥ a.<br />
a )x<br />
≥ a 2b<br />
�<br />
τ + ln<br />
a<br />
Therefore, since x0 > 2b<br />
2b<br />
a , <strong>and</strong> x(τ) > a for τ
tel-00559107, version 1 - 24 Jan 2011<br />
Since x(τ) > 2b<br />
a , equation (B.6) implies:<br />
Which gives the first inequality:<br />
therefore<br />
x<br />
(x − 2b<br />
a ) ≥ e2bτ .<br />
x ≥<br />
x ≤ 2b<br />
a<br />
�<br />
x − 2b<br />
�<br />
e<br />
a<br />
2bτ<br />
+ 2b<br />
a<br />
We obtain the second inequality simply from (B.6):<br />
Remark 81<br />
x(τ) ≤<br />
B.1 Bounds on the Riccati Equation<br />
1<br />
e2bτ − 1 .<br />
2bx0e 2bτ<br />
ax0 (e 2bτ − 1) + 2b .<br />
1. The first inequality of (B.5) can be used for any initial value S(0), since it tends toward<br />
+∞ when τ → 0,<br />
2. the second one requires some knowledge on S(0) in order to be useful,<br />
3. the two bounds obtained are <strong>high</strong>er than 2b<br />
a , therefore they are true for any τ ∈ [0,T].<br />
�<br />
Let us denote r = sup Tr(C ′<br />
R−1 �<br />
C) . According to equation (B.1), the problem turns<br />
into proving that xk(+), the solution of:<br />
�<br />
dx<br />
dτ = −ax2 xk(+) ≤<br />
+2bx<br />
xk(−)+(τk − τk−1) r,<br />
is upper bounded for all T ∗ ≤ τk, k ∈ N, independently from the subdivision {τi},i∈ N.<br />
(B.7)<br />
The bounds of Lemma 80 are valid on intervals of the form 2 ]τi−1, τi]. Let us find an<br />
expression that we can use in order to upper bound x at any time.<br />
Lemma 82<br />
The solution of (B.7) is such that:<br />
x(τ) ≤ 2b<br />
a<br />
for any τ > 0, before or after an update.<br />
+ 2b<br />
a<br />
1<br />
e2bτ + rτ,<br />
− 1<br />
2 Or of the form [τi−1, τi], it depends on which bound one considers.<br />
137
tel-00559107, version 1 - 24 Jan 2011<br />
Proof.<br />
The first bound of (B.5) gives:<br />
<strong>and</strong> the second is rewritten:<br />
x2(−) ≤ 2b<br />
a<br />
x1(+) ≤ 2b<br />
a<br />
+ 2b<br />
a<br />
+ 2b<br />
a<br />
B.1 Bounds on the Riccati Equation<br />
1<br />
e2bτ1 + rτ1,<br />
− 1<br />
x1(+) − 2b<br />
a<br />
x1(+) � e 2b(τ2−τ1) − 1 � + 2b<br />
a<br />
We want to replace x1(+) by the upper bound found above.<br />
Let us define the function<br />
2bxe<br />
h(x) =<br />
2bτ<br />
ax (e2bτ − 1) + 2b .<br />
Its derivative w.r.t. x is<br />
h ′<br />
(x) = e2bτ 2b � ax(e 2bτ − 1) + 2b � − a(e 2bτ − 1)xe 2bτ 2b<br />
[ax(e 2bτ − 1) + 2b] 2<br />
=<br />
e 2bτ (2b) 2<br />
[ax(e 2bτ − 1) + 2b]<br />
It is positive for all τ > 0, <strong>and</strong> we can replace x1(+) by its upper bound:<br />
x2(−) ≤ 2b 2b<br />
+<br />
a a<br />
�<br />
2b 2b 1<br />
a + a e2bτ �<br />
1−1<br />
+ rτ1 − 2b<br />
a<br />
� �e �<br />
1 + rτ1<br />
2b(τ2−τ1) 2b − 1 +<br />
≤ 2b<br />
a<br />
+ 2b<br />
a<br />
� 2b<br />
a<br />
2b<br />
a<br />
+ 2b<br />
a<br />
1<br />
e2bτ1 − 1<br />
e 2bτ 1−1<br />
� 2b<br />
a<br />
+ 2b<br />
a<br />
+ 2b<br />
a<br />
� 2b<br />
a<br />
2 .<br />
1<br />
e2bτ1−1 + 2b<br />
a<br />
1<br />
� �e �<br />
+ rτ1<br />
2b(τ2−τ1) 2b − 1 +<br />
1<br />
e2bτ1−1 We upper bounds the denominator of the last term with:<br />
�<br />
2b 2b 1<br />
+<br />
a a e2bτ1 � �<br />
+ rτ1 e<br />
− 1 2b(τ2−τ1)<br />
�<br />
− 1<br />
<strong>and</strong> the denominator of the second term with:<br />
�<br />
2b 2b 1<br />
+<br />
a a e2bτ1 � �<br />
+ rτ1 e<br />
− 1 2b(τ2−τ1)<br />
�<br />
− 1<br />
We also simplify (2b/a) in those two terms:<br />
x2(−) ≤ 2b<br />
a<br />
≤ 2b<br />
a<br />
+ 2b<br />
a<br />
+ 2b<br />
a<br />
+ 2b<br />
a ≥<br />
� 2b<br />
a<br />
+ 2b<br />
a<br />
.<br />
a<br />
rτ1<br />
� �e � .<br />
+ rτ1<br />
2b(τ2−τ1) 2b − 1 +<br />
+ 2b<br />
a<br />
≥ 2b<br />
a ,<br />
1<br />
e2bτ1 � �<br />
e<br />
− 1<br />
2b(τ2−τ1)<br />
�<br />
− 1 + 2b<br />
a .<br />
1<br />
e2bτ1 1<br />
��<br />
− 1 1+ 1<br />
e2bτ � �e � � + rτ1,<br />
2b(τ2−τ1)<br />
1−1<br />
− 1 +1<br />
1<br />
e2bτ2 − e2bτ1 + e2bτ1 + rτ1.<br />
− 1<br />
138<br />
a<br />
a
tel-00559107, version 1 - 24 Jan 2011<br />
Thus we have:<br />
x2(+) ≤ 2b<br />
a<br />
+ 2b<br />
a<br />
B.1 Bounds on the Riccati Equation<br />
1<br />
e2bτ2 + rτ2.<br />
− 1<br />
This last inequality is of the same form as the first bound of (B.5), <strong>and</strong> is independent<br />
from the values of τ1 <strong>and</strong> τ2. We can therefore generalize it to any i ∈ N ∗ :<br />
xi(+) ≤ 2b<br />
a<br />
+ 2b<br />
a<br />
1<br />
e2bτi + rτi.<br />
− 1<br />
Moreover, we can generalize this inequality to any τ > 0, before or after the update (i.e. the<br />
correction step):<br />
x(τ) ≤ 2b 2b 1<br />
+<br />
a a e2bτ + rτ.<br />
− 1<br />
Remark 83<br />
This last bound cannot be used to obtain an upper bound for x for all times τ ≥ T ∗<br />
because it is not a decreasing function of time (this is proven later on). In other words,<br />
suppose we have two times 0 < ξ1 < ξ2, then there exist two positive scalars, β1 <strong>and</strong> β2 such<br />
that x(ξ1) < β1 <strong>and</strong> x(ξ2) < β2. But we don’t know if β2 is <strong>high</strong>er or not than β1.<br />
In the following we’ll see that such a relation can be derived provided that the length<br />
between two samples is bounded.<br />
Lemma 84<br />
Let us define the functions<br />
φ(τ) = 2b<br />
a<br />
ψx0 (τ) =<br />
2b 1<br />
+<br />
a e2bτ + rτ,<br />
− 1<br />
2bx0e2bτ ax0 (e2bτ + rτ.<br />
− 1) + 2b<br />
There exists µφ > 0, <strong>and</strong> µψ(x0) > 0 such that φ(τ), respectively ψx0 (τ), is a decreasing<br />
function for τ ∈]0,µφ], respectively for τ ∈ [0,µψ(x0)].<br />
Moreover µψ(x0) is an increasing function of x0.<br />
Proof.<br />
The proof basically consists in the computation of the variation tables of the two functions.<br />
1.<br />
φ ′<br />
Let us consider the polynomial<br />
(τ) = ra(e2bτ ) 2 − (4b2 +2ar)e2bτ + ra<br />
a(e2bτ − 1) 2 .<br />
P (X) =raX 2 − (4b 2 +2ar)X + ra.<br />
��(2b) � �<br />
Its discriminant 2 2<br />
+2ar − 4a2r2 is positive. Therefore P (X) has two real<br />
roots whose product <strong>and</strong> sum are both positive. Thus both roots are positive.<br />
We denote them 0
tel-00559107, version 1 - 24 Jan 2011<br />
Those two roots are:<br />
<strong>and</strong><br />
B.1 Bounds on the Riccati Equation<br />
X∗ = (4b2 +2ar) − � (4b2 +2a) 2 − 4a2r2 � 2ar √ �<br />
(4b2 +2ar) 2 − 4a2r2 + 4a2r2 − (4b2 +2a) 2 − 4a2r2 ≤<br />
,<br />
2ar<br />
≤ 1,<br />
X µ = (4b2 +2ar)+ � (4b2 +2a) 2 − 4a2r2 > 1.<br />
2ar<br />
We conclude that there exists µφ > 0 such that φ(τ) is a decreasing function over the<br />
interval [0,µφ].<br />
2. Let us remark first that ψx0 (0) = x0. A few computations give us:<br />
ψ ′<br />
x0 (τ) =ra2 x2 0 (e2bτ ) 2 − x0(ax0 − 2b)(4b2 +2ra)e2bτ + r(ax0 − 2b) 2<br />
[ax0(e2bτ − 1) + 2b] 2<br />
.<br />
As before we consider the polynomial<br />
Its discriminant is<br />
P (X) =ra 2 x 2 0X 2 − x0(ax0 − 2b)(4b 2 +2ra)X + r(ax0 − 2b) 2 .<br />
x 2 0(ax0 − 2b) 2 ((2b) 2 +2ra) 2 − 4r 2 a 2 x 2 0(ax0 − 2b) 2 .<br />
It is positive. A<strong>gain</strong> both roots are positive: 0 0, a function of x0, such that ψ(τ) is a decreasing function over the<br />
interval ]0,µψ(x0)].<br />
In order to check that µψ(x0) increases with x0, we show that X µ is an increasing<br />
function of x0.<br />
X µ = x0(ax0 − 2b)(4b2 +2ar)<br />
2ra2x2 � 0<br />
(ax0 − 2b)<br />
+<br />
2 (4b2 +2ar) 2x2 0 − 4r2a2x2 0 (ax0 − 2b) 2<br />
2ra2x2 =<br />
0<br />
(a − 2b<br />
x0 )(4b2 +2ar)<br />
2ra2 �<br />
+<br />
(a − 2b<br />
x0 )2 (4b2 +2ar) 2 − 4r2a2 (a − 2b<br />
x0 )2<br />
2ra2 = A+√B D .<br />
3 Since the coefficient of the second order term of P (X) is positive, then the polynomial has negative sign<br />
for X ∈]X ∗ ,X µ [. We only to check that P (1) ≤ 0.<br />
140
tel-00559107, version 1 - 24 Jan 2011<br />
− from the definition of r, D>0,<br />
− (a − 2b<br />
x0 ) is an increasing function of x0, so is A,<br />
B.1 Bounds on the Riccati Equation<br />
− B can be rewritten (a − 2b<br />
x0 )2 � (4b 2 +2ar) 2 − 4r 2 a 2� , the right part is positive, <strong>and</strong><br />
the left one is an increasing function of x0, so is B.<br />
X µ (x0) is therefore an increasing function of x0, so is µψ(x0) (i.e. P (X) was obtained<br />
from the change of variables X = e 2bτ ).<br />
Remark 85<br />
1. Notice that since ψ(0) = x0, therefore for all τ ∈ [0,µψ(x0)], ψ(τ) ≤ ψ(0) = x0.<br />
2. Let x∗ 0 > 0 be fixed, <strong>and</strong> denote ψx∗(τ) the associated ψ function. It is a decreasing<br />
0<br />
function over [0,µψ(x∗ 0 )]. The fact that µψ(x∗ 0 ) is an increasing function of x0 tells us<br />
that for any x0 >x∗ 0 , ψx0 (τ) is a decreasing function of τ over the interval [0,µψ(x∗ 0 )] ⊂<br />
[0,µψ(x0)].<br />
In other words ψx0 (µψ(x∗ 0 )) 0 be fixed. There<br />
exist two scalars β2 > 0 <strong>and</strong> µ>0 such that<br />
Sk(+) ≤ β2Id,<br />
for all T ∗ ≤ τk, k ∈ N, for all subdivision {τi}i∈N, τi − τi−1 0 be arbitrarily fixed. We define B(T ∗ )= 2b<br />
a<br />
+ 2b<br />
a<br />
1<br />
e 2bT ∗ −1 + rT ∗ . From Lemma<br />
82, x(T ∗ ) ≤ B(T ∗ ) independently from the subdivision {τi}i∈N.<br />
Let us define µ as the maximum value such that the functions φ(τ), <strong>and</strong> ψ B(T ∗ )(τ) of Lemma<br />
84 are both decreasing functions over the interval [0,µ]. Notice that µ depends on B(T ∗ ).<br />
We claim that β2 = B(T ∗ )+rµ solves the problem.<br />
Let us consider a time subdivision {τi}i∈N such that τi − τi−1 ≤ µ, for all i ∈ N.<br />
We show first that if xk(+) ≤ β2, then xk+1(+) ≤ β2.<br />
1. If xk(+) ≤ 2b<br />
a then, from Lemma 80, xk+1(−) ≤ max � 2b<br />
a ,xk(+) � = 2b<br />
a . Therefore<br />
xk+1(+) ≤ 2b<br />
a + rµ ≤ β2,<br />
2. if xk(+) ≥ 2b<br />
a , <strong>and</strong> xk(+) ≤ B(T ∗ ), we use Lemma 80 a<strong>gain</strong> to deduce xk+1(−) ≤<br />
max � 2b<br />
a ,xk(+) � ≤ B(T ∗ ). Finally we have xk+1(+) ≤ B(T ∗ )+rµ = β2,<br />
141
tel-00559107, version 1 - 24 Jan 2011<br />
B.1 Bounds on the Riccati Equation<br />
3. if xk(+) ≥ 2b<br />
a , <strong>and</strong> xk(+) ≥ B(T ∗ ) then , Lemma 80 tells us that xk+1 ≤ ψxk (τk+1 −τk).<br />
From Lemma 84, we know that it is a decreasing function, <strong>and</strong> according to Remark<br />
85 we have xk+1(+) ≤ ψxk (0) ≤ β2.<br />
Let us now define k such that τk−1 0, we have x(T ∗ ) ≤ B(T ∗ ) by definition. From equation (B.7) <strong>and</strong> Lemma 80:<br />
− if x(T ∗ ) ≤ 2b<br />
a therefore xk(−) ≤ 2b<br />
a ≤ B(T ∗ ),<br />
− if x(T ∗ ) ≥ 2b dx<br />
a , then dτ is negative according to equation (B.7), x is decreasing <strong>and</strong><br />
xk(−) ≤ B(T ∗ ).<br />
In both cases xk(+) ≤ B(T ∗ )+µr = β2<br />
We finally conclude that, there are two positive constants β2 <strong>and</strong> µ such that Sk(+) ≤ β2Id<br />
for all τk ≥ T ∗ , k ∈ N. It is true for all subdivision {τi}i∈N, such that τi − τi−1 ≤ µ, ∀i.<br />
Remark 87<br />
The constraint τi − τi−1 ≤ µ, interpreted in the original time scale, gives θiδt ≤ µ, ∀i ∈ N.<br />
We conclude this subsection giving the upper bound property for all times τ.<br />
Lemma 88<br />
Consider the prediction correction equation (B.1) <strong>and</strong> the hypothesis of Lemma 77. There<br />
exist two positive constants µ > 0 <strong>and</strong> β such that S(τ) ≤ βId, for all k ∈ N, <strong>and</strong> all<br />
τ ∈ [τk, τk+1[, for all subdivision {τi}i∈N such that (τi − τi−1) ≤ µ.<br />
This inequality is then also true in the t time scale.<br />
Proof.<br />
Let us define ˆ β = max (β2, β1). Lemmas 86 <strong>and</strong> 78 give us Sk(+) ≤ β2Id, for all k ∈ N.<br />
Then Lemmas 79 <strong>and</strong> 80 implies the existence of ˆ β ∗ such that S(τ) ≤ ˆ βId for any τ ∈<br />
[τk, τk+1[, <strong>and</strong> any k ∈ N.<br />
We define β as the maximum value between ˆ β ∗ <strong>and</strong> ˆ β.<br />
B.1.2 Part Two: the Lower Bound<br />
As in the previous subsection, the proof is separated into three parts. Let T∗ be a fixed<br />
positive scalar, possibly distinct from T ∗ (Cf. previous subsection).<br />
1. We prove that there is α1 such that for all k ∈ N, such that τk ≤ T∗, α1Id ≤ Sk(+),<br />
142
tel-00559107, version 1 - 24 Jan 2011<br />
B.1 Bounds on the Riccati Equation<br />
2. we show that there exists α2 such that for all k ∈ N, such that T∗ ≤ τk, α2Id ≤ Sk(+),<br />
3. we give the result for all times.<br />
As before, the first fact is proven rather directly.<br />
Lemma 89<br />
Consider equation (B.1) <strong>and</strong> the assumptions of Lemma 77. Let T∗ > 0 be fixed. There<br />
exists α1 > 0 such that<br />
α1Id ≤ Sk(+),<br />
for all τk ≤ T ∗ , k ∈ N, independently from the subdivision {τi}i∈N.<br />
Proof.<br />
We denote P = S −1 . For all τ ∈ [τk−1, τk[, equation (B.1) gives:<br />
� τ<br />
P (τ) = Pk−1(+) +<br />
τk−1<br />
τk−1<br />
dP (v)<br />
dτ dv,<br />
P (τ) = Pk−1(+)<br />
⎡<br />
� �<br />
τ<br />
+ ⎣P A(u)+ ˜b ∗ (z, u)<br />
θ<br />
Computations performed as in Lemma 78 lead to<br />
�′<br />
+<br />
�<br />
A(u)+ ˜ b ∗ (z, u)<br />
θ<br />
|Pk(−)| ≤ (|Pk−1(+)| + |Q| (τk − τk−1)) e 2s(τk−τk−1)<br />
where s>0 is as before. From (B.1) <strong>and</strong> Lemma 64<br />
�<br />
⎤<br />
P + Q⎦<br />
dv.<br />
�<br />
Pk(+) = Sk(−)+θδtC ′<br />
r−1 �−1 C<br />
= Sk(−) −1<br />
�<br />
Sk(−) −1 + θδtSk(−) −1C ′<br />
r−1CSk(−) −1<br />
�−1 Sk(−) −1<br />
= Sk(−) −1<br />
�<br />
Sk(−) − C ′ � r<br />
θδt + CSk(−) −1C ′� �<br />
−1<br />
C Sk(−) −1<br />
≤ Sk(−) −1 Sk(−)Sk(−) −1<br />
≤ Pk(−).<br />
We consider a subdivision of {τk}k∈N such that τ0 = 0. Since ¯ P0 = P0:<br />
We iterate to obtain<br />
<strong>and</strong> for all k ∈ N<br />
|P2(+)| ≤| P0| e 2sτ2 + |Q|<br />
|P1(+)| ≤ (|P0| + |Q| τ1) e 2sτ1 .<br />
�<br />
τ1e 2sτ2<br />
�<br />
2s(τ2−τ1)<br />
+(τ2 − τ1) e ,<br />
|Pk(+)| ≤| P0| e 2sτk<br />
�i=k<br />
+ |Q| (τi − τi−1) e 2s(τk−τi)<br />
.<br />
143<br />
i=1<br />
(B.8)<br />
(B.9)<br />
(B.10)
tel-00559107, version 1 - 24 Jan 2011<br />
B.1 Bounds on the Riccati Equation<br />
In the same manner as in Lemma 78 we conclude that for all τk ≤ T∗, k ∈ N:<br />
�<br />
|Pk(+)| ≤ |P0| + |Q|<br />
�<br />
e<br />
2s<br />
2sT∗ = 1<br />
.<br />
Therefore Pk(+) ≤ 1<br />
α1 Id, for all τk ≤ T∗, k ∈ N, for all subdivisions {τi}i∈N.<br />
Equivalently, from matrix fact 3.(c): α1Id ≤ Sk(+).<br />
We now proceed with the proof of the second part of this subsection. We need a different<br />
set of tools than the one used in the preceding section. It is a series of lemmas adapted from<br />
[57]. As we will see, in addition to the proof of the existence of a lower bound for S, we also<br />
prove that it is a symmetric positive definite matrix for all times.<br />
Lemma 90<br />
For any λ ∈ R ∗ , any solution S : [0,T[→ Sm (Possibly, T =+∞) of<br />
we have for all τ ∈ [0,T[:<br />
dS<br />
dτ<br />
S(τ) =e−λτ φu(τ, 0)S0φ ′<br />
u(τ, 0)<br />
� τ<br />
+λ<br />
0<br />
α1<br />
= −A′ (τ)S − SA(τ) − SQS,<br />
e −λ(τ−v) �<br />
φu(τ,v) S(v) − S(v)QS(v)<br />
�<br />
φ<br />
λ<br />
′<br />
u(τ,v)dv<br />
where φu(τ,s) is such that: � dφu(τ,s)<br />
dτ = −A ′<br />
(τ)φu(τ,s),<br />
φu(s, s) = Id.<br />
(B.11)<br />
Remark 91<br />
Notice that S(τ) is not λ-dependent. This latter scalar is used only to provide us with a<br />
convenient way to express S(τ).<br />
Proof.<br />
Let us consider an equation of the form<br />
φu(τ,s) denotes the resolvent of the system dx<br />
dτ<br />
d<br />
Λ(τ) =−A′ Λ(τ) − Λ(τ)A + F (τ). (B.12)<br />
dτ<br />
dφu(τ,s)<br />
= −A′ x:<br />
dτ = −A ′<br />
φu(τ,s),<br />
φu(s, s) = Id.<br />
We search for a solution of the formΛ( τ) =φu(τ,s)h(τ)φ ′<br />
u(τ,s).<br />
dΛ<br />
dτ = � d<br />
dτ φu(τ,s) � h(τ)φ ′<br />
�<br />
d<br />
u(τ,s)+φu(τ,s)h(τ) dτ φ′<br />
�<br />
u(τ,s)<br />
= −A ′<br />
φu(τ,s)h(τ)φ ′<br />
u(τ,s) − φu(τ,s)h(τ)φ ′<br />
+φu(τ,s) � d<br />
dτ h(τ)� φ ′<br />
u(τ,s)A(τ)<br />
= −A ′<br />
Λ(τ) − Λ(τ)A + φu(τ,s) � d<br />
dτ h(τ)� φ ′<br />
u(τ,s),<br />
144<br />
+φu(t, s) � d<br />
dτ h(τ)� φ ′<br />
u(τ,s)<br />
u(τ,s)
tel-00559107, version 1 - 24 Jan 2011<br />
therefore φu(τ,s) � d<br />
dτ h(τ)� φ ′<br />
u(τ,s)=F (τ), <strong>and</strong><br />
� τ<br />
h(τ) =h(0) +<br />
SinceΛ( τ) =φu(τ,s)h(τ)φ ′<br />
u(τ,s), thus φu(s, 0)Λ(0)φ ′<br />
0<br />
B.1 Bounds on the Riccati Equation<br />
φu(s, v)F (v)φ ′<br />
u(s, v)dv.<br />
Λ(τ) =<br />
u(s, 0) = h(0). Therefore:<br />
φu(τ,s)h(0)φ ′<br />
�� τ<br />
u(τ,s)+φu(τ,s) φu(s, v)F (v)φ<br />
0<br />
′<br />
�<br />
u(s, v)dv φ ′<br />
=<br />
u(t, s)<br />
φu(τ,s)φu(s, 0)Λ(0)φ ′<br />
u(s, 0)φ ′<br />
� τ<br />
u(τ,s)+ φu(τ,v)F (v)φ<br />
0<br />
′<br />
=<br />
u(τ,v)dv<br />
φu(τ, 0)Λ0φ ′<br />
� τ<br />
u(τ, 0) + φu(τ,v)F (v)φ ′<br />
u(τ,v)dv.<br />
0<br />
Let us take λ ∈ R ∗ , <strong>and</strong> define ˆ S = e λτ S. The differential equation associated to ˆ S is<br />
d<br />
dτ ˆ S(τ) = λeλτ S + eλτ dS<br />
dτ<br />
= λ ˆ S(τ) − A ′ S(τ) ˆ − S(τ)A ˆ − e−λτ S(τ)Q ˆ S(τ). ˆ<br />
This equation is of the form (B.12), with F (τ) = λ ˆ S(τ) − e−λτ SQ ˆ S. ˆ According to the<br />
computation above, we have:<br />
ˆS(τ) =φu(τ, 0) ˆ S(0)φ ′<br />
� τ �<br />
u(τ, 0) + φu(τ,v) λ ˆ S(v) − e −λv �<br />
SQ ˆ Sˆ<br />
φ ′<br />
u(τ,v)dv,<br />
<strong>and</strong> consequently<br />
S(τ) =φu(τ, 0)S0φ ′<br />
u(τ, 0)e −λτ � τ<br />
+ λ<br />
Lemma 92<br />
Let S : [0; e(S)[→ Sm be a maximal semi solution of<br />
If S(0) = S0 is positive definite then<br />
0<br />
0<br />
e −λ(τ−v) �<br />
φu(τ,v) S − SQS<br />
�<br />
φu(τ,v)dv.<br />
λ<br />
d<br />
S = −A′ S − SA − SQS.<br />
dτ<br />
e(S) =+∞ <strong>and</strong> S(τ) is positive definite for all τ ≥ 0.<br />
Thus, for any arbitrary time subdivision {τi}i∈N∗ the solution to the continuous discrete<br />
Riccati equation (B.1) is positive definite for all times provided that S0 is positive definite.<br />
Proof.<br />
Assume that S is not always positive definite. Let us define<br />
θ = inf (τ|S(τ) /∈ Sm(+)).<br />
In other words S(τ) ∈ Sm(+) for all τ ∈ [0; θ[. From Lemma 79:<br />
d<br />
dτ Tr(S) ≤−aTr(S) 2 +2bTr(S)<br />
145
tel-00559107, version 1 - 24 Jan 2011<br />
B.1 Bounds on the Riccati Equation<br />
which, in combination with Lemma 80, gives Tr(S) ≤ max � Tr(S0), 2b<br />
�<br />
a <strong>and</strong><br />
|S| = � Tr(S 2 ) ≤ � Tr(S) 2 �<br />
= Tr(S) ≤ max Tr(S0), 2b<br />
Choose λ > |Q| max � Tr(S0), 2b<br />
�<br />
a <strong>and</strong> apply Lemma 90:<br />
S(τ) =e −λτ φu(τ, 0)S0φ ′<br />
� τ<br />
u(τ, 0) + e<br />
0<br />
−λ(τ−v) φu(τ,v)<br />
Let τ be equal to θ then S(θ) = (I)+(II) with<br />
(I) is definite posittive �<br />
(II) depends on<br />
0<br />
a<br />
�<br />
.<br />
�<br />
S(τ) − S(τ)QS(τ)<br />
�<br />
φ<br />
λ<br />
′<br />
u(τ,v)dv.<br />
(I) = e−λθφu(θ, 0)S0φ ′<br />
u(θ, 0),<br />
� θ<br />
(II) = e −λ(θ−v) �<br />
φu(θ,v) S − SQS<br />
�<br />
φ<br />
λ<br />
′<br />
u(θ,v)dv.<br />
S − SQS<br />
λ<br />
�<br />
, which we can rewrite √ �<br />
S Id −<br />
itive definite for 0 < τ
tel-00559107, version 1 - 24 Jan 2011<br />
B.1 Bounds on the Riccati Equation<br />
Proof.<br />
Let M(t) be a primitive matrix of m(t), that is to say a matrix whose elements are the<br />
primitives of the elements of m(t). We have the identity<br />
� T<br />
m(v)dv = M(T ) − M(0) =<br />
0<br />
k�<br />
[M(τi) − M(τi−1)] .<br />
We can apply the Taylor-Lagrange expansion on all elements Mkl:<br />
i=1<br />
Mkl(τi−1) =Mkl(τi)+(τi−1 − τi) mkl(τi)+ (τi−1 − τi) 2<br />
where ξkl,i ∈ [τi−1, τi]. We have thus, the relation<br />
k�<br />
M(τi−1) =<br />
i=1<br />
k�<br />
M(τi)+<br />
i=1<br />
k�<br />
m(τi) ((τi−1 − τi)) +<br />
where (Rkl)i = m ′<br />
kl (ξkl,i), with ξkl,i ∈ [τi, τi−1]. Therefore<br />
� T<br />
m(v)dv −<br />
0<br />
i=1<br />
k�<br />
m(τi)(τi − τi−1) =<br />
i=1<br />
i=1<br />
= � �<br />
k (τi−1−τi)<br />
i=1<br />
2<br />
2<br />
Ri<br />
2<br />
k�<br />
i=1<br />
k�<br />
[M(τi) − M(τi−1)] −<br />
�<br />
.<br />
m ′<br />
kl (ξkl,i)<br />
�<br />
(τi−1 − τi) 2<br />
2<br />
Ri<br />
�<br />
k�<br />
((τi − τi−1)m(τi))<br />
We now use the definition of the matrix inequality. Let x be a non zero element of Rn ,<br />
x ′<br />
�<br />
k�<br />
�<br />
(τi−1 − τi)<br />
i=1<br />
2<br />
��<br />
Ri x<br />
2<br />
= 1<br />
k� �<br />
(τi−1 − τi)<br />
2<br />
i=1<br />
2 x ′<br />
�<br />
Rix<br />
≤ 1<br />
⎛<br />
⎞<br />
≤<br />
k�<br />
�<br />
⎝(τi−1<br />
2<br />
− τi) |xk||Rk,l|<br />
2<br />
i |xl| ⎠<br />
i=1<br />
k,l<br />
1 � �<br />
µ max |Rk,l|<br />
2 k,l,i<br />
i<br />
� �<br />
�k<br />
τi−1 − τi<br />
⎛<br />
⎝ �<br />
⎞<br />
|xk||xl| ⎠<br />
Thus giving the result.<br />
≤ 1 �<br />
µ max |Rk,l|<br />
2 k,l,i<br />
i<br />
≤ 1<br />
2<br />
�<br />
µ max |Rk,l|<br />
k,l,i<br />
i<br />
i=1<br />
� � k �<br />
� T 1<br />
2<br />
i=1<br />
τi−1 − τi<br />
�<br />
�<br />
2n �x� 2�<br />
.<br />
i=1<br />
1<br />
2<br />
k,l<br />
⎛<br />
⎝ �<br />
|xk| 2 + |xl| 2<br />
⎞<br />
⎠<br />
Remark 94<br />
Suppose that m = ψ ′<br />
(v, T )C ′<br />
Cψ(v, T ) where ψ(v, T ) is a resolvent matrix as in Lemma<br />
90. From the assumptions we put on our continuous discrete system, <strong>and</strong> the fact that the<br />
147<br />
k,l
tel-00559107, version 1 - 24 Jan 2011<br />
B.1 Bounds on the Riccati Equation<br />
observation matrix is fixed (i.e. not u-dependent), the derivative of such a m matrix is<br />
bounded.<br />
If we want to consider C matrices defined with a function α1 as in the continuous case,<br />
the derivative of this function must have a bounded time derivative. The consequence is that<br />
bang-bang like control inputs become inadmissible.<br />
We now have gathered all the elements necessary to prove the second half of this subsection’s<br />
result.<br />
Lemma 95<br />
Consider equation (B.1) <strong>and</strong> the assumptions of Lemma 77. Let T∗ > 0 be fixed. There<br />
exist α2 > 0 <strong>and</strong> µ>0 such that for all subdivision {τi}i∈N with τi − τi−1 β |Q|:<br />
S1(+) = e−λτ1φu(τ1, 0)S0φ ′<br />
� u(τ1, 0)<br />
τ1<br />
+λ e −λ(τ1−v)<br />
φu(τ1,v)<br />
In the same manner we obtain at time τ2:<br />
τ1<br />
0<br />
S2(+) = e−λ(τ2−τ1) φu(τ2, τ1)S1(+)φ ′<br />
� u(τ2, τ1)<br />
τ2<br />
+λ e −λ(τ2−v)<br />
�<br />
φu(τ2,v) S(v) − S(v)QS(v)<br />
λ<br />
�<br />
S(v) − S(v)QS(v)<br />
�<br />
φ<br />
λ<br />
′<br />
u(τ1,v)dv + C ′<br />
R −1 Cτ1.<br />
�<br />
φ ′<br />
u(τ2,v)dv + C ′<br />
R −1 C(τ2 − τ1).<br />
A few computations (see Appendix A.1 for the resolvent’s properties) lead to:<br />
S2(+) = e−λτ2φu(τ2, 0)S0φ ′<br />
� u(τ2, 0)<br />
τ2<br />
+λ e<br />
0<br />
−λ(τ2−v)<br />
�<br />
φu(τ2,v) S(v) − S(v)QS(v)<br />
�<br />
φ<br />
λ<br />
′<br />
u(τ2,v)dv<br />
+e−λ(τ2−τ1) φu(τ2, τ1)C ′<br />
R−1C(τ2 − τ1).<br />
R −1 Cφ ′<br />
u(τ2, τ1)τ1 + C ′<br />
4 The matrix inequality we want to achieve implies, in particular, the invertibility of the matrices Sk(+),<br />
k ∈ N. It implies the invertibility of the sum that appears in (B.13). This matrix cannot be inverted if there<br />
are less than n summation terms.<br />
As is explained at the end of the proof, the result is achieved provided that the step size of the subdivision<br />
used in the summation is small enough. Since we have the freedom to make µ as small as we want, the<br />
summation above mentioned can be performed with sufficiently many points whatever the value of T ∗ . It<br />
makes the requirement T∗ ≥ nµ redundant.<br />
Recall now that µ represents the maximum sampling that allows us to use the observer. Lemma 89 provides<br />
us with a first value for µ, <strong>and</strong> it is pretty much system dependent. By removing the assumption, we probably<br />
have to shorten µ for the sake of mathematical elegance only.<br />
We think that the proof is better that way.<br />
148
tel-00559107, version 1 - 24 Jan 2011<br />
For any k, we compute Sk(+) iteratively:<br />
B.1 Bounds on the Riccati Equation<br />
Sk(+) = e−λτkφu(τk, 0)S0φ ′<br />
� u(τk, 0)<br />
τk<br />
+λ e<br />
0<br />
−λ(τk−v)<br />
�<br />
φu(τk,v) S(v) − S(v)QS(v)<br />
�<br />
φ<br />
λ<br />
′<br />
u(τk,v)dv<br />
k�<br />
+<br />
i=1<br />
e −λ(τk−τi) φu(τk, τi)C ′<br />
R −1 Cφ ′<br />
u(τk, τi)(τi − τi−1) .<br />
(B.13)<br />
We consider this last equation for any k ∈ N ∗ such that τk ≥ T∗. It is of the form<br />
Sk(+) = (I)+(II)+(III), in the same order as before.<br />
− Since S0 is positive definite, (I) is positive definite,<br />
�<br />
�<br />
− from the definition of λ,<br />
is positive definite, <strong>and</strong> the same goes for<br />
(II),<br />
S(v) − S(v)QS(v)<br />
λ<br />
− let us define l < k as the maximal element of N such that τk − τl ≥ T∗. Since we<br />
consider (B.13) for times τk ≥ T∗ such an element always exists 5 . Note that because<br />
the subdivisions we use have a step less than µ, τk − τl ≤ T∗ + µ. All the terms of the<br />
sum (III) are symmetric definite positive matrices <strong>and</strong> thus<br />
(III) ≥<br />
k�<br />
i=l+1<br />
e −λ(τk−τi) φu(τk, τi)C ′<br />
R −1 Cφ ′<br />
u(τk, τi)(τi − τi−1) .<br />
From the properties of the resolvent, the right h<strong>and</strong> side expression can be rewritten,<br />
with ū(τ) =u(τ + τl):<br />
k�<br />
i=l+1<br />
e −λ(τk−τi) φū(τk − τl, τi − τl)C ′<br />
R −1 Cφ ′<br />
ū(τk − τl, τi − τl)(τi − τi−1) . (B.14)<br />
For all i = {l +1, .., k} we have e −λ(τk−τi) ≥ e −λ(T∗+µ) , <strong>and</strong> R −1 is a fixed symmetric<br />
positive definite matrix. Therefore in order to lower bound (B.14) we have to find a<br />
lower bound for<br />
k�<br />
i=l+1<br />
φū(τk − τl, τi − τl)C ′<br />
Cφ ′<br />
ū(τk − τl, τi − τl)(τi − τi−1) . (B.15)<br />
Note that this sum is now computed for a subdivision of the interval [0, τk − τl] that<br />
has the very specific property T∗ ≤ τk − τl ≤ T∗ + µ. Let us redefine this subdivision as<br />
follows:<br />
– let k∗ be equal to k − l, the subdivision has k∗ + 1 elements,<br />
– we denote ˜τi = τi+l − τl –i.e. ˜τ0 = 0 <strong>and</strong> ˜τk∗ = τk − τl.<br />
5 It can happen that k = 0. Recall that τ0 = 0 for all subdivisions.<br />
149
tel-00559107, version 1 - 24 Jan 2011<br />
We can prove that (III) has a lower bound if we can prove that<br />
k∗ �<br />
Gū,d =<br />
i=1<br />
B.1 Bounds on the Riccati Equation<br />
′<br />
φū(˜τk∗ , ˜τi)C Cφ ′<br />
ū(˜τk∗ , ˜τi) (˜τi − ˜τi−1)<br />
is lower bounded, for all subdivisions {˜τi} i∈{0,...,k∗} such that ˜τi+1 − ˜τi ≤ µ <strong>and</strong> that 6<br />
T∗ ≤ ˜τk∗ ≤ T∗ + µ.<br />
Let us define ψū(t, s) =(φ −1<br />
ū (t, s)) ′<br />
. Since φū is the resolvent of dx<br />
dτ<br />
= −A′ x, therefore<br />
ψū is the resolvent of dx<br />
dτ = Ax, (Cf. Appendix A.1).<br />
Actually7 Gū,d is the Gramm observability matrix of the continuous discrete version of<br />
a system of the form (A.4).<br />
Let us denote Gū(T ) the grammian of (A.4) when the integral is computed from 0 to<br />
T . Let us apply Lemma 76 on Gū(T∗). There is a a>0, independent from ū, such that<br />
aId ≤ Gū(T∗) ≤ Gū(˜τk∗ ).<br />
From Lemma 93 <strong>and</strong> Remark 94 there is a K>0 such that<br />
Therefore<br />
aId ≤ Gū(˜τk∗ ) − Gū,d + Gū,d ≤ Gū,d + µK˜τk ∗Id<br />
≤ Gū,d + µK(T∗ + µ)Id.<br />
[a − µK(T∗ + µ)] Id ≤ Gū,d,<br />
<strong>and</strong> µ can be shortened such that (a − µK(T∗ + µ)) > 0, independently from the<br />
subdivision {˜τi}.<br />
We conclude that there exists a α2 > 0 such that α2Id ≤ (III).<br />
Consequenltly α2Id ≤ Sk(+), for all k such that τk ≥ T∗.<br />
We finally state the equivalent of Lemma 88.<br />
Lemma 96<br />
Consider the prediction correction equation (B.1) <strong>and</strong> the hypothesis of Lemma 77. There<br />
exist two positive constants µ > 0 <strong>and</strong> α such that αId ≤ S(τ), for all k ∈ N, <strong>and</strong> all<br />
τ ∈ [τk, τk+1[, for all subdivisions {τi}i∈N such that (τi − τi−1) ≤ µ.<br />
This inequality is then also true in the t time scale.<br />
Lemma 77 is the sum of Lemmas 88 <strong>and</strong> 96.<br />
6 This second hypothesis implies that k∗ + 1, the number of elements can vary from one subdivision to the<br />
other.<br />
7 Notice that with the ψū notation<br />
Gū,d =<br />
k∗�<br />
i=1<br />
ψ ′<br />
ū(˜τi, ˜τk∗)C ′<br />
Cψū(˜τi, ˜τk∗) (˜τi − ˜τi−1) .<br />
150
tel-00559107, version 1 - 24 Jan 2011<br />
B.2 Proofs of the Technical Lemmas<br />
B.2 Proofs of the Technical Lemmas<br />
Lemma 97 ([38]) Let {x (t) > 0,t≥ 0} ⊂ R n be absolutely continuous, <strong>and</strong> satisfying:<br />
dx(t)<br />
dt ≤−k1x + k2x √ x,<br />
for almost all t>0, for k1, k2 > 0. Then, if x (0) < k2 1<br />
4k2 , x(t) ≤ 4 x (0) e<br />
2<br />
−k1t .<br />
Proof.<br />
We make three successive change of variables: y = √ x, z = 1<br />
y <strong>and</strong> w(t) =e− k 1 2 t z(t).<br />
Then all the quantities y(t) z(t), w(t) are positive <strong>and</strong> absolutely continuous on any finite<br />
time interval [0,T]. We have<br />
˙y = 1<br />
2 √ x<br />
k2<br />
˙x ≤ −k1<br />
2 y + 2 y2<br />
˙z = − 1<br />
y2 ˙y ≥ k1 k2<br />
2 z − 2<br />
˙w = − k1<br />
2 e− k1 t − 2 z(t)+e k1 t k2<br />
2 ˙z ≥ − 2 e− k1 t 2<br />
Moreover, w(0) = 1 √ . Then, for almost all t>0,<br />
x(0)<br />
If 1<br />
√x(0) − k2<br />
k1<br />
w(t) ≥<br />
1<br />
� x(0) − k2<br />
k1<br />
+ k2<br />
e<br />
k1<br />
− k1 t 2<br />
> 0, then w(t) > 0 <strong>and</strong> we can go backwards in the previous inequalities:<br />
w(t) ≥ √x(0) 1 − k2<br />
�<br />
1 − e k1<br />
− k1 t 2 �<br />
z(t) ≥ e k �<br />
1 t 2 √ 1 −<br />
x(0) k2<br />
�<br />
k1<br />
+ k1<br />
y(t) ≤ 1<br />
2<br />
.<br />
x(t) ≤<br />
Hence, if x(0) ≤ k2 1<br />
4k2 , or 1 −<br />
2<br />
� x(0) k2<br />
k1<br />
e k �<br />
1<br />
2<br />
t<br />
√x(0)<br />
1<br />
− k �<br />
2 + k1<br />
k1 2<br />
x(0)e−k1t �<br />
1− √ x(0) k �2 2<br />
k1<br />
1 ≥ 2 , then:<br />
x(t) ≤ 4x(0)e −k1t<br />
Lemma 98 ([38])<br />
Consider �b (˜z) − �b (˜x) − �b ∗ (˜z)˜ε that appears in the inequality (3.12) (omitting to write u<br />
in ˜ �<br />
�<br />
b) <strong>and</strong> suppose θ ≥ 1. Then ��b (˜z) − �b (˜x) − �b ∗ �<br />
�<br />
(˜z)˜ε � ≤ Kθn−1 |˜ε| 2 , for some K>0.<br />
Proof.<br />
Let us denote ε = z − x <strong>and</strong> consider a smooth expression E(z, x) of the form:<br />
E(z, x) =f(z) − f(x) − df (z)ε,<br />
151
tel-00559107, version 1 - 24 Jan 2011<br />
where f : R p → R is compactly supported.<br />
We have, for t>0:<br />
<strong>and</strong>:<br />
Hence,<br />
f(z − tε) =f(z) −<br />
∂f<br />
(z − τε)=<br />
dxi<br />
∂f<br />
(z) −<br />
∂xi<br />
f(z − ε) =f(z) −<br />
p�<br />
i=1<br />
εi<br />
∂f<br />
(z)+<br />
∂xi<br />
Since f is compactly supported, we get :<br />
p�<br />
i=1<br />
p�<br />
j=1<br />
εi<br />
p�<br />
i,j=1<br />
εi<br />
B.2 Proofs of the Technical Lemmas<br />
� t ∂f<br />
(z − τε)dτ,<br />
∂xi<br />
0<br />
� τ ∂2f (z − θε)dθ.<br />
∂xi∂xj<br />
0<br />
εiεj<br />
|f(z) − f(z − ε) − df (z)ε| ≤ M<br />
2<br />
� 1 � τ ∂2f (z − θε)dθdτ.<br />
∂xi∂xj<br />
0<br />
0<br />
p�<br />
|εiεj|,<br />
where M = sup x | ∂2 f<br />
∂xi∂xj (x)|.<br />
Now we take f = ˜ bk, <strong>and</strong> we use the facts that ˜ bk depends only on x1, ..., xk, <strong>and</strong> that<br />
θ ≥ 1:<br />
This gives the result.<br />
i,j=1<br />
| ∂2˜bk (x)| ≤ θ<br />
∂xi∂xj<br />
k−1 | ∂2bk (∆<br />
∂xi∂xj<br />
−1 x)|.<br />
152
tel-00559107, version 1 - 24 Jan 2011<br />
Appendix C<br />
Source Code for Realtime<br />
Implementation<br />
Contents<br />
C.1 Replacement Code for the File: rtai4 comedi datain.sci ..... 154<br />
C.2 Computational Function for the Simulation of the DC Machine 155<br />
C.3 AEKF Computational Functions C Code . . . . . . . . . . . . . . 157<br />
C.4 Innovation Computational Functions C Code . . . . . . . . . . . . 159<br />
C.5 Ornstein-Ulhenbeck Process . . . . . . . . . . . . . . . . . . . . . . 162<br />
153
tel-00559107, version 1 - 24 Jan 2011<br />
C.1 Replacement Code for the File: rtai4 comedi datain.sci<br />
C.1 Replacement Code for the File: rtai4 comedi datain.sci<br />
function [ x , y , typ ] = r t a i 4 c o m e d i d a t a i n ( job , arg1 , arg2 )<br />
x = [ ] ; y = [ ] ; typ = [ ] ;<br />
select job<br />
case ’ p l o t ’ then<br />
exprs=arg1 . g r a p h i c s . exprs ;<br />
ch=exprs ( 1 )<br />
name=exprs ( 2 )<br />
st<strong>and</strong>ard draw( arg1 )<br />
case ’ g e t i n p u t s ’ then<br />
[ x , y , typ ]= s t a n d a r d i n p u t s ( arg1 )<br />
case ’ g etoutputs ’ then<br />
[ x , y , typ ]= s t a n d a rd o u t p u ts ( arg1 )<br />
case ’ g e t o r i g i n ’ then<br />
[ x , y]= st<strong>and</strong>ard origin ( arg1 )<br />
case ’ s e t ’ then<br />
x=arg1<br />
model=arg1 . model ; g r a p h i c s=arg1 . g r a p h i c s ;<br />
exprs=g r a p h i c s . exprs ;<br />
while %t do<br />
[ ok , ch , name , range , a r e f , exprs ]=getvalue ( ’ Set RTAI−..<br />
COMEDI DATA block parameters ’ , [ ’ Channel : ’ ; ’ Device : ..<br />
’ ; ’ Range : ’ ; ’ Aref : ’ ] , l i s t ( ’ vec ’ , −1 , ’ s t r ’ , 1 , ’ vec ’..<br />
, −1 , ’ vec ’ , −1) , exprs )<br />
if ˜ok then break , end<br />
if exists ( ’ outport ’ ) then out=ones ( outport , 1 ) , i n = [ ] ,<br />
else out =1, i n = [ ] , end<br />
[ model , graphics , ok]= check io( model , graphics , in , out ..<br />
, 1 , [ ] )<br />
if ok then<br />
g r a p h i c s . exprs=exprs ;<br />
model . i p a r =[ch ;<br />
range ;<br />
a r e f ;<br />
length (name) ;<br />
a s c i i (name) ’ ] ;<br />
model . rpar = [ ] ;<br />
model . d s t a t e = [ 1 ] ;<br />
x . g r a p h i c s=g r a p h i c s ; x . model=model<br />
break<br />
end<br />
end<br />
case ’ d e f i n e ’ then<br />
ch=0<br />
name= ’ comedi0 ’<br />
range=0<br />
a r e f =0<br />
model=s c i c o s m o d e l ( )<br />
model . sim=l i s t ( ’ r t c o m e d i d a t a i n ’ , 4 )<br />
154
tel-00559107, version 1 - 24 Jan 2011<br />
C.2 Computational Function for the Simulation of the DC Machine<br />
if exists ( ’ outport ’ ) then model . out=ones ( outport , 1 ) , ..<br />
model . i n = [ ] ,<br />
else model . out =1, model . i n = [ ] , end<br />
model . e v t i n=1<br />
model . rpar =[]<br />
model . i p a r =[ch ;<br />
range ;<br />
a r e f ;<br />
length (name) ;<br />
a s c i i (name) ’ ]<br />
model . d s t a t e = [ 1 ] ;<br />
model . blocktype= ’ d ’<br />
model . dep ut =[%t %f ]<br />
exprs =[sci2exp ( ch ) ,name , sci2exp ( range ),sci2exp ( a r e f ) ]<br />
gr i =[ ’ x s t r i n g b ( o r i g ( 1 ) , o r i g ( 2 ) , [ ’ ’COMEDI A/D ’ ’ ; name+ ’ ’ ..<br />
CH− ’ ’+s t r i n g ( ch ) ] , sz ( 1 ) , sz ( 2 ) , ’ ’ f i l l ’ ’ ) ; ’ ]<br />
x=st<strong>and</strong>ard define ( [ 3 2 ] , model , exprs , g r i)<br />
end<br />
endfunction<br />
C.2 Computational Function for the Simulation of the DC<br />
Machine<br />
This first code are given only to provide a complete picture with regard to the implementation.<br />
This simulation presents no difficulties. Let us remark that an alternative solution to the<br />
definition of the parameter in the code itself is to pass them through the real parameter vector<br />
entry of the interfacing function, see [41].<br />
function name DCmachine number of zero crossing<br />
surfaces<br />
0<br />
implicit n initial discrete state []<br />
input port size 2 real parameter vector []<br />
output port size 2 integer parameter vector<br />
[]<br />
input event port size [] initial firing vector []<br />
output event port size [] direct feed through y<br />
initial continuous state ⊛ time dependence y<br />
Table C.1: Arguments of the DC Simulation.<br />
⊛ =[I(0), ωr(0)].<br />
#include <br />
#include <br />
#include <br />
void DCmachine ( s c i c o s b l o c k ∗ block , int f l a g )<br />
{ /∗ t h i s i s t h e l i s t o f t h e f i e l d s we have to use<br />
155
tel-00559107, version 1 - 24 Jan 2011<br />
}<br />
C.2 Computational Function for the Simulation of the DC Machine<br />
i n t b l o c k −>n e v p r t ;<br />
i n t b l o c k −>nz ;<br />
d o u b l e ∗ b l o c k −>z ;<br />
i n t b l o c k −>nx ;<br />
d o u b l e ∗ b l o c k −>x;<br />
d o u b l e ∗ b l o c k −>xd ;<br />
d o u b l e ∗ b l o c k −>r e s ;<br />
i n t b l o c k −>nin ;<br />
i n t ∗ b l o c k −>i n s z ;<br />
d o u b l e ∗∗block −>i n p t r ;<br />
i n t b l o c k −>nout ;<br />
i n t ∗ b l o c k −>o u t s z ;<br />
d o u b l e ∗∗block −>o u t p t r ;<br />
i n t b l o c k −>nevout ;<br />
i n t b l o c k −>nrpar ;<br />
d o u b l e ∗ b l o c k −>rpar ;<br />
i n t b l o c k −>nipar ;<br />
i n t ∗ b l o c k −>i p a r ;<br />
i n t b l o c k −>ng ;<br />
d o u b l e ∗ b l o c k −>g;<br />
i n t ∗ b l o c k −>j r o o t ;<br />
char b l o c k −>l a b e l [ 4 1 ] ;<br />
∗/<br />
if ( f l a g == 4) { /∗ i n i t i a l i z a t i o n ∗/<br />
DCmachine bloc init ( block , f l a g ) ;<br />
} else if( f l a g == 1) { /∗ o u tput computation ∗/<br />
set b l o c k e r r o r ( DCmachine bloc outputs ( block , f l a g ) ) ;<br />
} else if( f l a g == 0) { /∗ d e r i v a t i v e or r e s i d u a l ..<br />
computation ∗/<br />
set b l o c k e r r o r ( DCmachine bloc deriv ( block , f l a g ) ) ;<br />
} else if ( f l a g == 5) { /∗ ending ∗/<br />
set b l o c k e r r o r ( DCmachine bloc ending ( block , f l a g ) ) ;<br />
}<br />
int DCmachine bloc init ( s c i c o s b l o c k ∗ block , int f l a g )<br />
{return 0;}<br />
int DCmachine bloc outputs ( s c i c o s b l o c k ∗ block , int f l a g )<br />
{ block−>outptr [ 0 ] [ 0 ] = block−>x [ 0 ] ;<br />
block−>outptr [ 0 ] [ 1 ] = block−>x [ 1 ] ;<br />
return 0;}<br />
int DCmachine bloc deriv ( s c i c o s b l o c k ∗ block , int f l a g )<br />
{double L=1.22 , Res =5.4183 , Laf =0.068;<br />
double J =0.0044 , B=0.0026 , p=0;<br />
double I=block−>x [ 0 ] , wr=block−>x [ 1 ] ;<br />
double V=block−>i n p t r [ 0 ] [ 0 ] , Tl=block−>i n p t r [ 0 ] [ 1 ] ;<br />
block−>xd [ 0 ] = (V−Res∗ I−Laf ∗wr∗ I ) /L ;<br />
block−>xd [ 1 ] = ( Laf ∗ I ∗ I−B∗wr−p∗pow( wr , 2 . 0 8 )−Tl ) /J ;<br />
return 0;}<br />
156
tel-00559107, version 1 - 24 Jan 2011<br />
int DCmachine bloc ending ( s c i c o s b l o c k ∗ block , int f l a g )<br />
{return 0;}<br />
C.3 AEKF Computational Functions C Code<br />
C.3 AEKF Computational Functions C Code<br />
In the following code, we used the notation:<br />
− the array Ab[.] is composed of the elements of the matrix A(u)+b ∗ (x, u),<br />
− the variables of the form Pij are the elements of the matrix P ,<br />
− the tuning matrices of the EKF are set to r = 1 <strong>and</strong> Q = diag({q1,q2,q3}).<br />
Those two matrices are organized as follows:<br />
⎛<br />
Ab[0] Ab[3] 0<br />
⎞<br />
⎝ Ab[1] Ab[4] Ab[7] ⎠ <strong>and</strong><br />
Ab[2] Ab[5] Ab[8]<br />
⎛<br />
⎝<br />
P 11 P 21 P 31<br />
P 21 P 22 P 23<br />
P 31 P 23 P 33<br />
function name AEKF number of zero crossing<br />
surfaces<br />
0<br />
implicit n initial discrete state []<br />
input port size 3 real parameter vector []<br />
output port size 4 integer parameter vector<br />
[]<br />
input event port size [] initial firing vector []<br />
output event port size [] direct feed through y<br />
initial continuous state ⊛ time dependence y<br />
Table C.2: Arguments of the Main Function.<br />
⊛ =[I(0); ωr(0); Tl(0); P (0); θ(0)], initial state is a dim 10 vector.<br />
#include <br />
#include <br />
#include <br />
/∗ i n p u t = [V;Y; I ( t ) ] ∗/<br />
void AEKF( s c i c o s b l o c k ∗ xblock , int f l a g )<br />
{<br />
int n=3;<br />
int N=n ∗( n+1) / 2 ;<br />
if ( f l a g ==4)<br />
{/∗ INITIALISATION ∗/<br />
/∗ change o f v a r i a b l e s from o r i g i n a l c o o r d i n a t e s −> normal ..<br />
form c o o r d i n a t e s ∗/<br />
157<br />
⎞<br />
⎠
tel-00559107, version 1 - 24 Jan 2011<br />
C.3 AEKF Computational Functions C Code<br />
block−>x [1]= block−>x [ 1 ] ∗ block−>x [ 0 ] ;<br />
block−>x [2]= block−>x [ 2 ] ∗ block−>x [ 0 ] ;<br />
}<br />
else if ( f l a g ==1)<br />
{/∗ OUTPUT ∗/<br />
/∗ change o f v a r i a b l e s , normal form c o o r d i n a t e s −> o r i g i n a l ..<br />
c o o r d i n a t e s ∗/<br />
block−>outptr [ 0 ] [ 0 ] = block−>x [ 0 ] ;<br />
block−>outptr [ 0 ] [ 1 ] = block−>x [ 1 ] / block−>x [ 0 ] ;<br />
/∗ Estimated t o r q u e ∗/<br />
block−>outptr [ 0 ] [ 2 ] = block−>x [ 2 ] / block−>x [ 0 ] ;<br />
/∗ High−<strong>gain</strong> parameter ∗/<br />
block−>outptr [ 0 ] [ 3 ] = block−>x [ n+N ] ;<br />
}<br />
else if ( f l a g ==0)<br />
{/∗ DERIVATIVE ∗/<br />
double p=0,K2=0.068 , J =0.0044 , B=0.0026;<br />
double L=1.22 , Res =5.4183 , K1=0.068;<br />
double DT=0.01 , theta1 =1.25 , lambda=100 , Beta =2000;<br />
double m1=0.005 ,m2=0.004 ,m=m1+m2;<br />
double V=block−>i n p t r [ 0 ] [ 0 ] ;<br />
double Y=block−>i n p t r [ 0 ] [ 1 ] ;<br />
double Inn=block−>i n p t r [ 0 ] [ 2 ] ;<br />
double SI , F0 ;<br />
double z1=block−>x [ 0 ] , z2=block−>x [ 1 ] ;<br />
double z3=block−>x [ 2 ] , t heta=block−>x [ n+N ] ;<br />
double e r r e u r=Y−z1 ;<br />
double Ab [ 9 ] ;<br />
double P11=block−>x [ 3 ] , P21=block−>x [ 4 ] , P31=block−>x [ 5 ] , P22=..<br />
block−>x [ 6 ] , P32=block−>x [ 7 ] , P33=block−>x [ 8 ] ;<br />
double q1=1, q2 =0.1 , q3 =0.01;<br />
if(Yxd [ 0 ] = (V−Res∗z1−K1∗ z2 ) /L+theta ∗ block−>x [ n+0]∗ e r r e u r ; ..<br />
// dz1 / dt =...+P11∗ e r r e u r<br />
block−>xd [ 1 ] = (V∗ z2 /z1−Res∗z2−K1∗ z2∗ z2 / z1 ) /L+(K2∗ z1∗ z1∗z1−B∗..<br />
z2−z3−p∗pow( z2 , 2 . 0 8 ) /pow( z1 , 1 . 0 8 ) ) /J+theta ∗ block−>x [ n..<br />
+1]∗ e r r e u r ; // dz2 / dt =...+P21∗ e r r e u r<br />
block−>xd [ 2 ] = (V∗ z3 /z1−Res∗z3−K1∗ z2∗ z3 / z1 ) /L+theta ∗ block−>x [ n..<br />
+2]∗ e r r e u r ; // dz3 / dt =...+P31∗ e r r e u r<br />
/∗ D e f i n i t i o n o f t h e matrix Ab=(A( u )+b s t a r ) ∗/<br />
Ab[0]=−Res/L ; // b ( 1 , 1 )<br />
Ab[ 1 ] = (K1∗ z2∗z2−V∗ z2 ) /(L∗ z1∗ z1 ) +(3∗K2∗ z1∗ z1 +1.08∗p∗pow( z2 /z1 ..<br />
, 2 . 0 8 ) ) /J ; // b ( 2 , 1 )<br />
Ab[ 2 ] = (K1∗ z2∗z3−V∗ z3 ) /(L∗ z1∗ z1 ) ; // b ( 3 , 1 )<br />
Ab[3]=−K1/L ;<br />
158
tel-00559107, version 1 - 24 Jan 2011<br />
C.4 Innovation Computational Functions C Code<br />
Ab[ 4 ] = ( (V−2∗K1∗ z2 ) /z1−Res ) /L−(B+2.08∗p∗pow( z2 /z1 , 1 . 0 8 ) ) /J ; //..<br />
b ( 2 , 2 )<br />
Ab[5]=−K1∗ z3 /(L∗ z1 ) ; // b ( 3 , 2 )<br />
//Ab [ 6 ] = 0 ;<br />
Ab[7]= −1/J ;<br />
Ab[ 8 ] = ( (V−K1∗ z2 ) /z1−Res ) /L ; // b ( 3 , 3 )<br />
/∗ Computation o f t h e R i c c a t i e q u a t i o n ∗/<br />
block−>xd [ 3 ] = 2 ∗ (Ab [ 0 ] ∗ P11+Ab [ 3 ] ∗ P21 )−theta ∗P11∗P11+theta ∗q1 ;<br />
block−>xd [4]=Ab [ 1 ] ∗ P11+Ab [ 4 ] ∗ P21+Ab [ 7 ] ∗ P31+Ab [ 0 ] ∗ P21+Ab [ 3 ] ∗ ..<br />
P22−t heta ∗P11∗P21 ;<br />
block−>xd [5]=Ab [ 2 ] ∗ P11+Ab [ 5 ] ∗ P21+Ab [ 8 ] ∗ P31+Ab [ 0 ] ∗ P31+Ab [ 3 ] ∗ ..<br />
P32−t heta ∗P11∗P31 ;<br />
block−>xd [ 6 ] = 2 ∗ (Ab [ 1 ] ∗ P21+Ab [ 4 ] ∗ P22+Ab [ 7 ] ∗ P32 )−theta ∗P21∗P21..<br />
+pow( theta , 3 ) ∗q2 ;<br />
block−>xd [7]=Ab [ 2 ] ∗ P21+Ab [ 5 ] ∗ P22+Ab [ 8 ] ∗ P32+Ab [ 1 ] ∗ P31+Ab [ 4 ] ∗ ..<br />
P32+Ab [ 7 ] ∗ P33−t heta ∗P31∗P21 ;<br />
block−>xd [ 8 ] = 2 ∗ (Ab [ 2 ] ∗ P31+Ab [ 5 ] ∗ P32+Ab [ 8 ] ∗ P33 )−theta ∗P31∗P31..<br />
+pow( theta , 5 ) ∗q3 ;<br />
/∗ Computation o f t h e a d a p t a t i o n f u n c t i o n ∗/<br />
SI=1/(1+exp(−Beta ∗( Inn−m) ) ) ;<br />
F0=(thetaxd [9]= SI ∗F0+lambda∗(1− SI ) ∗(1− theta ) ; }<br />
e l s e i f ( f l a g ==5)<br />
{/∗ ENDING ∗/}<br />
}<br />
C.4 Innovation Computational Functions C Code<br />
In the code below, the vector containing the system output past values <strong>and</strong>, the system<br />
input past values are not updated at the same place.<br />
Let us suppose that we want to compute Id(t). The computation is done via a discrete<br />
process with sample time δ. Therefore we need d<br />
δ +1 values for the output signal (i.e. y(t−d),<br />
y(t − d + δ)),...,y(t)), <strong>and</strong> d<br />
δ values for the input signal1 (i.e. u(t − d),...,u(t − δ)) in order to<br />
compute a trajectory 2 .<br />
Therefore the computation of innovation at time t requires:<br />
− to update the vector of past values of y from [y(t−d−δ), ..., y(t−δ)] to [y(t−d), ..., y(t)],<br />
− to compute a prediction of the state trajectory with the help of the vectors [y(t −<br />
d), ..., y(t)] <strong>and</strong> [u(t − d), ..., u(t − δ)],<br />
1 Knowing u(t) is useless here since we don’t want to predict any trajectory for times <strong>high</strong>er than t.<br />
2 Remember that the initial point of this prediction is the estimated state at time t − d. It is fed to the<br />
function via a delay block.<br />
159
tel-00559107, version 1 - 24 Jan 2011<br />
C.4 Innovation Computational Functions C Code<br />
− to update the vector of past values of u from [u(t−d), ..., u(t−δ)] to [u(t−d+δ), ..., u(t)].<br />
function name innovation number of zero crossing<br />
surfaces<br />
0<br />
implicit n initial discrete state ⊛<br />
input port size 5 real parameter vector []<br />
output port size 1 integer parameter vector<br />
[]<br />
input event port size [1] initial firing vector []<br />
output event port size [] direct feed through y<br />
initial continuous state [] time dependence n<br />
#include <br />
#include <br />
#include <br />
/∗ i n p u t = [Y;V; z ( t−d ) ] ∗/<br />
void f u n c t i o n ( double ∗ , double ∗) ;<br />
Table C.3: Arguments of the Innovation Function.<br />
⊛ = a null vector of length 2*(d/Dt)+2, (i.e. 22).<br />
void i n n o v a t i o n ( s c i c o s b l o c k ∗ block , int f l a g )<br />
{<br />
double d=1,Dt =0.1;<br />
int n=10; /∗ ( d/Dt ) ; ∗/ /∗ Auto conversion d o u b l e −> i n t ∗/<br />
int nz , i , j ;<br />
/∗ Remark t h a t t h e r e i s NO TEST: Dt has to d i v i d e d ! ! ∗/<br />
nz=2∗n+2;<br />
if ( f l a g ==4)<br />
{/∗ INITIALISATION ∗/<br />
/∗ Already done . I t i s i m p o s s i b l e to change t h e dimension o f ..<br />
t h e s t a t e space from here ∗/<br />
}<br />
else if( f l a g ==1| f l a g ==6)<br />
{/∗ OUTPUT ∗/<br />
block−>outptr [ 0 ] [ 0 ] = block−>z [ nz −1];}<br />
else if( f l a g ==2)<br />
{/∗ DERIVATIVE ∗/<br />
/∗ d e l a y e d i n p u t ( index 2 ,3 ,4) ∗/<br />
double I , wr=block−>i n p t r [ 0 ] [ 3 ] , Tl=block−>i n p t r [ 0 ] [ 4 ] ;<br />
if ( block−>i n p t r [ 0 ] [ 2 ] > 0 . 5 ) { I=block−>i n p t r [ 0 ] [ 2 ] ; }<br />
else{ I =0.5;}<br />
double Y=block−>i n p t r [ 0 ] [ 0 ] , V=block−>i n p t r [ 0 ] [ 1 ] ;<br />
160
tel-00559107, version 1 - 24 Jan 2011<br />
double x [3]={ I , I ∗wr , Tl∗ I } , xh [ 4 ] = { 0 , 0 , 0 , 0 } ;<br />
/∗ t h o s e ZEROs w i l l be r e d e f i n e d l a t e r on ∗/<br />
double preInn [2]={pow ( ( block−>z [0] − x [ 0 ] ) , 2 ) , 0 } ;<br />
double Inn =0; /∗ t h i s i s t h e INNOVATION ∗/<br />
double hh=Dt ∗ 0 . 5 , h6=Dt / 6 ;<br />
double dx1 [ 3 ] , dx2 [ 3 ] , dx3 [ 3 ] , dx4 [ 3 ] ;<br />
int neq =3; /∗ number o f ODEs to s o l v e ∗/<br />
/∗ Update o f t h e o utput s i g n a l s t a c k ∗/<br />
for( i =1; iz [ i −1]=block−>z [ i ] ; }<br />
block−>z [ n]=Y;<br />
C.4 Innovation Computational Functions C Code<br />
for( j =1; jz [ n+j ] ;<br />
xh [3]=V;<br />
/∗ BEGIN RK4 ∗/<br />
for( i =0; i
tel-00559107, version 1 - 24 Jan 2011<br />
z2=∗(xc+1) ;<br />
z3=∗(xc+2) ;<br />
V=∗(xc+3) ;<br />
∗( xcdot )=(V−Res∗z1−K1∗ z2 ) /L ;<br />
∗( xcdot +1)=(V∗ z2 /z1−Res∗z2−K1∗ z2∗ z2 / z1 ) /L+(K2∗ z1∗ z1∗z1−B∗z2−..<br />
z3−p∗pow( z2 , 2 . 0 8 ) /pow( z1 , 1 . 0 8 ) ) /J ;<br />
∗( xcdot +2)=(V∗ z3 /z1−Res∗z3−K1∗ z2∗ z3 / z1 ) /L ;<br />
return ; }<br />
C.5 Ornstein-Ulhenbeck Process<br />
C.5 Ornstein-Ulhenbeck Process<br />
The facts compiled in this section are mainly taken from the book [28] <strong>and</strong> the article [59].<br />
A note from S. Finch ([1]) <strong>and</strong> the book [100] were also convenient sources of information.<br />
Introductory books on probability <strong>and</strong> stochastic processes can also be useful (e.g. [29,<br />
49, 81]) 3 .<br />
A stochastic process represents the state of a system that depends both on time <strong>and</strong> on<br />
r<strong>and</strong>om events. It is represented as a collection of r<strong>and</strong>om variables indexed by the time. We<br />
denote it {Xt : t ≥ 0}.<br />
Definition 99<br />
− A Brownian motion or Wiener process with variance parameter σ 2 , starting<br />
at 0, is a stochastic process {Bt : t ≥ 0} taking values in R, <strong>and</strong> having the properties:<br />
1. B0 =0,<br />
2. for any t1
tel-00559107, version 1 - 24 Jan 2011<br />
N(0,1)<br />
Normally distributed<br />
r<strong>and</strong>om generator<br />
zn Xn<br />
Xn = µXn−1 + σ � 1 − µ 2 zn<br />
C.5 Ornstein-Ulhenbeck Process<br />
Colored<br />
noise<br />
Figure C.1: Simulation of colored noise via block wise programing.<br />
The law of the r<strong>and</strong>om variable at time 0 is supposed the invariant probability associated<br />
to (C.1) such that Xt is a stationary process.<br />
Equation (C.1) can be rewritten:<br />
<strong>and</strong> then<br />
d � e ρt � ρt<br />
Xt = αe dBt,<br />
Xt = e −ρt<br />
� � t<br />
X0 + αe ρs �<br />
dBs .<br />
The stochastic process Xt is such that [28]:<br />
1. If X0 is a gaussian variable with zero mean <strong>and</strong> variance equals to α2<br />
2ρ , then X(t) is<br />
gaussian <strong>and</strong> stationary of covariance:<br />
2. X(t) is a markovian process.<br />
0<br />
E[X(t)X(s + t)] = α2<br />
2ρ e−rρ|s| .<br />
3. When X(0) = c, the stochastic law of X(t) is a normal law with mean e−ρtc, <strong>and</strong><br />
variance α2<br />
�<br />
2ρ 1 − e2ρt � .<br />
As explained in [59], Part 3, equation (3.15), for a sample time∆ t, the exact updating<br />
formulas of the Ornstein-Uhlenbeck process is given by:<br />
where:<br />
− µ = e −ρ∆t ,<br />
− γ 2 = � 1 − e −2ρ∆t� � α 2<br />
2µ<br />
�<br />
,<br />
X(t + ∆t) =X(t)µ + γzn<br />
− zn is the realization of a st<strong>and</strong>ard gaussian distribution (i.e. N(0, 1)).<br />
163<br />
(C.2)
tel-00559107, version 1 - 24 Jan 2011<br />
C.5 Ornstein-Ulhenbeck Process<br />
Let us now rewrite equation (C.1) as in [100], with the help of the positive constant<br />
parameters β <strong>and</strong> σ:<br />
dXt = −βXtdt + σ � 2βdBt.<br />
Therfore, with X(0) = 0, the mean value of Xt is 0 <strong>and</strong> the term α2<br />
2ρ<br />
σ2 .<br />
of the variance, becomes<br />
In order to make a simulation of the Ornstein-Uhlenbeck process, we consider equation<br />
(C.2) <strong>and</strong> replace:<br />
− α by σ √ 2β,<br />
− ρ by β.<br />
The update equation is (with µ = e −β∆t )<br />
X(t + ∆t) =X(t)µ + σ(1 − µ 2 )zn.<br />
The actual simulation is done according to the diagram of Figure C.1, with X(0) = 0, µ ∈]0; 1[<br />
<strong>and</strong> σ > 0. Remark that σ is the asymptotic st<strong>and</strong>ard deviation of the variables X(t), t > 0.<br />
An important theorem due to J. L. Doob [48] ensures that such a process necessarily satisfies a linear stochastic<br />
differential equation identical to the one used in the definition above.<br />
164
tel-00559107, version 1 - 24 Jan 2011<br />
References<br />
[1] http://algo.inria.fr/bsolve/, 2010. 162<br />
[2] http://maxima.sourceforge.net/, 2010. 87<br />
[3] http://www.lar.deis.unibo.it/people/gpalli, 2010. 78<br />
[4] www.comedi.org, 2010. 77<br />
[5] www.rtai.org, 2010. 77<br />
[6] www.scicoslab.org, 2010. 77<br />
[7] www.scicos.org, 2010.<br />
[8] www.scilab.org, 2010. 77<br />
[9] R. Abraham <strong>and</strong> J. Robbin. Transversal Mappings <strong>and</strong> Flows. W. A. Benjamin, inc.,<br />
1967. 13<br />
[10] I. Abuhadrous. Onboard real time system for 3D localization <strong>and</strong> modelling by multisensor<br />
data fusion. PhD thesis, Mines ParisTech (ENSMP), 2005. 103<br />
[11] J. H. Ahrens <strong>and</strong> H. K. Khalil. High-<strong>gain</strong> observers in the presence of measurement<br />
noise: A switched-<strong>gain</strong> approach. Automatica, 45:936–943, 2009. 27, 29, 116<br />
[12] M. Alamir. Nonlinear Observers <strong>and</strong> Applications, volume 363 of LNCIS, chapter Nonlinear<br />
Moving Horizon Observers: Theory <strong>and</strong> Real-Time Implementation. Springer,<br />
2007. 3, 40<br />
[13] H. Souley Ali, M. Zasadzinski, H. Rafaralahy, <strong>and</strong> M. Darouach. Robust H∞ reduced<br />
order <strong>filter</strong>ing for unertain bilinear systems. Automatica, 42:405–415, 2005. 32<br />
[14] S. Ammar. Observability <strong>and</strong> observateur under sampling. International Journal of<br />
Control, 9:1039–1045, 2006. 104<br />
[15] S. Ammar <strong>and</strong> J-C. Vivalda. On the preservation of observability under sampling.<br />
Systems <strong>and</strong> control letters, 52:7–15, 2003. 103, 104<br />
[16] V. Andrieu, L. Praly, <strong>and</strong> A. Astolfi. High-<strong>gain</strong> observers with updated <strong>gain</strong> <strong>and</strong><br />
homogeneous correction terms. Automatica, 45(2), 2009. 25, 26<br />
165
tel-00559107, version 1 - 24 Jan 2011<br />
REFERENCES<br />
[17] J. S. Baras, A. Bensoussan, <strong>and</strong> M. R. James. Dynamic observers as asymptotic limits<br />
of recursive <strong>filter</strong>s: Special cases. SIAM Journal of Applied Mathematics, 48(5):1147–<br />
1158, 1988. 38<br />
[18] Y. Becis-Aubry, M. Boutayeb, <strong>and</strong> M. Darouach. State estimation in the presence of<br />
bounded disturbances. Automatica, 44:1867–1873, 2008. 33<br />
[19] G. Besançon. Nonlinear observers <strong>and</strong> Applications, volume 363 of LNCIS, chapter An<br />
Overview on Observer Tools for Nonlinear Systems. Springer, 2007. 13, 93, 116<br />
[20] G. Besançon, G. Bornard, <strong>and</strong> H. Hammouri. Observer synthesis for a class of nonlinear<br />
control systems. European Journal of Control, 2:176–192, 2996. 93<br />
[21] N. Boizot <strong>and</strong> E. Busvelle. Nonlinear Observers <strong>and</strong> Applications, volume 363 of LNCIS,<br />
chapter Adaptive-<strong>gain</strong> Observers <strong>and</strong> Applications. Springer, 2007. xx, 2, 4, 7, 15, 71<br />
[22] N. Boizot, E. Busvelle, <strong>and</strong> J-P. Gauthier. An adaptive <strong>high</strong>-<strong>gain</strong> observer for nonlinear<br />
systems. Automatica (Accepted for publication). xx, 44, 71<br />
[23] N. Boizot, E. Busvelle, <strong>and</strong> J-P. Gauthier. Adaptive-<strong>gain</strong> in <strong>extended</strong> kalman <strong>filter</strong>ing<br />
(oral presentation). In International conference on Differential equations <strong>and</strong> Topology,<br />
MSU, Moscow, Fed. of Russia, 2008. xx, 44<br />
[24] N. Boizot, E. Busvelle, <strong>and</strong> J-P. Gauthier. Adaptive-<strong>gain</strong> <strong>extended</strong> kalman <strong>filter</strong>: Extension<br />
to the continuous-discrete case. In Proceedings of the 10th European Control<br />
Conference (ECC09), 2009. 106<br />
[25] N. Boizot, E. Busvelle, J-P. Gauthier, <strong>and</strong> J. Sachau. Adaptive-<strong>gain</strong> <strong>extended</strong> kalman<br />
<strong>filter</strong>: Application to a series connected dc motor. In Conference on Systems <strong>and</strong><br />
Control, Marrakech, Morocco, May 16-18 2007. xx, 76<br />
[26] N. Boizot, E. Busvelle, <strong>and</strong> J. Sachau. High-<strong>gain</strong> observers <strong>and</strong> kalman <strong>filter</strong>ing in hard<br />
realtime. In 9th Real-Time Linux Workshop, Institute for Measurement Technology,<br />
Johannes Kepler University of Linz, November 2-4 2007. xx<br />
[27] G. Bornard. Observability <strong>and</strong> <strong>high</strong> <strong>gain</strong> observer for multi-output systems.<br />
In 28 th Summer School in Automatics, Gipsa Lab-Grenoble, France (www.gipsalab.inpg.fr/summerschool/session/s<br />
28 uk.php), Lecture 3, 2007. 93<br />
[28] N. Bouleau. Processus Stochastiques et Applications (Nouvelle Edition). Hermann,<br />
2000. 162, 163<br />
[29] N. Bouleau. Probabilités de l’ingénieur, Variables Aléatoires et simulation (Nouvelle<br />
Edition). Hermann, 2002. 162<br />
[30] M. Boutayeb <strong>and</strong> D. Aubry. A strong tracking <strong>extended</strong> kalman observer for nonlinear<br />
discrete-time systems. IEEE Transactions on Automatic Control, 44(8):1550–1556,<br />
1999. 32, 33, 34<br />
166
tel-00559107, version 1 - 24 Jan 2011<br />
REFERENCES<br />
[31] M. Boutayeb, H. Rafaralahy, <strong>and</strong> M. Darouach. Convergence analysis of the <strong>extended</strong><br />
kalman <strong>filter</strong> as an observer for nonlinear discrete-time systems. In Proceedings of the<br />
34 th Conference on Decision <strong>and</strong> Control, 1995. 32, 33<br />
[32] K. J. Bradshaw, I. D. Reid, <strong>and</strong> D. W. Murray. The active recovery of 3d motion<br />
trajectories <strong>and</strong> their use in prediction. IEEE Transactions on Pattern Analysis <strong>and</strong><br />
Machine Intelligence, 19(3):219–233, 1997. 32<br />
[33] H. Brezis. Analyse Fonctionnelle: Théorie et <strong>applications</strong>. Dunod, 1999. 125, 126<br />
[34] R. Bucher, S. Mannori, <strong>and</strong> T. Netter. RTAI-Lab tutorial: Scilab, Comedi, <strong>and</strong> realtime<br />
control, 2008. 77, 78, 79, 84<br />
[35] E. Bullinger <strong>and</strong> F. Allgőwer. An adaptive <strong>high</strong>-<strong>gain</strong> observer for nonlinear systems.<br />
In Proceedings of the 36 th Conference on Decision <strong>and</strong> Control, 1997. 24, 26<br />
[36] E. Bullinger <strong>and</strong> F. Allgőwer. Adaptive λ-tracking for nonlinear <strong>high</strong>er relative degree<br />
systems. Automatica, 41:1191–1200, 2005. 24<br />
[37] F. Busse <strong>and</strong> J. How. Demonstration of adaptive <strong>extended</strong> kalman <strong>filter</strong> for low earth<br />
orbit formation estimation using cdgps. In Institute of Navigation GPS Meeting, 2002.<br />
22, 32<br />
[38] E. Busvelle <strong>and</strong> J-P. Gauthier. High-<strong>gain</strong> <strong>and</strong> Non High-<strong>gain</strong> Observer for Nonlinear<br />
Systems. World Scientific, 2002. 11, 17, 18, 22, 35, 36, 38, 40, 49, 50, 52, 63, 65, 67,<br />
102, 151<br />
[39] E. Busvelle <strong>and</strong> J-P. Gauthier. On determining unknown functions in differential systems,<br />
with an application to biological reactors. COCV, 9:509, 2003.<br />
[40] E. Busvelle <strong>and</strong> J-P. Gauthier. Observation <strong>and</strong> identification tools for nonlinear systems.<br />
application to a fluid catalytic cracker. International Journal of Control, 78(3),<br />
2005. xi, 11, 14, 15, 36<br />
[41] S. L. Campbell, J-P. Chancelier, <strong>and</strong> R. Nikoukhah. Modeling <strong>and</strong> Simulation in Scilab/Scicos.<br />
Springer, 2006. 77, 86, 155<br />
[42] H. Carvalho, P. Del Moral, A. Monin, <strong>and</strong> G. Salut. Optimal nonlinear <strong>filter</strong>ing in<br />
gps/ins integration. IEEE Transactions on Aerospace <strong>and</strong> Electronic Systems, 33(3),<br />
1997. 7<br />
[43] C. K. Chui <strong>and</strong> G. Chen. <strong>Kalman</strong> Filtering with Real-Time Applications, 3 rd Edition.<br />
Springer, 1998. x, 5, 7, 30, 61<br />
[44] P. Connolly. Hyperion prop talk. Technical report, http://aircraftworld.com/prod<br />
datasheets/hp/emeter/hp-proptalk.htm. 79, 81<br />
[45] B. d’Andrea Novel <strong>and</strong> M. Cohen de Lara. Cours d’automatique : comm<strong>and</strong>e linéaire<br />
des systèmes dynamiques. Masson, 2000. 5, 7<br />
167
tel-00559107, version 1 - 24 Jan 2011<br />
REFERENCES<br />
[46] F. Deza, E. Busvelle, <strong>and</strong> J-P. Gauthier. Exponentially converging observers for distillation<br />
columns <strong>and</strong> internal stability of the dynamic output feedback. Chemical<br />
Engineering Science, 47(15/16), 1992. 20<br />
[47] F. Deza, E. Busvelle, J-P. Gauthier, <strong>and</strong> D. Rakotopara. High-<strong>gain</strong> estimation for<br />
nonlinear systems. Systems <strong>and</strong> control letters, 18:295–299, 1992. x, 11, 20, 21, 22, 38,<br />
40<br />
[48] J. L. Doob. The brownian movement <strong>and</strong> stochastic equations. Annals of Math.,<br />
43:351–369, 1942. 164<br />
[49] R. Durett. Stochastic Calculus, A practical introduction. CRC Press, 1996. 162<br />
[50] F. Esf<strong>and</strong>iari <strong>and</strong> H. K. Khalil. Output feedback stabilization of fully linearizable<br />
systems. International Journal of Control, 56:1007–1037, 1992. 20, 28<br />
[51] M. Farza, M. M’Saad, <strong>and</strong> L. Rossignol. Observer design for a class of mimo nonlinear<br />
systems. Automatica, 40:135–143, 2004. 93<br />
[52] J-P. Gauthier <strong>and</strong> G. Bornard. Observability for any u(t) of a class of nonlinear systems.<br />
IEEE Transactions on Automatic Control, 26(4):922–926, 1981. 11<br />
[53] J-P. Gauthier, H. Hammouri, <strong>and</strong> I. Kupka. Observers for nonlinear systems. In IEEE<br />
CDC conference, pages 1483–1489, 1991. 11<br />
[54] J-P. Gauthier, H. Hammouri, <strong>and</strong> S. Othman. A simple observer for nonlinear systems<br />
<strong>applications</strong> to bioreactors. IEEE Transactions on Automatic Control, 37(6):875–880,<br />
1992. x, 11, 20<br />
[55] J-P. Gauthier <strong>and</strong> I. Kupka. Observability <strong>and</strong> observers for nonlinear systems. SIAM<br />
Journal on Control, 32(4):975–994, 1994.<br />
[56] J-P. Gauthier <strong>and</strong> I. Kupka. Observability with more outputs than inputs. Mathematische<br />
Zeitschrift, 223:47–78, 1996. 11<br />
[57] J-P. Gauthier <strong>and</strong> I. Kupka. Deterministic Observation Theory <strong>and</strong> Applications. Cambridge<br />
University Press, 2001. x, xi, 4, 11, 14, 15, 17, 21, 40, 42, 47, 93, 96, 98, 115,<br />
116, 125, 128, 131, 144<br />
[58] A. Gelb, editor. Applied Optimal Estimation. The MIT Press, 1974. x, xvii, 3, 5, 6, 20,<br />
30<br />
[59] D. T. Gillespie. Exact numerical simulation of the ornstein-uhlenbeck process <strong>and</strong> its<br />
integral. Physical Review E, 54(2):2084–2091, 1996. 162, 163<br />
[60] M. S. Grewal, L. Weill, <strong>and</strong> A. P. Andrews. Global Positioning Systems, Inertial Navigation<br />
<strong>and</strong> Integration. John Wiley <strong>and</strong> Sons, 2007. 20, 22, 30<br />
[61] L. Z. Guo <strong>and</strong> Q. M. Zhu. A fast convergent <strong>extended</strong> kalman observer for nonlinear<br />
discrete-time systems. International of Systems Science, 33(13):1051–1058, 2002. 34<br />
168
tel-00559107, version 1 - 24 Jan 2011<br />
REFERENCES<br />
[62] T. Hagglund. New Estimation Techniques for Adaptive Control. PhD thesis, Lund<br />
Institue of Technology, 1985. 31<br />
[63] H. Hammouri. Nonlinear Observers <strong>and</strong> Applications, volume 363 of LNCIS, chapter<br />
Uniform Observability <strong>and</strong> Observer Synthesis. Springer, 2007. 93<br />
[64] S. Haugwitz, P. Hag<strong>and</strong>er, <strong>and</strong> T. Norén. modeling <strong>and</strong> control of a novel heat exchange<br />
reactor, the open plate reactor. Control Engineering Practices, 15:779–792, 2007. xi,<br />
22<br />
[65] R. Hermann <strong>and</strong> A. J. Krener. Nonlinear controlability <strong>and</strong> observability. IEEE Transactions<br />
on Automatic Control, AC-22:728–740, 1977. 11<br />
[66] M. W. Hirsch. Differential Topology. Springer-Verlag, 1972. 12<br />
[67] R. A. Horn <strong>and</strong> C. R. Johnson. Matrix Analysis. Cambridge University Press, 1985.<br />
108, 132<br />
[68] A. H. Jazwinski. Stochastic Processes <strong>and</strong> Filtering Theory. Dover Publications, INC,<br />
1970. x<br />
[69] L. Jetto <strong>and</strong> S. Longhi. Development <strong>and</strong> experimental validation of an adaptive<br />
<strong>extended</strong> kalman <strong>filter</strong> for the localization of mobile robots. IEEE Transactions on<br />
Robotics <strong>and</strong> Automation, 15(2):219–229, 1999. 32<br />
[70] P. Jouan <strong>and</strong> J-P. Gauthier. Finite singularities of nonlinear systems. output stabilization,<br />
observability <strong>and</strong> observers. Journal of Dynamical <strong>and</strong> Control systems,<br />
2(2):255–288, 1996. 11<br />
[71] S. Julier <strong>and</strong> J. K. Ulhmann. A new extension of the kalman <strong>filter</strong> to nonlinear systems.<br />
In Signal processing, sensor fusion, <strong>and</strong> target recognition VI; Proceedings of the<br />
Conference, Orl<strong>and</strong>o, pages 182–193, 1997. 116<br />
[72] D. J. Jwo <strong>and</strong> F. Chang. Advanced Intelligent Computing Theories <strong>and</strong> Applications.<br />
With Aspects of Theoretical <strong>and</strong> Methodological Issues, chapter A Fuzzy Adaptive Fading<br />
<strong>Kalman</strong> Filter for GPS Navigation, pages 820–831. LNCIS. Springer, 2007. 23<br />
[73] Radhakrishnan K. <strong>and</strong> Hindmarsh A. C. Description <strong>and</strong> use of lsode, the livermore<br />
solver for ordinary differential equations. Technical Report UCRL-ID-113855, LLNL,<br />
1993. 87<br />
[74] T. Kailath. Linear Systems, volume xxi. Prentice-Hall, New Jersey, 1980. 3<br />
[75] R. E. <strong>Kalman</strong>. A new approach to linear <strong>filter</strong>ing. Transactions of the ASME - Journal<br />
of Basic Engineering, 82 (Series D):35–45, 1960. 5<br />
[76] R. E. <strong>Kalman</strong> <strong>and</strong> B. S. Bucy. New results in linear <strong>filter</strong>ing <strong>and</strong> prediction theory.<br />
Journal of Basic Engineering, 83:95–108, 1961. 5<br />
[77] P. C. Krause, O. Wasynczuk, <strong>and</strong> S. D. Sudhoff. Analysis of Electric Machinery <strong>and</strong><br />
Drive Systems, 2nd Edition. Wiley-interscience, 2002. 57<br />
169
tel-00559107, version 1 - 24 Jan 2011<br />
REFERENCES<br />
[78] P. Krishnamurthy <strong>and</strong> F. Khorrami. Dynamic <strong>high</strong>-<strong>gain</strong> scaling: State <strong>and</strong> output<br />
feedback with application to systems with iss appended dynamics driven by all states.<br />
IEEE Transactions on Automatic Control, 49(12):2219–2239, 2004. 25<br />
[79] P. Krishnamurthy, F. Khorrami, <strong>and</strong> R. S. Ch<strong>and</strong>ra. Global <strong>high</strong>-<strong>gain</strong> based observer<br />
<strong>and</strong> backstepping controler for generalized output-feedback canonical form. IEEE<br />
Transactions on Automatic Control, 48(12), 2003. 25<br />
[80] H. J. Kushner. Approximations to optimal nonlinear <strong>filter</strong>s. IEEE Transactions on<br />
Automatic Control AC, 12(5), 1967. 7<br />
[81] G. F. Lawler. Introduction to Stochastic Processes, Second Edition. Chapman <strong>and</strong><br />
Hall/CRC, 2006. 162<br />
[82] D. S. Lemons <strong>and</strong> A. Gythiel. Paul langevin’s 1908 paper “on the theory of brownian<br />
motion”. American Journal of Physics, 65(11), 1997. 162<br />
[83] V. Lippiello, B. Siciliano, <strong>and</strong> L. Villani. Adaptive <strong>extended</strong> kalman <strong>filter</strong>ing for visual<br />
motion estimation of 3d objects. Control Engineering Practices, 15:123–134, 2007. 32<br />
[84] F. L. Liu, M. Farza, M. M’Saad, <strong>and</strong> H. Hammouri. High <strong>gain</strong> observer based on<br />
coupled structures. In Conference on Systems <strong>and</strong> Control, Marrakech, Morocco, 2007.<br />
93<br />
[85] L. Ljung <strong>and</strong> T. Söderström. Theory <strong>and</strong> Practice of Recursive Identification. The MIT<br />
Press, 1983. 83<br />
[86] D. G. Luenberger. Observers for multivariable systems. IEEE Transactions on Automatic<br />
Control, 11:190–197, 1966. 5<br />
[87] P. Martin <strong>and</strong> P. Rouchon. Two remarks on induction motors. In Symposium on<br />
Control, Optimization <strong>and</strong> Supervision, 1996. 57<br />
[88] The Mathworks, www.mathworks.com. Optimization Toolbox for Use with Matlab,<br />
User’s Guide. 83<br />
[89] P. S. Maybeck. Stochastic Models, Estimation, <strong>and</strong> Control, volume 1. Academic Press,<br />
1979. 30<br />
[90] P. S. Maybeck. Stochastic Models, Estimation, <strong>and</strong> Control, volume 2. Academic Press,<br />
1982. 30, 32<br />
[91] O. Mazenc <strong>and</strong> B. Olivier. Interval observers for planar systems with complex poles.<br />
In European Control Conference, 2009. 4<br />
[92] R. K. Mehra. Approaches to adaptive <strong>filter</strong>ing. IEEE Transactions on Automatic<br />
Control, 17(5):693– 698, 1972. 30, 32<br />
[93] S. Mehta <strong>and</strong> J. Chiasson. Nonlinear control of a series dc motor: Theory <strong>and</strong> experiment.<br />
IEEE Transactions on Industrial Electronics, 45(1), 1998. 57, 58<br />
170
tel-00559107, version 1 - 24 Jan 2011<br />
REFERENCES<br />
[94] C. Melchiori <strong>and</strong> G. Palli. A realtime simulation environment for rapid prototyping of<br />
digital control systems <strong>and</strong> education. Automazione e Strumentazione, Febbraio 2007.<br />
78<br />
[95] H. Michalska <strong>and</strong> D. Q. Mayne. Moving horizon observers <strong>and</strong> observer based control.<br />
IEEE Transactions on Automatic Control, 40:995–1006, 1995. 40<br />
[96] A. H. Mohamed <strong>and</strong> K. P. Schwarz. Adaptive kalman <strong>filter</strong>ing for INS/GPS. Journal<br />
of Geodesy, 73:193–203, 1999. 22, 30<br />
[97] L. La Moyne, L. L. Porter, <strong>and</strong> K. M. Passino. Genetic adaptive observers. Engineering<br />
Applications of Artificial intelligence, 8(3):261–269, 1995. 23<br />
[98] K. S. Narendra <strong>and</strong> A. M. Annaswamy. Stable Adaptive Systems. Prentice-Hall, New<br />
Jersey, 1989. 3<br />
[99] M. G. Pappas <strong>and</strong> J. E. Doss. Design of a parallel kalman <strong>filter</strong> with variable forgetting<br />
factors. In American Control Conference, pages 2368–2372, 1988. 30<br />
[100] E. Pardoux. Ecole d’été de Probabilités de Saint-Flour XIX, volume 1464 of LNM, chapter<br />
Filtrage non linéaire et Equations aux Dérivées Partielles Stochastiques Associées.<br />
Springer-Verlag, 1989. 29, 162, 164<br />
[101] J. Picard. Efficiency of the <strong>extended</strong> kalman <strong>filter</strong> for nonlinear systems with small<br />
noise. SIAM Journal of Applied Mathematics, 51(3):843–885, 1991. x, 7, 29, 38<br />
[102] S. H. Pourtakdoust <strong>and</strong> H. Ghanbarpour. An adaptive unscented kalman <strong>filter</strong> for<br />
quaternion-based orientation estimation in low-cost ahrs. International Journal of Aircraft<br />
Engineering <strong>and</strong> Aerospace Technology, 79(5):485–493, 2007. 32<br />
[103] L. Praly. Asymptotic stabilization via output feedback for lower triangular systems<br />
with output dependent incermental rate. IEEE Transactions on Automatic Control,<br />
48(6), 2003. 25<br />
[104] W. H. Press, S. A. Teukolsky, W. T. Vetterling, <strong>and</strong> B. P. Flannery. Numerical Recipes:<br />
The Art of Scientific Computing. Cambridge University Press, 2007. 83, 87<br />
[105] A. Rapaport <strong>and</strong> D.Dochain. Interval observers for biochemical processes with uncertain<br />
kinetics <strong>and</strong> inputs. Mathematical Biosciences, 193(2):235–253, 2005. 4<br />
[106] H. Reinhard. Equations Différentielles. Fondements et Applications. Gauthier-Villars,<br />
1982. 122<br />
[107] W. Rudin. Functional Analysis (2 nde edition). McGraw-Hill Science Engineering, 1991.<br />
125, 126<br />
[108] S. Sarkka. On unscented kalman <strong>filter</strong>ing for state estimation of continuous-time nonlinear<br />
systems. IEEE Transactions on Automatic Control, 52(9):1631–1641, 2007. 7,<br />
117<br />
171
tel-00559107, version 1 - 24 Jan 2011<br />
REFERENCES<br />
[109] S. Stubberud, R. Lobbia, <strong>and</strong> M. Owen. An adaptive <strong>extended</strong> kalman <strong>filter</strong> using<br />
artificial neural networks. The international journal on smart systems design, 1:207–<br />
221, 1998. 23<br />
[110] H. J. Sussmann. Single-input observability of continuous-tiime systems. Mathematical<br />
systems Theory, 12:371–393, 1979. 11<br />
[111] A. Tornambè. High-<strong>gain</strong> observers for nonlinear systems. International Journal of<br />
Systems Science, 13(4):1475–1489, 1992. 20, 23, 24<br />
[112] J. K. Ulhmann. Simultaneous map building <strong>and</strong> localization for real-time <strong>applications</strong>.<br />
Technical report, University of Oxford, 1994. 117<br />
[113] F. Viel. Stabilité des systèmes non linéaires contrôlés par retour d’état estimé. Application<br />
aux réacteurs de polymérisation et aux colonnes à distiller. PhD thesis, Université<br />
de Rouen, Mont-Saint-Aignan, FRANCE, 1994. 4, 22, 93<br />
[114] B. Vik, A. Shiriaev, <strong>and</strong> Thor I. Fossen. New Directions in Nonlinear Observer Design,<br />
volume 244 of LNICS, chapter Nonlinear Observer Design for Integration of DGPS <strong>and</strong><br />
INS. Springer, 1999. 103<br />
[115] K. C. yu, N. R. Watson, <strong>and</strong> J. Arrillaga. An adaptive kalman <strong>filter</strong> for dynamic<br />
harmonic state estimation <strong>and</strong> harmonic injection tracking. Transactions on Power<br />
Delivery, 20(2), 2005. 22, 23, 30<br />
[116] A. Zemouche <strong>and</strong> M. Boutayeb. Observer synthesis method for a class of nonlinear<br />
discrete-time systems with extension to observer-based control. In Proceedings of the<br />
17 th World Congress of the International Federation of Automatic Control, 2008. 32<br />
[117] A. Zemouche, M. Boutayeb, <strong>and</strong> G. Iulia Bara. Observer design for nonlinear systems:<br />
An approach based on the differential mean value theorem. In Proceedings of the 44 th<br />
Conference on Decision <strong>and</strong> Control <strong>and</strong> the European Control Conference, 2005. 32<br />
172