Problèmes rencontrées Coût total du projet

publicité
COMMANDE POUR UN MOTEUR PAS À PAS
27/04/06
PROJET D'ATELIER:
COMMANDE POUR UN MOTEUR PAS A PAS
(PHOTO)
BIENKOWSKI & BEN ALAYA
1
COMMANDE POUR UN MOTEUR PAS À PAS
27/04/06
SOMMAIRE:
IPRESENTATION DU CAHIER DE CHARGE
IIETUDE THEORIQUE
IIIREALISATION PRATIQUE ET MESURES
IVCONCLUSION
II Etude théorique et dimensionnement des composants
 Problèmes rencontrées
Coût total du projet
3

IV Conclusion
24
BIENKOWSKI & BEN ALAYA
2
COMMANDE POUR UN MOTEUR PAS À PAS
I-
27/04/06
PRESENTATION DU CAHIER DES CHARGES:
L'objectif de ce projet est de réaliser la commande électronique d'un moteur pas à pas
qui sert à entraîner deux essuies glasses.
La commande conçue actionne un moteur ID31-004 ayant les caractéristiques
suivantes:
Angle
par pas
degrés
Couple
N.cm
Inertie
Rotor
Kg.cm2
7.5
2.8
0.011
Resistance
par phase
ohms
65
Courant
par phase
A
Nombre de
Connexions
0.175
6
Le principe de la commande de ce moteur est le suivant:
Le moteur utilisé est de type unipolaire à 4 phases qui nécessite une alimentation
continue de +12V.
Notre cahier de charge exige les fonctionnalités classiques suivantes:
 Balayage unique
 Balayage lent
 Balayage rapide
 Balayage intermittent
Nous verrons plus loin le détail théorique et pratique de chacune de ces fonctions ainsi
que les problèmes rencontrés lors de leur conception.
On s'attardera également sur la partie commande en puissance et sa mise au point.
BIENKOWSKI & BEN ALAYA
3
COMMANDE POUR UN MOTEUR PAS À PAS
II-
27/04/06
ETUDE THEORIQUE ET REALISATION:
1) Schéma global de la commande
La première plaque "Horloge" comprend le circuit qui génère un signal créneau de
fréquence 12 Hz. Elle comporte aussi 4 interrupteurs pour actionner l'une ou l'autre des
fonctions de la commande ainsi que 2 boutons poussoirs correspondant à la mise sous
tension et la remise à zéro de l'ensemble du FPGA et de la plaque de commande.
Le circuit logique chargé dans le FPGA génère des signaux qui alimenteront selon des
équations bien précises la commande en puissance du moteur. Cette dernière transforme
les niveaux haut et bas des signaux qu'elle reçoit en courants suffisants pour faire tourner
le moteur.
1.1) Horloge:
Notre première tâche était de concevoir une horloge 12 Hz pour le FPGA qui définira la
vitesse de balayage de l'essuie glasses.
En effet, pour effectuer un aller-retour, nous avons besoin de demander 24 pas au
moteur (un aller-retour de 90°). Cela nous donne une vitesse de balayage de 2 secondes
adaptée dans la pratique pour bien voir les différentes phases de fonctionnement.
Pour ce faire on a utilisé le composant intégré LM555 en astable:
Connections entre les pattes du LM555 pour avoir un fonctionnement en astable
L'étude théorique du LM555 tel qu'il fonctionne
en astable aboutit aux équations suivantes:
T= 0,693(Ra+2*Rb)*C où T est la période du
signal généré.
f= 1/T = 1,44 / (Ra+2*Rb)*C .
Forme des ondes d'entrée et de sortie de l’astable
BIENKOWSKI & BEN ALAYA
4
COMMANDE POUR UN MOTEUR PAS À PAS
27/04/06
Les valeurs pratiques des composants que nous avons choisis sont alors:
 4kOhms pour les deux résistances Ra et Rb,
 10 uF pour le condensateur C relié à la patte 6 du LM555
 0,01 uF pour le condensateur relié à la patte 5.
Ces valeurs nous permettent d'obtenir un signal carré de période 83 ms càd 12 Hz
mesuré à l'oscilloscope (CF partie pratique)
Le schéma de la plaque "Horloge" finalisé est le suivant:
BIENKOWSKI & BEN ALAYA
5
COMMANDE POUR UN MOTEUR PAS À PAS
1.2)
27/04/06
Plaque d’alimentation du moteur
Nous savions dès le début que nous allions devoir utiliser un FPGA pour coordonner
toutes les phases du moteur. Cela signifiait : des créneaux de 5 V d’amplitude, et une
intensité très faible en sortie du FPGA.
On a donc conçu et dessiné une plaque à base de MOSFets (transistors de puissance
commandés en tension) qui se contenterait des signaux de sortie du FPGA et qui
actionnerait sans encombre les phases du moteur.
L’intensité qui passe dans chaque phase est donnée par le constructeur et vaut 175mA
sous 12V. Nous avons donc choisi des transistors NMOS IRF-530, qui supportent une
tension Drain / Source de 100V, et un courant de 10A. Ces composants sont certes
largement surdimensionnés, mais c’étaient les seuls disponibles, et surtout il s’est avéré
qu’ils remplissent parfaitement leur rôle d’interrupteurs.
Nous avons aussi ajouté 4 diodes qui s’allument pour chaque phase en fonctionnement,
ce qui permet de détecter les erreurs et de mieux appréhender le fonctionnement du
système.
Le schéma de cette plaque d’alimentation est celui-ci :
Note : les interrupteurs
sont là pour la
maquette, afin de
tester les transistors
plus facilement ; ils
sont shuntés dans la
version finale.
BIENKOWSKI & BEN ALAYA
6
COMMANDE POUR UN MOTEUR PAS À PAS
1.3)
27/04/06
Circuit Logique:
Le Grafcet global de la partie commande montre le principe de la programmation de
notre FPGA.
P1, P2, P3 et P4 sont des interrupteurs correspondant chacun à une fonctionnalité
demandée dans le cahier de charge.
a : est le bouton de mise en route du balayage (bouton poussoir).
On a également mis en place un bouton RAZ (n'apparaissant pas sur ce graphe) qui a
pour rôle de mettre à 0 toutes les bascules du circuit logique et donc s'assurer du bon
déroulement des différentes étapes.
BIENKOWSKI & BEN ALAYA
7
COMMANDE POUR UN MOTEUR PAS À PAS
27/04/06
Le schéma global que nous avons réussi à concevoir sur MaxPlusII a l'allure suivante:
Circuit définissant
définissant la
la vitesse
vitesse du
du moteur
moteur selon
selon le
Circuit
Le
mode
de
fonctionnement
mode de fonctionnement
Fonction Balayage unique,
Fonction Balayage unique:
cœur du FPGA
centre du FPGA
Balayage continu
Générateur
d'impulsion
Diviseur de fréquence
pour une horloge moins
rapide
Fonction Balayage
intermittent
1.2.1) Fonction 1: Balayage Unique:
Il s'agit de la fonction principale de notre projet. Cette fonction génère à chaque
impulsion sur une entrée "balay" 4 signaux de sortie reliés directement à la plaque de
commande en puissance et déclenche alors un aller-retour du balai de l'essuie glasses.
BIENKOWSKI & BEN ALAYA
8
COMMANDE POUR UN MOTEUR PAS À PAS
27/04/06
Cet aller-retour est composé de 24 pas, 12 pour l'aller et 12 pour le retour. Ces signaux
sont codés par 4 équations (théoriques) pour les 4 sorties:
T2 & T3 ne sont pas exactement les opposés de T1 & T4 mais on a du faire des
modifications pour que touts les sorties soient à 0 quand il y'a pas de courant ou lorsque le
balayage est fini (CF schéma suivant).
Sur MAXPlusII on a le schéma ci-dessous pour les phases T1 à T4 du moteur :
BIENKOWSKI & BEN ALAYA
9
COMMANDE POUR UN MOTEUR PAS À PAS
27/04/06
On insère ce circuit logique dans le schéma global de la fonction balayage unique et on
l'associe à un compteur 5 bits (LPM counter) pour assurer l'enchaînement des pas du
moteur et définir leur sens.
D'où le schéma global:
Le chronogramme obtenu en simulant de cette fonction témoigne de son bon
fonctionnement :
Sorties vers la
puissance …
… qui dépendent des états
du compteur.
BIENKOWSKI & BEN ALAYA
10
COMMANDE POUR UN MOTEUR PAS À PAS
27/04/06
Hmodif est l'horloge définie par le mode de fonctionnement choisi par l'utilisateur selon que le
balayage est lent ou rapide.
Comme tous les éléments de notre FPGA doivent être synchrones, Hmodif est injectée, quand il y
en a besoin, à une entrée "clock enable" qui assure le fonctionnement des composants à une vitesse
autre que l'horloge du programme.
1.2.2) Balayage intermittent:
Cette fonction permet à l'utilisateur de définir un temps d'attente qu'il choisit lui-même et qui ne
dépasse pas les 5s.
La programmation de cette fonction était particulièrement compliquée vu qu'il faut qu'elle
dépende des sorties du balayage unique. En effet, la période d'attente doit se déclencher après que le
balayage soit fini. On a conçu une entrée "valid" qui fournit cette information à notre fonction, la
simulation montrera le point délicat concernant l'effet de ce signal sur le déroulement des étapes.
Schéma de la fonction Intermittent:
Simulation pour une attente entre balayage inférieure à 5s:
BIENKOWSKI & BEN ALAYA
11
COMMANDE POUR UN MOTEUR PAS À PAS
27/04/06
Deux appuis successifs sur "a" définissent le temps intermittent
Période entre deux balayages égale au temps entre 2 fronts sur "a" défini par l'utilisateur
Pour une période entre 2 appuis sur "a" supérieure à 5s on a:
Fin balayage
5 secondes
Ici on voit que les 5s ne sont pas conditionnées par la fin du balayage. On a conçu en fait un
générateur d'impulsion de période 5s dans le cas où le temps défini par l'utilisateur excède celle-ci.
Ceci est dû à ce que le compteur qui génère ces 5s ne reçoit pas l'impulsion "valid" définie plus
haut. Cette dernière n'agit que sur le deuxième compteur (générateur d'impulsions inférieures à 5s).
BIENKOWSKI & BEN ALAYA
12
COMMANDE POUR UN MOTEUR PAS À PAS
III-
27/04/06
RÉALISATION PRATIQUE ET MESURES
1) La plaque d’alimentation des phases du moteur
Ça a été notre première étape, avoir une plaque d’alimentation adaptée pour faire fonctionner
le moteur.
Elle devait laisser passer le courant sur des phases particulières (P1, P2, P3 ou P4), en
fonction de la tension (0V ou 5V) qu’on appliquerait à la grille de chacun des transistors de
commande utilisés (les IRF530). De plus, elle devait indiquer une phase "active" par l’allumage
d’une diode correspondant.
Nous avons vérifié ces deux pré-requis sur la plaque qui nous a servi pour la démonstration et
effectué des mesures de consommation électrique.
Voici les résultats obtenus :
- Les différentes phases du moteur consomment chacune 190mA en fonctionnement
sous 12V. C’est un peu plus que la valeur spécifiée par le constructeur (175mA), mais
toujours en deçà des capacités des transistors (10A).
- La consommation des diodes de contrôle a été fixée grâce à des résistances de
380Ω. Seule la tension Drain / Source des transistors serait susceptible de la modifier.
La mesure du courant traversant une diode nous donne une valeur de 21mA, ce qui
correspond à la valeur nominale d’une diode.
Dans la pratique, nous avons dû faire attention aux problèmes de masse flottante, puisque les
connexions T1 à T4 étaient "en l’air" au lieu du 0V lorsqu’elles ne sont pas branchées sur la carte
du FPGA. Le branchement direct de ces connexions sur la carte du FPGA régla ce problème.
2) La plaque de commande et d’horloge
C’est la plaque qui symbolise la commande utilisateur. Dans la réalité elle se présenterait sans
l’horloge (qui serait intégrée à la plaque du FPGA) et sous la forme d’une extension située sous le
volant d’une voiture par exemple.
Nous y avons donc intégré 1 bouton reset (ce n’est qu’une plaque d’essai), 1 bouton simple
"a" qui sert à commander le balayage intermittent, et 4 interrupteurs qui sélectionnent le mode de
fonctionnement du montage (balayage unique, lent, rapide…). Il aurait certes été préférable
d’utiliser un sélecteur 4 position, mais l’atelier n’en disposait pas.
Concernant ces problèmes de masse flottante qui ont été évoqués plus haut, nous les avons ici
retrouvés au niveau des interrupteurs. En reliant tout simplement à la masse avec une résistance
de 10kΩ les sorties des interrupteurs, on avait un vrai 0V.
Par contre quid de la consommation ? Car en reliant à la masse via une résistance, on y fait
passer un courant de 5/10000 = 500µA (puisque le FPGA dispose à ses entrées d’une impédance
infinie en théorie). Ce courant est négligeable (encore plus si on augmente la résistance).
Quand à l’horloge, elle est câblée comme dans la théorie et remplit parfaitement son rôle. Les
mesures à l’oscilloscope montrent certes un rapport cyclique différent de 50%, mais comme le
FPGA ne se déclenche que sur les fronts, il importe juste que la fréquence soit de 12Hz (ce qui est
le cas).
Voici les mesures effectuées à l’oscilloscope électronique pour cette horloge :
BIENKOWSKI & BEN ALAYA
13
COMMANDE POUR UN MOTEUR PAS À PAS
27/04/06
3) La plaque FPGA
Nous avons utilisé tout au long de notre projet la plaque disponible qui intègre un connecteur
pour la programmation, des plots d’alimentation et de masse, et où toutes les entrées/sorties du
FPGA sont accessibles.
L’horloge étant différente de l’horloge de base, nous avons branché la nôtre sur le plot
prévu (patte 43). Les tests effectués (mesure de la durée d’un balayement) montrent que le FPGA
fonctionne bien à cette fréquence.
Nous n’avons pas rencontré de difficultés particulières pour programmer le FPGA ; par
contre le fonctionnement de cette plaque nous a paru défaillant dans le sens où lorsqu’il était
alimenté en 5V, le FPGA n’offrait en sortie qu’un niveau de 3V voire moins.
Ce niveau n’étant pas suffisant pour amener les NMOS à devenir passants, notre montage
global a présenté des défauts de fonctionnement (les diodes de contrôle ne s’allumaient pas et le
moteur avait du mal à bouger).
En augmentant la tension d’alimentation (jusqu’à 6V), nous avons réussi a avoir un
comportement à peu près correct (des allers / retours ponctuels), mais jamais notre carte n’a
montré un comportement suffisamment stable pour être exploitée sur le long terme.
Devant ce constat, nous avons décidé de monter des résistances entre les sorties du FPGA et
la masse, de peur d’avoir ici aussi affaire à des masses flottantes. Si le montage de ces résistances
a amélioré le comportement de la maquette, il n’a pas résolu les problèmes des allers / retours qui
ne se faisaient pas entièrement.
Dans les simulations sur MaxPlus+II, le FPGA ne montre aucun disfonctionnement, ce qui
suggère :
- soit un problème interne au FPGA qui nous a été alloué (nous n’avons pas pu le
vérifier car il ne restait pas de FPGA disponible à ce moment là),
- soit un problème de conception au niveau de la sortie, et de la prise en charge des
ordres du FPGA par la carte d’alimentation du moteur.
Nous avons réalisé une plaque où tout est intégré (une plaque regroupant alimentation,
commande, horloge et FPGA), mais nous avons manqué de temps pour la tester.
Voici pour informations le schéma électrique de la plaque citée ci-dessus, qui regroupe
l’ensemble du dispositif :
BIENKOWSKI & BEN ALAYA
14
COMMANDE POUR UN MOTEUR PAS À PAS
27/04/06
Programmation
Alimentation
Contrôle Utilisateur
Partie Horloge
BIENKOWSKI & BEN ALAYA
15
COMMANDE POUR UN MOTEUR PAS À PAS
IV-
27/04/06
Conclusion
BIENKOWSKI & BEN ALAYA
16
Téléchargement