🛠 Commande FOC de Moteur BLDC sur HPM5100
Objectifs
Ce tutoriel vise à implémenter une commande vectorielle (FOC) sur un moteur BLDC en exploitant les capacités analogiques intégrées du HPM5100. L'objectif est de réduire le coût matériel en utilisant les amplificateurs opérationnels internes comme amplificateurs de mesure de courant, tout en configurant les ADC SAR 16 bits pour un échantillonnage précis à 2 MSPS. Nous allons synchroniser les conversions ADC avec les signaux PWM générés par les 32 canaux disponibles pour minimiser le bruit de commutation.
Matériel nécessaire
- Carte de développement HPM5100 (boîtier QFN ou LQFP).
- Moteur BLDC triphasé avec capteur de position ou algorithme sans capteur.
- Étage de puissance MOSFET triphasé (type L6234 ou semi-bridge discret).
- Alimentation externe 12V/24V adaptée au moteur.
- Câblage de puissance et de commande de faible longueur.
Étapes
Configurez deux des quatre amplificateurs opérationnels intégrés en mode PGA (Programmable Gain Amplifier). Connectez les shunts de mesure de courant phase U et V aux entrées différentielles. Ajustez le gain pour que la tension maximale de shunt corresponde à la pleine échelle de l'ADC (généralement 3.3V ou 1.8V selon la référence interne). ``c // Configuration pseudo-code SDK adc_configure_input(ADC_CH0, PGA_GAIN_10X); adc_configure_input(ADC_CH1, PGA_GAIN_10X); ``
- Configuration des amplificateurs opérationnels (PGA)
Configurez trois paires de canaux PWM (6 canaux au total sur les 32 disponibles) pour générer des signaux complémentaires avec temps mort (dead-time) pour les trois phases. Définissez la fréquence de commutation à 20 kHz. Assurez-vous que le registre de synchronisation globale est activé pour aligner tous les compteurs PWM.
- Initialisation des PWM
Configurez les quatre ADC SAR pour qu'ils soient déclenchés par le signal de début de cycle PWM. Cela garantit que l'échantillonnage des courants se fait au centre de l'impulsion PWM, là où le bruit de commutation est minimal. Activez le mode double-buffering pour ne pas perdre d'échantillons pendant le traitement. ``c pwm_trigger_adc_enable(PWM_TIMER0); adc_set_trigger_source(ADC_TRIG_PWM0); ``
- Synchronisation ADC-PWM
Dans l'interruption de fin de conversion ADC, lisez les valeurs brutes. Appliquez la transformation Clark puis Park pour obtenir les composantes Id et Iq. Utilisez des régulateurs PI pour contrôler ces courants. La sortie des régulateurs est transformée par la transformation inverse de Park pour générer les tensions de référence. Ces tensions sont converties en rapports cycliques pour les canaux PWM.
- Implémentation de la boucle de contrôle
Vérification
Utilisez un oscilloscope pour vérifier que les signaux PWM sont correctement complémentaires avec le temps mort appliqué. Tracez les courants de phase via les sorties DAC (si disponibles) ou un analyiseur logique. Vérifiez que la rotation du moteur est fluide et que la vitesse répond aux commandes de consigne sans oscillations excessives. Vérifiez que le mode haute performance (480 MHz) est activé si nécessaire pour le calcul rapide de la FOC.
Pour aller plus loin
Explorez l'utilisation des comparateurs analogiques pour la protection contre les surintensités matérielles. Implémentez un démarrage sans capteur en injectant des signaux HF. Testez la sécurité Secure Boot pour protéger l'algorithme de contrôle.
Autres tutoriels pour cette carte
- HPM5100 : Premier branchement et mise en route
- Utiliser l'USB OTG comme stockage de masse
- HPM5100 : Premier branchement et mise en route
- Pilotage GPIO et Lecture Capteur Analogique sur HPM5100
- HPM5100 : Premier branchement et mise en route avancée
- HPM5100 : Maîtrise avancée des E/S GPIO et interfaces capteurs