Maison >développement back-end >C++ >Implémenter l'onduleur SPWM ase/ase pour le contrôleur de précipitateur électrostatique à l'aide de STMMCU

Implémenter l'onduleur SPWM ase/ase pour le contrôleur de précipitateur électrostatique à l'aide de STMMCU

Patricia Arquette
Patricia Arquetteoriginal
2024-10-21 06:18:30955parcourir

Il y a quelque temps, j'ai mentionné le contrôleur de précipitateur électrostatique IF, j'ai soigneusement analysé le temps de pilotage SPWM monophasé et triphasé, terminé l'écriture du code SPWM sur le processeur STM32F103 et testé les signaux et les formes d'onde avec un oscilloscope et un analyseur logique.
Les TIMER1 et TIMER2 du STM32F103 prennent en charge les sorties PWM complémentaires, et j'ai choisi CH1,CH2,CH3 de TIMER1 pour le variateur triphasé A,B,C ;
La fréquence d'horloge du processeur est de 72 MHz, et le temps mort de la sortie PWM complémentaire est fixé à 4us par le code suivant ;
SPWM_PWM_TIMER->BDTR = 0x80C4.

Un tableau de données sinusoïdales demi-cycle est généré, et en fonction de la fréquence du signal sinusoïdal et de la valeur de la fréquence du PWM, les intervalles dans lesquels la période du signal sinusoïdal doit être divisée sont calculés, le la valeur moyenne de chaque donnée de signal sinusoïdal est calculée et la valeur du rapport cyclique de chaque intervalle est calculée sur la base des données sinusoïdales maximales et des valeurs maximales du rapport cyclique du signal PWM ;

Lorsque la fréquence du SPWM est de 10 kHz et la fréquence du signal sinusoïdal est de 50 Hz, le signal de sortie SPWM passera à travers deux étages de résistances de filtrage passe-bas avec une résistance de 1 kΩ et un condensateur de 0,1 uF, et je peux voir un très signal sinusoïdal parfait.

Au début, je voulais définir automatiquement la valeur du rapport cyclique calculée par SPWM sur le registre CCR de TIMER via DMA et réaliser la mise à jour du cache DMA en interruption de mi-achèvement et interruption d'achèvement, mais parce que la fréquence peut également changer pendant opération, qui conduira au changement dynamique du nombre de données dans DMA, rendant la sortie du signal sinusoïdal de la sortie SPWM incohérente et générant une composante haute fréquence.

Enfin, les valeurs du registre CCR triphasé sont mises à jour pour chaque cycle du signal PWM via l'interruption de mise à jour de TIMER.

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn