Sunteți pe pagina 1din 80

Institut Suprieur des Etudes

Technologiques de Nabeul

Dpartement: Gnie lctrique

Rf : AII31/32

Parcours

Automatisme et Informatique Industrielle

Rapport de stage de fin de parcours

: Institut suprieur des tudes

technologiques de Nabeul

Commande d'un robot deux roues

Ralis par : Encadr par :


Merzoug Ahmed Encadrant acadmique

Chemingui Azer Mr.Boulaabi


Iskander

Anne universitaire 2015 / 2016


Ddicace 1

A ma chre Mre,

Pour sa patience et ses sacrices et pour avoir t toujours un support moral.

A mon Pre,

Pour sa patience et encouragement durant toutes ces annes d'tudes.

A ma soeur,

Pour sa conance en moi et pour m'avoir entoure depuis mon jeune ge.

A toute ma famille,

Pour l'amour et le respect qu 'ils m'ont toujours accord.

A tous mes amis,

En leurs souhaitant tout le succs et tout le bonheur.

A toute personne ,

Qui m'a aid franchir un horizon dans ma vie.

Aimablement ...

Je ddie ce travail...

Chemingui Azer
Ddicace 2

A ma chre Mre,

Pour sa patience et ses sacrices et pour avoir t toujours un support moral.

A mon Pre,

Pour sa patience et encouragement durant toutes ces annes d'tudes.

A ma soeur,

Pour sa conance en moi et pour m'avoir entoure depuis mon jeune ge.

A toute ma famille,

Pour l'amour et le respect qu 'ils m'ont toujours accord.

A tous mes amis,

En leurs souhaitant tout le succs et tout le bonheur.

A toute personne ,

Qui m'a aid franchir un horizon dans ma vie.

Aimablement ...

Je ddie ce travail...

Merzoug Ahmed
Remerciements

Au terme de ce travail, nous adressons nos remerciements les plus sinceres a Monsieur Is-

kander Boulaabi qui n'a pas cess de nous encourager pendant la dure du projet, ainsi pour

sa gnrosit en matire de formation et d'encadrement.

Nos remerciements les plus cordiaux pour sa disponibilit son aide, ses explications et ses sug-

gestions pertinentes, ainsi que pour ses qualits humaines et morales que nous avons toujours

apprcies.

Nous tenons a remercier aussi Monsieur Smaoui Wahid et Monsieur Aloui hosni pour leurs co-

opration et leurs aide dans la conception mcanique du systme ainsi qu' tous les enseignants

de l'ISET de Nabeul pour la formation qu'ils nous ont dispense.

Nous remercions toutes les personnes qui nous ont soutenue d'une faon ou d'une autre .

Nous terminons ces remerciements en saluant vivement les membres du jury pour l'honneur

qu'ils nous font en acceptant de juger ce travail.


Table des matires

Introduction gnrale 1

1 Prsentation gnrale 2
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Dclaration du problme technique . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Buts et objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4 Mthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.5 Robot deux roues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.5.1 Historique du robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.5.2 Existence du robot pendulaire . . . . . . . . . . . . . . . . . . . . . . . . 6

1.5.3 Horizon de robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.6 Principe de fonctionnement du robot deux roues . . . . . . . . . . . . . . . . . 9

1.7 Estimation de cot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Description du systme 12
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 Systme mcanique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3 Systme lectrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.1 Carte Arduino Mega . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.2 Hacheur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3.2.2 Choix du Pont H . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3.2.3 Prsentation du circuit . . . . . . . . . . . . . . . . . . . . . . 16

5
TABLE DES MATIRES

2.3.2.4 Signal PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.3.3 Capteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3.3.1 Acclromtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3.3.2 Gyroscope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.3.3 MPU 6050 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.4 Le bus I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3.4.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3.4.2 Prise de contrle du bus . . . . . . . . . . . . . . . . . . . . . . 21

2.3.5 Filtration des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.3.5.1 Filtre complmentaire . . . . . . . . . . . . . . . . . . . . . . . 22

2.3.6 Moteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.6.1 Description du moteur . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.6.2 Caractristiques du moteur . . . . . . . . . . . . . . . . . . . . 24

2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 Logiciels et environnement de travail 25


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2 SolidWorks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.3 Fritzing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4 Logiciel d'Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.5 L' environnement Matlab/Simulink . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.5.1 Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.5.2 Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.6 L'interfaage ArduinoMatlab/Simulink . . . . . . . . . . . . . . . . . . . . . . 31

3.7 Familiariser avec l'environnement Matlab/Simulink et Arduino . . . . . . . . . . 32

3.8 Microsoft Windows SDK 6.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4 Modle mathmatique 35
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2 Modlisation des systmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2.1 Modlisation du chssis . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2.2 Modlisation de la roue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6
4.2.3 Modlisation du moteur courant continu . . . . . . . . . . . . . . . . . 39

4.3 Modle linaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5 Commande du systme 43
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.2 Etude thorique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.2.1 Commande du systme en boucle ouverte . . . . . . . . . . . . . . . . . . 43

5.2.2 Commande du systme en boucle ferme . . . . . . . . . . . . . . . . . . 46

5.2.2.1 Rgulateur PID . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.2.2.2 Implmentation du rgulateur PID . . . . . . . . . . . . . . . . 48

5.3 Etude pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.3.1 Description gnrale du systme . . . . . . . . . . . . . . . . . . . . . . . 50

5.3.2 Lecture des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.3.3 Traitement des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.3.4 Filtration des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5.3.5 Moteur courant continu . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Conclusion gnrale 59
Table des gures

1.1 Dirents applications du pendule invers . . . . . . . . . . . . . . . . . . . . . 3

1.2 Le premier robot deux roues . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 Le robot "Joe-le" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 Le robot Rezero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.5 Segway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.6 IBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.7 Le robot Emiew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.8 Le vhicule  C-1  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.9 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.10 Processus de stabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.1 Conception du robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2 Description de la Carte Arduino Mega . . . . . . . . . . . . . . . . . . . . . . . 14

2.3 Carte L298N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4 Le contrle de 2 moteurs par la carte L298N . . . . . . . . . . . . . . . . . . . . 17

2.5 Acclromtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.6 Gyroscope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.7 Connexion de l'MPU6050 et l'Arduino MEGA . . . . . . . . . . . . . . . . . . . 20

2.8 Structure de bus I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.9 Le transfert de bus i2c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.10 Base du fonctionnement d'un ltre complmentaire . . . . . . . . . . . . . . . . 22

2.11 Moteur courant continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1 Modle du robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.2 Interface Fritzing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

8
TABLE DES FIGURES

3.3 Interface d'Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.4 Barre d'outils du logiciel Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.5 Moniteur srie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.6 Environnement Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.7 Arduino support package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.8 L'addition du chier  startup.m  . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.9 L'ajout du chemin d'emplacement . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.10 Programmation avec Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.11 Rsultat en temps rel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.12 Choix du compilateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.1 Forces appliques sur le chssis . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2 Corps du pendule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.3 Forces appliques sur la roue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.4 Roue du robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.5 Schma quivalent du moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5.1 Systme en boucle ouverte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.2 Systme en boucle ouverte 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.3 Graphes des valeurs simules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.4 Les ples de systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.5 Rgulation du systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.6 Fonction de transfert de l'angle de chssis ( ) y . . . . . . . . . . . . . . . . . . . 49

5.7 Fonction Tune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5.8 Angle du chssis aprs rgulation . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.9 Modle du robot avec Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.10 Lecture des donnes du capteur . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.11 Sorties du capteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.12 Bloc de traitement de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5.13 Filtre complmentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.14 Eet du ltre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.15 Commande du moteur dans les deux sens . . . . . . . . . . . . . . . . . . . . . . 56

5.16 Sens 1 du moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

9
5.17 Sens 2 du moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Liste des tableaux

1.1 Estimation du cot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1 Caractristiques de la carte Arduino Mega . . . . . . . . . . . . . . . . . . . . . 15

2.2 Etat du moteur selon les entres eectues . . . . . . . . . . . . . . . . . . . . . 17

2.3 Caractristiques du moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.1 Description des paramtres du chssis . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2 Paramtres de la roue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.3 Paramtres du moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40


Acronymes

LIPO Les accumulateurs au Lithium Polymre.

I2C Inter-Integrated Circuit PWM Pulse Width Modulation.

USB Universal Serial Bus DMP Digital Motion Processor.

MLI Modulation par largeur d'impulsion.

ACK Bit d'acquittement.

SDA Serial Data Line.

SCL Serial Clock Line


Introduction Gnrale

La robotique regroupe un trs vaste domaine d'activits de gnie humain, en eet, plus de

700000 robots sont l'uvre aujourd'hui. Ils ont envahi notre univers, ils sont utiliss dans

tous les domaines : industriel, militaire, mdical et celui des services.

Les robots actuels ne sont qu'au dbut de leur volution, ainsi des laboratoires dans le monde

entier travaillent pour les amliorer et les rendre plus ecaces et plus intelligents. Certains

travaillent sur la marche, d'autres sur la connaissance faciale ou vocale, tandis que d'autres

tudient encore des algorithmes d'intelligence articielle de plus en plus labors.

Le pendule invers est l'un de ces cas typiques qui occupe une place importante dans l'in-

dustrie comme un outil de transport, d'inspection et d'intervention dans des milieux hostiles.

Dans ce contexte, notre projet consiste faire une tude thorique et raliser un prototype du

pendule invers et pour que notre tude soit complte on a fait une tude nancire du robot.

Pour mieux dtailler les direntes tapes du ralisation, le prsent document est structur en

cinq chapitres :

- Le premier chapitre introduit le contexte gnral de ce projet, le but, ainsi que des exemples

du pendule invers.

- Le deuxime chapitre est consacr l'analyse et l'tude de systme lectrique et mcanique

du robot.

- Le troisime chapitre prsente l'environnement global de travail.

- Le quatrime chapitre traite l'aspect purement thorique en faisant la modlisation ma-

thmatique du systme.

- Le cinquime chapitre, quant lui est consacr l'tude de la commande du systme.

1
Chapitre 1
Prsentation gnrale

1.1 Introduction

Chaque projet passe par plusieurs tapes tel que l'tude thorique et pratique et la concep-

tion mcanique.

Mais avant tout nous prsentons la motivation envers la cration de ce robot, problme r-

soudre et objectifs atteindre.

Ce chapitre fournit un rsum de revues de littrature sur des sujets lis au thorme du pendule

invers.

1.2 Dclaration du problme technique

Nous avons dj presque tous un jour essay de maintenir en quilibre un grand bton de

bois sur notre index.

An d'viter la chute de celui-ci nous devons dplacer notre doigt de faon contrecarrer en

permanence son basculement.

C'est exactement le mme d que propose le systme automatis du pendule invers. Alors

que cet exercice semble assez simple et instinctif pour l'homme, il sera ncessaire de dnir des

stratgies prcises pour assurer le maintien automatis du pendule invers.

Bien videmment, les performances obtenues grce un systme automatis sont de loin sup-

rieures celles obtenues par l'homme.

Le pendule invers est un outil didactique puissant utilis en automatique depuis 50 ans. Nous

2
CHAPITRE 1. PRSENTATION GNRALE

pouvons d'ailleurs retrouver une vaste littrature son sujet, puisque de nombreux services

universitaires d'automatique ou de mcatronique crent un jour leur propre pendule invers.

Le pendule invers est un problme commun rsoudre dans la thorie du contrle. Il est

gnralement mont sur un chariot et quilibr en contrlant le mouvement du chariot. Cette

conguration peut tre modie de nombreuses faons pour rendre le systme plus complexe et

elle peut tre contrle de plusieurs manires.

La masse suprieure du pendule invers est situe son point de pivotement. Il est souvent

mis en uvre avec le point de pivot mont sur un chariot qui peut se dplacer horizontalement.

Alors qu'un pendule normal est stable lorsqu'il est accroch la baisse, un pendule invers

est intrinsquement instable, et doit tre activement quilibr an de rester debout, soit en

appliquant un couple au point de pivot ou en dplaant le point de pivot l'horizontal.

Figure 1.1  Dirents applications du pendule invers

3
CHAPITRE 1. PRSENTATION GNRALE

1.3 Buts et ob jectifs

Les objectifs pricipales de ce projets sont :

 Fabriquer une structure mcanique du modle.

 Etre en mesure d'quilibrer sur deux roues.

 Etre stable et ne pas faire des grands mouvements indsirables.

 Calculer les paramtres dynamiques du vhicule et les quations de la reprsentation

d'tat du modle.

 Faire des simulations en temps rel l'aide de logiciel Matlab-Simulink.

1.4 Mthode

Les systmes de contrle ont t dvelopps en utilisant la conception base de modle

mathmatique et en simulant ces modles en utilisant Matlab/Simulink avant sa mise en uvre

sur le robot.

La conception du robot a t faite en analysant d'abord les dynamiques du pendule invers de

sorte qu'il avait une bonne conception pour le rendre plus facile contrler depuis le dbut.

La conception mcanique a t faite en utilisant le logiciel solideworks.

1.5 Robot deux roues

1.5.1 Historique du robot

Le premier robot deux roues a t construit par Kazuo Yamafuji un professeur l'Univer-

sit de Electra-Communications de Tokyo en 1986. Selon un article paru dans le Japan Times,

le robot peut simuler le comportement d'un pendule invers. Il s'agit notamment d'une concep-

tion avec un essieu (muni de deux roues) et d'un chariot contenant le dispositif de stabilisation

qui l'empche de basculer.

4
CHAPITRE 1. PRSENTATION GNRALE

Figure 1.2  Le premier robot deux roues

Le 25 janvier 2000 le robot "Joe-le" accomplit ses premires volutions. Il est n d'une ide

germe en 1996 au laboratoire d'Electronique Industrielle de l'cole polytechnique fdrale de

Lausanne. Pour parvenir son quilibre, un rgulateur lectronique stabilise la plateforme en

exerant un couple de redressement oppos au sens de basculement.

Figure 1.3  Le robot "Joe-le"


En Avril 2010, le robot Rezero fait son apparition pour la premire fois. Il est mont sur

une grosse boule et se tient en quilibre en mesurant constamment son inclinaison avec un

dtecteur (160 fois par seconde). Ensuite il se contrebalance et vite de basculer en agissant sur

ses moteurs. Si quelque chose ne marche pas dans le processus, Rezero tombe immdiatement

5
CHAPITRE 1. PRSENTATION GNRALE

parterre. A cause de son instabilit, Rezero est toujours en mouvement.

Figure 1.4  Le robot Rezero

1.5.2 Existence du robot pendulaire

Il y a plusieurs succs des produits commerciaux et de nombreux prototypes de recherche

travers le monde qui sont construits sur la base de robot deux roues. L'un de ses produits

les plus connu est le Segway, c'est un outil de transport d'auto quilibrage personnel qui a t

produit par  Segway Inc  aux tats-Unis [1].

Il est entran par des servomoteurs et il peut acclrer jusqu' 20 kilomtres par heure. Un

capteur d'inclinaison et de plusieurs gyroscopes sont employs dans le Segway pour dtecter le

mouvement angulaire du robot. Il est capable d'acclrer en se penchant en avant ou en arrire.

6
CHAPITRE 1. PRSENTATION GNRALE

Figure 1.5  Segway

IBot est un fauteuil roulant lectrique dvelopp par Dean Kamen dans un partenariat avec

Toyota. Ce fauteuil monte les escaliers et se tient en quilibre seulement sur deux roues. IBot

augmente sa hauteur quand il tient en quilibre sur deux roues. L'augmentation d'hauteur ore

une vision du niveau des yeux pour une personne dsactiv pour communiquer avec d'autres

personnes.

Figure 1.6  IBot


7
CHAPITRE 1. PRSENTATION GNRALE

1.5.3 Horizon de robot

Ce petit robot de la taille(90 cm ;15 kg) intgre 14 microphones, divers capteurs, une camra

et des roulettes qui lui permettent d'atteindre une vitesse de 6 km/h. Hitachi le groupe de

recherche qui a cre ce robot espre pouvoir guider les millions de touristes qui se rendront aux

jeux olympiques de Tokyo en 2020.

Son rle est alors de reprer les personnes dans l'environnement proche, aller leur rencontre,

leur adresser la parole et rpondre leurs questions en direntes langues.

Figure 1.7  Le robot Emiew


Si on parle d'adopter le thorme du pendule invers dans les recherches an de crer des

nouvelles produits qui sert rendre la vie de l'homme plus confortable et mme crer une rvo-

lution dans le domaine de transport, on ne peut pas ignorer le scooter lectrique deux roues

nomm  C-1  cre par le californien Lit Motors.

Les avantages de ce vhicule sont nombreux mais la chose la plus importante et qui le

distingue des autres vhicules est sa grande scurit qui est un problme majeur pour les autres

8
CHAPITRE 1. PRSENTATION GNRALE

vhicules. Elle est quipe de ceintures de scurit et d'airbags, mais le meilleur reste les deux

normes gyroscopes, ils redressent le vhicule quelque soit la position qu'il a prise, rappelant

en ce sens un peu le Segway

Ils permettent au  C-1 de rester stable, mme l'arrt, un feu rouge par exemple, sans

mettre les pieds au sol. D'aprs "Lit", il faudrait la puissance d'un jeune lphant fonant sur

le scooter lectrique pour arriver le coucher sur la chausse en empchant les deux systmes

gyroscopiques de fonctionner correctement [2].

Figure 1.8  Le vhicule  C-1 

1.6 Principe de fonctionnement du robot deux roues

Un robot deux roues est un systme d'une dynamique instable. Cela signie que le robot

est libre de tomber en avant ou en arrire sans aucunes forces appliques. Il est quilibr lorsque

son centre de gravit et ses roues sont situs sur une ligne verticale.

Sinon, les roues devraient suivre les chutes du robot pour qu'il l'quilibre.

9
CHAPITRE 1. PRSENTATION GNRALE

Figure 1.9  Principe de fonctionnement

Le diagramme ci- dessous illustre et dcrit le processus de stabilit.

Figure 1.10  Processus de stabilit

10
CHAPITRE 1. PRSENTATION GNRALE

1.7 Estimation de cot

An de faire une tude complte du projet, on a fait une estimation de cot du robot :

Produit Prix
Carte Arduino Mega 85 DT
Hacheur 15 DT
Moteur 25 DT * 2
Roue 5 DT * 2
MPU 6050 30 DT
Batterie 60 DT
Partie mcanique (Plexiglas, distanceur...) 20 DT
Total 270 DT

Table 1.1  Estimation du cot

1.8 Conclusion

Ce chapitre nous a servi de mettre notre projet dans son cadre. Il nous a permis de connatre

l'importance du phnomne du pendule invers et sa progression durant le temps et ses divers

applications et utilits.

On a conserv le chapitre suivant pour prsenter les direntes parties du systme lectrique

et mcanique du robot.

11
Chapitre 2
Description du systme

2.1 Introduction

On a rserv ce chapitre pour l'tude de dirents matriels du robot. En partant par la

prsentation du systme mcanique. Nous avons abord par la suite la conception dtaille de

chaque partie du systme lectrique.

2.2 Systme mcanique

La conception gnrale du robot tait un corps rectangulaire sur deux roues, constitu de

trois tages en plexiglas de 4 mm d'paisseur, spar par des distanceurs. Les composants

lectroniques utiliss sont monts sur les 3 tages :

- Premier tage : Il se compose d'un hacheur et du capteur qui est attach au dessous de la

plaque de faon tre en srie avec l'axe du moteur pour prendre les valeurs exactes de position

du pendule.

- Deuxime tage : la carte Arduino.

- Troisime tage : On a mis la batterie en troisime tage.

12
CHAPITRE 2. DESCRIPTION DU SYSTME

Figure 2.1  Conception du robot

2.3 Systme lectrique

2.3.1 Carte Arduino Mega

C'est un circuit imprim comportant tous les composants lectroniques ncessaires pour

faire fonctionner un microcontrleur (ATmega2560) associ une interface USB lui permettant

de communiquer avec un ordinateur.

13
CHAPITRE 2. DESCRIPTION DU SYSTME

Figure 2.2  Description de la Carte Arduino Mega

Les caractristiques de la carte Arduino mega sont donnes par le tableau suivant :

14
CHAPITRE 2. DESCRIPTION DU SYSTME

Microcontrleur ATmega2560

Tension de fonctionnement 5V

Tension d'alimentation 7-12V

Broches E/S numriques 54 (dont 14 disposent d'une sortie PWM)

Broches d'entres analogiques 16

Intensit maximale disponible par broche E/S (5V) 40 mA

Intensit maximale disponible pour la sortie 3.3V 50 mA

Intensit maximale disponible pour la sortie 5V Fonction de l'alimentation utilise - 500 mA


max si le port USB est utilis seul

Mmoire Programme Flash 256 KB dont 8 KB sont utiliss par le


bootloader

Mmoire SRAM (mmoire volatile) 8 KB

Mmoire EEPROM (mmoire non volatile) 4 KB

Vitesse d'horloge 16 MHz

Table 2.1  Caractristiques de la carte Arduino Mega

2.3.2 Hacheur

2.3.2.1 Description

Le moteur lectrique ne fonctionne pas si on le branche directement la sortie du microcon-

trleur, donc on a besoin d'utiliser un pont H pour chaque moteur. La fonction essentielle de

ce pont H est de fournir un fort courant par rapport au courant dlivr par la carte Arduino. Il

nous permet aussi d'inverser le sens de rotation du moteur en inversant la tension ses bornes.

2.3.2.2 Choix du Pont H

On a choisi d'utiliser le pont L298N car il supporte jusqu' 2A, cela rpond nos besoins

et cause de son cot rduit en le comparant avec les autres ponts.

15
CHAPITRE 2. DESCRIPTION DU SYSTME

Figure 2.3  Carte L298N

2.3.2.3 Prsentation du circuit

C'est un Double Pont-H destin au contrle du moteur continu (H-Bridge Motor Driver).

C'est un module extrmement utile pour le contrle des robots. Il peut contrler deux moteurs

courant continu ou un moteur pas--pas.

Le tableau suivant nous permettrons de comprendre le fonctionnement d'un seul moteurs

courant continu, le mme processus est appliqu l'autre moteur :

16
CHAPITRE 2. DESCRIPTION DU SYSTME

ENA IN1 IN Moteur A

1 1 0 Sens horlogique
1 0 1 Sens Anti-horlogique
1 0 0 Le moteur ne fonctionne pas
0 0 ou 1 0 ou 1 Le moteur ne fonctionne pas

Table 2.2  Etat du moteur selon les entres eectues


Le schma ci-dessous nous illustre le brochage de 2 moteurs une carte Arduino en utilisant

le composant L298N :

Figure 2.4  Le contrle de 2 moteurs par la carte L298N

2.3.2.4 Signal PWM

Un signal PWM (pulse width modulation) ou (MLI) modulation par largeur d'impulsion

est un signal numrique dont la tension peut prendre deux valeurs : un niveau bas ( 0 volt ) et

un niveau haut qui correspond +Vcc.

Le signal PWM permet de modier la vitesse en donnant un rapport cyclique variable sur

l'entre d'activation (ENA ou ENB) du circuit de puissance.

17
CHAPITRE 2. DESCRIPTION DU SYSTME

Cette technique est couramment utilise pour synthtiser des signaux continus l'aide de

circuits fonctionnement tout ou rien, ou plus gnralement tats discrets Le principe gnral

est qu'en appliquant une succession d'tats discrets pendant des dures bien choisies, on peut

obtenir en moyenne sur une certaine dure n'importe quelle valeur intermdiaire.

2.3.3 Capteurs

2.3.3.1 Acclromtre

L'acclromtre est un lment important dans la conception d'un systme d'aquisition des

donnes, car il permettra de mesurer l'acclration linaire d'un objet mobile selon 3 axes

orthogonaux(X, Y et Z). partir de cette mesure, l'utilisateur peut dduire le dplacement et

la vitesse de l'objet mobile.

Le principe de tous les acclromtres est bas sur la loi fondamentale de la dynamique

F=Ma, avec (F : force, M : masse, a : acclration). Plus prcisment, il consiste l'galit

entre la force d'inertie de la masse sismique du capteur et une force de rappel applique cette

masse [3].

Le principe de l'acclromtre a permis de mettre en uvre un certains nombres d'applica-

tions, on le trouve dans les appareils mobiles comme les tlphones, les tablettes, les manettes

de jeu et mme dans notre voiture pour dclencher les airbags suite un choc violant et il a

mme des fabricants des ordinateurs portables prenant l'exemple "Apple" qui ont incorpor

des acclromtres dans leurs produits an de dtecter une chute soudaine de la machine et

d'teindre le disque dur d'une faon automatique pour protger ces donnes.

Mais en raison de forces brusques et sa sensibilit aux vibrations qui pourraient induire des

erreurs, on utilise un gyroscope combin avec l'acclromtre pour pallier ce problme.

Figure 2.5  Acclromtre


18
CHAPITRE 2. DESCRIPTION DU SYSTME

2.3.3.2 Gyroscope

Le gyroscope est un appareil qui exploite le principe de la conservation du moment angulaire

en physique (ou encore stabilit gyroscopique ou eet gyroscopique), Il fut invent par le phy-

sicien franais Lon Foucault en 1852 [4]. Il donne la position angulaire (selon un, deux ou trois

axes). Il ne donne pas directement un angle d'orientation. Cet angle s'obtient par intgration

dans le temps de la vitesse angulaire, en faisant attention au cumul des erreurs du driv.

Le gyroscope permet de dterminer la rotation ressentie par l'objet auquel il est attach,

il calcule la vitesse angulaire en degrs par seconde. Dans notre cas il va servir attnuer les

bruits et dterminer l'angle lorsqu'il y a des mouvements brusques ce qui est dicile mesurer

par l'acclromtre.

Figure 2.6  Gyroscope

2.3.3.3 MPU 6050

Puisqu'il est ncessaire de mesurer avec prcision le mouvement ou l'orientation du robot,

on a dcid de travailler avec le composant MPU 6050.

Le MPU 6050 est capable de mesurer l'acclration et la vitesse angulaire. Il fonctionne donc

comme tant un acclromtre et un gyroscope. Il existe des direntes technologies de la cen-

trale inertielle mais l'une des plus ecaces est la centrale inertielle capacitive tout simplement

parce que son rapport qualit prix est excellent.

Malgr la simplicit du lecture en temps rel de l'acclration et de la vitesse angulaire, on

a toujoursun problme au niveau de traitement de ces donnes. Le traitement numrique de ces

informations est trs lent eectuer sous un microcontrleur et pour cela certains fabriquants

ont intgr dans leurs puces un calculateur de mouvements que l'on appelle un DMP [5].

19
CHAPITRE 2. DESCRIPTION DU SYSTME

Figure 2.7  Connexion de l'MPU6050 et l'Arduino MEGA

2.3.4 Le bus I2C

2.3.4.1 Prsentation

Le bus I2C (Inter Integrated Circuit) fait parti des bus srie. Il permet d'd'eectuer et de

garantir la communication entre deux composants lectroniques trs divers grce deux ls :

- Un signal de donnes (SDA), gnr par un matre ou un esclave.

- Un signal d'horloge (SCL), gnr par le matre.

Le bus IC permet cependant des changes de donnes la vitesse de 100 kbits par seconde

et peut mme atteindre 400 kbits par second pour les nouvelles technologies [6].

20
CHAPITRE 2. DESCRIPTION DU SYSTME

Figure 2.8  Structure de bus I2C


La communication sur le bus est faite de la manire suivante :

- Le bus d'adresse sera envoy par le matre l'esclave.

- L'esclave qui reconnat son adresse rpond par un signal de conrmation ensuite le matre

continu la procdure de communication.

- Les transactions seront conrmes par un bit d'acquittement (ACK).

2.3.4.2 Prise de contrle du bus

Pour transmettre des donnes sur le bus I2C, il faut surveiller deux conditions particulires :

la condition de dpart et la condition d'arrt.

Figure 2.9  Le transfert de bus i2c


Mais avant de tenter de prendre le contrle du bus, un circuit doit vrier que les lignes

21
CHAPITRE 2. DESCRIPTION DU SYSTME

SDA et SCL sont au repos, c'est dire l'tat haut. Si c'est le cas, le circuit indique qu'il prend

le contrle du bus en mettant la ligne SDA 0 et en conservant SCL 1.

A partir de ce moment, les autres circuits ont l'information que le bus est occup et ils ne

devraient pas tenter d'en prendre contrle. Le circuit qui vient de prendre le contrle du bus

en devient le matre. C'est lui qui gnre le signal d'horloge, quel que soit le sens de transfert

des donnes. La condition d'arrt est reprsente par le passage de SDA 1 et en conservant

SCL 1.

2.3.5 Filtration des donnes

2.3.5.1 Filtre complmentaire

Le ltre complmentaire est un ltre souvent utilis dans des direntes applications pour

une bonne et simple fusion des deux capteurs (acclromtre, gyroscope). C'est un ltre simple

et facile mettre en uvre et demande trs peu de puissance de traitement. Il est constitu

essentiellement d'un ltre passe-haut (qui agit sur le gyroscope) et un ltre passe-bas (agit sur

l'acclromtre).

Le concept du ltre complmentaire peut tre exprim par la gure suivante :

Figure 2.10  Base du fonctionnement d'un ltre complmentaire

- Un ltre passe-haut est un ltre qui laisse passer les hautes frquences et qui attnue les

22
CHAPITRE 2. DESCRIPTION DU SYSTME

basses frquences c'est dire les frquences infrieures la frquence de coupure.

- Un ltre passe-bas est un ltre qui laisse passer les basses frquences et qui attnue les

hautes frquences c'est dire les frquences suprieures la frquence de coupure.

En utilisant ces concepts de ltres, on passe le signal de l'acclromtre dans un ltre passe-

bas tel que le changement radical dans le capteur de lecture (souvent due des bruits) est

supprim et le signal de gyroscope est pass travers le ltre passe-haut de telle sorte que les

drives du capteur de lecture (des signaux de bases frquences) sont supprims.

L'angle ltr est donne par l'quation suivante [7] :

e = (0.98)(Anglef iltr
Anglef iltr e + Anglegyrodt) + (0.02Angleacc)
avec :

Angle ltr : Angle d'inclinaison aprs ltration.

Anglegyro : Angle du gyroscope aprs intgration.

dt : temps de transmmision de donnes.

Angleacc :Angle d'acclromtre.

La fusion de donnes est une tape ncessaire an d'avoir une position cohrente du robot.

On sait que le fait d'avoir la position par l'accleromtre seulement cause du parasite ce qui est

sensible au dplaement. Donc, l'ajout du gyroscope tait ncessaire pour minimiser cet impact.

Comme la prcision du gyroscope est meilleure et moins bruyante que celle de l'acclromtre,

le degr d'importance dans la valeur nal des angles (du gyroscope) est plus haut par rapport

la valeur actuelle de l'acclromtre.

2.3.6 Moteurs

2.3.6.1 Description du moteur

Deux moteurs courant continu de type JGA25 ont t choisis pour obtenir le couple et la

vitesse souhaits.

23
CHAPITRE 2. DESCRIPTION DU SYSTME

Figure 2.11  Moteur courant continu

2.3.6.2 Caractristiques du moteur

Tension nominale 12 V
Courant nominal 40-50mA (sans charge)
Vitesse 399 tr/min
Diamtre de l'arbre 4mm
Matriel Mtal
Poids 88.7g
Couple nominale 0.061 Nm^-1

Table 2.3  Caractristiques du moteur

2.4 Conclusion

On a dvelopp ce chapitre de faon montrer le systme mcanique et lectrique du projet

et expliquer le choix des dirents composants utiliss lors de la construction du robot en

passant par le protocole tulis et en expliquant le phnomne de ltration.

La partie hardware est dpendante de la partie software d'o l'importance du chapitre

suivant.

24
Chapitre 3
Logiciels et environnement de travail

3.1 Introduction

Ce chapitre a pour objectif d'exposer et de dtailler les dirents logiciels qu'on a utilis dans

notre projet et de nous familiariser avec les dirents outils en faisant des divers applications

pour les matriser.

3.2 SolidWorks

Le logiciel SolidWorks est un modeleur 3D utilisant la conception paramtrique [8] qui

fonctionne sur Microsoft Windows.

25
CHAPITRE 3. LOGICIELS ET ENVIRONNEMENT DE TRAVAIL

Figure 3.1  Modle du robot

3.3 Fritzing

Fritzing est un logiciel libre de conception de circuit imprim permettant de concevoir de

faon entirement graphique le circuit.

Le logiciel comporte trois vues principales :

- La  Platine d'essai , o l'on voit les composants tels qu'ils sont dans la ralit et o l'on

construit le montage.

- La  Vue schmatique , reprsente le schma fonctionnel du circuit.

- Le  Circuit imprim , reprsente la vue du circuit imprim

26
CHAPITRE 3. LOGICIELS ET ENVIRONNEMENT DE TRAVAIL

Figure 3.2  Interface Fritzing

3.4 Logiciel d'Arduino

Le logiciel de programmation des modules Arduino est une application Java servant d'diter

les codes et les compiler, et qui peut transfrer le programme travers la liaison srie (RS-232,

Bluetooth. . .). C'est un logiciel gratuit et open source dont la simplicit d'utilisation est

remarquable.

Son langage original de programmation est le C++ et li la bibliothque de dveloppement

Arduino, permettant l'utilisation de la carte et de ses entres/sorties. La mise en place de ce

langage standard rend ais le dveloppement de programmes sur les plateformes Arduino

toute personne matrisant le C ou le C++.

La gure 3-3 nous prsente l'interface du logiciel Arduino :

27
CHAPITRE 3. LOGICIELS ET ENVIRONNEMENT DE TRAVAIL

Figure 3.3  Interface d'Arduino


La barre d'outil donne un accs direct aux fonctions essentielles du logiciel et fait toute sa

simplicit d'utilisation.

Figure 3.4  Barre d'outils du logiciel Arduino

- Vrier/compiler : Vrier le code la recherche d'erreur.

28
CHAPITRE 3. LOGICIELS ET ENVIRONNEMENT DE TRAVAIL

- Stop : Arrter le moniteur srie ou les autres boutons activs.

- Nouveau : Cre un nouveau code (ouvre une fentre d'dition vide)

- Ouvrir chier : Ouvre la liste de tous les programmes.

- Sauver : Enregistration du programme.

- Transfrer vers la carte : Compilation du code et le transfrer vers la carte Arduino.

- Moniteur Srie : Ouvre la fentre du moniteur (ou terminal) srie.

Le terminal srie est une fentre spare qui permet d'acher des messages textes reus de

la carte Arduino et d'envoyer des caractres vers la carte Arduino. Cette fonction permet d'af-

cher sur l'ordinateur l'tat de variables, de rsultats de calculs ou de conversions analogique-

numrique. c'est un lment essentiel pour amliorer, tester et corriger les programmes.

Figure 3.5  Moniteur srie

3.5 L' environnement Matlab/Simulink

3.5.1 Matlab

C'est un logiciel de calcul mathmatique pour les ingnieurs et les scientiques cr par Ma-

thworks. Matlab est un environnement de programmation pour le dveloppement d'algorithme,

d'analyse de donnes, de visualisation, et de calcul numrique.

29
CHAPITRE 3. LOGICIELS ET ENVIRONNEMENT DE TRAVAIL

En utilisant Matlab, la rsolution des problmes de calcul complexes se fait plus rapidement

qu'avec des langages de programmation traditionnels, tels que C, C++. . ..

Matlab fonctionne dans plusieurs environnements tels que Windows, Macintosh, Linux...

Il existe deux modes de fonctionnement :

- Mode interactif : Matlab excute les instructions au fur et mesure qu'elles sont donnes

par l'usager.

- Mode excutif : Matlab excute ligne par ligne un "chier.M" (programme en langage

Matlab).

3.5.2 Simulink

Simulink est un environnement pour la simulation multi domaine. Il fournit un environne-

ment graphique interactif et un ensemble de bibliothques de bloc qui permettent de concevoir,

simuler, mettre en application, et examiner une varit de systmes, tel que les systmes de com-

munications, de commandes, de traitement des signaux, de traitement visuel et de traitement

d'images.

Figure 3.6  Environnement Simulink

30
CHAPITRE 3. LOGICIELS ET ENVIRONNEMENT DE TRAVAIL

3.6 L'interfaage Arduino Matlab/Simulink


On a choisi de travailler avec la version Matlab R2013a car cette version permet la commu-

nication avec la carte Arduino.

Il existe deux possibilits d'interfacer la carte Arduino avec Matlab/Simulink :

1 -ArduinoIO : Arduino devient un priphrique d'entre sortie [9].

2- ArduinoTarget : Arduino est une cible du programme Simulink compil.

La deuxime solution est la solution la plus facile et la plus utilise car elle consiste utiliser

la carte Arduino comme une cible. Matlab compile le programme saisi depuis Matlab/Simulink

et le transfert dans l'Arduino de faon transparente.

Cette mthode consiste essentiellement 5 tapes qui sont :

- Excuter la commande  targetinstaller  sur Matlab.

- Choisir la cible qui est la carte Arduino.

Figure 3.7  Arduino support package

- Dcomprsser le package tlcharg puis l'installer.

- Cre un chier  startup.m  dans le rpertoire o matlab est installer.

31
CHAPITRE 3. LOGICIELS ET ENVIRONNEMENT DE TRAVAIL

Figure 3.8  L'addition du chier  startup.m 

Figure 3.9  L'ajout du chemin d'emplacement

3.7 Familiariser avec l'environnement Matlab/Simulink et

Arduino

Dans le but de se familiariser avec l'environnement Matlab/Simulink on a dvelopp des

applications pour tester la connexion entre la carte Arduino et le logiciel Matlab/Simulink.On

a dvelopp une application de test basique qui nous permet d'allumer une LED.

32
CHAPITRE 3. LOGICIELS ET ENVIRONNEMENT DE TRAVAIL

Figure 3.10  Programmation avec Simulink

Figure 3.11  Rsultat en temps rel

3.8 Microsoft Windows SDK 6.1

Les outils permettent aux utilisateurs d'crire des programmes de logiciels en langage d'as-

semblage ou dans un langage de haut niveau (comme le C ou le C++) et de cre une application

complte qui peut tre programme en microcontrleurs ou d'autres dispositifs de mmoire.

Dans notre projet le rle de Microsoft Windows SDK 6.1 est de compiler le modle Simu-

link en langage C pour programmer le microcontrleur [10]. On a choisi de travailler avec ce

compilateur car on a dj le logiciel Microsoft Visual C++ 2008 install.

33
CHAPITRE 3. LOGICIELS ET ENVIRONNEMENT DE TRAVAIL

Figure 3.12  Choix du compilateur

3.9 Conclusion

La maitrise de ces logiciel nous a permis de modeler le systme, de vrier la possibilit du

stabilisation du robot et le faire fonctionner en temps rel.

34
Chapitre 4
Modle mathmatique

4.1 Introduction

An de pouvoir concevoir un correcteur capable de stabiliser le robot, il est ncessaire dans

un premier temps de mettre au point un modle mathmatique qui reprsente son comporte-

ment.

Le modle mathmatique du robot peut tre divis en trois parties : modlisation du chssis,

modlisation de la roue et modlisation du moteur lectrique courant continu.

4.2 Modlisation des systmes

4.2.1 Modlisation du chssis

La gure ci-dessous nous montre les forces appliques sur le chssis.

35
CHAPITRE 4. MODLE MATHMATIQUE

Figure 4.1  Forces appliques sur le chssis

Paramtres Description Unit

G acclration de la pesanteur m/s


Ip Moment d'inertie du chssis kgm
Mp Masse du chssis Kg
L Distance entre le centre de gravit et l'axe de moteur M
Angle de chssis Degr

Vitesse angulaire de chssis Degr/s


Nx La force entre le chssis et la roue en l'axe X N
Ny La force entre le chssis et la roue en l'axe Y N

Table 4.1  Description des paramtres du chssis

36
CHAPITRE 4. MODLE MATHMATIQUE

Figure 4.2  Corps du pendule

Calcul du moment d'inertie du chssis :

Ip = 1/12 M p (c2 + a2 ) + M p L
Avec,

M p = 0.57Kg : masse du chssis,

C = 0.145m : hauteur du chssis,

a = 0.086m : largeur du chssis,

L = 0.04m : distance entre le centre de gravit et l'axe de moteur

Donc,

Ip = 1/12 0.57 (0.1452 + 0.0862 ) + 0.57 0.042


Ip = 2.26 10 3Kgm2

37
CHAPITRE 4. MODLE MATHMATIQUE

4.2.2 Modlisation de la roue

Figure 4.3  Forces appliques sur la roue

Paramtres Description Unit

Ir Moment d'inertie de la roue kgm


Mr Masse de la roue kg
R Rayon de roues M
Angle de la roue Degr

Vitesse angulaire de la roue Degr/s


N Force normale de la table la roue N
F Force de frottement entre la roue et le sol N

Table 4.2  Paramtres de la roue

38
CHAPITRE 4. MODLE MATHMATIQUE

Figure 4.4  Roue du robot


Calcul du moment d'inertie de la roue :

Ir = M r r2 /2
Avec,

r = 0.034m : rayon de la roue,

M r = 0.05kg : masse de la roue,

Donc,

Ir = 0.05 0.0342 /2
Ir = 2.89 10 5 Kg.m2

4.2.3 Modlisation du moteur courant continu

Dans notre robot on a utilis deux moteurs courant continu. Pour intgrer les paramtres

du moteur dans le systme d'une faon adquate on a besoin d'tablir une relation entre la

tension d'alimentation et le couple de chaque moteur.

Le moteur se comporte comme une rsistance en srie avec un gnrateur de tension.

39
CHAPITRE 4. MODLE MATHMATIQUE

Figure 4.5  Schma quivalent du moteur


Le tableau ci-dessous reprsente les paramtre du moteur courant continu :

Paramtres Description Unit

Ra La rsistance ohmique des bobines


La Inductance de bobine Henry (H)
U Tension d'alimentation V
Ia Courant consomm par le moteur A
E Force lectromotrice V
Cm Couple du moteur Nm
Ke Constante EMF du moteur V sec/rad
Kt Couple constant du moteur Nm/A
N Rapport d'engrenage

Table 4.3  Paramtres du moteur


En appliquant la loi de Kirchos on obtient l'quation suivante :

di
U = Ra Ia + La +E
dt

En rgime continu l'inductance "La" peut tre limin car sa valeur est ngligeable, ce qui

nous donne :

U = Ra Ia + E

L'quation du couple moteur est donne par :

(M p g L)
Cm = sin()  Ip/2 + Ir
2
40
CHAPITRE 4. MODLE MATHMATIQUE

4.3 Modle linaire

Un systme dynamique mono-variable ou multi-variable peut tre reprsent par un modle

d'tat donn par les quations suivantes :

x(t)
= Ax(t) + Bu(t)
y(t) = Cx(t) + Du(t)

On a choisi quatre variables d'tats pour notre systme qui sont :





X=


Avec,

A : matrice d'tat, est une matrice carre (n lignes et n colonnes), la matrice A reprsente

aussi les interactions dynamiques entre les dirents lments internes du systme

B : matrice d'entre (ou de commande), elle reprsente l'action des entres sur l'volution

dynamique du systme.

C : matrice de sortie (ou d'observation), elle indique les sorties mesurs et non mesurs.

D : matrice de transfert qui indique le couplage direct entre les entres et les sorties.

Soient,


0 0 1 0 0 1 0 0 0 0

0 0 0 1 0 0 1 0 0 0
A =
, B = , C = , D =
0 A32 A33 0

B
3
0 0 1 0

0

0 A42 A43 0 B4 0 0 0 1 0

avec [11],

(glrM p) (2nIpKeKt2lnrKeKtM p)
A32 = (lrM p+Ip(Ir+r2 (M p+M r)))
, A33 = (l2 r2 M p2 +Ip(Ir+r2 (M p+M r)))Ra

(glIrM pRa+lrM p(gM p+gM r)Ra) (2nIpKeKt2nrKeKt((l+r)M p+rM r)


A42 = ((l2 r2 M p2 +Ip(Ir+r2 (M p+M r)))Ra)
, A43 = ((l2 r2 M p2 +Ip(Ir+r2 (M p+M r)))Ra)

41
CHAPITRE 4. MODLE MATHMATIQUE

(2nIpKt+2lnrKtM p) (2nIrKt+2nrKt((l+r)M p+rM r)


B3 = (l2 r2 M p2 +Ip(Ir+r2 (M p+M r)))Ra
, B4 = (l2 r2 M p2 +Ip(Ir+r2 (M p+M r)))Ra

Aprs calcul de tous les variables et matrices on obtient le modle d'espace d'tat suivant :


0 0 1 0 0

0 0 0 1 0
x =
0 289.47 3.98 0

+ 9.057 u


0 103.05 1.97 0 5.655


1 0 0 0

0 1 0 0
y =
0 0 1 0





0 0 0 1

4.4 Conclusion

On ne peut pas passer l'tude thorique et pratique du robot sans passer par la modli-

sation du systme qui consiste faire son reprsentation d'tat et calculer les paramtres du

robot.

42
Chapitre 5
Commande du systme

5.1 Introduction

Ce chapitre prsente le dernier volet du rapport .Il est rserv pour dtailler et tudier la

performance du systme en utilisant l'environnement Matlab Simulink.

5.2 Etude thorique

5.2.1 Commande du systme en boucle ouverte

Ces systmes dans lesquelles la sortie n'a aucun eet sur l'action de contrle sont appels

systme de contrle en boucle ouverte. La gure i-dessous illustre le schma bloc en boucle

ouverte du systme.

43
CHAPITRE 5. COMMANDE DU SYSTME

Figure 5.1  Systme en boucle ouverte

On a utilis matlab/simulink dans cette partie pour observer la rponse du systme et ses

performances en boucle ouverte.

Figure 5.2  Systme en boucle ouverte 2

La simulation du systme en boucle ouverte nous donne les rsultats suivantes :

La rponse du systme en boucle ouverte montre qu'il est instable car il ne suit pas l'chelon

d'amplitude 1, donn a l'entre.

44
CHAPITRE 5. COMMANDE DU SYSTME

Theta( ) : angle de la roue Psi( ) : angle du chssis

Thetadot() : vitesse angulaire de la Psidot ( ) : vitesse angulaire du


roue chssis
Figure 5.3  Graphes des valeurs simules

45
CHAPITRE 5. COMMANDE DU SYSTME

L'instabilit du robot en boucle ouvert peut tre montr aussi par le calcul des ples du

systme travers la fonction eigenvalues de matlab qui donne le rsultat suivant :

eig (A) = [0 11.8 -7.8 -7.8], les ples calculer par la fonction eigenvalues sont reprsents

par la gure suivante.

Figure 5.4  Les ples de systme

Les sorties du systme en boucle ouvert ont prouv qu'il est instable (deux ples se trouve

dans la partie rel ngative). Pour assurer la stabilit du robot on va introduire un rgulateur

PID.

5.2.2 Commande du systme en boucle ferme

La rponse du systme en boucle ouvert prouve qu'il a besoin d'asservissement pour assurer

le fonctionnement d'un procd selon des critres prdnis par un cahier de charge malgr les

perturbations agissant sur le systme. Le cahier de charge qui est traduit le plus souvent en

consigne dnit les critres de performance comme la prcision, rapidit, stabilit....

Il existe des direntes mthodes d'asservissement. On prsente dans la suite une mthode

base d'un correcteur PID (Proportionnel Intgrale Drive).

46
CHAPITRE 5. COMMANDE DU SYSTME

5.2.2.1 Rgulateur PID

Le rgulateur PID est une mthode de rgulation souvent utilis pour les asservissements en

robotique car il permet de garantir une valeur xe mme si le systme est instable. Il consiste

a atteindre et maintenir une valeur cible en agissant directement sur le systme en fonction de

l'cart entre le consigne et la mesure.

Rgulateur proportionnelle (P) :


La sortie U(t) du rgulateur proportionnel est donne en fonction de l'entre e(t) qui repr-

sente l'cart entre la consigne et la mesure par la relation : u(t)=Kp e(t).

L'action Proportionnelle corrige l'erreur de manire instantane, ce type de rgulateur per-

met de vaincre les grandes inerties du systme, mais il est utilis lorsqu'on dsire rgler un

systme dont la prcision n'est pas importante.

Rgulateur Intgral (I) :


L'action intgrale permet d'liminer l'erreur rsiduelle en rgime permanent, est utilise

lorsqu'on dsire avoir une prcision parfaite. An de rendre le systme plus dynamique (dimi-

nuer le temps de rponse), on diminue l'action intgrale mais ceci provoque l'augmentation du

dphasage ce qui provoque l'instabilit du systme.

Rgulateur drive (D) :


L'action drive est utilise pour le rglage des variables lentes telles que la temprature, elle

n'est pas recommande pour le rglage d'une variable bruite ou trop dynamique. En drivant

un bruit, son amplitude risque de devenir plus importante que celle du signal utile.

Rgulateur proportionnelle, Intgral et drive (PID) :


Le rglage de paramtre est donn par la transformation de l'quation suivante en un pro-

gramme en utilisant le logiciel Simulink :

t

1 d(t)
u(t) = K. (t) + . (u)du + Td .
Ti dt
0

Dmonstration de l'algorithme du rgulateur PID :

47
CHAPITRE 5. COMMANDE DU SYSTME

Figure 5.5  Rgulation du systme

En rsum le rgulateur PID ragit avec trois actions simultanes en fonction de l'erreur de

msure :

- Une action Proportionnelle : l'erreur est multiplie par un gain Kp, La commande propor-

tionnelle est proportionnelle la valeur actuelle de l'erreur.

- Une action Intgrale : l'erreur est intgre sur un intervalle de temps Ti, cette action est

proportionnelle l'amplitude de l'erreur et la dure de l'erreur.

- Une action Drive : l'erreur est drive suivant un temps Td et sert calculer l'erreur au

cours du temps.

5.2.2.2 Implmentation du rgulateur PID

y
A l'aide du logiciel matlab on a calcul la fonction de transfert de l'angle de chssis ( )

partir de reprsentation du systme d'tat en boucle ouverte.

[b,a] = s s 2 t f (A, B , C , D ) ;

Psi = t f (b (2 ,:) , a ) ;

Et on peut aussi calculer la fonction de transfert par

la mthode classique :

P s i ( p)=C( PIA)^ 1 *B+D [ Annexe 8]

48
CHAPITRE 5. COMMANDE DU SYSTME

Figure 5.6  Fonction de transfert de l'angle de chssis (y)

La fonction Tune nous a permit de calculer les paramtres de rgulation qui permettent la

stabilisation du robot.

Figure 5.7  Fonction Tune

49
CHAPITRE 5. COMMANDE DU SYSTME

Figure 5.8  Angle du chssis aprs rgulation

La phase permanante de la mesure de l'angle du chssis dans la gure ci-dessus (Retour

la valeur de l'chelan du dpart) nous montre que la stabilisation du systme est possible.

5.3 Etude pratique

5.3.1 Description gnrale du systme

L' tude thorique du systme mous a montr que notre robot peut tre stable, donc on

passe la ralisation l'aide de Mtakab/Simulink.

Le modle Simulink fourni va permettre d'une part de simuler le comportement du robot,

d'autre part d'eectuer facilement la chaine et implmenter une commande direct sur le micro-

processor du robot. Une reprsentation dtailler du modle est donnes par la gure ci-dessous.

50
CHAPITRE 5. COMMANDE DU SYSTME

Figure 5.9  Modle du robot avec Simulink


Ce modle peut tre divis 4 blocs :

- Le premier bloc reprsente la SFunction Gyro/Accel qui nous permet de lire les donnes

de capteur en temps rel.

51
CHAPITRE 5. COMMANDE DU SYSTME

- Le deuxime bloc sert calculer l'angle d'inclinaison partir de l'acclromtre et du

gyroscope.

- Le troisime bloc nous permet de ltrer le signal provenant du bloc prcedent.

- Le dernier bloc de ce modle permet de contrler le robot dans les deux sens selon l'ange

d'inclainason.

5.3.2 Lecture des donnes

An de lire et d'utiliser les sorties du capteur en simulink on a besoin d'utiliser le bloc

MPU6050 Driver Sfunction. Cette fonction utilise les mmes bibliothques que le langage C

de l'Arduino et a comme but de mesurer la vitesse angulaire et la position du robot.

Figure 5.10  Lecture des donnes du capteur

52
CHAPITRE 5. COMMANDE DU SYSTME

Figure 5.11  Sorties du capteur

Cette gure prsente les 6 degrs de liberts mesur par le MPU6050 (3 degrs de liberts

de l'acclromtre) et (3 degrs de liberts du gyroscope).

5.3.3 Traitement des donnes

- On a utilis le type Double car c'est le type principal qu'utilise Matlab. Un double est un

nombre stock en double prcision, c'est--dire sur 64bits.

- La valeur initiale du capteur (gyroscope), sans aucune mouvement appliqu doit tre null

(pas de vitesse) mais dans notre cas le gyroscope donne des valeurs direntes de 0. Pour

liminer ce bruit on a utilis une constante.

- Une intgration est ncessaire pour obtenir la position angulaire du gyroscope partir de

la vitesse.

La trigonomtrie est l'outil idal pour trouver les angles, car les appareils nous permettent

de connaitre de l'information prcise sur l'acclration linaire. Cette information peut tre

53
CHAPITRE 5. COMMANDE DU SYSTME

convertie en position avec la trigonomtrie en appliquant l'arc tangente.

Figure 5.12  Bloc de traitement de donnes

5.3.4 Filtration des donnes

Ce bloc est la modlisation de l'quation du ltre complmentaire :

e = (0.98)(Anglef iltr
Anglef iltr e + Anglegyrodt) + (0.02Angleacc)

La prcision du gyroscope est meilleure et moins bruyante que celle de l'acclromtre dont

le degr d'importance du gain du gyroscope (0.98) par rapport la valeur actuelle de gain de

l'acclromtre qui est gale 0.02. Il faut aner les coecients (0,98 et 0,02) du moment que

leur somme reste gale 1.

54
CHAPITRE 5. COMMANDE DU SYSTME

Figure 5.13  Filtre complmentaire

Figure 5.14  Eet du ltre


- Les parasites de l'acclromtre (haute frquence) sont attnuer par un ltre passe-bas.

- Le bruit de gyroscope ( basse-frquence) est liminer l'aide d'un ltre passe haut .

- C'est pour a qu'on a utilis le ltre complmentaire qui ane qui les signaux combins

en un signal ltr.

55
CHAPITRE 5. COMMANDE DU SYSTME

5.3.5 Moteur courant continu

Les deux moteurs courant continu sont contrls dans les deux sens par une commande

direct de siganl de sortie du ltre. Le modle suivant nous montre le fonctionnement du moteur.

Figure 5.15  Commande du moteur dans les deux sens


-Si le signal l'entre est positif, cela impliquera l'activation de moteur dans le sens 2

(lorsque la condition de switcher est vraie, la sortie sera gale l'entre 1).

-Si le signal l'entre est ngatif, cela impliquera l'activation de moteur dans le sens 1.

56
CHAPITRE 5. COMMANDE DU SYSTME

Figure 5.16  Sens 1 du moteur

Figure 5.17  Sens 2 du moteur


L'opposition des deux signaux des gures ci-dessus est due l'activation de l'un des deux

sens seulement chaque instant. Le mme processus est fait pour le deuxime moteur.

57
CHAPITRE 5. COMMANDE DU SYSTME

5.4 Conclusion

Le dernier chapitre de ce projet est constitu d'une tude thorique qui sert modliser le

systme en utilisant l'tude mathmatique ralise dans le chapitre prcdent.

La deuxime partie de ce chapitre prsente l'tude pratique du systme qui nous permettrons

d'observer les rsultats en temps rel.

58
Conclusion gnrale

L'objective de ce projet de n d'tude est de raliser et de commander un robot deux

roues autonome par la fusion entre l'embarqu et matlab/simulink.

D'abord, pour atteindre ce rsultat, on a pass par une tude thorique qui comporte :

 Une tude mcanique o on a calcul les dirents paramtres du robot et tudier l'qui-

libre dynamique puis la simuler sur le logiciel solideworks.

 Une modlisation du systme sous forme d'une reprsentation d'tat.

 Conception d'une commande qui peut stabiliser le systme.

Une stratgie de contrle a t mise en uvre pour rsoudre le problme de contrle d'qui-

libre du systme. Les gains du correcteur PID sont calculs dont le systme en boucle ferme

pour qu'il soit stable, le contrleur a montr des rsultats promoteurs dans l'quilibre du ro-

bot. Pendant le test, en se basant sur Matlab/simulink et le SolidWorks, le robot est capable

de maintenir sa position verticale en ajustant lgrement ses roues. Bas sur les rsultats et

l'analyse, une conclusion a t faite que cette mthode de commande est capable de contrler

le robot.

Ensuite, une tude pratique qui consiste :

 Raliser le robot.

 Commander en temps rel le robot en utilisant les rsultats thoriques.

 Utiliser la carte Arduino Mega qui a des modules intgrables sur le logiciel Matlab/si-

mulink.

Ce projet a russi atteindre ses objectifs d'quilibrer un robot deux roues autonome bas

sur le modle du pendule invers.

On a fait Presque tous les objectifs qu'on a x au dbut sont atteintes, mais la possibilit

d'amlioration de ce projet sont multiples. D'une part, on peut commander notre robot en

utilisant les 2 modules Xbee, d'autre part on peut le rendre autonome et capable de prendre

59
CHAPITRE 5. COMMANDE DU SYSTME

les dcisions tout seul en se basant sur le traitement d'image, aussi on peut voluer mme le

robot en lui intgrants de multiples nouveaux capteurs et dtecteurs, et circuits diverses pour

le rendre encore plus complet.

Cette exprience a t trs enrichissante et importante car elle a marqu la n de ce cycle de

licence et nous a permis d'tre confronts aux responsabilits qui sont celles d'un technicien :

faire face aux dlais, au stress et aux contraintes du travail dans un milieu de recherche et

d'innovation.

60
Bibliographie

[1] http ://www.segway.com/

[2] http ://litmotors.com/c1/

[3] http ://www.simius.be/interfacage/accelerometer.html

[4] http ://www.futura-sciences.com/magazines/high-tech/infos/dico/d/technologie-gyroscope-

11121/

[5] http ://www.geekmomprojects.com/mpu-6050-dmp-data-from-i2cdevlib/

[6] http ://www.technologuepro.com/microcontroleur/Bus_I2C.htm

[7] http ://robottini.altervista.org/wp-content/uploads/2014/04/lter.pdf

[8] https ://fr.wikipedia.org/wiki/Conception_param%C3%A9trique

[9] https ://www.google.com/url ?sa=orleanstours.fr%2Fspip2%2FIMG%2Fpdf

%2FTutoriel_Matlab_Arduino.pdf=bv.122676328,d.d2s

[10] http ://www-rohan.sdsu.edu/doc/matlab/pdf_doc/compiler/compiler3.pdf

[11] http ://publications.lib.chalmers.se/records/fulltext/163397.pdf

61
Annexe

Annexe 1 : Cblage du systme

62
CHAPITRE 5. COMMANDE DU SYSTME

Annexe 2 : Test du robot en temps rel

Annexe 3 : Batterie

63
CHAPITRE 5. COMMANDE DU SYSTME

Annexe 4 : Roues

64
CHAPITRE 5. COMMANDE DU SYSTME

Annexe 5 : Dimensionnement du moteur

Annexe 6 : Estimation de la valeur de "L" qui prsente la distance entre le centre de gravit

et l'axe de moteur

65
CHAPITRE 5. COMMANDE DU SYSTME

Annexe 7 : Fixation de l'MPU6050

66
CHAPITRE 5. COMMANDE DU SYSTME

Annexe 8 : Calcul de la fonction de transfert

Programmation Matlab : Etude thorique

clear all

clear all

clc

%P a r a m t r e du pendule i n v e r s

A= [ 0 , 0 , 1 , 0 ; 0 , 0 , 0 , 1 ; 0 , 289.47 , 3.98 ,0;0 ,103.05 , 1.97 ,0];


B= [ 0 ; 0 ; 9 . 0 5 7 ; 5 . 6 5 5 ] ;

C= [ 1 , 0 , 0 , 0 ; 0 , 1 , 0 , 0 ; 0 , 0 , 1 , 0 ; 0 , 0 , 0 , 1 ] ;

D= [ 0 ; 0 ; 0 ; 0 ] ;

Ke = 0 . 4 4 ;

Kt = 0 . 4 7 ;

I p = 2 . 2 6 e 3;

I r = 2 . 8 9 e 5;

g =9.8;

67
CHAPITRE 5. COMMANDE DU SYSTME

l =0.04;

Ra = 9 . 5 ;

n=1/20;

Mp= 0 . 5 7 ;

Mr = 0 . 0 5 ;

r =0.034;

u=7.4;

%C a l c u l et vrification de stabilit du s y s t m e

e i g (A)

i f ( r e a l ( e i g (A) ) >= 0 )

f p r i n t f ( ' Open loop system is asymptotically s t a b l e . \ n \n ' )

else

f p r i n t f ( ' Open loop system is not asymptotically s t a b l e . \ n \n ' )

end

% f o n c t i o n de transfert partir de la reprsentation d ' tat

pour l ' angle du pendule


[b,a] = s s 2 t f (A, B , C , D ) ;

tfMinSeg = t f (b (2 ,:) , a ) ;

%Root L o c u s

num = [ 5 . 6 5 5 4.665 7.108 e 14];


den =[1 3.98 103.1 980.4 0];

r l o c u s ( num , den ) ;

zeta =0.2;

w0=5;

s g r i d ( z e t a , w0 )

grid on

68

S-ar putea să vă placă și