Vous êtes sur la page 1sur 14

D

Moteurs électriques

Les stratégies de commande d’un robot doivent être exécutées par les actionneurs présents
sur ce robot, c’est-à-dire par des moteurs capables de fournir l’énergie mécanique nécessaire.
Dans un robot classique 6R, chaque segment porte typiquement un moteur à son extrémité
pour actionner l’articulation suivante, bien qu’il soit aussi possible de garder les moteurs vers
la base et de transmettre leur mouvement par des systèmes de câbles et poulies, afin d’alléger
les segments. Comme mentionné au chapitre 1, les moteurs électriques à courant continu sont
actuellement les moteurs les plus souvent rencontrés en robotique 1 . Le but de ce chapitre est
de passer en revue la modélisation de ces moteurs et leur asservissement local en position,
vitesse ou couple/courant, afin de mieux comprendre comment les stratégies de commande
d’un robot peuvent être implémentées à l’aide de ces moteurs, voir aussi la figure 7.1.
Pour expérimenter avec l’asservissement en vitesse et en position d’un moteur à courant
continu, le lecteur pourra se référer aux tutoriels de Matlab sur le sujet.

D.1 Modélisation d’un moteur à courant continu


D.1.1 Modèle électrique
Un moteur à courant continu est une machine tournante composée d’une partie fixe, le
stator, et d’un élément en rotation, le rotor, voir la figure D.1. Le stator comporte des aimants
qui créent un champ magnétique dans lequel évolue le rotor. Ce dernier porte une armature
conductrice de courant électrique, appelée aussi induit, connectée à une alimentation par le
biais de contacts mobiles appelés balais (“brush” en anglais), attachés au stator. Le rotor est
aussi attaché au mécanisme externe au moteur auquel on souhaite transmettre le mouvement
de rotation. Ce mouvement de rotation peut ensuite être converti si besoin en un mouvement
de translation (dans le cas d’une liaison prismatique), par exemple via un sytème de pignon-
crémaillère.
1. D’autres types de moteurs électriques sont aussi utilisés, comme les moteurs électriques sans balais et
les moteurs pas-à-pas, mais ceux-cis ne seront pas discutés dans ces notes. Les moteurs pas-à-pas se prêtent
bien à une commande en position ou en vitesse, mais offrent des performances faibles à divers niveaux, et ne
se rencontrent généralement que dans les robots très bon marché. Les moteurs sans balais conduisent à une
analyse similaire à celle faite dans ce chapitre. Les moteurs à courant alternatif peuvent aussi actionner des
robots devant transporter de lourdes charges, par exemple sur les chaînes de montage.

208
We will analyze in some detail the dynamics of permanent magnet DC-
motors, as these are the simplest actuators to analyze and are commonly
used in robot manipulators. Other types of motors, in particular AC-
motors and so-called brushless DC-motors are also used as actuators
for robots but we will not discuss them here.
308 8.9. Actuation, Gearing, and Friction
A DC-motor works on the principle that a current-carrying conductor
in a magnetic field experiences a force F = i x ¢, where 1> is the magnetic
flux and i is the current in the conductor. The motor itself consists of a Encoder
Commutator
fixed stator and a movable rotor that rotates inside the stator as shown in
Figure 6.2. Magnet
Windings
Motor shaft

Motor output pinion


(input to gearhead)
Torsional
spring
Planetary
gearhead
Brush Housing
(magnetic return)

Ball bearings

Gearhead
Commutator Windings output shaft

Magnet
Figure 6.2: Principle of operation of a permanent magnet DC motor. The Shaft
magnitude of the force (or torque) on the armature is proportional to the
product of the current and magnetic flux. A commutator is required to
periodically switch the direction of the current through the armature to keep
Brush Housing
it rotating in the same direction.

Figure
If the stator D.1
produces – Moteurs
a radial électriques
magnetic flux à courant
1> and the current continu. Figure de gauche
of Maxon :Precision
schéma simplifié de
Figure 8.11: (Top) A cutaway view of a Maxon brushed DC motor with an encoder
in the
and gearhead. (Cutaway image courtesy Motors, Inc., maxonmo-
fonctionnement (source : [MWS05, Fig. 6.2]). Un commutateur
torusa.com.) permet
The motor’s rotor consists of the de renverser
windings, commutatorla ring,
direction
and shaft.
Each of the several windings connects different segments of the commutator, and as
du courant périodiquement dans l’armature afin
the motor quethelatwoforce
rotates, brushesde
slideLorentz produise
over the commutator unmake
ring and couple
contact
permettant de toujours tourner dans la même direction. Figure de droite : schéma réaliste d’un
with different segments, sending current through one or more windings. One end of the
motor shaft turns the encoder, and the other end is input to the gearhead. (Bottom)
moteur à courant continu avec encodeur et réducteur
A simplified à engrenage
cross-section intégrés
of the motor only, showing (source : [LP17,
the stator (brushes, Fig.
housing, and
magnets) in dark gray and the rotor (windings, commutator, and shaft) in light gray.
8.11] et Maxon Precision Motors, Inc.)
where I, measured in amps (A), is the current through the windings. The
constant kt , measured in newton-meters per amp (N m/A), is called the torque
Lorsqu’un courant i(t) parcoure l’armature,
constant.leTheconducteur surasleheat
power dissipated rotor subit
by the en chaque
windings, measured point
in watts
(W), is governed by
l’effet de la force de Lorentz F = i ⇥ , où est le flux magnétique Pheat = I 2constant
R, dû à l’aimant.
La géométrie de l’induit et des aimants sur le stator est choisie de telle façon qu’il s’exerce
finalement un couple de magnitude Dec 2019 preprint of updated first edition of Modern Robotics, 2017. http://modernrobotics.org

⌧m (t) = km i(t), (D.1)

sur le rotor, avec km une constante dépendant de l’intensité du flux magnétique et de la


géométrie interne du moteur, appelée par la suite constante du moteur. Ce couple permet de
faire tourner le rotor, et on dénotera !m (t) la vitesse de rotation instantanée du rotor.
L’alimentation de l’induit est une source de tension v(t), considérée comme l’entrée du
système moteur. On appelle L l’inductance de l’induit et R sa résistance. De plus, lorsqu’un
conducteur se déplace dans un champs magnétique, il se crée à ses bornes une tension vb ,
proportionnelle à sa vitesse, qui tend à s’opposer au flot du courant dans l’induit. Cette tension
s’appelle la force contre-électromotrice (FCEM, ou back-emf en anglais pour back electromotive
force). Ici, on peut écrire
vb (t) = kb !m (t),
avec kb une constante. En unités SI, km s’exprime en N · m/A, kb en V · s (ou V · s/rad), et on
peut montrer que dans ces unités on a km = kb . Cependant, il est assez courant de garder ces
deux constantes distinctes dans la notation pour clarifier. L’équation électrique pour l’induit

209
(2) km (2)
⌧m,ss = V
R ss

(2)
Vss
(1)
⌧m,ss ..
(1) .
(0)
Vss
⌧m,ss (0)
Vss

(0) (1) (2) (2)


Vss
!m,ss !m,ss !m,ss = kb

Figure D.2 – Droites vitesse-couple pour un moteur à courant continu (en régime permanent).

est finalement
di di
v=L + Ri + vb = L + Ri + kb !m (t). (D.2)
dt dt
La résistance R de l’induit implique qu’une puissance Ri2 (t) = (R/km2 2
)⌧m (t) est dissipée à
tout instant, ce qui entraîne l’échauffement du moteur lorsqu’il fournit un couple. En consé-
quence, le constructeur d’un moteur spécifie généralement une valeur ⌧cont donnant le couple
maximum en opération continue, c’est-à-dire qu’on ne doit pas avoir ⌧ (t) > ⌧cont pendant une
durée prolongée. Un robot industriel est en général équipé de capteurs de température qui
coupent l’alimentation du système en cas de surchauffe.

Régime Permanent
Si on applique une tension constante Vss au moteur (ou si l’on maintient i constant), il
s’établit avec une constante de temps L/R un régime permanent tel que

R
Vss = RIss + kb !m,ss = ⌧m,ss + kb !m,ss ,
km

c’est-à-dire qu’on a en régime permanent une relation affine entre le couple et la vitesse angu-
laire, pour une tension constante

km kb km 1 R
⌧m,ss = Vss !m,ss ou !m,ss = Vss ⌧m,ss . (D.3)
R R kb kb km

Augmenter la charge fait donc baisser la vitesse de rotation. En l’absence de charge on a


⌧m,ss = 0 et donc la vitesse angulaire est !m,ss = Vss /kb , proportionnelle à la tension. A
l’inverse, si on bloque le rotor pour avoir !m,ss = 0 alors le couple fourni est ⌧m,ss = km Vss /R.
Mesurer ce couple à l’arrêt permet de déterminer la constante du moteur km = ⌧m,ss R/Vss . La
spécification d’un moteur inclut généralement les droites vitesse-couple correspondant à (D.3)
pour différentes valeurs de Vss , voir la figure D.2.

210
The remainder of this section refers to Figure 6.5 consisting of the DC-
motor in series with a gear train with gear ratio r : 1 and connected to a
link of the manipulator. The gear ratio r typically has values in the range
20 to 200 or more. Referring to Figure 6.5, we set Jm = Ja + J9 , the sum of
the actuator and gear inertias.

Jl

Jm
<latexit sha1_base64="+YcRazkDSpOoDXuFO2B5tLcO0X0=">AAAB6nicbVBNSwMxEJ3Ur1q/qh69BIvgqexKRY8FL+Kpov2AdinZNNuGJtklyQpl6U/w4kERr/4ib/4b03YP2vpg4PHeDDPzwkRwYz3vGxXW1jc2t4rbpZ3dvf2D8uFRy8SppqxJYxHrTkgME1yxpuVWsE6iGZGhYO1wfDPz209MGx6rRztJWCDJUPGIU2Kd9HDXl/1yxat6c+BV4uekAjka/fJXbxDTVDJlqSDGdH0vsUFGtOVUsGmplxqWEDomQ9Z1VBHJTJDNT53iM6cMcBRrV8riufp7IiPSmIkMXackdmSWvZn4n9dNbXQdZFwlqWWKLhZFqcA2xrO/8YBrRq2YOEKo5u5WTEdEE2pdOiUXgr/88ippXVT9y6p3X6vUa3kcRTiBUzgHH66gDrfQgCZQGMIzvMIbEugFvaOPRWsB5TPH8Afo8wcdqI2k</latexit>

!m = !l
<latexit sha1_base64="2nm7/HDYFK/3hdI1bmW+8afZBl0=">AAACA3icbVBNS8NAEN34WetX1JteFovgqSRS0YtQ8KDHCvYDmhAm2027dDcJuxuhhIIX/4oXD4p49U9489+4bXPQ1gcDj/dmmJkXppwp7Tjf1tLyyuraemmjvLm1vbNr7+23VJJJQpsk4YnshKAoZzFtaqY57aSSggg5bYfD64nffqBSsSS+16OU+gL6MYsYAW2kwD70EkH7EAh8hb0bEAJwofDArjhVZwq8SNyCVFCBRmB/eb2EZILGmnBQqus6qfZzkJoRTsdlL1M0BTKEPu0aGoOgys+nP4zxiVF6OEqkqVjjqfp7Igeh1EiEplOAHqh5byL+53UzHV36OYvTTNOYzBZFGcc6wZNAcI9JSjQfGQJEMnMrJgOQQLSJrWxCcOdfXiSts6p7XnXuapV6rYijhI7QMTpFLrpAdXSLGqiJCHpEz+gVvVlP1ov1bn3MWpesYuYA/YH1+QO2upbi</latexit>

bm
<latexit sha1_base64="M4ewrme+/iFEwy/HkJ0O0Amapqc=">AAAB6nicbVDLSgNBEOyNrxhfUY9eBoPgKeyKoseAF48RzQOSJcxOepMhM7PLzKwQQj7BiwdFvPpF3vwbJ8keNLGgoajqprsrSgU31ve/vcLa+sbmVnG7tLO7t39QPjxqmiTTDBssEYluR9Sg4AoblluB7VQjlZHAVjS6nfmtJ9SGJ+rRjlMMJR0oHnNGrZMeop7slSt+1Z+DrJIgJxXIUe+Vv7r9hGUSlWWCGtMJ/NSGE6otZwKnpW5mMKVsRAfYcVRRiSaczE+dkjOn9EmcaFfKkrn6e2JCpTFjGblOSe3QLHsz8T+vk9n4JpxwlWYWFVssijNBbEJmf5M+18isGDtCmebuVsKGVFNmXTolF0Kw/PIqaV5Ug6uqf39ZqV3mcRThBE7hHAK4hhrcQR0awGAAz/AKb57wXrx372PRWvDymWP4A+/zB0I4jbw=</latexit>

FigureFigure D.3 – model


6.5: Lumped Modèleof mécanique
a single linkd’un
withmoteur avec réducteur.
actuator/gear train. Ja, J9 ,
and Je are, respectively, the actuator, gear, and load inertias. Bm is the
coefficient of motor friction and includes friction in the brushes and gears.
Remarques préliminaires sur l’asservissement des moteurs
In terms
De la discussion of the motor
ci-dessus, on peut Bm, the
angleretenir lesequation of motion
deux points of this
suivants poursystem is
la suite.
then
1. D’après (D.1), le couple exercé
2
sur le rotor est proportionnel à l’intensité du courant
dans l’induit. Ainsi, commander leB moteur
J d Bm = produire un couple désiré(6.8)
dBm pour est équivalent
mdt2 + mdt
à commander le courant i.
2. La relation affine (D.3) nous dit que l’on peut commander la vitesse de rotation du
moteur en ajustant
the latter equalitylacoming
tensionfrom
à sesEquation
bornes. (6.4).
En effet, la constante
In the de temps
Laplace, domain the électrique
L/R est typiquement très petite par rapport aux constantes de temps mécaniques, donc
on peut supposer le régime permanent toujours à peu près établi dans une application de
commande du mouvement. Cependant en boucle ouverte cette commande est fortement
perturbée par la charge attachée au rotor et donc le couple exercé. Un asservissement en
vitesse ajustant la tension dans une boucle de rétroaction pourra permettre de diminuer
l’influence du terme de couple.

D.1.2 Modèle mécanique


Les moteurs électriques à courant continu délivrent facilement une grande vitesse de rota-
tion mais un couple généralement faible. Ainsi, pour les utiliser en robotique on leur ajoute
la plupart du temps un réducteur, typiquement constitué d’un engrenage (gear en anglais),
avec des rapports d’engrenages généralement élevés, voir les figures D.1 et D.3. Soit ⇢m , ⇢l les
rayons des roues de l’engrenage sur l’axe du moteur et de la charge respectivement. On définit
le rapport de transmission par
⇢l !m !˙ m
= = = ,
⇢m !l !˙ l
les égalités étant dûes à la condition de roulement sans glissement ⇢l !l = ⇢m !m . Le rapport
est typiquement de l’ordre de 10 à 200 ou plus.
Le rotor entraîne mécaniquement un axe d’inertie Jm . Les équations de la dynamique
rotationnelle s’écrivent

Pour l’axe du moteur : ⌧m = Jm !˙ m + bm !m + f ⇢m


Pour l’axe de la charge : f ⇢l = Jl !˙ l + bl !l + ⌧l ,

211
avec f la force exercée par la roue du moteur sur la roue de la charge, bm , bl des coefficients
de frottement et ⌧l le couple exercé sur l’axe de la charge. On en déduit
f ⇢l
⌧m = Jm !˙ m + bm !m +
✓ ◆ ✓ ◆
Jl bl ⌧l
⌧m = Jm + 2 !˙ m + bm + 2 !m +
⌧l
⌧m := Jeq !˙ m + beq !m + . (D.4)

Typiquement en robotique l’inertie Jl de la charge d’un moteur à une articulation dépend


de la configuration courante du robot, et il en est de même pour le couple ⌧l . Cependant, on
remarque qu’une grande valeur de tend à diminuer l’impact de ces termes dans l’équation
ci-dessus. Ainsi, l’introduction d’un réducteur avec un rapport de transmission élevé facilite
l’implémentation de stratégies de commande simples à chaque articulation, qui ne ne néces-
sitent pas une modélisation de la dynamique du robot. On pourra écrire

⌧m = Jm !˙ m + bm !m + d(t), (D.5)

avec

d = (Jl !˙ m + bl !m )/ 2
+ ⌧l / (D.6)

un terme de perturbation dû à la charge et dont l’impact diminue lorsque augmente. Notons


que pour un manipulateur les termes Jl , ⌧l dans d dépendent de manière nonlinéaire en général
de la configuration des segments distaux à l’articulation, c’est-à-dire les segments déplacés
par le moteur. Le réducteur tend donc à la fois à linéariser le système et à découpler les
actionneurs à chaque articulation, et ce d’autant plus que est grand. Cependant, l’engrenage
introduit aussi une dissipation de puissance mécanique supplémentaire par friction, et le jeu
dans les engrenages (backlash) produit des perturbations nonlinéaires. Pour éviter ces derniers
problèmes, on a parfois recours à des moteurs à entraînement direct (direct drive), pour lesquels
= 1 et l’influence de d ne peut généralement plus être négligée, ce qui requiert des stratégies de
commande centralisées prenant l’ensemble de la dynamique du robot en compte, telles que celles
introduites au chapitre 9. On notera aussi que pour pouvoir négliger le terme de perturbation
d, (D.6) montre qu’il faut que la vitesse et l’accélération du moteur soient suffisamment faibles.

D.1.3 Modèle global


En prenant la transformée de Laplace dans (D.2) et (D.5), on a

(Ls + R)I(s) = V (s) kb ⌦m (s) et (Jm s + bm )⌦m (s) = km I(s) D(s), (D.7)
donc (Ls + R)(Jm s + bm )⌦m (s) = km V (s) km kb ⌦m (s) (Ls + R)D(s) (D.8)
km
⌦m (s) = V (s) + D̃(s), (D.9)
(Ls + R)(Jm s + bm ) + km kb

avec D̃(s) ⇡ D(s)/(Jm s + bm ) un terme de perturbation. On traite ici la tension aux bornes
du moteur comme l’entrée et la vitesse angulaire du moteur !m comme la sortie. La figure

212
D

V + 1 I ⌧m + 1 ⌦m
Ls+R km Jm s+bm

kb

Figure D.4 – Schéma bloc de la dynamique d’un moteur à courant continu, incluant l’influence
de la charge comme terme de perturbation D.

V km + 1 ⌦m
R Jm s+b

Figure D.5 – Schéma bloc simplifié d’ordre 1 de la fonction de transfert V (s) ! ⌦m (s) d’un
moteur à courant continu, négligeant l’inductance et donc la dynamique du circuit électrique.

D.4 présente la dynamique du moteur sous forme de schéma bloc. Fréquemment, la constante
de temps électrique L/R est très inférieure à la constante de temps mécanique Jm /bm , auquel
cas on peut faire l’approximation 2 Ls/R ⌧ 1 pour obtenir une équation du premier ordre
remplaçant (D.8)
km km kb
(Jm s + bm )⌦m (s) = V (s) ⌦m (s) D(s) (D.10)
R R
d’où l’on déduit la relation suivante, correspondant au schéma de la figure D.5,
✓ ◆
1 km
⌦m (s) = V D , avec b = bm + km kb /R. (D.11)
Jm s + b R
Nous pouvons alors tirer une conclusion analogue à celle faîte en dessous de (D.3), à savoir que
la tension aux bornes du moteur commande essentiellement la vitesse de rotation, mais cette
relation est perturbée par le terme D dû à la charge, ainsi que par la dynamique propre du
moteur capturée ici par la fonction de transfert 1/(Jm s + b). Si l’on néglige ce terme D pour
l’instant, on obtient en régime permanent, pour une tension constante Vss , par le théorème de
la valeur finale,
1 km Vss km Vss
!m,ss = lim s = Vss = .
s!0 Jm s + b R s Rb kb + bkmmR

D.2 Asservissement des moteurs à courant continu


Comme expliqué au chapitre 7, les moteurs actionnant les articulations d’un robot sont
normalement équipés de leur propre contrôleur, utilisé pour fermer une boucle de commande
2. Cette approximation revient aussi à négliger le terme LsI dans la première équation de (D.7), donc à
faire l’approximation qui nous avait amené à (D.3), supposant que le circuit électrique est toujours en régime
permanent à l’échelle de temps qui nous intéresse.

213
D
⌦d + V km - 1 ⌦m
C
R + Jm s + b
-

Figure D.6 – Schéma bloc illustrant l’asservissement en vitesse d’un moteur à courant continu.
Le contrôleur C reçoit une commande de vitesse désirée et ajuste la tension du moteur pour
suivre cette commande, en limitant l’effet de la perturbation D.

locale autour de ce moteur. La boucle de commande du robot opère à plus haut niveau et
interagit avec ce contrôleur local plutôt qu’avec le moteur directement. La commande locale
permet de considérer le système contrôleur+moteur+réducteur (ou servomoteur) comme un
système capable de suivre approximativement un signal d’entrée qui est normalement un signal
de position, de vitesse ou de couple désiré, selon le mode choisi pour le contrôleur. Le contrôleur
de moteur se charge quant à lui d’ajuster les signaux électrique afin que la position, vitesse ou
couple du moteur suive ces signaux d’entrée. Au niveau supérieur de la commande du robot,
cet asservissement permet de simplifier le problème de commande, en négligeant la dynamique
du moteur. L’asservissement en position et en vitesse est aussi utilisé pour implémenter des
stratégies de commande décentralisées négligeant la dynamique du robot. On ne donne ici que
quelques exemples illustratifs et succincts de stratégies d’asservissement de moteurs, d’autres
approches sont certainement possibles.

D.2.1 Asservissement en vitesse


Un asservissement en vitesse du moteur permet à la sortie !m de celui-ci de suivre approxi-
mativement une consigne de vitesse désirée !d (t). Ceci est particulièrement utile par exemple
pour les stratégies de commande de type resolved-rate motion control, qui utilisent la cinéma-
tique différentielle inverse pour spécifier directement des vitesses articulaires, voir la section
7.3.2. Cet asservissement en vitesse peut-être réalisé simplement en fermant une boucle de
rétroaction sur le système de la figure D.5, afin d’obtenir le schéma de la figure D.6, qui sup-
pose que la vitesse !m peut-être directement mesurée, par exemple au moyen d’un tachymètre
et/ou d’un encodeur incrémental. Si seulement des mesures d’angles ✓m (t) sont disponibles,
il est nécessaire d’introduire un algorithme de différentiation numérique pour estimer !m (t).
Le bloc C sur cette figure représente le contrôleur de moteur, qui ajuste la tension d’entrée
du moteur en fonction de l’erreur constatée entre !d et !m . Lorsque le moteur est placé dans
ce mode d’asservissement, les couches supérieures de commande du robot peuvent supposer
!m (t) ⇡ !d (t), tout en sachant cependant que ceci n’est qu’approximativement vrai, pour des
trajectoires !d que le contrôleur est capable de suivre et des termes de perturbation d dans
(D.6) pas trop importants. En pratique, cela veut dire que la vitesse !d à suivre ne doit pas
être trop élevée et ne doit pas varier trop vite par exemple.
Typiquement, il suffit d’utiliser pour le bloc C(s) de la figure (D.6) un contrôleur de type

214
proportionnel-integral (PI), c’est-à-dire C(s) = Kp + Ki
s
, ou encore dans le domaine temporel

v(t) = Kp (!d !m ) + Ki (✓d ✓m ), (D.12)


Rt
avec ✓d (t) = 0 !d (⌧ )d⌧ l’angle désiré. Notons que le terme 1s ⌦m (s) = ⇥m (s) n’est pas géné-
ralement obtenu par intégration mais plutôt en mesurant l’angle ✓m du moteur, typiquement
au moyen d’un encodeur absolu dont le robot doit être de toute façon équipé pour pou-
voir mesurer et enregistrer les positions des articulations. Si on pose P (s) = 1/(Jm s + b)
C̃(s) = km C(s)/R = K̃p + K̃i /s, on a les fonctions de transfert

E(s) 1 E(s) P (s)


= S(s) = , = = P (s)S(s).
⌦d (s) 1 + P (s)C̃(s) D(s) 1 + P (s)C̃(s)

L’équation caractéristique 1 + P (s)C̃(s) = 0 s’écrit

Jm s2 + (b + K̃p )s + K̃i = 0,

ce qui montre que le système est stable pour tout choix de constantes
q K̃p > b, K̃i > 0.
La pulsation naturelle de cette équation du second ordre 3 est !n = K̃i
Jm
et le coefficient
b+K̃p
d’amortissement est ⇣ = p . Souvent, on choisit ⇣ = 1, c’est-à-dire un amortissement
2 K̃i Jm
critique, et on augmente !n pour accélérer la réponse. La vitesse de cette réponse est toutefois
limitée en pratique par le courant qui peut circuler dans l’armature, les erreurs de modélisation,
le bruit dans la mesure de !m et ✓m , etc.
Le terme intégral du contrôleur donne pour la fonction en boucle ouverte C̃(s)P (s) un
système de type 1, ce qui a pour conséquence de rejeter les perturbations d constantes et de
produire une erreur nulle ess = !d,ss !m,ss en régime permanent pour !d une fonction échelon,
c’est-à-dire ⌦d = A/s. En effet, par le théorème de la valeur finale, pour la réponse à !d ,

lim e(t) = lim sS(s)⌦d (s) = lim AS(s) = 0,


t!1 s!0 s!0

et on raisonne de manière similaire pour la réponse à d. Sans le terme intégral, on doit géné-
ralement avoir recours à des gains Kp élevés pour maintenir les erreurs suffisamment faibles,
ce qui peut amener les actuateurs à saturer et est donc généralement indésirable.
La figure D.7 montre les réponses !m de la vitesse d’un moteur asservi par une commande
PI, pour deux signaux d’entrée possibles !d , d’une part une échelon et d’autre part un signal
sinusoïdal. On a aussi rajouté une perturbation sinusoïdale via le couple ⌧l (t) dans (D.6).
Comme cette perturbation passe directement dans la sortie !m , le moteur est inutilisable en
boucle ouverte, en plus d’avoir une réponse très lente.

D.2.2 Asservissement en position


La commande en position d’un moteur (c’est-à-dire, l’angle ✓m du moteur) est utile no-
tamment pour la commande point à point d’un robot. L’utilisateur peut ne spécifier que des
3. On rappelle la forme standard s2 + 2⇣!n s + !n2 pour les systèmes du second ordre

215
Moteur en b. o. Moteur en b. f. - rép. échelon
1.5 1.2

1
1
0.8
(rad/s)

(rad/s)
0.6
0.5
0.4
m

m
0.2
0
0

-0.5 -0.2
0 2 4 6 8 10 0 0.5 1 1.5 2 2.5 3
t (s) t (s)
Moteur en b. f. - rép. sin. lente Moteur en b. f. - rép. sin. rapide
1 1

0.5 0.5
(rad/s)

(rad/s)

0 0
m

-0.5 -0.5

-1 -1
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5
t (s) t (s)
Figure D.7 – Asservissement en vitesse d’un moteur à courant continu. On a utilisé ici
une commande proportionnelle-intégrale C(s) = 5 + 10/s. Le terme intégral permet d’éliminer
l’erreur en régime permanent dans la réponse à un échelon et d’éliminer une erreur d constante.
Paramètres utilisés dans les simulations (on utilise pour ces tests le modèle du moteur complet) :
km = 0.1 N · m/A, kb = km , R = 1 ⌦, L = 1 µH, Jm = 0.01 kg · m2 , Jl = Jm , bm =
0.01 N · m · s/rad, bl = bm , = 100. La perturbation en couple est ⌧l (t) = sin(t). Pour le
moteur en boucle ouverte, on applique un échelon V = 0.2 V, ce qui donnerait !m,ss = 1
rad/s en régime permanent, en l’absence de perturbation. Cependant même dans un tel cas
idéal, la réponse du système est beaucoup trop lente en boucle ouverte pour être utile. En
boucle fermée, pour une entrée sinusoïdale, on peut remarquer que lorsque la fréquence (donc
l’accélération) augmente, la sortie a du mal à suivre. Ceci illustre les limites du contrôleur,
dont doit tenir compte l’utilisateur dans sa spécification de trajectoire.

216
+ -

!d
Kd
s
D
+ + V km - 1 1 ✓m
Kp +
✓d R + Jm s + b ⌦m s
- +

Ki / s

Figure D.8 – Asservissement en position d’un moteur à courant continu par un contrôleur
PID.

configurations intermédiaires et se reposer complètement sur les contrôleurs de bas niveau pour
atteindre ces configurations. Dans ce cas, le contrôleur de moteur doit essentiellement répondre
à une séquence de fonctions échelon. Pour un contrôle en position, la même structure de contrô-
leur (D.12) correspond maintenant un contrôleur proportionnel-dérivée (PD), avec Ki jouant
maintenant le rôle du gain proportionnel à la différence d’angle et Kp le gain proportionnel à
la différence des dérivées. En renommant les paramètres du contrôleur, on peut écrire
v(t) = Kp (✓d ✓m ) + Kd (!d !m ).
Encore une fois, le terme dérivée ici s’obtient plutôt par mesure de la vitesse !m que par
dérivation numérique de ✓m . La fonction !d s’obtient analytiquement et pas par dérivation
numérique, puisque la trajectoire ✓d est connue. On peut aussi ne pas inclure !d pour utiliser
un terme dérivée plus simple Kd !m .
Comme pour l’asservissement en vitesse, il est souvent utile d’inclure aussi un terme intégral
dans la commande, afin d’annuler au moins les perturbations constantes et l’erreur en régime
permanent dans la réponse à un échelon. Dans ce cas,
Z t
v(t) = Ki (✓d (⌧ ) ✓m (⌧ ))d⌧ + Kp (✓d ✓m ) + Kd (!d !m ),
0

et on obtient un contrôleur de type PID, qu’il faudra ajuster. Généralement on ajuste Kp


et Kd en premier pour obtenir le transient voulu, puis Ki pour ajuster la réponse en régime
permanent. La fonction de sensibilité du système en boucle fermée s’écrit, en prenant l’erreur
e = ✓d ✓m ,
✓ ◆
E(s) 1 1 km Ki
= , avec P (s) = et C̃(s) = Kp + Kd s + .
⇥m (s) 1 + P (s)C̃(s) s(Jm s + b) R s

L’équation caractéristique 1 + P (s)C̃(s) = 0 est maintenant d’ordre 3


Jm s3 + (K̃d + b)s2 + K̃p s + K̃i = 0,
avec K̃↵ = km K↵ /R, et le critère de Routh-Hurwitz nous dit que pour que le système soit
stable, il faut prendre K̃i > 0, K̃p > 0, K̃d + b > 0 et
K̃p (b + K̃d )
K̃i < .
Jm
217
Moteur en b. f. - rép. à un échelon Moteur en b. f. - rép. à une sin.
1.2 1.5

1
1

0.8
0.5
(rad)

(rad)
0.6
0
m

m
0.4

-0.5
0.2

-1
0

-0.2 -1.5
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
t (s) t (s)

Figure D.9 – Asservissement en position d’un moteur à courant continu. On a utilisé ici une
commande PID C(s) = 30 + 5s + 1/s. Les paramètres de la simulation sont les mêmes que
pour la figure D.7.

Si on règle d’abord Kp , Kd , cette condition place une limite supérieur sur le gain intégral. La
figure D.9 montre la réponse en boucle fermée ✓m (t) pour un contrôleur PID et une perturbation
⌧l sinusoÏdale.
Lorsque l’asservissement en position est utilisé pour suivre une trajectoire ✓d (t) variant
dans le temps, pas seulement pour atteindre une position constante, on ajoute souvent pour
améliorer la performance un terme d’action anticipatrice ou de feedforward, comme montré
sur la figure D.10. Ce terme permet de commencer à produire le signal ✓m voulu plus tôt, en
utilisant notre connaissance de ✓d , au lieu d’attendre qu’une erreur significative entre ✓d et ✓m
se développe pour activer la boucle de rétroaction. En prenant P̃ (s) = kRm P (s) et F la fonction
de transfert de feedforward, on obtient pour l’erreur

E(s) = ⇥d (s) P̃ (s)(C(s)E(s) + F (s)⇥d (s)) = P (s)C(s)E(s) + (1 P̃ (s)F (s))⇥d (s).

La fonction F n’a pas besoin d’être une fonction de transfert propre en général, car elle agit
seulement sur ✓d et des termes comme s⇥d (s) correspondent à la dérivée ✓˙d de l’entrée, connue,
plutôt qu’à la dérivation d’un signal physique. Si on prend F (s) = 1/P̃ (s) = s(Jm s + b), on
obtient pour la dynamique de l’erreur

(1 + P̃ (s)C(s))E(s) = 0,

et donc ✓m suivra l’entrée ✓d , quelle que soit ✓d . Le contrôleur PID avec feedforward sera alors
Z t
v(t) = Jm ✓¨d + b !d + Kp (✓d (t) ✓m (t)) + Kd (!d (t) !m (t)) + Ki ✓d (⌧ ) ✓m (⌧ )d⌧.
0

218
F
D
+ + V - 1 ✓m
km 1
C
✓d - e + R + Jm s + b ⌦m s

Figure D.10 – Asservissement en position d’un moteur à courant, avec terme de feedforward
F.

D.2.3 Asservissement en courant ou couple


Dans ce mode d’asservissement on souhaite que le moteur produise un couple ⌧m = ⌧d
désiré. En effet, les stratégies centralisées de commande de robot supposent généralement que
les actuateurs peuvent fournir directement un couple désiré, ce qui permet de négliger la dyna-
mique ou même le type des moteurs au moment de la conception de la stratégie de commande
du robot. D’après la relation de proportionnalité (D.1), ⌧m = km i, pour un moteur électrique
à courant continu, produire un couple revient à produire un courant i désiré dans l’armature,
le plus insensible possible aux variations de vitesse !m . D’un autre côté, il devient moins im-
portant d’être insensible au signal d de (D.6), car ce mode d’asservissement est généralement
utilisé dans des stratégies de commande centralisée du robot, qui modélisent et prennent en
compte les effects dynamiques et le couplage entre les différents segments et articulations.
Ce mode d’asservissement est typiquement réalisé au moyen d’un contrôleur de courant.
On retourne donc au schéma de la figure D.4 (en continuant ici à négliger l’inductance L),
et on ferme la boucle sur le courant au moyen d’un contrôleur dénoté C sur la figure. Une
méthode alternative utilise un capteur d’effort (strain gauge) pour fermer la boucle directement
sur ⌧m , ce qui à priori serait plus robuste, mais malheureusement les capteurs d’efforts sont
généralement assez peu précis ou difficiles à utiliser comparés aux capteurs de courant.

⌧m
D
-
Id V + 1 - 1 ⌦m
C km
+ - R I + J m s + bm

kb

Figure D.11 – Asservissement en courant ou couple d’un moteur à courant continu. Ici d est
donné par (D.6). De manière équivalente, on peut remplacer sur le schéma d par ⌧l / ainsi que
Jm et bm par Jeq et beq , voir (D.4).

On a les relations suivantes


✓ ◆
1 kb km
E = Id I, I = V I , V = CE,
R Jm s + b m
d’où l’on tire
Jm s + b m Jm s + bm
I= V = CE = P CE,
R(Jm s + b) R(Jm s + b)
219
avec comme avant b = bm + km kb /R, et donc

E 1 Jm s + b m
= , P (s) = .
Id 1 + PC R(Jm s + b)

La fonction de transfer a un zéro à z = bm /Jm et un pôle plus éloigné à gauche du plan


complexe, à p = b/Jm . La présence du zéro fait qu’en boucle ouverte le signal I suit essen-
tiellement instantanément le signal V (puisqu’on a négligé l’inductance L), et on pourrait tenter
de simplement améliorer le régime permanent grâce à un simple gain C, si on peut le prendre
suffisamment élevé sans atteindre les limites de courant. Une autre approche pour améliorer le
régime permanent peut conduire à un contrôleur de la forme suivante (lag compensation)

s (p + ✏p )
C(s) = K ,
s(s (z + ✏z ))

avec ✏z , ✏p deux petits nombres positifs ou nuls. Ce contrôleur possède un pôle à 0 afin d’obtenir
en boucle fermée une erreur nulle en régime permanent dans la réponse à un échelon. Le lieu
des racines, en fonction de K, est montré sur la figure D.12. Finalement, la figure D.13 illustre
la réponse obtenue pour le système en boucle fermée avec ce contrôleur.

(s+1.9)
Figure D.12 – Lieu des racines pour un système P (s) = s+1
s+2
et un contrôleur C(s) = K s(s+0.9) .

220
Moteur en b. f. - rép. à un échelon Moteur en b. f. - rép. à un une sin.
0.12 1

0.1
0.5
0.08
i (A)

i (A)

0.06 0

0.04
-0.5
0.02

0 -1
0 0.5 1 1.5 2 2.5 3 0 1 2 3 4 5
t (s) t (s)

Figure D.13 – Asservissement en courant/couple d’un moteur à courant continu. On a utilisé


(s+1.9)
le contrôleur C(s) = 20 s(s+0.9) , pour les paramètres du modèle donnés sur la figure D.7.

221

Vous aimerez peut-être aussi