PWM ET PONTS EN H

publicité
Étude de cas Rose 2010
PWM ET PONTS EN H
Romain Bichet, Julie Estivie, Etienne Molto et Flavia Tovo
1
Rose 2010
PWM et ponts en H
Table des matières
1 PWM
1.1 Principe général . . . . . . . . . .
1.1.1 Intérêt . . . . . . . . . . . .
1.1.2 Application . . . . . . . . .
1.1.3 Principe de fonctionnement
1.2 Application aux STM32 . . . . . .
2 Les
2.1
2.2
2.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
3
3
5
ponts en H
Pour quoi l’utiliser ? . . . . . . . . . . .
Comment le pont en H fonctionne-t-il ? .
Fonctionnalités additionnelles . . . . . .
2.3.1 Ajout de diodes de roue libre . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
6
7
7
la PWM
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
8
9
9
3 Pilotage d’un pont en H à l’aide
3.1 Locked antiphase . . . . . . . .
3.2 Introduction de dead-time . . .
3.3 Sign magnitude . . . . . . . . .
3.4 Phase correct . . . . . . . . . .
Le 30 mars 2010
de
. .
. .
. .
. .
.
.
.
.
.
.
.
.
.
.
2
Rose 2010
1
PWM et ponts en H
PWM
La modulation de largeur d’impulsion (Pulse Width Modulation en anglais)
est une méthode permettant de générer des signaux analogiques continus à l’aide
de systèmes en fonctionnement tout ou rien.
1.1
1.1.1
Principe général
Intérêt
L’intérêt du PWM est de pouvoir générer un signal continu à partir d’un
système fonctionnant en tout ou rien. Le principe est d’utiliser le filtre passebas naturel des systèmes (par exemple la persistance rétinienne de l’oeil humain,
l’inertie d’un moteur). Ainsi, à partir d’une succession d’états discrets pendant
un temps T, on peut obtenir une valeur continue moyenne pendant ce temps T.
1.1.2
Application
1er exemple : la led
On veut modifier la luminosité d’une led. Sur une période T, on la branche 50%
du temps à VCC et 50% du temps à la masse. Si la période T est suffisamment
petite (ici, on doit avoir T h50ms ), l’observateur n’aura pas l’impression que le
led s’allume et s’éteint, mais que globalement, elle éclaire moins que si elle était
tout le temps branchée à VCC. Ainsi, avec une led tricolore rouge-vert-bleu on
pourra générer n’importe quelle couleur en jouant sur l’intensité de chaque led.
Figure 1 – Schéma électrique d’une led
2ème exemple : le moteur
Pour contrôler la vitesse de rotation d’un moteur, on peut utiliser un PWM.
1.1.3
Principe de fonctionnement
Deux données sont importantes lorsqu’on veut faire du PWM : la période
T et le duty cycle d. Le duty cycle est le rapport du temps t pendant lequel
le système est à l’état haut sur la période. On a : d = Tt . Ainsi, si l’on a un
système qui peut générer un signal à 0 et un signal à VCC, pour générer un
signal continu constant à V CC
5 , on prendra un duty cycle égal à 0,20. Il faut
bien sûr veiller à prendre une période suffisamment courte pour que la fréquence
Le 30 mars 2010
3
Rose 2010
PWM et ponts en H
de fonctionnement du PWM soit supérieure à la fréquence de coupure du filtre
passe-bas naturel du système utilisé. Il est aussi possible de générer un signal
variable, en faisant varier le duty cycle au cours du temps, comme le montre la
figure ci-dessous :
Figure 2 – Un signal et son PWM
En rose, on peut voir le signal effectivement généré par le système. En vert,
on peut voir le signal perçu. On voit bien que lorsque la valeur du signal vert
est proche de VCC, le duty cycle est presque égal à 1, et il est presque égal à 0
lorsque la valeur du signal perçu est proche de 0.
Inversement, on veut pouvoir obtenir le signal vert à partir d’un PWM. Pour
trouver comment générer le PWM adéquat, on peut utiliser un comparateur
simple rampe. La tension à générer est comparée à une rampe de période T (la
période du PWM) variant de 0 à VCC. Lorsque la rampe est en-dessous du
signal à générer, la tension en sortie du PWM doit être à VCC et lorsque le
rampe est au-dessus du PWM, la tension en sortie du PWM doit être à 0.
C’est ce que résume la figure ci-dessous :
Figure 3 – Un signal et son PWM
Il existe deux modes de PWM :
– le mode edge-aligned
A chaque début de période, on est dans l’état haut. Le signal est donc
asymétrique par rapport au début de la période.
– le mode center-aligned
Au contraire au début d’une période on est une fois dans l’état haut et la
Le 30 mars 2010
4
Rose 2010
PWM et ponts en H
Figure 4 – Le mode edge-aligned
fois d’après dans l’état bas. Le signal a donc l’avantage d’être symétrique
par rapport au début de la période.
Figure 5 – Le mode center-aligned
1.2
Application aux STM32
Certains micro-contrôleurs STM32 possèdent des timers avec une fonctionnalité PWM. Pour la mettre en place il suffit de configurer certains registres.
Par exemple, si l’on veut configurer le channel Y du timer X (broche Z) en
PWM, il faut (pour le STM32RCT6) :
– activer l’horloge des fonctions alternatives (bit 1 du registre APB2ENR)
– activer l’horloge du timer X (un bit du registre APB1ENR ou APB2ENR)
– configurer la broche Z en output alternate function (registre GPIOZ→
CRLouGP IOZ → CRH)
– rentrer le prescaler du timer X (registre TIMX→ P SC)
– rentrer la période en nombre de cycles (registre TIMX→ ARR)
– rentrer le duty cycle en nombre de cycles (registre TIMX→ CCRY )
– choisir le mode 1 ou 2 du PWM (registre TIMX→ CCM R1ouT IM X →
CCM R2)
– choisir le mode edge-aligned, center-aligned (registre TIMX→ CR1)
Le 30 mars 2010
5
Rose 2010
2
PWM et ponts en H
Les ponts en H
Un Pont en H est un circuit électronique qui permet d’appliquer un voltage
à une charge dans 2 directions différentes. Ce circuit est couramment utilisé en
robotique et d’autres applications pour permettre aux moteurs DC de tourner
dans deux sens. Le nom pont en H est vient de la position des éléments de
commutation dans le circuit, placés dans les quatre branches d’un H.
Figure 6 – Schéma d’un pont en H
2.1
Pour quoi l’utiliser ?
Les moteurs électriques ont besoin de courants importants par rapport à la
sortie maximale d’un microcontrôleur. Un moteur ne marcherait pas si on le
branchait directement à la sortie d’un microcontrôleur. La première fonction du
pont en H est fournir de forts courants aux moteurs en permettant leur contrôle
par le microcontrôleur. Une autre fonction est de pouvoir inverser la tension aux
bornes du moteur pour inverser le sens de rotation. Inverser le sens d’un courant
est une tache simple dans les circuits électriques, il suffit de bien placer quelques
interrupteurs. On utilise des transistors à la place d’interrupteurs parce qu’un
transistor peut aussi amplifier un courant et est plus facile à contrôler par des
signaux numériques ou analogiques.
2.2
Comment le pont en H fonctionne-t-il ?
Voici un tableau qui résume les conclusions :
A
1
0
0
0
1
B
0
1
0
1
0
C
0
1
0
0
1
D
1
0
0
1
0
le moteur tourne à droite
le moteur tourne à gauche
le moteur tourne librement
le moteur freine
le moteur freine
Les autres configurations sont interdites.
Le 30 mars 2010
6
Rose 2010
PWM et ponts en H
Figure 7 – Le moteur tourne à droite
Figure 8 – Le moteur tourne à gauche
2.3
2.3.1
Fonctionnalités additionnelles
Ajout de diodes de roue libre
Selon le sens de polarisation, si l’on coupe brutalement l’alimentation du
moteur une surtension va apparaı̂tre du fait que le courant, selon la loi de Lenz,
va produire une tension V = Ldi
dt aux bornes du commutateur. La diode va
permettre à ce courant de circuler car elle sera passante dès que sa tension
directe sera atteinte. Sans cette précaution la tension va largement dépasser la
tension maximale admissible par le commutateur et le détruire. C’est le même
phénomène que sur une bobine de relais commandée par un transistor.
Le 30 mars 2010
7
Rose 2010
3
3.1
PWM et ponts en H
Pilotage d’un pont en H à l’aide de la PWM
Locked antiphase
Nous allons, dans cette partie présenter une application conjointe des deux
mécanismes présentés ci-dessus, ainsi que des adaptions nécessaires à son bon
fonctionnement. Comme nous l’avons vu ci-dessus, la PWM et les ponts en H
sont très adaptés au pilotage de moteurs à courants continus, notamment parce
qu’ils permettent une réponse proportionnelle en fonction du rapport cyclique
(très pratique pour contrôler la vitesse d’un moteur). Cependant, des particularités obligent à adapter les mécanismes. Nous allons donc passer en revue trois
façons de piloter un pont en H alimentant un moteur à l’aide de PWM. La
première manière de piloter un pont en H en PWM se nomme ”locked antiphase”. Elle consiste simplement à piloter les deux demi-ponts de manière inversée. Ainsi, soit le moteur est stimulé en marche avant, soit en marche arrière,
et ce en alternance. Avec un rapport cyclique de 100%, on obtient la commande
maximale en marche avant, 0% pour l’autre sens, et 50% pour l’immobilité.
Le principal défaut de ce mode de pilotage est qu’il peut potentiellement créer
des courts-circuits de l’alimentation lors des phases commutations : le temps
nécessaire à un transistor pour passer bloquant n’étant pas le même que celui
nécessaire pour devenir passant, il se peut que les deux transistors du même
demi-pont se retrouvent simultanément fermés.
3.2
Introduction de dead-time
Pour résoudre ce problème, on insère des temps morts lors des commutations : a chaque changement d’état, on passe par une courte phase où le moteur
est déconnecté de la masse et de l’alimentation. Ceci étant, on s’assure que le
transistor précédemment passant est maintenant bloquant avant de commuter
l’autre. Contrairement à la méthode précédente, celle-ci nécessite la génération
de deux signaux de PWM possédant des rapports cycliques différents tout en
gardant une synchronisation. Pour obtenir les signaux de chaque demi-pont,
on utilise un compteur capable de contrôler deux signaux et réglé en ”dualslope” (afin de générer des signaux de ”center-aligned PWM”). Les valeurs de
comparaison au compteur des deux sorties sont réglées de manière à obtenir
les deux signaux à l’état bas (transistors bloquants) pendant un court instant
à chaque fois qu’un signal descend et que l’autre remonte. Il est en outre indispensable de mettre à jour les deux valeurs de comparaison au compteur en
même temps lorsque le rapport cyclique change, afin de s’assurer que les deux
signaux ne puissent jamais être en même temps dans l’état haut (ce qui crée le
court-circuit).
Le 30 mars 2010
8
Rose 2010
PWM et ponts en H
Figure 9 – Introduction d’un dead-time
3.3
Sign magnitude
Une seconde possibilité de pilotage du pont en H est la ”sign magnitude” :
Dans ce mode de pilotage, un seul demi-pont passe d’un état à l’autre tandis
que l’autre reste figé. Ainsi, le moteur n’est plus piloté à l’aide d’une alternance
de tension positive et négative mais positive et nulle, ou négative et nulle (le
moteur est court-circuité) selon le sens de fonctionnement du moteur voulu. Pour
changer ce sens, il suffit de rentre actif le demi-pont qui était figé et inversement.
La principale qualité de ce mode de fonctionnement est sa simplicité : il suffit
d’un seul signal en PWM pour piloter le pont tout entier (et de deux si l’on
inclut des temps morts). De plus, lorsque le moteur est à l’arrêt, la tension à ces
bornes est nulle, et il n’y a aucune perte par effet Joule, contrairement au mode
”locked antiphase” dans lequel, pour le moteur à l’arrêt, la tension est la moitié
du temps positive et l’autre moitié négative. Malheureusement, le fait qu’il y
ait une dissymétrie entre les deux transistors du demi-pont figé d’une part et
entre les deux demi-ponts d’autre part peut impliquer un chauffage inégal des
composants et donc une altération des caractéristiques de ceux-ci.
Figure 10 – Les différentes phases de la
Le 30 mars 2010
sign magnitude PWM 9
Rose 2010
3.4
PWM et ponts en H
Phase correct
Afin de résoudre ce problème d’asymétrie du cycle tout en gardant la possibilité de laisser des intervalles de temps durant lesquels le moteur est courtcircuité, il est possible d’utiliser la ”phase correct PWM”. Ici, les deux demiponts sont pilotés de manière à ce que lors d’une période, on passe par les
quatre états suivants : le courant passe dans le moteur dans un sens (A), puis
on court-circuite le moteur (B), puis le courant le traverse dans l’autre sens (C)
et enfin on le court-circuite à nouveau (D). On obtient donc à nouveau un cycle
symétrique.
Figure 11 – Les différentes phases de la
Le 30 mars 2010
phase correct PWM 10
Rose 2010
PWM et ponts en H
Bibliographie
–
–
–
–
–
–
–
–
–
–
–
–
http ://www.cours.polymtl.ca/inf1995/materiel/pontH/
http ://en.wikipedia.org/wiki/H-bridge
http ://www.4qdtec.com/bridge.html
http ://www.mcmanis.com/chuck/robotics/tutorial/h-bridge/index.html
http ://www.mcmanis.com/chuck/robotics/tutorial/h-bridge/index.html
http ://fribotte.free.fr/bdtech/Drivers/DrivesPontH.html
http ://fribotte.free.fr/bdtech/variateur/variateur.html
http ://www.fourwalledcubicle.com/files/freaks/timerstutorial/Waves.png
http ://www.netrino.com/images/glossary/PWMFigure1.gif
http ://scripts.mit.edu/ orca/wiki/index.php ?title=MotorC ontrollers
http ://www.atmel.com/dyn/resources/prodd ocuments/doc8010.pdf
http ://www.netrino.com/Embedded-Systems/How-To/PWM-Pulse-WidthModulation
Le 30 mars 2010
11
Téléchargement