Model Predictive Control Toolbox

Concevoir et simuler des contrôleurs prédictifs

 

Model Predictive Control Toolbox™ propose des fonctions, une application et des blocs Simulink® pour concevoir et simuler des contrôleurs à l'aide du contrôleur prédictif (MPC) linéaire et non linéaire. 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. La toolbox comprend des solveurs d'optimisation déployables et vous permet également d'utiliser un solveur personnalisé. Pour contrôler un système non linéaire, vous pouvez implémenter des contrôleurs prédictifs adaptatifs, de type "séquencement de gain" et non linéaires. Pour les applications avec des taux d'échantillonnage rapides, la toolbox vous permet de générer un contrôleur prédictif explicite à partir d'un contrôleur classique ou d'implémenter une solution approximée.

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

En savoir plus :

Concevoir des contrôleurs prédictifs

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.

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.

Concevoir des contrôleurs MPC dans Simulink

Modélisez et simulez des contrôleurs MPC dans Simulink avec le bloc MPC Controller et d'autres blocs proposés dans la toolbox. Ajustez et linéarisez un modèle Simulink afin de calculer un modèle invariant linéaire interne du système pour votre contrôleur MPC et obtenir les valeurs nominales des entrées et des sorties du système avec Simulink Control Design™.

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. Simulez la réponse du système en boucle fermée pour évaluer les performances du contrôleur.

Concevoir des contrôleurs MPC en ligne de commande.

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 le véhicule.

Blocs prédéfinis

Utilisez les blocs Adaptive Cruise Control System, Lane Keeping Assist System et Path Following Control System comme point de départ pour votre application ADAS, et personnalisez le design selon les besoins. Générez du code à partir des blocs prédéfinis pour le déploiement dans les véhicules.

Utilisation du bloc Simulink prédéfini pour la conception de régulateur de vitesse adaptatif.

Exemples d'applications de référence

Utilisez des exemples d'applications de référence afin de suivre les étapes d'un workflow de design et de déploiement de contrôleurs MPC pour des systèmes de conduite autonome. Ces exemples d'applications de référence 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 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 la dynamique évoluent selon les conditions de fonctionnement.

MPC linéaire

Concevez un contrôleur MPC linéaire en spécifiant un modèle interne linéaire invariant du système 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 un design MPC linéaire.

MPC adaptatif

Concevez et simulez des contrôleurs MPC adaptatifs en utilisant des fonctions en ligne de commande et le bloc Adaptive MPC Controller. Mettez à jour votre modèle de système au moment de l'exécution et utilisez-le en entrée du contrôleur. Utilisez un filtre de Kalman non-stationnaire linéaire prédéfini avec une stabilité asymptotique garantie 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 un large éventail de conditions de fonctionnement avec le bloc Multiple MPC Controllers. Concevez un contrôleur MPC pour chaque point de fonctionnement et basculez entre les différents contrôleurs pendant l'exécution.

Utilisation du bloc Multiple MPC Controllers pour le design de contrôleurs MPC de type « séquencement de gain ».

Spécification des paramètres MPC, estimation d'états et revue du design

Améliorez itérativement le design 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 en évaluer les performances. Vérifiez que votre contrôleur est exempt de problème de design.

Paramètres de contrôleur

Une fois le modèle de système interne défini, poursuivez le design 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 du contrôleur dans l'application MPC Designer.

Estimation d'états

Estimez les états du contrôleur à partir des sorties mesurées avec l'estimateur d'états prédéfini. Vous pouvez également utiliser un algorithme personnalisé pour l'estimation d'états.

Estimation d'états personnalisée.

Revue du design

Détectez les problèmes potentiels de stabilité et de robustesse de votre contrôleur MPC avec la fonction de diagnostic prédéfinie. Utilisez les résultats du diagnostic pour ajuster les pondérations et contraintes du contrôleur pendant la phase de design, afin d'éviter les erreurs d'exécution.

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

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

Améliorez les performances du contrôleur en ajustant les pondérations et les contraintes pendant l'exécution. Analysez les performances d'exécution de vos contrôleurs.

Régler les paramètres d'exécution

Ajustez les pondérations et contraintes de votre contrôleur MPC pour optimiser ses performances pendant l'exécution sans avoir à recommencer le design ou l'implémentation. Effectuez un réglage du contrôleur pendant exécution dans MATLAB® et Simulink.

Ajustement des pondérations et des contraintes pendant l'exécution.

Surveiller les performances pendant exécution

Utilisez le signal de statut d'optimisation pour détecter les rares occasions où l'optimisation peut échouer à converger. Utilisez ces informations pour guider vos décisions sur le choix de stratégies de contrôle de backup.

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

Implémenter des contrôleurs prédictifs rapides

Concevez, simulez et déployez des contrôleurs MPC dans des applications avec des ressources de calcul limitées

MPC explicite

Générez un contrôleur MPC explicite à partir d'un design MPC implicite pour une exécution plus rapide. Simplifiez un contrôleur MPC explicite généré afin de réduire l'empreinte mémoire.

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

Solution approximée (sous-optimale)

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

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

Contrôleurs prédictifs non linéaires

Concevez des contrôleurs MPC non linéaires pour contrôler des systèmes avec des modèles de prédiction, des fonctions de coût ou des 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 en boucle fermée

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 non linéaire d'un réacteur chimique exothermique.

MPC économique

Concevez des contrôleurs MPC économiques optimisés 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 temps réel.

Génération de code avec MATLAB et Simulink

Concevez un contrôleur MPC dans Simulink et générez respectivement du code C ou du texte structuré IEC 61131-3 avec Simulink Coder™ ou Simulink PLC Coder™. Utilisez MATLAB Coder™ pour générer du code C dans MATLAB et le déployer pour un contrôle temps réel. Vous pouvez également utiliser MATLAB Compiler™ pour packager et partager votre contrôleur MPC en tant qu'application autonome.

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

Solveurs prédéfinis

Générez du code à partir de solveurs d'optimisation quadratique (QP) de points intérieurs et d'ensemble actif prédéfinis pour une implémentation efficace sur des processeurs embarqués. Pour les problèmes non linéaires, utilisez le solveur d'optimisation quadratique séquentielle (SQP) de l'Optimization Toolbox pour la simulation et la génération de code. Déployez le code généré vers un nombre quelconque de processeurs.

Solveurs prédéfinis.

Solveurs personnalisés

Utilisez des solveurs Embotech FORCES PRO QP et de programmation non linéaires (NLP) afin de simuler et de générer du code pour des contrôleurs MPC linéaires et non linéaires. Vous pouvez également utiliser des solveurs QP et NLP personnalisés pour la simulation et la génération de code.

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

Nouveautés

Intégration avec FORCES PRO

Simulez et générez du code pour des contrôleurs MPC avec des solveurs FORCES PRO développés par Embotech AG

Solveur QP de points intérieurs

Calculez efficacement les mouvements de contrôle optimaux pour des problèmes MPC à grande échelle

Génération de code 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

Consultez les notes de version pour en savoir plus sur ces fonctionnalités et les fonctions correspondantes.