Table des matières:

Variateur de vitesse du moteur à courant continu : 4 étapes (avec photos)
Variateur de vitesse du moteur à courant continu : 4 étapes (avec photos)

Vidéo: Variateur de vitesse du moteur à courant continu : 4 étapes (avec photos)

Vidéo: Variateur de vitesse du moteur à courant continu : 4 étapes (avec photos)
Vidéo: Tutoriel du contrôleur de vitesse de moteur 2024, Novembre
Anonim
Entraînement de vitesse de moteur à courant continu
Entraînement de vitesse de moteur à courant continu
Entraînement de vitesse de moteur à courant continu
Entraînement de vitesse de moteur à courant continu

Cette instructable élaborera sur la conception, la simulation, la construction et le test d'un convertisseur de mode de commutation cc à cc et d'un contrôleur de système de contrôle pour un moteur à courant continu. Ce convertisseur sera ensuite utilisé pour la commande numérique d'un moteur à courant continu shunt avec une charge. Le circuit sera développé et testé en différentes phases.

La première phase sera de construire un convertisseur pour fonctionner à 40V. Ceci est fait pour s'assurer qu'il n'y a pas d'inductance parasite des fils et autres composants du circuit qui peuvent endommager le pilote à haute tension. Dans la deuxième étape, le convertisseur fera fonctionner le moteur à 400 V avec une charge maximale. La dernière étape consiste à contrôler la vitesse du moteur avec une charge variable avec l'arduino contrôlant une onde pwm pour ajuster la tension.

Les composants ne sont pas toujours bon marché et une tentative a donc été faite pour construire le système le moins cher possible. Le résultat final de cette pratique sera de construire un convertisseur continu-continu et un contrôleur de système de contrôle pour contrôler la vitesse du moteur à 1 % près à un point de consigne en régime permanent et pour régler la vitesse en 2 s avec une charge variable.

Étape 1: Sélection et spécifications des composants

Sélection et spécifications des composants
Sélection et spécifications des composants

Le moteur dont je disposais avait les spécifications suivantes.

Spécifications du moteur: Induit: 380 Vdc, 3,6 A

Excitation (Shunt): 380 Vdc, 0,23 A

Vitesse nominale: 1500 tr/min

Puissance: ≈ 1,1 kW

Alimentation du moteur à courant continu = 380V

Optocoupleur et alimentation driver = 21V

Cela impliquerait que le courant et la tension maximum des composants connectés ou contrôlant le moteur auraient des valeurs supérieures ou équivalentes.

La diode de roue libre, étiquetée D1 dans le schéma de circuit, est utilisée pour donner à la force électromotrice inversée du moteur un chemin à parcourir empêchant le courant de s'inverser et d'endommager les composants lorsque l'alimentation est coupée et que le moteur tourne toujours (mode générateur). Il est conçu pour une tension inverse maximale de 600 V et un courant continu direct maximal de 15 A. Par conséquent, on peut supposer que la diode volante pourra fonctionner à un niveau de tension et de courant suffisant pour cette tâche.

L'IGBT est utilisé pour commuter l'alimentation du moteur en recevant un signal pwm de 5 V de l'Arduino via l'optocoupleur et le pilote IGBT pour commuter la très grande tension d'alimentation du moteur de 380 V. L'IGBT utilisé a un courant de collecteur continu maximum de 4,5 A à une température de jonction de 100°C. La tension maximale de l'émetteur du collecteur est de 600V. Par conséquent, on peut supposer que la diode à volant sera capable de fonctionner à un niveau de tension et de courant suffisant pour la pratique. Il est important d'ajouter un dissipateur thermique à l'IGBT, de préférence un grand. Si les IGBT ne sont pas disponibles, un MOSFET à commutation rapide peut être utilisé.

L'IGBT a une tension de seuil de grille comprise entre 3,75 V et 5,75 V et un pilote est nécessaire pour délivrer cette tension. La fréquence à laquelle le circuit fonctionnera est de 10 kHz donc les temps de commutation de l'IGBT doivent être des ordres plus rapides que 100 us, le temps d'une pleine onde. Le temps de commutation pour l'IGBT est de 15ns ce qui est suffisant.

Le pilote TC4421 qui a été sélectionné a des temps de commutation d'au moins 3000 fois l'onde PWM. Cela garantit que le pilote est capable de basculer assez rapidement pour le fonctionnement du circuit. Le pilote est nécessaire pour fournir plus de courant que l'Arduino ne peut en fournir. Le pilote obtient le courant nécessaire pour faire fonctionner l'IGBT à partir de l'alimentation plutôt que de le tirer de l'Arduino. Il s'agit de protéger l'Arduino car tirer trop de puissance surchauffera l'Arduino et de la fumée sortira et l'Arduino sera détruit (essayé et testé).

Le pilote sera isolé du microcontrôleur fournissant l'onde PWM à l'aide d'un optocoupleur. L'optocoupleur complètement isolé l'Arduino qui est la partie la plus importante et la plus précieuse de votre circuit.

Pour les moteurs avec des paramètres différents, seul l'IGBT doit être remplacé par un autre avec des caractéristiques similaires au moteur qui sera capable de gérer la tension inverse et le courant de collecteur continu nécessaires.

Un condensateur WIMA est utilisé en conjonction avec un condensateur électrolytique à travers l'alimentation du moteur. Cela stocke une charge pour stabiliser l'alimentation et, surtout, aide à éliminer les inductances des câbles et des connecteurs du système

Étape 2: Construction et aménagement

Construction et aménagement
Construction et aménagement

La disposition du circuit a été définie afin de minimiser la distance entre les composants pour éliminer les inductances inutiles. Cela a été fait notamment dans la boucle entre le pilote IGBT et l'IGBT. Une tentative a été faite pour éliminer le bruit et la sonnerie avec de grandes résistances mises à la terre entre l'Arduino, l'optocoupleur, le pilote et l'IGBT.

Les composants sont soudés sur un Veroboard. Un moyen simple de construire le circuit est de dessiner les composants du schéma de circuit sur le veroboard avant de commencer à souder. Souder dans un endroit bien aéré. Grattez le chemin conducteur avec une lime pour créer un espace entre les composants qui ne doivent pas être connectés. Utilisez des packages DIP pour que les composants puissent être facilement remplacés. Cela aide lorsque les composants échouent à ne pas avoir à les souder et à ressouder la pièce de rechange.

J'ai utilisé des fiches bananes (prises noires et rouges) pour connecter facilement mes alimentations au veroboard, cela peut être ignoré et les fils directement soudés sur le circuit imprimé.

Étape 3: Programmation de l'Arduino

L'onde pwm est générée en incluant la bibliothèque Arduino PWM (jointe sous forme de fichier ZIP). Un contrôleur proportionnel intégré (contrôleur PI) est utilisé pour contrôler la vitesse du rotor. Le gain proportionnel et intégral peut être calculé ou estimé jusqu'à ce que des temps de stabilisation et des dépassements suffisants soient obtenus.

Le contrôleur PI est implémenté dans la boucle while () de l'Arduino. Le tachymètre mesure la vitesse du rotor. Cette entrée de mesure à l'arduino dans l'une des entrées analogiques à l'aide d'analogiqueRead. L'erreur est calculée en soustrayant la vitesse actuelle du rotor de la vitesse du rotor de consigne et définie égale à l'erreur. L'intégration temporelle a été effectuée en ajoutant un échantillon de temps en temps à chaque boucle et en le fixant égal au temps et en augmentant ainsi à chaque itération de la boucle. Le cycle d'utilisation que l'arduino peut produire va de 0 à 255. Le cycle d'utilisation est calculé et envoyé à la broche PWM de sortie numérique sélectionnée avec pwmWrite de la bibliothèque PWM.

Implémentation du contrôleur PI

double erreur = ref - rpm;

Temps = Temps + 20e-6;

double pwm = initial + kp * erreur + ki * Temps * erreur;

Implémentation de PWM

double capteur = lecture analogique (A1);

pwmWrite(3, pwm-255);

Le code complet du projet peut être vu dans le fichier ArduinoCode.rar. Le code dans le fichier a été ajusté pour un pilote d'inversion. Le pilote d'inversion a eu l'effet suivant sur le cycle de service du circuit, ce qui signifie new_dutycycle = 255 -dutycycle. Cela peut être modifié pour les pilotes non inverseurs en inversant l'équation ci-dessus.

Étape 4: Test et conclusion

Test et conclusion
Test et conclusion
Test et conclusion
Test et conclusion
Test et conclusion
Test et conclusion

Le circuit a finalement été testé et des mesures ont été prises pour déterminer si le résultat souhaité a été atteint. Le contrôleur a été réglé sur deux vitesses différentes et téléchargé sur l'arduino. Les alimentations se sont allumées. Le moteur accélère rapidement au-delà de la vitesse souhaitée puis se stabilise à la vitesse sélectionnée.

Cette technique de contrôle d'un moteur est très efficace et fonctionnerait sur tous les moteurs à courant continu.

Conseillé: