# Commande par retour d'état

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 vecteurs propres. 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

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, dans le sens où la valeur de la commande optimale obtenue dépend directement de ce dernier. 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, d'autre part sur la commande « linéaire quadratique ». Cet auteur a montré peu après que les commandes linéaires quadratiques jouissent de propriétés très utiles, 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, puis dans le cas multivariable$^,$. Entre-temps se développaient des approches algébriques ayant pour finalité le placement de pôles. Il a été montré par Wonham 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. Davison, ainsi que Francis et Wonham, 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)). Dans le cas de perturbations et d'un signal de référence constants, ce Principe revient à rajouter une action intégrale à la commande. 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 »$^,$.

## Commande à retour d'état « élémentaire »

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

Soit le système d'état
       ${\dot {x}}=Ax+Bu$
       $y=Cx+Du~$
$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).
Une commande par retour d'état est de la forme
    $u=v-Kx~$
où $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+Bv$
       $y=(C-D.K)x+Dv.~$

### Théorèmes fondamentaux

Les pôles du système bouclé sont les racines de $|sI_{n}-A+B.K|$. Les conditions suivantes sont équivalentes :
(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 $m=1$.
D'autre part, les conditions suivantes sont équivalentes :
(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

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$
    $y={\begin{pmatrix}1&0\end{pmatrix}}x$
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, 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

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.

## Commande à retour d'état et bouclage intégral

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.$
où $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$^,$.
       $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&I_{p}\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]$ où $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 {d} t$.

### Exemple

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 {d} t\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é.

## Commande à gains préprogrammés

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 {d} t$
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 {d} t+\int K_{i}\left(\theta \left(t\right)\right)e\left(t\right)~\mathrm {d} t$
(à 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 l'état, ont donné lieu à de nombreuses publications$^,$.