Upload
phamthu
View
249
Download
1
Embed Size (px)
Citation preview
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 1
Projet Robotique LEGO NXT
Etude de la motorisation du robot LEGO
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 2
Projet Robotique LEGO NXT
Objectif
- analyser le fonctionnement des moteurs NXT en régime statique et dynamique
- aborder la régulation de position et/ou de vitesse
- intégrer les moteurs dans l'étude du mouvement du robot
- étudier le déplacement du robot en situation réelle
- piloter les mouvements en vue de la réalisation d'un objectif
- asservir les mouvements en vue du déplacement autonome du robot suivi de ligne→
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 3
Projet Robotique LEGO NXT
- éléments du servo-moteur- caractéristiques du moteur- capteur de position- asservissement de base- étude du régulateur PID- numérisation de la régulation- prise en compte des non-linéarités
Etude de la motorisation NXT
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 4
Projet Robotique LEGO NXT
Capteur : codeur optique de position (rotation) sur l'arbre du moteur
Servo-moteur NXT
Problèmes inhérents à la construction: - Jeu codeur/ moteur , jeu moteur/arbre de sortie- Pas de mesure électrique (tension, courant)- Pas de mesure de vitesse instantanée
Actionneur électrique :moteur à courant continu à rotor sans fer et aimants permanents(flux constant)
Effecteur: réducteur mécanique à pignons avec sortie rotation
Réducteur étage par étage 10:30:40 = 1:4 9:27 = 1:3 10:20 = 1:2 10:13:20 = 1:2 Réduction totale 1:48
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 5
Projet Robotique LEGO NXT
Servo-moteur NXT : Codeur optique
Y = A XOR B
logique°
A
B
Y
DIRCompteur
décompteur°
remise à zéro
position numériquede l'arbre de sortie
360 encoder pulses per revolution of a LEGO motor (1° resolution)with quadrature signals, (max resolution is 720 pulses/rev but not used)
° éléments réalisés par software sur processeur ARM
codeur en quadrature
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 6
Projet Robotique LEGO NXT
Hacheur de commande intégré à la brique NXT
Servo-moteur NXT : Câblage général
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 7
Projet Robotique LEGO NXT
Servo-moteur NXT : Hiérarchie du contrôle
AVR ATmega(8 bits)
AVR32(32 bits)
Hacheur bidirectionnel Moteur CC
commandepwm
Batterie7.2V
Programme
Codeur optiquesortie
puissancepwm
liaison mécanique
AVR32
ATmega8
Hacheurs
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 8
Projet Robotique LEGO NXT
Servo-moteur NXT: équations
Equation mécanique:
avec
courant rotor A
tension rotor V
force contre électromotrice V
angle arbre sortie rad
vitesse arbre sortie rad/s
couple moteur N.m
couple résistant N.m
inductance rotor H
résistance rotor
constante de couple méca N.m/A
constante de fem V/rad/s
moment d'inertie kg.m2
coefficient de frotement visqueux Nm/rad/s
ia
ea
e f
Cm
C r
LRK m
K e
Jf
Ldia
dtR iae f = ua Equation électrique:
avec
J d dt
f = Cm−C r
e f = K e
Cm = K m ia
En régime statique, les dérivées sont nulles.
R I aK e = U a
K m I a− f = C r
La relation statique est donc :
[ R K e
K m − f ][ I a
] = [U a
C r ]Les valeurs des paramètres peuvent être déduites de quelques expériences
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 9
Projet Robotique LEGO NXT
Servo-moteur NXT : expérimentations
caractéristique à vide (philohome.com) caractéristique en court circuit
travail : calculer Ke en V/rd/s à partir de la courbe travail : évaluer Ra et Km
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 10
Projet Robotique LEGO NXT
caractéristique en charge à couple constant (philohome.com)
travail : évaluer f à partir du tableau ci-dessus
Servo-moteur NXT : expérimentations
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 11
Projet Robotique LEGO NXT
Servo-moteur NXT : expérimentations (philohome.com)
Cm =K m
RU a −
K e K m
R droite de pente −
K e K m
R
Cu = K m I a − f droite de pente , ordonnée à l'origine non nulle K m
travail : évaluer Km, Ke et f à partir des relevés graphiques fournis ci-dessus
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 12
Projet Robotique LEGO NXT
Servo-moteur NXT :
Ra = de 6.85 à 7.6K e = 0.46V /rad /sK m = 0.32 N.m / Af = de 1.12 à 2.2×10−3 Nm/rad / s
valeurs déduites ( signalées dans diverses publications, à comparer aux valeurs trouvées):
autres valeurs signalées:
(mesure directe) (valeur à confirmer par les mesures!)
L = 4.88 mHJ m = 1×10−5 kg.m2
valeur du couple de friction (collage) :
avec tension de décollage du moteurT c = K m
vc
R=3.56×10−4 Nm v c
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 13
Projet Robotique LEGO NXT
Servo-moteur NXT : simulation de la partie mécanique
entrée modulation MLI/PWM
sortie mécaniquearbre moteur
tension moteur
Hacheur 1 quadrant
travail : réaliser cette simulation multiphysique; elle sera faite avec l'extension COSELICA sur Scicoslab; l'installation de l'extension sera guidée par l'enseignant
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 14
Projet Robotique LEGO NXT
Servo-moteur NXT : simulation du modulateur PWM
sortie PWM
Horloge PWM 7.5kHz
entrée commande [0..100]
modulateur 1 quadrant
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 15
Projet Robotique LEGO NXT
Servo-moteur NXT : simulation du moteur Signal = échelon d'amplitude 50%
travail : vérifier la valeur du régime permanent; le gain statique correspond-il à la valeur prévue ?
0.0000 0.0005 0.0010 0.0015 0.0020 0.0025 0.0030 0.0035 0.0040 0.0045 0 .0050-1.0
-0 .5
0.0
0.5
1.0
1.5
2.0Graphic 1
t
y
0.0000 0.0005 0.0010 0.0015 0.0020 0.0025 0.0030 0.0035 0.0040 0.0045 0 .0050-5
0
5
10
15Graphic 2
t
y
0.0000 0.0005 0.0010 0.0015 0.0020 0.0025 0.0030 0.0035 0.0040 0.0045 0 .00500
10
20
30
40
50Graphic 3
t
y
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 16
Projet Robotique LEGO NXT
moteur
Servo-moteur NXT : hacheur 4 quadrants
Modulateur MLI et Schéma hacheur 4Q
entrée modulateur
signal MLI
travail pour moi: modifier le schéma pour quela tension de batterie soit une variable d'entréedu hacheur
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 17
Projet Robotique LEGO NXT
Servo-moteur NXT : hacheur 4 quadrants
Réponse échelon
0.0000 0.0005 0.0010 0.0015 0.0020 0.0025 0.0030 0.0035 0.0040 0.0045 0.00500
10
20
30
40
50
60Graphic 1
t
y
0.0000 0.0005 0.0010 0.0015 0.0020 0.0025 0.0030 0.0035 0.0040 0.0045 0.005002468
101214
Graphic 2
t
y
0.0000 0.0005 0.0010 0.0015 0.0020 0.0025 0.0030 0.0035 0.0040 0.0045 0.0050
0
5
10
15
20Graphic 3
t
y
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 18
Projet Robotique LEGO NXT
Servo-moteur NXT : équations dynamiques
u = L didt
Ri K e K m i = J d dt
f
Pour un couple utile Cr = cste, on a :
Passage en Laplace:
U = L p IR IK e K m I = J p f
pU p
=K e/K e K mRf
1 RJ fLK e K mRf p LJ
K e K mRfp2
par identification avec le second ordre , on obtient : k 0
1 2 n
p p2
n2
travail : calculer la fréquence propre et l'amortissement , vérifier la cohérence avec la simulation
n = K e K mRfL J
=12
1K e K mRf 1/2
RJ fLLJ 1/2k 0 =
K e
K e K mRf
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 19
Projet Robotique LEGO NXT
Servo-moteur NXT : équations dynamiques
Cas où le système est amorti ≥1
On pose : e =LR
m =RJ
K e K mRf
d'où avec pU p
≈K 0
1e p1m pK0 =
K e
K e K m+Rf
Réponse : Avec les valeurs proposées, on obtient :
ces valeurs étant proches, le modèle simplifié n'est pas valide; il faut conserver le modèle complet.
e=0.72 ms m=0.41 ms
Travail : calculer les constantes de temps avec les paramètres proposés
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 20
Projet Robotique LEGO NXT
Servo-moteur NXT : test direct (en l'air sans roues)Travail à faire: Faire un programme nxc de relevé à l'échelon de la position des moteurs
Méthode :- les mesures [position] converties en chaîne de caractère seront stockées dans un fichier "test.txt" qui contiendra 100 mesures (temps, moteur G, moteur D). Pour une relecture sus Excel/Calc ou Matlab/Scilab, les champs texte seront séparés par des blancs et chaque ligne terminée par "return". - créer le fichier par CreateFile (s'il existe un ancien fichier du même nom, le supprimer préalablement)- l'heure d'une mesure est donnée par CurrentTick- la position d'un moteur est donnée par MotorTachoCount, la vitesse par différence des positions entre deux mesures- initialiser toutes les variables utilisées- ne pas oublier d'arrêter les moteurs en quittant !- contrôler le temps de boucle par Wait(ms) [valeur très petite, voire nulle]
Exloitation: Tracer la réponse en position sur Calc ou Scilab et valider [ou non !] les paramètres proposés du moteur. En déduire les caractéristiques du moteur
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 21
Projet Robotique LEGO NXT
0 50 100 150 200 2500
10
20
30
40
50
60
70
80
Servo-moteur NXT : test direct (en l'air sans roues)Résultat: tracé sur Scilab pour PWM=50%
Commandes sous Scilab [M,text]=fscanfMat('test.txt');plot2d(M(:,1),M(:,2:3))
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 22
Projet Robotique LEGO NXT
Servo-moteur NXT : test direct (en l'air sans roues)
Résultat par exploitation graphique directe:La réponse en position est une rampe (intégrale de la réponse à l'échelon), plutôt caractéristique d'un premier ordre que d'un deuxième ordre
On constate que l'asymptote pour t-->infini est une droite de pente 52 pulsesen 150ms soit 6.01 rad/s
La commande est de 50% avec une tension de batterie (relevée avec Bricx) de 7.52V. En supposant les pertes du hacheur négligeables (commutateurs idéaux à Ron très faible), la commande est donc de 3.76V
On en déduit le gain en vitesse d'où
Cette valeur est comparable aux valeurs décrites par les autres auteurs .
K e ≈ 0.62rad / s/Vk 0 =6.013.76
=1.60 rad /s/V
En supposant que la commande a été appliquée sans retard par le processeur, l'asymptote montre un traînage de 50 ms ; c'est la constante de temps mécanique du système
il est vraisemblable que la valeur de Jmoteur proposée précédemment est fausse !
= 50×10−3 s
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 23
Projet Robotique LEGO NXT
Servo-moteur NXT : test direct (en l'air sans roues)
Résultat par modélisation de la réponse :La réponse en position est une rampe (intégrale de la réponse à l'échelon), plutôt caractéristique d'un premier ordre que d'un deuxième ordre. En considérant que la fonction de transfert est du 1er ordre (avec intégration pour la position) , la réponse temporelle est de la forme :
d'où y (t )=A K (t−τ)+ A K τ e− t /τ
y (t)=L−1[ Ap
Kp(1+τ p) ] avec τ=
RJK e
2 et K =1 /K e
function z = fun (p , t , y )z = y - p (1 ) ( t – p(2)) - p (1) * p(2) exp(− t / p(2) ) ;∗ ∗
endfunction
p0=[ 0 , 0 ] ;Uo=0.50*7.2;
[ f f , p]=leastsq ( l i s t ( fun , t , y/Uo) , p0 ) ;
Résolution sous Scilab par les moindres-carrés non-linéaires :
Travail à faire :- appliquer la méthode proposée aux mesures faites précédemment .
référence State Feedback Controller Design Roberto Bucher April 18, 2010
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 24
Projet Robotique LEGO NXT
Servo-moteur NXT : avec roues (en l'air)L'inertie totale est la somme de l'inertie des systèmes en rotation (rotor moteur, pignons, roue) ajout de l'inertie de la roue→
masse = 0.017 kg; Rayon = 0.028 m ;
A.N. En supposant la masse concentrée sur la périphérie de la roue, l'inertie est : soit J= 1.38 e-5 kgm^2 (valeur surévaluée)
J = mr2
Travail : - Refaire la mesure de la réponse à l'échelon.
- A-t-elle évolué par rapport à la réponse en l'air sans roues ? - Conclure sur la valeur de J estimée .
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 25
Projet Robotique LEGO NXT
Servo-moteur NXT : avec roues (en l'air)
Résultat:
Les nouvelles mesures donnent sensiblement le même résultat que précédemment .
L'inertie des roues est donc négligeable devant l'inertie propre du moteur . Ceci vient confirmer que la valeur d'inertie proposée en début de l'étude est incorrecte !
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 26
Projet Robotique LEGO NXT
Servo-moteur NXT : robot en translationL'inertie totale est la somme de l'inertie des systèmes en rotation (rotor, pignons, roue) et de l'inertie du robot (masse en translation)
v
M
r
L'énergie cinétique de M en translation est égale à l'énergie cinétique d'une inertie J_equ en rotation:
avec d'où :
12
J equ 2 =
12
M v2 v = r J equ = Mr2
masse totale en translation pour le robot différentiel : 0.590 kg
Travail : Refaire la réponse à l'échelon en posant le robot sur une surface et évaluer la nouvelle constante de temps. Peut-on donner une estimation de l'inertie propre du moteur par comparaison avec l'expérience précédente à vide?
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 27
Projet Robotique LEGO NXT
0 50 100 150 200 250 300 350 400 450 5000
50
100
150
Servo-moteur NXT : robot en translationRésultat:
La constante de temps passe à 60ms environ. Etant donné que , on peut
en déduire que la constante de temps a évolué de 20% soit
m =RJ
K e K mRf
J moteur = 5×J translation
J translation = M 1/2corps rroue2 = 0.295×0.0282 =0.23 kg.m2 ⇒ J moteur = 1.15×10−3 kg.m2
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 28
Projet Robotique LEGO NXT
Servo-moteur NXT : Robot sur roues
Travail : - Compléter le schéma de simulation du robot avec l'inertie des roues,la conversion du mouvement en translation et la 1/2 masse du corps du robot
- Observer la simulation de la motorisation avec ces nouveaux éléments et ajuster les paramètres (en particulier Jmoteur) pour reproduire le comportement expérimental du moteur .
- Quelle est la valeur de Jmoteur permettant de correspondre aux valeurs expérimentales de comportement ?
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 29
Projet Robotique LEGO NXT
Servo-moteur NXT : Robot sur roues
Résultat:
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 30
Projet Robotique LEGO NXT
0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.500
2
4
6
8
10
12
14
Graphic 1
t
y
0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50
0.0
0.2
0.4
0.6
0.8
1.0
Graphic 2
t
y
Servo-moteur NXT : Robot sur roues
Résultat:
Inertie du moteur : J=1 e-3 kg.m^2 soit une valeur sensiblement identique à l'estimation précédente
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 31
Projet Robotique LEGO NXT
Servo-moteur NXT : Robot sur roues
Programme type pour les mesures demandées: #define FILE_SIZE 200*3
task record(){ byte fileHandle; short bytesWritten,bytesWrittenTotal,err; long phi_d,phi_g; long t_init,t_current; string val;
err=DeleteFile("myFile.txt"); CreateFile("myFile.txt", FILE_SIZE, fileHandle); bytesWrittenTotal=0; bytesWritten=0; //Ecriture entête strcpy(val,"temps MotG MotD"); WriteLnString(fileHandle,val,bytesWritten); bytesWrittenTotal+=bytesWritten;
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 32
Projet Robotique LEGO NXT
Servo-moteur NXT : Robot sur roues
Programme type pour les mesures demandées (suite): //start move with tachos reset; OnFwdEx(OUT_AC,20,RESET_NONE); t_init=CurrentTick(); while (bytesWrittenTotal + bytesWritten<FILE_SIZE) { //------------------- t_current= CurrentTick()-t_init; phi_d=MotorRotateCount(OUT_A); phi_g=MotorrotateCount(OUT_C); //------------------- val=NumToStr(t_current); val=StrCat(val," "); val=StrCat(val,NumToStr(phi_g)); val=StrCat(val," "); val=StrCat(val,NumToStr(phi_d)); //------------------- WriteLnString(fileHandle,val,bytesWritten); bytesWrittenTotal += bytesWritten; Wait(3); }
Off(OUT_AC); CloseFile(fileHandle);}
task main(){ start record;}
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 33
Projet Robotique LEGO NXT
Servo-moteur NXT : Asservissement de position
Objectif : réaliser un asservissement de position du robot par commande discrète implantée en langage NXC. La commande retenue sera du type Proportionnel puis Proportionnel/Dérivée.
On suppose que le système en boucle ouverte a la forme suivante :
1/ K e
p(1+τ p)
tensioncommande
OnFwd0..100
K H
Hacheur Moteur Codeur
KC
Positionangulaire
Positionnumérique
Travail à faire: - Déterminer les coefficients du robot à partir des expériences précédentes et des informations déjà fournies.- Construire ce schéma sur Scicos - Appliquer un échelon d'amplitude 50% et vérifier que la simulation est conforme aux résultats pratiques déjà obtenus.
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 34
Projet Robotique LEGO NXT
Servo-moteur NXT : Asservissement de position Bouclage basique avec régulateur proportionnel:
Travail à faire:
- Tenir compte dans le schéma de la contrainte de saturation de la commande bornée entre -100 et +100 (fonction SAT)
- Introduire un régulateur type "Proportionnel" de coefficient Kp (fonction GAIN)
- Boucler le système simulé avec un retour en position .
- Appliquer un échelon de position et vérifier que la simulation est conforme aux résultats pratiques.
- Rechercher expérimentalement la valeur de Kp permettant d'obtenir un amortissement de 0.7 .
1/ K e
p(1+τ p)K H
Hacheur Moteur Codeur
KC
Positionnumérique
Sat
Consigne de Position
numérique
Regulateur
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 35
Projet Robotique LEGO NXT
Servo-moteur NXT : Asservissement de position
Bouclage numérique : le programme d'asservissement doit effectuer périodiquement les tâches suivantes :
- lire l'heure courante - lire la position du moteur (codeur )- calculer l'erreur de position (différence entre la consigne et la mesure)- calculer la commande (loi proportionnelle puis saturation)- l'appliquer au moteur - attendre jusqu'à la fin de période d'échantillonnage- recommencer au début
La boucle de régulation est infinie. Pour des considérations pratiques, il est souhaitable de prévoir un arrêt (lecture bouton, nombre maximum de boucle...)
Travail à faire: - Les conditions expérimentales seront : Kp à la valeur définie précédemment , échelon de position d'amplitude 100, période d'échantillonnage 5 ms, durée totale 1s . - Ecrire le programme en NXC, en incluant l'enregistrement du temps, de la position réalisée et de la commande.- Discuter du résultat (précision, rapidité) . Pensez-vous que la période d'échantillonnage a une influence critique pour ce type de commande ?.
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 36
Projet Robotique LEGO NXT
0 200 400 600 800 1000 1200 14000
20
40
60
80
100
120
140
Tem ps
Posi
tion
angu
laire
en
rad
Servo-moteur NXT : Asservissement de position
exemple de résultat pour kp=5
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 37
Projet Robotique LEGO NXT
Servo-moteur NXT : Compensation PID de l'Asservissement de position
Le système possédant un pôle nul en boucle ouverte (intégration), il ne présente pas d'erreur de position en boucle fermée L'introduction d'un terme d'intégration dans le correcteur permet d'éliminer l'erreur de position en cas de frottements (collage) ou de couple d'opposition (robot sur une pente).Pour améliorer les performances dynamiques, il convient d'introduire une compensation dérivée . Le compensateur PID a pour équation continue :
ou encore :
C ( p)= K p(1 +1
T i p+ T d p)
u (t ) = K p(ε(t )+ 1T i∫ε(t )dt + T d
d ε(t )dt )
Compensateur PD ou PID avec dérivateur à bande passante limitée : ce correcteur permet de limiter l'influence du bruit , très sensible pour le terme dérivé
Généralement, on adopte 5 < N <20 pour un effet de filtrage.
C ( p)= K p(1 + 1T i p
+T d p
1+ p T d /N)
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 38
Projet Robotique LEGO NXT
Servo-moteur NXT : Compensation PID de l'Asservissement de position
Algorithme numérique Terme Intégral
En considérant constant entre deux instants d'échantillonnage, l'intégrale est approximée par la somme des valeurs de aux instants de mesure (intégration d'Euler dite des rectangles)
Lors des transitoires importants (erreur importante), l'intégrale peut atteindre des valeurs élevées et provoquer la saturation de la commande. Il est judicieux de limiter l'intégrale à des valeurs et définies par l'utilisateur.
C I ( p) =U I ( p)ε( p)
=1
T i p ⇒ uI (t) =1T i∫0
t
ε(t )
εε
u I [n] = u I [n−1] +T e
T iε[n ]
u I min u I max
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 39
Projet Robotique LEGO NXT
Servo-moteur NXT : Compensation PID de l'Asservissement de position
Algorithme numérique Terme Dérivée
l'expression temporelle est :
En approximant la dérivée par la différence arrière, on obtient :
On en déduit la récurrence de calcul du terme dérivé :
C D( p)=U D( p)ε( p)
=T d p
1+ p T d / N
uD (t) = T d ε̇(t )−T d
Nu̇D (t)
uD [n ] = T dε[n ] − ε[n−1]
T e−
T d
NuD[n ]−uD [n−1 ]
T e
uD [n ] =NT d
T d+NT e(ε [n ] − ε[n−1 ]) +
T d
T d+N T euD[n−1]
Commande du hacheur : c'est la somme des 3 termes P, I et D
u [n ] = K p(ε[n] + u I [n ] + uD[n])
Master ASE – Projet S1 - Pierre Bonnet , John Klein - Sept/Déc 2011 40
Projet Robotique LEGO NXT
Servo-moteur NXT : Compensation de l'Asservissement de position
Travail à faire: - Compléter la simulation pour ajouter la compensation dérivée seule (modèle continu) à bande passante limitée avec N=10
- Rechercher la valeur de Td donnant un compromis rapidité/dépassement acceptable .
- Implanter cette commande dans le robot et observer le comportement.