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