> > > Carte de contrôle moteur

Carte de contrôle moteur

le 28 janvier 2015 tags: [moteur, contrôle, pont en H, pwm, isolation]

Cette carte est principalement destinée à la gestion et la commande de la propulsion principale du robot. Mais pour unifier au maximum les cartes du robot, elle se destine tout aussi bien au simple contrôle de deux moteurs à courant continu indépendants avec asservissement en position, vitesse ou en boucle ouverte.


Une des contraintes majeures que l’on retrouve ici, est l’isolation entre l’électronique et la puissance. Tous les signaux provenant de la commande ou information de la puissance sont donc relayées par des optocoupleurs. Un certain nombre de mesures étant à prendre du côté de la puissance, nous optons pour un petit micro contrôleur à ce niveau afin de prendre en charge ces informations et les envoyer par le biais d’une liaison série isolée.

Entrées sortie de la carte :

Schéma fonctionnel :

Microcontrôleur principal

Le calcul de la commande et la localisation sont confiés à un microcontrôleur spécialisé dans le contrôle de moteurs, un dsPIC33EP256MU806. Il dispose de périphériques de gestion de codeurs matériels et de PWMs de précision du modèle MC (motor control) ainsi que du bus USB (MU).
Sa vitesse de 70Mips lui permet de calculer la position du robot en temps réelle. Cette tâche est très lourde à cause notamment des opérations en calcul flottant de trigonométrie.
Le bus USB permet de régler les coefficients d’asservissement ainsi que de visualiser et contrôler en temps
réel l’évolution des moteurs.
http://www.microchip.com/wwwproducts/Devices.aspx?product=dsPIC33EP256MU806

Ponts en H de puissance

Les ponts en H permettent de déterminer le sens du courant circulant dans le moteur grâce aux signaux A et B. On peut aussi jouer sur le signal de PWM pour moduler l’alimentation et ainsi faire varier la puissance envoyée au moteur.

Sur la figure 5.3, on voit l’état du pont en H en fonction des signaux qui lui sont donnés. Un quatrième état n’est pas représenté.

Une PWM ou MLI (Modulation de largeur d’impulsion) est une technique pour faire varier la vitesse d’un moteur à courant continu. Plus la longueur d’impulsion est longue par rapport à la période, plus le rapport cyclique est élevé comme nous le montre la figure 5.4. C’est ainsi que l’on module la vitesse.
Un quatrième signal donne l’état du pont en H, fault. Ce dernier passe à zéro lors d’un courant trop élevé sur une sortie moteur ou en cas de surchauffe du pont.
http://www.st.com/web/catalog/sense_power/FM1965/SC1039/PF145473

Isolation

Le microcontrôleur principal doit être isolé de la puissance. Tous ses signaux sont donc transmis via des isolateurs numériques. Les informations transitent par champs magnétiques, ainsi, les deux parties de la carte n’ont pas de contact électrique, elles sont isolées.
Les composants choisis pour remplir cette fonction sont des ADUM de chez Analog Device. ADUM7441 pour la connexion aux ponts en H et ADUM1281 pour le microcontrôleur des mesures. Le premier possède trois canaux en émission et un en réception tandis que le deuxième a un canal dans chaque sens. Ils supportent une tension d’isolation allant jusqu’à 2500V.

http://www.analog.com/en/interface-isolation/digital-isolators/adum1281/products/product.html
http://www.analog.com/en/interface-isolation/digital-isolators/adum7441/products/product.html

Microcontrôleur secondaire (mesures)

Ce microcontrôleur se trouvant du côté de la puissance, il est en environnement peu stable et peu fiable. Son programme est conçu pour avoir un temps de cycle très court de telle sorte que même en cas de redémarrages intempestifs, cela ne gène en rien le fonctionnement de la carte.
Pour palier un maximum à des pertes de tension temporaires, il dispose de son propre régulateur alimenté depuis la puissance. Une diode rapide et une capacité permettent de temporiser les appels de courant. Pour une meilleur qualité des mesures, la référence de tension de 2,048V est donnée par un composant externe d’une précision de 0,24% et d’une variation en température de 6 ppm/°C : un MAX6021.

http://www.microchip.com/wwwproducts/Devices.aspx?product=dsPIC33FJ64MC802
http://www.maximintegrated.com/datasheet/index.mvp/id/1889

Mesures de courant

La mesure de courant est toujours faite avec une résistance de shunt et un amplificateur différentiel. La différence ici est que le courant peut circuler dans les deux sens. Il y a donc une seule résistance de shunt mais il faut deux canaux d’amplificateur par moteur, soit un MAX4377 complet.

http://www.maximintegrated.com/datasheet/index.mvp/id/2304

Mesures de température

Étant donné les courants qui circulent dans les ponts en H, ceux-ci sont susceptible de chauffer. Cette température est mesurée pour éviter faire chauffer les ponts trop rapidement et ainsi déclencher la sécurité interne. La vitesse des moteurs est ralentie dès que les ponts commencent à chauffer.
La mesure est effectuée sous les pont, sur la face opposée du circuit imprimé, par une résistance thermique. C’est une résistance variable en fonction de la température, qui nous donne une tension mesurable par le microcontrôleur des mesures.

Codeurs incrémentaux

La carte dispose de quatre entrées pour codeurs incrémentaux. Deux entrées pour des codeurs isolées (codeurs indépendants) et deux autres pour des codeurs non isolés (intégrés aux moteurs).

Codeurs principaux

Ces codeurs sont utilisés pour calculer les déplacements du robot à partir de l’odométrie.

Codeurs secondaires

Des codeurs secondaires peuvent être utilisés en plus des principaux pour calculer le dérapage des pneus sur la surface de déplacement. On peut alors appliquer le couple maximum sans que les pneus dérapent.