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.
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 |
|
|
|
|
Facilité de prise en main et d'obtention de bons résultats — Facile |
|
|
|
|
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. | — |
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é.
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.
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.
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.
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 |
En savoir plus
- Commande par rejet actif de perturbations - Documentation
- Implémentation d'un contrôle de vitesse de moteur PMSM en utilisant une commande par rejet actif de perturbations sur Texas Instruments C2000 - Exemple
- Design d’une commande par rejet actif de perturbations pour le contrôle de vitesse d'un moteur BLDC avec PWM - Exemple
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.
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é.
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é.
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.
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 |
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.
En savoir plus
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.
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.
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 |
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.
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.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)