Modèle de contrôle prédictif - Model predictive control

Le contrôle prédictif par modèle ( MPC ) est une méthode avancée de contrôle de processus qui est utilisée pour contrôler un processus tout en satisfaisant un ensemble de contraintes. Il est utilisé dans les industries de transformation des usines chimiques et des raffineries de pétrole depuis les années 1980. Ces dernières années, il a également été utilisé dans les modèles d'équilibrage des systèmes électriques et dans l' électronique de puissance . Les contrôleurs prédictifs des modèles s'appuient sur des modèles dynamiques du processus, le plus souvent des modèles empiriques linéaires obtenus par identification du système . Le principal avantage de MPC est qu'il permet d'optimiser la plage horaire actuelle, tout en tenant compte des plages horaires futures. Ceci est réalisé en optimisant un horizon temporel fini, mais en implémentant uniquement l'intervalle de temps actuel, puis en optimisant à nouveau, à plusieurs reprises, différant ainsi du régulateur linéaire-quadratique ( LQR ). MPC a également la capacité d'anticiper les événements futurs et peut prendre des mesures de contrôle en conséquence. Les contrôleurs PID n'ont pas cette capacité prédictive. Le MPC est presque universellement mis en œuvre en tant que contrôle numérique, bien que des recherches soient menées pour obtenir des temps de réponse plus rapides avec des circuits analogiques spécialement conçus.

Le contrôle prédictif généralisé (GPC) et le contrôle matriciel dynamique (DMC) sont des exemples classiques de MPC.

Aperçu

Les modèles utilisés en MPC sont généralement destinés à représenter le comportement de systèmes dynamiques complexes . La complexité supplémentaire de l'algorithme de contrôle MPC n'est généralement pas nécessaire pour fournir un contrôle adéquat de systèmes simples, qui sont souvent bien contrôlés par des contrôleurs PID génériques . Les caractéristiques dynamiques communes qui sont difficiles pour les contrôleurs PID incluent des retards importants et une dynamique d'ordre élevé.

Les modèles MPC prédisent le changement dans les variables dépendantes du système modélisé qui sera causé par les changements dans les variables indépendantes . Dans un procédé chimique, les variables indépendantes réglables par le régulateur sont souvent soit les consignes des régulateurs PID réglementaires (pression, débit, température, etc.) soit l'élément de contrôle final (vannes, registres, etc.). Les variables indépendantes qui ne peuvent pas être ajustées par le contrôleur sont utilisées comme perturbations. Les variables dépendantes de ces processus sont d'autres mesures qui représentent soit des objectifs de contrôle, soit des contraintes de processus.

MPC utilise les mesures actuelles de l'usine, l'état dynamique actuel du processus, les modèles MPC et les cibles et limites des variables de processus pour calculer les changements futurs des variables dépendantes. Ces changements sont calculés pour maintenir les variables dépendantes proches de la cible tout en respectant les contraintes sur les variables indépendantes et dépendantes. Le MPC n'envoie généralement que le premier changement de chaque variable indépendante à implémenter et répète le calcul lorsque le prochain changement est requis.

Bien que de nombreux processus réels ne soient pas linéaires, ils peuvent souvent être considérés comme étant approximativement linéaires sur une petite plage de fonctionnement. Les approches MPC linéaires sont utilisées dans la majorité des applications avec le mécanisme de rétroaction du MPC compensant les erreurs de prédiction dues à l'inadéquation structurelle entre le modèle et le processus. Dans les contrôleurs prédictifs de modèles constitués uniquement de modèles linéaires, le principe de superposition de l'algèbre linéaire permet d'additionner l'effet des changements de plusieurs variables indépendantes pour prédire la réponse des variables dépendantes. Cela simplifie le problème de contrôle à une série de calculs d'algèbre matricielle directe qui sont rapides et robustes.

Lorsque les modèles linéaires ne sont pas suffisamment précis pour représenter les non-linéarités réelles du processus, plusieurs approches peuvent être utilisées. Dans certains cas, les variables de processus peuvent être transformées avant et/ou après le modèle MPC linéaire pour réduire la non-linéarité. Le processus peut être contrôlé avec un MPC non linéaire qui utilise un modèle non linéaire directement dans l'application de contrôle. Le modèle non linéaire peut se présenter sous la forme d'un ajustement de données empiriques (par exemple, des réseaux de neurones artificiels) ou d'un modèle dynamique haute fidélité basé sur des bilans fondamentaux de masse et d'énergie. Le modèle non linéaire peut être linéarisé pour dériver un filtre de Kalman ou spécifier un modèle pour MPC linéaire.

Une étude algorithmique d'El-Gherwi, Budman et El Kamel montre que l'utilisation d'une approche à double mode peut permettre une réduction significative des calculs en ligne tout en maintenant des performances comparatives avec une implémentation non modifiée. L'algorithme proposé résout N problèmes d' optimisation convexe en parallèle sur la base de l'échange d'informations entre les contrôleurs.

Théorie derrière MPC

Un schéma MPC discret.

MPC est basé sur l'optimisation itérative à horizon fini d'un modèle d'usine. Au moment où l'état actuel de la centrale est échantillonné et une stratégie de contrôle de minimisation des coûts est calculée (via un algorithme de minimisation numérique) pour un horizon de temps relativement court dans le futur : . Plus précisément, un calcul en ligne ou à la volée est utilisé pour explorer les trajectoires d'état qui émanent de l'état actuel et trouver (via la solution des équations d' Euler-Lagrange ) une stratégie de contrôle minimisant les coûts jusqu'au temps . Seule la première étape de la stratégie de contrôle est mise en œuvre, puis l'état de l'installation est à nouveau échantillonné et les calculs sont répétés à partir du nouvel état actuel, produisant un nouveau contrôle et un nouveau chemin d'état prédit. L'horizon de prédiction continue d'être décalé vers l'avant et pour cette raison, MPC est également appelé contrôle d'horizon fuyant . Bien que cette approche ne soit pas optimale, elle a donné en pratique de très bons résultats. De nombreuses recherches académiques ont été menées pour trouver des méthodes rapides de résolution des équations de type Euler-Lagrange, pour comprendre les propriétés de stabilité globale de l'optimisation locale de MPC, et en général pour améliorer la méthode MPC.

Principes du MPC

Le contrôle prédictif de modèle (MPC) est un algorithme de contrôle multivariable qui utilise :

  • un modèle dynamique interne du processus
  • une fonction de coût J sur l'horizon fuyant
  • un algorithme d'optimisation minimisant la fonction de coût J à l'aide de l'entrée de commande u

Un exemple de fonction de coût quadratique pour l'optimisation est donné par :

sans violer les contraintes (limites basses/hautes) avec

: ème variable contrôlée (ex. température mesurée)
: ème variable de référence (par exemple température requise)
: ème variable manipulée (ex : vanne de régulation)
: coefficient de pondération reflétant l'importance relative de
: coefficient de pondération pénalisant les grands changements relatifs

etc.

MPC non linéaire

Le contrôle prédictif de modèle non linéaire, ou NMPC, est une variante du contrôle prédictif de modèle (MPC) qui se caractérise par l'utilisation de modèles de système non linéaires dans la prédiction. Comme dans le MPC linéaire, le NMPC nécessite la solution itérative des problèmes de contrôle optimal sur un horizon de prédiction fini. Alors que ces problèmes sont convexes dans le MPC linéaire, dans le MPC non linéaire, ils ne sont plus nécessairement convexes. Cela pose des défis à la fois pour la théorie de la stabilité NMPC et la solution numérique.

La solution numérique des problèmes de contrôle optimal NMPC est généralement basée sur des méthodes de contrôle optimale directe à l' aide des schémas d'optimisation de type Newton, dans l' une des variantes: tir simple directe , les méthodes de prise de vue multiples directs ou colocalisation directe . Les algorithmes NMPC exploitent généralement le fait que les problèmes de contrôle optimal consécutifs sont similaires les uns aux autres. Cela permet d'initialiser efficacement la procédure de résolution de type Newton par une estimation décalée de la solution optimale précédemment calculée, ce qui permet d'économiser un temps de calcul considérable. La similitude des problèmes ultérieurs est encore plus exploitée par les algorithmes de suivi de chemin (ou "itérations en temps réel") qui n'essaient jamais d'itérer un problème d'optimisation jusqu'à la convergence, mais ne prennent que quelques itérations vers la solution du problème NMPC le plus courant, avant de passer au suivant, qui est convenablement initialisé ; voir, par exemple,.

Alors que les applications NMPC ont dans le passé été principalement utilisées dans les industries de transformation et chimiques avec des taux d'échantillonnage relativement lents, le NMPC est de plus en plus appliqué, avec les progrès du matériel de contrôleur et des algorithmes de calcul, par exemple, le préconditionnement , aux applications avec des taux d'échantillonnage élevés, par exemple, dans l'industrie automobile, ou encore lorsque les états sont distribués dans l'espace ( systèmes à paramètres distribués ). Récemment, en tant qu'application dans l'aérospatiale, le NMPC a été utilisé pour suivre en temps réel les trajectoires optimales de suivi du terrain/d'évitement.

MPC explicite

Le MPC explicite (eMPC) permet une évaluation rapide de la loi de commande pour certains systèmes, contrairement au MPC en ligne. MPC explicite est basé sur la technique de programmation paramétrique , où la solution au problème de contrôle MPC formulée comme problème d'optimisation est pré-calculée hors ligne. Cette solution hors ligne, c'est-à-dire la loi de contrôle, se présente souvent sous la forme d'une fonction affine par morceaux (PWA), d'où le contrôleur eMPC stocke les coefficients du PWA pour chaque sous-ensemble (région de contrôle) de l'espace d'état, où le PWA est constante, ainsi que les coefficients de certaines représentations paramétriques de toutes les régions. Chaque région s'avère être géométriquement un polytope convexe pour MPC linéaire, généralement paramétré par des coefficients pour ses faces, nécessitant une analyse de précision de quantification . L'obtention de l'action de contrôle optimale se réduit alors à déterminer d'abord la région contenant l'état actuel et deuxièmement une simple évaluation de PWA en utilisant les coefficients de PWA stockés pour toutes les régions. Si le nombre total de régions est petit, la mise en œuvre de l'eMPC ne nécessite pas de ressources de calcul importantes (par rapport au MPC en ligne) et est particulièrement adaptée aux systèmes de contrôle à dynamique rapide. Un inconvénient sérieux de l'eMPC est la croissance exponentielle du nombre total de régions de contrôle par rapport à certains paramètres clés du système contrôlé, par exemple le nombre d'états, augmentant ainsi considérablement les besoins en mémoire du contrôleur et faisant la première étape de l'évaluation PWA, c'est-à-dire la recherche de la région de contrôle actuelle, coûteuse en temps de calcul.

MPC robuste

Des variantes robustes du contrôle prédictif de modèle (MPC) sont capables de prendre en compte les perturbations définies tout en garantissant le respect des contraintes d'état. Certaines des principales approches de la MPC robuste sont présentées ci-dessous.

  • Min-max MPC . Dans cette formulation, l'optimisation est effectuée par rapport à toutes les évolutions possibles de la perturbation. C'est la solution optimale aux problèmes de contrôle linéaire robuste, mais elle comporte un coût de calcul élevé. L'idée de base derrière l'approche MPC min/max est de modifier l'optimisation "min" en ligne en un problème "min-max", minimisant le pire des cas de la fonction objectif, maximisé sur toutes les installations possibles à partir de l'ensemble d'incertitude.
  • Contrainte de serrage MPC . Ici, les contraintes d'état sont agrandies d'une marge donnée afin qu'une trajectoire puisse être garantie de trouver une trajectoire sous toute évolution de perturbation.
  • Tube MPC . Cela utilise un modèle nominal indépendant du système et utilise un contrôleur de rétroaction pour s'assurer que l'état réel converge vers l'état nominal. La quantité de séparation requise par rapport aux contraintes d'état est déterminée par l'ensemble robuste à invariance positive (RPI), qui est l'ensemble de tous les écarts d'état possibles pouvant être introduits par une perturbation avec le contrôleur de rétroaction.
  • MPC multi-étages . Cela utilise une formulation d'arbre de scénarios en rapprochant l'espace d'incertitude avec un ensemble d'échantillons et l'approche est non conservatrice car elle prend en compte le fait que les informations de mesure sont disponibles à chaque étape de la prédiction et que les décisions à chaque étape peuvent être différents et peuvent servir de recours pour contrer les effets des incertitudes. L'inconvénient de l'approche est cependant que la taille du problème croît de façon exponentielle avec le nombre d'incertitudes et l'horizon de prévision.
  • MPC multi-étages amélioré par tube . Cette approche met en synergie le MPC à plusieurs étages et le MPC à tube. Il offre des degrés de liberté élevés pour choisir le compromis souhaité entre l'optimalité et la simplicité par la classification des incertitudes et le choix des lois de commande dans les prédictions.

Logiciel MPC disponible dans le commerce

Des packages MPC commerciaux sont disponibles et contiennent généralement des outils pour l' identification et l'analyse du modèle , la conception et le réglage du contrôleur, ainsi que l'évaluation des performances du contrôleur.

Une étude des packages disponibles dans le commerce a été fournie par SJ Qin et TA Badgwell dans Control Engineering Practice 11 (2003) 733-764.

Exemples de code source ouvert

La bibliothèque Python avec diverses implémentations peut être trouvée ici :

https://github.com/AtsushiSakai/PyAdvancedControl

def main():
    # Define x0 -a [1x4] array and then transpose it to be a [4x1]
    x0 = np.array([[0.0, 0.0, 0.0, 0.0]]).T  # [x,y,v theta]
    # Print x0. It's our initial state- [xPos, yPos, Velocity and Angle in radians w.r.t +yPos]
    # Customise this as an input to see how different initial trajectories converge to the optimised path
    #
    print(x0)
    x = x0

    # Define Input - [2x1] array
    # x0 - [accelerator, steering_wheel_rate]
    u = np.array([[0.0, 0.0]]).T  # [a,beta]
    plt.figure(num=None, figsize=(12, 12))

    mincost = 100000

    for i in range(1000):
        A, B, C = LinealizeCarModel(x, u, dt, lr)
        ustar, xstar, cost = CalcInput(A, B, C, x, u)

        u[0, 0] = GetListFromMatrix(ustar.value[0, :])[0]
        u[1, 0] = float(ustar[1, 0].value)

        x = A @ x + B @ u

        plt.subplot(3, 1, 1)
        plt.plot(target[0], target[1], "xb")
        plt.plot(x[0], x[1], ".r")
        plt.plot(GetListFromMatrix(xstar.value[0, :]), GetListFromMatrix(
            xstar.value[1, :]), "-b")
        plt.axis("equal")
        plt.xlabel("x[m]")
        plt.ylabel("y[m]")
        plt.grid(True)

        plt.subplot(3, 1, 2)
        plt.cla()
        plt.plot(GetListFromMatrix(xstar.value[2, :]), "-b")
        plt.plot(GetListFromMatrix(xstar.value[3, :]), "-r")
        plt.ylim([-1.0, 1.0])
        plt.ylabel("velocity[m/s]")
        plt.xlabel("horizon")
        plt.grid(True)

        plt.subplot(3, 1, 3)
        plt.cla()
        plt.plot(GetListFromMatrix(ustar.value[0, :]), "-r", label="a")
        plt.plot(GetListFromMatrix(ustar.value[1, :]), "-b", label="b")
        plt.ylim([-0.5, 0.5])
        plt.legend()
        plt.grid(True)

        #  plt.pause(0.0001)

        #  raw_input()

        # check goal
        dis = np.linalg.norm([x[0] - target[0], x[1] - target[1]])
        if dis < 0.1:
            print("Goal")
            break

MPC contre LQR

Le contrôle prédictif de modèle et les régulateurs quadratiques linéaires sont tous deux des expressions de contrôle optimal, avec différents schémas de configuration des coûts d'optimisation.

Alors qu'un contrôleur prédictif de modèle examine souvent des ensembles de fonctions d'erreur de longueur fixe, souvent pondérés progressivement, le régulateur quadratique linéaire examine toutes les entrées du système linéaire et fournit la fonction de transfert qui réduira l'erreur totale sur le spectre de fréquences, en échangeant l'erreur d'état contre fréquence d'entrée.

En raison de ces différences fondamentales, LQR a de meilleures propriétés de stabilité globale, mais MPC a souvent des performances plus localement optimales[?] et complexes.

Les principales différences entre MPC et LQR sont que LQR optimise sur toute la fenêtre temporelle (horizon) alors que MPC optimise dans une fenêtre temporelle décroissante, et qu'avec MPC, une nouvelle solution est souvent calculée alors que LQR utilise la même solution unique (optimale) pour le horizon temporel entier. Par conséquent, MPC résout généralement le problème d'optimisation dans une fenêtre de temps plus petite que l'horizon entier et peut donc obtenir une solution sous-optimale. Cependant, comme MPC ne fait aucune hypothèse sur la linéarité, il peut gérer des contraintes strictes ainsi que la migration d'un système non linéaire loin de son point de fonctionnement linéarisé, qui sont tous deux des inconvénients majeurs de LQR.

Cela signifie que le LQR peut devenir faible lorsqu'il fonctionne loin de points fixes stables. MPC peut tracer un chemin entre ces points fixes, mais la convergence d'une solution n'est pas garantie, surtout si la réflexion sur la convexité et la complexité de l'espace du problème a été négligée.

Voir également

Les références

Lectures complémentaires

  • Kwon, WH; Bruckstein, Kailath (1983). « Stabilisation de la conception de la rétroaction d'état via la méthode de l'horizon mobile ». Journal international de contrôle . 37 (3) : 631-643. doi : 10.1080/00207178308932998 .
  • Garcia, C; Prett, Morari (1989). « Contrôle prédictif de modèle : théorie et pratique ». Automatique . 25 (3) : 335-348. doi : 10.1016/0005-1098(89)90002-2 .
  • Findeisen, Rolf; Allgower, Frank (2001). « Une introduction au contrôle prédictif de modèle non linéaire ». École d'été sur "L'impact de l'optimisation dans le contrôle", Institut néerlandais des systèmes et du contrôle. CW Scherer et JM Schumacher, éditeurs. : 3.1–3.45.
  • Mayne, DQ; Michalska, H. (1990). « Contrôle de l'horizon fuyant des systèmes non linéaires ». Transactions IEEE sur le contrôle automatique . 35 (7) : 814-824. doi : 10.1109/9.57020 .
  • Mayne, D; Rawlings; Rao ; Scokaert (2000). « Contrôle prédictif de modèle contraint : stabilité et optimalité ». Automatique . 36 (6) : 789-814. doi : 10.1016/S0005-1098(99)00214-9 .
  • Allgöwer; Zheng (2000). Contrôle prédictif de modèle non linéaire . Progrès en théorie des systèmes. 26 . Birkhauser.
  • Camacho ; Bordons (2004). Contrôle prédictif du modèle . Springer Verlag.
  • Findeisen; Allgöwer, Biegler (2006). Évaluation et orientations futures du contrôle prédictif des modèles non linéaires . Notes de cours en sciences de la commande et de l'information. 26 . Springer.
  • Diehl, M; Bock ; Schlöder; Findeisen; Nagy ; Allgöwer (2002). « Optimisation en temps réel et contrôle prédictif de modèle non linéaire des processus régis par des équations algébriques différentielles ». Journal de contrôle de processus . 12 (4) : 577-585. doi : 10.1016/S0959-1524(01)00023-3 .
  • James B. Rawlings, David Q. Mayne et Moritz M. Diehl : « Contrôle prédictif des modèles : théorie, calcul et conception » (2e édition), Nob Hill Publishing, LLC, ISBN  978-0975937730 (oct. 2017).
  • Tobias Geyer : Contrôle prédictif du modèle de convertisseurs haute puissance et d'entraînements industriels, Wiley, Londres, ISBN  978-1-119-01090-6 , novembre 2016

Liens externes