Académique Documents
Professionnel Documents
Culture Documents
d’asservissement
numérique de
position et de vitesse
Département : Département électrique
Encadrants : Pr. Abdelwahed TOUATI
Pr. Nabila RABBAH
1 | Page
Sommaire
Remerciements ..................................................................................................................... 1
Sommaire .............................................................................................................................. 2
Introduction générale .......................................................................................................... 3
Chapitre 1 : Notions générales sur le moteur électrique .................................................... 4
I. Présentation d’un moteur électrique à courant continu ............................................... 4
1. Constitution d’un moteur électrique à courant continu .................................................................. 4
2. Principe de fonctionnement du moteur électrique .......................................................................... 5
II. Modélisation mathématique du moteur électrique à courant continu ........................ 5
1. Modèle de connaissance du MCC à excitation série ....................................................................... 5
2. Elaboration des équations mécaniques et électriques du MCC ...................................................... 6
3. Elaboration de la fonction du transfert du MCC en boucle ouverte ................................................ 6
Chapitre 2 : Identification des paramètres du MCC et validation du modèle
mathématique obtenu ......................................................................................................... 8
I. Identification de la fonction de transfert du MCC sous MATLAB :............................ 8
II. Identification des paramètres du MCC :....................................................................... 8
1. Mesure de la résistance interne du MCC : ....................................................................................... 8
2. Mesure d’inductance du MCC : ....................................................................................................... 9
3. Mesure du coefficient 𝒌𝒌𝝓𝝓 du MCC : ................................................................................................ 9
4. Mesure du moment d’inertie J du MCC : ....................................................................................... 10
5. Mesure du coefficient du frottement visqueux du MCC : ..............................................................11
III. Validation les valeurs calculées des paramètres du MCC : ......................................... 11
Chapitre 3 : Conception des correcteurs ........................................................................... 12
I. Présentation de la boucle de régulation ...................................................................... 12
II. Méthode de placement des pôles ................................................................................ 12
1. Etablissement des cahiers de charges : .......................................................................................... 12
2. Calcul de la fonction de transfert du correcteur de vitesse : .......................................................... 14
3. Calcul de la fonction de transfert du correcteur de position : ........................................................ 14
III. Méthode de réglage de Takahashi .............................................................................. 14
1. Calcul des paramètres du PID numérique de vitesse : .................................................................. 15
2. Calcul des paramètres du PID numérique de position : ................................................................ 16
IV. Choix des correcteurs à implémenter sur Arduino ..................................................... 17
Chapitre 4 : Implémentation de l’asservissement sur Arduino ........................................ 18
I. Présentation du circuit d’asservissement par Arduino ............................................... 18
II. Approximation de PID sur Arduino............................................................................ 19
III. Code Arduino ............................................................................................................... 19
Conclusion générale .......................................................................................................... 22
2| Page
Introduction générale
Dans la plupart des processus industriels, il est indispensable de maîtriser certains
paramètres physiques. En automatique lorsque l’on souhaite atteindre une certaine vitesse,
température, position, angle..., il est donc très souvent nécessaire d’avoir recours à un
asservissement, c’est à dire un système capable d’atteindre et de maintenir une consigne en
utilisant une mesure. Il s’agit donc d’un système bouclé, dont il reste à déterminer la fonction
permettant de corriger la commande en fonction de la consigne initiale et de l’erreur mesurée.
Les moteurs électriques sont aujourd’hui présents dans toutes les branches de l’industrie
et dans nombreuses domaines. Cet intérêt grandissant envers les moteurs électriques exige
le besoin des processus industriels de commander ces moteurs en position et en vitesse afin
de contrôler un processus ou un système avec précision et une dépense minimale d’énergie.
Dans ce contexte, notre projet s’inscrit à réaliser un asservissement numérique de
position et de vitesse d’un moteur à courant continu par un circuit à base d’Arduino
Alors, le plan suivi dans la rédaction de ce rapport du projet est comme suit :
Le premier chapitre est dédié à la présentation et la modélisation mathématique du moteur à
courant
Le deuxième chapitre est consacré à l’identification des paramètres du MCC et validation du
modèle mathématique obtenu.
Le troisième chapitre est consacré à la conception des correcteurs en premier lieu par méthode
de placement des pôles et en deuxième lieu par méthode de Takahashi.
Le quatrième chapitre est dédié à la partie pratique étant l’implémentation sur Arduino
3| Page
Chapitre 1 : Notions générales sur le moteur
électrique
I. Présentation d’un moteur électrique à courant continu
Une machine à courant continu est une machine électrique. Il s'agit d'un convertisseur
électromécanique permettant la conversion bidirectionnelle d'énergie entre une installation électrique
parcourue par un courant continu et un dispositif mécanique ; selon la source d'énergie.
Un inducteur ou stator qui est l’élément du circuit magnétique immobile sur lequel un
enroulement est bobiné afin de produire un champ magnétique.
Un induit ou rotor qui correspond à un cylindre en tôles magnétiques isolées entre elles et
perpendiculaires à l'axe du cylindre. L'induit est mobile en rotation autour de son axe et est
séparé de l'inducteur par un entrefer. A sa périphérie, des conducteurs sont régulièrement
répartis.
Un collecteur, qui est solidaire de l'induit, est un ensemble de lames de cuivre, isolées
latéralement les unes des autres et disposées suivant un cylindre, en bout de rotor. Ces lames
sont réunies aux conducteurs de l’induit. Le collecteur a pour fonction d’assurer la
commutation du courant d’alimentation dans les conducteurs de l’induit.
Des balais, fixés sur la carcasse par le biais de portes balais, ils sont en carbone ou en
graphite permettent l’alimentation de l'induit (partie en rotation) grâce à un contact glissant
4| Page
entre les lames du collecteur reliées aux conducteurs de l’induit et le circuit électrique
extérieur.
2. Principe de fonctionnement du moteur électrique
Lorsque l'inducteur est alimenté, il crée un champ magnétique (flux d’excitation) dans l'entrefer,
dirigé suivant les rayons de l'induit. Ce champ magnétique « rentre » dans l'induit du côté du pôle Nord
de l'inducteur et « sort » de l'induit du côté du pôle Sud de l'inducteur. Quand l'induit est alimenté, ses
conducteurs situés sous un même pôle inducteur (d'un même côté des balais) sont parcourus par des
courants de même sens et sont donc, d'après la loi de Laplace, soumis à une force. Les conducteurs
situés sous l'autre pôle sont soumis à une force de même intensité et de sens opposé. Les deux forces
créent un couple qui fait tourner l'induit du moteur.
Avec :
5| Page
𝑒𝑒(𝑡𝑡) : Force contre-électromotrice du moteur ; tension créée par le bobinage du moteur pour s’opposer
à la variation du flux du champ magnétique le traversant [𝑉𝑉]
𝑖𝑖(𝑡𝑡) : Intensité du courant traversant le moteur [𝐴𝐴]
𝐶𝐶𝑚𝑚 (𝑡𝑡 ) : Couple moteur généré [𝑁𝑁. 𝑚𝑚]
𝐶𝐶𝑟𝑟 (𝑡𝑡) : Couple résistant sur l’axe moteur [𝑁𝑁. 𝑚𝑚]
𝐶𝐶𝑟𝑟 (𝑡𝑡) : Couple des frottements [𝑁𝑁. 𝑚𝑚]
𝛺𝛺(𝑡𝑡) : Vitesse de rotation du rotor [𝑟𝑟𝑟𝑟𝑟𝑟/𝑠𝑠]
𝑅𝑅 : Valeur de la résistance du moteur [𝛺𝛺]
𝐿𝐿 : Valeur de l’inductance du moteur [𝐻𝐻]
𝑉𝑉
𝑘𝑘𝜙𝜙 : Coefficient de la force contre-électromotrice � �
(𝑟𝑟𝑟𝑟𝑟𝑟/𝑠𝑠)
⇒ 𝑈𝑈(𝑠𝑠) = 𝑅𝑅. 𝐼𝐼(𝑠𝑠) + 𝐿𝐿. 𝑠𝑠. 𝐼𝐼 (𝑠𝑠) + 𝑘𝑘𝜙𝜙. 𝛺𝛺 (𝑠𝑠) = (𝑅𝑅 + 𝐿𝐿. 𝑠𝑠). 𝐼𝐼(𝑠𝑠) + 𝑘𝑘𝜙𝜙. 𝛺𝛺(𝑠𝑠)
b) Equations mécaniques :
𝑑𝑑𝛺𝛺
⎧ 𝐶𝐶𝑚𝑚 (𝑡𝑡 ) − 𝐶𝐶𝑟𝑟 (𝑡𝑡 ) − 𝐶𝐶𝑓𝑓 (𝑡𝑡 ) = 𝐽𝐽 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇é𝑒𝑒 𝑑𝑑𝑑𝑑 𝐶𝐶𝑚𝑚 (𝑠𝑠) − 𝐶𝐶𝑟𝑟 (𝑠𝑠) − 𝐶𝐶𝑓𝑓 (𝑠𝑠) = 𝐽𝐽𝐽𝐽. 𝛺𝛺(𝑠𝑠)
⎪ 𝑑𝑑𝑑𝑑 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿
𝐶𝐶𝑚𝑚 (𝑡𝑡 ) = 𝑘𝑘𝑘𝑘. 𝑖𝑖 (𝑡𝑡 ) ������������ � 𝐶𝐶𝑚𝑚 (𝑠𝑠) = 𝑘𝑘𝑘𝑘. 𝐼𝐼(𝑠𝑠)
⎨𝐶𝐶 (𝑡𝑡 ) = 𝐶𝐶 + 𝐶𝐶 (𝑡𝑡 ) = 𝐶𝐶 + 𝑓𝑓. 𝛺𝛺(𝑡𝑡 ) 𝐶𝐶 (𝑠𝑠) = 𝑓𝑓. 𝛺𝛺(𝑠𝑠)
⎪ 0 𝜐𝜐 0
⎩ 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝐶𝐶0 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠é 𝑛𝑛𝑛𝑛𝑛𝑛
6| Page
La forme canonique de la fonction de transfert du MCC en boucle ouverte s’écrit donc :
𝑘𝑘𝑘𝑘
𝛺𝛺(𝑝𝑝) 𝑅𝑅. 𝑓𝑓 + (𝑘𝑘𝑘𝑘)2
=
𝑈𝑈(𝑝𝑝) 𝐿𝐿. 𝐽𝐽 (𝐿𝐿. 𝑓𝑓 + 𝑅𝑅. 𝐽𝐽)
2 . 𝑠𝑠 2 + . 𝑠𝑠 + 1
𝑅𝑅. 𝑓𝑓 + (𝑘𝑘𝑘𝑘) 𝑅𝑅. 𝑓𝑓 + (𝑘𝑘𝑘𝑘)2
7| Page
Chapitre 2 : Identification des paramètres du MCC
et validation du modèle mathématique obtenu
I. Identification de la fonction de transfert du MCC sous
MATLAB :
Afin de s’assurer de la validité des différents mesures effectuées pour déterminer les paramètres de
notre MCC, il s’avère primordial l’identification de la fonction de transfert du MCC qui présente son
comportement réel. D’où vient l’implémentation du bloc suivant sur l’outil Simulink sur MATLAB.
Ce bloc permet en permet de récupérer et enregistrer, sur des périodes de temps précises, les
données reçus de la part de l’Arduino qui se présentent sous forme de nombres d’impulsions. Ces
nombres d’impulsions sont transformées à l’aide du bloc en valeurs de vitesse exprimée en 𝑡𝑡𝑡𝑡�𝑚𝑚𝑚𝑚𝑚𝑚 .
Ces valeurs de vitesse du MCC obtenus sont enregistrées dans le « IDDATA Sink ».
8| Page
2. Mesure d’inductance du MCC :
La mesure de l’inductance interne du MCC s’effectue par l’alimentation du moteur en un signal
alternatif carré à l’aide d’un Générateur de Basses Fréquences (GBF) et la visualisation à l’aide d’un
oscilloscope de la tension aux bornes des condensateurs (en série) branchés en série avec le moteur.
La valeur moyenne du signal alternatif, alimentant le MCC, étant nulle implique que le rotor du
moteur ne tourne pas. Ainsi la force contre-électromotrice 𝑒𝑒(𝑡𝑡) s’annule et le moteur se comporte
comme un circuit RL.
Le circuit complet est un circuit RLC dont l’équation différentielle, qui le gouverne pendant la charge,
s’écrit :
𝑟𝑟é𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑒𝑒𝑒𝑒 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 2𝜋𝜋𝜋𝜋
𝑑𝑑 2 𝑢𝑢𝑐𝑐 𝑑𝑑𝑢𝑢𝑐𝑐 𝑙𝑙𝑙𝑙𝑙𝑙 𝐶𝐶.𝐼𝐼 𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 𝑢𝑢𝑐𝑐 (𝑡𝑡 ) = 𝐸𝐸 cos � �
𝐿𝐿𝐿𝐿 + 𝑅𝑅𝑅𝑅 + 𝑢𝑢 𝑐𝑐 = 𝐸𝐸 ������������������� � 𝑇𝑇0
𝑑𝑑𝑡𝑡 2 𝑑𝑑𝑑𝑑
𝑇𝑇0 = 2𝜋𝜋√𝐿𝐿𝐿𝐿
9| Page
𝑑𝑑𝑑𝑑
𝑢𝑢(𝑡𝑡 ) = 𝑅𝑅. 𝑖𝑖 (𝑡𝑡 ) + 𝐿𝐿 + 𝑒𝑒(𝑡𝑡 )
� 𝑑𝑑𝑑𝑑
𝑒𝑒(𝑡𝑡 ) = 𝑘𝑘𝜙𝜙. 𝛺𝛺(𝑡𝑡 )
𝑑𝑑𝑑𝑑
Ainsi, par supposition, on admet qu’en régime permanent : =0
𝑑𝑑𝑑𝑑
D’où :
𝑈𝑈 = 𝑅𝑅 . 𝐼𝐼 + 𝐸𝐸 = 𝑅𝑅. 𝐼𝐼 + 𝐾𝐾𝐾𝐾 . 𝛺𝛺
𝑈𝑈 − 𝑅𝑅. 𝐼𝐼
⟹ 𝑘𝑘𝑘𝑘 = = 0,047
𝛺𝛺
4. Mesure du moment d’inertie J du MCC :
Afin de calculer le moment d’inertie du MCC, on entraîne le moteur en rotation à vide sans aucune
charge.
D’où, le couple résistant est nul : 𝐶𝐶𝑟𝑟 = 0
Puis on l’entraîne en freinage en coupant l’alimentation du moteur tout en visualisant sur MATLAB la
courbe 𝛺𝛺 (𝑡𝑡 ) = 𝑓𝑓 (𝑡𝑡 ).
Ainsi :
Δ𝛺𝛺
𝐶𝐶𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓 = 𝐽𝐽
Δ𝑡𝑡
10 | P a g e
5. Mesure du coefficient du frottement visqueux du MCC :
La valeur du coefficient du frottement 𝑓𝑓 est calculée de la fonction de transfert du MCC identifiée
auparavant par MATLAB, ayant déjà déterminé tous les autres paramètres du moteur à courant continu
à notre disposition.
1. ;;ll
On remarque que le module identifié du MCC représenté par le signal bleu est proche et similaire
au modèle mathématique du MCC représenté par le signal vert.
Alors :
On valide les valeurs qu’on a calculé des paramètres du MCC et par conséquent on procède à l’utilisation
du modèle mathématique qu’on a déjà élaboré.
11 | P a g e
Chapitre 3 : Conception des correcteurs
I. Présentation de la boucle de régulation
L’asservissement de la position et de la vitesse est accompli par une boucle cascade dont la boucle
intérieure régule la grandeur intermédiaire étant la vitesse de rotation du MCC, et la boucle extérieure
régule la grandeur principale étant la position.
12 | P a g e
13 | P a g e
2. Calcul de la fonction de transfert du correcteur de vitesse :
FTBF désirée :
𝜔𝜔𝑛𝑛 2 144
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 (𝑠𝑠) = 2 2
= 2
𝑠𝑠 + 2𝜉𝜉𝜔𝜔𝑛𝑛 . 𝑠𝑠 + 𝜔𝜔𝑛𝑛 𝑠𝑠 + 24. 𝑠𝑠 + 144
Avec les pôles étant :
𝑠𝑠1 = −12
�
𝑠𝑠2 = −12
14 | P a g e
1. Calcul des paramètres du PID numérique de vitesse :
Les paramètres ont été obtenus à l’aide de l’outil PID Tuner de Simulink qui est basé sur la
méthode de Takahashi.
15 | P a g e
2. Calcul des paramètres du PID numérique de position :
Les paramètres ont été obtenus à l’aide de l’outil PID Tuner de Simulink qui est basé sur la
méthode de Takahashi.
16 | P a g e
IV. Choix des correcteurs à implémenter sur Arduino
Sur Simulink, on visualise la sortie corrigée issue du MCC, avec le signal bleu représentant la sortie
corrigée par les correcteurs obtenus par méthode de Takahashi, le signal orange représentant la sortie
corrigée par les correcteurs obtenus par méthode de placement des pôles et le signal jaune représentant
la consigne :
On remarque donc :
Alors :
On implémente les fonctions de transfert des PID obtenus par méthode de réglage de Takahashi sur
ARDUINO
17 | P a g e
Chapitre 4 : Implémentation de l’asservissement
sur Arduino
I. Présentation du circuit d’asservissement par Arduino
Le circuit d’asservissement du MCC en position et en vitesse est constitué d’un Arduino Méga et un
Driver L298N.
Driver L298N :
La puce L298N est un circuit intégré de chez STMicroelectronics. Elle contient essentiellement : 2
ponts en H, permettant de piloter chacun 1 moteur électrique DC (dans un sens, ou dans l’autre) et une
logique de commande à « faible courant », pour piloter ces ponts à « fort courant »
En somme, le L298N est simplement un « double étage de puissance », permettant de commander
directement deux moteurs électriques, via des commandes logiques « basse puissance ».
Arduino Méga :
La carte Arduino Méga 2560 est une version augmentée de l’Arduino UNO. Elle possède une
grande capacité mémoire et un nombre important d’entrée/sortie et dispose de 54 E/S dont 14 PWM,
18 | P a g e
16 analogiques et 4 UARTs. Elle est idéale pour des applications exigeant des caractéristiques plus
complètes que la Uno et des projets nécessitant un grand nombre de capteur et d’actionneur.
19 | P a g e
// PID et Encodeur sont des structures globales
void PID_Recalc(void) {
// Acquisition des données et mesure de l’erreur
PID.vitesse = (Encodeur.position - PID.position_old)/DeltaT ; // Exprimé en « pas par DeltaT »
PID.position_old = Encodeur.position ;
// Mesure de l’erreur
PID.erreur_old = PID.erreur ;
PID.erreur = PID.consigne_vitesse - PID.vitesse ;
// Calcul du nombre dérivé
PID.derive = PID.erreur - PID.erreur_old/DeltaT ;
// Calcul du terme intégral
PID.integral += PID.erreur*DeltaT ;
// Calcul de la nouvelle commande
PID.pid = VKp*PID.erreur + VKi*PID.integral + VKd*PID.derivee ;
// Actualisation de la PWM envoyée au moteur
Moteur_PWM(PID.pid) ;
}
20 | P a g e
PID_Recalc() ;
}
21 | P a g e
Conclusion générale
En guise de conclusion, l’expérience de réalisation de ce projet dont on a conçu et réalisé une
boucle cascade afin d’asservir numériquement la position et d’un moteur à courant continu s’est avérée
bénéfique. Durant la durée de notre travail sur ce projet, on a acquis des nouvelles connaissances
concernant la commande industrielle numérique, les moteurs à courant continu et l’utilisation de
l’Arduino et ses modules complémentaires, chose qui est primordiale dans le domaine de l’ingénierie
dont on est inscrit.
Aussi ce projet, nous a permis de se familiariser avec le logiciel MATLAB et l’outil Simulink et
apprendre à utiliser les fonctionnalités présentes dedans.
Enfin, je tiens à remercier encore nos professeurs Nabila RABBAH et Abdelwahed TOUATI pour
leur encadrement tout le long de ce processus.
22 | P a g e