Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Autres constituants d’un robot > Les circuits spécialisés > Les contrôleurs de moteur > Le dSPIN de ST-Micro : mesurer les caractéristiques du moteur

Le dSPIN de ST-Micro : mesurer les caractéristiques du moteur

dimanche 19 août 2012, par Eric P.

 Entrée en matière

Comme cela a été présenté dans l’article précédent, le dSPIN peut être configuré de manière très fine afin d’optimiser le fonctionnement du moteur piloté, mais également de contrôler des aspects importants comme le courant maximal.

En effet, concernant ce dernier point, le dSPIN ne fonctionne pas en hachant le courant de sortie en fonction de sa mesure au travers de résistances shunts, comme le font la plupart des drivers, mais en pilotant la tension des bobines de manière à contrôler ce courant. Avantage majeur : plus besoin de résistances shunts, dont la précision et la capacité de dissipation de puissance sont primordiales.

Sans entrer dans les détails, et je vous invite à lire et à relire très attentivement l’excellente datasheet du composant, le dSPIN réalise ce contrôle en mesurant la fcem du moteur et en intégrant dans ses calculs ses caractéristiques électriques intrinsèques, telles que
- la résistance ohmique des bobines,
- leur inductance
- le facteur d’excitation [1].

 L’outil ST-Micro

Les règles de calcul sont explicitées dans le document, mais le plus simple est d’utiliser l’outil de contrôle des cartes d’évaluation faites par ST-Micro. Cet outil est disponible en téléchargement sur leur site. Il ne tourne (malheureusement) que sous Windows, mais il fonctionne très bien avec une configuration virtualisée.

Nous n’allons pas nous intéresser ici au pilotage du moteur mais à la fenêtre qui s’ouvre en sélectionnant le menu "BEMF Compensation" (cf screenshot suivant).

PNG - 36.3 ko
L’outil d’évaluation ST-Micro

On est alors confronté à la fenêtre suivante :

PNG - 21.7 ko
Le calculateur de paramètres BEMF

On retrouve dans le panneau "Device configuration values" les différents registres documentés dans le datasheet et dont nous devons trouver les bonnes valeurs, autrement que par tâtonnement.

Heureusement, l’outil est là pour cela... à condition de lui fournir les éléments suivants :
- Paramètres d’utilisation

  • tension d’alimentation nominale du moteur. Ok, ça c’est facile puisqu’on va la fixer par construction de notre motage
  • courant de maintien (c’est à dire moteur bloqué). Ca aussi c’est facile car c’est justement la valeur à laquelle nous voulons limiter le courant dans le moteur, et elle est fournie par le fabricant, soit directement, soit via le couple tension nominale et résistance des bobines.
  • courant en régime stabilisé (pour un régime de référence) : on peut ici utiliser une valeur inférieure au courant de maintien de manière à limiter l’échauffement du moteur en fonctionnement (le régime de référence étant la vitesse à laquelle on veut faire fonctionner majoritairement le moteur)

- Caractéristiques du moteur

  • Ke : le fameux facteur d’excitation
  • l’inductance des bobines
  • la résistance ohmique des bobines

C’est là que ça commence à se corser. La résistance est facile à obtenir, car soit elle est donnée par le fabricant, soit on sait se servir d’un multimètre en position ohmmètre. Par contre pour les deux autres paramètres, vous pouvez toujours courir, à moins de tomber sur un fabricant qui documente ses moteurs comme personne, et à ne pas utiliser des moteurs de récupération tirés de scanners, imprimantes et autres appareils qui adorent tomber en panne de manière irréparable.

Nous allons donc voir maintenant comment on peut dans la pratique mesurer soi-même ces caractéristiques.

 Mesure du facteur d’excitation

En gros, il s’agit de mesurer le coefficient qui permet d’obtenir la fcem générée en fonction de la vitesse de rotation du moteur. N’oublions pas en effet que nos moteurs pas à pas utilisent des aimants permanents et des bobinages. Par conséquent, si on les fait tourner à la main, ils se transforment en génératrices.

La procédure décrite ci-après est extraite du document "How to drive multiple stepper motors with the L6470 motor driver", chapitre A.2 "Motor back-EMF constant (Ke) measurement". Pour vous simplifier la vie, nous en avons inclus une copie :

PDF - 1.7 Mo
Note d’application ST-Micro

Il faut "juste" disposer d’un oscilloscope et d’un moyen d’entraîner le moteur analysé de manière stable.

Pour le premier objet, je ne peux rien faire de particulier pour vous, il faudra en acheter un, l’emprunter,... mais pas le voler par contre. En ce qui me concerne j’ai la chance d’être outillé (un vieux Hameg 5MHz acheté en 79/80 avec la paye d’un stage d’école et un Tektro 2465A, Rolls des analogiques, récupéré gratos à l’occasion de la liquidation de l’ancienne société d’un pote) et j’ai également accès à un Tektro numérique qu’on peut voir sur les photos.

Pour l’entraînement du moteur, j’ai simplement mis à contribution un moteur de LEGO, mais n’importe quelle solution à base de moteur CC et d’une alim réglable ira très bien. Le tout est d’avoir une vitesse de rotation pas très élevée, correspondant à celle du moteur pas à pas en conditions normales. Ci-après une vue du dispositif, le moteur LEGO étant tenu à la main et entraînant le moteur en test via une roue en contact avec un moyeu fixé sur son axe.

JPEG - 160.3 ko
Dispositif pour mesure de Ke

On connecte (si possible avant, car sinon il va nous manquer une main pour le faire) les fils d’une des bobines du moteur à une entrée de l’oscilloscope pour observer la tension générée.

JPEG - 232.1 ko
Mesure du Ke

Lorsque le signal est stable, on en note les caractéristiques :
- la valeur crête (attention : la valeur crête simple et non pas la valeur crête-crête)
- la fréquence.
La valeur de Ke est obtenue en divisant la valeur crête par la fréquence. C’est très bien illustré en page 17 du document cité plus haut.

 Mesure de l’inductance des bobines

Deux cas de figure :
- on dispose d’un inductance-mètre (ou on peut y avoir accès)
- ou pas

Je suis dans le deuxième cas de figure.

Là, ça commence à devenir sympa, car ça va mettre à contribution de vieux souvenirs des cours d’électricité de lycée [2]. Il faut quand même avoir un minimum de matériel sous la main :
- un oscilloscope (ben oui, je sais, ça devient lourd et genre "réservé aux nantis", mais on en trouve aussi des pas très chers, ou des boitiers qui se connectent en USB et transforment votre PC préféré en oscillo)
- un générateur de fonctions (aka "générateur BF"). Les électroniciens qui ont fait (ou font toujours) de l’analogique sauront de quoi on parle. Pour les autres, je suggère un petit coup de Google ou de Wikipédia

La mesure est basée sur le schéma électronique suivant :

PNG - 8.9 ko
Circuit de mesure

- R est une résistance externe qui va nous servir à capter une tension
- le rectangle symbolise le moteur, dont une des bobines est modélisée par une résistance pure (r) en série avec une self pure (L)

Si on applique un signal sinusoïdal entre A et B et qu’on pose :
- V1 = la tension entre A et B,
- V0 = la tension entre A et C,

on peut considérer le montage comme un diviseur de tension, et donc écrire :

Attention : nous sommes ici en notation complexe, j étant la base imaginaire (i chez les matheux) telle que j * j = -1 [3].

ω est la pulsation, égale à 2 π F.

Calculons le carré du module de chaque membre en multipliant par le complexe conjugué :


soit :

Plaçons-nous maintenant dans le cas où V1 = V0 / 2. En développant nous obtenons :

qu’on peut factoriser pour en tirer L :


soit :

Nous allons donc exciter le montage entre A et C par un signal sinusoïdal produit par le générateur de fonction et observer les tensions V1 et V0 avec l’oscilloscope en faisant varier la fréquence jusqu’à obtenir le rapport 1/2 évoqué précédemment.

Voici le montage :

JPEG - 188.7 ko
Montage pour la mesure de l’inductance

et l’artillerie :

JPEG - 188.6 ko
Appareils de mesure de l’inductance

Le vieux géné BF Philips est une relique qui traînait dans un sous-sol du labo et dont personne ne se souvient l’avoir jamais utilisé. Sur la façade, on peut lire en haut à droite : "made in Germany". C’est dire son âge, compte tenu du fait que tout ce qui est électronique de nos jours est au mieux fabriqué au Japon, et plus généralement en Chine. Je lui ai donc donné l’occasion de connaître une nouvelle vie ;)

La résistance R est de 100 ohms, afin d’avoir un courant d’un ordre de grandeur comparable au courant de fonctionnement nominal du moteur en fonctionnement normal :

JPEG - 166.5 ko
Contrôle de l’intensité

L’image de l’écran du scope ci-après montre la superposition des deux signaux (courbe jaune = tension AB, courbe bleue : tension AC).

JPEG - 207.8 ko
Signaux mesurés

Sachant que les calibres en vertical sont dans un rapport 1/2 (cf le début la dernière ligne de l’écran), nous sommes donc au point recherché. La fréquence obtenue est de 490 Hz environ.

En reportant les valeurs connues dans l’expression de L, (à savoir r = 41 ohm, mesurée sur le moteur, et R = 100 ohm), on trouve donc une inductance d’environ 40 mH.

A noter que cette valeur diffère selon la valeur de la résistance R. A titre de curiosité, la même manip a été faite pour des ordres de grandeurs différents, et nous obtenons les résultats suivants :

R F L I
ohmHzmHmA
10054041,8113,62
1000768235,381,53
1000012200022,560,01

J’avoue ne pas avoir d’explication satisfaisante de cela, car si l’impédance d’une self est fonction de la fréquence du courant qui la traverse, normalement l’inductance n’est fonction que de ses caractéristiques physiques. Il y a un truc qui doit m’échapper, et je suis preneur de tout éclaircissement.

 Conclusion

En possession de toutes les caractéristiques du moteur, nous pouvons aller compléter le formulaire de l’outil ST-Micro et en obtenir les valeurs à placer dans les différents registres de configuration de notre dSPIN.

Et voilà ;)

Have fun now.


[1qu’on retrouve d’ailleurs dans les moteurs brushless sous forme de ce fameux coefficient KV qui donne la vitesse de rotation à vide en fonction de la tension

[2ça se voyait au lycée à mon époque, c’est peut-être plus tard maintenant

[3ça surprend hein ?

Vos commentaires

  • Le 20 août 2012 à 11:07, par Keuronde En réponse à : Le dSPIN de ST-Micro : mesurer les caractéristiques du moteur

    Un simple petite question concernant la détermination de l’inductance :
    Est-ce que lors des essais, l’axe du moteur bougeait (notamment à basse fréquence 500 Hz ) ?

    Si le moteur bougeait, la force électromotrice n’était pas nulle et rajoutait une tension parasite... On supposerait alors que ce sont les valeurs obtenues à haute fréquence qui sont les plus justes, là où le moteur bougeait moins.

    Par ailleurs, 41 ohm pour une résistance interne d’un moteur, ça me semble beaucoup.

    • Le 20 août 2012 à 12:59, par Eric P. En réponse à : Le dSPIN de ST-Micro : mesurer les caractéristiques du moteur

      L’axe est totalement immobile (en tout cas de manière perceptible) et donc la fcem est quasi nulle.

      Pour ce qui est de la résistance interne c’est celle qui est mesurée (et de plus indiquée à 1 ou 2 ohm près) sur la plaque signalétique. Il s’agit de moteurs pour mouvements de précision, en l’occurrence des 400 pas/tour ce qui explique sans doute un bobinage plus "abondant".

      Je pense par contre qu’il y a un problème dans le raisonnement théorique, pourtant basé sur des articles que j’ai pu voir à plusieurs reprises, car il y a une dissymétrie du résultat selon qu’on l’applique en utilisant la tension aux bornes du moteur ou la tension aux bornes de la résistance externe. Je suis en train de fouiller la question.

    • Le 20 août 2012 à 14:28, par Keuronde En réponse à : Le dSPIN de ST-Micro : mesurer les caractéristiques du moteur

      Pour mesure l’inductance de la bobine, je serais plutôt passé par la constante de temps que l’on peut observer en envoyant un créneau en entrée.

      Mais il faut alors obtenir la tension de la bobine en fonction du temps (sans la résistance interne du moteur). Pour cela le mieux est certainement de récupérer les valeurs des tensions sur un PC. A l’aide d’un tableau, d’en déduire l’intensité traversant le moteur (grâce à V_AB), d’en déduire la tension aux bornes de la résistance interne et enfin la tension aux bornes de la bobine.

      Ensuite, "on sait" que la constante de temps est (R+r)/L et qu’elle est égale au temps nécessaire pour atteindre 63% de la valeur finale.

      Si votre oscilloscope propose un export csv sur clé USB, la manip ne devrait pas être longue... Sinon, il faut utiliser un microcontrôlleur avec CAN et liaison USB/série, bref, toute une aventure...

      Après réflexion, on doit pouvoir mesurer ce temps sur la tension entre A et B, juste avec un oscillo et un GBF qui envoie un signal carré.

    • Le 20 août 2012 à 15:22, par Eric P. En réponse à : Le dSPIN de ST-Micro : mesurer les caractéristiques du moteur

      En fait il y a plusieurs méthodes possibles, dont celle de la constante de temps. Citons aussi la construction d’un filtre RLC avec des valeurs connues pour R et C, et la recherche de la fréquence de résonance.

      Pour ce qui est de mes interrogations, je pense avoir trouvé l’erreur de raisonnement. La bonne nouvelle, c’est que la méthode de calcul exposée est correcte. Ce qui ne l’est pas c’est mon hypothèse de "symétrie", c’est à dire d’appliquer le même calcul avec le ratio entre la tension aux bornes de la self et la tension globale, car dans ce cas on fait le ratio de deux signaux déphasés.

      Quant à l’écart de résultat en fonction de R, il vient je pense d’une erreur de manip de ma part. En fait, suite à essais foireux au départ (pour une cause totalement externe), j’ai laissé l’oscillo connecté aux bornes de la bobine et non de R, pensant (à tort) que c’était équivalent, alors que c’est faux. Du coup croyant être au ratio 1/2 pour V1/V0, je n’y étais en réalité pas.

      Je vais refaire la manip ce soir et actualiser l’article en conséquence.

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document