Vous êtes sur la page 1sur 20

ROSE 2011

Asservissement PID, PWM et Ponts en H

Siwar Rais
Cédric Le Ninivin
Samuel Mokrani
24 mars 2011

1
Table des matières
1 Asservissement PID 3
1.1 Que signie asservissement ? . . . . . . . . . . . . . . . . . . . 3
1.2 Théorie d'un asservissement PID . . . . . . . . . . . . . . . . 3
1.2.1 P : Proportionnel . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 I : Intégrateur . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3 D : Dérivateur . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Comment régler les coecients ? . . . . . . . . . . . . . . . . . 6
1.3.1 Par une méthode théorique . . . . . . . . . . . . . . . 6
1.3.2 Par une méthode expérimentale . . . . . . . . . . . . . 7
1.4 Implémentation du PID . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Calcul du terme proportionnel . . . . . . . . . . . . . . 7
1.4.2 Calcul du terme intégral . . . . . . . . . . . . . . . . . 8
1.4.3 Calcul du terme dérivé . . . . . . . . . . . . . . . . . . 8
1.4.4 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 PWM 10
2.1 Dénition de PWM . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 Modes du PWM . . . . . . . . . . . . . . . . . . . . . 11
2.2 Applications du PWM . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Pilotage de leds . . . . . . . . . . . . . . . . . . . . . . 12
2.2.2 Pilotage d'un moteur . . . . . . . . . . . . . . . . . . . 12

3 Ponts en H 14
3.1 Utilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Protections . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4 Utilisation du Pont en H par des PWM 16


4.1 Locked Antiphase . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2 Introduction d'un temp mort . . . . . . . . . . . . . . . . . . . 16
4.3 Sign Magnitude . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.4 Phase correct . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

5 Bibliographie 19

2
1 Asservissement PID
1.1 Que signie asservissement ?
Pour bien cerner l'objectif d'un asservissement, prenons l'exemple d'un
robot à deux roues que l'on veut faire avancer droit. La première idée est
d'appliquer la même tension aux deux moteurs. Mais lorsque l'on applique la
même tension sur deux moteurs diérents, il se peut très bien qu'ils ne tour-
nent pas rigoureusement à la même vitesse ce qui aura pour conséquence de
ne pas faire avancer le robot tout droit. Il déviera légèrement. Ce phénomène
peut être dû à diverses raisons comme par exemple une diérence d'usure
entre les deux moteurs, une charge mal répartie sur le robot, . . .
Pour résoudre ce problème, on réalise un asservissement. Ce dernier a
donc pour but de faire atteindre au système une consigne avec précision.
Nous allons détailler dans la suite de ce document l'asservissement par
PID (Proportionnel Intégral Dérivé) mais il existe d'autres techniques d'assservisse-
ment comme par exemple l'asservissement LQR ("Linear Quadratic Regula-
tor") qui est plus ecace mais plus dicile à mettre en oeuvre.

1.2 Théorie d'un asservissement PID


Le principe général d'un asservissement est de récupérer l'état du sys-
tème à un instant donnée et de le comparer à la consigne de manière à le
corriger. Une consigne peut être une position, une vitesse, une accélération,
une tension, . . .mais le principe reste le même. L'asservissement PID est un
asservissement en boucle fermé comme en atteste le schéma suivant :

Figure 1  Asservissement avec régulateur PID

3
Dans la suite de ce document, on dénit les variables suivantes :


 Kp = G
Ki = 1/T i


Kd = T d

1.2.1 P : Proportionnel

Le bloc P réalise une action proportionnelle sur l'erreur. Cette dernière


est multipliée par Kp. Intuitivement, plus l'erreur est grande, plus la correc-
tion sera grande. Si l'on prend l'exemple d'une voiture qui tente de suivre
parfaitement une ligne blanche au sol, le bloc proportionnel est le fait de
tourner à gauche si la voiture dévie sur la droite ou de tourner à droite si la
voiture dévie sur la gauche.

Figure 2  Inuence de Kp
Pour voir l'inuence de Kp, on xe Ki et Kd à 0 et on fait varier Kp. On
voit bien que lorsque Kp est grand, la commande (courbes bleues) atteint plus
rapidement la consigne (courbes noires). De plus, on remarque l'apparition
d'oscillations autour de la consigne. Ces dernières peuvent apparaître lorsque
le système à asservir induit un déphasage. Sinon le problème ne se pose pas.
Dans certains cas, les dépassements peuvent être tolérés mais dans d'autres
il est impensable d'en avoir (robotique chirurgicale).
Mais le phénomène le plus problématique est que dans certains cas, le sys-
tème ne peut atteindre la consigne. C'est ce que l'on appelle l'erreur statique.

4
Pour des systèmes du premier ordre (H(p) = 1+τ H0
p
), il y aura l'apparition
d'une erreur statique à une entrée échelon. Pour que l'erreur statique soit
nulle à une entrée d'ordre m, il faut et il sut que la fonction de transfert
du système en boucle ouverte contienne m+1 intégrations.
Comme ici, nous nous intéressons principalement à une entrée échelon,
une intégration sut à annuler l'erreur statique.

1.2.2 I : Intégrateur

Le bloc I réalise une intégration de l'erreur. L'idée principale est d'intégrer


l'erreur depuis le début et d'ajouter le résultat à la consigne jusqu'à ce que
l'erreur devienne nulle. Lorsque l'erreur est nulle, le terme intégral se stabilise
et il compense parfaitement l'erreur entre la consigne et la vitesse réelle.
Comme pour le bloc P, lorsque Ki augmente, on atteint plus rapidement la
consigne. Pour reprendre l'exemple de la voiture, le terme intégral peut se
traduire par un contre braquage an de rétablir la trejctoire de la voiture.
Par contre la présence d'un intégrateur dans la chaîne induit la présence
d'oscillations.

Figure 3  Inuence de Ki
Nous voyons bien que l'erreur statique est annulée. Maintenant, on aimerait
bien avoir un système qui réagisse vite tout en étant stable. Pour compenser
le déphasage introduit par l'intégrateur, on va ajouter un terme dérivé qui
aura pour eet d'atténuer les oscillations.

5
1.2.3 D : Dérivateur

Il est assez facile de comprendre pourquoi le terme dérivé va atténuer les


oscillations : lorsque la commande va avoir tendance à dépasser la consigne,
la dérivé en ce point sera négative et donc ce terme aura tendance à ramener
la commande vers la consigne. Concernant notre voiture, le terme dérivé
représente le contre braquage dans le sens opposé à l'erreur lorsque l'on se
rapproche de la consigne.

Figure 4  Inuence de Kd
Avec un asservissement PID, nous pouvons obtenir une réponse assez
rapide, plutôt stable et précise.

1.3 Comment régler les coecients ?


On voit bien que selon les réglages choisis pour les diérents coecients,
nous obtiendrons des résultats plus ou moins bons. Il y a plusieurs critères à
optimiser :
 l'erreur statique
 le dépassement (stabilité)
 la rapidité

Mais il faut être conscient que selon le système que l'on a à asservir,
certains critères seront plus importants que d'autres. Nous allons voir deux
méthodes permettant de régler les coecients d'un PID : une théorique et
une expérimentale.

1.3.1 Par une méthode théorique

Cette méthode suppose la connaissance des équations intrinsèques du sys-


tème à modéliser (fonction de transfert du procédé dans la Figure 1). Il faut
aussi que les équations ne soient pas trop compliquées ce qui rendrait dicile

6
la résolution du problème. Cette méthode est résolue entièrement analytique-
ment en connaissant C(s)etH(s)). La fonction de transfert du schéma bloc
vaut donc

S(s) C(s)H(s)
E(s)
= 1+C(s)H(s)
.

En connaissant E(s) (par exemple un échelon), on est capable de calculer


S(s) et ainsi d'attribuer aux coecients Kp, Ki et Kp des valeurs pour
obtenir une sortie qui nous convienne. En pratique, les équations mises en jeu
sont assez complexes ce qui justie l'utilisation d'une méthode expérimentale.

1.3.2 Par une méthode expérimentale

Il existe plusieurs méthodes expérimentales pour déterminer les coe-


cients du PID. Nous allons aborder ici la méthode de Ziegler Nichols. Cette
méthode consiste tout d'abord à obtenir la limite de pompage. On obtient
cette dernière en mettant Kd et Ki à 0 et en faisant varier Kp pour obtenir
des oscillations auto-entretenues. Une fois la limite de pompage obtenue, on
note Kpo le coecient du bloc P et on mesure la période T o des oscillations
et on peut en déduire les coecients du PID de la manière suivante :

Kp = Kpo
1.7
Kd = Kpo
8
Ki = Kpo
2

Cette méthode a l'avantage d'être très simple que ça soit pour la mise en
place de l'expérience ou pour les calculs. Par contre elle peut parfois se révéler
dangereuse car le système peut entrer dans un état totalement instable.

1.4 Implémentation du PID


Dans cette dernière partie sur l'asservissement par PID, nous allons voir
comment implémenter un PID dans un microcontrôleur.

1.4.1 Calcul du terme proportionnel

Ce terme consiste juste en une multiplication de Kp par l'erreur. Il ne


pose pas de problème majeur.

7
1.4.2 Calcul du terme intégral

Le plus simple pour calculer ce terme est d'utiliser la méthode des rect-
angles :

Figure 5  Méthode des rectangles


Cette méthode consiste à approximer l'intégrale en sommant des aires de
rectangles. Plus on choisit un pas d'échantillonage petit, plus l'approximation
sera bonne. L'aire d'un rectangle est : ∆t × err. Si on intègre la constante
∆t dans le coecient Ki, nous avons : I(t + 1) = I(t) + err et à la n nous
multiplions le résultat par Ki.

1.4.3 Calcul du terme dérivé

Le principe pour calculer le terme dérivé est de calculer D(t) = err(t+1)−err(t)


∆t
.
De même que pour le calcul du terme intégral, on peut intégrer le ∆t dans
Kd et multiplier au dernier moment le résultat par Kd.

1.4.4 Code

L'implémentation peut se faire de la manière suivante ( ∆t est intégré


dans Ki et Kd) :

 On récupère la valeur du codeur dans Y


 On met à jour la consigne
 On stocke l'ancienne erreur utile pour le calcul de la dérivée
 On calcule la nouvelle erreur

8
 On calcule l'intégrale
 On calcule la nouvelle commande à envoyer au moteur
 On envoie la commande au moteur
 On réitère un certain nombre de fois à une fréquence dénit par un
timer
1 I = 0;
2 Init_timers (1);
3
4 for ( i =1 ; i <= Nb_cycles ; i ++ )
5 {
6 Y = Codeur ();
7 Ud = Consigne ();
8 e_old = e ;
9 e = Ud - Y ;
10 I = I + e;
11
12 U = Kp * e
13 + Ki * I
14 + Kd * ( e - e_old ) ;
15
16 Moteur ( U );
17 while ( ! end_timer () );
18 }

9
2 PWM
2.1 Dénition de PWM
Principe du PWM

Le PWM (Pulse Width Modulation) se traduit par : Modulation de


largeurs d'impultions(MLI).
Il consiste à alterner rapidement entre deux états distincts du système
an d'obtenir en moyenne un signal analogique.

Figure 6  Principe du PWM


Comme représenté, le signal PWM peut être obtenu en comparant un
signal avec un autre signal triangulaire. En eet, si le signal comparé est au
dessus du signal triangulaire, la sortie est à l'état bas. Dans le cas contraire,
la sortie est mise à l'état haut.
Le signal continu généré à partir des deux valeurs distinctes prend la
valeur moyenne sur les intervalles de temps.
On précise que dans la gure :
 Th représente la période de temps pendant laquelle le système est à
l'état haut.
 Tl représente la période de temps pendant laquelle le système est à
l'état bas.
Le PWM se caractérise par :
 la période PWM : T pwm = T h + T l
 le rapport cyclique d'impulsion (Duty cycle ) α = T pwmTh

10
La fréquence PWM est toujours constante par contre le rapport cyclique
peut varier. De plus, le signal PWM est un signal carré qui varie entre deux
valeurs extrèmes mais les systèmes sur lesquels on applique du PWM sont
en général des ltres passe bas (moteurs, oeil humain, . . .), ils ne ressentent
que la valeur moyenne du PWM.

2.1.1 Modes du PWM

Il existe deux modes du PWM :


 edge-aligned : Le signal est asymétrique par rapport au début de la
période. Ce signal s'obtient en comparant un signal constant avec un
signal triangulaire possèdant une seule pente. Nous trouvons le mode
left edge-aligned (à chaque début de période, on est à l'état haut) et le
mode right edge-aligned (à chaque n de période, on est à l'état haut)
 center-aligned : Le signal est une fois à l'état haut, et à la période suiv-
ante à l'état bas. Ce signal est donc symétrique par rapport au début
d'une période. Ce signal s'obtient en comparant un signal constant avec
un signal triangulaire à deux pentes.

Figure 7  Edge aligned

Figure 8  Center aligned

11
2.2 Applications du PWM
2.2.1 Pilotage de leds

L'électronique pour piloter des leds doit xer le courant qui les traverse.
On rappelle qu'un pilotage de leds en tension n'est pas ecace à cause de la
ligne exponentielle du courant qui traverse une led par rapport à la tension
à ses bornes. Le pilotage avec du PWM est surtout utilisé pour les leds de
puissance. À l'aide du PWM on peut bien contrôler la puissance lumineuse
des leds. En eet, le PWM peut être mis en place pour :
 xer le ux lumineux d'une led. Dans ce cas le rapport cyclique est
gardé constant.
 l'eet de "Dimming" : faire varier la puissance lumineuse au cours du
temps. Ici, on remarque que le rapport cyclique varie.

2.2.2 Pilotage d'un moteur

Un moteur peut être représenté par le schéma équivalent suivant :

12
Pour commander un moteur en continu, il y a un certain intervalle de
fréquences PWM permises. D'une part, une très petite fréquence PWM en-
gendre la sensibilité du moteur à la variation de tension. Pour se mettre au
dessus de cette fréquence minimale, il faut suivre les étapes suivantes :
 Tout d'abord on xe le pourcentage de stabilité P (donne le degrès de
variation du signal de sortie) qu'on souhaite avoir.
 Aprés, on se réfère à la datasheet du moteur pour obtenir la résistance
R et l'inductance L de son schéma équivalent.
Remarque : généralement le moteur est intégré dans un montage pont
en H (voir ci-dessous). Il ne faut pas oublier d'additionner les résistances
du MOSFET !
 Enn, il sut d'appliquer la formule suivante :

Figure 9  Fréquence minimale


D'autre part, si l'on utilise un pont en H (voir ci dessous), il ne faut pas
dépasser une certaine fréquence pour limiter les pertes lors de la commutation
des transistors du pont en H.
Mais si on choisit une fréquence de PWM qui appartient au spectre audi-
ble, nous allons entendre des siements au niveau du moteur. Une solution
à ce problème est l'utilisation du PWM Spread Spectrum. L'idée principale
est de garder un rapport cyclique constant mais de faire varier la fréquence
du PWM. Les fréquences sont ainsi réparties sur un plus large spectre. Toute
l'énergie n'est plus dans une seule fréquence mais elle est répartie. Le bruit
sera donc atténué.

13
3 Ponts en H
3.1 Utilité
En robotique il est souvent utile de pouvoir faire tourner un moteur dans
les deux sens. Pour cela on doit pouvoir appliquer aux bornes de ce moteur
un important courant et son opposé, ce qui n'est pas possible si celui-ci est
directement branché sur le micro-controlleur. Pour cela on utilise un jeu d'in-
terrupteurs pouvant être controllés par des courants moins importants. Ce
qui se traduit dans notre cas par l'usage de transistors.

3.2 Principe
Pour cela on utilise le système du pont en H qui tire son nom de la forme
de son schéma électrique.

Figure 10  Pont en H
Ce système permet bien d'appliquer un courant électrique important dans
les deux sens, comme on le voit dans le tableau suivant :

A B C D
1 0 0 1 le moteur tourne vers la doite
0 1 1 0 le moteur tourne vers la gauche
1 1 0 0 le moteur freine
0 0 1 1 le moteur freine
Tout autre branchement provoque un court-circuit

14
Voici une illustration de ce fonctionnement :

Figure 11  Fonctionnement vers la droite du moteur

3.3 Protections
Pour protéger le moteur on ajoute des diodes. En eet en cas d'arrêt
brutal de l'alimentation, la tension aux bornes du moteur est de V = L dt di

d'après la loi de Lenz. La diode de roue libre va donc permettre de dissiper


l'intensité emmagasinée au moment de l'arrêt brutal.

Figure 12  Pont en H avec diodes de roue libre

15
4 Utilisation du Pont en H par des PWM
Comme nous l'avons vu précedemment, les moteurs se comportent na-
turellement comme des ltres passes-bas et sont donc facilement controlable
grâce au PWM. En eet, il permet un contrôle proportionel et rapide du
système. Nous verrons dans cette partie comment utiliser ensemble les Ponts
en H autour d'un moteur à courant continu avec des PWM, les problèmes
que cela peut poser et leur solutions.
On notera bien évidemment que les interrupteurs sont ici des transistors
an de pouvoir être connectés directement en sortie du microcontrôleur.

4.1 Locked Antiphase


Nous commencerons par le cas le plus simple : Chaque demi-pont (A-
D et B-C) est connecté sur le PWM et A-D est à 1 lorsque le PWM est
à 1 et B-C à 1 lorsqu'il est à 0. Le moteur possède donc deux modes de
fonctionnement : avancer et reculer sur lesquels joue le micro controlleur.
Ainsi pour un rapport cyclique de 100%, le moteur avance à pleine vitesse,
et inversement pour un rapport à 0% le moteur recule à pleine vitesse. Ainsi
pour maintenir le moteur à l'arrêt il faudra un rapport de cyclique de 50%.
Le défaut de ce système vient des limitations physiques des transistors
dont le temps de fermeture est diérent de celui d'ouverture. On risque dès
lors d'avoir A-B ou C-D de fermés simultanément, ce qui provoquerait un
court-circuit.

4.2 Introduction d'un temp mort


Pour régler ce problème de manière simple, on asservi chaque demi-pont
à un PWM mais de manière inversée (PWM1 à 1 implique A-D laisse passer
le courant et PWM2 à 0 permet à B-C d'être actif). Ces deux PWM sont
en mode center-aligned ce qui nous permet d'avoir des fronts distincts pour
les deux signaux. Ainsi on peut facilement s'assurer de la bonne fermeture
des transistors en s'assurant que PWM2 est à zéro quand PWM1 y est et
que la transition à 1 de PWM1 implique une transition anticipée de PWM2
à 1. Ainsi, on assure aux transistors le temps de se refermer et d'éviter le
court-circuit.
Le défaut de cette période est qu'elle nécéssite 2 signaux PWM.

16
4.3 Sign Magnitude
Une autre méthode ne nécessitant qu'un seul signal PWM peut être mise
en place : la Sign magnitude.
Celle-ci consiste à s'assurer qu'un seul demi-pont est actif à la fois, c'est
à dire que le moteur ne peut qu'avancer dans un sens et freiner. Il faut dès
lors activer l'autre demi-pont pour pouvoir inverser le sens du moteur. Cette
méthode présente donc l'avantage de n'utiliser qu'un seul PWM, mais elle
implique un usage et donc une usure asymétrique du système. Finalement,
même si elle est simple à mettre en oeuvre elle présente un soucis de abilité
à long terme.

Figure 13  Les deux phases

4.4 Phase correct


Une troisième méthode est possible permettant de laisser les intervalles
de temps nécéssaires à la fermeture des transistors tout en s'assurant un
usage symétrique du système. Pour cela on utilise le mode "Phase Correct"
du PWM qui permet de décomposer chaque cycle en quatres étapes.
 (1) le demi-pont A-D est actif le moteur tourne vers la droite
 (2) on court-circuite le moteur
 (3) le demi-pont B-C est actif le moteur tourne vers la gauche
 (4) on court-circuite le moiteur

Figure 14  Les quatres phases du phase correct

17
Cette dernière méthode est able, mais le temps d'utilisation du moteur
de manière active est largement diminué par rapport aux autres méthodes.
Elle est donc bien moins réactive.

18
5 Bibliographie
 http ://ancrobot.free.fr/

 http ://fr.wikipedia.org/wiki/Régugulateur_PID

 http ://sciences-indus-cpge.papanicola.info/IMG/pdf/SA6-Precision_des_S-
A.pdf

 http ://en.wikipedia.org/wiki/H_bridge

 http ://www.rfc1149.net/rose2010

 http ://homepages.which.net/ paul.hills/SpeedControl

 http ://www2.renesas.eu

 http ://www.telecom-robotics.org

19
Table des gures
1 Asservissement avec régulateur PID . . . . . . . . . . . . . . . 3
2 Inuence de Kp . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Inuence de Ki . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4 Inuence de Kd . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5 Méthode des rectangles . . . . . . . . . . . . . . . . . . . . . . 8
6 Principe du PWM . . . . . . . . . . . . . . . . . . . . . . . . 10
7 Edge aligned . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8 Center aligned . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
9 Fréquence minimale . . . . . . . . . . . . . . . . . . . . . . . . 13
10 Pont en H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
11 Fonctionnement vers la droite du moteur . . . . . . . . . . . . 15
12 Pont en H avec diodes de roue libre . . . . . . . . . . . . . . . 15
13 Les deux phases . . . . . . . . . . . . . . . . . . . . . . . . . . 17
14 Les quatres phases du phase correct . . . . . . . . . . . . . . . 17

20

Vous aimerez peut-être aussi