Commande par microcontrôleur, microcontrôleur 16F917, Picdem Mechatronics, Microship, moteur à courant continu
Le projet est réalisé sur une plaquette PICDEM MECHATRONICS de Microship qui contient un microcontrôleur 16F917, un moteur, un détecteur optique ainsi que des périphériques d'échanges de données avec l'utilisateur (écran LCD, boutons poussoir, potentiomètres...).
L'objectif est d'asservir en vitesse un moteur à courant continu à l'aide du microcontrôleur : la commande donnée par l'utilisateur au moyen d'un potentiomètre, sera traitée par le programme du microcontrôleur. Le but étant, à terme, d'obtenir de meilleures rapidité, stabilité et précision de la réponse du système.
[...] Il faudra tout d'abord configurer le microcontrôleur (ports, timer, convertisseurs, PWM) puis rechercher à l'aide de la plaquette les caractéristiques de la réponse du moteur. Enfin, il faudra déterminer et programmer le correcteur à appliquer. La donnée de départ est une tension de consigne analogique nommée Vcons. Ici, les tensions sont image de la vitesse. Vcons varie de 0 V à 5 V : pour donner la valeur de Vcons on utilisera un potentiomètre. C'est la tension (ou vitesse) que l'on souhaite atteindre expérimentalement. [...]
[...] Sur le moteur est fixée une roue dentée dont le nombre de dents N est connu. N impulsions provenant du capteur optique correspondent à un tour de moteur. Physiquement, cela se traduit par une séquence d'échelons. ETUDE DE LA PWM (PULSE WIDTH MODULATION) : On va pouvoir moduler la largeur d'impulsions. Soit L la largeur d'une impulsion apelée Duty Cycle et PWMperiod la période. L est proportionnelle au code numérique en entrée de la PWM alors que la période, elle, reste constante. En effet, L varie dès qu'on change le code. [...]
[...] On impose une période d'échantillonnage Te égale à 50 ms. Pour cela, on va utiliser le timer 0 bits) Comment modifier N pour avoir 50 ms ? N = 195 incréments = / 256. On démarre le TMR0 à 61 = 3D. Toutes les 50 ms on doit exécuter la procédure d'asservissement. Pour cela, on travaille en mode interruption. PROCEDURE D'ASSERVISSEMENT : Voici la méthode suivie : A l'instant lecture ou acquisition de la consigne Vcons,k lecture de la mesure Vmes,k calcul de l'erreur e,k calcul de la commande Uk envoi de la commande au moteur. [...]
[...] Le module CCP1 ou CCP2 permet de générer une largeur L voulue. On va utiliser le Timer 2. La mise au niveau haut ou bas se fait en utilisant la bascule RS. Calcul de la PWMperiod : PWMperiod = [(PR2 + 1)]*4*Tosc * (TMR2 prescale value) PR2 correspond à un registre de 8 bits donc si PR2 = FF 255) alors, PWMperiod = * 1 soit PWMperiod = 256 µs. La largeur de l'impulsion est donnée par la formule : Duty Cycle = (CCPR2L : CCP2CON )*Tosc * (TMR2 prescale value) Or (CCPR2L : CCP2CON ) est codé sur 10 bits, nous on en utilisera que 8. [...]
[...] Donc 10 correspond à 1 tour. Et N = x correspond à x/10 tours. N étant le nombre d'impulsions pendant la période Te. La tension mesurée s'écrit alors : Vmes = / Te (en tr/sec). KIWAN et EL MOUDDEN page 3 Compte rendu du µ-projet Spécifications du moteur utilisé : (d'après les données fournies par le constructeur) Vmax= 2222 tr/min = 37 tr/s. Donc, on impose Vmax = 30 tr/s. Traitement T1 : définition de la vitesse de consigne à partir du code ADRESH. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture