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 i
0
(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
I/I
0
Phi A I/I
0
Phi B
0 1 0
22.5 0.924 0.383
45 0.707 0.707
67.5 0.383 0.924
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 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
16F877
Affichage 4digits
7 segments
#14
Bts cmd
Buttes
#6
MAX232
#2
2*LMD18245
#10
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++) //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 donnes
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
}