Livre blanc

Au-delà du PID : explorer des stratégies de contrôle alternatives pour les commandes vectorielles

Introduction

La première utilisation pratique d'un moteur électrique a été réalisée en 1834 par Thomas Davenport pour alimenter un wagon sur une courte section de voie de chemin de fer. Aujourd'hui, les moteurs constituent l’élément principal pour les transports électrifiés, l'automatisation industrielle, et les produits commerciaux et de consommation. Selon une étude de l'Agence internationale de l'énergie (AIE), 40 à 45 % de l'électricité produite dans le monde est consommée par des systèmes entraînés par des moteurs.

Au cours des dernières décennies, les moteurs brushless ont gagné en popularité en raison de leur performance supérieure sur les critères d'efficacité, de densité de puissance et de fiabilité. Parallèlement à la popularité croissante des moteurs brushless, des techniques de contrôle ont été mises au point pour assurer un contrôle précis de ces moteurs et améliorer davantage leur efficacité.

La commande vectorielle (Field-oriented control ou FOC) est l'une de ces techniques offrant un contrôle précis sur l'ensemble de la plage de couple et de vitesse pour les moteurs brushless.

Schéma bloc montrant les contrôleurs PI pour les boucles de courant et de vitesse qui constituent l'architecture de commande vectorielle d'un moteur PMSM.

Architecture de commande vectorielle d'un moteur PMSM avec des contrôleurs PI pour les boucles de courant et de vitesse.

Comme le montre le schéma précédent, la commande vectorielle s'appuie sur des contrôleurs PI pour les boucles de contrôle de la vitesse ainsi que des courants Iq et Id. Les contrôleurs PI sont simples et faciles à implémenter, mais ils peuvent être difficiles à ajuster dans les situations où il existe des incertitudes et des perturbations externes. En voici quelques exemples :

  • Incertitudes sur les paramètres du moteur et la dynamique du système
  • Changements dans les paramètres du moteur (résistance, inductance, force contre-électromotrice, etc.) liés à l'usure, au vieillissement et à la température de fonctionnement
  • Fluctuations du couple de charge et de la tension d'entrée
  • Changement de la zone de fonctionnement et hystérésis dans le comportement du moteur

Outre ces facteurs, il faut également tenir compte de la nécessité de réajuster les contrôleurs si les moteurs sont redimensionnés pour votre application. Ce processus implique des efforts considérables. Afin de relever ces défis, des algorithmes de contrôle avancés peuvent être utilisés pour concevoir des commandes vectorielles capables de prendre en compte ces facteurs tout en améliorant la précision, le temps de réponse et l'efficacité du contrôle moteur, même dans des environnements difficiles.

La lecture de ce livre blanc vous donnera une bonne compréhension du design des commandes vectorielles. Ce document détaille les outils qu'il convient d'utiliser dans MATLAB® et Simulink® pour travailler avec les techniques de contrôle suivantes :

  • Commande par rejet actif de perturbations (Active Disturbance Rejection Control ou ADRC)
  • Contrôle prédictif (Model Predictive Control ou MPC)
  • Reinforcement Learning (RL)

Le tableau suivant offre une synthèse comparative entre ces différentes méthodes de contrôle avancées et le contrôle PID.

  ADRC MPC RL Contrôle PID
Fonctionnement Utilise un observateur d'état étendu (Extended state observer ou ESO) pour estimer et compenser les incertitudes et les perturbations en temps réel Utilise les prédictions du modèle pour optimiser les actions de contrôle sur un horizon de prédiction Apprend les politiques de contrôle optimales directement à partir des données par la méthode essai-erreur Calcule le signal de contrôle en fonction des actions proportionnelles, intégrales et dérivées sur le signal d'erreur
Performances en matière de gestion des non-linéarités du système, des incertitudes et des perturbations externes

     — Bonnes
 — Mauvaises

   

     

     

 
Facilité de prise en main et d'obtention de bons résultats

     — Facile
— Difficile

     

   

 

     

Possibilité de vérifier les performances par rapport à des mesures linéaires standards telles que les marges de gain et de phase Oui Non Non Oui
Cette technique peut constituer la meilleure alternative face au PID dans les cas suivants : Un rejet des perturbations robuste est souhaité en présence d'une dynamique incertaine, de perturbations inconnues et de paramètres moteurs variables sans nécessiter un modèle détaillé du système. Une gestion des contraintes/limites de fonctionnement des moteurs et/ou un contrôle basé sur la prédiction sont requis. Il est difficile de caractériser la dynamique du moteur et ses conditions de fonctionnement, et il est plus pratique d'apprendre les politiques de contrôle directement à partir des données.

Comparaison des méthodes de contrôle avancées par rapport au contrôle PID.

section

Commande par rejet actif de perturbations

La commande par rejet actif de perturbations étend le contrôle PID et offre l'avantage significatif de gérer une gamme d'incertitudes élargie, notamment des dynamiques et des perturbations inconnues, tout en maintenant la performance du contrôleur.

L'algorithme utilise une approximation du modèle de la dynamique connue du système et regroupe la dynamique et les perturbations inconnues sous la forme d'un état étendu du système physique. Un observateur d'état étendu est utilisé pour estimer cet état et implémenter un contrôle par rejet des perturbations. Celui-ci est obtenu en réduisant l'effet sur le système de la perturbation estimée et en amenant le système vers le comportement souhaité.

Schéma montrant la mise en place d’une commande par rejet actif de perturbations avec un contrôleur d'asservissement d'erreur et un observateur d'état étendu pour une application de contrôle moteur.

Schéma de la commande par rejet actif de perturbations.

Dans les applications à grande vitesse des bras robotiques industriels, un contrôle précis des moteurs brushless qui entraînent les articulations et les liaisons du robot est crucial pour l'exactitude des mouvements et du positionnement. Cependant, les éléments structurels de nombreux robots présentent une légère flexion, ce qui introduit des dynamiques supplémentaires à l'origine d'oscillations ou de vibrations indésirables.

Les contrôleurs PID peuvent avoir des difficultés à gérer ces dynamiques de flexion, et nécessiter une modélisation et un réglage complexes pour maintenir la stabilité et les performances. En revanche, l'ADRC est une solution efficace pour gérer les dynamiques des articulations et des liaisons flexibles. Cette solution consiste à estimer et compenser les perturbations causées par les dynamiques additionnelles en temps réel, sans s'appuyer sur un modèle explicite du système.

Schéma bloc montrant les boucles de contrôle du courant et de la vitesse utilisant des commandes par rejet actif de perturbations qui constituent l'architecture de commande vectorielle pour un moteur PMSM.

Architecture de commande vectorielle pour un moteur PMSM utilisant des commandes par rejet actif de perturbations (orange).

Simulink Control Design™ propose le bloc Active Disturbance Rejection Control, qui permet aux utilisateurs de concevoir le contrôleur. Les utilisateurs testent le contrôleur dans une simulation niveau système en incluant un onduleur, un moteur et d'autres dynamiques électriques et mécaniques. Une fois le contrôleur testé dans la simulation, le code C/C++ peut être généré à partir de ce bloc prédéfini grâce à Embedded Coder®. Avec des exigences de mémoire et de débit similaires à celles d'un contrôleur PID, le code de l'ADRC peut être déployé sur un hardware de contrôleur de moteur existant. Il s'agit d'un moyen simple d'implémenter l'ADRC, en particulier pour ceux qui découvrent cette technique.

 Graphique comparant les performances de la commande par rejet actif de perturbations par rapport à un contrôleur PI pour la boucle de vitesse extérieure.

Architecture d’une commande par rejet actif de perturbations (ADRC) dans Simulink pour les boucles de courant de l'axe d et de l'axe q.

Le graphique suivant compare les performances de suivi de la consigne de vitesse par un ADRC (bleu) et par un contrôleur PID (orange). Les gains du PID ont été réglés grâce à la méthode conventionnelle utilisant les paramètres estimés du moteur. L'ADRC présente des transitoires plus fluides et un dépassement moindre que le PID. En outre, l'ADRC présente de meilleures performances de rejet de perturbations à 2 secondes, où un changement de charge se produit sur le moteur (de 5 à 50 % du couple nominal). Il convient de noter que le modèle de simulation utilisé ne modélise pas le couplage croisé des axes d et q.

 Graphique comparant la performance de contrôleurs ADRC et PID pour la commande par rejet actif de perturbations par rapport à un contrôleur PI pour la boucle de vitesse externe.

Comparaison de la performance de suivi de la consigne de vitesse de contrôleurs ADRC (bleu) et PID (orange).

Type de contrôleur Temps d'exécution
Contrôleur PI comme contrôleur de courant 13,1 µsec
Contrôleur ADRC comme contrôleur de courant 14,65 µsec

Résultats du profilage sur Texas Instruments™ C2000™.

section

Contrôle prédictif

Le contrôle prédictif (Model Predictive Control ou MPC) est une technique de contrôle basée sur l’optimisation, initialement développée pour être utilisée dans les industries de transformation, telles que les usines chimiques et les raffineries au cours des années 1980. Depuis, les progrès de la technologie des microcontrôleurs, du traitement numérique du signal et des algorithmes d'optimisation ont permis d'appliquer le MPC à l'électronique de puissance. En conséquence, l'adoption du MPC (Model Predictive Control) devrait s'accroître dans les années à venir.

Schéma illustrant la configuration du contrôleur prédictif pour un moteur PMSM.

Schéma d'un contrôle prédictif.

Le principe fondamental du contrôle prédictif implique d'utiliser un modèle de prédiction mathématique pour prévoir les états futurs du système contrôlé dans un horizon de prédiction. Le contrôleur calcule ensuite une séquence d'actions de contrôle optimales pour suivre la trajectoire de référence souhaitée tout en respectant les contraintes. Pour ce faire, l'algorithme résout un problème d'optimisation en temps réel. La première action de contrôle est appliquée au système et les actions suivantes sont ignorées. Ce processus est répété.

Diagramme montrant le principe de fonctionnement d'un contrôleur prédictif, illustrant des concepts tels que le contrôle et l'horizon de prédiction.

Principe de fonctionnement du contrôle prédictif.

Le contrôle prédictif offre un avantage significatif par rapport au PID pour la commande vectorielle, car il gère explicitement les limites et les contraintes opérationnelles du moteur tout en tenant compte du couplage croisé entre les boucles. Cela signifie que le contrôleur peut prendre en compte les limites physiques, telles que la saturation du couple, les limites de courant et de tension, ainsi que les limites de taux de variation. En intégrant ces contraintes dans le problème d'optimisation, le MPC peut empêcher les violations de ces contraintes tout en minimisant la fonction du coût que représente les objectifs de contrôle. Dans des applications comme le contrôle de moteurs de véhicules électriques, les contraintes telles que les limites de couple du moteur, les limites de courant de la batterie et les limites thermiques sont cruciales pour garantir un fonctionnement sûr et éviter d'endommager des composants. Les contrôleurs PID ne disposent pas d'une méthode explicite pour gérer les contraintes, ce qui peut entraîner un comportement de suivi indésirable, tel qu'un dépassement, une saturation de la vitesse ou du couple, ou dans certains cas, une instabilité.

Schéma bloc montrant la boucle du contrôleur de courant qui utilise un contrôleur prédictif constituant la boucle interne de l'architecture de commande vectorielle pour un moteur PMSM.

Contrôleur prédictif pour la boucle de courant interne.

Le contrôle prédictif possède une capacité de prévisualisation qui lui permet d'optimiser les actions de contrôle en fonction de la connaissance du signal de référence futur, ce qui se traduit par une meilleure réactivité aux consignes de suivi. Par contraste, les contrôleurs PI se limitent à répondre aux erreurs de l'état actuel du système. De plus, le composant de contrôle intégral des contrôleurs PI peut introduire un retard qui ralentit la réponse dynamique de la boucle de contrôle.

Model Predictive Control Toolbox™ simplifie le processus de mise en place d'un contrôleur prédictif pour les applications à commande vectorielle dans MATLAB en proposant des blocs et algorithmes Simulink prédéfinis. En utilisant des blocs MPC prédéfinis, vous pouvez configurer la boucle interne d'une commande vectorielle. Ce contrôle de boucle interne implique le calcul des tensions de stator de l'axe d et de l'axe q pour entraîner le moteur à la vitesse souhaitée tout en minimisant la fonction de coût qui représente le compromis entre les objectifs de contrôle.

Sous-système Simulink montrant le bloc de contrôleur prédictif utilisé dans la boucle de courant interne de la commande vectorielle.

Bloc de contrôleur prédictif (bleu) dans Simulink fonctionnant comme un contrôleur de courant pour le moteur PMSM.

Vous pouvez évaluer les performances du contrôleur prédictif en le simulant en boucle fermée avec le système physique du moteur dans MATLAB ou Simulink. Après l'évaluation initiale, vous pouvez affiner le design du contrôleur en ajustant les paramètres et en testant différents scénarios de simulation.

Une fois le contrôleur testé dans une simulation, vous pouvez utiliser Simulink Coder™ pour générer du code C et C++ à partir du bloc MPC afin de le déployer sur votre hardware de contrôleur embarqué.

Type de contrôleur Temps d'exécution
Contrôleur PI comme contrôleur de courant 13,1 µsec
Contrôleur MPC comme contrôleur de courant (fonctionnant à 5 KHz) 134 µsec

Résultats du profilage sur hardware Speedgoat®.

Bien que le contrôle prédictif offre plusieurs avantages pour la commande vectorielle, il présente également certains inconvénients qui doivent être considérés. L'un des principaux défis concerne la complexité de calcul et l'implémentation en temps réel de l'algorithme. Le contrôle prédictif peut être très exigeant en termes de mémoire ou de calcul, ce qui le rend difficile à exécuter sur du hardware aux ressources limitées. De plus, la précision du modèle de prédiction est cruciale pour sa performance, et le modèle peut nécessiter des mises à jour ou une réidentification en cas de changements dans la dynamique du moteur ou de la charge. Ces facteurs doivent être pris en compte lors du design d'un système de contrôle moteur basé sur le contrôle prédictif.

section

Reinforcement Learning

Le Reinforcement Learning est une technique de Machine Learning qui permet à un agent informatique d'apprendre à prendre des décisions en interagissant avec un environnement et en recevant des récompenses ou des pénalités en fonction de ses actions. L'objectif de l'agent est d'apprendre une politique qui maximise les récompenses cumulées au fil du temps. Pour ce faire, il procède par la méthode essai-erreur, la politique étant mise à jour en fonction des retours d'information reçus. L'apprentissage se fait sans intervention humaine et s'appuie uniquement sur les observations réalisées par l’agent, concernant l'environnement.

Schéma illustrant l'architecture de Reinforcement Learning pour une application de contrôle de moteur PMSM.

Schéma de Reinforcement Learning.

Le Reinforcement Learning offre une alternative au contrôle linéaire lorsque des dynamiques non linéaires complexes et des environnements de fonctionnement incertains rendent difficile l'obtention de performances de suivi satisfaisantes. Cette approche est particulièrement utile lorsqu'il est difficile de caractériser les moteurs et leurs conditions de fonctionnement pour régler les contrôleurs.

Par exemple, les machines agricoles intégrant des moteurs PMSM sont exploitées dans des environnements difficiles et divers, sur des terrains accidentés, des types de sol variables, présentant des niveaux d'humidité et de compactage fluctuants. Ces variations de l'environnement sont difficiles à caractériser, ce qui pose des difficultés pour ajuster les commandes vectorielles basées sur PI, dans le but d'obtenir une performance satisfaisante du suivi du couple. Une politique de Reinforcement Learning correctement entraînée peut s'adapter à ces variations et offrir les performances de suivi nécessaires à de telles applications.

Le Reinforcement Learning offre plusieurs avantages. Par exemple, un contrôleur unique peut être utilisé pour réguler la vitesse et les courants du moteur, au lieu d'avoir à régler des contrôleurs PID distincts pour chacune de ces boucles, à différents points de fonctionnement. De plus, le Reinforcement Learning est capable de gérer des entrées et sorties multiples provenant de divers capteurs et actionneurs.

Grâce à MATLAB et à Reinforcement Learning Toolbox™, vous pouvez configurer un contrôleur basé sur le Reinforcement Learning pour une commande vectorielle. Cette toolbox offre des fonctions et un bloc Simulink d'agent de Reinforcement Learning pour implémenter le contrôle basé sur le Reinforcement Learning, ainsi que des algorithmes prédéfinis et personnalisés pour entraîner le contrôleur.

Schéma bloc montrant la boucle du contrôleur de courant qui utilise un agent de Reinforcement Learning constituant la boucle interne de l'architecture de commande vectorielle pour un moteur PMSM.

Contrôleur basé sur le Reinforcement Learning pour la boucle de courant interne de la commande vectorielle. Le bloc du contrôleur basé sur le Reinforcement Learning régule les courants des axes d et q et génère les tensions de stator correspondantes requises pour entraîner le moteur à une vitesse spécifiée.

Sous-système Simulink montrant le bloc de l'agent de Reinforcement Learning utilisé dans la boucle de courant interne de la commande vectorielle.

Architecture du contrôleur de courant d'un moteur PMSM basé sur le Reinforcement Learning dans Simulink montrant l'agent de RL (bleu).

Une fois l'entraînement effectué, vous pouvez utiliser Embedded Coder pour générer du code C++ afin de déployer la politique optimale sur des plateformes embarquées.

Type de contrôleur Temps d'exécution
Contrôleur PI comme contrôleur de courant 13,1 µsec
Contrôleur basé sur le Reinforcement Learning comme contrôleur de courant (fonctionnant à 5 kHz) 85 µs

Résultats du profilage obtenu avec l'agent TD3 sur hardware Speedgoat.

Il convient de noter que, même si le Reinforcement Learning peut constituer une alternative puissante aux contrôleurs traditionnels tels que les contrôleurs PID, il est coûteux en termes de calcul et exige du temps et des données pour entraîner le contrôleur. Il est essentiel de tenir compte de ces compromis lorsque vous envisagez de choisir le Reinforcement Learning, et la décision doit dépendre des besoins spécifiques de l'application, en tenant compte de facteurs tels que les ressources, le temps et les données disponibles. Dans certains cas, il peut être avantageux de combiner le Reinforcement Learning et les contrôleurs PI. En intégrant ces deux approches, un agent de Reinforcement Learning peut générer des signaux de correction qui complètent les signaux de commande émis par les contrôleurs PI. Cette combinaison permet au système de gérer des conditions complexes, non linéaires ou imprévues, qui sortent de la plage nominale des contrôleurs PI.

section

Conclusion

En résumé, ce livre blanc a examiné des stratégies de contrôle alternatives pour les commandes vectorielles de moteurs électriques, en se concentrant sur la commande par rejet actif de perturbations, le contrôle prédictif et le Reinforcement Learning. Ces techniques de contrôle avancées permettent d'améliorer la précision, le temps de réponse et l'efficacité du contrôle moteur, même dans des environnements difficiles.

MATLAB, Simulink et les toolboxes associées constituent une plateforme accessible pour le design et l'implémentation de ces techniques de contrôle avancées pour les applications de contrôle moteur. Il est toutefois essentiel de tenir compte des compromis entre la complexité des calculs, l'implémentation en temps réel et les exigences en matière de données lorsque vous choisissez la stratégie de contrôle appropriée pour une application spécifique.