La commande prédictive (MPC) prédit l'action d'une commande actuelle lors des étapes suivantes, sélectionne une séquence de commandes qui optimise le suivi et l'effort tout en respectant les contraintes, applique uniquement la première commande, puis effectue une nouvelle mesure et un nouveau calcul. Cette boucle à horizon glissant est précieuse lorsque les entrées sont limitées, les variables d'état ont des bornes de sécurité, les entrées interagissent ou lorsque la courbure et le délai futurs sont critiques. Elle est utilisée dans des applications aussi diverses que les usines de traitement, les véhicules, la robotique et les systèmes énergétiques.

La MPC ne remplace pas systématiquement la PID. Un optimiseur prédictif présentant une estimation d'état tardive, un modèle erroné, un problème irréalisable ou un délai dépassé ne devient pas sûr du simple fait que ses contraintes mathématiques semblent complètes. De nombreuses architectures performantes conservent des boucles de courant/vitesse PID rapides sous la MPC pour la coordination de trajectoires, d'énergie, thermiques ou multivariables. Consultez le Guide d'introduction à ROS 2 pour connaître les limites d'exécution et le Guide d'introduction à Visual SLAM pour les hypothèses de synchronisation et de localisation qui alimentent un contrôleur de robot mobile.

Conclusion pratique

  • Construisez l'horizon N à partir de l'état x et de l'entrée u, et intégrez les contraintes d'entrée, de fréquence d'entrée, d'état et de sécurité dans l'optimisation plutôt que de tronquer une commande non contrainte a posteriori.

  • Spécifiez le comportement en cas de retard, d'erreur numérique ou d'infaisabilité du solveur avant le déploiement. Les délais, les solutions de repli et l'arrêt indépendant font partie du contrôleur.

  • Commencez par le modèle le plus simple permettant de prédire l'échelle de temps pertinente. Un modèle plus grand peut aggraver le temps d'exécution, les erreurs d'identification et la maintenance sans améliorer les décisions. - Ajuster l'horizon et les pondérations en fonction des priorités opérationnelles explicites : marge de sécurité, suivi de trajectoire, énergie, usure, confort et calcul, et non en augmentant aveuglément la pondération du suivi de trajectoire.

Intuition : décider de freiner avant le virage

Un simple contrôleur à rétroaction peut faire tourner un véhicule après avoir détecté une erreur latérale. Le MPC peut prendre en compte simultanément le virage à venir, la vitesse, l'angle de braquage, les limites des pneus, l'accélération et la distance de sécurité par rapport aux obstacles. Il évalue les séquences de braquage et d'accélération possibles, en choisit une qui reste dans la zone admissible, exécute uniquement le premier mouvement, puis abandonne l'ancienne prédiction lorsqu'une nouvelle mesure est disponible. Le MPC n'est donc pas devin. Il s'agit d'une commande à rétroaction qui teste de manière répétée des hypothèses à court terme sur l'avenir.

Flux de signaux et horizon fuyant

Diagram 1 · Use the button to switch views
MPC : référence, modèle, contraintes et optimisation de l'état estimé ; Appliquez le premier mouvement et observez à nouveau.
La référence, le modèle, les contraintes et l'état estimé sont traités séparément par l'optimiseur. Le chemin en pointillés renvoie de nouvelles observations pour la résolution suivante. Open figure en taille réelle

Diagramme : Duskcoil, conceptuel plutôt que mesuré. Une trajectoire prédite est une candidate basée sur un modèle et doit être mise à jour par observation après l'application d'une action.

## Formulation MPC linéaire minimale Pour le modèle linéaire discret
x_{k+1}=Ax_k+Bu_k+Ew_k,\qquad y_k=Cx_k
x est l'état, u l'entrée, w la perturbation et y la sortie. Sur un horizon de prédiction N (voir référence r), un coût quadratique commun est :
J=\sum_{i=0}^{N-1}\left(\lVert x_{k+i}-x_{ref,k+i}\rVert_Q^2+\lVert u_{k+i}\rVert_R^2+\lVert\Delta u_{k+i}\rVert_S^2\right)+\lVert x_{k+N}-x_{ref,k+N}\rVert_P^2
où \Delta u_k=u_k-u_{k-1} et Q,R,S,P expriment l’importance du suivi d’état, de l’amplitude de la commande, des changements brusques et du comportement terminal. Il s’agit de priorités d’ingénierie sous forme mathématique. Pénaliser uniquement l’erreur latérale, par exemple, peut engendrer une direction brutale inacceptable pour les passagers, les pneus ou un actionneur. La différence essentielle avec un régulateur non contraint réside dans l’ensemble des valeurs admissibles explicites :
u_{min}\le u_{k+i}\le u_{max},\quad \Delta u_{min}\le\Delta u_{k+i}\le\Delta u_{max},\quad x_{min}\le x_{k+i}\le x_{max}
Les bornes peuvent représenter la direction, le courant, la température, l’angle d’articulation, l’état de la batterie, la pression ou le dégagement d’obstacle. Les contraintes peuvent être conflictuelles. Il est impératif de définir une limite de collision ou matérielle inviolable ; d’utiliser une marge non négative \epsilon\ge0 uniquement pour les contraintes délibérément relaxables, et de la pénaliser, par exemple. \rho\lVert\epsilon\rVert^2 . Notez quand une marge de tolérance a été utilisée : une contrainte souple est un compromis déclaré, et non la preuve que sa violation est sans conséquence. ## Estimation, délai et inadéquation du modèle Le MPC prédit à partir de x_k , mais cet état est généralement une estimation par fusion de capteurs. Pour un robot mobile utilisant le SLAM visuel, la latence de localisation, les sauts de relocalisation et les images incohérentes altèrent l'état initial de chaque optimisation ; voir [Introduction au SLAM visuel](/fr/blog/posts/robotics-visual-slam.html). Résoudre un problème parfait avec un ancien état et une nouvelle référence donne une commande physiquement tardive. L'inadéquation inclut le frottement, la charge utile, le vent, le glissement des pneus, la variation de la capacité thermique et la flexion non modélisée. Les réponses incluent l'augmentation de l'état perturbé ou une action intégrale, les mises à jour de paramètres en ligne, plusieurs modèles, des marges MPC robustes/tubes et une boucle interne stabilisée rapide. Aucune ne remplace le comportement d'arrêt indépendant lorsque l'inadéquation est hors de l'enveloppe de conception. ## Réglage de l'horizon et des pondérations Choisissez la période d'échantillonnage T_s et l'horizon N de sorte que NT_s couvre le délai pertinent, la distance d'arrêt, le transitoire dominant et la courbure de la route, sans toutefois dépasser ce seuil afin d'éviter que le temps d'exécution et l'erreur de modélisation à long terme ne deviennent prépondérants. Un horizon de contrôle plus court permet de maintenir les entrées ultérieures constantes et de réduire le nombre de variables de décision. Procédez au réglage dans l'ordre suivant : fixez les unités et les limites de sécurité strictes ; choisissez les pondérations de suivi Q pour la tâche opérationnelle ; augmentez R et S pour gérer l'énergie, l'usure et la régularité ; puis mesurez le temps de résolution dans le pire des cas et l'impossibilité de résoudre le problème en présence de bruit, de charge, de latence et de perturbations. Testez un horizon court N et un horizon long avant de sélectionner le point de fonctionnement. Augmenter la valeur de Q jusqu'à ce que le système « paraisse rapide » peut contraindre l'optimiseur à rester aux limites des contraintes strictes, réduisant ainsi la marge de manœuvre même lorsque les contraintes sont satisfaites. | Observation | Cause plausible | À examiner en premier | Action typique | | --- | --- | --- | --- | | Fin de courbe | Horizon trop court ; délai d'état | Trajectoire prédite vs. mesurée, horodatages | Ajuster l'horizon, le plan de vitesse, la gestion des délais | | Commandes irrégulières | Valeur faible de S ; estimation bruitée | \Delta u et trace du capteur | Augmenter la pénalité de déplacement ; améliorer l'estimateur/filtre | | Marges/limites fréquentes | Inadéquation ; aucune marge | Marges, contraintes actives, perturbation | Ajouter une marge, un modèle de perturbation, une référence plus souple | | Aucune solution | Contraintes conflictuelles | État du solveur et ensemble actif | Définir une politique d'infaisabilité ; assouplir uniquement les limites autorisées | | Non-respect des délais | Problème trop vaste/variable | Temps de résolution dans le pire des cas | Réduire le modèle/l'horizon ; configurer le solveur | ## Relation avec le PID et la sécurité Une boucle MPC peut fonctionner à une fréquence de 10 à 100 Hz pour fournir des références de vitesse, d'attitude ou de trajectoire, tandis que les contrôleurs de moteur ou les boucles PID (`ros2_control`) calculent le courant, la vitesse ou la position à une fréquence plus élevée. Le MPC doit connaître les capacités réelles de la boucle interne : saturation, délai, temporisation et limites de suivi. Si l'optimiseur est en retard ou que la solution est irréalisable, la boucle inférieure nécessite une référence de sécurité définie, telle qu'une vitesse nulle, une décélération contrôlée ou un maintien. Les protections de sécurité doivent rester indépendantes de l'optimiseur : arrêt d'urgence, détection de collision, limites de déplacement strictes, protection contre les surintensités et les surchauffes, surveillance de la vitesse et mécanismes de contrôle des communications. Définissez une réponse en cas de résolution manquante, d'erreur numérique, d'état obsolète, de référence invalide ou de défaut d'estimation. La faisabilité dans le modèle d'optimisation ne correspond pas à la sécurité réelle. ## Logiciels, produits et exemples de recherche actuels Le MPC, initialement utilisé dans les industries de procédés continus, s'est étendu aux véhicules, à la robotique et à la gestion de l'énergie. Une implémentation déployée comprend un solveur, l'identification du modèle, l'estimation d'état, la surveillance et la gestion des échéances, et pas seulement une fonction de coût. [OSQP](https://osqp.org/) propose un solveur open source de programmation quadratique convexe ainsi que des ressources dédiées au MPC. [Présentation du MPC par MathWorks](https://www.mathworks.com/discovery/model-predictive-control.html) décrit la structure de prédiction, de contrainte et d'optimisation itérative. Il s'agit de références d'implémentation principales, et non de recommandations de produits. Côté robotique, [ros2_control](https://control.ros.org/master/doc/ros2_control/doc/index.html) gère les interfaces matérielles, le cycle de vie des contrôleurs, les mises à jour asynchrones et le chaînage des contrôleurs. L'intégration d'un nœud MPC dans ROS 2 ne garantit pas, à elle seule, la planification en temps réel, l'alignement des horodatages état/référence ni une boucle d'inférence indépendante et sécurisée. Les recherches actuelles portent sur la commande prédictive non linéaire (MPC), la dynamique apprise, la MPC robuste à la distribution et l'optimisation conjointe perception-planification ; le temps d'exécution, l'explicabilité, l'incertitude et la garantie de sécurité demeurent des limites pratiques. ## Liste de vérification pour l'implémentation 1. Définir les unités, les repères, les fréquences de mise à jour, la latence, la fraîcheur, l'horizon N et le poids de déplacement S pour l'état, l'entrée, les perturbations et la référence. 2. Distinguer les contraintes physiques strictes des contraintes opérationnelles volontairement souples. 3. Tester le temps de résolution dans le pire des cas, le délai d'expiration, l'infaisabilité et le repli en cas de défaillance numérique. 4. Consigner les prédictions, les mesures, la séquence d'entrée, les contraintes actives, le relâchement et l'état du solveur sur une seule horloge. 5. Injecter des erreurs de correspondance, des perturbations, des glissements, des délais/pertes de capteurs et des pertes de communication. 6. S'assurer que la MPC gère la saturation de la boucle interne et que la protection d'arrêt indépendante fonctionne en cas de défaillance de la MPC, de ROS 2 ou de l'estimation. ## Cas limites à tester en simulation Le MPC peut générer des trajectoires optimales en simulation ; par conséquent, des conditions ordinaires peuvent masquer des hypothèses dangereuses. Automatisez les changements brusques de référence, les variations de frottement et de charge utile, la saturation des actionneurs, les mesures retardées ou manquantes, ainsi que les délais de résolution volontairement courts. Enregistrez la contrainte activée, le nombre de cycles nécessaires pour atteindre un état de repli sûr et le signal justifiant cette décision. Passez au matériel à basse vitesse et avec une marge de sécurité importante. Surveillez les résidus, le temps de saturation, le jeu et la distance d'arrêt plutôt que le seul indicateur de réussite de la résolution.
Vérifiez votre compréhension
La séquence d'entrée optimisée complète a-t-elle été exécutée ?

En général, seule la première entrée est appliquée, puis le problème est résolu à nouveau à l'aide de nouvelles observations.

Ceci intègre les écarts par rapport à la prédiction. ## Références - [OSQP](https://osqp.org/) - [MathWorks : Commande prédictive par modèle](https://www.mathworks.com/discovery/model-predictive-control.html) - [Documentation de contrôle ROS 2](https://control.ros.org/master/doc/ros2_control/doc/index.html) - [Introduction à ROS 2](/fr/blog/posts/robotics-ros2.html), [Introduction à Visual SLAM](/fr/blog/posts/robotics-visual-slam.html)

Related reading

Explore another aspect of this fieldLaboratoire MPC — résoudre à nouveau une séquence de courbure dans l'horizon et les limites de directionExplore another aspect of this fieldLaboratoire de comparaison du suivi de trajectoire : exécuter PP, APP, RPP, Stanley et MPC dans les mêmes conditionsExplore another aspect of this fieldLaboratoire Pure Pursuit — comparer le suivi de trajectoire à distance d'anticipation fixe