Vous êtes sur la page 1sur 19

Commande de moteur pas pas

En micro pas

Les diffrents moteurs dasservissement


Les moteurs DC balais

Les moteurs DC sans balais

Les moteurs Synchrones

Les moteurs pas pas

Moteurs pas pas


Avantages
Asservissement de position ou de vitesse en boucle ouverte Fort couple basse vitesse Simplicit de mise en uvre Positionnement statique Fiabilit Faible prix

Inconvnients
Positionnement discret Faible vitesse maximale Bruyant, source doscillations Faible puissance Faible rendement

Diffrents type de moteurs pas pas


Aimant permanent
Un aimant permanent est solidaire de l'axe du moteur. Couple lev, faible rsolution, couple rsiduel moteur hors tension.

Rluctance variable
Rotor encoches en fer doux se positionnant dans la direction de la plus faible rluctance. Couple faible, bonne rsolution, pas couple rsiduel moteur hors tension.

Hybride
Deux rotor encoches en fer doux relis par un aimant permanent. Couple lev, trs bonne rsolution, faible couple rsiduel moteur hors tension.

Enroulements
Deux enroulements par phases: commande unipolaires, lectronique simple, couple faible. Un enroulement par phase : commande bipolaire, pont en H, couple fort.

La commande
Principe:
alimenter successivement les phases, si possible en courant.

Partie logique:
CI combinatoire CI Spcialiss contrleurs

Partie puissance
Composants discrets (Bip/Mos rsistance limitation courant) CI interface (Ponts en H intgrs, avec PWM, CNA....)

Pas/demi pas/quart de pas taratata


Pas entier :
Un seul enroulement aliment chaque pas

Deux enroulements aliments chaque pas (plus de couple)

Pas/demi pas/quart de pas taratata


Demi pas

! Variation importante de couple (Soit 1, soit 2 enroulements aliments)

Pas/demi pas/quart de pas taratata


Demi pas avec compensation de couple
Mme cycle que prcdemment, mais i = 0.707 i0 (sin /4) lorsque les deux enroulements sont aliments pour obtenir une force magntomotrice constante

Ncessit dune rgulation de courant

Sans compensation de couple

Avec compensation de couple

Pas/demi pas/quart de pas


Quart de pas
Mme cycle que prcdemment, en rajoutant des valeurs intermdiaires du courant Ncessit dun CNA
Angle
0 22.5 45 67.5 90 112.5 135 157.5 180 202.5 225 247.5 270 292.5 315 337.5 I/I0 Phi A 1 0.924 0.707 0.383 0 -0.383 -0.707 -0.924 -1 -0.924 -0.707 -0.383 0 0.383 0.707 0.924 I/I0 Phi B 0 0.383 0.707 0.924 1 0.924 0.707 0.383 0 -0.383 -0.707 -0.924 -1 -0.924 -0.707 -0.383

Pas/demi pas/quart de pas


Les options possibles pour le DAC
DAC standard , 4,8,12... bits
Moins bonne rsolution nb quivalent Correction possible dangle par soft (non linarit du moteurs) Composant hyper classiques

DAC sinus , 3 ou 4 bits


Excellente rsolution Mouton 5 pattes difficile dapprovisionnement

Inutile desprer mieux que le 1/16 de pas sans correction logicielle

Les circuits de commande


Les ultra classiques
SAA 1027 Unipolaire SAA 1024 Bipolaire L6506/L296 (ST)

Les fabricants
Alegro (le spcialiste en CNA sinus) Fairchild Mitsubishi NS PMD (Performance Motion Devices) ( produits trs spcifiques ) ST

Exemple de circuit de commande


Cahier des charges
Commande de moteur bipolaire 3A 30V Commande pas entier huitime de pas Vitesses trs lente (qqs m/min) Affichage de la vitesse de translation Interface RS232

Choix des circuits


Pour la partie commande :
contrleur pour grer linterface, le moteur, laffichage
4+7+3 sorties cmd afficheurs et pts dcimaux 2+2+2 entres butes, poussoirs, slection vitesse 2*4 + 2 bits CNA et direction 30 E/S + RS232 = 16F877

Pour la partie puissance :


Pont en H avec CNA 4bits intgr
LMD18245 National semiconductor

Prsentation du LMD18245
3A, 55V DMOS Full-Bridge Motor Driver

Schma gnral
Bts cmd Buttes #6

Affichage 4digits 7 segments

#10
#14 16F877 2*LMD18245

#2 MAX232

Code de commande moteur


Rotation des phases et valeurs du courant dans un tableau de constantes Par exemple en pas entiers phase A
0b00001111 0b00000000 0b00001111 0b00000000

A chaque interruption timer on avance dun pas dans le tableau modulo 4,8,16 ou 32

Code de commande moteur


Fonction avance/recule dun pas void step(char dir) { static int16 pos = 0; int16 steps,indice; steps= microstep<<2; // il y a 4 temps pour un pas entiers, 8 pour 1/2pas...

pos = (steps + pos + (int16)dir) & (steps-1); // Step sert doffset dans le tableau, dir donne le sens de parcourt, le & (steps-1) fait un modulo pour reprendre au dbut lorsque lon est arriv au bout du tableau
indice = pos+steps-4; // calcule lindice ou trouver la constante dans le tableau petit complication du au fait quil ny a quun tableau de 60 valeurs PORTD=(PD[indice]); PORTB=(PB[indice]); // envoie les valeurs aux deux DAC des pont en H }

Code daffichage de vitesse


Laffichage est multiplex Les valeurs correspondant aux segments allums pour chaque chiffre sont stockes dans des tableaux de constantes Opration en deux temps
Calcul de la valeur de chaque digit Affichage de ces valeurs

Code daffichage de vitesse


Calcul des valeurs des 4 digits
anciennne_valeur=abs(valeur); reste=anciennne_valeur; for (i=0;i<4;i++) { digit[i]=reste/diviseur[i]; reste = reste-(digit[i]*diviseur[i]); }
//calcul des quatre //digits par division successives //par 1000 100 10 1 //et calcul du reste

Affichage des donnes


for (i=0;i<4;i++) { PORTA = port_a[digit[i]]; PORTE = port_e[digit[i]]; } //pour chaque digit

//port_a[] et port_b[] contiennent les valeurs //de segment pour chaque chiffre

Vous aimerez peut-être aussi