Rapport du projet Bille et Barre

399 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
399
Sur SlideShare
0
Issues des intégrations
0
Intégrations
10
Actions
Partages
0
Téléchargements
9
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Rapport du projet Bille et Barre

  1. 1. PSI RAPPORT | Barre & Bille 2012 0 07/06/2012 Fait par : Tarik EN-NAKDI 3A ESIEA PSI RAPPORT | BARRE & BILLE
  2. 2. PSI RAPPORT | Barre & Bille 2012 1 Table des matières Introduction :........................................................................................................................................... 2 Abstract ................................................................................................................................................... 3 Partie mécanique .................................................................................................................................... 4 Montage électrique................................................................................................................................. 7 Inconvénients : ................................................................................................................................ 7 Solution :.......................................................................................................................................... 8 Avantage :........................................................................................................................................ 8 Le PWM (Pulse Wave Modulation) ....................................................................................................... 10 Matlab/Simulink.................................................................................................................................... 14 PID (Proportionnelle, Intégrale, Dérivée) :............................................................................................ 16 Le PIC (18F4520).................................................................................................................................... 18 T2CON: TIMER2 CONTROL REGISTER .............................................................................. 18 PR2 Timer2 Period Register........................................................................................................... 19 CCP1CON: ECCP CONTROL REGISTER............................................................................................ 19 ADC (Analogic to Digital Converter) ...................................................................................................... 21 Communication PIC (USART)................................................................................................................. 22 Interface Graphique .............................................................................................................................. 24 Suivi ....................................................................................................................................................... 27 Améliorations ........................................................................................................................................ 29 Modifications depuis le Salon ....................................................................................................... 30 Applications futures .............................................................................................................................. 32 Conclusion : ........................................................................................................................................... 34
  3. 3. PSI RAPPORT | Barre & Bille 2012 2 Introduction Le projet « Bille & Barre » est un projet scientifique qui a pour but de nous faire comprendre la correction de systèmes. Le système en lui-même est un simple exercice de correction de position, une bille doit être équilibrée sur une barre a une position donnée, la position de la bille sur la barre peut être mesurée à l’aide capteurs spéciaux qui envoient des données analogiques a un microcontrôleur PIC. La bille doit être stabilisée a un point donné da la barre grâce aux données reçues par le PIC. Lorsque le PIC reçoit des données, celles-ci sont converties en données numériques afin d’être exploitées par le programme. Ce programme contient un PID de données discrètes qui permet de stabiliser la bille en inclinant la barre. La barre est inclinée par un servomoteur, commandé par le système PWM (Pulse Wave Modulation) qui est envoyé par le PIC. Lorsque le servomoteur reçoit des données PWM, il tourne selon un certain angle défini par ces données. Cette rotation permet d’incliner la barre pour changer la position de la bille. Grâce à ce système nous pouvons stabiliser une bille à un point donné de la barre.
  4. 4. PSI RAPPORT | Barre & Bille 2012 3 Abstract The Ball and Beam system is a scientific project for teaching control systems engineering. The whole system is a quite simple control exercise. A ball must be balanced on a beam at a certain position. A Steel ball is rolling on a beam; its position can be measured with special sensors that send analogic data to a PIC. The ball must be stabilized on a set point of the beam, using the data received by the PIC. When the PIC receives the data, this one is converted from analogic to numeric, so the program can use this data. The program uses the discrete PID system to stabilize the ball by balancing the beam. The beam is balanced by a servomotor, which is controlled by the PWM system that is sent by the PIC. When the servomotor receives a PWM data, it turns of a certain angle depending on the data. This rotation makes the beam to rotate and then change the ball’s position on it. By this application we can stabilize a ball on a set point of a beam. Keywords : Ball and Beam, Steel ball, Analogic data, discrete PID system, servomotor, the PWM system, Stabilize a ball
  5. 5. PSI RAPPORT | Barre & Bille 2012 4 Partie mécanique Schéma du montage Variables entrant en jeu : ∑ 𝐹𝑏 = 𝑠𝑜𝑚𝑚𝑒𝑠 𝑑𝑒𝑠 𝑓𝑜𝑟𝑐𝑒𝑠 𝑎𝑝𝑝𝑙𝑖𝑞𝑢é𝑒𝑠 à 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝑚 = 𝑚𝑎𝑠𝑠𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝑔 = 𝑐𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡 𝑑𝑒 𝑝𝑒𝑠𝑎𝑛𝑡𝑒𝑢𝑟 ∅ = 𝑎𝑛𝑔𝑙𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑎𝑟𝑟𝑒 𝑝𝑎𝑟 𝑟𝑎𝑝𝑝𝑜𝑟𝑡 𝑎 𝑙′ℎ𝑜𝑟𝑖𝑧𝑜𝑛𝑡𝑎𝑙𝑒 𝐹𝑟 = 𝑐𝑜𝑛𝑡𝑟𝑎𝑖𝑛𝑡𝑒 𝑑𝑒 𝑟𝑜𝑢𝑙𝑒𝑚𝑒𝑛𝑡 𝛼 = 𝑑é𝑝𝑙𝑎𝑐𝑒𝑚𝑒𝑛𝑡 𝑎𝑛𝑔𝑢𝑙𝑎𝑖𝑟𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝑎′ = 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑒𝑛𝑡𝑟𝑒 𝑙′ 𝑎𝑥𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑎𝑟𝑟𝑒 𝑒𝑡 𝑙𝑒 𝑝𝑜𝑖𝑛𝑡 𝑑𝑒 𝑐𝑜𝑛𝑡𝑎𝑐𝑡 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝑠𝑢𝑟 𝑙𝑎 𝑏𝑎𝑟𝑟𝑒 𝜏 𝑏 = 𝑐𝑜𝑢𝑝𝑙𝑒 𝑑′𝑒𝑞𝑢𝑖𝑙𝑖𝑏𝑟𝑒 𝐽 𝑏 = 𝑚𝑜𝑚𝑒𝑛𝑡 𝑑′ 𝑖𝑛𝑒𝑟𝑡𝑖𝑒𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝑎 = 𝑑𝑖𝑎𝑚è𝑡𝑟𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝜏𝑖𝑛 = 𝑐𝑜𝑢𝑝𝑙𝑒 𝑔é𝑛é𝑟é 𝑝𝑎𝑟 𝑙𝑒 𝑚𝑜𝑡𝑒𝑢𝑟 𝑏𝑚 = 𝑐𝑜𝑢𝑝𝑙𝑒 𝑏𝑎𝑟𝑟𝑒 𝑒𝑡 𝑚𝑜𝑡𝑒𝑢𝑟 𝑘 𝑡 = 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 𝑑𝑢 𝑐𝑜𝑢𝑝𝑙𝑒 𝑑𝑢 𝑚𝑜𝑡𝑒𝑢𝑟 𝐼𝑖𝑛 = 𝑖𝑛𝑡𝑒𝑛𝑠𝑖𝑡é 𝑓𝑜𝑢𝑟𝑛𝑖𝑒 𝑎𝑢 𝑚𝑜𝑡𝑒𝑢𝑟 φ a’ a α x Fr g
  6. 6. PSI RAPPORT | Barre & Bille 2012 5 Somme des forces appliquées à la bille ∑ 𝐹𝑒𝑥𝑡 = 𝑚 ∗ 𝑎𝑐𝑐é𝑙é𝑟𝑎𝑡𝑖𝑜𝑛 Somme des forces appliquées à la bille ∑ 𝐹𝑏 = 𝑚𝑔 sin(∅) − 𝐹𝑟 = 𝑚 ∗ 𝑑2 𝛼 𝑑𝑡 Position de la bille 𝑥 = 𝛼 ∗ 𝑎′ Contrainte de roulement ∑(𝜏 𝑏) = 𝐹𝑟 𝑎′ = 𝐽 𝑏 ∗ 𝑑2 𝛼 𝑑𝑡 Moment d’inertie 𝐽 𝑏 = 2 5 𝑚𝑎2 Equilibre de couple ∑ 𝜏 𝑏𝑚 = 𝜏𝑖𝑛= 𝐽 𝑏𝑚∅̈ Relation du couple 𝜏𝑖𝑛 = 𝑘 𝑡 𝐼𝑖𝑛 On peut combiner les équations pour donner (1 + 2 5 ( 𝑎 𝑎′ ) 2 ) 𝑥̈ = 𝑔 sin ∅ Et 𝐽 𝑏𝑚∅̈ = 𝑘 𝑡 𝐼𝑖𝑛 Le servomoteur s’occupe de la régulation du couple ce qui nous facilite les calculs. Avec une approximation sur un angle qui est proche de 0 radians on peut dire que (1 + 2 5 ( 𝑎 𝑎′ ) 2 ) 𝑥̈ = 𝑔∅ Avec ces calculs on peut obtenir la fonction de transfert : 𝑥(𝑠) ∅(𝑠) = 𝑔 (1 + 2 5 ( 𝑎 𝑎′) 2 ) 𝑠2
  7. 7. PSI RAPPORT | Barre & Bille 2012 6 Caractéristiques de notre système : Masse de la bille : 40 g Diamètre de la bille : 30 mm Taille de la barre : 430 mm Dans notre système, on considèrera les frottements comme nuls.
  8. 8. PSI RAPPORT | Barre & Bille 2012 7 Montage électrique Le schéma que nous avons réalisé au début : Inconvénients : - Imperfection de la balle. - Linéarité des fils résistifs imparfaite - Entraine un signal d’entrée de PIC très instable (voir ci-dessous) 0V 1.4V Vers PIC Bille
  9. 9. PSI RAPPORT | Barre & Bille 2012 8 Solution : - Nous avons essayé plusieurs jeux de condensateurs afin d’avoir un filtrage suffisant sans avoir de trop long retard sur l’information. Nous avons obtenu comme résultat : Avantage : - Permet de stabiliser le signal de sortie vers le PIC (voir ci-dessous) 0V 1.4V Vers PIC (Pin RA1) Bille 100µF
  10. 10. PSI RAPPORT | Barre & Bille 2012 9 De plus nous avons implémenté un filtre numérique qui consiste à calculer la moyenne de dix mesures.
  11. 11. PSI RAPPORT | Barre & Bille 2012 10 Le PWM (Pulse Wave Modulation) Le PWM est une technique utilisée pour synthétiser les signaux continus. L’image vient de : http://en.wikipedia.org/wiki/Pulse-width_modulation Pour ce schéma, la courbe rouge est le signal que l’on veut réaliser par PWM, on remarque que le signal rose (PWM) correspond, lorsque la courbe rouge est à son maximum, le pourcentage Le terme duty cycle décrit le rapport de temps ou une tension positive stable est émise par rapport à une période ; un faible duty cycle correspond à une faible alimentation car l’alimentation est a 0 pendant une grande durée. Le duty cycle est exprimé en pourcentage, 100% correspond à une période ou le circuit est alimenté sur toute la période. L’avantage principal du PWM est qu’il entraine une très faible perte d’énergie sur des systèmes changeants. Quand un interrupteur est désactivé il n’y a pratiquement pas de courant, et quand il est enclenché, il n’y a pas de perte de tension dans l’interrupteur. La perte de puissance (Tension * Courant), dans ces deux cas est proche de zéro. C’est grâce à cette méthode que nous contrôlons notre servomoteur pour stabiliser la bille sur la barre.
  12. 12. PSI RAPPORT | Barre & Bille 2012 11 y = -0,05x + 50 R² = 1 0 10 20 30 40 50 60 70 80 -1000 -500 0 500 1000 PWM/Output PID PWM Linéaire (PWM) Ci-dessous : différents schémas et courbes pour décrire les fonctions du PWM Lorsque la sortie du correcteur est supérieure à 0, c’est-à-dire lorsque la bille est trop à gauche, le duty est compris entre 50 et 75 %, alors qu’a l’opposé, quand la bille est trop à droite, le duty est compris entre 25 et 50 %. Sortie du correcteur PID Output PWM 500 25 0 50 -500 75 PID Output
  13. 13. PSI RAPPORT | Barre & Bille 2012 12 y = 1,8x - 90 R² = 1 -100 -80 -60 -40 -20 0 20 40 60 80 100 0 50 100 150 Angle servo/Duty Angle servo Linéaire (Angle servo) Output PWM -500 75 -20 50 0 50 20 50 500 25 Essai réalisé pour créer une zone ou la barre bougerait beaucoup moins lorsque la bille serait stabilisée, on a donc crée une zone morte sur 20 mm. Duty Angle servo 0 -90 25 -45 50 0 75 45 100 90 Cette modélisation a été obtenue de façon empirique grâce à un GBF. y = -2E-07x3 - 1E-17x2 + 8E-05x + 50 R² = 1 0 10 20 30 40 50 60 70 80 -600 -400 -200 0 200 400 600 PWM/Output PID PWM Poly. (PWM)
  14. 14. PSI RAPPORT | Barre & Bille 2012 13 Une modélisation de l’assemblage en utilisant SolidWorks. Etude du mouvement, à partir du logiciel « MotionWorks » intégré à SolidWorks. Récupération du graphe obtenu en fichier csv afin de l’exploiter sur Excel.
  15. 15. PSI RAPPORT | Barre & Bille 2012 14 Problème mineur avec Excel, limitant la courbe de tendance polynomiale à l’ordre 6. Matlab/Simulink MATLAB nous a permis de réaliser une partie théorique au projet, cependant nous avons un problème concernant la fonction « Zero-Order Hold » qui ne nous permet pas d’afficher un résultat sur le scope. Nous avions aussi un problème sur la création des fonctions bornées, car nous avions des difficultés à implémenter celles-ci sous MATLAB. Bloc Beam & Ball qui prend en entrée un angle et qui sort une distance. y = -3E-12x6 + 4E-10x5 + 1E-07x4 - 2E-05x3 - 0,0001x2 + 0,3893x + 0,101 R² = 0,9984-20 -10 0 10 20 30 40 -200 -100 0 100 200 Angle Barre /Angle Servomoteur 360° Délacement angulaire Barre (deg) Poly. (Délacement angulaire Barre (deg))
  16. 16. PSI RAPPORT | Barre & Bille 2012 15 A partir de ce graphe, il est évident que le système est instable en boucle ouverte, ce qui fait rouler la bille jusqu’au bout de la barre. Il faut donc une méthode afin de corriger la position de la bille. Boucle d’asservissement complète
  17. 17. PSI RAPPORT | Barre & Bille 2012 16 PID (Proportionnelle, Intégrale, Dérivée) : Boucle PID d'asservissement de la position de la balle Le contrôle par PID est une méthode de régulation souvent employée pour les asservissements. L'erreur observée est la différence entre la consigne et la mesure. Le PID permet 3 actions en fonction de cette erreur : Une action Proportionnelle : l'erreur est multipliée par un gain G. Une action Intégrale : l'erreur est intégrée sur un intervalle de temps s, puis divisée par un gain Ti. Une action Dérivée : l'erreur est dérivée suivant un temps s, puis multipliée par un gain Td. Source : http://fr.wikipedia.org/wiki/R%C3%A9gulateur_PID#R.C3.A9glage_d.27un_PID L'action Proportionnelle corrige de manière rapide, tout écart de la grandeur à régler, elle permet de vaincre les grandes inerties du système. Afin de diminuer l'écart de réglage et rendre le système plus rapide, on augmente le gain mais, on est limité par la stabilité du système. Le régulateur P est utilisé lorsqu’on désire régler un paramètre dont la précision n'est pas importante.
  18. 18. PSI RAPPORT | Barre & Bille 2012 17 L'action Intégrale complète l'action proportionnelle. Elle permet d'éliminer l'erreur résiduelle en régime permanent. Afin de rendre le système plus dynamique (diminuer le temps de réponse), on diminue l'action intégrale mais, ceci provoque l'augmentation du déphasage ce qui provoque l'instabilité en état fermé. L'action I est utilisée lorsqu’on désire avoir en régime permanent, une précision parfaite, en outre, elle permet de filtrer la variable à régler d'où l'utilité pour le réglage des variables bruitées. L'action Dérivée, en compensant les inerties dues au temps mort, accélère la réponse du système et améliore la stabilité de la boucle, en permettant notamment un amortissement rapide des oscillations dues à l'apparition d'une perturbation ou à une variation subite de la consigne. L'action D est utilisée dans l'industrie pour le réglage des variables lentes, elle n'est pas recommandée pour le réglage d'une variable bruitée ou trop dynamique. En dérivant un bruit, son amplitude risque de devenir plus importante que celle du signal utile. Source : http://jleguen.info/robotik/elec/Les_correcteurs.pdf Nous avons utilisé ce code :
  19. 19. PSI RAPPORT | Barre & Bille 2012 18 Le PIC (18F4520) Code de définition des registres. Ci-après, une partie de la documentation du PIC 18F4520 montrant les registres concernés T2CON: TIMER2 CONTROL REGISTER U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 — T2OUTPS3 T2OUTPS2 T2OUTPS1 T2OUTPS0 TMR2ON T2CKPS1 T2CKPS0 bit 7 bit 0 Legend: R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’ -n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown bit 7 Unimplemented: Read as ‘0’ bit 6-3 T2OUTPS<3:0>: Timer2 Output Postscale Select bits 0000 = 1:1 Postscale 0001 = 1:2 Postscale • • • 1111 = 1:16 Postscale bit 2 TMR2ON: Timer2 On bit 1 = Timer2 is on 0 = Timer2 is off bit 1-0 T2CKPS<1:0>: Timer2 Clock Prescale Select bits 00 = Prescaler is 1 01 = Prescaler is 4 1x = Prescaler is 16
  20. 20. PSI RAPPORT | Barre & Bille 2012 19 Dans ce registre on active le timer 2 (4MHz) et on définit le prescaler a 16 ce qui divise la fréquence dé départ par cette valeur, on obtient donc une fréquence d’horloge de 250 kHz. PR2 Timer2 Period Register Ce registre permet de définir la période du PWM avec utilisation du registre T2CON pour définir un prescaler. Ici la valeur de PR2 permet d’obtenir la période du PWM par la formule suivante Période PWM = [(PR2) + 1] • 4 • TOSC • (TMR2 Prescale Value) ce qui nous donne : Période PWM = (0b11001111 +1) *4 * 1/(4*10^6) * 16 = 208*16/(10^6) = 3.328 ms Ou une fréquence de 300 Hz. Dans une autre fonction, on utilise un PR2 = 0b01111100 ce qui nous donne un période de 2ms et donc une fréquence de 500 Hz. CCP1CON: ECCP CONTROL REGISTER R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 P1M1 P1M0 DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 Bit 7 Bit 0 Legend: R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’ -n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown bit 7-6 P1M<1:0>: Enhanced PWM Output Configuration bits If CCP1M3:CCP1M2 = 00, 01, 10: xx = P1A assigned as capture/compare input/output; P1B, P1C, P1D assigned as port pins If CCP1M3:CCP1M2 = 11: 00 = Single output, P1A modulated; P1B, P1C, P1D assigned as port pins 01 = Full-bridge output forward, P1D modulated; P1A active; P1B, P1C inactive 10 = Half-bridge output, P1A, P1B modulated with dead-band control; P1C, P1D assigned as port pins 11 = Full-bridge output reverse, P1B modulated; P1C active; P1A, P1D inactive bit 5-4 DC1B<1:0>: PWM Duty Cycle bit 1 and bit 0 Capture mode: Unused. Compare mode: Unused. PWM mode: These bits are the two LSbs of the 10-bit PWM duty cycle. The eight MSbs of the duty cycle are found in CCPR1L.
  21. 21. PSI RAPPORT | Barre & Bille 2012 20 bit 3-0 CCP1M<3:0>: Enhanced CCP Mode Select bits 0000 = Capture/Compare/PWM off (resets ECCP module) 0001 = Reserved 0010 = Compare mode, toggle output on match 0011 = Capture mode 0100 = Capture mode, every falling edge 0101 = Capture mode, every rising edge 0110 = Capture mode, every 4th rising edge 0111 = Capture mode, every 16th rising edge 1000 = Compare mode, initialize CCP1 pin low; set output on compare match (set CCP1IF) 1001 = Compare mode, initialize CCP1 pin high; clear output on compare match (set CCP1IF) 1010 = Compare mode, generate software interrupt only; CCP1 pin reverts to I/O state 1011 = Compare mode, trigger special event (ECCP resets TMR1 or TMR3, sets CCP1IF bit) 1100 = PWM mode, P1A, P1C active-high; P1B, P1D active-high 1101 = PWM mode, P1A, P1C active-high; P1B, P1D active-low 1110 = PWM mode, P1A, P1C active-low; P1B, P1D active-high 1111 = PWM mode, P1A, P1C active-low; P1B, P1D active-low Avec ce registre et le registre CCPR1L on définit le duty cycle du PWM grâce à la formule suivante : 𝑷𝑾𝑴 𝑫𝒖𝒕𝒚 𝑪𝒚𝒄𝒍𝒆 = (𝑪𝑪𝑷𝑹𝟏𝑳: 𝑪𝑪𝑷𝟏𝑪𝑶𝑵 < 𝟓: 𝟒 >) ∗ 𝑻𝑶𝑺𝑪 ∗ (𝑻𝑴𝑹𝟐 𝑷𝒓𝒆𝒔𝒄𝒂𝒍𝒆 𝑽𝒂𝒍𝒖𝒆) On obtient un nombre binaire de 10 bits dont les 8 MSB (Most Significant Bits) sont les bits de CCPR1L et dont les 2 LSB (Least Significant Bits) sont les bits 4 et 5 de CCP1CON On obtient avec la formule : CCPR1L = 0b00111110 ; CCP1CON = 0b00011100 ; 0b0011111001 * 1/(4*10^6) * 16 = 1000/1000000 = 0.001s = 1ms Equivalent à un duty cycle de 50% quand la fréquence vaut 500 Hz.
  22. 22. PSI RAPPORT | Barre & Bille 2012 21 ADC (Analogic to Digital Converter) L’ADC (ou CAN (Convertisseur Analogique Numérique) en français) permet de transformer une donnée analogique (telle qu’une tension) en donnée numérique (binaire) grâce à un échantillonnage, une troncature (si les valeurs comprises entre 3V et 4V correspondent un niveau alors toutes ces données auront la même valeur binaire) et une discrétisation des données (faire correspondre une plage de mesures à un nombre binaire). Le PIC permet de faire cela grâce à ce code OpenADC permet d’initialiser le convertisseur, on lui envoie des paramètres qui lui disent par quel bit commencer le codage, quelle broche est utilisée, on lui interdit les interruptions pendant qu’il convertit, et la vitesse de synchronisation. Cette fonction est appelée à chaque fois que nous avons une conversion à faire.
  23. 23. PSI RAPPORT | Barre & Bille 2012 22 Communication PIC (USART) Pour activer la communication sur le PIC, il faut activer la communication et les interruptions liées au périphérique, ce que l’on fait avec le code suivant : OpenUSART permet d’initialiser la communication sur le port série Ce code permet d’entrer dans l’interruption lorsque l’on reçoit un caractère et sert à enregistrer ce qui est lu sur le port série dans un tampon (réception des caractères 1 par 1 et enregistrement dans un tableau).
  24. 24. PSI RAPPORT | Barre & Bille 2012 23 Ci-dessous le code de la fonction AnalyserTrame() La fonction AnalyserTrame lit le tableau (qui ne contiendra ni le premier caractère ni le dernier, ces caractères servant à l’identification et à la fin du tampon). Le premier caractère envoyé est un caractère qui permet de déterminer quelle variable doit être modifiée, et une fois ce caractère identifié, on modifie la variable en fonction de ce qu’il y a dans la chaine en utilisant les fonctions atoi (ASCII to int) et atof (ASCII to float). Ci-dessous le schéma de la communication entre le PIC et le PC
  25. 25. PSI RAPPORT | Barre & Bille 2012 24 Interface Graphique Voici un aperçu de l’interface graphique en fonctionnement. Légende  1 : Bouton servant à activer la communication sur le port série  2 : Bouton servant à stopper la communication sur le port série  3 : Bouton qui permet d’enregistrer la courbe en fichier .csv utilisable par Excel et MATLAB  4 : Zone de texte qui permet de définir la position à laquelle on veut que la bille s’arrête  5 : Zone de texte permettant de donner l’intervalle de rafraîchissement  6 : position actuelle de la bille  7,8 et 9 : Zones de texte permettant de modifier les variables du système PID  10 : Bouton qui permet d’actualiser les variables 7,8 et 9 sur la carte  11 : Graphique utilisant une librairie DLL « XYgraph » qui permet d’afficher la position de la balle en temps réel 1 2 3 5 4 6 7 8 9 10 11
  26. 26. PSI RAPPORT | Barre & Bille 2012 25 Nous avons eu quelques difficultés, la principale est que le tampon du programme était limité à 2 octets, ce problème a été résolu en utilisant des données du type float qui ont 4 octets de données. La librairie « XYgraph » que nous avons utilisé est en version d’essai et ne permet pas d’afficher plus de 1000points, nous avons donc utilisé le code ci-dessus pour régler ce problème Code d’envoi des données sur le PIC depuis le PC
  27. 27. PSI RAPPORT | Barre & Bille 2012 26 La position de la bille étant comprise entre 0 et 430 elle ne peut pas être codée sur un seul octet, on envoie donc un caractère spécial qui permet de définir si la position est supérieure à 255 et dans ce cas on ajoute 255 à la valeur reçue. Sinon on laisse la valeur telle quelle. Code du bouton permettant d’enregistrer le graphe dans un fichier.csv Partie du code permettant d’envoyer les nouvelles données Kp, Ki et Kd au PIC afin de modifier les valeurs du correcteur PID.
  28. 28. PSI RAPPORT | Barre & Bille 2012 27 Suivi Nous avons commencé par remplacer les fils d’alimentation car leur diamètre était trop fin pour l’intensité que nous leur faisions supporter. Ensuite nous avons paramétré le PWM, nous avions un problème car nous ne pouvions pas descendre en dessous d'une fréquence de 250 Hz alors qu’il nous fallait 50 Hz pour obtenir 20 ms de commande pour le servomoteur, qui faisait du bruit lorsque la fréquence était trop élevée. Finalement nous avons choisi une fréquence de 500 Hz pour optimiser la commande, celle-ci ne nécessitant qu’une période de que 2ms pour être effective. Nous avons ensuite implémenté le convertisseur analogique numérique du PIC, qu’il a fallu calibrer pour obtenir une valeur comprise entre 0 et 430 (la barre faisant 430 mm cela nous permettait de connaitre la position de la bille).. Nous avons ensuite codé le PID, cela a posé des problèmes lors de la discrétisation des variables car cela atténue soit la rapidité, soit la précision du correcteur. Nous avons ensuite modélisé les interactions entre la bille et la barre, puis entre l’angle de la barre et l’angle du servomoteur, et enfin entre l’angle du servomoteur et le PWM. Pour modéliser la relation entre l’angle de la barre et celui du servomoteur, nous avons travaillé sur SolidWorks pour faire une étude de mouvement qui nous a donné un fichier.csv que nous avons exploité avec Excel afin d’obtenir une courbe de tendance. Pour modéliser la relation entre l’angle du servomoteur et le PWM, nous avons procédé de manière empirique, ce qui implique une faible précision car nos outils de mesure n’étaient pas très précis. Nous avions un problème avec la bille, qui était trouée, nous l’avons rempli avec un alliage composé de 60% de plomb et de 40% d’étain pour éviter que la bille saute de la glissière sur laquelle elle était et cause des problèmes de stabilité. Lors de l’implémentation du graphique temps réel dans l’interface graphique nous avons eu quelques problèmes car il a fallu implanter une librairie extérieure.
  29. 29. PSI RAPPORT | Barre & Bille 2012 28 Suite à cela, nous avons optimisé le code du PIC afin d’augmenter les performances temporelles de celui-ci, en effet, nous pouvons corriger la position de la bille toutes les 6 ms. puis 9 ms en envoyant les donnée sur le port série Nous avions un problème avec le servomoteur, qui dans un sens restait stable, mais dans l’autre tournait à cause du poids de la barre qui s’appliquait dessus, ce que l’on a remarqué très tard dans le projet.
  30. 30. PSI RAPPORT | Barre & Bille 2012 29 Améliorations On peut améliorer la maquette en faisant plusieurs choses que nous n’avons pas eu le temps de faire pendant notre projet mais qui seront réalisables l’année prochaine. On peut changer le servomoteur, celui qui est installé est un servomoteur analogique, on peut le remplacer par un servomoteur numérique, qui est plus précis et plus rapide et stable dans les 2 sens. On peut changer la bille, car celle que nous avons, possède une matrice inertielle imparfaite du fait du trou que nous avons comblé avec un matériau qui n’est pas celui de la bille. On pourra également remplacer le moyen d’acquérir la position de la bille, les fils résistifs pourront laisser place à deux télémètres qui une fois la différence entre les deux faites, permettra de connaître la position de la bille, ce qui permettra de choisir une bille qui n’est pas forcément faite en matériau conducteur. On pourra remplacer le servomoteur, qui est décalé par rapport à l’axe central de la barre, par un moteur à courant continu qui sera placé sous l’axe central de la barre (vois schéma ci-dessous) Ci-dessus le schéma d’un montage avec un moteur a courant continu centré sous l’axe de la barre. MCC
  31. 31. PSI RAPPORT | Barre & Bille 2012 30 Modifications depuis le Salon Modification de l'interface afin de pourvoir observer la grandeur d'entré du PID(position de la balle) ainsi que la grandeur de sortie (PWM duty cycle). Problème shareware de la librairie utilisée, un seul graphe peut être affiché à la fois. PIC PC ‘P’ position actuelle ‘Q’ position actuelle ‘W’ PWM Nouvelle communication PC/PIC
  32. 32. PSI RAPPORT | Barre & Bille 2012 31 Modification de la fonction PWM_X, afin qu'elle envoie sur le port série le rapport cyclique.
  33. 33. PSI RAPPORT | Barre & Bille 2012 32 Applications futures Ce qui sera surement réalisable pour un futur projet sera un « ball and plate », une amélioration du « ball and beam » en deux dimensions. Qui comprendra deux moteurs, un pour réguler l’angle de l’axe des abscisses et l’autre pour réguler l’axe des ordonnées. On pourra récupérer la position de la bille par différents moyens, une webcam, ou un écran tactile. Ci-dessous, une photo de ce système. Image d’un Ball & Plate
  34. 34. PSI RAPPORT | Barre & Bille 2012 33 Mise en fonctionnement - Régler l’alimentation stabilisée sur 1,3V - Relier la borne noire du la maquette à la borne négative de l’alimentation stabilisée - Relier la borne rouge de la maquette à la borne positive de l’alimentation stabilisée - Relier la masse de la carte à la masse de la maquette - Brancher le dernier fil (bleu) de la maquette sur le PIN RA1 - En parallèle mettre un condensateur 100µF entre RA1 et la masse - Sur le servomoteur, brancher sur le PIN noir la masse - Sur le servomoteur, brancher sur le PIN rouge le +5V de la carte - Sur le servomoteur, brancher sur le PIN orange la broche RC2 de la carte - Brancher l’alimentation de la carte électronique - Brancher le port série de la carte à celui de l’ordinateur - Si l’axe de la barre n’est pas à l’horizontale rectifier l’angle - Pour démarrer l’asservissement, appuyer sur le bouton RA4 - Sur l’ordinateur, démarrer l’interface graphique - Cliquer sur le bouton Start COM pour lancer la communication Maquette Rouge Noir Bleu PIC RA1 RC2 Rouge Noir Orange Servomoteur RS-2 Modelcraft 1.4V 5V 100µF
  35. 35. PSI RAPPORT | Barre & Bille 2012 34 Conclusion Durant toute la période du projet effectuée au sein de l’ESIEA, nous avons acquis plusieurs enseignements. D’une part, Ce projet nous a permis de saisir certains aspects du milieu du travail, de contacter d’autres personnes, d’améliorer nos connaissances, d’échanger des idées et d’avoir plus d’expérience, et mettre en pratique nos connaissances théoriques. En outre, ce projet a été l’occasion pour nous de montrer les compétences techniques que nous avons acquises durant cette année.

×