Régulation en position d’un moteur à courant continu Rubén Corral Edmond Gheury Jonathan Goldwasser Vincent Vanderminnen Plan de la présentation • Introduction • Filtres de garde • Boucle de vitesse • Boucles de position • Génération de trajectoires • Emballement du régulateur • Problèmes rencontrés • Conclusions et perspectives Introduction • Moteur à courant continu Maxxon • Entrée : – Consigne de courant • Sorties : – Vitesse – Position fine – Position approchée • Perturbation : – Frein • Régulation interne en courant • Travail autour d’un point de fonctionnement Filtres de garde (1) • Evitent le repliement spectral • Dimensionnement : – Constante de temps principale Tf>T0/2 – Tg = 0.5 * Tf : pas assez rapide – Filtre dimensionné de manière plus stricte Filtres de garde (2) Step Response 1.4 1.2 1 Amplitude 0.8 0.6 Step Response 1.4 0.4 1.2 0.2 1 0 1 2 3 4 Time (sec) 5 6 7 0.8 Amplitude 0 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 Time (sec) 1.2 1.4 1.6 1.8 2 Boucle de vitesse (1) • Dimensionnement • Simple régulateur proportionnel • Erreur de consigne importe peu • Rapidité importe Boucle de vitesse (2) Root Locus Editor (C) Open-Loop Bode Editor (C) 3 50 0 2 -50 1 -100 G.M.: 17.2 dB Freq: 1.4 rad/sec Stable loop 0 -150 0 0.7 -1 -90 0.6 -2 0.5 -180 P.M.: 147 deg Freq: 0.133 rad/sec -3 -4 0.4 -270 -3 -2 -1 Real Axis 0 1 -2 10 -1 10 0 10 Frequency (rad/sec) 1 10 2 10 0.3 0.2 0.1 0 0 1 2 3 4 5 6 7 8 9 Boucle de vitesse (3) Consigne Vitesse Vitesse 3 2.5 2 0 500 1000 1500 2000 2500 Iteration 3000 3500 4000 4500 5000 Boucle de vitesse (4) Boucles de position (1) • Dimensonnement en continu puis c2d • Boucle P et boucle P+I • Instabilité si P+I directement • Zéro pour compenser le pôle le plus lent • Intégrateur dans la simulation pour modéliser le capteur de position – Step sur le système régulé en vitesse – Gains statiques Boucles de position (2) Root Locus Editor (C) Open-Loop Bode Editor (C) 8 50 6 0 4 -50 2 -100 G.M.: Inf Freq: NaN Unstable loop 0 -150 -180 -2 -4 -270 -6 P.M.: -60.1 deg Freq: 1.82 rad/sec -8 -10 -360 -5 0 Real Axis 5 10 -1 10 0 1 10 10 Frequency (rad/sec) 2 10 Boucles de position (3) Root Locus Editor (C) Open-Loop Bode Editor (C) 8 50 0 6 -50 4 -100 2 -150 0 G.M.: 13.3 dB Freq: 0.719 rad/sec Stable loop -200 -90 -2 -180 -4 1 0.9 -270 -6 0.8 P.M.: 72.9 deg Freq: 0.172 rad/sec -8 -10 0.7 -360 -5 0 Real Axis 5 10 -2 10 -1 10 0 10 Frequency (rad/sec) 1 10 2 10 0.6 0.5 0.4 0.3 0.2 0.1 0 0 5 10 15 20 25 Boucles de position (4) Génération de trajectoires (1) • Données : – Accélération – Point de fonctionnement (vitesse) – Décélération – Durée – Fréquence d’échantillonnage • Trajectoire déduite du profil de vitesse (intégration) Génération de trajectoires (2) 2 Vitesse 1.5 1 0.5 0 0.5 1 1.5 2 2.5 3 4 x 10 4 5 x 10 Position 4 3 2 1 0 0.5 1 1.5 Temps (s) 2 2.5 3 4 x 10 Génération de trajectoires (3) 50 Consigne Position 45 40 35 Position 30 25 20 15 10 5 0 0 1 2 3 Iteration 4 5 6 4 x 10 Emballement du régulateur (1) • Nécessité d’un système anti-emballement : – Passage automatique/manuel – Prise en compte de la saturation • Dimensionnement – Idée : créer une nouvelle consigne w* qui tient compte de l’importance et de l’endroit de la non-linéarité Emballement du régulateur (2) • Passage manuel/automatique après 5s 0.9 0.8 0.7 Position 0.6 0.5 0.4 0.3 0.2 0.1 0 0 5 10 15 20 Temps (s) 25 30 Emballement du régulateur (3) • Prise en compte de la saturation 2 10 1.5 9 1 8 7 0.5 Courant (A) 6 0 5 -0.5 4 -1 3 -1.5 2 1 Vitesse Position Commande Consigne -2 0 -2.5 0 5 10 15 Temps (s) 20 25 0 2000 4000 6000 8000 Cycle 10000 12000 14000 Schéma final de régulation Problèmes rencontrés • Saturation du calculateur • Frottements, importance du point de fonctionnement • Position remise à zéro • Fréquence d’échantillonnage fonction du nombre de lignes de code Conclusions et perspectives • Régulation satisfaisante mais loin d’être parfaite • Effet intégrateur trop faible ? • Filtres de garde ralentissent la régulation • Incertitude liée au capteur de position