Model Predictive Control Toolbox

Concevoir et simuler des contrôleurs prédictifs de modèles

 

Model Predictive Control Toolbox™ offre des fonctions, une application et des blocs Simulink® pour concevoir et simuler des contrôleurs prédictifs. Cette toolbox vous permet de spécifier des modèles de processus et de perturbation, des horizons, des contraintes et des pondérations. En exécutant des simulations en boucle fermée, vous pouvez évaluer les performances du contrôleur.

Vous pouvez ajuster le comportement du contrôleur en faisant varier ses pondérations et contraintes au moment de l'exécution. Pour contrôler un système non linéaire, vous pouvez implémenter des contrôleurs prédictifs de modèles adaptatifs ou de type « séquencement de gain ». Pour les applications avec des taux d'échantillonnage rapides, vous pouvez générer un contrôleur prédictif explicite depuis un contrôleur classique, ou implémenter une solution approximée.

Pour le prototypage rapide et l’implémentation embarquée de votre système, la toolbox supporte la génération de code C et de texte structuré IEC 61131-3.

Commencer :

Conception de contrôleurs prédictifs de modèles

Concevez des contrôleurs MPC afin de contrôler des systèmes MIMO soumis à des contraintes d'entrée et de sortie. Exécutez des simulations en boucle fermée pour évaluer les performances du contrôleur.

Concevoir des contrôleurs MPC dans MATLAB

Utilisez des fonctions en ligne de commande pour concevoir des contrôleurs MPC. Définissez un modèle de système interne, ajustez les pondérations, les contraintes et les autres paramètres du contrôleur, et simulez la réponse du système en boucle fermée pour évaluer ses performances.

Conception de contrôleurs MPC en ligne de commande.

Concevoir des contrôleurs MPC dans Simulink

Modélisez et simulez des contrôleurs MPC dans Simulink avec un bloc contrôleur MPC et d'autres blocs fournis par la toolbox. Ajustez et linéarisez un modèle Simulink pour calculer le modèle linéaire interne de votre contrôleur MPC, et pour déterminer les valeurs nominales des entrées et sorties du système (requiert Simulink Control Design™).

Application MPC Designer

Concevez interactivement des contrôleurs MPC en définissant un modèle de système interne et en ajustant les horizons, les pondérations et les contraintes. Validez les performances du contrôleur à l'aide de scénarios de simulation. Comparez les réponses de plusieurs contrôleurs MPC.

Applications pour la conduite autonome

Accélérez le développement de vos systèmes ADAS avec des blocs Simulink prédéfinis. Utilisez les exemples de référence pour concevoir rapidement des contrôleurs ADAS. Générez du code depuis les blocs Simulink afin de déployer les contrôleurs MPC sur véhicule.

Blocs prédéfinis

Utilisez les blocs régulateur adaptatif de vitesse, aide au maintien dans la voie et système de contrôle de suivi de trajectoire comme point de départ pour votre application ADAS, et personnalisez le design selon les besoins. Générez du code depuis les blocs prédéfinis afin de déployer les contrôleurs MPC.

Utilisation du bloc Simulink prédéfini pour la conception de systèmes de régulation adaptative de la vitesse.

Applications de référence

Profitez d'applications de référence qui vous accompagnent tout au long de la conception et du déploiement de contrôleurs MPC pour vos systèmes de conduite autonome. Ces applications vous montrent également comment il est possible de modéliser plus ou moins fidèlement les divers éléments de votre système.

Contrôleurs prédictifs de modèles linéaires

Concevez des contrôleurs MPC pour les systèmes à dynamiques linéaires. Concevez des contrôleurs MPC adaptatifs et de type « séquencement de gain » pour les systèmes dont les dynamiques évoluent selon les points de fonctionnement.

MPC linéaire

Concevez un contrôleur MPC linéaire en spécifiant un modèle de système interne linéaire invariant créé avec Control System Toolbox™, ou en linéarisant un modèle Simulink avec Simulink Control Design. Vous pouvez également importer un modèle créé à partir de données d'entrée-sortie mesurées avec System Identification Toolbox™.

Spécification d'un modèle de système interne pour une conception MPC linéaire.

MPC adaptatif

Concevez et simulez des contrôleurs MPC adaptatifs en utilisant des fonctions en ligne de commande et le bloc Contrôleur MPC adaptatif. Mettez à jour votre modèle de système à chaque étape du calcul et utilisez-le en entrée du contrôleur. Utilisez un filtre de Kalman non-stationnaire linéaire embarqué avec une garantie de stabilité asymptotique pour l'estimation d'états dans des contrôleurs prédictifs adaptatifs.

MPC de type « séquencement de gain »

Contrôlez des systèmes non linéaires sur une large plage de fonctionnement avec le bloc Contrôleurs MPC Multiples. Concevez un contrôleur MPC pour chaque point de fonctionnement et basculez entre les contrôleurs au moment de l'exécution.

Utilisation du bloc Contrôleurs MPC Multiples pour la conception de contrôleurs MPC de type « séquencement de gain ».

Paramètres de conception MPC, estimation d'états et revue de conception

Améliorez itérativement la conception de votre contrôleur en définissant un modèle de système interne, en ajustant les paramètres du contrôleur et en simulant la réponse du système en boucle fermée pour évaluer les performances. Vérifiez que votre contrôleur est exempt de problème de conception.

Paramètres de contrôleur

Une fois le modèle de système interne défini, poursuivez la conception de votre contrôleur MPC en spécifiant le pas d'échantillonnage, les horizons de prédiction et de contrôle, les facteurs d'échelle, les contraintes sur les entrées/sorties et les pondérations. La toolbox supporte également l'assouplissement de contraintes et les contraintes et pondérations non-stationnaires.

Spécification de paramètres de contrôleur dans l'application MPC Designer.

Estimation d'états

Estimez les états du contrôleur à l’aide des sorties mesurées et de l'estimateur d'états embarqué par défaut. Vous pouvez également utiliser l'option d'estimation d'états personnalisée si vous disposez de votre propre estimateur.

Estimation d'états personnalisée.

Revue de conception

Détectez les problèmes potentiels de stabilité et de robustesse liés à votre contrôleur MPC à l'aide de la fonction de diagnostic fourni par la toolbox. Utilisez l’outil de diagnostic pour ajuster les pondérations et contraintes du contrôleur pendant la conception de ce dernier, afin d’éviter les erreurs d’exécution

Amélioration de la conception d'un contrôleur grâce aux recommandations du rapport de revue de conception.

Optimiser les paramètres et surveiller les performances durant l'exécution

Améliorez les performances du contrôleur en ajustant les pondérations et les contraintes au moment de l'exécution. Analysez les performances à l'exécution du contrôleur.

Régler les paramètres run-time

Ajustez les pondérations et contraintes run-time de votre contrôleur MPC pour optimiser ses performances au moment de l'exécution sans avoir à recommencer la conception ou l'implémentation. Effectuez un réglage des paramètres run-time du contrôleur dans MATLAB et Simulink.

Ajustement des pondérations et des contraintes au moment de l'exécution.

Surveiller les performances pendant l'exécution

Utilisez le signal de statut d'optimisation afin de détecter de rares occasions où l’optimisation peut échouer, puis décider si une stratégie secondaire de contrôle doit être utilisée.

Détection des échecs de contrôleur en temps réel. 

Implémenter des contrôleurs prédictifs rapides

Concevez, simulez et déployez des contrôleurs MPC pour des applications avec un budget en calcul limité.

Génération d'un contrôleur MPC explicite à partir d'un contrôleur implicite déjà conçu.

Solution approximée (sous-optimale)

Concevez, simulez et déployez des contrôleurs MPC avec un temps d'exécution garanti dans le pire des cas via une solution approximée (sous-optimale).

Comparaison de temps d'exécution de solutions optimale et approximative (sous-optimale).

Contrôleurs prédictifs de modèles non linéaires

Concevez des contrôleurs MPC non linéaires pour contrôler des systèmes à l'aide modèles de prédiction, fonctions de coût ou contraintes non linéaires.

Planification optimale

Utilisez des contrôleurs MPC non linéaires pour des applications de planification optimale qui nécessitent un modèle non linéaire avec des fonctions de coût ou des contraintes non linéaires.

Optimisation et contrôle de trajectoire d'un robot volant à l'aide d'un MPC non linéaire.

Contrôle à rétroaction

Simulez un contrôle en boucle fermée pour des systèmes non linéaires soumis à des fonctions de coût et des contraintes non linéaires. Par défaut, les contrôleurs MPC non linéaires utilisent Optimization Toolbox™ pour résoudre le problème d’optimisation non linéaire. Vous pouvez aussi définir votre propre solveur non linéaire personnalisé.

Contrôle prédictif de modèles non linéaire d'un réacteur chimique exothermique.

MPC économique

Concevez des contrôleurs MPC économiques optimisé vis-à-vis d’une fonction de coût arbitraire et soumis à des contraintes arbitraires non linéaires. Vous pouvez utiliser un modèle de prédiction linéaire ou non linéaire, une fonction de coût non linéaire personnalisée et des contraintes non linéaires personnalisées.

Contrôleur MPC économique pour la production d'oxyde d'éthylène.

Génération de code

Générez du code pour les contrôleurs prédictifs conçus dans Simulink et MATLAB et déployez-le pour des applications de contrôle en temps réel.

Génération de code avec MATLAB et Simulink

Concevez un contrôleur MPC dans Simulink et générez du code C ou du texte structuré IEC 61131-3, avec Simulink Coder™ ou Simulink PLC Coder™ respectivement. Utilisez MATLAB Coder™ pour générer du code C depuis MATLAB et le déployer pour un contrôle en temps réel. Vous pouvez aussi utiliser MATLAB CompilerTM pour déployer des contrôleurs MPC.

Génération de code C à partir du bloc Contrôleur MPC.

Solveur embarqué

Générez du code à partir du solveur QP (programmation quadratique) fourni pour une implémentation efficace sur processeur embarqué. Déployez le code généré sur un nombre arbitraire de processeurs. Utilisez le solveur QP fourni avec une formulation MPC standard, ou utilisez-le pour résoudre des problèmes MPC personnalisés.

Contrôleur MPC personnalisé.

Solveur QP personnalisé pour la simulation et la génération de code.

Nouveautés

MPC non linéaire

Générez du code pour des contrôleurs MPC non linéaires qui utilisent le solveur fmincon par défaut avec l’algorithme SQP

Solveur QP de point intérieur

Concevez et implémentez des contrôleurs MPC efficaces pour les applications qui imposent des contraintes sur de larges horizons de prédiction et de contrôle

Reportez-vous aux notes de version pour en savoir plus sur ces fonctionnalités et les fonctions correspondantes.