Petite carte de contrôle du moteur brushless

From Eric

Revision as of 14:07, 8 January 2012 by Ejenn (Talk | contribs)
Jump to: navigation, search

Contents

Objectif

Piloter un moteur sans balais à courant continu (Brushless DC, BLDC), sans capteur de position (sensorless).

Le montage

Le montage est très simple :

  • un moteur brushless,
  • 2 double ponts en H L298
  • un PIC16F628.
  • quelques bricoles

La voila :

Ctrl brushless.jpg

J'utilise des L298 pour ne pas avoir à câbler des ponts en H et bénéficier de la logique d'exclusion mise en oeuvre dans le L298. J'aurais pu construire un pont en H à MOSFETs, mais comme le moteur est de faible puissance et qu'il s'agit essentiellement d'expérimenter le côté "sensorless", j'ai fait au plus court.

Principe d'un moteur brushless

Un moteur brushless est composé d'un rotor comportant les éléments magéntiques (aimants au néodyme) et d'un stator comportant les bobines. Les bobines sont commandées électroniquement de façon à engendrer le champ magnétique ad-hoc.

En voici un schéma extrait de la note d'application AN857 de Microchip (voir références).

File:Brushless.jpg

Pour un moteur à trois phases A, B, C, la séquence de commandes à réaliser est la suivante

1 : A +         | B flottant   | C - 
2 : A flottant  | B +          | C -
3 : A -         | B +          | C flottant
4 : A -         | B flottant   | C +
5 : A flottant  | B -          | C +
6 : A +         | B -          | C flottant

On constate qu'il existe toujours une phase parmi les 3 qui "flotte", c'est-à-dire qui est non alimentée.

A un instant donné, le sous-ensemble des bobines à commander dépend naturellement de la position du rotor. Deux solutions peuvent être utilisées pour déterminer cette position :

  • utiliser des capteurs de position, tels des capteurs optiques ou à effets Hall,
  • mesurer la force électromotrice générée dans les bobines.

Nous nous intéressons à la deuxième solution.

L'idée est (dans le principe) assez simple : la position du rotor est déterminée par la mesure de la tension sur la phase flottante.

Sur certain moteurs, le point central (commun) des trois groupes de bobines est accessible : dans ce cas, la mesure de la tension est facile. Dans la plupart des cas, ce point n'est pas accessible et il faut "reconstruire" le point milieu à partir des tensions disponibles. Cela peut se faire en utilisant un pont de trois résistances entre les phases A, B et C.

Une deuxième difficulté apparaît lorsque le moteur est commandé en PWM, car dans ce cas la tension au point commun est très bruitée. Il faut donc la filtrer au moyen d'un filtre passe-bas.

Une troisième difficulté concerne la mesure de la force contre-électromotrice lorsque le moteur tourne lentement (et a fortiori losqu'il est à l'arrêt). Le problème concerne notamment le démarrage du moteur.

Dans notre cas, nous allons simplement utiliser une séquence de démarrage suffisamment lente. En effet, et dans une certaine mesure, les moteurs brushless peuvent être contrôlés en boucle ouverte car ils agissent en synchronisme avec la commande (si le couple et la vitesse de rotation sont faibles).

L'utilisation du PIC 16F628

Le PWM

Le signal PWM est généré de façon autonome par le PIC via le timer 2 et le module CCP (Capture/Compare/PWM). Le signal PWM disponible sur la sortie RB3/CCP and ANDé avec les 3 signaux ENAble destinés aux L298.

L'observation du Zero-Cross event

Le 16F628A ne dispose pas d'entrée ADC, mais il dispose de deux comparateurs qui peuvent être connectés sur les broches AN0, AN1, AN2 et AN3. Le chip propose divers schéma de comparaison dont l'un permet la comparaison de l'un quelconque des broches ANi (choisie par configuration) avec une tension de référence VREF générée par le chip.

16f628 comparateurs mode2.jpg

La tension VREF est configurable :

16f628 vref.jpg


Références

  • Application note AVR444, Sensorless control of 3-phase brushless DC motor
  • AN857, Brushless DC Motor Control Made Easy, [1]. ce document d'un quarantaine de page est très détaillé. Il donne notamment les quelques équations à connaître concernant le calcul de la force contre-électromotrice (la BEMF).
  • Direct Back EMF Detection Method for Sensorless Brushless DC (BLDC) Motor Drives de Jianwen Shao [2]
Personal tools