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:
Livre blanc gratuit
Implémentation d'un régulateur de vitesse adaptatif avec Simulink
Lire le livre blancApplication 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.
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.
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.
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™.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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é.
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.
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.
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 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.
Ressources produits:
Obtenir une version d'essai gratuite
Profitez de 30 jours pour tester.
Demander plus d'informations
Comment pouvons-nous vous aider ?
Vous avez des questions ?
Contactez l'équipe technique de Model Predictive Control Toolbox.