MoteurSynchrone : Différence entre versions
(→MLI + codeur) |
(→MLI + codeur) |
||
Ligne 209 : | Ligne 209 : | ||
Avec ces altérations le code est donc devenu un peu conséquent: | Avec ces altérations le code est donc devenu un peu conséquent: | ||
− | <br>{{boîte déroulante début | Code MLI}} | + | <br>{{boîte déroulante début | Code MLI + codeur}} |
<source lang=c> | <source lang=c> | ||
Version du 11 avril 2021 à 15:36
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.
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
Etude du codeur
Etude du code pour les MLI
Amélioration du système
Supervision
Etude et réalisation de la carte
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