Commande par retour d'état

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En automatique, la commande par retour d'état est un moyen de modifier le comportement en boucle fermée d'un système dynamique donné par une représentation d'état. Cette approche suppose l'état connu. Quand ce n'est pas le cas, on peut utiliser un observateur d'état de manière à reconstruire l'état à partir des mesures disponibles. Une finalité de la commande par retour d'état peut être de minimiser (ou maximiser) un indice de performance (Commande optimale, Commande LQ). Ce peut être aussi d'obtenir un système en boucle fermée dont les pôles, c'est-à-dire les valeurs propres de la matrice d'état, soient placés de manière appropriée. Ces pôles, en effet, déterminent le comportement du système, mais uniquement si celui-ci est monovariable : dans le cas multivariable, il est indispensable de considérer également les valeurs propres[1]. Dans la plupart des cas, la commande doit réaliser d'autres fonctions essentielles pour tout asservissement, telles que suivi par la sortie d'un signal de référence, et rejet de perturbations. Il est alors nécessaire de faire en premier lieu les augmentations d'état nécessaires.

Historique[modifier | modifier le code]

La notion de commande par retour d'état remonte aux travaux de Pontryagin (en Russie) et de Bellman (aux États-Unis) sur la commande optimale. La commande en temps minimal sous contraintes sur la commande, notamment (commande « Bang-Bang »), est une commande (non linéaire) à retour d'état. Les commandes linéaires à retour d'état, dont il est question dans cet article, sont apparues avec les travaux de Kalman, d'une part sur la théorie algébrique des systèmes d'état[2], d'autre part sur la commande « linéaire quadratique »[3]. Cet auteur a montré peu après que les commandes linéaires quadratiques jouissent de propriétés très utiles[4], qui ont pu ensuite être exprimées en termes de marge de gain et de marge de phase garanties, tout d'abord dans le cas monovariable[5], puis dans le cas multivariable[6],[7]. Entre-temps se développaient des approches algébriques ayant pour finalité le placement de pôles[8]. Il a été montré par Wonham[9] qu'il existe une commande à retour d'état plaçant les pôles du système bouclé à des valeurs arbitraires du plan complexe (vérifiant toutefois une condition de symétrie par rapport à l'axe réel) si, et seulement si le système est commandable. Cette commande n'est unique que pour un système monovariable. Dans le cas multivariable, il existe une infinité de solutions qui peuvent avoir des propriétés de robustesse très différentes[1]. Davison[10], ainsi que Francis et Wonham[11], considérant qu'un asservissement n'a pas pour unique finalité la stabilisation ou l'augmentation de la rapidité d'un système, mais aussi et surtout le rôle d'assurer le rejet des perturbations et le suivi par la sortie d'un signal de référence en présence d'une erreur de modèle, ont proposé, de manière semble-t-il indépendante, et dans un formalisme différent mais au fond équivalent, de réaliser une augmentation d'état appelée « principe du modèle interne » (à ne pas confondre avec la commande à modèle interne (en)[12]). Dans le cas de perturbations et d'un signal de référence constants, ce Principe revient à rajouter une action intégrale à la commande[13]. Ce dernier type de commande linéaire (qui devient alors instationnaire) est très utilisé pour l'asservissement des systèmes non linéaires grâce à la technique des « gains préprogrammés »[14],[15].

Commande à retour d'état « élémentaire »[modifier | modifier le code]

La commande par retour d'état est une méthode employée en asservissement pour placer les pôles du système en boucle fermée dans le cas où toutes les variables d'état sont mesurées.

Formalisme[modifier | modifier le code]

Système en boucle ouverte

Soit le système d'état

\dot{x}=A x +B u
y = C x+D u~

 x\left( t\right) \in \mathbb{R}^{n} : colonne qui représente les n variables d'état
 u\left( t\right) \in \mathbb{R}^{m} : colonne qui représente les m commandes
 y\left( t\right) \in \mathbb{R}^{p} : colonne qui représente les p sorties

 A \in \mathbb{R}^{n\times n}  : matrice d'état
 B \in \mathbb{R}^{n\times m}  : matrice de commande
 C \in \mathbb{R}^{p\times n}  : matrice d'observation
 D \in \mathbb{R}^{p\times m}  : matrice d'action directe.

Les pôles du système sont les racines de l'équation :

\left|sI_{n}-A\right|=0.

Puisque les systèmes sont à coefficients réels, l'ensemble \Lambda est un ensemble symétrique du plan complexe, (symétrie étant par rapport à l'axe réel).

Système avec retour d'état

Une commande par retour d'état est de la forme

u=v-K x~

v est une variable auxiliaire, calculée à partir du signal de référence.

Les équations du système bouclé sont alors

\dot{x}=(A-B.K)x+ B v
y = (C-D.K)x + D v.~

Théorèmes fondamentaux[modifier | modifier le code]

Les pôles du système bouclé sont les racines de |sI_n-A+B.K|. Les conditions suivantes sont équivalentes[16] :

(i) Pour tout ensemble symétrique \Lambda _{c} de n nombres complexes, il existe une commande à retour d'état pour laquelle les pôles du système bouclé sont les éléments de \Lambda _{c}.

(ii) Le système est commandable.

De plus, la matrice de gain K réalisant ce « placement de pôles » est unique si, et seulement si n=1[1].

D'autre part, les conditions suivantes sont équivalentes[16] :

(iii) Il existe un ensemble symétrique \Lambda _{c} de n nombres complexes inclus dans le demi-plan gauche (ouvert) et une commande à retour d'état pour laquelle les pôles du système bouclé sont les éléments de \Lambda _{c}.

(iv) Le système est stabilisable.

Exemple[modifier | modifier le code]

On considère un système décrit de la façon suivante :

\dot{x}=\begin{pmatrix}0 & 1 \\ 5 & -4\end{pmatrix}x+\begin{pmatrix} 0 \\ 1\end{pmatrix}u.

Ce système est commandable et a pour pôles s=1 et s=-5. On suppose que l'on souhaite que le système asservi ait ses pôles en p=-1 et p=-5. Le polynôme caractéristique est alors

f\left( s\right) =\left( s+1\right) \left( s+5\right) =s^{2}+6s+5.

Déterminons maintenant K=\begin{pmatrix} k_1 & k_2\end{pmatrix} de telle sorte que

\left\vert sI_{2}-A+B.K\right\vert =f\left( s\right).

Sur cet exemple, mais aussi dans le cas général[1], on obtient un système linéaire dont les inconnues sont les coefficients de la matrice de gains K. On a en effet

\left|sI_{2}-A+B.K\right|=\left\vert \begin{array}{cc}
s & -1 \\ 
-5+k_{1} & s+4+k_{2}
\end{array}
\right\vert =s^{2}+s\left( k_{2}+4\right) +k_{1}-5).

et il reste à égaler ce polynôme avec f(s). La résolution donne

K=\begin{pmatrix}10 & 2\end{pmatrix}

et la commande à retour d'état s'écrit donc

u=v-10x_{1}-2x_{2}=v-10y-5\dot{y}.

Il s'agit d'une commande de type proportionnel et dérivé (PD). Cet exemple montre donc que la commande à retour d'état « élémentaire », telle que celle qui a fait l'objet de cette section, souffre d'une grave lacune. On aurait en effet souhaité obtenir une commande de type PID. Nous verrons dans la section suivante comment pallier cette carence.

Remarque[modifier | modifier le code]

Comme on l'a déjà mentionné, dans le cas des systèmes à plusieurs entrées le problème du placement de pôles n'admet pas une solution K unique, et certaines de ces solutions peuvent être mauvaises, car non robustes, tandis que d'autres sont bonnes. Une possibilité est de déterminer une solution issue de la théorie de la commande linéaire quadratique[1].

Commande à retour d'état et bouclage intégral[modifier | modifier le code]

Nous supposons maintenant que le système est régi par les équations

\left\{ \begin{array}{c}\dot{x}=Ax+Bu+d_{1} \\ y=Cx+d_{2}\end{array}\right.

d_{1} et d_{2} sont des perturbations constantes, inconnues. On désigne par r un signal de référence constant, et le but de l'asservissement est de faire tendre vers 0 l'erreur de consigne e=y-r, malgré les perturbations, et même lorsque les coefficients des matrices A, B et C sont entachés d'une erreur à condition que celle-ci soit suffisamment petite.

Les conventions pour les dimensions sont les mêmes que précédemment. On supposera sans perte de généralité que les matrices B et C sont de rang m et p, respectivement.

Le système ci-dessus n'a pas une représentation d'état linéaire du fait des signaux d_{1}, d_{2} et r. Une manière de les éliminer consiste à dériver les deux équations, et à choisir comme nouvel état et comme nouvelle entrée[13],[1].

x_{a}=\left( \begin{array}{c}\dot{x} \\ e\end{array}\right)
u_{a}=\dot{u}

On obtient alors en effet le système d'état

\left\{ \begin{array}{c}\dot{x}_{a}=A_{a}x_{a}+B_{a}u_{a} \\ e=C_{a}x_{a}\end{array}\right.

\text{avec}\quad A_{a}=\left( \begin{array}{cc}
A & 0 \\ C & 0\end{array}\right) ,\quad B_{a}=\left( 
\begin{array}{c}B \\ 0\end{array}\right)\quad\text{et}\quad C_a=\left( \begin{array}{cc}0&1\end{array}\right).

On montre alors facilement, grâce au test de Popov-Belevich-Hautus que

(1) \left( A_{a},B_{a}\right) est commandable (resp. stabilisable) si, et seulement si (i) \left( A,B\right) est commandable (resp. stabilisable), (ii) m\geq p et (iii) s=0 n'est pas un zéro invariant du système \left\{ C,A,B\right\}.

(2) \left( C_{a},A_{a}\right) est observable (resp. détectable) si, et seulement si \left( C,A\right) est observable (resp. détectable).

L'interprétation de la condition (i) est évidente. La condition (ii) signifie que le nombre de degrés de liberté de la commande doit être suffisant pour réaliser les objectifs de l'asservissement. La condition (iii), enfin, signifie qu'on ne doit pas imposer à la sortie d'un système dérivateur de suivre un signal de référence.

Supposons \left( A_{a},B_{a}\right) commandable. On peut alors choisir un ensemble symétrique \Lambda_{c} de n+m valeurs propres dans le demi-plan gauche et déterminer une matrice de gains K_{a} telle que le spectre de A_{a}-B_{a}K_{a} coïncide avec \Lambda_{c}. La commande u_{a}=-K_{a}x_{a} réalise alors le placement de pôles. D'après la définition de u_{a} et de x_{a} on a, en posant K_{a}=\left[ 
\begin{array}{cc}K_{p} & K_{i}\end{array}\right]K_{p} et K_{i} ont m lignes et, respectivement, n et p colonnes:

\dot{u} =-K_{p}\dot{x}-K_{i}e.

Puisque les matrices de gains K_{p} et K_{i} sont à coefficients constants, on obtient, à une constante additive près,

u\left( t\right) =-K_{p}x\left( t\right) -K_{i}\int e\left( t\right)~\mathrm dt.

Exemple[modifier | modifier le code]

Reprenons l'exemple précédent. On a

A_{a}=\left( \begin{array}{ccc}
0 & 1 & 0 \\ 
5 & -4 & 0 \\ 
1 & 0 & 0
\end{array}\right) ,\quad B_{a}=\left( \begin{array}{c}
0 \\ 
1 \\ 
0
\end{array}
\right),
C_{a}=\left( 
\begin{array}{ccc}
0 & 0 & 1
\end{array}
\right).

La commande u_{a} qui place les pôles en -1, -1, -5 est donnée par u_{a}=-K_{a}x_{a} avec K_{a}=\left( \begin{array}{ccc}16 & 3 & 5\end{array}\right). On en déduit (à une constante additive près)

u=-\left( 16y+3\dot{y}+5\int e\left( t\right)~\mathrm dt\right)

et on a donc un régulateur PID dont la fonction de transfert \mathcal{K}\left( s\right) peut être mise sous la forme standard

\mathcal{K}\left( s\right) =k_{p}\left( 1+\frac{1}{T_{i}s}+T_{d}s\right)

avec k_{p}=16 et (en supposant que l'unité de temps choisie est la seconde) T_{i}=3,2 s et T_{d}=0,19 s. Les pôles de la boucle fermée n'ont pas été choisis au hasard: ceux du système en boucle ouverte sont 1, -5 et 0 (en prenant en compte le pôle de l'intégrateur: on considère ici toutes les valeurs propres de la matrice A_{a}). On a commencé par prendre le symétrique par rapport à l'axe imaginaire des « pôles instables » du système : ici le pôle valant 1. Puis on a décalé vers la gauche (à partie imaginaire constante) les pôles trop « lents » (ayant un module ou un coefficient d'amortissement trop petits): ici le pôle à l'origine. Cette méthode, qui a une justification théorique, permet d'assurer une bonne robustesse du système bouclé[1].

Commande à gains préprogrammés[modifier | modifier le code]

Supposons maintenant que les matrices A, B et C dépendent d'un paramètre \theta, lui-même variable en fonction du temps (θ : t↦θ(t)). Dans ce cas, la matrice K_{a} telle que définie ci-dessus dépend elle-même de \theta, par conséquent la commande u définie (à une constante additive près) par

u\left( t\right) =\int u_{a}\left( t\right)~\mathrm dt

ne s'exprime plus comme indiqué plus haut. Seule l'expression

u\left( t\right) =\int K_{p}\left( \theta\left( t\right) \right) \dot{x}\left( t\right)~\mathrm dt+\int
K_{i}\left( \theta\left( t\right) \right) e\left( t\right)~\mathrm dt

(à une constante additive près) est correcte, et de nombreux exemples montrent l'avantage de cette formulation sur celle qui précède. Cette remarque, et sa généralisation au cas où un observateur est également utilisé pour reconstruire d'état, ont donné lieu à de nombreuses publications[14],[15].

Notes et références[modifier | modifier le code]

Notes[modifier | modifier le code]

Références[modifier | modifier le code]

  • (en) Brian D. O. Anderson et John B. Moore, Linear Optimal Control, Prentice-Hall,‎ 1971, 413 p. (ISBN 0135368707)
  • H. Bourlès, « Sur la robustesse des régulateurs linéaires quadratiques multivariables, optimaux pour une fonctionnelle de coût quadratique », C.R. Acad. Sc. Paris, série I, vol. 252,‎ 1981, p. 971-974
  • H. Bourlès et O. L. Mercier, « La régulation de poursuite optimale quadratique multivariable des systèmes linéaires perturbés », RAIRO Automatique, vol. 16, no 4,‎ 1982, p. 297-310
  • (en) Henri Bourlès, Linear Systems, John Wiley & Sons,‎ 2010, 544 p. (ISBN 1848211627)
  • (en) E. J. Davison, « The Robust Control of a Servomechanism Problem for Linear Time-Invariant Multivariable Systems », IEEE Trans. on Automat. Control, vol. 21, no 1,‎ 1976, p. 25-34
  • (en) B. A. Francis et W. M. Wonham, « The internal model principle for linear multivariable regulators », Appl. Maths & Optim., vol. 2, no 2,‎ 1975, p. 170-194
  • (en) R. E. Kalman, « Contributions to the Theory of Optimal Control », Bol. Soc. Matem. Mex.,‎ 1960, p. 102-119
  • (en) R. E. Kalman, « When is a Linear Control System Optimal? », Trans. ASME, Ser.D: J. Basic Eng., vol. 86,‎ 1964, p. 1-10
  • (en) R. E. Kalman, « Mathematical description of linear systems », SIAM J. Control, série A, vol. 1(2),‎ 1963, p. 152-192
  • (en) C. E. Langenhop, « On the Stabilization of Linear Systems », Proc. Amer. Math. Soc., vol. 15, no 5,‎ 1964, p. 735-742
  • (en) D. J. Leith et W. E. Leithead, « Survey on gain-scheduling analysis&design », Internat. J. Control, vol. 73, no 11,‎ 2000, p. 1001-1025
  • (en) Manfred Morari et Evanghelos Zafiriou, Robust Process Control, Prentice-Hall,‎ 1989, 488 p. (ISBN 0137821530)
  • (en) W. J. Rugh et J. S. Shamma, « Research on gain scheduling », Automatica, vol. 36,‎ 2000, p. 1401-1425
  • (en) M. G. Safonov et M. Athans, « Gain and Phase Margin for Multiloop LQG Regulators », IEEE Trans. on Automat. Control, vol. 22, no 2,‎ 1977, p. 173-179
  • (en) W. M. Wonham, « On Pole Assignment in Multi-Input Controllable Linear Systems », IEEE Trans. on Automat. Control, vol. 12, no 6,‎ 1967, p. 660-665
  • (en) W. Murray Wonham, Linear multivariable control: a geometric approach, Springer,‎ 1985, 334 p. (ISBN 0387960716)

Voir aussi[modifier | modifier le code]

Autres ouvrages sur le sujet[modifier | modifier le code]

  • Henri Bourlès et Hervé Guillard, Commande des systèmes. Performance et robustesse, Ellipses,‎ 2012 (ISBN 9782729875350)
  • (en) Eduardo Sontag, Mathematical Control Theory: Deterministic Finite Dimensional Systems, New York, Springer,‎ 1998, 2e éd., relié (ISBN 978-0-387-98489-6, LCCN 98013182)

Articles connexes[modifier | modifier le code]