28.01.2013 Views

Adaptative high-gain extended Kalman filter and applications

Adaptative high-gain extended Kalman filter and applications

Adaptative high-gain extended Kalman filter and applications

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!