35
07/06/2012 Fait par : Tarik EN-NAKDI 3A ESIEA PSI RAPPORT | BARRE & BILLE

Rapport du projet Bille et Barre

Embed Size (px)

Citation preview

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 +25

(𝑎𝑎′)

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 + 50R² = 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 - 90R² = 1

-100

-80

-60

-40

-20

0

20

40

60

80

100

0 50 100 150

Angle servo/Duty

Angle servo

Linéaire (Angleservo)

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 + 50R² = 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 angulaireBarre (deg)

Poly. (Délacementangulaire 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.