Commande des systèmes par platitude

Transcription

Commande des systèmes par platitude
Commande des systèmes par platitude
F. Rotella
Professeur des Universités
Enseignant d’Automatique
Ecole Nationale d’Ingénieurs de Tarbes
47 avenue d’Azereix, BP 1629,
65016, Tarbes CEDEX
Email : [email protected]
I. Zambettakis
Professeur des Universités
Enseignant d’Automatique
I.U.T. de Tarbes, Université Paul Sabatier de Toulouse
1 rue Lautréamont, BP 1629,
65016, Tarbes CEDEX
Email : [email protected]
Résumé
La propriété de platitude d’un système est une notion relativement récente en Automatique qui a été
proposée et développée, à partir de 1992, par M. Fliess, J. Lévine, P. Martin et P. Rouchon [1]. Cette
propriété, qui permet de paramétrer de façon très simple, le comportement dynamique d’un système, est
basée sur la mise en évidence d’un ensemble de variables fondamentales du système : ses sorties plates.
Ce point de vue, comme nous allons le voir, a de multiples et intéressantes conséquences relativement à la
commande des systèmes. En premier lieu, cela permet de remettre au centre de la commande d’un processus
la notion de trajectoire que le système doit exécuter, c’est-à-dire que le mouvement demandé à un système
doit avant tout être réalisable par ce système. Cela permet ainsi d’éviter de nombreux problèmes auxquels
sont confrontés les automaticiens. L’une des premières étapes de la commande par platitude consistera alors
à générer une trajectoire désirée adéquate qui tient compte implicitement du modèle du système.
En deuxième lieu, cette commande implique également la conception d’un contrôle par bouclage permettant la poursuite de cette trajectoire. On retrouve ainsi un des principes de base de la boucle de rétroaction :
elle sert essentiellement à compenser les erreurs inhérentes à toute modélisation. Nous verrons de plus que,
bien qu’utilisant le modèle non linéaire du processus à commander, ce bouclage, élaboré dans l’optique d’une
poursuite asymptotique de la trajectoire à réaliser, sera conçu dans un cadre linéaire.
En…n, et ce n’est pas le moindre de ses intérêts, ce type de commande peut être conçu et appliqué en
adoptant un strict point de vue d’ingénierie. En e¤et, et nous nous attacherons à privilégier cet angle, cette
commande, qui peut directement être mise en œuvre à partir du modèle non linéaire, ou même dans certains cas, sur des modèles faisant intervenir des équations aux dérivées partielles, simpli…e notablement la
conception de la commande des systèmes sans faire appel à toute la lourde panoplie des outils utilisés habituellement dans le cadre des systèmes non linéaires [5]. Elle permet ainsi de se tourner vers une démarche plus
pragmatique, mais néanmoins très performante, qui a donné lieu à de nombreuses applications industrielles
dans des domaines aussi divers, et sans prétendre ici être exhaustifs, que l’aéronautique, l’automobile, le
génie chimique, ou l’agro-alimentaire, c’est-à-dire dans tous les domaines où s’applique l’art de l’ingénieur.
1
F. Rotella, I.Zambettakis
Commande par platitude
Table des matières
1 Introduction
3
2 Platitude d’un modèle
5
3 Plani…cation de trajectoire
3.1 Génération de trajectoire sur z(t) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Génération de trajectoire sur y(t) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Trajectoire géométrique et évolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
8
8
9
4 Commande par platitude
11
4.1 Commande par platitude directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Commande par platitude numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5 Cas des systèmes linéaires
18
6 Mise en évidence de la platitude
22
6.1 Platitude et commandabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.2 Critère des variétés réglées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.3 Condition nécessaire et su¢ sante de platitude. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7 Systèmes non plats
31
8 Conclusion
33
Références
33
2
F. Rotella, I.Zambettakis
1
Commande par platitude
Introduction
De façon à comprendre de façon intuitive la notion de platitude, considérons un robot manipulateur décrit
par le modèle dynamique en les variables articulaires q(t) ([6, T2]) :
H(q(t))•
q (t) + NL(q(t); q(t))
_
= (t);
(1)
où H(q) est la matrice d’inertie (toujours dé…nie positive), NL(q; q)
_ est le vecteur des non linéarités (termes de
Coriolis, de gravité, d’entraînement,. . . ) et (t) est le vecteur des couples articulaires qui constitueront, dans un
premier temps, les commandes de ce système. Les notions que nous allons décrire dans la suite, font largement
appel, dans le cas des modèles continus, à l’opération de dérivation temporelle, nous utiliserons la notation
habituelle :
dk f (t)
pour tout entier k; f (k) (t) ,
;
dtk
et pour les premières dérivées : f_(t) , f (1) (t) et f•(t) , f (2) (t): Notons que dans un cadre linéaire, nous
utiliserons la notation opérationnelle f (k) (t) = pk f (t) où p désigne l’opérateur de dérivation temporelle.
Ainsi lorsqu’on désire faire exécuter une trajectoire au robot sous la forme d’un déplacement articulaire qd (t)
sur un intervalle de temps t 2 = [tI ; tF ] on peut calculer les commandes à imposer pendant sous la forme :
d (t)
= H(qd (t))•
qd (t) + NL(qd (t); q_d (t)):
C’est-à-dire que la connaissance de l’évolution des variables articulaires impose celle de toutes les autres variables
du système. Cela met en évidence l’étape essentielle de génération de trajectoire sur un ensemble particulier de
variables du système et constitue le premier point important de la platitude.
Le deuxième point important concerne le suivi de cette trajectoire. En e¤et, si on impose d (t) au niveau
des commandes d’axes du robot, l’imprécision sur la connaissance des valeurs des paramètres du modèle, les
perturbations et les conditions initiales mal connues font que la trajectoire désirée qd (t) ne va pas être exactement
exécutée. La méthode intuitive du couple calculé ([6, T2]) donne le bouclage statique :
(t) = H(q(t))v(t) + NL(q(t); q(t));
_
(2)
où v(t) est la nouvelle commande. Il conduit au système linéaire découplé :
q•(t) = v(t):
Si dans (2), on considère :
v(t) = q•d (t) + K1 (q_d (t)
q(t))
_
+ K0 (qd (t)
q(t));
où q(t) représente la trajectoire e¤ective du robot et K1 et K0 sont deux matrices diagonales positives alors la
commande :
(t) = H(q(t))(•
qd (t) + K1 (q_d (t) q(t))
_
+ K0 (qd (t) q(t))) + NL(q(t); q(t));
_
conduit à une erreur qd (t) q(t) qui tendra asymptotiquement vers 0: On obtient ainsi une poursuite de la
trajectoire désirée.
Une autre particularité de cette commande concerne le fait que la propriété qui a été utilisée pour la
concevoir est conservée à travers la mise en série. On peut ainsi, dans une étude plus poussée prendre en compte
les actionneurs et les capteurs qui instrumentent un processus, sans que le principe qui a été initialement
utilisé soit remis en question. En ce qui concerne notre exemple du robot manipulateur nous allons regarder
successivement la prise en compte des actionneurs et le fait que l’on conçoive initialement la trajectoire d’un
robot dans un espace opérationnel et non dans l’espace articulaire.
3
F. Rotella, I.Zambettakis
Commande par platitude
En robotique, un modèle uni…é d’actionneurs (électriques ou hydrauliques) permet d’écrire entre le vecteur
des commandes envoyées aux cartes d’axes, U (t); et (t); une relation de la forme :
U (t) = A3
(3)
(t) + A2
(2)
(1)
(t) + A1
(t) + A0 (t);
où les matrices A3 à A0 sont, dans la plupart des cas, diagonales et positives. La prise en compte du modèle (1)
de la partie mécanique articulée conduit à :
U (t) = (q (5) (t); : : : ; q(t);
_
q(t)):
(3)
Malgré un modèle plus complexe, on s’aperçoit que la connaissance de l’évolution des variables articulaires
permet encore de paramétrer la commande des actionneurs. On peut ainsi appliquer à nouveau le principe de
commande précédent. La commande de suivi asymptotique de la trajectoire qd (t) s’écrira donc, au niveau des
actionneurs, sous la forme :
U (t) = (w(t); q
(4)
(t); : : : ; q(t);
_
q(t)); avec w(t) =
(5)
qd (t)
+
4
X
(i)
Ki (qd (t)
q (i) (t));
i=0
X4
où les Ki ; pour i = 0 à 4, sont des matrices diagonales telles que les coe¢ cients polynomiaux de p5 +
K i pi
i=0
aient leurs zéros à partie réelle négative.
Les mêmes considérations peuvent être menées lorsque l’on considère des trajectoires générées dans l’espace
opérationnel. Soit X(t) les coordonnées opérationnelles du robot, c’est-à-dire l’ensemble des variables indépendantes qui dé…nissent la position et l’orientation de l’organe terminal dans un référentiel …xe. Comme il est plus
pratique de concevoir un déplacement dans l’environnement du robot, les trajectoires sont dé…nies dans l’espace
opérationnel sous la forme Xd (t): L’utilisation du modèle géométrique de la partie mécanique articulée [6, T2] :
g(X) = f (q);
permet de construire (localement et hors des singularités éventuelles) les modèles géométriques :
– direct : X = F (q);
– inverse : q = G(X):
@G _
X; et de façon plus générale pour tout entier k;
De ce dernier modèle, on obtient par dérivation q_ =
@X
(k)
(k)
q = (X; : : : ; X ): Ces relations, utilisées dans (3), donnent l’expression de la commande en fonction de la
connaissance des coordonnées opérationnelles :
U (t) =
_
(X (5) (t); : : : ; X(t);
X(t)):
Cela permet de faire la commande directement dans l’espace opérationnel :
– par génération de trajectoire (commande en boucle ouverte) :
Ud (t) =
(5)
(Xd (t); : : : ; X_ d (t); Xd (t));
– par poursuite de trajectoire (commande en boucle fermée) :
U (t) =
(5)
(Xd (t) +
4
X
(i)
ki (Xd (t)
_
X (i) (t)); : : : ; X(t);
X(t)):
i=1
En résumé, nous avons vu sur cet exemple simple que la mise en évidence de variables permettant de paramétrer les autres variables du système, dont en particulier les commandes, conduit à construire une commande
qui répond à un objectif de poursuite de trajectoire désirée. Remarquons ici que, d’une part, ce paramétrage
4
F. Rotella, I.Zambettakis
Commande par platitude
a été obtenu sans intégrer de système di¤érentiel, donc sans di¢ culté, et que d’autre part, il n’a pas été remis
en cause par des mises en série imposées par la prise en compte, par exemple, d’actionneurs ou de fonctions de
sorties. On peut ainsi construire des commandes à di¤érents niveaux, suivant que l’on tient compte ou non des
di¤érentes échelles dynamiques présentes dans tout processus opératif.
Toutes ces caractéristiques sont des avantages de la commande par platitude dont nous allons détailler les
principes dans la suite. Dans une optique résolument tournée vers la pratique et la mise en œuvre de cette
commande, nous n’aborderons pas les principes fondamentaux qui la justi…ent. Ces principes sont basées sur
des concepts théoriques rigoureux comme l’algèbre di¤érentielle [2] ou la géométrie di¤érentielle des jets in…nis
[3]. Nous invitons bien sûr les lecteurs désireux d’approfondir ces questions à les consulter. Dans la suite, nous
insisterons plutôt sur des procédures pratiques de conception d’une commande par platitude et sur des exemples
applicatifs.
2
Platitude d’un modèle
Dé…nition 1 Un système dé…ni par l’équation :
(x(t);
_
x(t); u(t)) = 0;
(4)
où x(t) est l’état et u(t) est la commande, est plat s’il existe un vecteur z(t) tel que :
z(t) = h(x(t); u(t); u(1) (t); : : : ; u( ) (t));
(5)
dont les composantes soient di¤ érentiellement indépendantes et deux fonctions A(:) et B(:) telles que :
où
; ; et
x(t) = A(z(t); z (1) (t); : : : ; z ( ) (t));
(6)
u(t) = B(z(t); z (1) (t); : : : ; z ( ) (t));
(7)
sont trois entiers …nis.
Le vecteur z(t) qui apparaît dans cette dé…nition s’appelle la sortie plate du système. Par l’introduction
des fonctions A(:) et B(:); cette sortie plate est composée un ensemble de variables qui permet de paramétrer
toutes les autres variables du système, l’état, la commande, mais également la sortie y(t): En e¤et, si la sortie
du système est reliée par une relation de la forme y(t) = (x(t); u(t); : : : ; u(p) (t)); alors nécessairement (6) et
(7) permettent d’a¢ rmer qu’il existe un entier tel que :
y(t) = C(z(t); : : : ; z ( ) (t)):
(8)
Comme les composantes de z(t) sont di¤érentiellement indépendantes, la sortie plate regroupe toutes les
variables libres (non contraintes) du système. Mais on peut dire également, par la relation (5), qu’elle ne dépend
que de l’état et de la commande, ce qui en fait une variable endogène du système, contrairement par exemple à
l’état d’un observateur qui est une variable exogène du système observé. D’autre part, et la notion d’équivalence
di¤érentielle au sens de Lie-Bäcklund le montre bien [3], le nombre de composantes de z(t) est donné par celui
de la commande :
dim z(t) = dim u(t):
Cette propriété essentielle permet de connaître a priori le nombre de variables libres que l’on doit trouver sur
un modèle pour mettre en évidence sa platitude.
Un des avantages de la propriété de platitude est que la dé…nition précédente n’est pas restreinte aux modèles
d’état, mais à tout modèle de la forme :
(x(n) (t); : : : ; x(1) (t); x(t); u(m) (t); : : : ; u(1) (t); u(t)) = 0;
5
F. Rotella, I.Zambettakis
Commande par platitude
6
A
F1 (t) Q
k
Q
A
h(t)
F2 (t)
A
BA
J
6
BAJ~ A (t)
A
*
A
2l
-
x(t)
Fig. 1 –Avion à décollage vertical.
cela permet ainsi de partir directement des équations régissant le système (fournies par les lois du domaine
concerné : mécanique, chimie, thermodynamique, économie, etc.) sans avoir à reformuler l’ensemble des équations
sous la forme d’une équation d’état.
Nous verrons sur les exemples que les diverses relations nécessaires à la mise en évidence de la platitude
ont chacune leur utilité mais que la plus importante pour la conception de la commande est la relation (7).
La relation (6) permet de véri…er que z(t) est e¤ectivement la sortie plate d’un système. En e¤et, toutes les
composantes de x(t) doivent pouvoir s’exprimer à l’aide de z(t) et de ses dérivées.
Exemple 1 Considérons le système :
x_ 1 (t) = x2 (t); x_ 2 (t) = u(t):
Si on dé…nit les variables :
– z(t) = x2 (t), malgré u(t) = z(t);
_
elle ne peut être considérée comme sortie plate car on a seulement :
x1 (t) = x1 (t0 ) +
Z
t
z( )d ;
t0
– z(t) = x1 (t), alors :
x2 (t) = z(t)
_
et u(t) = z•(t);
qui indique que x1 est une sortie plate de ce système.
En conséquence ce système est plat de sortie plate z(t) = x1 (t):
La relation (8) permet quant à elle de relier l’évolution de la sortie plate à celle de la sortie. Elle sera utile
lors de la phase de génération de trajectoire.
Dans les deux parties suivantes nous allons décrire les implications de la notion de platitude concernant la
mise en œuvre de la commande d’un système et ceci à divers niveaux. Mais auparavant traitons de l’exemple
de l’avion à décollage vertical. Cet exemple o¤re la particularité d’être assez simple dans sa formulation tout en
nous permettant de mettre en évidence, dans la suite, la puissance de la commande par platitude relativement
à une commande non linéaire habituelle. De plus nous y verrons que, comme dans beaucoup de situations
pratiques, certaines sorties plates particulières possèdent souvent une intreprétation physique.
6
F. Rotella, I.Zambettakis
Commande par platitude
Exemple 2 (Avion) Considérons le mouvement dans le plan vertical d’un avion à décollage vertical, schématisé dans la …gure (1). En utilisant les coordonnées réduites :
xG
hG
J sin
; h=
; "=
;
g
g
mg(l cos + sin )
(F1 F2 ) sin
(F1 + F2 ) cos
; u2 =
;
u1 =
mg
"mg
x=
où m représente la masse de l’avion, J; son inertie, g; la constante de gravitation, ; l’angle que font les poussées
F1 (t) et F2 (t) avec la verticale et (l; ), les paramètres fournissant les coordonnées dans le référentiel inertiel de
l’avion des points d’application des poussées, un modèle dynamique très simpli…é [10] peut s’écrire :
x
•(t) =
sin (t)u1 (t) + " cos (t)u2 (t);
•
h(t) = cos (t)u1 (t) + " sin (t)u2 (t) 1;
•(t) = u2 (t):
Comme il vient :
u1 (t)
u2 (t)
=
"
sin (t)
cos (t)
"
cos (t)
sin (t)
"
#
x
•(t)
•
h(t) + 1
;
l’élimination de u2 (t) conduit à :
• + 1);
"•(t) = cos (t)•
x(t) + sin (t)(h(t)
et la multiplication du premier membre par cos2 + sin2 = 1; donne :
" cos (t)•(t) =
cos (t) x
•(t)
Avec X(t) = x(t)
• +1
sin (t)(h(t)
" sin (t)•(t)):
" sin (t) et H(t) = h(t) + " cos (t); on a :
x
•(t)
•
" cos (t)•(t) = X(t)
•
h(t)
" sin (t)•(t)
2
" sin (t) _ (t);
2
•
= H(t)
+ " cos (t) _ (t);
soit :
•
•
cos (t)X(t)
= sin (t)(H(t)
+ 1):
2
2
•
•
Pour simpli…er, plaçons-nous dans le cas (H(t) + 1) + X(t) 6= 0: On tire de la relation précédente que
•
lorsque H(t)
+ 1 = 0 alors = (2k + 1) =2 sinon :
(t) =
Comme sin =
p
•
X(t)
2
• 2 +(H(t)+1)
•
X(t)
et cos = p •
arctan
•
X(t)
:
•
H(t)
+1
•
H(t)+1
2
•
X(t)2 +(H(t)+1)
; on en déduit :
•
•
•
•
x(t) = x(X(t); X(t);
H(t))
et h(t) = h(H(t); X(t);
H(t)):
De •(t) = u2 (t) :
•
et des relations X(t)
=
u2 (t) = u2 (X (2) (t); H (2) (t); X (3) (t); H (3) (t); X (4) (t); H (4) (t));
sin (t)(u1 (t)
2
•
" _ (t)) et H(t)
+ 1 = cos (t)(u1 (t)
(9)
2
" _ (t)) :
u1 (t) = u1 (X (2) (t); H (2) (t); X (3) (t); H (3) (t)):
Cet ensemble de relations indique que (X(t); H(t)) est une sortie plate de ce système. Remarquons qu’elle
admet une interprétation physique immédiate puisqu’il s’agit du centre de rotation de Huygens du pendule
équivalent.
7
F. Rotella, I.Zambettakis
3
Commande par platitude
Plani…cation de trajectoire
À partir de la relation (7), si l’on désire obtenir, pour le système plat (4), la trajectoire :
zd (t) pour t de t0 à tf ;
il su¢ t d’imposer, sur le même segment temporel, la commande en boucle ouverte :
(1)
( )
ud (t) = B(zd (t); zd (t); : : : ; zd (t)):
(10)
Dans l’hypothèse d’un modèle parfait, on aura alors, pour t de t0 à tf ; z(t) = zd (t); et par voie de conséquences :
(1)
( )
(1)
( )
x(t)
= xd (t) = A(zd (t); zd (t); : : : ; zd (t));
y(t)
= yd (t) = C(zd (t); zd (t); : : : ; zd (t)):
Ainsi maîtrise-t-on complètement l’évolution de toutes les trajectoires nominales du système, la seule contrainte
étant que la trajectoire désirée sur la sortie plate doit nécessairement être au moins max( ; ; )-fois dérivable
sur [t0 ; tf ].
3.1
Génération de trajectoire sur z(t)
Pour assurer la contrainte de dérivabilité durant toute la trajectoire on envisage généralement, et sans être
restrictif, des trajectoires polynomiales par morceaux, des polynômes d’interpolations ou des fonctions C1 (e.g.
des fonctions trigonométriques) avec la plupart du temps, des conditions de continuité au départ et à l’arrivée.
On peut également imposer :
– des points de passage ou de rebroussement ;
– des trajectoires de contournement prévues en fonction d’événements possibles.
Une autre possibilité concerne l’optimisation, le long de la trajectoire désirée d’un critère de la forme :
Z t1
J=
(y(t); u(t))dt;
t0
qui, compte tenu des relations (7) et (8) s’écrit :
J=
Z
t1
L(z; : : : ; z ( ) )dt:
t0
Nous sommes donc ramenés à un simple problème de calcul de variations et la trajectoire optimale, zd (t);
qui minimise alors ce critère est solution de l’équation d’Euler-Lagrange :
@L
@z
d @L
d2 @L
+
+
dt @z (1)
dt2 @z (2)
+ ( 1)
d @L
= 0:
dt @z ( )
Elle possède bien sûr les propriétés cherchées de dérivabilité. On peut également combiner les deux solutions
(e.g. splines cubiques, courbes de Bézier, . . . ) et tenir compte de contraintes éventuelles [17].
3.2
Génération de trajectoire sur y(t)
Souvent la sortie y(t) que l’on veut asservir n’est pas une sortie plate et dans ce cas on ne peut, sans risques,
générer une trajectoire directement sur y(t): Nous verrons pourquoi lors de la commande de l’avion à décollage
vertical. Comment peut-on alors procéder lorsque l’on veut imposer une trajectoire à e¤ectuer sur la sortie ? La
procédure suivante résout en partie ce problème en dé…nissant une tolérance admissible sur cette trajectoire.
8
F. Rotella, I.Zambettakis
Commande par platitude
6
@ '(t)
@
@
@
@
@
@
F (t)
y(t)
@
@
@ P
@
@
@
@
@
@
(t)
-
x(t)
Fig. 2 –Voiture.
Procédure 1 Génération de trajectoire sur une sortie non plate.
À partir de yd (t); trajectoire désirée sur la sortie pour t 2 [t0 ; tf ] :
1. On impose des points de passage, pour i = 0 à N , y(ti ) = yi :
2. On impose des contraintes en ces points, pour i = 0 et N; pour j = 1 à M , y (j) (ti ) = yi;j :
3. On impose des contraintes (de continuités) aux points de passage, pour i = 1 à N
y (j) (ti ) = y (j) (t+
i ):
4. Compte tenu de y = C(z; : : : ; z ( ) ), pour j = 0 à M , y (j) = Cj (z; : : : ; z (
5. Cela donne des contraintes, pour i = 0 et N; pour j = 1 à
+ M, z
(j)
+j)
1; pour j = 1 à M ,
):
(ti ) = zi;j :
6. On génère la trajectoire zd (t) de t0 à tN qui véri…e ces contraintes.
( )
7. Cela donne la trajectoire sur y(t), yd (t) = C(zd (t); : : : ; zd (t)):
8. Soit e(t) = y(t)
yd (t) et E la tolérance maximale autorisée :
( )
– si max e(t) < E; on exécute la commande ud (t) = B(zd (t); : : : ; zd (t));
– si max e(t) > E; on insère des points de passage supplémentaires et on reprend à l’étape 1.
3.3
Trajectoire géométrique et évolution
Un des intérêts de la notion de platitude est de permettre, toutjours relativement au système, la distinction
claire entre l’aspect géométrique de la trajectoire à exécuter et l’évolution de long de cette trajectoire. Cette
distinction s’avère nécessaire lorsque des singularités apparaissent dans l’expression de l’état et de la commande
en fonction de la sortie plate.
Exemple 3 (Voiture) Parmi les divers types de modèles de robots mobiles simples proposés dans [7] celui de la
voiture à quatre roues dont les deux roues avant sont les roues directionnelles et les roues arrière sont les roues
motrices, utilisé également dans [2], est particulièrement simple. En e¤ et, si on note dans la …gure (2) (x(t);
y(t)) les coordonnées d’un point …xe P de la voiture et (t) l’orientation de l’axe du véhicule relativement à un
axe …xe, et en prenant comme variables de commande la vitesse instantanée du véhicule, V (t); et l’orientation
9
F. Rotella, I.Zambettakis
des roues avant, '(t); '(t) 2
modèle cinématique :
Commande par platitude
i
;
2 2
h
; l’utilisation de la condition de roulement sans glissement conduit au
x(t)
_
= V (t) cos (t);
y(t)
_ = V (t) sin (t);
(11)
_ (t) = V (t) tan '(t):
l
Des considérations géométriques conduisent à prendre comme sortie plate tout point …xe de la voiture. En
particulier si on prend les coordonnées de P; soit (x(t); y(t)), on obtient :
p
2
2
px_ (t) + y_ (t); en marche avant,
V (t) =
2
x_ (t) + y_ 2 (t); en marche arrière,
et lorsque V (t) 6= 0 :
(t)
'(t)
8
>
< arctan
y(t)
_
; si x(t)
_
6= 0,
x(t)
_
=
>
: signe(y(t));
_
si x(t)
_
= 0,
2
!
l(x(t)•
_ y (t) x
•(t)y(t))
_
= arctan
:
p
3
x_ 2 (t) + y_ 2 (t)
Lorsque V (t) = 0; ce qui correspond à un point d’arrêt du véhicule, apparaît une singularité dans l’expression
des commandes. L’interprétation physique est ici immédiate : tourner le volant d’un véhicule à l’arrêt s’avère
sans e¤ et.
Comme dans le cas d’une conduite usuelle les phases de démarrage et d’arrêt sont progressives le long
de la trajectoire, cela suggère, pour lever des singularités éventuelles, de découpler l’aspect géométrique de
la trajectoire à suivre et l’allure du mouvement le long de cette trajectoire. La procédure suivante résume la
démarche à adopter pour résoudre le problème posé par une singularité.
Procédure 2 Traitement d’une singularité.
1. Introduire l’abcisse curviligne (t); avec (t0 ) = 0 et (tf ) = 1:
2. Paramétrer cette abscisse curviligne relativement au temps, soit (t); en imposant des contraintes su¢ santes sur les dérivées successives de (t) aux instants correspondants aux singularités.
3. Écrire les relations de platitude (6) et (7) en fonction de l’abcisse curviligne et des dérivations relativement
à cette abcisse curviligne.
4. Décrire la géométrie de la trajectoire à réaliser sur la sortie plate par son abscisse curviligne ; soit zd ( ).
Exemple 4 (Voiture (suite)) En ce qui concerne les premières étapes de la procédure, si T est la durée du
mouvement, on prendra nécessairement (0) = 0; et (T ) = 1 avec la contrainte supplémentaire _ (0) = _ (T ) =
0: Cela donne par exemple :
2
t
t
(t) =
3 2
:
T
T
ce qui donnera la vitesse du mouvement le long de la trajectoire géométrique.
dx
dy
Relativement à l’aspect géométrique de la trajectoire, en notant x0 ( ) =
et y 0 ( ) =
; qui sont bien sûr
d
d
02
02
liés par dé…nition par x ( ) + y ( ) = 1 le long de la trajectoire, on obtient les relations :
8
u(t) = _ (t);
>
>
<
y0
(t) = arctan
; si x0 6= 0 et signe(y 0 ) sinon,
>
x0
2
>
:
'(t) = arctan (l(x0 (t)y 00 (t) x00 (t)y 0 (t))) ;
10
F. Rotella, I.Zambettakis
Commande par platitude
dA
?
dB
?
?
q1
(SB )
?
(SA ) q2
u1 (
r
1)
hA
6
u2 (
? ?
q1 qA
h1 6 (S1 )
- d1
r
2)
6
hB
? ?
q2 qB
(S2 )
d2
6
h2
Fig. 3 –Réseau de quatre cuves.
où la singularité a disparu.
4
Commande par platitude
La génération de trajectoire réalisée dans la section précédente conduit, via (10), à la commande en boucle
ouverte que l’on peut imposer au système pour obtenir le comportement prévu. Cependant, comme le modèle
n’est jamais parfait, l’utilisation de (10) ne permet pas d’exécuter parfaitement les trajectoires désirées sur les
sorties. Une commande en boucle fermée est donc nécessaire et la relation (7) est celle qui va nous permettre
de construire l’algorithme de commande de poursuite de la trajectoire désirée. Cependant, si pour la mise en
évidence de la propriété de platitude la seule existence, e.g. en utilisant le théorème des fonctions implicites, des
fonctions A(:); B(:) et C(:) était su¢ sante, il n’en est pas de même lorsque l’on veut construire la commande
puisque nous aurons besoin de l’expression de la commande sous la forme (7). Deux éventualités peuvent se
produire :
1. Les formules de platitude, surtout u(t) = B(z(t); : : : ; z ( ) (t)); sont explicites : le système est dit explicitement plat et cela nous conduira au premier schéma de commande par platitude ou commande par
platitude directe. À titre d’exemple, les modèles précédents de l’avion à décollage vertical ou de la voiture
sont explicitement plats.
2. Le système est plat mais on ne sait pas extraire les formules donnant l’état et la commande : le système est
dit alors numériquement plat. On parle aussi parfois de platitude implicite [17], mais nous verrons dans
la suite pourquoi l’on préfère parler ici de platitude numérique. Cela nous conduira au deuxième schéma
de commande par platitude ou commande par platitude numérique.
Exemple 5 (Cuves) Considérons le réseau hydrographique à quatre cuves schématisé dans la …gure (3) où les
notations adoptées désignent :
– u1 (t), u2 (t) : les débits amont (non maîtrisables) ;
– q1 (t); q1 (t); qA (t); qB (t) ; q2 (t), q2 (t) : les débits entrant dans les réservoirs ;
– dA (t), dB (t) : les débits externes dans les réservoirs supérieurs (pluies ou évaporations) ;
11
F. Rotella, I.Zambettakis
Commande par platitude
– d1 (t), d2 (t) : les débits de sortie des réservoirs externes ;
– h1 (t); h2 (t); hA (t), hB (t) : les hauteurs d’eau dans les réservoirs ;
– 1 (t), 2 (t) : les ouvertures relatives des vannes de dérivation.
En supposant, pour simpli…er, que les débits de perturbations externes dA (t) et dB (t) soient nuls, ce système
peut être décrit par les relations :
q1 (t) = 1 (t)u1 (t);
q2 (t) = 2 (t)u2 (t);
SA h_ A (t) = p
q2 (t) qA (t);
qA (t) = kA hA (t);
S1 h_ 1 (t) = p
q1 (t) + qA (t) d1 (t);
d1 (t) = k1 h1 (t);
q1 (t) = (1
1 (t))u1 (t);
q2 (t) = (1
2 (t))u2 (t);
SB h_ B (t) = p
q1 (t) qB (t);
qB (t) = kB hB (t);
S2 h_ 2 (t) = p
q2 (t) + qB (t) d2 (t);
d2 (t) = k2 h2 (t);
où les constantes ki sont relatives aux ori…ces d’écoulements et les constantes Si représentent les surfaces libres
des réservoirs. En considérant que nos commandes sont les taux d’ouvertures des dérivations 1 (t) et 2 (t); à
valeurs dans [0,1], leur élimination dans les relations précédentes donne :
p
p
p
SA h_ A (t) + S2 h_ 2 (t) = kA phA (t) k2 ph2 (t) + kB phB (t) + u2 (t);
(12)
SB h_ B (t) + S1 h_ 1 (t) = kB hB (t) k1 h1 (t) + kA hA (t) + u1 (t):
Si on dé…nit les volumes :
V2A (t) = SA hA (t) + S2 h2 (t);
V1B (t) = SB hB (t) + S1 h1 (t);
on obtient :
V_ 2A (t)
V_ 1B (t)
p
kA phA (t)
kB hB (t)
u2 (t) =
u1 (t) =
(13)
p
p
k2 ph2 (t) + kB phB (t);
k1 h1 (t) + kA hA (t):
(14)
En groupant les relations (13) et (14), on obtient un système d’équations non linéaires en les inconnues :
H(t) =
hA (t) hB (t) h1 (t) h2 (t)
T
;
qui est (localement) soluble si le théorème des fonctions implicites est véri…é, soit si :
2
SA
0
0
S2
6
0
S
S
0
B
1
6
kA
kB
k
6
p
p
p2
0
J(H(t)) = 6
6 2 hA (t)
2 hB (t)
2 h2 (t)
6
4
kA
kB
k1
p
p
p
0
2 hA (t)
2 hB (t)
2 h1 (t)
est inversible. Ainsi, tant que :
S1 kB
SB k1
s
h1 (t)
S2 kA
+
hB (t) SA k2
s
h2 (t)
6= 1;
hA (t)
T
3
7
7
7
7;
7
7
5
(15)
(16)
z(t) = V2A (t) V1B (t)
est une sortie plate du système. Bien que l’on ne puisse résoudre analytiquement le
système d’équations (??), on peut numériquement obtenir H = H(z; z;
_ u1 ; u2 ) pour chaque valeur de z; z;
_ u1 et
u2 ; et également :
1 (t)
=
2 (t)
=
p
1
S1 h_ 1 (t) + k1 h1 (t)
u1 (t)
p
1
S2 h_ 2 (t) + k2 h2 (t)
u2 (t)
12
kA
kB
p
hA (t) ;
p
hB (t) :
F. Rotella, I.Zambettakis
Commande par platitude
y
-
u
- Processus
z
- z
?
(:)
zd
Fig. 4 –Première structure de commande.
Ce système est numériquement plat de sortie plate z(t); le cas où u1 (t) ou u2 (t) s’annule étant bien sûr
exclus.
Bien que cela ne change pas la propriété de platitude, on ne pourra pas appliquer, dans les deux situations
décrites, les mêmes techniques de commande.
4.1
Commande par platitude directe
Comme dans le cas du robot manipulateur, la connaissance de (7) conduit à proposer la commande
u(t) = B(z(t); z (1) (t); : : : ; z (
1)
(t); v(t));
@B(:)
est localement inversible cela conduit au système découplé :
@z ( )
où v(t) est une nouvelle commande. Lorsque
z ( ) (t) = v(t):
Ce résultat est à comparer à la linéarisation et au découplage par bouclage des systèmes non linéaires qui
sont toujours conditionnnés par la stabilité des zéros du système [5]. En e¤et, nous obtenons ici un découplage
et une linéarisation inconditionnels (notons que cette propriété est à l’origine du choix du terme platitude).
Cependant il est évident qu’un bouclage supplémentaire de stabilisation est nécessaire. La commande :
( )
v(t) = zd (t) +
X1
(i)
Ki (zd (t)
z (i) (t));
i=0
P 1
où K(p) = p + i=0 Ki pi est une matrice diagonale dont les éléments sont des polynômes dont les racines
sont à partie réelle négative, conduit à :
u
(
1)
(
1)
= B(z; : : : ; z
( )
; zd (t)
+
X1
(i)
Ki (zd (t)
z (i) (t)));
i=0
=
(z; : : : ; z
; K(p)zd (t));
et permet d’assurer une poursuite de trajectoire asymptotique avec :
lim (zd (t)
t!1
z(t)) = 0:
Comme z(t) et toutes ses dérivées sont des variables endogènes du processus, le bouclage u(t) s’appelle un
bouclage endogène et conduit à la première structure de commande par platitude ou commande par platitude
directe décrite dans la …gure (4).
13
F. Rotella, I.Zambettakis
Commande par platitude
Exemple 6 (Avion (suite)) L’expression de la commande (9) indique
= 4; donc il existe un bouclage
linéarisant tel que X (4) = v1 et H (4) = v2 : À partir de cette information, le principe de construction de la
commande consiste à dériver fois les sorties plates puis à réaliser un retour stabilisant autour de la trajectoire
désirée. Nous ne détaillerons pas les calculs, mais on arrive à :
2
•
X(t)
= sin (t)(u1 (t) " _ (t));
2
•
H(t)
= cos (t)(u1 (t) " _ (t)) 1:
2
Comme seule la commande u1 (t); par l’expression (t) = u1 (t) " _ (t); apparaît simultanément dans les dérivées
secondes des variables plates, la technique usuelle en découplage consiste à la considérer comme une nouvelle variable d’état (principe d’extension dynamique [5]). Pour faire apparaître u2 (t); deux dérivations supplémentaires
sont nécessaires et on obtient ainsi :
X (4)
=
H (4)
=
2
sin _
cos _
2 cos _ _
2
cos
2 sin _ _
sin
sin • = v1 ;
u2 + cos • = v2 :
u2
Égalités que l’on peut mettre sous la forme :
cos
sin
u2
•
sin
cos
=
"
2
v1 sin _ + 2 cos _ _
2
v2 + cos _ + 2 sin _ _
#
:
La résolution de ce système donne u2 (t) et • (t) ce qui permet d’obtenir la commande linéarisante, tant que
(t) 6= 0 :
• (t)
2
=
(t) _ (t)
u1 (t)
=
2
(t) + " _ (t);
u2 (t)
=
v1 (t) sin (t) + v2 (t) cos (t);
1
(v1 (t) cos (t) + v2 (t) sin (t) + 2 _ (t) _ (t));
(t)
que l’on complète avec le bouclage stabilisant :
(4)
v1 (t) = Xd (t) +
3
X
(i)
k1;i (Xd (t)
(4)
X (i) (t)); v2 (t) = Hd (t) +
i=0
3
X
(i)
k2;i (Hd (t)
H (i) (t));
i=0
qui permet un suivi asymptotique de la trajectoire désirée (Xd (t); Hd (t)) lorsque les polynômes à coe¢ cients
3
X
réels p4 +
kj;i pi ; j = 1, 2, sont choisis tels que leurs zéros soient à partie réelle négative.
i=0
Avant de continuer nous allons pro…ter de cet exemple pour comparer les résultats obtenus avec une commande par platitude et avec une commande linéarisante et découplante usuelle. Cette dernière technique de
commande des systèmes non linéaires repose sur un découplage associé à un retour linéaire stabilisant [5]. Rappelons brièvement cette technique. Pour un système non linéaire de vecteur de commandes u(t) et de vecteur
de sorties y(t) de même dimension m :
x(t)
_
y(t)
= f (x) + g(x)u(t);
= h(x);
(17)
par des dérivations successives sur les composantes de la sortie, yi (t); on peut construire des relations de la
forme :
( )
pour i = 1 à m; yi i (t) = ai (x) + bi (x)u(t);
14
F. Rotella, I.Zambettakis
Commande par platitude
où i est le plus petit nombre de dérivation à e¤ectuer sur yi (t) pour faire apparaître au moins une des
composantes de la commande u(t):
En notant :
2
2
3
3
a1 (x)
b1 (x)
6
7
6
7
..
..
A(x) = 4
5 ; B(x) = 4
5;
.
.
am (x)
bm (x)
lorsque la matrice B(x), dite de découplage, est de plein rang, rang B(x) = m; alors le bouclage u =
B(x) 1 (v(t) A(x)) où v(t) est une nouvelle commande, transforme ces relations en m systèmes découplés :
(
i)
pour i = 1 à m, yi
= vi (t):
Xm
Lorsque
i = n; le système non linéaire est dit sans dynamique des zéros ou linéarisable entrée-sortie
i=1
par bouclage statique. Comme on peut montrer que dans ces conditions il existe un di¤éomorphisme :
2
3
y
6
7
..
4
5 = (x);
.
y(
1)
donc une relation x = (y; : : : ; y ( 1) ) qui permet d’obtenir également u = (y; : : : ; y ( ) ); on arrive à la
conclusion qu’un tel système est plat de sortie plate y(t): Dans ce cas la commande par platitude n’apporte rien
Xm
de plus qu’une commande linéarisante. Par contre, lorsque
i < n; on sait que le système des zéros est
i=1
rendu non observable par le bouclage découplant et la commande découplante peut induire, comme nous allons
le voir dans l’exemple de l’avion, pour un système des zéros instable, à des situations catastrophiques.
Exemple 7 (Avion (suite)) Considérons comme sortie les coordonnées du centre de gravité, soit :
x(t)
h(t)
y(t) =
:
Après deux dérivations de ces sorties apparaît la matrice de découplage B( ) :
x
•(t)
• +1
h(t)
Comme det B( ) =
sin
cos
=
|
" et :
B( )
1
{z
" cos
" sin
B( )
=
sin
cos
"
u1 (t)
u2 (t)
:
v1 (t)
v2 (t) + 1
;
}
cos
;
sin
"
la commande non linéaire découplante s’écrit :
u1 (t)
u2 (t)
=
sin
cos
cos
"
sin
"
où v1 (t) et v2 (t) sont deux nouvelles commandes. On obtient ainsi le système découplé :
x(2) (t)
h(2) (t)
=
15
v1 (t)
v2 (t)
:
F. Rotella, I.Zambettakis
Commande par platitude
Ainsi, la commande :
u1 (t)
u2 (t)
=
sin
cos
"
"
cos
sin
"
(2)
(1)
xd (t) + k1;1 (xd (t) x(1) (t)) + k0;1 (xd (t) x(t))
(2)
(1)
hd (t) + k1;2 (hd (t) h(1) (t)) + k0;2 (hd (t) h(t)) + 1
#
;
permet, lorsque les constantes ki;j sont choisies positives, un suivi asymptotique de la trajectoire désirée (xd (t); hd (t))
avec cependant un inconvénient majeur : l’avion tourne sur lui-même de plus en plus vite. De façon à comprendre
ce résultat, lorsque l’on applique e¤ ectivement cette commande on obtient également :
"
(2)
(t) = cos (t)v1 (t) + sin (t)(v2 (t) + 1);
(2)
(2)
soit en prenant l’hypothèse simpli…catrice limt!1 (xd (t); hd (t)) = (0; 0); comme limt!1 (v1 (t); v2 (t)) = (0; 0);
il reste asymptotiquement, " (2) (t) = sin (t) qui est un système instable non commandé.
Ainsi, l’utilisation d’une commande par platitude permet d’éviter le problème des dynamiques instables des
zéros. Cependant, l’application de cette forme de commande repose sur une hypothèse forte : il faut que la
relation (7) soit soluble relativement à z ( ) (t): Lorsque cela n’est pas le cas nous allons voir dans le paragraphe
suivant une procédure simple permettant de mettre en œuvre une commande par platitude.
4.2
Commande par platitude numérique
On se place ici dans le cas où on ne peut calculer les commandes et les états correspondant à une trajectoire
sur la sortie plate qu’à l’aide d’un algorithme numérique de résolution locale d’équations non linéaires. Dans ce
cas, il est nécessaire de passer par la linéarisation du modèle non linéaire autour de la trajectoire, l’objectif de la
commande étant alors d’élaborer le complément de commande à rajouter à la commande en boucle ouverte de
façon à suivre asymptotiquement la trajectoire désirée. Cette démarche est résumée par la procédure suivante.
Procédure 3 Commande par platitude numérique.
1. Détecter la propriété de platitude du système et mettre en évidence l’existence de la sortie plate z(t):
2. Plani…er la commande en boucle ouverte. À partir de la trajectoire désirée sur la sortie plate zd (t);
construire :
(xd (t); ud (t); yd (t));
par résolution numérique, pour chaque t de t0 à tf ; des équations non linéaires relativement à la sortie
plate.
3. Linéariser le modèle autour de (xd (t); ud (t); yd (t)) :
x(t)
_
= A(t) x(t) + B(t) u(t);
y(t) = C(t) x(t) + D(t) u(t);
x(t) = xd (t)
x(t); u(t) = ud (t)
u(t); y(t) = yd (t)
y(t):
4. Calculer le bouclage non stationnaire u(t) = K(p; t) y(t); tel que toutes les variables aux écarts dans le
schéma de la …gure (5) tendent asymptotiquement vers 0.
5. Mettre en œuvre la commande :
u(t) = ud (t)
sur le système non linéaire.
16
u(t);
F. Rotella, I.Zambettakis
Commande par platitude
u
-
y
A(t) B(t)
C(t) D(t)
6 zd
?
K(p; t)
u
y
Fig. 5 –Commande linéaire
zd
ud
?
+
6
u
u
yd
- A(:)
B(:)
- Processus
?
- +
y
y
K(p; t)
Fig. 6 –Deuxième structure de commande.
Cette procédure conduit au schéma de commande de la …gure (6) où les opérateurs B(:) et A(:) sont
numériquement mis-en-œuvre.
Notons que cette structure de commande peut être utilisée dans tous les cas de systèmes plats. Comme elle
ne fait intervenir que des opérateurs linéaires non stationnaires cela facilite la conception de certains élements
comme par exemple celle des observateurs [16, T3].
Exemple 8 (Cuves (suite)) À partir de la connaissance des trajectoires désirées sur la sortie plate, soit
d
d
d
d
V2A
(t) et V1B
(t), donc également V_ 2A
(t) et V_ 1B
(t); et des débits entrants dans le système u1 (t); u2 (t); dA (t) et
dB (t); il est possible d’obtenir numériquement, pour chaque instant t dans [0; T ]; les hauteurs et les commandes
correspondantes :
Td (t) = (hdA (t); hdB (t); hd1 (t); hd2 (t); d1 (t); d2 (t))
La linéarisation des relations (12) autour de ces trajectoires désirées conduit à :
SA h_ A (t) + S2 h_ 2 (t) =
SB h_ B (t) + S1 h_ 1 (t) =
k
qA
hA (t)
2 hdA (t)
k
qB
hB (t)
2 hdB (t)
kB
k
p2
h2 (t) + q
hB (t);
d
2 h2 (t)
2 hdB (t)
kA
k
p1
h1 (t) + q
hA (t):
d
2 h1 (t)
2 hdA (t)
Lorsque la matrice Jd (t) = J(Hd (t)) est régulière, les écarts de volumes V2A (t) = SA hA (t) + S2 h2 (t) et
V1B (t) = SB hB (t) + S1 h1 (t); constituent des sorties plates du système linéarisé. On peut remarquer que ce
sont les formes linéarisées des sorties plates du modèle non linéaire des cuves. Les écarts sur les commandes
peuvent être alors obtenus sous la forme :
"
#
1
d [Jd (t)]
u2 (t) 2 (t)
1 _
1
= S [Jd (t)]
Z(t)
S
+ Md [Jd (t)]
Z(t);
(18)
u1 (t) 1 (t)
dt
17
F. Rotella, I.Zambettakis
Commande par platitude
où :
V2A (t)
V1B (t)
V (t) =
S=
SA
0
0
SB
0 0
0 0
; Z(t) =
2
k
qA
6
6 2 hdA (t)
; Md = 6
6
4
0
V (t)
V_ (t)
;
0
k
qB
2 hdB (t)
0 0
0
3
7
7
7:
7
0 5
L’application du principe de commande par platitude sur le modèle linéarisé conduit alors à mettre en œuvre
la commande :
#
"
1
d [Jd (t)]
V (t)
u2 (t) 2 (t)
V_ (t)
1
1
+ Md [Jd (t)]
;
=
S [Jd (t)]
S
u1 (t) 1 (t)
w(t)
V_ (t)
dt
w(t)
=
a2A;1
0
0
a1B;1
V_ (t)
a2A;0
0
0
a1B;0
V (t):
(19)
où les coe¢ cients a2A;1 ; a1B;1 ; a2A;0 et a1B;0 sont choisis pour obtenir des performances correctes en poursuite.
À titre d’exemple les résultats indiqués dans les …gures (7) et (8) indiquent les comportements obtenus
pour un système de cuves possédant les caractéristiques suivantes : S1 = SA = 28 cm2 ; S2 = SB = 32 cm2 ;
k2 = kB = 2:525 cm5=2 =s; k1 = kA = 3:145 cm5=2 =s et u1 = u2 = 10 cm3 =s; pour lequel on désire gérer le
passage en 200 secondes entre les points de fonctionnement :
àt=0:
à t = 200 s :
h1 = 14:56 cm; hB = 2:51 cm; hA = 3:64 cm;
h2 = 10:04 cm; dA = dB = 0 cm3 /s;
h1 = 19:8 cm; hB = 2:51 cm; hA = 6:47 cm;
h2 = 10:04 cm; dA = 2 cm3 /s; dB = 0 cm3 /s;
correspondant à l’arrivée d’une perturbation dA = 2 cm3 =s à l’instant 0. Avec les choix a2A;1 = a1B;1 = 0:08
et a2A;0 = a1B;0 = 0:01; on s’aperçoit du comportement en poursuite sur les hauteurs d’eau dans les cuves
malgré des erreurs d’estimation sur les hauteurs d’eau initiales. On peut également remarquer que malgré une
saturation sur la commande 1 sur les 10 premières secondes, la commande par platitude conduit cependant
à une poursuite asymptotique de la trajectoire désirée ce qui indique un bon degré de robustesse de ce type de
commande.
5
Cas des systèmes linéaires
Bien que la commande des systèmes par platitude ait été initialement développée dans le cadre des systèmes
non linéaires, les principes sur lesquels elle repose éclairent utilement le cas des systèmes linéaires. Nous ne
détaillerons pas le cas de la dimension in…nie, abondamment décrite dans [10, 13], en concentrant notre attention
sur les modèles linéaires de dimension …nie qu’ils soient stationnaires ou non stationnaires [T3]. L’intérêt de
considérer les systèmes linéaires, outre le fait qu’ils apparaissent naturellement lors de la linéarisation autour
d’un point de fonctionnement ou d’une trajectoire, et que certains systèmes puissent être décrits, dans une
grande plage de fonctionnement par un modèle directement linéaire, est que l’utilisation d’une commande par
platitude numérique, impliquent leur utilisation. En…n, et cela n’est pas le moindre de leurs avantages, ils
permettent de construire facilement des observateurs locaux.
Nous allons voir que la représentation d’état d’un système linéaire est l’outil naturel a utiliser pour mettre
en évidence des sorties plates et pour concevoir sa commande. Comme le cadre non stationnaire n’est pas plus
18
F. Rotella, I.Zambettakis
Commande par platitude
20
18
h (t)
16
1
niveaux désirés et niveaux obtenus
14
h (t)
1d
12
h (t)
2
10
h (t)
2d
8
6
h
Ad
(t)
4
h (t)
A
h d(t)
B
2
h (t)
B
0
0
20
40
60
80
100
120
140
160
180
200
temps(s)
Fig. 7 –Niveaux obtenus dans les cuves comparés aux niveaux désirés.
complexe que le cadre stationnaire puisqu’on y utilise les mêmes méthodes [T3], nous nous placerons directement
dans cette situation et on a le résultat simple suivant :
Théorème 1 Une condition nécessaire et su¢ sante de platitude d’un système linéaire est sa commandabilité.
En e¤et, si on considère le système linéaire non stationnaire :
x(t)
_
= A(t)x(t) + B(t)u(t);
(20)
où, pour tout t; dim x(t) = n, dim u(t) = m; et les matrices A(t) et B(t) ont leurs coe¢ cients qui dépendent
du temps. Les résultats de Silverman-Meadows [15, T3] indiquent que lorsque ce système est commandable, il
existe un changement de variables sur l’état, xc (t) = Tc (t)x(t); et sur la commande, uc (t) = Hc (t)u(t); que l’on
peut construire par l’algorithme de Seal-Stuberud [15], tel que :
x_ c (t) = Ac (t)xc (t) + Bc uc (t);
19
(21)
F. Rotella, I.Zambettakis
Commande par platitude
1
0.9
commandes plates
0.8
0.7
γ (t)
1
0.6
0.5
γ (t)
2
0.4
0.3
0
20
40
60
80
100
120
140
160
180
200
temps (s)
Fig. 8 –Commandes e¤ectives (avec saturations) utilisées.
où Ac (t); Bc et Hc (t) confèrent à (21) la structure d’une forme canonique commandable, soit :
Ac (t)
Ac,ij (t)
Bc
= Tc (t)A(t)Tc 1 (t) + T_c (t)Tc 1 (t) = [Ac,ij (t)]i;j=1;:::;m ;
8 2
3
0
1
>
>
> 6
7
>
..
..
>
6
7
>
.
.
>
6
7 de taille i
>
i ; pour i = j;
>
>
4
5
0
1
>
>
<
2
3
=
0
0
>
>
>
> 6 .
.. 7
>
>
6 .
>
. 7
> 6 .
7 de taille i
j ; pour i 6= j;
>
>
4
>
0
0 5
>
:
= Hc 1 (t)Tc (t)B(t) = [Bc,i ]i=1;:::;m ;
Bc,i
= matrice nulle de
2
1
6
6 0 ... ...
Hc (t) = 6
6 . .
.. ...
4 ..
0
0
taille (
3
m) sauf en sa composante ( i ; i) qui vaut 1,
.. 7
. 7
7 ; de taille m
7
5
1
où i , est le i-ième indice de commandabilité,
de t: En partitionnant :
xc (t) =
i
Xm
i=1
i
m;
= n; et les
représentent des coe¢ cients qui dépendent
2T
mT
x1T
c (t) xc (t) : : : xc (t)
T
où chaque xic (t) est un vecteur de dimension i , on obtient ainsi que les premières composantes des xic (t)
permettent d’obtenir toutes les autres variables et les commandes. En notant zi (t) cette composante particulière,
20
F. Rotella, I.Zambettakis
Commande par platitude
que l’on appelle parfois sortie de Brunovski du système, une sortie plate du système linéaire (20) est donc donnée
par :
2
3
z1 (t)
6 z2 (t) 7
6
7
z(t) = 6
7:
..
4
5
.
zm (t)
D’après la forme canonique commandable, on obtient, en notant uc;i (t) la i-ième composante de uc (t) et
ai;j;k (t) le k-ième coe¢ cient de la dernière ligne de Ac,ij (t) :
0
1
j 1
m
X
X
( i)
(k)
@
ai;j;k (t)zj (t)A :
uc;i (t) = zi (t) +
j=1
k=0
Comme u(t) = Hc 1 uc (t); le principe de commande par platitude conduit à poser, pour i = 1 à m :
1
0
j 1
j 1
m
X
X
X
( )
(k)
(k)
(k)
@
uc;i (t) = zd;ii (t) +
zi (t) +
ai;j;k (t)zj (t)A ;
i;k zd;i (t)
j=1
k=0
k=0
pour obtenir, si les constantes i;k sont bien choisies, un suivi asymptotique de la trajectoire désirée zd (t) sur
la sortie plate. Comme les dérivées des composantes de la sortie plate constituent les composantes de xc (t) et
que xc (t) = Tc (t)x(t); la commande u(t) se met …nalement sous la forme :
u(t) = K(p)zd (t)
(t)x(t);
où K(p) est une matrice polynomiale en l’opérateur de dérivation p et (t) une matrice dont les coe¢ cients
dépendent de t: Cette commande est donc décomposable en deux termes : le premier ne dépend que de la
trajectoire désirée et le deuxième qui correspond à un retour d’état non stationnaire.
Exemple 9 Considérons le moteur à courant continu à excitation séparée dont le ‡ux statorique
cours du temps et décrit par les relations suivantes [T3] :
(t) varie au
dI(t)
+ RI(t) = V (t) Ke (t) (t);
dt
d (t)
J
+ f (t) = Km (t)I(t);
dt
L
où I(t) et V (t) sont le courant et la tension rotorique et (t) la vitesse de rotation du rotor. L; R; Ke ; J;
f et Km représentent respectivement les valeurs constantes de l’inductance et de la résistance d’induit, de la
constante de force électro-motrice, de l’inertie et du frottement ramenés au rotor et de la constante de couple
électro-mécanique. En prenant comme commande V (t); ce système est commandable si et seulement si (t) est
toujours non nul et borné. En supposant ceci toujours vrai et (t) su¢ samment dérivable, la forme canonique
commandable s’écrit :
0
1
0
x_ c (t) =
xc (t) +
V (t);
(t)
(t)
1
0
1
0 (t)
=
1 (t)
=
• (t) (t) _ 2 (t) Km Ke
+
2 (t)
JL
_ (t) f
R
+ + :
(t) J
L
21
2
(t) +
Rf
R _ (t)
+
;
JL
J (t)
F. Rotella, I.Zambettakis
Commande par platitude
On peut prendre comme sortie plate z(t), première composante du vecteur xc (t) et la relation :
V (t) = z•(t) +
_
1 (t)z(t)
+
0 (t)z(t);
conduit à la commande par platitude permettant de suivre la trajectoire désirée zd (t) :
V (t) = z•d (t) + k1 (z_d (t) z(t))
_
+ k0 (zd (t)
= z•d (t) + k1 z_d (t) + k0 zd (t) [( 1 (t)
z(t)) + 1 (t)z(t)
_ + 0 (t)z(t);
k1 )z(t)
_ + ( 0 (t) k0 )z(t)] ;
où k1 et k0 sont deux constantes positives. On peut remarquer qu’ici la sortie plate est reliée aux autres variables
par :
JL (t)
z(t) =
;
Km (t)
ce qui permet d’imposer facilement la trajectoire désirée, non sur la sortie plate mais plutôt sur la vitesse du
rotor, variable possédant une meilleure interprétation physique que la sortie plate que nous avons choisie dans
un premier temps.
6
Mise en évidence de la platitude
L’un des points délicats de la commande par platitude réside dans la mise en évidence de la propriété de
platitude et la proposition d’une sortie plate. Bien que dans la plupart des cas pratiques, la sortie plate soit
physiquement interprétable, il est des cas où il n’est pas évident d’avoir l’intuition d’une sortie plate candidate.
Pour des systèmes décrits par des équations di¤érentielles non linéaires, nous allons voir quelques critères
permettant de conclure sur ce point et des procédures permettant de guider relativement au choix d’une sortie
plate.
6.1
Platitude et commandabilité
Bien que de façon générale un système non linéaire puisse être commandable sans être plat, nous venons
de voir que ces deux notions sont équivalentes dans le cas linéaire. Dans certains cas cette relation forte est
encore conservée. Cependant, dans le cas des systèmes non linéaires, il y a lieu de distinguer la notion de
commandabilité de la notion d’accessibilité, et seule cette dernière nous concernera ici. Notons l’opération
@ (x)
@ (x)
(x)
(x) et, dans le modèle non linéaire (17),
entre deux vecteurs non linéaires [ (x); (x)] =
@x
@x
gm (x) où les gi (x) sont des vecteurs. Sans entrer dans les détails que l’on peut trouver
g(x) = g1 (x)
dans [5, 14] mentionnons brièvement que le modèle (17) est accessible en x si l’ensemble engendré par les
combinaisons linéaires des vecteurs :
gj (x); [Xk ; [Xk
1; [
; [X1 ; gj (x)]]]] ; j = 1; : : : ; m; k = 1; 2; : : :
où Xi 2 ff (x); g1 (x); : : : ; gm (x)g, est de dimension n en x:
Pour un système dont la dimension de l’état est n; lorsque le nombre de commandes est n 1 (on dit
également que la codimension est de 1), platitude et accessibilité coïncident. Dans ce cas, l’élimination de la
commande du modèle (17) conduit à la relation scalaire :
n
X
_i
i (x)x
(x) = F (x; x)
_ = 0:
(22)
i=1
Si un des coe¢ cients
i (x)
est nul, e.g. le k-ième, alors, pour toute trajectoire telle
une relation de la forme :
xk = '(xi ; x_ i ; i = 1; : : : ; k
22
1; k + 1; : : : ; n)
@F
(t) 6= 0; on peut extraire
@xk
F. Rotella, I.Zambettakis
Commande par platitude
qui indique que l’état dont on a enlevé la k-ième composante est une sortie plate de ce système. Par contre,
lorsque tous les coe¢ cients i (x) sont non nuls, on peut faire un changement de variable sur une composante
de l’état pour se ramener au cas précédent et mettre ainsi en évidence une sortie plate. On va ainsi chercher un
changement de variable sur une des composantes de l’état :
xj = (x1 ; : : : ; xj
1 ; z; xj+1 ; : : : ; xn );
construit de façon à éliminer au moins un des coe¢ cients i (x) dans (22). Comme :
2
3
n
X
@
@
x_ j = 4
z_ +
x_ i 5
@z
@xi
i=1;i6=j
on obtient la nouvelle relation :
j (x)
n
X
@
z_ +
@z
i (x)
+
j (x)
i=1;i6=j
où x représente le nouvel état obtenu en remplaçant xj par
@
=
@xk
@
x_ i
@xi
(x) = 0;
: En choisissant
k
tel que :
;
(23)
j
on élimine x_ k de cette relation ce qui permet de se ramener au cas précédent. Une sortie plate est alors donnée
par :
(x1 ; : : : ; xj 1 ; z; xj+1 ; : : : ; xk 1 ; xk+1 ; : : : ; xn ):
(24)
Le raisonnement que nous venons de décrire est résumé dans la procédure suivante. Auparavant on peut
remarquer que la relation (23) représente une équation di¤érentielle à résoudre de la forme :
@
= '(x1 ; : : : ; xj
@xk
1;
; xj+1 ; : : : ; xk ; : : : ; xn );
dont la solution (en choisissant la plus simple) sera de la forme :
xj =
= (x1 ; : : : ; xj
1 ; xj+1 ; : : : ; xn )
+ (z);
où (z) est une fonction arbitraire de la nouvelle composante de l’état z: On obtient ainsi simplement la
transformation inverse z = 1 (xj
): La di¢ culté étant de choisir les indices j et k conduisant aux expressions
pour ' et les plus simples possibles.
Procédure 4 Construction d’une sortie plate en codimension 1.
1. Construction de la relation (22)
2. Si
k (x)
est identiquement nul alors une sortie plate est (x1 ; : : : ; xk
1 ; xk+1 ; : : : ; xn ):
3. Si tous les i (x) sont non nuls, on choisit deux indices j et k pour construire l’équation di¤ érentielle (23)
la plus simple possible à résoudre.
4. La résolution de (23) (analytique ou numérique) fournit :
– le changement de variable : xj = (x1 ; : : : ; xj 1 ; xj+1 ; : : : ; xn ) + (z);
– une sortie plate est (24).
23
F. Rotella, I.Zambettakis
Commande par platitude
Pour les systèmes sans dérive, c’est-à-dire de la forme :
x(t)
_
= g(x(t))u(t);
accessibilité et commandabilité coïncident. Lorsque la di¤érence entre la dimension de l’état x(t) et la dimension
de la commande u(t) est 2, platitude et commandabilité sont équivalentes.
Par contre lorsque la dimension de u(t) est 2, c’est-à-dire que l’équation d’état est de la forme :
x(t)
_
= g1 (x)u1 (t) + g2 (x)u2 (t);
où u1 (t) et u2 (t) sont des commandes scalaires, on dispose du critère suivant. Si on construit la suite de
distributions :
1; k+1 = spanf k ; [ k ; k ]g;
0 = spanfg1 (x); g2 (x)g; pour k
alors la platitude est équivalente à :
pour k = 0 à n
2; rang
k
= k + 2:
Exemple 10 (Voiture (suite)) Pour simpli…er les expressions, posons dans le modèle cinématique de la voiV (t)
ture la nouvelle commande v(t) =
tan '(t): Comme ce modèle correspond aux trois cas que nous venons
l
de mentionner, il nous permettra de les illustrer.
Le premier critère demande l’élimination des commandes, ce qui donne :
x(t)
_ sin (t)
y(t)
_ cos (t) = 0:
On en déduit rapidement qu’une sortie plate est constituée par (x(t); y(t)):
L’application du deuxième critère demande l’application du critère de commandabilité, soit comme :
2
3
2 3
cos (t)
0
g1 (t) = 4 sin (t) 5 et g2 (t) = 4 0 5 ;
0
1
on obtient :
2
3
sin (t)
[g1 (t); g2 (t)] = 4 cos (t) 5 ;
0
soit rang (g1 (t); g2 (t); [g1 (t); g2 (t)]) = 3; ce qui indique la commandabilité donc la platitude.
En ce qui concerne le troisième critère, celui-ci donne 0 = spanfg1 ; g2 g soit rang 0 = 2 et suivant le
calcul précédent rang 1 = 3, qui con…rme la conclusion précédente.
Comme nous l’avons vu sur l’exemple précédent, les deux derniers critères ne fournissent pas de méthode
constructive pour mettre en évidence une sortie plate. Cependant, lorsque des considérations physiques ne
su¢ sent pas à suggérer une sortie plate candidate nous avons vu au cours des exemples précédents une procédure
qui conduisait à la construction des sorties plates. Après avoir éliminé les commandes, les variables candidates
à être sorties plates sont celles qui sont dérivées dans les relations algébriques donnant les autres variables. Il
s’agit d’une procédure heuristique car pour des systèmes complexes elle peut être mise en défaut.
Procédure 5 Procédure heuristique de construction d’une sortie plate.
1. Construire le modèle implicite obtenu en éliminant les commandes :
F (x(n) (t); : : : ; x(t);
_
x(t)) = 0:
24
(25)
F. Rotella, I.Zambettakis
Commande par platitude
(t)I(t) -
L
6
(t)U (t)
E
+
6
6
U (t)
R
C
I(t)
Fig. 9 –Convertisseur continu-continu.
2. Chercher à exprimer algébriquement certaines variables non dérivées en fonction d’autres variables et de
leur dérivées. De façon pratique, mettre d’un même côté des égalités issues des relations (25) tous les
termes où apparaissent des dérivées.
3. Reconnaître des expressions dérivées. Ces expressions dérivées sont candidates à être sorties plates. Rappelons qu’il en faut autant que de commandes.
4. Exprimer les variables d’état et les commandes à l’aides des sorties plates et de leur dérivées.
Exemple 11 On considère un convertisseur continu-continu de type “boost” ([T1]) commandé par le rapport
cyclique (t) entre les instants passants et non passants du thyristor de commande. Ce convertisseur peut être
décrit en valeurs moyennes par l’interaction de deux circuits électriques suivant le schéma de la …gure (9)
où R; L; C et E sont les valeurs constantes de la résistance, de l’inductance, de la capacité et de la tension
d’alimentation. Les variables U (t) et I(t) représentent les valeurs moyennes de la tension dans l’induit et du
courant dans l’inducteur. Ce schéma équivalent conduit aux équations de fonctionnement :
_
I(t)
=
U_ (t)
=
1
E
(t)U (t) + ;
L
C
1
1
(t)I(t) +
U (t);
C
RC
sur lesquelles nous allons appliquer la procédure de mise en évidence d’une sortie plate.
1. L’élimination de la variable de commande (t) entre ces deux équations conduit à la relation :
_ + CU (t)U_ (t) = EI(t)
LI(t)I(t)
U 2 (t)
:
R
2. On reconnaît dans le membre de gauche de cette relation la dérivée de la variable :
z(t) =
1
(LI 2 (t) + CU 2 (t));
2
qui est candidate à être sortie plate.
3. À partir de :
U 2 (t) = R(EI(t)
z(t));
_
on obtient la relation :
LI 2 (t) + RCEI(t)
qui lie algébriquement I(t) à z(t) et sa dérivée.
25
(2z(t) + RC z(t))
_
= 0;
(26)
F. Rotella, I.Zambettakis
Commande par platitude
4. On obtient donc, sans entrer dans le détail des calculs :
I(t) = f (z(t); z(t))
_
et U (t) = g(z(t); z(t));
_
soit (t) = h(z(t); z(t);
_
z•(t)): Ces trois relations con…rment z(t) en tant que sortie plate de ce système.
Dans le cas où nous n’aurions pas su détecter cette sortie plate on peut ici appliquer la procédure 4 puisque
nous avons un système de codimension 1. À partir de la relation (26) cherchons un changement de variables
I = (U; z) permettant d’éliminer la dérivée d’une des composantes de l’état. Il vient ainsi la nouvelle relation :
L
@ _
@
U+
z_
@U
@z
La procédure 4 indique que l’on choisit
+ CU U_ = L
@
@
z_ + L
+ CU
@z
@U
U_ = EI
U2
:
R
telle que :
@ 2
=
@U
2C
U;
L
C 2
U + (z) où (z) est une fonction arbitraire. Si on prend par exemple (z) = z; on obtient comme
soit 2 =
L
sortie plate :
C
z = I 2 + U 2;
L
qui est, à une constante près, celle que nous avions mise en évidence précédemment de façon un peu plus
intuitive.
6.2
Critère des variétés réglées
Il s’agit d’un critère permettant de mettre en évidence la non platitude d’un système basé sur une condition
nécessaire. Soit le système de dimension n à m commandes :
x(t)
_
= f (x(t); u(t))
dont l’élimination des commandes conduit à un système de n
alors on peut montrer [10] que :
m relations F (x; x)
_ = 0: Si ce système est plat,
9v 6= 0; 8( ; ); F ( ; ) = 0; 8a 2 R; F ( ; + av) = 0:
Ce résultat traduit le fait que la sous-variété F ( ; ) = 0 est réglée relativement au deuxième paramètre. En
en prenant la négation, on obtient que si cette sous-variété n’est pas réglée alors le système n’est pas plat. Cela
s’énonce sous la forme du critère :
Théorème 2 Si :
(8( ; ); F ( ; ) = 0; 8a 2 R; F ( ; + av) = 0) =)
= 0;
alors le système n’est pas plat.
Exemple 12 Soit le système schématisé dans la …gure (10) décrivant un pendule inversé de longueur l et de
masse m, sur un chariot mobile de masse M actionné par un e¤ ort f (t) qui sera notre variable de commande.
En notant x(t) l’abscisse de l’extrêmité de la tige, le mouvement de cet ensemble peut être décrit par les équations
simpli…ées suivantes :
2
(M + m)•
x(t) + ml cos (t)•(t) ml sin (t) _ (t) = f (t);
7 •
l (t) + cos (t)•
x(t) g sin (t) = 0:
3
26
F. Rotella, I.Zambettakis
Commande par platitude
e
(m)
(t)
y
6
l
b
- x
q
(M )
-
q
f (t)
Fig. 10 –Pendule inversé.
7
La deuxième relation est celle qui correspond à l’élimination de la commande f (t) et fournit l 2 +cos 1
3
g sin = 0: L’application de la condition nécessaire consiste à chercher 1 et 2 non simultanément nuls tels
que :
7
l( + a 2 ) + cos ( 1 + a 1 ) g sin = 0;
3 2
7
soit l 2 + 1 cos = 0: Comme cette égalité doit être vraie pour tout ; on doit donc avoir nécessairement,
3
1 = 0 et 2 = 0: En conclusion, le critère des variétés réglées indique que ce système n’est pas plat.
Par contre si on étudie le modèle linéarisé de ce système autour de = 0; celui-ci s’écrit :
(M + m)•
x(t) + ml•(t) = f (t);
7 •
l (t) + x
• g (t) = 0:
3
L’application du critère des variétés réglées conduit à la relation :
7
l
|3
2
+ 1
{z
0
7
g + a( l
3
}
2
+
1)
= 0;
7
qui est véri…ée pour tout a lorsque 1 =
l 2 : On ne peut donc conclure à la non platitude du linéarisé.
3
Nous verrons que cette caractéristique est propre aux systèmes linéaires. Par contre si l’on écrit l’équation d’état
associée au modèle linéarisé :
2
3
2
3
0
0 1
0
0
6 0 0
6 7kl 7
mkgl
0 7
_
7 X(t) + 6 3 7 f (t);
X(t)
=6
4 0 0
4 0 5
0
1 5
0 0 k(M + m) 0
k
_ (t) T et k =
où X(t) = x(t) x(t)
_
(t)
que ce système est commandable donc plat.
3
(7M +4m)l .
L’application du critère de commandabilité montre
Cet exemple nous a en outre permis de nous rendre compte que la platitude (ainsi que la non platitude
d’ailleurs) ne se conserve pas nécessairement par linéarisation autour d’un point d’équilibre.
Certains cas particuliers de systèmes admettent une formulation plus simple :
27
F. Rotella, I.Zambettakis
Commande par platitude
– dans le cas où F (x; x)
_ est une forme linéaire relativement à x;
_ ce critère se réduit à :
si 8 ; F ( ; ) = 0 implique
= 0;
alors le système n’est pas plat ;
– pour les modèles (17) linéaires en la commande u(t) de dimension m où l’on peut supposer sans être
restrictif que rang g(x) = m: L’élimination dela commande peut être e¤ectué en utilisant l’expression
suivante :
1 T
g (x)(x_ f (x));
u(t) = g T (x)g(x)
ce qui nous conduit au modèle implicite
(x; x)
_ = E(x)(x_
f (x));avec E(x) = det g T (x)g(x) In
T
g(x) Com(g T (x)g(x)) g T (x) où Com(.) désigne la matrice des cofacteurs. Comme E(x) est une matrice
de rang n m elle se décompose sous la forme E(x) = T T (x)T (x) où T (x) est une matrice ((n m) n)
de rang n m et on obtient F (x; x)
_ = T (x)(x_ f (x)): Le critère des variétés réglées se réduit alors dans
ce cas à :
si 8 ; T ( ) = 0 =) = 0;
alors le système n’est pas plat. Cette dernière remarque permet de s’apercevoir immédiatement que dans
le cas des systèmes linéaires ce critère ne permet pas de conclure. En e¤et, nous avons dans ce cas une
matrice T ( ) indépendante de :
6.3
Condition nécessaire et su¢ sante de platitude.
Nous venons de voir que la propriété de non platitude ne se conserve pas par linéarisation, et cela est
également vrai de la propriété de platitude comme le montre l’exemple de la voiture pour laquelle le linéarisé
autour de = 0 n’est pas commandable.
Développant une procédure qu’il a proposé dans le cas des systèmes linéaires, Lévine a établi en 2004 une
condition nécessaire et su¢ sante de platitude [8, 9]. Cette condition, outre le fait de simpli…er celles précédemment proposées par d’autres auteurs, a l’avantage de conduire à une procédure constructive de détermination
d’une sortie plate d’un système plat. Nous allons simplement en indiquer les principes car elle implique cependant des calculs qui ne peuvent souvent être menées qu’en faisant appel à un logiciel de calcul formel. Dans la
description de cette procédure nous utiliserons les notations suivantes :
– Mn;m [p] : ensemble des matrices de taille (n m) dont les composantes sont des polynômes en p (opérateur
de dérivation temporelle) dont les coe¢ cients sont des fonctions du temps t;
– Un [p] : ensemble des matrices unimodulaires de Mn;n [p]; c’est-à-dire les matrices de Mn;n [p] qui ont une
inverse dans Mn;n [p];
– In et 0n;m : la matrice identité d’ordre n et la matrice nulle de taille (n m):
La structure de Mn;m [p] implique que toute matrice M de cet ensemble admet une décomposition de Smith
de la forme :
U M V = S;
(27)
où U 2 Un [p]; V 2 Um [p] et S est une matrice est une matrice de Mn;m [p] dont tous les coe¢ cients non nuls sont
sur la diagonale principale. En notant r = min(n; m) et si (p); pour i = 1 à r; les composantes de la diagonale
principale de S; ceux-ci sont des éléments de M1;1 [p] et tels que si (p) divise sj (p) sans reste, pour 1 i j r:
Bien que U et V ne soient pas uniques, comme dans toute décomposition de Smith d’une matrice polynomiale
[T3], nous noterons seulement U 2 G-Smith(M ) et V 2 D-Smith(M ); S l’est et nous noterons S = Smith(M ):
Nous dirons que M de Mn;m [p] est hyper-régulière si si (p) = 1; pour i = 1 à r:
Procédure 6 de CNS de platitude.
1. On construit la forme implicite non linéaire F (x; x)
_ = 0 où dim x = n et rang
28
@F
=r=n
@ x_
m:
F. Rotella, I.Zambettakis
Commande par platitude
2. Par linéarisation autour d’une trajectoire x(t) véri…ant F (x; x)
_ = 0; on construit la matrice de Mr;n [p] :
DF =
@F
@F
+
p:
@x
@ x_
3. À partir de la forme de Smith de DF; on obtient V 2 D-Smith(DF ): Si DF n’est pas hyper-régulière, la
procédure s’arrête et le système n’est pas plat. Si DF est hyper-régulière on passe à l’étape suivante.
4. Soit :
V^ = V
0r;m
Im
;
et Q = G-Smith(V^ ):
^ = Im 0m;r Q: Une condition nécessaire et su¢ sante de platitude est qu’il existe une matrice
5. Soit Q
^
unimodulaire Z de taille (m m) telle que Z Qdx
soit intégrable.
6. Si la condition précédente est véri…ée, la relation entre l’état x et la sortie plate z est donnée par :
dx = V^ W dz;
(28)
où W est une matrice unimodulaire arbitraire de taille (m m): En d’autre termes, une sortie plate est
donnée par l’intégration et l’inversion de cette dernière relation.
Remarques :
– la condition d’hyper-régularité du linéarisé tangent signi…e que celui-ci doit être commandable donc plat.
On obtient là encore une condition de non platitude : si le linéarisé tangent autour d’une trajectoire
véri…ant le système n’est pas plat, alors le système n’est pas plat ;
– le point le plus délicat de cette procédure concerne l’existence de la matrice Z permettant l’intégrabilité
des formes di¤érentielles [T4] du point 5 ;
– l’obtention des formes de Smith est habituellemment réalisée à l’aide de multiplications à droite et à
gauche par des matrices unimodulaires qui réalisent les opérations élémentaires de permutation de lignes
(ou de colonnes), de multiplication d’une ligne (ou d’une colonne) par un coe¢ cient non nul et d’addition
de lignes (ou de colonnes) [12] ;
– dans le point 6, la détermination
R de l’expression de la sortie plate n’est pas nécessaire, on peut en e¤et
se contenter de la relation x = V^ W dz qui permet d’obtenir la commande en fonction de la sortie plate.
De plus, comme la matrice V^ est connue dès le point 4, on peut tenter l’intégration de la relation (28) dès
cette étape ;
– pour les modèles (17) linéaires en la commande u(t) de dimension m; nous avons vu que le modèle implicite
s’écrit T (x)(x_ f (x)) = 0 où T (x) est une matrice ((n m) n) de rang n m: On obtient alors :
DF =
grad(T (x)f (x)) + T (x)p:
Exemple 13 (Voiture (suite)) Illustrons la procédure précédente sur l’exemple de la voiture.
1. Comme nous l’avons vu précédemment, l’élimination des commandes, conduit au modèle implicite :
x(t)
_ sin (t)
y(t)
_ cos (t) = 0;
avec n = 3 et r = 1; soit m = 2:
2. On obtient la matrice DF de M1;3 [p] :
DF =
(sin (t))p
(cos (t))p
29
x(t)
_ cos (t) + y(t)
_ sin (t)
:
F. Rotella, I.Zambettakis
Commande par platitude
3. Notons E = x(t)
_ cos (t) + y(t)
_ sin (t): Avec :
2
0
6 0
V =4
1
E
la décomposition de Smith de DF s’écrit DF
4. Soit :
V^ = V
01;2
I2
dont la décomposition de Smith s’écrit :
^=
5. Soit Q
1
V =
I2
01;2
0
6
1
Q=4
(sin (t))p
E
02;1
Q; on obtient :
qui est trivialement intégrable.
0
2
qui indique l’hyper-régularité de DF:
3
1
7
0
5;
(sin (t))p
E
0
6
1
=4
(cos (t))p
E
2
I2
0
2
QV^ =
avec :
3
1
7
0
5;
(sin (t))p
E
0
1
(cos (t))p
E
;
1
0
(cos (t))p
E
3
dx
^ 4 dy 5 =
Q
d
dy
dx
3
0
0 7:
5
1
;
6. Le système est donc plat et, avec W = I2 ; la relation entre l’état et la sortie plate z est donnée par :
3
2
3
2
3 2
dz2
0
1
dx
7 dz1
6
7
1
0
dz1
4 dy 5 = 6
=4
4
5 dz
5:
(sin )p
(cos )p(dz1 ) (sin )p(dz2 )
(cos )p
2
d
E
E
E
Les deux premières composantes fournissent les deux sorties plates z1 = y et z2 = x et la dernière
composante donne la relation :
(cos )p(dy)
où on reconnait d((cos )py
(sin )p(dx) = ((cos )px + (sin )px)d ;
(sin )px) = 0 soit :
(cos )y_
(sin )x_ = C;
où C est une constante arbitraire. La résolution de cette relation donne l’expression de
en fonction des
y_
sorties plates. Par exemple pour C = 0; on retrouve le modèle implicite de départ et l’on obtient tan =
x_
pour x_ 6= 0 et = (mod ) pour x_ = 0 et y_ 6= 0: On retrouve bien sûr la singularité que l’on avait déjà
2
détectée sur cet exemple.
30
F. Rotella, I.Zambettakis
7
Commande par platitude
Systèmes non plats
Bien que la propriété de platitude soit trés intéressante pour la commande des systèmes, il s’avère que certains
modèles de systèmes ne la possèdent pas. En e¤et, dans certains cas d’où sont bien sûr exclus les modèles non
commandables, des composantes de l’état ne sont pas accessibles ou exprimables à l’aide d’un nombre, donné par
le nombre des commandes, de variables et de leurs dérivées. Malgré cela des techniques particulières peuvent être
utilisées pour appliquer les concepts de platitude [2] parmi lesquelles on peut citer brièvement la simpli…cation de
modèle ou la commande haute fréquence. Sans entrer dans les détails, la première méthode consiste à remplacer
certains termes du modèle initial par des termes approchés où sont négligées l’in‡uence de certaines variables
pour conduire à un modèle plat. La deuxième méthode consiste à augmenter arti…ciellement le nombre de
commandes en décomposant chaque commande sous la forme :
t
u(t) = u1 (t) + u2 (t) cos ;
"
où " est un petit paramètre (0 < "
1) et u1 (t) et u2 (t); deux nouvelles commandes qui apparaissent découplées
lorsque l’on construit le modèle en valeurs moyennes correspondant. Bien souvent ce modèle moyen possède la
propriété de platitude relativement à ces nouvelles commandes. On trouvera dans [2] des exemples pratiques
d’application de ces techniques.
Dans cette section nous allons plutôt nous intéresser à un ensemble important de modèles non plats : les
modèles liouvilliens. Ceux-ci sont caratérisés par le fait que l’état et la commande du système peuvent s’exprimer
à l’aide d’un ensemble de variables, de leurs dérivées, ce qui procure le caractère plat, et d’intégrations ne faisant
intervenir que ces variables et leurs dérivées, ce qui confére le caractère liouvillien. Par abus de langage nous
continuerons appeler cet ensemble de variable qui permet d’exprimer toutes les autres à travers dérivations et
quadratures une sortie plate en imposant seulement que la dimension du sous-espace de l’état exprimable sans
intégration soit le plus grand possible. Nous allons étudier deux exemples particuliers de systèmes liouvilliens
qui illustrent le fait que l’on peut encore appliquer les principes de commande par platitude. En particulier, nous
verrons que cela conduit à, d’abord générer une trajectoire, puis appliquer la deuxième structure de commande
que nous avons détaillée précédemment.
Le premier de ces exemples caractérise les systèmes où intervient une consommation de ressource ce qui
conduit fréquemment à des modèles liouvilliens. Le deuxième décrira le modèle à deux commandes permettant
de décrire simplement le mouvement d’un navire soumis à la houle.
Exemple 14 (Mouvement vertical d’une fusée) Moyennant quelques hypothèses simpli…catrices, le mouvement vertical d’une fusée peut être décrit par les relations suivantes :
•
M (t)h(t)
=
M (t)
M_ (t) =
u(t);
g0 R2
+ Ku(t);
(R + h(t))2
où M (t) représente la masse de la fusée, h(t) l’altitude de la fusée (orientée vers le haut) et u(t) le débit
massique de consommation de comburant (toujours positif ) qui sera notre commande. R et g0 représentent le
rayon terrestre et la constante de gravitation universelle, et K le gain de conversion entre poussée e¤ ective et
débit.
L’élimination de la commande conduit à la relation implicite :
_
• + K M (t) =
h(t)
M (t)
g0 R2
;
(R + h(t))2
qui met en évidence le caractère non plat de ce modèle, con…rmé par exemple en appliquant le critère des variétés
réglées. Comme cette relation implicite peut également être écrite :
d log M (t)
=
dt
1 •
g0 R2
h(t) +
;
K
(R + h(t))2
31
F. Rotella, I.Zambettakis
Commande par platitude
on en déduit que si l’on prend h(t) comme sortie plate on obtient log M (t); donc M (t); par intégration, ce qui
permet d’obtenir u(t): Ce raisonnement indique le caractère liouvillien de ce modèle.
On obtient …nalement les expressions suivantes :
0
13
2
Zt
2
g
R
1
0
_
_
@h(t)
h(0)
+
d A5 ;
M (t) = M (0) exp 4
K
(R + h( ))2
0
u(t)
=
M (t)
K
g0 R2
• +
h(t)
(R + h(t))2
;
qui permettent, à partir d’une trajectoire désirée hd (t) dé…nie de t = 0 à t = T; de générer Md (t) et la commande
nominale ud (t) nécessaire.
Autour de (hd (t); Md (t); ud (t)); la linéarisation conduit au modèle non stationnaire :
2
3 2
32
3 2
3
h(t)
h(t)
0
1
0
0
d 4 _
_
5 + 4 c(t) 5 u(t);
h(t) 5 = 4 a(t) 0 b(t) 5 4 h(t)
dt
0
0
0
1
M (t)
M (t)
où :
a(t) =
2g0 R2
; b(t) =
(R + hd (t))3
1
Md (t)
• d (t) +
h
g0 R2
(R + hd (t))2
et c(t) =
K
;
Md (t)
qui permet l’application de la deuxième structure de commande (Fig. 6).
Exemple 15 (Navire dans la houle) Les relations suivantes [11] permettent de décrire le comportement d’un
navire piloté dans une houle :
x(t)
_
= cos (t)u1 (t) sin (t)z(t);
y(t)
_
= sin (t)u1 (t) + cos (t)z(t);
_ (t) = u2 (t);
z(t)
_
=
u1 (t)u2 (t)
z(t);
où (x(t); y(t)) et (t) donnent la postion et l’orientation du navire relativement à un référentiel …xe. Les commandes u1 (t) et u2 (t) représentent respectivement les vitesses axiales et de rotation instantanées du navire
(liées aux commandes e¤ ectives de poussée et de gouverne), z(t) désigne la vitesse relative latérale du navire
relativement à la houle et ( ; ) sont deux constantes positives.
L’élimination des commandes :
u1 (t) = cos (t)x(t)
_ + sin (t)y(t);
_
u2 (t) = _ (t);
dans ce modèle conduit au modèle implicite :
z(t)
z(t)
_
= y(t)
_ cos (t) x(t)
_ sin (t);
_ (t)(cos (t)x(t)
=
_ + sin (t)y(t))
_
z(t):
Le critère des variétés réglées indique que ce modèle n’est pas plat. Pour en montrer le caractère liouvillien, on
écrit le modèle implicite sous la forme :
z(t)
z(t)
_ + z(t)
=
soit :
x(t)
_
y(t)
_
=
1
_ (t)
sin (t)
_ (t) cos (t)
_ (t) sin (t)
_ (t) cos (t)
32
cos (t)
_ (t) sin (t)
cos (t)
sin (t)
x(t)
_
y(t)
_
;
z(t)
z(t)
_ + z(t)
;
F. Rotella, I.Zambettakis
Commande par platitude
qui indique que l’on peut prendre comme sortie plate (z(t); (t)) et obtenir (x(t); y(t)) par intégrations. On
obtient …nalement :
z(t)
_ + z(t)
u1 (t) =
; u2 (t) = _ (t):
_ (t)
La linéarisation autour de la trajectoire désirée (zd (t); d (t)), correspondant à la trajectoire (xd (t); yd (t);
u1d (t); u2d (t)); conduit au modèle non stationnaire :
2
3 2
32
3 2
3
x(t)
0 0 a(t)
sin d (t)
x(t)
cos d (t)
0
7 6
76
7 6
7
d 6
0
u1 (t)
6 y(t) 7 = 6 0 0 b(t) cos d (t) 7 6 y(t) 7 + 6 sin d (t)
7
;
4
5
4
5
4
5
4
5
(t)
0 0
0
0
(t)
0
1
u2 (t)
dt
z(t)
0 0
0
z(t)
u2d (t)
u1d (t)
où :
a(t) =
u1d (t) sin
d (t)
zd (t) cos
d (t);
b(t) = u1d (t) cos
d (t)
zd (t) sin
d (t);
qui permet l’application de la deuxième structure de commande (Fig. 6).
8
Conclusion
Nous avons décrit les diverses procédures à mettre en œuvre pour concevoir une commande par platitude
et nous avons indiqué que l’utilisation de la deuxième structure de commande pouvait être appliquée dans de
nombreuses situations pratiques et même dans certains cas de systèmes non plats. La première étape d’une
commande par platitude consiste à générer la trajectoire désirée sur les sorties plates, variables permettant
de paramétrer toutes les autres variables du sytème, donc les commandes. On obtient ainsi une commande
nominale à appliquer au système pour obtenir le comportement désiré. Autour de ces trajectoires désirées, la
deuxième étape consiste à concevoir une commande en boucle fermée permettant une poursuite asymptotique
de la trajectoire désirée. Cet objectif peut être réalisé via une des deux structures de commandes que nous avons
indiquées au cours du texte, la deuxième ayant l’avantage de ramener la conception de la commande à celle
d’un système linéaire non stationnaire.
Nous ne l’avons pas détaillé mais la commande par platitude peut être utilisée avec pro…t dans le cas de
modèles plus complexes que ceux abordés ici comme ceux faisant intervenir des équations où des retards interviennent ou ceux décrits par des équations di¤érentielles aux dérivées partielles. Les principes sont encore
utilisables et ont conduit ici aussi à des applications pratiques. Les applications de cette commande sont nombreuses. On trouvera dans [4] un panorama relativement complet des premières applications décrites dans la
littérature. En…n, toutes les méthodes et procédures que nous avons vues sont directement transposables au cas
des modèles discrets permettant de décrire des systèmes commandés par un algorithme de commande numérique.
Références
[1] Fliess, M., Lévine, J., Martin, P., Rouchon, P., “Sur les systèmes non linéaires di¤érentiellement plats”,
C. R. Acad. Sciences, vol. 315, série 1, pp. 619–24, 1992.
[2] Fliess, M., Lévine, J., Martin, P., Rouchon, P., “Flatness and defect of nonlinear systems : introductory
theory and examples”, Int. J. Control, vol. 61, n. 6, pp. 1327–61, 1995.
[3] Fliess, M., Lévine, J., Martin, P., Rouchon, P., “A Lie-Bäcklund approach to equivalence and ‡atness of
nonlinear systems”, IEEE Trans. Autom. Control, vol. 44, pp.922–937, 1999.
[4] Fliess, M., "Variations sur la notion de contrôlabilité", Journée Soc. Math. France, 17 juin 2000.
[5] Isidori, A., Nonlinear control systems, Springer, 1989.
[6] Khalil, W., Dombre, E., Modelisation, identi…cation et commande des robots, Hermès, 1999.
33
F. Rotella, I.Zambettakis
Commande par platitude
[7] Laumond, J.P., dir., La robotique mobile, Traité IC2, Hermès, 2001.
[8] Lévine, J., Nguyen, D.V., “Flat output characterization for linear systems using polynomial matrices”,
Systems & Control Letters, n. 48, pp. 69–75, 2003.
[9] Lévine, J., “On the necessary and su¢ cient conditions for di¤erential ‡atness”, Proc. 6th IFAC Symposium
on nonlinear control systems, NOLCOS’04, pp. 463–468, Stuttgart, 2004.
[10] Martin, P., Rouchon, P., “Systèmes plats de dimension …nie”, chap. 3, pp. 114–167, “Systèmes plats
de dimension in…nie”, chap. 4, pp. 170–190, “Catalogue de systèmes plats”, chap. 5, pp. 191–216, in
Commandes non linéaires, Lamnabhi-Lagarrigue, F., Rouchon, P., dir., Traité IC2, Hermès - Lavoisier,
2003.
[11] Pettersen, K. Y., Nijmeijer, H., Underactuated ship tracking control : theory and experiments, Int. J.
Control, vol. 74, n. 14, pp. 1435–46, 2001.
[12] Rotella, F., Borne, P., Théorie et pratique du calcul matriciel, Technip, 1995.
[13] Rudolph, J., Flatness based control of distributed parameter systems, Shaker Verlag, 2003.
[14] Sastry, S., Nonlinear systems, analysis, stability and control, Springer, 1999.
[15] Seal, C.E., Stubberud, A.R., Canonical forms for multiple-input time-variable systems, IEEE Trans. Aut.
Control, vol. AC-14, pp. 704–707, 1969.
[16] Shafai, B., Carroll, R.L., “Minimal-order observer designs for linear time-varying multivariable systems”,
IEEE Trans. Aut. Control, vol. AC-31, pp. 757–761, 1986.
[17] Sira-Ramirez, H., Agrawal, S.K., Di¤ erentially ‡at systems, Marcel Dekker, 2004.
Dans les Techniques de l’Ingénieur :
[T1] Caillot, A., Systèmes d’alimentation pour équipements électroniques, tome Électronique, E-3620, 1998.
[T2] Liégeois, A., Modélisation et commande des robots manipulateurs, tome Informatique Industrielle, S-7730,
2000.
[T3] Rotella, F., Systèmes linéaires non stationnaires, tome Informatique Industrielle, S-7035, 2003.
[T4] Yebbou, J., Variétés di¤érentielles, tome Mathématiques pour l’Ingénieur, AF-95, 2000.
34