SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
PSI RAPPORT | Barre & Bille 2012
0
07/06/2012
Fait par : Tarik EN-NAKDI
3A ESIEA PSI RAPPORT | BARRE & BILLE
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
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.
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
PSI RAPPORT | Barre & Bille 2012
4
Partie mécanique
Schéma du montage
Variables entrant en jeu :
∑ 𝐹𝑏 = 𝑠𝑜𝑚𝑚𝑒𝑠 𝑑𝑒𝑠 𝑓𝑜𝑟𝑐𝑒𝑠 𝑎𝑝𝑝𝑙𝑖𝑞𝑢é𝑒𝑠 à 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒
𝑚 = 𝑚𝑎𝑠𝑠𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒
𝑔 = 𝑐𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡 𝑑𝑒 𝑝𝑒𝑠𝑎𝑛𝑡𝑒𝑢𝑟
∅ = 𝑎𝑛𝑔𝑙𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑎𝑟𝑟𝑒 𝑝𝑎𝑟 𝑟𝑎𝑝𝑝𝑜𝑟𝑡 𝑎 𝑙′ℎ𝑜𝑟𝑖𝑧𝑜𝑛𝑡𝑎𝑙𝑒
𝐹𝑟 = 𝑐𝑜𝑛𝑡𝑟𝑎𝑖𝑛𝑡𝑒 𝑑𝑒 𝑟𝑜𝑢𝑙𝑒𝑚𝑒𝑛𝑡
𝛼 = 𝑑é𝑝𝑙𝑎𝑐𝑒𝑚𝑒𝑛𝑡 𝑎𝑛𝑔𝑢𝑙𝑎𝑖𝑟𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒
𝑎′
= 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑒𝑛𝑡𝑟𝑒 𝑙′
𝑎𝑥𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑎𝑟𝑟𝑒 𝑒𝑡 𝑙𝑒 𝑝𝑜𝑖𝑛𝑡 𝑑𝑒 𝑐𝑜𝑛𝑡𝑎𝑐𝑡 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝑠𝑢𝑟 𝑙𝑎 𝑏𝑎𝑟𝑟𝑒
𝜏 𝑏 = 𝑐𝑜𝑢𝑝𝑙𝑒 𝑑′𝑒𝑞𝑢𝑖𝑙𝑖𝑏𝑟𝑒
𝐽 𝑏 = 𝑚𝑜𝑚𝑒𝑛𝑡 𝑑′
𝑖𝑛𝑒𝑟𝑡𝑖𝑒𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒
𝑎 = 𝑑𝑖𝑎𝑚è𝑡𝑟𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒
𝜏𝑖𝑛 = 𝑐𝑜𝑢𝑝𝑙𝑒 𝑔é𝑛é𝑟é 𝑝𝑎𝑟 𝑙𝑒 𝑚𝑜𝑡𝑒𝑢𝑟
𝑏𝑚 = 𝑐𝑜𝑢𝑝𝑙𝑒 𝑏𝑎𝑟𝑟𝑒 𝑒𝑡 𝑚𝑜𝑡𝑒𝑢𝑟
𝑘 𝑡 = 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 𝑑𝑢 𝑐𝑜𝑢𝑝𝑙𝑒 𝑑𝑢 𝑚𝑜𝑡𝑒𝑢𝑟
𝐼𝑖𝑛 = 𝑖𝑛𝑡𝑒𝑛𝑠𝑖𝑡é 𝑓𝑜𝑢𝑟𝑛𝑖𝑒 𝑎𝑢 𝑚𝑜𝑡𝑒𝑢𝑟
φ
a’
a
α
x
Fr
g
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
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.
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
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
PSI RAPPORT | Barre & Bille 2012
9
De plus nous avons implémenté un filtre numérique qui consiste à calculer la moyenne de dix
mesures.
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.
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
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)
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.
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))
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
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.
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 :
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
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.
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.
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.
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).
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
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
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
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.
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.
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.
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
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
PSI RAPPORT | Barre & Bille 2012
31
Modification de la fonction PWM_X, afin qu'elle envoie sur le port série le rapport cyclique.
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
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
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.

Mais conteúdo relacionado

Mais procurados

TP Compteurs - logique combinatoire
TP Compteurs - logique combinatoire TP Compteurs - logique combinatoire
TP Compteurs - logique combinatoire bilal001
 
Machines synchrones.pdf
Machines synchrones.pdfMachines synchrones.pdf
Machines synchrones.pdfYvanNgnie1
 
Cours Transformée de Laplace.pdf
Cours Transformée de Laplace.pdfCours Transformée de Laplace.pdf
Cours Transformée de Laplace.pdfSohaMoussaoui
 
Chap_1_Redresseurs.ppt [Mode de compatibilité].pdf
Chap_1_Redresseurs.ppt [Mode de compatibilité].pdfChap_1_Redresseurs.ppt [Mode de compatibilité].pdf
Chap_1_Redresseurs.ppt [Mode de compatibilité].pdffadouamadarisse
 
Machines électriques : Qcm chapitre v
Machines électriques : Qcm chapitre v Machines électriques : Qcm chapitre v
Machines électriques : Qcm chapitre v Mohamed Khalfaoui
 
Cours d'Electrotechnique 2 : machines tournantes
Cours d'Electrotechnique 2 : machines tournantesCours d'Electrotechnique 2 : machines tournantes
Cours d'Electrotechnique 2 : machines tournantesChristophe Palermo
 
Automates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfAutomates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfMENNANIZinedine
 
Les automates-programmables-industriels
Les automates-programmables-industrielsLes automates-programmables-industriels
Les automates-programmables-industrielsOUSSAMAMELIK
 
Etude du circuit ne 555
Etude du circuit ne 555Etude du circuit ne 555
Etude du circuit ne 555Mo Ur Ad Es-se
 
Chapitre IV : Les machines synchrones
Chapitre IV : Les machines synchronesChapitre IV : Les machines synchrones
Chapitre IV : Les machines synchronesMohamed Khalfaoui
 
State space analysis.pptx
State space analysis.pptxState space analysis.pptx
State space analysis.pptxRaviMuthamala1
 
A. Attou Commande scalaire MAS
A. Attou  Commande scalaire MASA. Attou  Commande scalaire MAS
A. Attou Commande scalaire MASAttou
 
Etude et analyse de la commande des onduleurs Multi-niveaux par MLI sinusoïdale
Etude et analyse de la commande des onduleurs Multi-niveaux par MLI sinusoïdaleEtude et analyse de la commande des onduleurs Multi-niveaux par MLI sinusoïdale
Etude et analyse de la commande des onduleurs Multi-niveaux par MLI sinusoïdaleabdelghani1993
 
Hydraulic Actuation System modeling for developmental Gas Turbine Engine
Hydraulic Actuation System modeling for developmental Gas Turbine EngineHydraulic Actuation System modeling for developmental Gas Turbine Engine
Hydraulic Actuation System modeling for developmental Gas Turbine EnginePREMNATH N
 
Câblage Entrées / Sorties Automate programmable
Câblage Entrées / Sorties Automate programmable Câblage Entrées / Sorties Automate programmable
Câblage Entrées / Sorties Automate programmable morin moli
 
Automatique systémes linéaires et non linéaires 2
Automatique   systémes linéaires et non linéaires 2Automatique   systémes linéaires et non linéaires 2
Automatique systémes linéaires et non linéaires 2badr zaimi
 
cm_machine_synchrone.ppt
cm_machine_synchrone.pptcm_machine_synchrone.ppt
cm_machine_synchrone.pptIMADABOUDRAR1
 

Mais procurados (20)

TP Compteurs - logique combinatoire
TP Compteurs - logique combinatoire TP Compteurs - logique combinatoire
TP Compteurs - logique combinatoire
 
Machines synchrones.pdf
Machines synchrones.pdfMachines synchrones.pdf
Machines synchrones.pdf
 
Cours Transformée de Laplace.pdf
Cours Transformée de Laplace.pdfCours Transformée de Laplace.pdf
Cours Transformée de Laplace.pdf
 
Chap_1_Redresseurs.ppt [Mode de compatibilité].pdf
Chap_1_Redresseurs.ppt [Mode de compatibilité].pdfChap_1_Redresseurs.ppt [Mode de compatibilité].pdf
Chap_1_Redresseurs.ppt [Mode de compatibilité].pdf
 
Mcc
MccMcc
Mcc
 
Machines électriques : Qcm chapitre v
Machines électriques : Qcm chapitre v Machines électriques : Qcm chapitre v
Machines électriques : Qcm chapitre v
 
Chapitre 3 mli mcc
Chapitre 3 mli mccChapitre 3 mli mcc
Chapitre 3 mli mcc
 
Cours d'Electrotechnique 2 : machines tournantes
Cours d'Electrotechnique 2 : machines tournantesCours d'Electrotechnique 2 : machines tournantes
Cours d'Electrotechnique 2 : machines tournantes
 
Automates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfAutomates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdf
 
Le moteur asynchrone
Le moteur asynchroneLe moteur asynchrone
Le moteur asynchrone
 
Les automates-programmables-industriels
Les automates-programmables-industrielsLes automates-programmables-industriels
Les automates-programmables-industriels
 
Etude du circuit ne 555
Etude du circuit ne 555Etude du circuit ne 555
Etude du circuit ne 555
 
Chapitre IV : Les machines synchrones
Chapitre IV : Les machines synchronesChapitre IV : Les machines synchrones
Chapitre IV : Les machines synchrones
 
State space analysis.pptx
State space analysis.pptxState space analysis.pptx
State space analysis.pptx
 
A. Attou Commande scalaire MAS
A. Attou  Commande scalaire MASA. Attou  Commande scalaire MAS
A. Attou Commande scalaire MAS
 
Etude et analyse de la commande des onduleurs Multi-niveaux par MLI sinusoïdale
Etude et analyse de la commande des onduleurs Multi-niveaux par MLI sinusoïdaleEtude et analyse de la commande des onduleurs Multi-niveaux par MLI sinusoïdale
Etude et analyse de la commande des onduleurs Multi-niveaux par MLI sinusoïdale
 
Hydraulic Actuation System modeling for developmental Gas Turbine Engine
Hydraulic Actuation System modeling for developmental Gas Turbine EngineHydraulic Actuation System modeling for developmental Gas Turbine Engine
Hydraulic Actuation System modeling for developmental Gas Turbine Engine
 
Câblage Entrées / Sorties Automate programmable
Câblage Entrées / Sorties Automate programmable Câblage Entrées / Sorties Automate programmable
Câblage Entrées / Sorties Automate programmable
 
Automatique systémes linéaires et non linéaires 2
Automatique   systémes linéaires et non linéaires 2Automatique   systémes linéaires et non linéaires 2
Automatique systémes linéaires et non linéaires 2
 
cm_machine_synchrone.ppt
cm_machine_synchrone.pptcm_machine_synchrone.ppt
cm_machine_synchrone.ppt
 

Semelhante a Rapport du projet Bille et Barre

Présentation Eolienne.pptx
Présentation Eolienne.pptxPrésentation Eolienne.pptx
Présentation Eolienne.pptxFLORIAN264869
 
Analyse de Donnée { ACP } sous XLSTAT
Analyse de Donnée { ACP } sous XLSTAT Analyse de Donnée { ACP } sous XLSTAT
Analyse de Donnée { ACP } sous XLSTAT Ahmed EL ATARI
 
correcteur PI asservissement pour les systeme asservi
correcteur PI asservissement pour les systeme asservicorrecteur PI asservissement pour les systeme asservi
correcteur PI asservissement pour les systeme asservifanantenanarajaonisa
 
Cours_Organes d'asservissement.pptx
Cours_Organes d'asservissement.pptxCours_Organes d'asservissement.pptx
Cours_Organes d'asservissement.pptxMohammedJazouuli
 
G1SSCIN03203-sujet1.pdf
G1SSCIN03203-sujet1.pdfG1SSCIN03203-sujet1.pdf
G1SSCIN03203-sujet1.pdfOlivierFLOHR1
 
controle 2 anisse.pdf
controle 2 anisse.pdfcontrole 2 anisse.pdf
controle 2 anisse.pdfBougrain
 
G1SSCIN03205-sujet3.pdf
G1SSCIN03205-sujet3.pdfG1SSCIN03205-sujet3.pdf
G1SSCIN03205-sujet3.pdfOlivierFLOHR1
 
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variableMayssa Rjaibia
 
pizoelectricite . ppt
pizoelectricite . pptpizoelectricite . ppt
pizoelectricite . pptsafiaouy
 
Capteurs-cours-01(www.alloacademy.com).pdf
Capteurs-cours-01(www.alloacademy.com).pdfCapteurs-cours-01(www.alloacademy.com).pdf
Capteurs-cours-01(www.alloacademy.com).pdfkorukobasket
 
Td dimensionnenemt d'arbre
Td dimensionnenemt d'arbreTd dimensionnenemt d'arbre
Td dimensionnenemt d'arbreYoussef Trimech
 
Dimensionnement des composants_pour_convertisseur_sepic
Dimensionnement des composants_pour_convertisseur_sepicDimensionnement des composants_pour_convertisseur_sepic
Dimensionnement des composants_pour_convertisseur_sepicLotfi Messaadi
 
La méthode ziegler nichols pour la détermination des paramètres d un controle...
La méthode ziegler nichols pour la détermination des paramètres d un controle...La méthode ziegler nichols pour la détermination des paramètres d un controle...
La méthode ziegler nichols pour la détermination des paramètres d un controle...osmalilwano
 
Moteur Asynchrone
Moteur AsynchroneMoteur Asynchrone
Moteur AsynchroneMed Amine
 
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...LAUMAS
 
1 asservissements linéaires continus
1 asservissements linéaires continus1 asservissements linéaires continus
1 asservissements linéaires continusRachid Lajouad
 
Université Lean Six Sigma -- Projet Black Belt -- Rémi Bessieu
Université Lean Six Sigma -- Projet Black Belt -- Rémi BessieuUniversité Lean Six Sigma -- Projet Black Belt -- Rémi Bessieu
Université Lean Six Sigma -- Projet Black Belt -- Rémi BessieuXL Formation
 
Université Lean 6 Sigma - Projet Black Belt - Rémi Bessieu
Université Lean 6 Sigma - Projet Black Belt - Rémi BessieuUniversité Lean 6 Sigma - Projet Black Belt - Rémi Bessieu
Université Lean 6 Sigma - Projet Black Belt - Rémi BessieuXL Formation
 

Semelhante a Rapport du projet Bille et Barre (20)

Présentation Eolienne.pptx
Présentation Eolienne.pptxPrésentation Eolienne.pptx
Présentation Eolienne.pptx
 
Analyse de Donnée { ACP } sous XLSTAT
Analyse de Donnée { ACP } sous XLSTAT Analyse de Donnée { ACP } sous XLSTAT
Analyse de Donnée { ACP } sous XLSTAT
 
correcteur PI asservissement pour les systeme asservi
correcteur PI asservissement pour les systeme asservicorrecteur PI asservissement pour les systeme asservi
correcteur PI asservissement pour les systeme asservi
 
Cours_Organes d'asservissement.pptx
Cours_Organes d'asservissement.pptxCours_Organes d'asservissement.pptx
Cours_Organes d'asservissement.pptx
 
G1SSCIN03203-sujet1.pdf
G1SSCIN03203-sujet1.pdfG1SSCIN03203-sujet1.pdf
G1SSCIN03203-sujet1.pdf
 
controle 2 anisse.pdf
controle 2 anisse.pdfcontrole 2 anisse.pdf
controle 2 anisse.pdf
 
G1SSCIN03205-sujet3.pdf
G1SSCIN03205-sujet3.pdfG1SSCIN03205-sujet3.pdf
G1SSCIN03205-sujet3.pdf
 
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
 
pizoelectricite . ppt
pizoelectricite . pptpizoelectricite . ppt
pizoelectricite . ppt
 
Capteurs-cours-01(www.alloacademy.com).pdf
Capteurs-cours-01(www.alloacademy.com).pdfCapteurs-cours-01(www.alloacademy.com).pdf
Capteurs-cours-01(www.alloacademy.com).pdf
 
Td dimensionnenemt d'arbre
Td dimensionnenemt d'arbreTd dimensionnenemt d'arbre
Td dimensionnenemt d'arbre
 
Dimensionnement des composants_pour_convertisseur_sepic
Dimensionnement des composants_pour_convertisseur_sepicDimensionnement des composants_pour_convertisseur_sepic
Dimensionnement des composants_pour_convertisseur_sepic
 
La méthode ziegler nichols pour la détermination des paramètres d un controle...
La méthode ziegler nichols pour la détermination des paramètres d un controle...La méthode ziegler nichols pour la détermination des paramètres d un controle...
La méthode ziegler nichols pour la détermination des paramètres d un controle...
 
Deversoir
DeversoirDeversoir
Deversoir
 
Moteur Asynchrone
Moteur AsynchroneMoteur Asynchrone
Moteur Asynchrone
 
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...
 
1 asservissements linéaires continus
1 asservissements linéaires continus1 asservissements linéaires continus
1 asservissements linéaires continus
 
Université Lean Six Sigma -- Projet Black Belt -- Rémi Bessieu
Université Lean Six Sigma -- Projet Black Belt -- Rémi BessieuUniversité Lean Six Sigma -- Projet Black Belt -- Rémi Bessieu
Université Lean Six Sigma -- Projet Black Belt -- Rémi Bessieu
 
Université Lean 6 Sigma - Projet Black Belt - Rémi Bessieu
Université Lean 6 Sigma - Projet Black Belt - Rémi BessieuUniversité Lean 6 Sigma - Projet Black Belt - Rémi Bessieu
Université Lean 6 Sigma - Projet Black Belt - Rémi Bessieu
 
Regulation PI
Regulation PIRegulation PI
Regulation PI
 

Rapport du projet Bille et Barre

  • 1. PSI RAPPORT | Barre & Bille 2012 0 07/06/2012 Fait par : Tarik EN-NAKDI 3A ESIEA PSI RAPPORT | BARRE & BILLE
  • 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. 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. 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. PSI RAPPORT | Barre & Bille 2012 4 Partie mécanique Schéma du montage Variables entrant en jeu : ∑ 𝐹𝑏 = 𝑠𝑜𝑚𝑚𝑒𝑠 𝑑𝑒𝑠 𝑓𝑜𝑟𝑐𝑒𝑠 𝑎𝑝𝑝𝑙𝑖𝑞𝑢é𝑒𝑠 à 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝑚 = 𝑚𝑎𝑠𝑠𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝑔 = 𝑐𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡 𝑑𝑒 𝑝𝑒𝑠𝑎𝑛𝑡𝑒𝑢𝑟 ∅ = 𝑎𝑛𝑔𝑙𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑎𝑟𝑟𝑒 𝑝𝑎𝑟 𝑟𝑎𝑝𝑝𝑜𝑟𝑡 𝑎 𝑙′ℎ𝑜𝑟𝑖𝑧𝑜𝑛𝑡𝑎𝑙𝑒 𝐹𝑟 = 𝑐𝑜𝑛𝑡𝑟𝑎𝑖𝑛𝑡𝑒 𝑑𝑒 𝑟𝑜𝑢𝑙𝑒𝑚𝑒𝑛𝑡 𝛼 = 𝑑é𝑝𝑙𝑎𝑐𝑒𝑚𝑒𝑛𝑡 𝑎𝑛𝑔𝑢𝑙𝑎𝑖𝑟𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝑎′ = 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑒𝑛𝑡𝑟𝑒 𝑙′ 𝑎𝑥𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑎𝑟𝑟𝑒 𝑒𝑡 𝑙𝑒 𝑝𝑜𝑖𝑛𝑡 𝑑𝑒 𝑐𝑜𝑛𝑡𝑎𝑐𝑡 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝑠𝑢𝑟 𝑙𝑎 𝑏𝑎𝑟𝑟𝑒 𝜏 𝑏 = 𝑐𝑜𝑢𝑝𝑙𝑒 𝑑′𝑒𝑞𝑢𝑖𝑙𝑖𝑏𝑟𝑒 𝐽 𝑏 = 𝑚𝑜𝑚𝑒𝑛𝑡 𝑑′ 𝑖𝑛𝑒𝑟𝑡𝑖𝑒𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝑎 = 𝑑𝑖𝑎𝑚è𝑡𝑟𝑒 𝑑𝑒 𝑙𝑎 𝑏𝑖𝑙𝑙𝑒 𝜏𝑖𝑛 = 𝑐𝑜𝑢𝑝𝑙𝑒 𝑔é𝑛é𝑟é 𝑝𝑎𝑟 𝑙𝑒 𝑚𝑜𝑡𝑒𝑢𝑟 𝑏𝑚 = 𝑐𝑜𝑢𝑝𝑙𝑒 𝑏𝑎𝑟𝑟𝑒 𝑒𝑡 𝑚𝑜𝑡𝑒𝑢𝑟 𝑘 𝑡 = 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 𝑑𝑢 𝑐𝑜𝑢𝑝𝑙𝑒 𝑑𝑢 𝑚𝑜𝑡𝑒𝑢𝑟 𝐼𝑖𝑛 = 𝑖𝑛𝑡𝑒𝑛𝑠𝑖𝑡é 𝑓𝑜𝑢𝑟𝑛𝑖𝑒 𝑎𝑢 𝑚𝑜𝑡𝑒𝑢𝑟 φ a’ a α x Fr g
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.