MoteurSynchrone
Sommaire
[masquer]Description du projet
Le but de notre projet est de piloter les trois phases d'un moteur synchrone par le biais du microcontrôleur ATMEGA 32u4 pour participer au challenge educeco.
Ce projet est quand même conséquent une fois que pour piloter un moteur il faut alimenter les bobines statoriques par des courants triphasés de pulsation ω, afin de créer un champ magnétique Bs tournant à la vitesse ωs.
Le courant dans le bobinage rotorique engendre un champ magnétique Br fixe par rapport au rotor.
L'interaction de ces deux champs crée un couple électromagnétique.
Le rotor est alors entraîné à la même vitesse que celle du champ statorique Bs: ω=ωs (Vitesse de synchronisme).
Si le rotor tourne à une vitesse différente, le couple change sans cesse selon que le champ statorique Bs précède ou suit le champ Br et le couple moyen est nul.
Le couple maximal est obtenu pour ξ=90°.
Composants utilisés
Moteur LMT Lehner 3080
Etudes préliminaires
Dans un premier temps, il nous a fallu prendre connaissance et établir les différentes parties du projet, commençant par un schéma fonctionnel
Schéma fonctionnel
Etude de la carte
Nous commencerons par l'étude préliminaire des datasheets du Driver de MOS A4935 et du Microcontrôleur 32U4,ensuite nous établirons un schéma reliant le A4935 et le microcontrôleur, et enfin nous ferons la conception de la carte sur le logiciel Eagle.
Etude du codeur
Etude du code pour les MLI
La génération des signaux MLI est la partie l'une des parties les plus importantes, puisque ces signaux remplaceront les tensions triphasées nécessaires pour tourner un moteur.
Donc, il nous faut générer des MLI à la fréquence souhaitée (Quelques KHz).
Composants utilisés:
- Carte Arduino Leonardo
- Condensateurs
- Résistances
- Potentiomètre
Amélioration du système
Supervision
Etude et réalisation de la carte
Avant de commencer la fabrication de la carte il est important de savoir qu'est-ce qu'un Driver MOS et quel est son utilité.
Le A4935 est un composant conçu pour piloter des transistors MOS sur 3 phrases différentes. Il possède des alimentations séparées pour la logique et les sections analogiques de commande, une alimentation logique régulée de 3 à 5,5V avec une alimentation non régulée de 5,5 à 50V. Il possède également un certains nombre de fonction de protection contre les sous-tensions, les surchauffes et les défauts du pont de puissance. En plus de ces défaut il intègre des moniteurs drain-source pour chaque transistors externe afin de détecter les courts-circuits. Deux sorties FF1 et FF2 sont fournies pour signaler les défauts détectés à un contrôleur externe.
Les MLI
Définition
Nous avons commencé le projet avec une carte demo, ce que nous a permis de faire de testes sur le moteur, pendant la réalisation de notre carte.
Pour la génération des MLI, d'abord nous avons commencé par une étude de la datasheet du microcontrôleur ATMEGA32u4.
La carte Arduino Leonardo, propose un timer (le Timer 4) avec une fréquence d'horloge de l'ordre de 64MHz, 3 sorties PWM avec ses complémentaires et un mode de génération de signaux appelé PWM6 permettant de contrôler un moteur brushless.
Nous avons donc utilisé ce timer pour générer 6 MLIavec une fréquence autour de 8kHz.
Comme tous les transistors ne peuvent pas être pilotés en même temps, il va falloir générer un temps mort afin d'éviter un court circuit.
Aprés avoir étudié la datasheet, nous avons réussi à générer les signaux de tests par le code suivant :
Code MLI
Filtrage
Nous avons ensuite utilisé un filtre passe bas afin de récupérer la valeur moyenne du signal.
Pour avoir une idée, utilisons un tableau Excel, partant de 36 valeurs (360° du cercle).
Ensuite, nous avons pris les valeurs des l'angle des trois tableaux et rajouté au code, avec un poentiomètre pour aider à faire varier la vitesse de rotation:
Code MLI
Le codeur Incrémental
MLI + codeur
Après l'étude du codeur nous avons donc ressemblé les deux codes pour améliorer la façon de tourner.
Le codeur permet de connaître la position des aimants du rotor et donc celle du champ rotorique. Les information s qu'il fournit permettent au système de commande d'alimenter les enrôlements adéquats via les transistors.
Avec ces altérations le code est donc devenu un peu conséquent:
Code MLI + codeur
Amélioration du système
Jusqu'ici nous avons réussi à créer un champ tournant et engendrer la rotation du rotor. Mais notre système n'est pas tout à fait parfait.
Nous avons procédé à certaines altérations afin de l'améliorer :