Вы находитесь на странице: 1из 19

Commande de moteur

pas à pas
En micro pas
Les différents moteurs
d’asservissement
• Les moteurs DC à balais

• Les moteurs DC sans


balais

• Les moteurs Synchrones

• Les moteurs pas à pas


Moteurs pas à pas
• Avantages • Inconvénients
Asservissement de position Positionnement discret
ou de vitesse en boucle Faible vitesse maximale
ouverte Bruyant, source d’oscillations
Fort couple à basse vitesse Faible puissance
Simplicité de mise en œuvre Faible rendement
Positionnement statique
Fiabilité
Faible prix
Différents type de moteurs
pas à pas
• Aimant permanent
Un aimant permanent est solidaire de l'axe du moteur.
Couple élevé, faible résolution, couple résiduel moteur hors tension.

• Réluctance variable
Rotor à encoches en fer doux se positionnant dans la direction de la plus faible réluctance.
Couple faible, bonne résolution, pas couple résiduel moteur hors tension.

• Hybride
Deux rotor à encoches en fer doux reliés par un aimant permanent.
Couple élevé, très bonne résolution, faible couple résiduel 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 Spécialisés
– µ contrôleurs

• Partie puissance
– Composants discrets (Bip/Mos résistance limitation courant)
– CI interface (Ponts en H intégrés, avec PWM, CNA....)
Pas/demi pas/quart de pas
taratata
• Pas entier :
– Un seul enroulement alimenté à chaque pas

– Deux enroulements alimentés à chaque pas (plus de couple)


Pas/demi pas/quart de pas
taratata
• Demi pas

! Variation importante de couple (Soit 1, soit 2 enroulements alimentés)


Pas/demi pas/quart de pas
taratata
• Demi pas avec compensation de couple
– Même cycle que précédemment, mais i = 0.707 i0 (sin π/4) lorsque les deux
enroulements sont alimentés pour obtenir une force magnétomotrice constante
Nécessité d’une régulation de courant

Sans compensation de couple Avec compensation de couple


Pas/demi pas/quart de pas
• Quart de pas Angle I/I0 Phi A I/I0 Phi B

– Même cycle que précédemment, 0 1 0


22.5 0.924 0.383
en rajoutant des valeurs
45 0.707 0.707
intermédiaires du courant
67.5 0.383 0.924
Nécessité d’un CNA
90 0 1
112.5 -0.383 0.924
135 -0.707 0.707
157.5 -0.924 0.383
180 -1 0
202.5 -0.924 -0.383
225 -0.707 -0.707
247.5 -0.383 -0.924
270 0 -1
292.5 0.383 -0.924
315 0.707 -0.707
337.5 0.924 -0.383
Pas/demi pas/quart de pas
• Les options possibles pour le DAC
– DAC « standard », 4,8,12... bits
• Moins bonne résolution à nb équivalent
• Correction possible d’angle par soft (non linéarité du
moteurs)
• Composant hyper classiques
– DAC « sinus », 3 ou 4 bits
• Excellente résolution
• Mouton à 5 pattes difficile d’approvisionnement
– Inutile d’espérer 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 spécialiste en CNA sinus)
– Fairchild
– Mitsubishi
– NS
– PMD (Performance Motion Devices) ( produits très spécifiques )
– ST
Exemple de circuit de commande
• Cahier des charges
– Commande de moteur bipolaire
– 3A 30V
– Commande pas entier à huitième de pas
– Vitesses très lente (qqs µm/min)
– Affichage de la vitesse de translation
– Interface RS232
Choix des circuits
• Pour la partie commande :
– µ contrôleur pour gérer l’interface, le moteur,
l’affichage
• 4+7+3 sorties cmd afficheurs et pts décimaux
• 2+2+2 entrées butées, poussoirs, sélection vitesse
• 2*4 + 2 bits CNA et direction
30 E/S + RS232 = 16F877
• Pour la partie puissance :
– Pont en H avec CNA 4bits intégré
LMD18245 National semiconductor
Présentation du LMD18245
• 3A, 55V DMOS Full-Bridge Motor Driver
Schéma général

Bts cmd
Buttées
#6

#10
Affichage 4digits
#14 16F877 2*LMD18245
7 segments

#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 d’un pas
dans le tableau modulo 4,8,16 ou 32
Code de commande moteur
• Fonction avance/recule d’un 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 d’offset dans le tableau, dir donne le sens de parcourt, le & (steps-1) fait un
modulo pour reprendre au début lorsque l’on est arrivé au bout du tableau

indice = pos+steps-4;
// calcule l’indice ou trouver la constante dans le tableau petit complication du au fait qu’il n’y
a qu’un tableau de 60 valeurs

PORTD=(PD[indice]);
PORTB=(PB[indice]);
// envoie les valeurs aux deux DAC des pont en H
}
Code d’affichage de vitesse
• L’affichage est multiplexé
• Les valeurs correspondant aux segments
allumés pour chaque chiffre sont stockées
dans des tableaux de constantes
• Opération en deux temps
– Calcul de la valeur de chaque digit
– Affichage de ces valeurs
Code d’affichage de vitesse
• Calcul des valeurs des 4 digits
anciennne_valeur=abs(valeur);
reste=anciennne_valeur;
for (i=0;i<4;i++) //calcul des quatre
{ //digits par division successives
digit[i]=reste/diviseur[i]; //par 1000 100 10 1
reste = reste-(digit[i]*diviseur[i]); //et calcul du reste
}

• Affichage des données


for (i=0;i<4;i++) //pour chaque digit
{
PORTA = port_a[digit[i]]; //port_a[] et port_b[] contiennent les valeurs
PORTE = port_e[digit[i]]; //de segment pour chaque chiffre
}

Оценить