# Théorie du contrôle

En mathématiques et en sciences de l'ingénieur, la théorie du contrôle a généralement comme objet l'étude du comportement de systèmes dynamiques à partir de leur représentation mathématique, paramétrée par des entrées sur lesquelles on peut agir$^,$. Elle peut être vue comme une branche de l'analyse et de l'optimisation, notamment appliquée à l'automatique, et spécialisée dans l'élaboration de contrôleurs délivrant des lois de commande aux systèmes dynamiques, en boucle ouverte ou en boucle fermée$^,$. Elle inclut également la conception d'observateurs, utiles à l'estimation de quantités physiques qui ne sont pas directement mesurables$^,$$^,$.

## Le cadre classique

Classiquement, la théorie du contrôle s'intéresse à des systèmes entrées-sorties, c'est-à-dire à des systèmes capables de recevoir des signaux (en entrée) et de délivrer en retour d'autres signaux (en sortie). Ces systèmes entrées-sorties sont généralement des systèmes dynamiques, car ces derniers possèdent un état interne qui permet de modéliser une grande variété de comportements.
Cette section s'attache à décrire de manière générique les systèmes dynamiques entrées-sorties les plus étudiés en théorie du contrôle, et les problématiques usuellement associées à ces derniers.

### Introduction au cadre classique

On se place dans un ensemble, l'espace d'état ${\mathcal {X}}$ d'un système (avec généralement ${\mathcal {X}}\subseteq \mathbb {R} ^{n_{x}}$), sur lequel on définit une dynamique, c'est-à-dire une loi mathématiques qui depuis n'importe quel état initial $x_{0}\in {\mathcal {X}}$, fournit une trajectoire $(x(t))_{t\in \mathbb {T} }$ appartenant à l'espace d'état ${\mathcal {X}}$. Lorsque ${\mathcal {X}}$ est plongé dans un espace de dimension finie, les coordonnées de $x$ sont appelées variables d'état.
La trajectoire $(x(t))_{t\in \mathbb {T} }$ est fonction de l'état initial $x_{0}$, du temps $t\in \mathbb {T}$, et dépendante des valeurs de paramètres d'entrée :
* Le paramètre de contrôle, noté $u$, appelé également paramètre de commande, et qui prend ses valeurs à chaque instant dans un espace des contrôles ${\mathcal {U}}$ (avec généralement ${\mathcal {U}}\subseteq \mathbb {R} ^{n_{u}}$). En pratique, le paramètre de contrôle correspond généralement aux signaux appliqués au système par le biais d'actionneurs.
* Le paramètre d'entrée exogène, noté $w$, appelé également paramètre de perturbation, et qui prend ses valeurs à chaque instant dans ${\mathcal {W}}$ (avec généralement ${\mathcal {W}}\subseteq \mathbb {R} ^{n_{w}}$). Contrairement à l'entrée $u$ sur laquelle on peut agir, l'entrée $w$ est subie par le système. Elle correspond aux perturbations et aux consignes du système, et elle est rarement considérée dans la plupart des problèmes. Elle est mentionnée ici par souci d'exhaustivité.
Si le déroulement du temps est modélisé par un entier positif ($\mathbb {T} =\mathbb {N}$), le système est alors dit temps-discret (le temps ne prend que des valeurs entières). L'état du système $x$ ne dépend généralement que de l'état du système et des paramètres d'entrée à l'instant précédent. La dynamique du système est alors donnée par une suite définie par l'intermédiaire d'une fonction $f:{\mathcal {X}}\times {\mathcal {U}}\times {\mathcal {W}}\times \mathbb {T} \mapsto {\mathcal {X}}$ ; elle s'écrit :
$x(t+1)=f{\biglx(t),u(t),w(t),t{\bigr )}$
Si le déroulement du temps est modélisé par un réel positif ($\mathbb {T} =\mathbb {R} _{\geq 0}$), le système est alors dit temps-continu (le temps s'écoule continument). Dans ce cas, la dynamique du système est généralement donnée par une équation différentielle ordinaire ; elle s'écrit :
${\dot {x}}(t)=f{\biglx(t),u(t),w(t),t{\bigr )}$
Dans ce contexte ${\dot {x}}(t)$ est la dérivée temporelle de $x$ à l'instant $t$, et il peut alors être nécessaire de vérifier l'existence et l'unicité de la trajectoire $(x(t))_{t\in \mathbb {T} }$.
En pratique, on ne s'intéresse pas systématiquement à l'évolution de toutes les variables d'état, mais parfois uniquement à certaines quantités dites de sortie. Ces quantités d'intérêt, notées $y$, sont à valeur dans un espace des sorties ${\mathcal {Y}}$ (avec généralement ${\mathcal {Y}}\subseteq \mathbb {R} ^{n_{y}}$). Elles sont définies par l'intermédiaire d'une fonction $h:{\mathcal {X}}\times {\mathcal {U}}\times {\mathcal {W}}\times \mathbb {T} \mapsto {\mathcal {Y}}$ :
$y(t)=h{\biglx(t),u(t),w(t),t{\bigr )}$
Bien que cette distinction soit rarement faite en pratique, il est quelques fois nécessaire de distinguer les sorties mesurées $y_{m}$ des sorties contrôlées $y_{c}$ :
* Les sorties mesurées $y_{m}$ sont des quantités supposées connues en temps-réel, et qui peuvent notamment être utilisées pour synthétiser une commande $u$. En pratique, il s'agit généralement de données mesurées au sein du système par le biais de capteurs.
* Les sorties contrôlées $y_{c}$ sont les quantités dont on souhaite manipuler l'évolution par le biais de la commande $u$.
Ces deux types de sorties ne sont pas systématiquement confondus. On peut tout à fait vouloir contrôler une quantité qu'on sait mesurer (sortie contrôlée et mesurée) ou qu'on ne sait pas mesurer (sortie contrôlée et non mesurée). On peut également mesurer une quantité dont on ne cherche pas particulièrement à contrôler l'évolution (sortie mesurée et non contrôlée).

### Problématiques

La question principale de la théorie du contrôle est: quel est le comportement des sorties contrôlées $y_{c}$ en fonction de celui du contrôle $u$ ? Plus spécifiquement, en l'absence de perturbation, on peut lister plusieurs grandes problématiques:
* La commandabilité (ou contrôlabilité) : peut-on choisir $(u(t))_{t\in \mathbb {T} }$ de telle sorte que la trajectoire $(y_{c}(t))_{t\in \mathbb {T} }$ atteigne la sortie $y_{c}^{*}\in {\mathcal {Y}}$, une valeur cible choisie par ailleurs ? Elle est parfois confondue avec l'accessibilité, bien que les deux notions ne coïncident pas systématiquement.
* La stabilisabilité : peut-on choisir $(u(t))_{t\in \mathbb {T} }$ de telle sorte que la trajectoire $(y_{c}(t))_{t\in \mathbb {T} }$ se stabilise asymptotiquement en $y_{c}^{*}\in {\mathcal {Y}}$, une valeur de consigne choisie par ailleurs ? On parle alors de problème de régulation$^,$.
* La poursuite de trajectoire : peut-on choisir $(u(t))_{t\in \mathbb {T} }$ de telle sorte que la trajectoire $(y_{c}(t))_{t\in \mathbb {T} }$ se stabilise asymptotiquement le long d'une trajectoire de consigne $(y_{c}^{*}(t))_{t\in \mathbb {T} }$ choisie par ailleurs ? On parle alors de problème d'asservissement.
Le terme de régulation est généralement réservé à la synthèse de commandes possédant des mécanismes de compensation des perturbations$^,$$^,$. D'autres sources utilisent le terme d'asservissement sans imposer de stabilisation le long de la trajectoire de consigne$^,$. Il est à noter que les problèmes de régulation sont parfois vus comme des cas particuliers des problèmes d'asservissement, puisqu'il s'agit d'asservir le système le long d'une trajectoire de consigne constante.
Lorsque la loi de commande $u$ ne dépend pas des sorties mesurées $y_{m}$, on parle de contrôle en boucle ouverte. Inversement, lorsque la loi de commande $u$ est mise à jour en temps-réel en fonction des sorties mesurées $y_{m}$, on parle de contrôle en boucle fermée. Les problèmes de stabilisation (le long d'une consigne constante ou non) nécessitent le plus souvent un contrôle en boucle fermée.
Les lois de commande $u$ répondant aux problématiques listées ci-avant peuvent être choisies de manière à minimiser certains critères. On parle alors de problème de contrôle optimal. Par exemple, trouver une loi de commande permettant de passer d'une valeur de sortie $y_{c}^{1}$ à une valeur de sortie $y_{c}^{2}$ en un temps minimal est appelé un problème de contrôle temps-optimal.
Une autre problématique de la théorie du contrôle est celle de l'estimation des variables d'état : peut-on, à partir de la connaissance des entrées $(u(t))_{t\in \mathbb {T} }$ et des sorties mesurées $(y_{m}(t))_{t\in \mathbb {T} }$ du système, estimer une trajectoire $({\hat {x}}(t))_{t\in \mathbb {T} }$ proche de la trajectoire réelle de l'état du système $(x(t))_{t\in \mathbb {T} }$ ? On parle alors de problème d'observation$^,$.
Lorsque la loi de commande $u$ est elle-même synthétisée en fonction d'un état estimé ${\hat {x}}$, on dit que la loi de commande $u$ est basée-observateur$^,$$^,$.

### Représentation d'état
#### Cas général

En toute généralité, la théorie du contrôle s'intéresse donc aux systèmes dynamiques de la forme :
${\begin{cases}\delta x(t)&=&f{\biglx(t),u(t),w(t),t{\bigr )}\\y_{c}(t)&=&h_{c}{\biglx(t),u(t),w(t),t{\bigr )}\\y_{m}(t)&=&h_{m}{\biglx(t),u(t),w(t),t{\bigr )}\end{cases}}$
avec $x$ l'état interne du système, $u$ sa commande et $w$ ses autres entrées exogènes, $y_{c}$ sa sortie contrôlée et $y_{m}$ sa sortie mesurée. Ici, $\delta x(t)$ dénote ${\dot {x}}(t)$ ou $x(t+1)$ suivant le contexte temps-continu ou temps-discret. Les équations ci-dessus forment la représentation d'état du système. Il arrive que la sortie contrôlée $y_{c}$ soit remplacée par une variable $e$, définie comme l'écart entre $y_{c}$ et la consigne $y_{c}^{*}$. La consigne $y_{c}^{*}$ est alors intégrée aux entrées exogènes $w$. Le problème d'asservissement (ou de régulation) revient finalement à stabiliser $e$ en $0$, et la deuxième équation de la représentation d'état devient :
$e(t)=g{\biglx(t),u(t),w(t),t{\bigr )}$

#### Cas linéaire temps-invariant (LTI)

Lorsque les variables du systèmes sont de dimension finie et que les fonctions $f$, $g$ et $h_{m}$ introduites plus haut sont temps-invariant et linéaires en $x$, $u$ et $w$ (éventuellement après les avoir linéarisées autour d'un point de fonctionnement), on aboutit au système linéaire temps-invariant (LTI) suivant :
$\left({\begin{array}{c}\delta x(t)\\e(t)\\y_{m}(t)\end{array}}\right)=\left({\begin{array}{ccc}A&B_{w}&B_{u}\\C_{e}&D_{ew}&D_{eu}\\C_{y}&D_{yw}&D_{yu}\end{array}}\right)\left({\begin{array}{c}x(t)\\w(t)\\u(t)\end{array}}\right)$
Ce système LTI peut se ré-écrire dans le domaine fréquentiel, par le biais d'une transformation de Laplace dans le cas temps-continu et par le biais d'une transformation en Z dans le cas temps-discret, sous la forme :
$\left({\begin{array}{c}E(s)\\Y(s)\end{array}}\right)=\left({\begin{array}{cc}P_{ew}(s)&P_{eu}(s)\\P_{yw}(s)&P_{yu}(s)\end{array}}\right)\left({\begin{array}{c}W(s)\\U(s)\end{array}}\right)$
avec $W$, $U$, $E$ et $Y$ la représentation fréquentielle des signaux $w$, $u$, $e$ et $y_{m}$ respectivement, et les $P$ des matrices de transfert données par :
${\begin{cases}P_{ew}(s)&=&C_{e}(sI_{n_{x}}-A)^{-1}B_{w}+D_{ew}\\P_{eu}(s)&=&C_{e}(sI_{n_{x}}-A)^{-1}B_{u}+D_{eu}\\P_{yw}(s)&=&C_{y}(sI_{n_{x}}-A)^{-1}B_{w}+D_{yw}\\P_{yu}(s)&=&C_{y}(sI_{n_{x}}-A)^{-1}B_{u}+D_{yu}\end{cases}}$
Chaque élément de ces matrices est une fonction de transfert et contient des renseignements sur le comportement fréquentiel du système.

## Techniques de contrôle

Les problèmes de contrôle (par exemple de stabilisation ou de poursuite de trajectoire) sont traités en élaborant un contrôleur, c'est-à-dire un système capable de synthétiser la loi de commande $u$ qui sera délivrée au système. Comme évoqué précédemment ce contrôleur peut être conçu en boucle ouverte, ou en boucle fermée, bien que les problèmes de stabilisation (le long d'une trajectoire de consigne constante ou non) nécessitent souvent un contrôle en boucle fermée. Un contrôleur peut également posséder à la fois une composante en boucle ouverte et une en boucle fermée.

### Contrôle en boucle ouverte

En boucle ouverte, la commande est directement synthétisée en fonction du temps $t$, de la connaissance des composantes de la consigne $y_{c}^{*}$ dans $w$, et éventuellement de certaines composantes de perturbations dans $w$, lorsque ces dernières sont connues : par avance, ou en temps réel (par mesure directe ou estimation). La connaissance de la condition initiale du système $x_{0}$ est également généralement requise. Parmi les techniques de contrôle en boucle ouverte, on peut citer certaines lois de commande obtenues grâce au principe du maximum de Pontriaguine.

### Contrôle en boucle fermée

En boucle fermée, le contrôleur reçoit en temps-réel les sorties mesurées $y_{m}$ du système (qui font office d'entrées au contrôleur) afin de synthétiser la commande $u$ qui sera appliquée au système (et qui fait alors office de sortie mesurée du contrôleur). Cette commande est parfois appelée commande par retour de sortie, ou par retour d'état lorsque $y_{m}=x$, c'est-à-dire lorsque tout l'état du système est mesuré.
Lors de la conception de contrôleur en boucle fermée, il est également courant de n'utiliser que l'erreur $e$, définie comme l'écart entre la consigne $y_{c}^{*}$ et la sortie contrôlée $y_{c}$, comme entrée au contrôleur. C'est le cas notamment dans la conception de la majorité des régulateurs PID. L'erreur $e$ étant supposée mesurée dans ce cas, cela revient en fait à l'assimiler à la sortie mesurée du système $y_{m}$.

#### Contrôleur statique

On parle de contrôleur statique lorsque contrôleur ne possède pas de dynamique d'état interne$^,$. En général, la commande est alors directement synthétisée depuis la dernière valeur de $y_{m}$ mesurée :
$u(t)=h_{K}{\bigly_{m}(t),t{\bigr )}$
Une telle fonction $h_{K}$ peut notamment être déterminée à l'aide des équations de Hamilton-Jacobi-Bellman (HJB), qui dérivent des principes de la programmation dynamique.
Dans le cas d'un système linéaire temps-invariant (LTI), les contrôleurs statiques sont généralement conçus à partir d'une matrice de gains $K\in \mathbb {R} ^{n_{u}\times n_{y_{m}}}$ telle que :
$u(t)=Ky_{m}(t)$
On parle alors de contrôleur proportionnel. De telles matrices de gains, optimales par rapport à certains critères, sont notamment déterminées en commande LQ ainsi qu'en commande LQG.
Bien que les commandes par retour d'état puissent être des contrôles statiques, en pratique cet état est généralement reconstruit par le biais d'un observateur d'état, qui possède lui bel et bien une dynamique interne. Formellement, on est alors dans le cas d'un contrôle dynamique par retour de sortie. De manière générale, tout contrôle basé-observateur peut être considéré de facto comme un contrôle dynamique par retour de sortie.

#### Contrôleur dynamique

On parle de contrôleur dynamique lorsque le contrôleur est un système dynamique, et possède donc une dynamique d'état interne$^,$. En général, ce contrôleur est donné par une représentation d'état de la forme :
${\begin{cases}\delta x_{K}(t)&=&f_{K}{\biglx_{K}(t),y_{m}(t),t{\bigr )}\\u(t)&=&h_{K}{\biglx_{K}(t),y_{m}(t),t{\bigr )}\end{cases}}$
où $x_{K}\in \mathbb {R} ^{n_{x_{K}}}$ désigne l'état interne du contrôleur, distinct de l'état interne $x$ du système contrôlé. Une nouvelle fois $\delta x_{K}(t)$ dénote ${\dot {x}}_{K}(t)$ ou $x_{K}(t+1)$ suivant le contexte temps-continu ou temps-discret. Dans le cas d'un système linéaire temps-invariant (LTI), la conception dans le domaine fréquentiel d'un contrôleur dynamique linéaire revient à concevoir $K(s)$, une matrice de transfert reliant $Y$ à $U$ (la représentation fréquentielle des signaux $y_{m}$ et $u$ respectivement) :
$U(s)=K(s)Y(s)$
La matrice de transfert reliant $W$ à $E$ (la représentation fréquentielle des signaux $w$ et $e$ respectivement), est alors donnée par $F_{\ell }(P,K)(s)$, la transformation fractionnaire linéaire (Linear Fractional Transformation, ou LFT) inférieure par rapport à $K(s)$ de la matrice $P(s)$. Cette dernière matrice $P(s)$ étant la représentation d'état fréquentielle du système LTI initial (cf le cas LTI de la section représentation d'état, ci-avant).
$F_{\ell }(P,K)=P_{ew}+P_{eu}K{\biglI_{n_{y}}-P_{yu}K{\bigr )}^{-1}P_{yw}$
On parle de loop-shaping lorsqu'on chercher à imposer via $K(s)$ des propriétés particulières à cette matrice de transfert. On peut citer à ce titre les problèmes de synthèse de commandes H2 (${\mathcal {H}}_{2}$) ou de commandes H-infini (${\mathcal {H}}_{\infty }$).

## Sous-domaines notables
### Contrôle des systèmes multi-agents (SMA)

La théorie du contrôle peut être appliquée aux systèmes multi-agents. Dans ce cas, chaque agent est généralement considéré comme un système dynamique à part entière avec, pour le $i$-ème agent : ses propres entrées $u_{i}$, son propre état interne $x_{i}$ et ses propres sorties $y_{i}$. Lorsque les agents sont de nature identique, on peut supposer qu'ils partagent le même espace d'état ${\mathcal {X}}$, le même espace des contrôles ${\mathcal {U}}$, le même espace des sorties ${\mathcal {Y}}$, le même modèle de dynamique $f$ ainsi que la même fonction de sortie $h$. On a alors pour chaque agent :
${\begin{cases}\delta x_{i}(t)&=&f{\biglx_{i}(t),u_{i}(t),t{\bigr )}\\y_{i}(t)&=&h{\biglx_{i}(t),u_{i}(t),t{\bigr )}\end{cases}}$
Dans le cadre d'un protocole de contrôle distribué, il est admis que les agents communiquent entre eux par le biais d'un réseau de communication, généralement modélisé par un graphe orienté $G=(V,E)$, alors appelé graphe de communication. Dans ce graphe, chaque nœud $i\in V$ représente un agent, et chaque arc $(j,i)\in E$ représente un canal de communication des sorties $y_{j}$ du $j$-ème agent vers les entrées $u_{i}$ du $i$-ème agent. La loi de commande $u_{i}$ du $i$-ème agent ne peut alors être synthétisée qu'à partir de sa propre sortie $y_{i}$, ainsi que des sorties des agents ${\mathcal {N}}^{-}(i)=\{j_{1},\dots ,j_{p}\}$ pour lesquels il existe un arc de la forme $(j,i)\in E$. Cette synthèse peut, par exemple, s'effectuer par l'intermédiaire d'une fonction $g_{i}:{\mathcal {Y}}^{p+1}\times \mathbb {T} \mapsto {\mathcal {U}}$ :
$u_{i}(t)=g_{i}{\bigly_{i}(t),y_{j_{1}}(t),\dots ,y_{j_{p}}(t),t{\bigr )}$
De nouvelles questions propres au caractère collectif des systèmes multi-agents s'ajoutent alors aux problématiques habituelles du contrôle, notamment concernant l'auto-organisation de l'ensemble des agents en formation, la stabilisation autour de valeurs de consensus, l’évitement de collisions, l'éventuelle mise-à-jour de la topologie du graphe de communication, etc$^,$. On utilise parfois des notions de jeu différentiel pour étudier ce type de système.

### Contrôle des équations aux dérivées partielles (EDP)

Si l'espace d'état ${\mathcal {X}}$ est un espace fonctionnel, alors à chaque instant, l'état $x$ est une fonction d'un paramètre $s\in \Omega \subseteq \mathbb {R} ^{n_{s}}$. On notera $x(t,s)\in \mathbb {R} ^{n_{x}}$ par simplicité, avec à chaque instant $x(t,\cdot ):\Omega \mapsto \mathbb {R} ^{n_{x}}$ un élément de ${\mathcal {X}}$. La fonction $f$ de la représentation d'état du cadre classique joue alors le rôle d'un opérateur, et cette représentation d'état peut devenir un système d'équations aux dérivées partielles$^,$.
Considérons par exemple l'équation de la chaleur le long d'une barre à une dimension. La distribution de chaleur $x(t,\cdot )$ à un instant $t$ est fournie sur le segment $\Omega =[0,L]$ et est à valeurs dans $\mathbb {R}$ (soit $n_{x}=1$). La dynamique de cette distribution lorsque l'on contrôle la température aux bords $\partial \Omega =\{0,L\}$ est fournie pour tout $t\in \mathbb {R} _{>0}$ par :
${\begin{cases}\partial _{t}x(t,s)=\partial _{ss}x(t,s)&\forall s\in ]0,L[\\x(t,s)=u_{s}(t)&\forall s\in \{0,L\}\end{cases}}$
La condition initiale du système est alors donnée par $x(0,s)=x_{0}(s)$ pour tout $s\in [0,L]$ et la commande s'applique par le biais des contraintes aux bords $u_{0}$ et $u_{L}$. Étant donné une condition initiale $x_{0}$, on peut alors, par exemple, se demander quelles sont les distributions de chaleur $x(T,\cdot )$ commandables à un instant $T$.

### Contrôle stochastique

Il est également possible d'appliquer la théorie du contrôle aux processus stochastiques. Dans ce cas, l'état $X_{t}$ est à chaque instant une variable aléatoire. La dynamique temps-continu de $X_{t}$ est alors donnée par le processus d'Itô suivant, décrit ici sous la forme d'une équation différentielle stochastique (EDS) :
$dX_{t}=\mu {\biglX_{t},u(t){\bigr )}\,dt+\sigma {\biglX_{t},u(t){\bigr )}\,dB_{t}$
où $B_{t}$ représente un mouvement brownien. Dans ce genre de cadre, on cherche généralement un contrôle $u$ de façon à maximiser l'espérance d'un critère fonction de $X_{t}$.

## Exemples d'application

* Stabiliser à la verticale un pendule inversé.
* Estimer le niveau de charge d'une batterie lithium-ion.
* Intercepter un missile balistique par un missile antibalistique.
* Piloter un essaim de drones.
* Maintenir l'orbite géostationnaire d'un satellite de télécommunications.
* Assurer la régularité de la mesure du temps par différents types d'horloges$^,$.
* Mitiger la propagation des fake news sur les réseaux sociaux$^,$$^,$.
* Réguler le nombre de malades lors d'une pandémie.
* Modéliser et prévenir les crises d'épilepsie.
* Maintenir le bon fonctionnement des réseaux de distributions d'eau, de gaz, d'électricité.
* Piloter la transition écologique d'un système économique.
* Gérer le portefeuille d'un fonds d'investissement.