Contrôle de la trajectoire du bras manipulateur PUMA560 par les

publicité
REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN MOHAMED BOUDIAF USTO-MB
FACULTE DES MATHEMATIQUES ET INFORMATIQUE
Option: Simulation et Intelligence
Spécialité : Informatique
Artificielle
Mémoire présenté par
Mlle BENZATER Habiba
Pour l‘obtention du diplôme de Magister
Thème :
Contrôle de la trajectoire du bras manipulateur
PUMA560 par les algorithmes évolutionnaires
multi-objectifs NSGA-II et NSBBO-II
Devant le jury composé de:
Nom & Prénom
Grade
Qualité
Etb d’origine
A.Benyettou
Professeur
Président
USTO- MB
S.Chouraqui
Maitre des conférences A
Rapporteur
USTO- MB
H.Fizazi
Professeur
Examinatrice
USTO- MB
F.Hendel
Maitre des conférences A
Examinatrice
USTO- MB
K.Belkadi
Maitre des conférences A
Examinateur
USTO- MB
Année Universitaire : 2014/2015
Résumé
Le but de ce mémoire est d'étudier l'utilisation de quelques méthodes
d‘optimisation multi-objective issues de l‘intelligence artificielle pour l‘optimisation
simultanée des gains PD du contrôle auxiliaire de la commande par découplage non
linéaire du bras manipulateur à six axes PUMA560.
Puisque les robots manipulateurs sont des systèmes non linéaires fortement
couplés, le réglage des gains du contrôleur avec précision est toujours nécessaire.
Les algorithmes évolutionnaires multi-objectifs appliqués dans ce travail de
magister sont l‘algorithme NSGAII et l‘algorithme NSBBO-II. Ils cherchent les gains
PD du contrôleur du bras en minimisant simultanément dans l'espace articulaire
l‘Intégrale de l‘Erreur Absolue IAE de chaque position articulaire.
Les résultats de simulation sont présentés pour prouver que les algorithmes NSGAII et NSBBO-II sont capable de générer des gains adéquats avec des erreurs négligeable
pour le système PUMA560 et fournissent des bonnes performances.
Mots clés : Algorithmes évolutionnaires multi-objectifs, NSGA-II, BBO, BBO multiobjectifs, Commande du bras manipulateur PUMA560.
Abstract
The aim of this work is to study the use of some multi-objective optimization
methods resulting from the artificial intelligence in the simultaneous optimization of the
computed torque controller gains of the PUMA560 arm manipulator.
And since robot manipulators are highly coupled nonlinear systems, fine-tuning of
controller gains is always needed.
The multi-objective evolutionary algorithms applied in this work are the NSGAII
and NSBBO-II algorithms. They search for the controller gains of the arm so that the six
Integral of the Absolute Error (IAE) in joint space are simultaneously minimized.
Simulation results are presented to show that the NSGA-II and the NSBBO-II are
capable of generating adequate gains for PUMA560 system with minimum errors and
providing a good closed-loop performance.
Keywords: multi-objective evolutionary algorithms, NSGA-II, BBO, BBO multiobjectives, PUMA560 Arm manipulator control.
Remerciements
Louange à ALLAH le tout miséricordieux, le très miséricordieux qui
m‘a donné la santé pour bien vivre, l‘esprit pour apprendre, la volonté
et la patience pour réaliser ce très modeste travail.
'‫'و ان تعدوا نعمة هللا ال تحصوها‬:‫قال هللا تعالى‬
Je remercie mes très chers parents qui m‘ont dédié la vie et m‘ont
poussé à l‘avance.
Je tiens à exprimer mes profonds remerciements à mon encadreur
Docteur CHOURAQUI Samira de m‘avoir fait confiance et proposé
ce sujet, encadré et guidé.
Je veux exprimer tout mon respect au monsieur le Professeur
BENYETTOU Abdelkader directeur du Laboratoire SIMPA, qui m‘a
fait l‘honneur de présider le jury.
Je remercie également Professeur FIZAZI Hadria, Docteur HENDEL
Fatiha et Monsieur le Docteur BELKADI Khaled qui m‘on fait
l‘honneur d‘accepter de lire ce travail et de le juger. A travers eux, je
remercie tout mes enseignants.
Table des Matières
Résumé
Introduction Générale ....................................................................................................... 1
Chapitre I : Etat de l’art des algorithmes évolutionnaires multi-objectifs
I.1 Introduction ................................................................................................................. 3
I.2 Définition..................................................................................................................... 4
I.3. Notions d‘optimalité en MOO .................................................................................... 5
I.3.1 Dominance et optimalité de Pareto ..................................................................... 6
I.3.1.1 Concept de dominance et solutions de Pareto............................................. 6
I.3.1.2 Conditions d‘optimalité .............................................................................. 8
I.3.2 Propriétés de la relation de dominance .............................................................. 8
I.3.3 Procédure de recherche de l‘ensemble non-dominé .......................................... 8
I.4 les algorithmes d‘optimisation multi-objectifs ........................................................... 9
I.4.1 Les approches classiques ................................................................................... 9
I.4.1.1 Somme pondérée ......................................................................................... 9
I.4.1.2 Méthode ε-contraintes ............................................................................... 10
I.4.1.3 Discussion ................................................................................................. 10
I.4.2 Les algorithmes évolutionnaires multi-objectifs ............................................... 11
I.4.2.1 Bref historique des algorithmes évolutionnaires ....................................... 11
I.4.2.2 Vocabulaires des algorithmes évolutionnaires........................................... 13
I.4.2.3 Principe d‘un algorithme évolutionnaire et ses opérateurs ....................... 13
I.4.2.4 L‘algorithme évolutionnaire typique ........................................................ 17
I.4.2.5 Les MOEA: ............................................................................................. 18
I.4.2.5.1 Techniques de première génération : .............................................. 18
I.4.2.5.1.1. La méthode M.O.G.A ............................................................... 18
I.4.2.5.1.2. La méthode N.S.G.A ................................................................ 19
I.4.2.5.1.3. L‘Algorithme NPGA ................................................................. 20
I.4.2.5.2 Techniques de deuxième génération : ............................................. 20
I.4.2.5.2.1 Strength Pareto Evolutionary Algorithm (SPEA) ..................... 20
I.4.2.5.2.2 SPEA-II ................................................................................... 21
I.4.2.5.2.3. Pareto Archived Evolution Strategy (PAES) ............................ 22
I.4.2.5.2.4. Pareto Enveloppe-based Selection Algorithm (PESA) ............ 22
I.4.2.5.2.5 PESA-II ..................................................................................... 23
I.4.2.5.2.6. Non-dominated Sorting Genetic Algorithm II (NSGA-II) ........ 23
I.5 Conclusion ................................................................................................................. 23
Chapitre II : L’algorithme NSGA-II
II.1 Introduction ............................................................................................................. 24
II.2 Historique de l‘algorithme ...................................................................................... 24
II.3 NSGA-II : ................................................................................................................ 25
II.3.1 Principe de l‘algorithme .................................................................................. 25
II.3.1.1. Classification des individus ..................................................................... 25
II.3.1.2. Préservation de la diversité ..................................................................... 27
II.3.1.3. Opérateur de comparaison Crowded ...................................................... 28
II.3.1.4. L‘élitisme ................................................................................................ 29
Table des Matières
II.3.2. L‘algorithme NSGA-II ................................................................................... 29
II.3.2.1 Boucle principale de l‘algorithme NSGA-II ........................................... 29
II.3.2.2 Les opérateurs génétiques du NSGA-II ................................................... 31
II.3.2.2.1. Opérateur de sélection .................................................................... 31
II.3.2.2.2 Le croisement SBX .......................................................................... 31
II.3.2.2.3 La mutation polynomiale .................................................................. 32
II.3.3 Organigramme de l‘algorithme NSGA-II ...................................................... 32
II.4 Applications de l‘algorithme NSGA-II .................................................................. 34
II.5 Conclusion : ............................................................................................................. 34
Chapitre III : L’approche BBO et NSBBO-II
III.1 Introduction............................................................................................................. 35
III.2 Biogéographie ......................................................................................................... 35
III.3 L‘optimisation basée sur la biogéographie (BBO) ................................................ 37
III.3.1 Analogie avec la biogéographie ...................................................................... 37
III.3.2 L‘algorithme BBO .......................................................................................... 38
III.3.2.1 Les paramètres d‘un BBO ....................................................................... 38
III.3.2.2 Les étapes de la BBO ............................................................................. 39
III.3.2.2 .1 Etape d‘initialisation des paramètres ............................................. 39
III.3.2.2.2 Codage, initialisation de la population et évaluation de la fonction HSI . 40
III.3.2.2.3 Les opérateurs du BBO .................................................................. 40
III.3.2.2 .4 La sélection .................................................................................... 42
III.3.2.2 .5 La réinsertion .................................................................................. 42
III.3.2.2 .6 Critère d‘arrêt ................................................................................ 42
III.4 Applications des algorithmes BBO ........................................................................ 42
III.5 Principe de l‘algorithme NSBBO-II ..................................................................... 43
III.6 Conclusion : ........................................................................................................... 44
Chapitre IV : Commande des bras manipulateurs
IV.1 Introduction ............................................................................................................ 45
IV.2 Définitions ............................................................................................................ 45
IV.2.1 Robot .............................................................................................................. 45
IV.2.2 Robot manipulateur ....................................................................................... 45
IV.2.3 Degré de liberté (ddl) .................................................................................... 46
IV.2.4 Articulation ................................................................................................... 47
IV.2.5 Espace articulaire .......................................................................................... 47
IV.2.6 Espace opérationnel ...................................................................................... 48
IV.2.7 Porteur et poignet ........................................................................................... 48
IV.3 Histoire de Robotique ........................................................................................... 49
IV.4 Le domaine d'application des robots ..................................................................... 51
IV.5 Description de la situation d‘un solide dans l‘espace ........................................... 51
IV.6 Description de la structure géométrique des robots manipulateurs ....................... 54
IV.6.1 Notions et règles générales ........................................................................... 54
IV.6.2 Description géométrique ............................................................................... 55
IV.7 Modélisation des bras manipulateurs ................................................................. 56
IV.7.1 Le modèle géométrique direct (MGD) ........................................................... 56
Table des Matières
IV.7.2 Le modèle géométrique inverse (MGI) ......................................................... 56
IV.7.3 Le modèle différentiel direct (MDD) ............................................................. 57
IV.7.4 Le modèle différentiel inverse (MDI) ............................................................ 57
IV.7.5 Le modélisation dynamique des robots manipulateurs .................................. 57
IV.8 Génération de mouvement (trajectoire) ................................................................ 60
IV.9 Commande des bras manipulateurs ....................................................................... 62
IV.9.1. Commande classique PID .............................................................................. 63
IV.9.2 Commande par découplage non linéaire ........................................................ 63
IV.10. Conclusion .......................................................................................................... 64
Chapitre V : Mise en œuvre
V.1 Introduction ............................................................................................................. 65
V.2 Environnement expérimental : ................................................................................ 65
V.3 Modélisation dynamique du bras manipulateur PUMA560 ................................... 65
V.3.1 Présentation du bras ........................................................................................ 65
V.3.2 Les articulations du bras PUMA560 ............................................................... 66
V.3.3 Modèle dynamique du bras ............................................................................. 67
V.3.3.1. Matrice d‘inertie ...................................................................................... 68
V.3.3.2 Matrice de Coriolis .................................................................................. 68
V.3.3.3 Matrice de centrifuge................................................................................ 69
V.3.3.4 Matrice de gravité ................................................................................... 70
V.4 Simulation du comportement du bras en SIMULINK ............................................. 70
V.5 Optimisation des gains PD du régulateur CTC par un algorithme évolutionnaire . 77
V.5.1 Principe .......................................................................................................... 77
V.5.2 Codage ............................................................................................................ 77
V.5.3 Initialisation de la population ......................................................................... 78
V.5.4 Evaluation de la fitness d‘un individu ............................................................ 78
V.6 Implémentation de l‘algorithme NSGA-II ............................................................. 78
V.6.1 Initialisation de la population .......................................................................... 78
V.6.2 Calcul des fitness ............................................................................................. 78
V.6.3 Trier la population courante ............................................................................ 78
V.6.4 Sélection des parents ....................................................................................... 79
V.6.5 Appliquer l‘opérateur de croisement .............................................................. 79
V.6.6 Appliquer l‘opérateur de mutation ................................................................. 79
V.6.7 Calcul des fitness des enfants .......................................................................... 79
V.6.8 Fusion des deux populations ........................................................................... 79
V.6.9 Trier la population R ....................................................................................... 79
V.6.10 Former la population suivante ....................................................................... 79
V.6.11 Retour à V.6.4 : ........................................................................................... 79
V.7 Les résultats de l‘algorithme NSGA-II ................................................................. 80
V.8 Implémentation de l‘algorithme NSBBO-II ........................................................... 89
V.8.1 Initialisation de la population : ........................................................................ 89
V.8.2 Calcul des HSI ................................................................................................. 89
V.8.3 Trier la population courante ............................................................................ 89
V.8.4 Sélection des k meilleurs habitats .................................................................. 89
Table des Matières
V.8.5 Appliquer l‘opérateur de migration ................................................................ 89
V.8.6 Appliquer l‘opérateur de mutation ................................................................ 89
V.8.7 Calcul des HSI des nouveaux habitats ............................................................. 89
V.8.8 Fusion ............................................................................................................... 89
V.8.9 Trier la population R ....................................................................................... 89
V.8.10 Former la population suivante P ................................................................... 89
V.8.11 Retour à V.6.4 .............................................................................................. 90
V.9 Les résultats de l‘algorithme NSBBO-II ................................................................ 90
V.10 Conclusion ........................................................................................................... 95
Conclusion Générale ....................................................................................................... 96
Liste des Figures
Figure I.1 : Les espaces de recherches en MOO .............................................................. 5
Figure I.2 : Illustration du concept de la relation de dominance de Pareto ..................... 6
Figure I.3 : Illustration de l‘ensemble optimal de Pareto et front de Pareto ..................... 7
Figure I.4 : Exemple du croisement à un point ............................................................. 16
Figure I.5: Exemple du croisement uniforme ............................................................... 16
Figure I.6 : Exemple de mutation. ................................................................................. 17
Figure I.7 : Principe de fonctionnement d‘un EA typique .............................................. 17
Figure I.8: Calcul de la performance dans SPEA. ........................................................ 21
Figure I.9 : Préservation de la diversité dans PAES. .................................................... 22
Figure II.1 : Classification des individus suivant le rang de Pareto .............................. 26
Figure II.2 : Classification des individus en plusieurs fronts de Pareto ........................ 26
Figure II.3 : Principe de Crowding distance, les points noirs sont des solutions
appartenant au même front ............................................................................................ 27
Figure II.4 : Calcul de la crowding distance pour chaque solution d‘un front ............... 28
Figure II.5 : Schéma de l‘évolution de l‘algorithme NSGA –II .................................... 30
Figure II.6 : Algorithme NSGA-II ................................................................................. 30
Figure II.7 : Organigramme de l‘algorithme NSGA-II .................................................. 33
Figure III.1 : Migration des espèces. ............................................................................. 36
Figure III.2: Quelques algorithmes évolutionnaires. ...................................................... 37
Figure III.3 : l‘algorithme BBO de base ......................................................................... 38
Figure III.4 : Illustration de deux solutionsS1 et S2 utilisant la migration linéaire........ 40
Figure III.5 Un algorithme de migration. ...................................................................... 41
Figure III.6 Un algorithme de mutation .......................................................................... 41
Figure IV.1 : Constituants d‘un robot. ........................................................................... 46
Figure IV.2 : Représentation symbolique des articulations ............................................ 47
Figure IV.3 : Représentation du porteur et du poignet d‘une structure articulée. ........ 48
Figure IV.4. Transformation de repères ........................................................................ 52
Figure IV.5 : Angles d‘Euler. ......................................................................................... 53
Figure IV.6 : Structure des robots manipulateurs à chaines ouverte simple .................. 54
Figure IV.7 : Le paramétrage de Denavit-Hertemberg .................................................. 55
Figure IV.8 : Boucle de simulation................................................................................. 60
Figure IV.9 : Génération de mouvement dans l‘espace articulaire ............................... 61
Figure IV.10: Génération de mouvement dans l‘espace opérationnel ........................... 61
Figure IV.11 : Schéma classique d‘une commande PID ............................................... 63
Figure V.1 : Le bras manipulateur Puma 560 ............................................................... 66
Figure V.2 : Les articulations du poignet. ..................................................................... 66
Figure V.3 : Les articulations du porteur. ...................................................................... 67
Figure V.4 : Notation de D-H des six de liberté du PUMA560 .................................... 67
Figure V.5 : Boucle de simulation .................................................................................. 70
Figure V.6 : Boucle de simulation du bras .................................................................... 71
Figure V.7 : Modèle du bras manipulateur PUMA560 ................................................ 72
Figure V.8 : la commande par découplage non linéaire du bras PUMA560 ................ 72
Figure V.9 : Le contrôle auxiliaire du bras PUMA560 ................................................. 73
Liste des Figures
Figure V.10 Le diagramme de q .................................................................................... 74
Figure. V.11 Test SIMULINK sur la position q1 .......................................................... 75
Figure. V.12 Test SIMULINK sur la position q2 ........................................................... 75
Figure. V.13 Test SIMULINK sur la position q3 ........................................................... 75
Figure. V.14 Test SIMULINK sur la position q4 ........................................................... 75
Figure. V.15 Test SIMULINK sur la position q5 ........................................................... 75
Figure V.16 Test SIMULINK sur la position q6 ............................................................ 75
Figure. V.17 Test SIMULINK sur la vitesse qp1 ......................................................... 76
Figure. V.18 Test SIMULINK sur la vitesse qp2 ........................................................... 76
Figure. V.19 Test SIMULINK sur la vitesse qp3 ........................................................... 76
Figure. V.20 Test SIMULINK sur la vitesse qp4 ........................................................... 76
Figure. V.21 Test SIMULINK sur la vitesse qp5 ........................................................... 76
Figure. V.22 Test SIMULINK sur la vitesse qp6 ......................................................... 76
Figure V.23 Principe de réglage des gains de la commande par découplage non linéaire
par un algorithme évolutionnaire .................................................................................... 77
Figure V.24 : Représentation d‘un individu dans un algorithme évolutionnaire ........... 77
Figure. V.25 Test de l‘expérience 1de l‘algorithme NSGA-II sur la position q1 ......... 80
Figure. V.26 Test de l‘expérience 1de l‘algorithme NSGA-II sur la position q2 ......... 80
Figure. V.27 Test de l‘expérience 1de l‘algorithme NSGA-II sur la position q3 ......... 81
Figure. V.28 Test de l‘expérience 1de l‘algorithme NSGA-II sur la position q4 .......... 81
Figure. V.29 Test de l‘expérience 1de l‘algorithme NSGA-II sur la position q5 .......... 81
Figure. V.30 Test de l‘expérience 1de l‘algorithme NSGA-II sur la position q6 ......... 81
Figure. V.31 Test de l‘expérience 1de l‘algorithme NSGA-II sur la vitesse qp1 ........ 82
Figure. V.32 Test de l‘expérience 1de l‘algorithme NSGA-II sur la vitesse qp2 .......... 82
Fig.ure V.33 Test de l‘expérience 1de l‘algorithme NSGA-II sur la vitesse qp3 .......... 82
Figure. V.34 Test de l‘expérience 1de l‘algorithme NSGA-II sur la vitesse qp4 .......... 82
Figure. V.35 Test de l‘expérience 1de l‘algorithme NSGA-II sur la vitesse qp5 .......... 82
Figure. V.36 Test de l‘expérience 1de l‘algorithme NSGA-II sur la vitesse qp6 ........ 82
Figure V.37 Les IAE des positions articulaires ............................................................. 83
Figure V.38 erreurs absolues des positions articulaires ................................................ 83
Figure. V.39 Test de l‘expérience 2de l‘algorithme NSGA-II sur la position q1 ........ 84
Figure. V.40 Test de l‘expérience 2de l‘algorithme NSGA-II sur la position q2 .......... 84
Figure. V.41 Test de l‘expérience 2de l‘algorithme NSGA-II sur la position q3 .......... 84
Figure. V.42 Test de l‘expérience 2de l‘algorithme NSGA-II sur la position q4 .......... 84
Figure. V.43 Test de l‘expérience 2de l‘algorithme NSGA-II sur la position q5 .......... 85
Figure. V.44 Test de l‘expérience 2de l‘algorithme NSGA-II sur la position q6 ........ 85
Figure. V.45 Test de l‘expérience 2 de l‘algorithme NSGA-II sur la vitesse qp1 ....... 85
Fig.ure V.46 Test de l‘expérience 2de l‘algorithme NSGA-II sur la vitesse qp2 ......... 85
Figure. V.47 Test de l‘expérience 2de l‘algorithme NSGA-II sur la vitesse qp3 ......... 85
Figure. V.48 Test de l‘expérience 2de l‘algorithme NSGA-II sur la vitesse qp4 ......... 85
Figure. V.49 Test de l‘expérience 2de l‘algorithme NSGA-II sur la vitesse qp5 ......... 86
Figure. V.50 Test de l‘expérience 2de l‘algorithme NSGA-II sur la vitesse qp6 ....... 86
Figure. V. 51 Les IAE des positions articulaires .......................................................... 86
Liste des Figures
Figure. V.52 Les erreurs absolues en positions articulaires .......................................... 86
Figure. V.53 Test de l‘algorithme NSBBO-II sur la position q1 ................................... 91
Figure. V.54 Test de l‘algorithme NSBBO-II sur la position q2.................................... 91
Figure. V.55 Test de l‘algorithme NSBBO-II sur la position q3.................................... 91
Figure. V.56 Test de l‘algorithme NSBBO-II sur la position q4.................................... 91
Figure. V.57 Test de l‘algorithme NSBBO-II sur la position q5.................................... 91
Figure. V.58 Test de l‘algorithme NSBBO-II sur la position q6 .................................. 91
Figure. V.59 Test de l‘algorithme NSBBO-II sur la vitesse qp1 .................................. 92
Figure. V.60 Test de l‘algorithme NSBBO-II sur la vitesse qp2.................................... 92
Figure. V.61 Test de l‘algorithme NSBBO-II sur la vitesse qp3.................................... 92
Figure. V.62 Test de l‘algorithme NSBBO-II sur la vitesse qp4.................................... 92
Figure. V.63 Test de l‘algorithme NSBBO-II sur la vitesse qp5.................................... 92
Figure. V.64 Test de l‘algorithme NSBBO-II sur la vitesse qp6 .................................. 92
Figure. V.65 Les erreurs absolues en positions articulaires .......................................... 93
Figure. V.66 Les IAE des positions articulaires ............................................................ 93
Liste des Tableaux
Tableau I.1 : Résumé des expressions basiques utilisées en calcul évolutionnaire ....... 13
Tableau III.1 : Terminologie de la BBO. ........................................................................ 38
Tableau III.2 : Les paramètres du BBO ...................................................................... 39
Tableau V.1 : Les gains PD de la commande par découplage non linéaire. ................. 71
Tableau V.2 : Paramètres standards d‘un algorithme NSGA-II ................................... .80
Tableau V.3 : Paramètres d‘exécution de l‘expérience 1 de l‘approche NSGA-II ....... 80
Tableau V.4 : Paramètres d‘exécution de l‘approche NSGA-II pour l‘expérience 2 .... 84
Tableau V.5 : Quelques itérations de contrôles issus de l‘exécution de l‘algorithme
NSGA-II en utilisant les paramètres de l‘expérience 1 ................................................ . 87
Tableau V. 6: Quelques itérations de contrôles issus de l‘exécution de l‘algorithme
NSGA-II en utilisant les paramètres de l‘expérience 2 .................................................. 88
Tableau V.7 : Paramètres standards d‘un algorithme NSBBO-II .................................. 90
Tableau V.8 : Paramètres d‘exécution de l‘approche NSBBO-II ................................. 90
Tableau V.9 : Quelques itérations de contrôles issus de l‘exécution de l‘algorithme
NSBBO-II en utilisant les paramètres des tableaux 7 et 8. ........................................... 94
Introduction
Générale
Introduction Générale
Un bras manipulateur est un robot sous forme d‘une structure mécanique formée de
segments articulés entre eux et terminée par un organe terminal. Les mouvements relatifs
des différents segments sont transmis aux articulations par des actionneurs (moteurs
électriques…) qui fournissent des couples et forces (ou commandes) pour que l‘organe
terminal puisse réaliser un déplacement ou un effort extérieur sur son environnement.
La génération de trajectoires est la partie du système de commande qui accepte des
instructions de mouvement (déplacement dans un sens vers une position finale sur un
certain chemin) et qui produit une série de consignes. De telles consignes peuvent être
envoyées directement aux actionneurs ou aux boucles de commande.
Le problème de la commande d‘un robot manipulateur peut être formulé comme la
détermination de l‘évolution des forces généralisées (forces ou couples) que les
actionneurs doivent exercer pour garantir l‘exécution de la tâche tout en satisfaisant
certains critères de performance.
Afin de réduire les effets des perturbations extérieures et que la commande soit
robuste vis-à-vis des erreurs de modélisation, celle-ci doit contenir des termes de retour
en position et en vitesse. La difficulté de synthèse de la commande en boucle fermée
provient du fait que le robot manipulateur est un système multidimensionnel, non
linéaire et fortement couplé.
La commande dynamique des robots manipulateurs est aussi connue sous les noms
de commande dynamique ou commande par couple calculé. Elle constitue un volet très
important dans la recherche en robotique vu le besoin de travailler à des vitesses de plus
en plus élevées sans détériorer les performances désirées.
Ce type de technique considère l‘ensemble des articulations et, pour les découpler,
utilise la théorie du découplage non linéaire. Cette théorie utilise le modèle dynamique
du robot pour le calcul de la loi de commande. Cette méthode dépend fortement du
modèle du système, elle est très sensible aux imprécisions du modèle qui entraînent un
découplage imparfait. Ceci constitue son principal inconvénient.
Pour cela, on fait appel à des techniques moins conventionnelles au sens
mathématique pour le réglage et l‘optimisation des gains PD du contrôle auxiliaire de
cette commande, et puisque le bras manipulateur PUMA560 est à six axes, un contrôleur
pour chaque axe est nécessaire, donc, le choix a été porté sur les méthodes d‘optimisation
multi-objectifs pour la régulation simultanée des gains PD de chaque contrôleur.
Les algorithmes évolutionnaires semblent être particulièrement adéquats pour la
résolution des problèmes d‘optimisation multi-objectif. Cela revient essentiellement à
leur capacité de travailler simultanément sur un ensemble de solutions possibles ce qui
nous permettra de trouver plusieurs éléments de l‘ensemble de Pareto en une seule
exécution de l‘algorithme.
Dans ce travail nous avons utilisé les Algorithmes Génétique Multi-Objectifs de
type NSGA-II (Non-dominated Sorting Genetic Algorithm II) et l‘algorithme NSBBOII (Non-dominated Sorting Biogeography Based Optimization II) inspiré de l‘algorithme
NSGA-II afin d‘optimiser les gains PD du contrôle auxiliaire de la commande par
découplage non linéaire.
Introduction Générale
Ce mémoire comprend cinq chapitres. Dans le premier chapitre nous présentons
quelques algorithmes multi-objectifs classiques et évolutionnaires.
Dans le chapitre 2, nous présentons l‘algorithme NSGA-II et son principe de
fonctionnement.
Dans le troisième chapitre nous décrivons l‘algorithme BBO qui est un nouvel
algorithme stochastique inspiré par la science de la biogéographie pour la résolution des
problèmes d‘optimisation. Le chapitre présente aussi une version multi-objectif du BBO
qui est NSBBO-II et son principe de fonctionnement.
Dans le quatrième chapitre, on présente une brève description des bras
manipulateurs, leur modélisation ainsi que leur commande.
Dans le cinquième chapitre, nous présentons la partie expérimentale qui présente
les résultats obtenus en utilisant les différentes techniques décrites ci-dessus.
Et nous terminons par une conclusion générale.
Chapitre I
Etat De l’’Art Des Algorithmes
Evolutionnaires Multi-Objectifs
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
I.1 Introduction
Dans la plus part des problèmes pratiques d‘optimisation, plusieurs critères sont à
prendre en considération afin d‘obtenir une solution satisfaisante. Comme son nom
l‘indique, l‘optimisation multi-objectifs a pour but d‘optimiser plusieurs objectifs
simultanément. Ces objectifs sont dans le cas général en conflit : l‘amélioration d‘un
objectif provoque la détérioration d‘un autre objectif. Par conséquent, le résultat final de
l‘optimisation n‘est plus donné par une solution unique mais plutôt par un ensemble de
solutions qui représentent chacune un compromis entre les différents objectifs à
optimiser. [Mouadh, 2012]
La naissance de l‘optimisation multi-objectif remonte à un ouvrage de Wilfredo.
Pareto sur l‗économie politique, dans lequel l‘auteur définit pour la première fois ce
qu‘est un optimum multi-objectif. L‘application de l‘optimisation multi-objectif aux
problèmes d‘ingénierie
remonte, aux, alentours de la seconde guerre mondiale,
elle est longtemps restée une science « anecdotique » à cause de son aspect
hermétique, dû à la nécessite de maîtriser un bagage mathématique théorique assez
important. Un changement radical est apparu récemment avec les métaheuristique
(recuit simule, algorithmes génétiques, etc.) qui sont des méthodes d‘optimisation
d‘un abord plus facile.
Deux approches de l‘optimisation multi-objectif s‘affrontent :


Résolution vectorielle du problème (MOEA): on ne modifie pas l‘expression du
problème.
Transformation du problème en un problème d‘optimisation mono-objectif (les
méthodes classiques).
Les algorithmes évolutionnaires manipulent une population de solutions au lieu
d‘une seule solution. Cette propriété leur permet d‘être bien adaptés à la résolution des
problèmes d‘optimisation multi-objectif où l‘optimum est représenté par un ensemble de
points (ensemble de Pareto) et non pas par une solution unique. Dans la littérature,
plusieurs approches ont été proposées afin d‘adapter les algorithmes évolutionnaires au
cas de l‘optimisation multi-objectif [Mouadh, 2012] parmi lesquels les algorithmes
génétiques pour l‘optimisation multi-objectif : MOGA introduit par C.M. Fonseca et P. J.
Fleming [Fonseca et al. 93], Niched Pareto Genetic Algorithm: NPGA proposé par Horn,
Nafpliotis, and Goldberg [Horn et al, 94] et the Non-dominated Sorting Genetic Algorithm :
NSGA proposé par Srinivas et Kalyanmoy Deb [Srinivas et al, 1994]. Ces MOEA
appartiennent à la première génération des approches Pareto et est caractérisée par
l‘utilisation d‘un mécanisme de sélection basé sur le rang de Pareto et adoptent une
fonction de partage (sharing ou niching) qui consiste à pénaliser la fitness en fonction du
nombre d‘individus au voisinage du regroupement. Après environs dix années de
succès, cette génération devient dépassée. La deuxième génération des approches
Pareto sont en général des approches élitistes manipulant une population secondaire
externe. Parmi les approches les plus représentatives de cette génération la nouvelle
3
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
version NSGA qui est NSGA-II proposé par [Deb et al, 2002], SPEA et SPEA2 (Strength
Pareto Evolutionary Algorithm) proposé respectivement dans [Zitzler et al, 1999] et
[Zitzler et al, 2001], PAES (The Pareto Archived Evolution Strategy) proposé par D.
Corne, J.Knowles dans [Knowles et al, 1999]. Les mêmes auteurs avec M.J Oates ont
proposé les algorithmes PESA et PESA II (The Pareto Envelope-based Selection
Algorithm) proposé respectivement dans [Corne et al, 2000] [Corne et al. 2001]. Et en
2010, Rio G. L. D‘Souza, K. Chandra Sekaran, and A. Kandasamy ont introduit
l‘algorithme ‗‗Improved NSGA-II Based on a Novel Ranking Scheme‘‘ [D’Souza et al,
2010]. Et en 2011, Long WANG, Tong-guang WANG and Yuan LUO ont propose
l‘algorithme ‗‗Improved non-dominated sorting genetic algorithm (NSGA)-II in multiobjective optimization studies of wind turbine blades‘‘ [Wang et al, 2011].
Dans ce chapitre, on va illustrer le principe et énoncer l‘algorithme de certains de
ces approches.
I.2 Définition :
L‘optimisation multi-objective (appelée aussi optimisation multicritère ou
optimisation multi performance) en anglais Multi-Objective Optimization (MOO) a été
introduite par V. Pareto, et peut être définit comme un problème qui consiste à trouver un
vecteur des variables de décision qui satisfait l‘ensemble des contraintes et optimise
plusieurs fonctions objectives simultanément [Gambier, 2008]. En général, un problème
d‘optimisation peut être défini comme suit [Jaimes et al, 2009] [Carlos et al, 2010]:
min 𝑓 𝑥 = [𝑓1 (𝑥) , 𝑓2 𝑥 , … , 𝑓𝑀 (𝑥)], 𝑥 ∈ 𝑋
𝑋 = 𝑥 ∈ 𝑅𝑛 |𝑔𝑖 (𝑥) ≤ 0, 𝑕𝑗 = 0, 𝑖 = 1. . 𝐾, 𝑗 = 1. . 𝐿
I.1
Le vecteur 𝑥 ∈ 𝑅𝑛 est formé de n variables de décision. Le vecteur 𝑓 ∈ 𝑅𝑀 est
composé de M fonctions objectives. En optimisation multi-objective, les ensembles 𝑅𝑛 et
𝑅𝑀 représsentent respectivement l‘espace des variables de décision et l‘espace des
fonctions objectives.
4
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
Figure I.1 : Les espaces de recherches en MOO [Jaimes et al, 2009]
Remarque :
Pour des raisons de simplicité, on a supposé que toutes les fonctions objectives sont
à minimiser. En effet, la multiplication de la fonction objective par -1 permet de
transformer la maximisation en minimisation.
Si une solution x ne satisfait pas au moins une des K contraintes d‘inégalité ou une
des L contraintes d‘égalité, elle est dite solution infaisable, contrairement aux solutions
faisables, qui vérifient l‘ensemble des (K +L) contraintes du problème. L‘ensemble des
solutions faisables constitue l‘espace faisable de l‘espace de recherche, noté S.
I.3. Notions d’optimalité en MOO:
Pour définir précisément le problème d‘optimisation multi-objective déclaré en
définition I.1, on doit établir le sens de minimisation en𝑅𝑀 . C'est-à-dire, il est nécessaire
de définir comment les fonctions 𝑓𝑖 (𝑖 = 1. . 𝑀) du vecteur 𝑓 𝑥 ∈ 𝑅 𝑀 doivent être
comparée pour différentes solutions 𝑥 ∈ 𝑅𝑛 . En optimisation mono-objective, on utilise
la relation ≤ pour comparer les valeurs de la fonction objective. En utilisant cette
relation, il peut y avoir des solutions optimales différentes 𝑥 ∈ 𝑋, mais seulement une
valeur optimale 𝑓𝑚𝑖𝑛 = 𝑚𝑖𝑛 𝑓𝑖 𝑥 |𝑥 ∈ 𝑋 pour chaque fonction 𝑓𝑖 est choisie, puisque
la relation ≤ est une relation d‘ordre parfait en R (i.e. On peut comparer chaque pair de
solution, ainsi on pourra ordonner les solutions de la meilleure à la mauvaise). Au
contraire. Il n‘existe pas une relation d‘ordre canonique en 𝑅𝑀 , et ainsi, on a besoin des
définitions faibles d‘ordre pour comparer les vecteurs en 𝑅𝑀 [Jaimes et al, 2009].
En MOO, ayant plusieurs fonctions objectifs, on adopte d‘habitude la relation de
dominance de Pareto proposé par Francis Ysidro Edgeworth en 1881. Cette relation a
été généralisée par l‘économiste Wilfredo Pareto en 1896. Certains désignent cette
notion par l‘optimum d‘Edgeworth-Pareto, mais le terme le plus communément utilisé
est l‘optimum de Pareto. [Gambier, 2008] [Talbi, 2009]
5
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
I.3.1 Dominance et optimalité de Pareto :
I.3.1.1 Concept de dominance et solutions de Pareto :
Les concepts suivants sont pris des documents [Chamseddine, 2005] [Jaimes et
al, 2009]
Definition1 (Dominance exacte) : La solution 𝑥 (𝑖) ∈ 𝑆 domine la solution
𝑥 (𝑗 ) ∈ 𝑆 (on note 𝑥 (𝑖) ≺ 𝑥 (𝑗 ) ) si les conditions suivantes sont vérifiées :
1.𝑓𝑚 𝑥
𝑖
≤ 𝑓𝑚 𝑥
𝑗
∀𝑚 ∈ 1, … , 𝑀
2.∃𝑚 ∈ 1, … , 𝑀 𝑡𝑒𝑙 𝑞𝑢𝑒 𝑓𝑚 𝑥
𝑖
< 𝑓𝑚 𝑥
𝑗
.
Definition2 : (dominance faible) La solution 𝑥 (𝑖) ∈ 𝑆 domine faiblement la
solution 𝑥 (𝑗 ) ∈ 𝑆 (on note 𝑥 𝑖 ≼ 𝑥 𝑗 ) si :
1.𝑓𝑚 𝑥
𝑖
≤ 𝑓𝑚 𝑥
𝑗
∀𝑚 ∈ 1, … , 𝑀
Definition3 : Les solutions 𝑥 (𝑖) ∈ 𝑆 et 𝑥 (𝑗 ) ∈ 𝑆 sont dites solutions Paretoéquivalentes (on note 𝑥 𝑖 ~𝑥 𝑗 ) si : 𝑥 𝑖 ⊀ 𝑥 𝑗 𝑒𝑡 𝑥 𝑗 ⊀ 𝑥 𝑖
La figure suivante illustre un exemple grafique des dédinitions mentionnées cidessus :
Figure I.2 : Illustration du concept de la relation de dominance de Pareto [Jaimes et al,
2009]
La figure I.2 illustre la relation de dominance de Pareto sur un exemple de 4 vecteurs
bidimensionnels. On peut déduire que :
𝑧 (3) ≺ 𝑧 (2), 𝑧 (3) ≺ 𝑧 (4) , 𝑧 (4) ≺ 𝑧 (2) , 𝑧 (3) ≺ 𝑧 (1) , 𝑧 (1) ≺ 𝑧 (2), 𝑧 (1) ⊀ 𝑧 (4), 𝑧 (4) ⊀ 𝑧 (1).
6
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
Définition 4 : L‘ensemble de Pareto global S*du problème d‘optimisation multiobjectif (I.1) est l‘ensemble de points tels qu‘aucun autre point de l‘espace faisable S ne
les domine, c‘est-`a-dire,
S*= {p ∈ S|∄q ∈ S : q ≺ p}
L‘image de l‘ensemble de Pareto dans l‘espace des critères est appelée la surface
de Pareto (ou le front de Pareto dans le cas de problème bi-objectif).
Définition 5 :(Optimalité de Pareto) Soit P un ensemble de solutions-candidats d‘un
problème d‘optimisation multi-objectif. L‘ensemble P*⊆ P, composé de tous les éléments
de P qui ne sont pas dominés par aucun élément de P est dit sous-ensemble non-dominé
de l‘ensemble des solutions P.
P*= {p ∈ P|∄q ∈ P : q ≺ p}
Définition 6 : (la surface de Pareto) :
L‘image de l‘ensemble de Pareto dans l‘espace des critères est appelée la surface de
Pareto (ou le front de Pareto dans le cas de problème bi-objectif).
Soit P* l‘ensemble optimal de Pareto, le front de Pareto PF*est définit comme
suit :
La figure I.3 illustre l‘ensemble optimal de Pareto et son image dans l‘espace des
fonctions objectifs qui représente le front de Pareto. Dans l‘espace des variables de
décision, les points bleu représentent les solutions optimales de Pareto tandis que dans
l‘espace des objectif, les points bleu représentent les vecteurs objectifs optimal de Pareto.
[Jaimes et al, 2009]
Figure I.3 : Illustration de l‘ensemble optimal de Pareto et front de Pareto. [Jaimes et al,
2009]
7
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
I.3.1.2 Conditions d’optimalité :
Pour citer les conditions d‘optimalité des solutions, on fait rappel de quelques
définitions liées à la convexité :
Définition (Convexité) la fonction f : Rn −→ R est convexe si et seulement si pour
tout pair de variable x1 , x2 ∈ Rn et pour tout λ ∈ [0, 1],
𝑓 𝜆𝑥1 + 1 − 𝜆 𝑥2 ≤ 𝑓 𝑥1 + 1 − 𝜆 𝑓(𝑥2 )
Si une fonction g est concave, l‘ensemble de x tels que g(x) ≥ 0 est un ensemble convexe.
Définition : Le problème d‘optimisation multi-objectif (I.1) est appelé convexe si et
seulement si toutes les fonctions objectif 𝑓𝑚 sont convexes et l‘espace faisable est un
ensemble convexe (c‘est-`a-dire toutes les fonctions 𝑔𝑗 sont concaves et toutes les
fonctions 𝑕𝑗 sont linéaires).
I.3.2 Propriétés de la relation de dominance :
La relation binaire de dominance ≺, telle qu‘elle est définie ci-dessus :
. N‘est pas réflexive, car une solution ne se domine pas elle-même.
. N‘est pas symétrique, car on a jamais (𝑥 (𝑖) ≺ 𝑥 (𝑗 ) et 𝑥 (𝑗 ) ≺ 𝑥 (𝑖)
. N‘est pas antisymétrique, du fait de l‘existence de solutions Pareto-équivalentes.
. Est transitive, car (𝑥
𝑖
≺𝑥
𝑘
) et (𝑥 (𝑘) ≺ 𝑥 (𝑗 ) ) implique (𝑥 (𝑖) ≺ 𝑥 (𝑗 ) ).
La relation de dominance est donc une relation d‘ordre partiel strict sur l‘espace de
décision [Chamseddine, 2005].
I.3.3 Procédure de recherche de l’ensemble non-dominé :
La recherche de l‘ensemble non-dominé P* dans un ensemble fini de solutions P
se fait de façon similaire à la recherche du minimum dans un ensemble fini de nombres
réels. En effet, les éléments de l‘ensemble P sont comparés au sens de la dominance,
c‘est-à-dire, à l‘aide de la relation d‘ordre partiel ≺.
 Approche1 : naïve et lente
Dans cette approche chaque solution i est comparée `a toutes les autres
solutions jusqu‘à ce qu‘elle soit dominée par l‘une d‘elles. Si aucune ne la
domine, elle est déclarée non-dominée.
Approche2 : mise à jour continue
Cette approche est très similaire à la précédente, on lui a simplement rajouté
une mémoire qui le rend en générale plus efficace, mais pas dans tous les
cas. Chaque solution de P est comparée avec un sous-ensemble
partiellement rempli et continûment mise à jour. Au début, l‘ensemble P‘
contient la première solution. Ensuite, chaque solution i sera comparée aux
8
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
éléments de P‘. Toutes les solutions de P‘ dominées par i sont éliminées. Si
aucune solution de P‘ ne domine i, i est ajoutée à P‘. [Chamseddine, 2005].
I.4 les algorithmes d’optimisation multi-objectif :
Les origines des fondements mathématiques de l‘optimisation multi-objectif
remontent à la période allant de 1895 à 1906. Durant cette période, George Cantor et
Felix Hausdorff posèrent les basent des espaces ordonnés à dimension infinie. Cantor
introduit également les classes d‘équivalence et formula les premières conditions
suffisantes pour l‘existence d‘une fonction d‘utilité. Hausdorff donna également le
premier exemple d‘un ordre total.
Toutefois, c‘était le concept du « vector maximum problem », introduit par Harold
W. Kuhn et Albert W. Tucker en 1951, qui a fait de l‘optimisation multi-objectif une
discipline mathématique à part.
Cependant la théorie de l‘optimisation multi-objectifs est restée relativement sousdéveloppée durant les années 1950. Ce n‘était que durant les années 1960 que les
fondements de l‘optimisation multi-objectifs furent consolidés et tenus sérieusement par
des purs mathématiciens quand Leonard Hurwicz généralisa les résultats de Kuhn et
Tucker aux espaces vectoriels topologiques.
L‘application de MOO aux domaines autres que l‘économie commença avec le
travail de Koopmans en 1951 dans la théorie de la production et le travail de Marglin en
1967 dans la planification des ressources d‘eau.
La première application en ingénierie, citée dans la littérature, fût un papier de
Zadeh au début des années 1960. Cependant l‘utilisation de MOO ne s‘est généralisée
qu‘au début des années 1970 [Talbi, 2009].
Les algorithmes d‘optimisation multi-objectif peuvent être classés en algorithmes
classiques et algorithmes évolutionnaires.
I.4.1 Les approches classiques :
Les méthodes classiques pour générer l‘ensemble optimal de Pareto regroupent
l‘ensemble des objectifs en un seul. Les deux techniques les plus utilisées permettant de
ramener le problème multi-objectif à un problème mono-objectif sont la méthodologie de
la somme pondérée et la méthode ε-contraintes qui sont des techniques d‘optimisation
multi-objectif de première génération. [Talbi, 2009], [Mouadh, 2012] [Lamamra, 2012]
[Francisci, 2002]
I.4.1.1 Somme pondérée :
Cette méthode est appelée méthode d‘agrégation ou également la méthode des poids qui
est probablement la plus utilisée en MOO. Elle consiste en fait à ramener un problème
multicritère en un problème d‘optimisation d‘une combinaison linéaire des objectifs
9
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
initiaux. Le critère à optimiser est défini comme la somme pondérée de l‘ensemble des
critères. Le problème revient alors à trouver :
𝑘
𝑚𝑖𝑛
𝑤𝑖 𝑓𝑖 (𝑥) 𝑎𝑣𝑒𝑐 𝑤𝑖 ≥ 0
𝑖=1
𝑤𝑖 Représente l‘importance relative de chaque critère dans le problème ou poids et est
strictement positif pour au moins un objectif telle que 𝑘𝑖=1 𝑤𝑖 = 1.
L‘inconvénient de ce type de méthode réside bien évidemment dans le choix des
pondérations. Il est impératif de très bien connaître le problème pour évaluer
l‘importance relative de chacun des critères. De plus, pour la plus part des problèmes
non-linéaires ou des problèmes dont la surface de Pareto contient des régions nonconvexes cette méthode ne permet pas de trouver les solutions de Pareto. [Gambier,
2008] [Jaimes et al, 2009] [Lamamra, 2012] [Mouadh, 2012]
I.4.1.2 Méthode ε-contraintes :
Cette méthode suggère de reformuler le problème d‘optimisation sous la forme
𝑚𝑖𝑛𝑥∈𝑆 𝑓𝑟 (𝑥)
suivante :
𝑓𝑖 𝑥 ≤ 𝜀𝑖 ∀𝑖 = 1 … , 𝑀 ≠ 𝑟
𝑓𝑖 𝑥 ≤ 𝜀𝑖 ∀𝑖 = 1 … 𝑀, 𝑖 ≠ 𝑟, Sont les contraintes additionnelles. [Mouadh, 2012]
Les paramètres 𝜀𝑖 sont à définir par l‘utilisateur. En d‘autres termes, une des
fonctions à optimiser est retenue comme unique objectif (la plus importante selon le
décideur), tandis que les objectifs restants sont transformés en contraintes.
On répète la procédure autant de fois que nécessaire en changeant les valeurs des
scalaires 𝜀𝑖 jusqu‘à atteindre une solution satisfaisante pour le décideur. Pour déterminer
des valeurs adéquates des 𝜀𝑖 , il peut être nécessaire d‘effectuer une optimisation
monocritère de chaque fonction.
L‘inconvénient de ce type de méthode réside bien évidemment dans le choix du vecteur ε
qui est lié à certaines difficultés relatives à sa position par rapport au front de Pareto
[Mouadh, 2012] [Lamamra, 2012].
I.4.1.3 Discussion :
Ce qui rend les méthodes classiques attractives et la raison pour laquelle elles sont
populaires peut être attribué au fait que des algorithmes éprouvés pour les problèmes à
objectif unique peuvent être employés pour la résolution des problèmes d‘optimisation
multi-objectif. Malgré leur efficacité, ces algorithmes présentent un certain nombre
d‘inconvénients. Tout d‘abord, elles nécessitent une connaissance du problème qui n‘est
pas toujours disponible et certaines méthodes comme la méthode des poids, peuvent être
sensibles à la forme de la surface de Pareto. De plus, toutes les méthodes classiques
requièrent plusieurs répétitions pour obtenir une approximation de l‘ensemble optimal de
10
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
Pareto et dans quelques occasions, malgré les applications répétitives, on ne peut pas
garantie de trouver l‘ensemble optimal de Pareto. Et même si plusieurs essais sont faits
avec des paramètres différents, on ne peut pas être sûre d‘explorer l‘ensemble de l‘espace
de recherche efficacement.
Récemment, les algorithmes évolutionnaires se sont révélés une alternative aux
méthodes classiques grâce à leur faculté à exploiter de vaste espace de recherche et des
compromis multiples peuvent être générés en une seule étapes d‘optimisation. De plus,
ils peuvent être implémentés de façon à éviter les problèmes mentionnés précédemment
[Francisci, 2002] [Deb, 2005].
I.4.2 Les algorithmes évolutionnaires multi-objectifs :
I.4.2.1 Bref historique des algorithmes évolutionnaires :
Les Algorithmes Evolutionnaires (EA) sont des méthodes d‘optimisation
stochastique inspirées par les idées de l‘évolution naturelle. C‘est donc en biologie qu‘il
faut chercher les racines de cette discipline.
L‘auteur sans doute le plus connu est le naturaliste anglais Charles Darwin (18091882) dont le livre ―The Origin of Species‖ (1859) fut un exemple de vulgarisation de
sujets jadis réservés aux naturalistes. Ses postulats furent largement issus de son
expérience à bord d‘un navire de l‘armée Anglaise qui fit le tour du monde pendant 5
années, où il travailla en tant que naturaliste, observant la flore et la faune de différents
endroits du monde. Cet ouvrage met l‘accent sur la lutte pour la survie et les mécanismes
d‘adaptation des êtres vivants, qui leur permettent de générer des espèces différentes.
Paradoxalement, ce livre ne parlait pas de l‘évolution et ce n‘est qu‘à partir de 1900,
quand Hugo de Vries et Carl Correns redécouvrent le travail de l‘autrichien Gregor
Mendel, que la notion d‘évolution darwinienne nait. Mendel (1822-1884) réalisa une
étude détaillée sur les variations dans des plantes et développa un modèle génétique
proche de celui utilisé actuellement, en proposant une analyse de l‘hérédité basée sur la
combinaison des gènes dominants et récessifs.
Un autre nom lié au concept d‘´evolution est celui du naturaliste français JeanBaptiste Lamarck (1744-1829), qui fut le premier à établir une théorie cohérente de
l‘´evolution. Lamarck réunit les croyances de son époque sur la notion de génération
spontanée et des concepts alchimiques sur les influences des quatre éléments, pour
aboutir à une théorie qui mettait en jeu deux forces qui permettent l‘´evolution. La
première force (―Le pouvoir de la vie‖), qui pousse les individus à devenir de plus en
plus complexes dans un but de perfectionnement, est tempérée par la deuxième force
(―L‘influence des circonstances‖), qui oblige les individus à s‘adapter au milieu naturel.
Lamarck croyait que les adaptations des individus durant leur existence étaient
transmises è leurs descendants, ainsi par exemple, le long cou des girafes serait le résultat
de plusieurs générations d‘individus essayant d‘atteindre les feuilles des arbres.
11
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
Le modèle évolutif de Lamarck fut détruit par le travail du biologiste allemand
August Weismann (1834-1914), qui démontra que les organismes supérieurs possèdent
deux types de cellules, les somatiques, qui déterminent les caractéristiques de l‘individu,
et les germinales, qui passent l‘information génétique aux descendants, et qu‘il n‘est pas
possible que cette transmission d‘expérience soit possible par voie génotypique. Les
préceptes de l‘évolution Lamarckienne restent, cependant, une source d‘inspiration pour
l‘évolution artificielle.
L‘´evolution, telle qu‘on la connaît aujourd‘hui, est un processus où les individus
doivent s‘adapter à un milieu naturel qui impose une concurrence induite par des
ressources limitées. Les variations entre individus sont expliquées par deux facteurs
principaux : l‘action des agents mutagènes, qui produisent des variations dans la chaine
d‘ADN, et la combinaison de l‘ADN des deux parents lors de la reproduction.
L‘évolution naturelle peut donc être vue comme un processus d‘optimisation où les
individus essayent de maximiser le profit qu‘ils peuvent obtenir des conditions naturelles
environnantes afin d‘assurer leur descendance.
L‘évolution artificielle s‘inspire de ces idées pour l‘optimisation mathématique.
Ainsi, les individus ne sont plus des êtres vivants, mais des solutions possibles d‘un
problème, les contraintes de l‘environnement sont exprimées au moyen d‘une fonction à
satisfaire et les solutions sont modifiées avec des opérateurs qui simulent la mutation et
la combinaison des individus. Les meilleures solutions ont plus de chance de se
reproduire, dans un cadre d‘amélioration continue. Dans le monde de l‘informatique, les
EA appartiennent à l‘ensemble des méta-heuristiques. Les méta-heuristiques sont des
méthodes générales pour résoudre des problèmes combinatoires. Les EA font aussi partie
de l‘intelligence artificielle (IA) en tant que méthodes inspirées par la nature.
[Maturana, 2009]
Les EA élaborés depuis les années soixante se classent en 4 catégories de base
qu‘on présente dans cette section :
 La Programmation évolutionnaire (Evolutionnary Programming : EP) introduite
par Lawrence J. Fogel en 1965 dans les U.S.A est apparue dans l‘espace des
automates à états finis pour la prédiction de séries temporelles.
 Les Algorithmes Génétiques (Genetic Algorithms : GA), ce sont probablement
les algorithmes les plus connus et utilisés dans le calcul évolutionnaire. Ils ont été
développés en 1975 par John Henry Holland. Ils ont été développés pour étudier
le processus complexe d‘adaptation des espèces naturelles.
 Les Stratégies d‘évolution (Evolution Strategies : ES) introduite par Ingo
Rechenberg et Hans-Paul Schwefel de l‘Allemagne en 1973. Elles ont été
développées pour résoudre des problèmes numériques d‘optimisation dans
l‘espace des paramètres réels
 La Programmation Génétique (Genetic Programming : GP) conçu par de Garis et
John Koza. Son objectif initial était de faire évoluer des sous-programmes du
langage Lisp. Grace à l‘ouvrage de Koza, l‘utilisation de la PG s‘est étendue à la
12
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
résolution de nombreux problèmes dont les solutions peuvent être représentées
par des structures arborescentes comme les graphes, les structures
moléculaires,…etc [Chamseddine, 2005] [Sumathi et al, 2010] [Maturana,
2009]
I.4.2.2 Vocabulaires des algorithmes évolutionnaires :
Les EA emploient un vocabulaire emprunté de l‘évolution biologique. Ils
travaillent sur un ensemble d‘individus appelé population. Un individu a deux
représentations, appelées phénotype et génotype. Le phénotype représente une solution
potentielle du problème à optimiser en utilisant la formulation originale du problème. Le
génotype donne une représentation codée d‘une solution potentielle sous la forme d‘un
chromosome. Un chromosome est formé de gènes disposés en une succession linéaire et
chaque gène peut prendre plusieurs valeurs appelées allèles. Par exemple, un génotype
peut être un vecteur réel qui représente une structure physique complexe qu‘est appelée
le phénotypes [Sumathi et al, 2010]
Les EA étant basés sur la l‘évolution artificielle et l‘évolution biologique, la
terminologie utilisée par les chercheurs travaillant dans le domaine est un mélange des
termes artificiels et biologiques, comme le résume le tableau I.1
Expression biologique
Algorithmes évolutionnaires
Population
Ensemble de chromosomes
Chromosome
Chaine de caractères
Gène
Caractère
Allèle
Valeur du caractère
Locus
Position dans la chaine
Génotype
Structure, chaine codée
Phénotype
Ensemble de paramètre, chaine décodée
Tableau I.1 : Résumé des expressions basiques utilisées en calcul évolutionnaire
[Sumathi et al, 2010]
I.4.2.3 Principe d’un algorithme évolutionnaire et ses opérateurs :
Afin d‘évaluer la qualité d‘un individu, il faut définir une mesure, appelée fonction
d‘évaluation (fitness) qui établit un ordre entre les individus. Cette fonction est en rapport
avec la fonction objectif du problème à résoudre. Dans plusieurs cas, la fonction
d‘évaluation est simplement la fonction objectif [Maturana, 2009].
13
Etat de l’art des algorithmes évolutionnaires multi-objectifs
Chapitre I
Pour optimiser une fonction objectif donnée F définie sur un espace de recherche
E, une population d‘individus (points de E) est soumise à une suite de générations (la
population initiale est tirée au hasard dans E). Une génération commence par la sélection
de quelques individus bien adaptés (par rapport à F) pour la reproduction. Ces individus
engendrent une descendance en utilisant des opérateurs stochastiques appelés croisement
(opérateur binaire) et mutations agissant sur un seul individu (opérateur unaire). Enfin,
quelques uns des descendants remplacent certains des parents pour terminer le processus
de génération.
Comme dans l‘évolution naturelle, on espère l‘émergence progressive d‘individus
de mieux en mieux adaptés : les meilleurs individus de la population finale (au regard de
F) devraient être proches de solutions du problème d‘optimisation posé. L‘espace de
représentation sur lequel on fait effectivement la recherche (sur le quel les opérateurs
d‘évolution opèrent), appelé également l‘espace des génotypes, est souvent différent de
l‘espace dans lequel la performance est calculée, appelé l‘espace des phénotypes. Pour
passer de l‘espace des phénotypes à l‘espace des génotypes, une étape de modélisation
supplémentaire, ou codage, est nécessaire [Chamseddine, 2005].
 Le codage :
Quand on utilise les EA dans les applications, la première difficulté rencontrée est
le codage des chromosomes. Les solutions d‘un problème doivent être codées pour que le
traitement puisse être effectué par l‘EA. On demande habituellement que les
chromosomes soient tous de la même longueur, basés sur la même architecture. On
introduit quelques codages déjà utilisés avec succès :
Codage binaire : c‘est le plus utilisé parce que les premières recherches sont basées sur
ce type de codage et il est plus général. Dans le codage binaire chaque chromosome est
une chaine de bits, 0 ou 1. [Lamamra, 2012]
Chromosome A
101100101100101011100101
Chromosome B
111111100000110000011111
Tableau I.2 : Exemple des Chromosome avec le codage binaire.
a.
Codage par valeur
Ce type de codage est utilisé quand des valeurs relativement complexes sont
utilisées, comme les nombres réels. L‘utilisation du codage binaire dans ce type
de problème est très difficile.
Chromosome A 1.2324 5.3243 0.4556 2.3293 2.4545
Chromosome B (back),(back),(right),(forward),(left)
Tableau I.3: Exemple des Chromosome avec le codage par valeur.
14
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
 La sélection :
La sélection est un processus dans lequel des individus dans une population sont
choisis selon les valeurs de leurs fonctions coût ou « fitness » pour former une
nouvelle population [Maturana, 2009].
Parmi les méthodes de sélection, on trouve : la roulette, la sélection par rang, la
sélection par tournoi.
a. Sélection par Roulette : l‘individu est choisi avec une probabilité
proportionnelle à sa valeur de fonction d‘évaluation. C‘est la façon la plus
intuitive de choisir un individu, mais le problème est le choix presque toujours
du même individu s‘il en existe un, bien meilleur que les autres.
b. Sélection par Rang : Les individus sont mis en ordre selon leur fitness, puis
affectées selon une échelle (par exemple, dans une population de 100 individus,
affecter la valeur 100 au premier, 99 au deuxième, etc.). Ensuite on effectue une
sélection par roulette sur ces nouvelles valeurs. Cela aide `a pallier le problème
de la roulette, en linéarisant les mesures selon lesquelles on fait la sélection.
[Miller et al, 1995]
c. Sélection par Tournoi : un sous-ensemble d‘individus est choisi au hasard, et
le meilleur d‘entre eux est sélectionné [Miller et al, 1995]. Ici, on a plus de
chance de choisir des individus de façon plus équitable, en favorisant toujours
les meilleurs.
 Le croisement :
Appelé aussi l‘opérateur de recombinaison qui consiste à combiner deux ou
plusieurs génotypes (parents) pour obtenir des nouveaux chromosomes (enfant). ,
il existe plusieurs types de cet opérateur [Maturana, 2009], les plus connus
sont :
a. Le croisement à un point :
Le croisement à un point place un point de croisement au hasard, dans le cas où le
génotype est une chaîne binaire de longueur n. Un enfant prend une section avant le point
de croisement d‘un parent et prend l‘autre section après le point de croisement de l‘autre
parent puis recombine les deux sections pour former une nouvelle chaîne binaire. L‘autre
enfant se construit de façon inverse.
15
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
Figure I.4 : Exemple du croisement à un point
b. Le croisement uniforme :
Ce type peut être vu comme un croisement multipoints dont le nombre de points
n‘est pas connu à priori. Il utilise une chaîne de bits générée aléatoirement et de même
longueur que les génotypes, appelée masque. Les gênes des génotypes initiaux sont
échangés en fonction de cette chaîne aléatoire, lorsque le bit correspondant vaut 1. Le
croisement uniforme a les avantages de la simplicité.
0 0 0 0 0 0 1
1 1 0 1 0 0 0
Parent
1 1 0 1 0 0 1
Enfant
Masque
Figure I.5: Exemple du croisement uniforme
 La mutation: La mutation opère sur le génotype d‘un seul individu .l'opérateur
de mutation consiste généralement à tirer aléatoirement un gène dans le
chromosome et à le remplacer par une valeur aléatoire .c‘est-à-dire, pour une
chaîne binaire, elle consiste, par exemple, à faire pour un allèle un échange entre
le « 0 » et le « 1 ».La mutation change des valeurs de certains gènes avec une
faible probabilité. Elle n‘améliore pas, en général, les solutions mais évite une
perte irréparable de la diversité.
16
Etat de l’art des algorithmes évolutionnaires multi-objectifs
Chapitre I
Figure I.6 : Exemple de mutation.
 Le remplacement :
Est le processus de formation d‘une nouvelle population à partir de la population
formé des parents et d‘enfants générés. Le remplacement est effectué le plus
souvent grâce à la fitness des individus.
I.4.2.4 L’algorithme évolutionnaire typique :
Dans cette section, on va présenter le pseudo-code basique des EA :
a.
[Initialiser] générer la population initiale de manière aléatoire
b.
[Test] tant que le critère d‘arrêt n‘est pas satisfait
c. [Fitness] Evaluer la fonction d‘adaptation de chaque individu dans la
population.
d.
[Sélection1] Sélectionner des parents selon de leurs fonctions d‘adaptation.
e.
[Reproduction] Produire des enfants en appliquant le croisement et/ou la
mutation.
f.
[Remplacement] Sélectionner quelque individus à éliminer de la population
en les remplaçant par des enfants.
g.
[Fin tant que].
La figure I.7 résume le fonctionnement d‘un algorithme évolutionnaire typique [Sumathi
et al, 2010] :
Initialisation
Oui
Meilleur
individu
Remplacement
Stop
Evaluation
Non
Evaluation
Parents
Croisement
mutation
Figure I.7 : Principe de fonctionnement d‘un EA typique.
17
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
I.4.2.5 Les MOEA:
Les algorithmes évolutionnaires manipulent une population de solutions au lieu
d‘une seule solution. Cette propriété leur permet d‘être bien adaptés à la résolution des
problèmes d‘optimisation multi- objectif où l‘optimum est représenté par un ensemble de
points (ensemble de Pareto) et non pas par une solution unique. En plus, les EA sont
moins sensibles à la forme de la surface de Pareto. Ils peuvent être facilement appliqués
sur des problèmes pour lesquels le front de Pareto est concave ou discontinu.
Le potentiel des algorithmes évolutionnaires dans l‘optimisation multi-objectif était
présenté par Rosenberg dans les années 1960, mais la première implémentation réelle fût
celle de Schaffer. Durant la décennie qui suivit, le domaine resta pratiquement inactif. Il
commença à croitre spectaculairement au milieu des années 1990 avec le développement
de plusieurs techniques et applications.
Dans la littérature, plusieurs approches ont été proposées afin d‘adapter les
algorithmes évolutionnaires au cas de l‘optimisation multi-objectif. L‘objectif principal
de ces différentes approches est le même : obtenir une bonne approximation du front
optimal de Pareto tout en assurant une bonne diversité des solutions le long de ce dernier
[Mouadh, 2012] [Talbi, 2009].
On va donner une classification des MOEA utilisant la relation de dominance de
Pareto :
I.4.2.5.1 Techniques de première génération :
Elles mettent en œuvre le concept d‘optimalité de Pareto pour classer les solutions
en différents groupes de solutions non dominées, en vue d‘aider à la convergence des
algorithmes. Pour assurer la diversité de la population dans la région de Pareto, ces
algorithmes utilisent la technique de la fonction de partage. Ces algorithmes comprennent
le MOGA, NPGA et NSGA [Lamamra, 2012], [Talbi, 2009].
I.4.2.5.1.1. La méthode M.O.G.A:( Multiple Objective Genetic Algorithm)
Cette méthode est proposée par [Fonseca, 93]. Elle utilise la relation de
dominance de Pareto pour calculer l‘efficacité des individus. Le rang d‘un individu xi à
(𝑡)
la génération t est donné par : 𝑅𝑎𝑛𝑔 𝑥𝑖 , 𝑡 = 1 + 𝑝𝑖
(𝑡)
Où 𝑝𝑖 est le nombre d‘individu qui dominent 𝑥𝑖 à la génération t.
Pour calculer l‘efficacité des individus, on suit les étapes suivantes :
1. classer les individus en fonction de leur rang.
2. affecter une efficacité à un individu en interpolant à partir du meilleur
rang au plus mauvais.
18
Etat de l’art des algorithmes évolutionnaires multi-objectifs
Chapitre I
Algorithme M.O.G.A
Initialisation de la population
Evaluation des fonctions objectifs
Assignation d‘un rang basé sur la dominance
Assignation d‘une efficacité à partir du rang
For i=1 to maxG
Sélection aléatoire proportionnelle à l‘efficacité
Croisement
Mutation
Evaluation des fonctions objectifs
Assignation d‘un rang basé sur la dominance
Assignation d‘une efficacité à partir du rang
Endfor
Discussion : Cette méthode ne permet pas, dans certain cas, d‘obtenir une diversité dans
la représentation des solutions.
I.4.2.5.1.2. La méthode N.S.G.A:(Non dominated Sorting Genetic Algorithm)
Cette méthode reprend les grandes lignes de la méthode MOGA. La différence
principale intervient dans l‘efficacité d‘un individu [Srinivas , 93].
Dans un premier temps, on affecte à chaque individu un rang de Pareto. Tous les
individus du même rang sont classés dans un groupe. Chaque groupe aura une efficacité
inversement proportionnelle à son rang
Pour maintenir la diversité de la population, on va partager la valeur de
l‘efficacité d‘un groupe entre ses individus de la façon suivante :
 On calcule, pour chaque individu, le compte de ses voisins:
𝑚𝑖 =
𝑘
𝑗 =1 𝑆𝑕(𝑑
𝑆𝑕 𝑑 𝑖, 𝑗
𝑖, 𝑗 )
𝑑 𝑖, 𝑗 2
= 1 − (𝜎𝑠𝑕𝑎𝑟𝑒 ) 𝑠𝑖 𝑑(𝑖, 𝑗) < 𝜎𝑠𝑕𝑎𝑟𝑒
0
𝑠𝑖𝑛𝑜𝑛
Avec :
 K : nombre d‘individus du groupe.
 𝜎𝑠𝑕𝑎𝑟𝑒 : permet de définir une zone d‘influence pour le calcul de l‘efficacité
de l‘individu
𝐹
 L‘efficacité 𝑓𝑖 de l‘individu i est donnée par :𝑓𝑖 = 𝑚
𝑖
19
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
Discussion :
C‘est une méthode efficace, qui permet d‘obtenir une diversité dans la
représentation des solutions, mais elle reste très sensible au choix du diamètre de la
niche 𝜎𝑠𝑕𝑎𝑟𝑒 .
I.4.2.5.1.3. L’Algorithme NPGA (Niched Pareto Genetic Algorithm)
Cette méthode proposée par Horn et Napfliotis [Horn et al, 94] utilise un tournoi basé
sur la notion de dominance de Pareto. Elle compare deux individus pris au hasard avec
une sous-population de taille 𝑡𝑑𝑜𝑚 également choisie au hasard. Si un seul de ces deux
individus domine le sous-groupe, il est alors positionné dans la population suivante.
Dans les autres cas une fonction de sharing est appliquée pour sélectionner l‘individu. Le
paramètre tdom permet d‘exercer une pression variable sur la population et ainsi
d‘augmenter ou de diminuer la convergence de l‘algorithme. A travers leurs
expérimentations Horn et Napfliotis établissent le constat suivant :



Si 𝑡𝑑𝑜𝑚 ≈ 1% de N, il y a trop de solutions dominées.
Si 𝑡𝑑𝑜𝑚 ≈ 10% de N, une bonne distribution des individus est obtenue.
Si 𝑡𝑑𝑜𝑚 ≫ 20% de N, il y a une convergence prématurée, car la pression est
trop importante lors de la sélection.
Outre les paramètres de sharing l‘utilisation de cette méthode ajoute un
paramètre supplémentaire à fixer par l‘utilisateur, 𝑡𝑑𝑜𝑚 . Ce dernier permet de régler
aisément la pression sur la population. Les solutions trouvées sont de bonne qualité et
cette approche est plus rapide que les approches précédentes car le sharing n‘est appliqué
que sur une portion de la population.
I.4.2.5.2 Techniques de deuxième génération :
La deuxième génération des MOEA donne plus d‘importance à l‘efficacité.
L‘utilisation de population secondaire (externe) devient chose commune et
d‘intelligentes manières sont fournies pour générer des solutions non-dominées et
uniformément distribuées [Talbi, 2009].
I.4.2.5.2.1 Strength Pareto Evolutionary Algorithm (SPEA):
C‘est une méthode évolutionnaire élitiste pour MOO proposé en 1998, Zitzler et
Thiele [Zitzler et al, 1999]. Cet algorithme utilise une population P dite courante et une
autre externe P‘ appelée archive qui est destiné à contenir un nombre limité de solutions
non-dominées trouvées depuis le début de l‘évolution. A chaque itération, de nouveaux
individus non-dominés sont comparés aux membres de P‘ au sens de dominance et seules
les solutions non-dominées restent ensuite dans P‘.
Le SPEA utilise l‗archive P‘ pour préserver l‘élite, et la fais participer aux
opérations génétiques.
20
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
Cet algorithme démarre avec une population P0 de taille N crée aléatoirement et avec une
population externe P0‘ vide. A chaque génération t, les solutions non-dominées de Pt sont
copiées dans la population externe Pt‘ et ensuite, toutes les solutions dominées ( qui
peuvent apparaitre du fait de l‘ajout de nouveaux éléments à P t‘) sont éliminées.
Quand la taille de Pt‘ atteint la limite N‘, un critère supplémentaire pour accepter
une solution dans l‘élite rentre en jeu. Ce critère issu de la préoccupation de la diversité
entre les membres de Pt‘ (mise à jour de Pt‘), est basé sur le principe de clustering.
Après la mise à jour de Pt‘, l‘algorithme retourne vers la population courante P. le
premier pas consiste à associer une valeur de performance à chaque solution. Notons que
dans SPEA cette valeur sera à minimiser. Une valeur scalaire de performance S i
(Strength qui veut dire force) doit être attribuée aussi attribuée aux éléments de l‘archive
Pt‘, cette valeur est proportionnelle aux nombre ni des individus de la population courante
𝑛
qui sont dominés par la solution externe i. .𝑆𝑖 = 𝑖 𝑁 + 1
Ensuite, la valeur de performance d‘un individu j de la population P est égale à la
somme des valeurs de « Strength » de toutes les solutions externes qui la dominent :𝐹𝑗 =
1 + 𝑖𝜖𝑃𝑡′ 𝑒𝑡 𝑖≾𝑗 𝑆𝑖
Figure I.8: Calcul de la performance dans SPEA.
La sélection par tournoi de taille 2 effectuée sur l‘ensemble P t‘∪ 𝑃𝑖 se base donc sur les
valeurs Si et Fj de façon à préférer les valeurs inférieurs.
I.4.2.5.2.2 SPEA-II
C‘est une version révisée de SPEA proposée dans [Zitzler et al, 2001] elle a trois
différences essentielles par rapport à SPEA [Mouadh, 2012] :
Elle utilise une stratégie d‘affectation de fitness qui prend en compte, pour chaque
individu, le nombre d‘individus qui le dominent et le nombre d‘individus qu‘il domine.
 Elle utilise une technique du plus proche voisin pour l‘estimation de la densité ce
qui permet de guider la recherche plus efficacement.
 Elle adopte une méthode améliorée pour le découpage de l‘archive qui garantie la
préservation des solutions frontalières.
21
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
I.4.2.5.2.3. Pareto Archived Evolution Strategy (PAES) :
Cet algorithme proposé, par Knowles et Corne [Knowles et al, 1999] utilise un
seul individu avec une stratégie d‘évolution (1+1) et un archive pour stocker les solutions
non dominées. Il utilise une grille adaptative pour maintenir la diversité. L‘algorithme
PAES se présente comme suit :
1. Génération aléatoire d‘un individu c et ajout de c à l‘archive.
2. Production d‘un nouvel individu m par la mutation de c.
3. Evaluer m :
 Si m domine c, remplacer c par m dans l‘archive et considérer m
comme solution courante.
 Si m est dominé par un membre de l‘archive, écarter m.
 Sinon Si m domine un individu ou plus de l‘archive, ajouter m à
l‘archive et supprimer les individus dominés.
 Sinon Si m appartient à une zone moins encombrée qu‘un individu de
l‘archive, remplacer l‘individu par m.
4. Considérer comme solution courante l‘individu, parmi c et, qui appartient à la
zone la moins encombrée.
5. Aller à 2.
Une technique de crowding, basée sur le découpage en hyper-cubes de l‘espace des
objectifs, est utilisée pour déterminer l‘encombrement d‘une zone. [Talbi, 2009]
Figure I.9 : Préservation de la diversité dans PAES.
I.4.2.5.2.4. Pareto Enveloppe-based Selection Algorithm (PESA) :
C‘est un algorithme génétique proposé par les mêmes auteurs de l‘algorithme
PAES. Dans PESA, le principe de l‘archivage des solutions non-dominée et la technique
de préservation de la diversité sont les memes que dans l‘algorithme PAES. Dans PESA,
comme dans SPEA2, seules les solutions de l‘archive participent au processus de
variation génétique [Corne et al, 2000].
22
Chapitre I
Etat de l’art des algorithmes évolutionnaires multi-objectifs
L’algorithme PESA :
1. Générer et évaluer une population interne PI de P I individu. Une population
externe EP est au début un ensemble vide.
2. Mettre à jour l‘archive EP.
3. Si le critère d‘arrêt est satisfait, l‘ensemble EP est retourné comme résultat de
l‘optimisation. Sinon, vider l‘ensemble IP et répéter la procédure suivante
jusqu‘à ce que PI nouveaux individus soient générés :
 Avec la probabilité pc, sélectionner deux parents de la population EP,
obtenir un seul enfant en les croisant et muter cet enfant. Avec la
probabilité (1-pc), sélectionner un parent de EP et le muter.
4. Retourner à l‘étape 2.
La procédure de la mise à jour de l‘archive EP est identique à celle de PAES. Elle
compare toutes les solutions non-dominées de IP, une par une, aux membres de EP.
La sélection des parents à l‘étape 3 est basée sur la mesure de diversité qui est
appelée par les auteurs «squeeze factor » et qui est calculée, comme dans PAES, comme
le nombre des solutions dans le même hypercube que la solution en question. Si la
sélection par tournoi est employée, deux solutions de l‘archive sont choisies
aléatoirement et celle, dont la valeur de « squeeze factor » est plus petite gagne.
I.4.2.5.2.5 PESA-II :
C‘est une version révisée de PESA. L‘algorithme PESA-II [Corne et al. 2001]
adopte une sélection basée sur la région et non pas sur l‘individu. A chaque fois, la
région (l‘hypercube) ayant le plus petit squeeze-factor est choisie pour générer
aléatoirement un nouvel individu appartenant à cette région [Talbi, 2009].
I.4.2.5.2.6. Non-dominated Sorting Genetic Algorithm II (NSGA-II)
C‘est une technique propose dans [Deb et al, 2002] qui est plus efficace que NSGA
en terme de temps de calcul. C‘est une méthode élitiste utilisant un opérateur de
comparaison basé sur la mesure d‘encombrement qui maintient la diversité sans
spécification de paramètres additionnels (le paramètre de partage n‘est plus nécessaire).
I.5 Conclusion :
Nous avons présenté dans ce chapitre les notions d‘optimalité au sens de Pareto,
ainsi qu‘on a rappelé quelques notions préliminaires de l‘optimisation évolutionnaire.
On a passé en revue les principaux algorithmes évolutionnaires multi-objectif.
Le prochain chapitre sera consacré à l‘algorithme évolutionnaire multi-objectif de
deuxième génération NSGA-II qui est basé sur la dominance de Pareto.
23
Chapitre II
L’Algorithme
NSGAII
Chapitre II
L’algorithme NSGAII
II.1 Introduction :
Dans la plupart des AG d‘optimisation multi-objectifs développés, il s‘agira
de satisfaire les deux points suivants : 1) trouver des solutions aussi proches que
possible des vraies solutions Pareto-optimales, c‘est-à-dire converger le plus possible
vers le front de Pareto, et 2) trouver un ensemble de solutions très variées, tout le long
du front, c.à.d. aboutir le principe convergence-diversité.
Le tout premier algorithme évolutionnaire d‘optimisation multi-objectif
s‘appelle VEGA (Vector Evaluated Genetic Algorithm, AGEV : Algorithme
Génétique à Évaluation Vectorielle) et a été présenté par Schaffer en 1985 [Coello
et al, 2001]. L‘avantage de cet algorithme est qu‘il est facile à implanter mais son
inconvénient majeur est qu‘il a tendance à générer des solutions qui excellent dans
un seul objectif, sans tenir compte des autres objectifs. Toutes les solutions de moyenne
performance, qui peuvent être de très bons compromis, risquent de disparaître avec ce
type de sélection.
Depuis VEGA, un nombre considérable d‘AG d‘optimisation multi-objectifs ont été
proposés: NPGA( Niched Pareto Genetic Algorithm ) [Horn et al, 1994] utilisant une
sélection par tournoi, basée principalement sur la dominance de Pareto, NPGA 2 qui est
une version améliorée du NPGA proposé par [Erickson et al, 2001] et qui est basé sur
le degré de domination d‘un individu, NSGA (Non Dominated Sorting Genetic Algorithm)
proposé par [Srinivas et al, 1994], NSGA-II [Deb et al, 2002] et les algorithmes microGA qui réfèrent à des algorithmes avec de petites populations avec réinitialisation.
Ce chapitre présente l‘algorithme génétique multi-objectif NSGAII basés sur la
domination de Pareto qui utilise une approche élitiste et qui est considéré comme plus
efficace que le NSGA.
II.2 Historique de l’algorithme:
L‘algorithme NSGA proposé par [Srinivas et al, 1994] est un algorithme
génétique multi-objectif basé sur la séparation des individus en plusieurs groupes en
fonction du degré de dominance de chaque individu [Talbi, 2009]. Cette méthode permet
d‘obtenir de très bons individus et de maintenir une certaine diversité à l‘intérieur de la
zone optimale. Les individus non-dominés sont d‘abord triés et constituent le premier
front dans la population courante. Il leur est affecté un grand poids pour leur évaluation,
ceci étant le même pour chacun des individus du même front. Pour maintenir une
certaine diversité dans la population, le poids de ces individus est d‘autant plus dégradée
qu‘ils ont des individus voisins. Un nouveau poids est alors déterminé si l‘individu n‘est
pas isolé, en divisant l‘ancien par la valeur de la fonction de partage. Le deuxième front
de domination est ensuite extrait. Un poids plus faible que celui du dernier individu du
premier front leur est attribué puis est dégradé suivant le même mécanisme. Ce système
de front est utilisé jusqu‘à ce qu‘un poids soit attribué à tous les individus de la
population. L‘évaluation étant opérée de cette façon, une sélection aléatoire
24
Chapitre II
L’algorithme NSGAII
proportionnelle est appliquée. La reproduction par croisement et mutation est ensuite
réalisée de façon classique jusqu‘à un nombre maximum de générations. L‘algorithme
NSGA est relativement facile à implémenter et il est applicable à des problèmes avec un
nombre quelconque d‘objectifs. Cependant l‘algorithme utilise une fonction de partage
«sharing», méthode qui exige le réglage d'un ou plusieurs paramètres et qui augmente
considérablement les calculs.
L‘algorithme NSGAII proposé par [Deb et al, 2002] prend son appellation de
l‘algorithme NSGA. Dans la plus part des aspects, NSGA-II est très différent de NSGA,
cependant le nom a été gardé pour indiquer les origines de cette approche [Mouadh,
2012].
Dans NSGA2, l‘auteur tente de résoudre toutes les critiques faites sur NSGA :
complexité, non élitiste et utilisation de sharing. NSGA-II intègre un opérateur de
sélection, basé sur un calcul de la distance de crowding, très différent de celui de
NSGA. Donc, la fonction de «sharing» est remplacée par une fonction de remplacement
«Crowding» en attribuant deux caractéristiques à chaque individu: le rang de non
domination et la distance de Crowding. Pour répondre à la critique de non élitisme,
l‘algorithme utilise une sélection par tournoi, modifie la procédure de passage entre deux
générations et définit une notion de préférence entre deux solutions en fonction des deux
caractéristiques des individus [Lamamra, 2012].
Comparativement à NSGA, NSGA-II obtient de meilleurs résultats sur toutes
les instances présentées dans les travaux de K.Deb, ce qui fait de cet algorithme un des
plus utilisés aujourd'hui.
II.3 NSGA-II :
II.3.1 Principe de l’algorithme :
NSGA-II (Elitist Non-dominated Sorting Genetic Algorithm) proposé dans [Deb et
al, 2002] a longtemps été l‘algorithme phare dans le domaine de l‘optimisation
évolutionnaire multi- objectif.
II.3.1.1. Classification des individus
Dans un premier temps, avant de procéder à la sélection, on affecte à chaque
individu de la population P un rang « rank » (en utilisant Critère du rang de Pareto).
Tous les individus non-dominés de même rang sont classés dans une catégorie (front).
 Critère du rang de Pareto : [Deb et al, 2002] Avec ce critère de comparaison, le
premier front F1 correspond à l‘ensemble des solutions non-dominées de P. En
considérant le reste des individus dans P après avoir enlever ceux de F1, et après avoir
réaliser un nouveau tri de dominance, nous obtenons le deuxième front F2 constitué
des individus non-dominés de l‘ensemble (P \ F1). Cette procédure est répétée jusqu‘à
ce que tous les individus de P soient attribués à un front [Mouadh, 2012].
25
L’algorithme NSGAII
Chapitre II
Le pseudo code de la procédure de classification des individus suivant le rang de Pareto
est représenté dans l‘algorithme suivant :
Début
P = population () /*Ensemble total de la population*/
i = 1 /*i est le compteur des fronts de Pareto, initialis
Répéter jusqu‘à P =Ø
Fi = chercher-ind-non-dominés(P) /*Trouver Fi,
l‘ensemble des
Individus non dominés correspondant au
front de Pareto i*/
P = P \ Fi
/*Supprimer les ind-non-dominés à partir de population
globale P*/
i = i + 1 /*Incrémenter le compteur de front*/
Fin Répéter
Fin
Figure II.1 : Classification des individus suivant le rang de Pareto
La figure II.2 suivante présente un exemple de classification en fronts de Pareto.
Figure II.2 : Classification des individus en plusieurs fronts de Pareto
26
Chapitre II
L’algorithme NSGAII
II.3.1.2. Préservation de la diversité :
L‘algorithme de la figure II.4 montre la technique (crowding distance) utilisée par
le NSGA-II pour préserver la diversité des solutions sur le front de Pareto. Cette
procédure s‘applique sur le dernier front de Pareto pour compléter la taille de la
population parents pour la génération suivante.
 Calcul de la distance de surpeuplement :
La distance de surpeuplement nommé crowding distance d‘une solution i (ou
d‘un individu) di correspond au semi-périmètre du cuboïde dont les vertex sont les
voisins les plus proches de l‘individu i, elle se calcule en fonction du périmètre formé
par les points les plus proches de i sur chaque objectif. La figure II.3 montre une
représentation à deux dimensions associée à la solution i.
Le calcul de la distance de surpeuplement nécessite, avant tout, le tri des
solutions selon chaque objectif, dans un ordre ascendant. Ensuite, pour chaque
objectif, les individus possédant les valeurs limites (la plus petite et la plus grande
valeur de fonction objectif) se voient associés une distance infinie ∞ . Pour les
autres solutions intermédiaires, on calcule la crowding distance qui égale à la
différence normalisée des valeurs des fonctions objectifs de deux solutions adjacentes.
Ce calcul est réalisé pour chaque fonction objectif. La crowding distance d‘une solution
est calculée en sommant les distances correspondantes à chaque objectif.
Figure II.3 : Principe de Crowding distance, les points noirs sont des solutions
appartenant au même front [Deb et al, 2002]
27
L’algorithme NSGAII
Chapitre II
L‘algorithme de la figure II. 4 montre la procédure de calcul de la distance de
surpeuplement de toutes les solutions non dominées de l‘ensemble I (I est le front
trié) . Dans cet algorithme, 𝑓𝑚𝑚𝑎𝑥 𝑒𝑡 𝑓𝑚𝑚𝑖𝑛 représentent les valeurs maximale et
minimale de la 𝑚è𝑚𝑒 fonction objectif. Entre deux solutions de rangs différents, on
préfère la solution avec le plus petit rang (ou le plus petit front). Pour deux solutions
qui appartiennent au même front, on préfère l‘individu possédant la plus grande
valeur de crowding distance.
Algorithme de Calcul des distances de surpeuplement
1. Initialiser :
– le nombre d’individus du front F.
– les distances de surpeuplement di = 0 pour toute solution i de F.
– le compteur d’objectifs m = 1.
2. Réordonner l’ensemble F de façon que les valeurs de fm sur ses éléments
diminuent.
Notons Im= sort [𝑓𝑚 ,>] (F) le vecteur des indices, c'est-à-dire 𝐼𝑖𝑚 dénote l’indice de
la solution i dans la liste ordonnée selon l’objectif m.
3. Mettre `a jour la valeur de di
– Pour chaque solution i telle que 2 ≤ 𝐼𝑖𝑚 ≤ (l − 1),
𝐼 𝑚 +1
𝐼 𝑚 −1
𝑓𝑚𝑖
− 𝑓𝑚𝑖
𝑑𝑖 = 𝑑𝑖 + 𝑚𝑎𝑥
𝑓𝑚 − 𝑓𝑚𝑚𝑖𝑛
– sur les extrémités de F, autrement dit si 𝐼𝑖𝑚 = 1 𝑜𝑢 𝐼𝑖𝑚 = 𝑙, 𝑑𝑖 = ∞
4. Si m = M, la procédure est terminée, sinon incrémenter le compteur d’objectifs
m ← m + 1 et retourner à l’étape 2.
Figure II.4 : Calcul de la crowding distance pour chaque solution d‘un front
II.3.1.3. Opérateur de comparaison Crowded :
L‘opérateur de comparaison crowded (≺𝑛 ) guide le processus de la sélection avec
la répartition uniforme des solutions de Pareto. Un individu de la population a deux
attributs :
28
L’algorithme NSGAII
Chapitre II


rang de non domination (i rank).
distance crowding (idistance)
Soit les deux individus i et j,
i ≺𝑛 j si 𝑖𝑟𝑎 𝑛𝑘 < 𝑗𝑟𝑎𝑛𝑘
ou
(𝑖𝑟𝑎𝑛𝑘 = 𝑗𝑟𝑎𝑛𝑘 ) et (𝑖𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 > 𝑗𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 )
Avec cette relation pour la comparaison de deux solutions non dominées
appartenant à deux fronts de Pareto, on préfère la solution appartenant au front de Pareto
d‘ordre le plus faible. Sinon, dans le cas où les deux solutions appartenant au même front
de Pareto, on choisit la solution qui a la distance crowded la plus élevée.
II.3.1.4. L’élitisme :
L‘élitisme était d‘inclure le meilleur individu de la population Pt dans la population
Pt+1 dans le but de prévenir sa perte due aux effets d‘échantillonnage ou aux perturbations
des opérateurs. Cette stratégie, qui peut être étendue en copiant les b meilleures solutions
à la génération suivante, est appelé élitisme. Donc, l‘élitisme consiste à maintenir une
population externe, qui permet d' archiver le meilleur ensemble des points non
dominés découverts jusqu'ici. Cet ensemble est mis à jour continuellement pendant la
recherche, et participe avec une certaine probabilité à l‘étape de sélection. Cette méthode
permet ainsi une intensification de la recherche. En optimisation évolutionnaire multiobjectifs, l‘élitisme joue un rôle important. [Francisci, 2002]
II.3.2. L’algorithme NSGA-II :
II.3.2.1 Boucle principale de l’algorithme NSGA-II :
Initialement, il y a la création aléatoire d‘une population parent P0. Chaque
individu de cette population est affecté à un front de Pareto adéquat. On applique les
opérateurs génétiques (sélection, croisement et mutation) pour générer la population
enfant Q0 à partir de la population P0.
Pour une génération t, les deux populations Pt et Qt sont ensuite réunies pour
former la population mixte Rt. Cette population est triée selon le critère du rang de Pareto
pour former les fronts successifs. Par la suite, la nouvelle population Pt+1 est créée et est
remplie au fur et à mesure avec les différents fronts successifs. Comme la taille de la
population Rt est supérieur à N, les fronts successifs ne peuvent pas intégrer en totalité la
nouvelle population qui doit être de taille N. Ces fronts seront tout simplement éliminés.
Cependant, la taille du dernier front considéré peut être supérieure aux nombres de cases
vides à remplir dans la nouvelle population. Dans ce cas, le critère de surpeuplement
‗crowding distance‘ sera utilisé autour des individus pour assurer la diversité dans la
population pour choisir parmi les solutions du dernier front, celles qui vont intégrer la
nouvelle population afin de favoriser les solutions dans les régions les moins peuplées du
front considéré dans le but d‘améliorer la diversité des solutions.
29
L’algorithme NSGAII
Chapitre II
Figure II.5 : Schéma de l‘évolution de l‘algorithme NSGA –II [Deb et al, 2002].
Algorithme NSGA-II
1: t ← 0, P0 ← random(), |P0|=N
2: repeat
3: Générer une nouvelle population enfant (Qt )
mutation 4: Rt← Pt∪ Qt
par sélection, croisement et
5: F ← Tri-dominance(Rt) // F = (F1, F2, F3, ...)
6: Pt+1 ← ∅, i ← 1
7: while |Pt+1| + |Fi| < N do
8: Pt+1 ← Pt+1 ∪ Fi ; i ← i + 1
9: end while
10 : Pt+1 ← Tri-surpeuplement (Pt+1) // Ordonner l’ensemble Fi selon les ”distances
de surpeuplement” (crowding distances) et inclure les N− | P t+1 | solutions ayant les
valeurs de distance les plus grandes dans la population P t+1.
11 : t ← t + 1 // (Incrémenter le compteur des générations)
Until Critère d’arrêt rencontré
Figure II.6 : Algorithme NSGA-II [Deb et al, 2002]
30
L’algorithme NSGAII
Chapitre II
II.3.2.2 Les opérateurs génétiques du NSGA-II :
Selon [Deb et al, 2002], pour les algorithmes génétiques utilisant le codage réel,
on utilise le croisement de type SBX (Simulated Binary Crossover) avec une probabilité
du croisement 𝑃𝑐 = 0.9 et la mutation polynomiale avec une probabilité de mutation
1
𝑃𝑚 = 𝑛 où n est le nombre de variables de décision. Le croisement est effectué après
avoir effectué la sélection des meilleurs parents pour faire la reproduction.
II.3.2.2.1. Opérateur de sélection :
Après affectation des rangs aux individus en appliquant le critère de Pareto, on
calcul la crowding distance des individus de la population parents. La sélection des
individus parents pour faire le croisement est exécutée en utilisant l‘opérateur de
comparaison crowded (≺𝑛 ).
II.3.2.2.2 Le croisement SBX :
Les enfants sont générés par les relations suivantes :
𝑐1,𝑘 =
1
1 − 𝛽𝑘 𝑝1,𝑘 + 1 + 𝛽𝑘 𝑝2,𝑘
2
( 𝐼𝐼. 1)
𝑐2,𝑘 =
1
1 + 𝛽𝑘 𝑝1,𝑘 + 1 − 𝛽𝑘 𝑝2,𝑘
2
(𝐼𝐼. 2)
Où 𝐶𝑖,𝑘 est la 𝑘 è𝑚𝑒 du 𝑖 è𝑚𝑒 enfant. 𝑃𝑖,𝑘 est la 𝑘 è𝑚𝑒 du 𝑖 è𝑚𝑒 parent et 𝛽𝑘 ≥ 0 est
un nombre aléatoire pouvant être obtenue en définissant un nombre aléatoire
uniforme 𝑢 ∈ 0,1 . 𝜂𝑐 est l‘index de distribution du croisement.
1
𝛽 𝑢 = (2𝑢)(𝜂 𝑐 +1)
𝛽 𝑢 =
1
[2 1 − 𝑢
1
](𝜂 𝑐 +1)
𝑠𝑖 𝑢 ≤ 0.5
𝑠𝑖𝑛𝑜𝑛
(𝐼𝐼. 3)
(𝐼𝐼. 4)
31
L’algorithme NSGAII
Chapitre II
II.3.2.2.3 La mutation polynomiale :
La mutation polynomiale est une modification aléatoire de la valeur d‘un gène utilisant la
relation suivante :
𝑐𝑘 = 𝑝𝑘 + 𝑝𝑘𝑢 − 𝑝𝑘𝑙 𝛿𝑘
(𝐼𝐼. 5)
Où 𝑐𝑘 est l‘individu généré. 𝑝𝑘𝑢 et 𝑝𝑘𝑙 sont respectivement les bornes supérieur et
inférieur du parent 𝑝𝑘 .
𝛿𝑘 est un paramètre calculé par la loi de distribution
polynomiale:
1
𝛿𝑘 = (2𝑟𝑘 )𝜂 𝑚 +1 − 1,
𝑠𝑖 𝑟𝑘 < 0.5
(𝐼𝐼. 6)
𝑠𝑖 𝑟𝑘 ≥ 0.5
(𝐼𝐼. 7)
1
𝛿𝑘 = 1 − [2 1 − 𝑟𝑘 ]𝜂 𝑚 +1 ,
Où 𝑟𝑘 un nombre aléatoire entre (0, 1) et 𝜂𝑚 est l‘index de distribution de mutation.
II.3.3 Organigramme de l’algorithme NSGA-II :
La figure II.7 représente l‘organigramme de l‘algorithme NSGA-II.
32
Chapitre II
L’algorithme NSGAII
Figure II.7 : Organigramme de l‘algorithme NSGA-II
33
Chapitre II
L’algorithme NSGAII
II.4 Applications de l’algorithme NSGA-II :
[Belaidi et al, 2009] ont présenté une application de l‘algorithme génétique de
type NSGAII pour l‘optimisation multi-objectif d‘une opération de fraisage en bout. Le
modèle proposé et implémenté sous Matlab, permet, à partir d‘un espace de recherche
considéré (données de références), une optimisation des valeurs du couple ‗‘Vitesses de
coupe-Avances de l‘outil‘‘, pour une profondeur de passe imposée, en minimisant
simultanément les coûts et les temps de coupe, sous contrainte des limitations techniques
liées au système usinant ‗‘Pièce-Outil-Machine‘‘.
Dans [Lamamra, 2012] l‘auteur a présenté une application de l‘optimisation des
réseaux de neurones MLP par les algorithmes génétiques multi-objectifs NSGA2 pour la
commande le système de freinage Anti Blocage des Roues (Anti-lock Braking System)
connu par l‘abréviation ABS, qui est un système fortement non linéaire.
Dans son travail, l‘auteur a utilisé l‘algorithme NSGA-II afin d‘optimiser deux
types de réseaux de neurones : les réseaux MLP et les réseaux RBF. Les objectifs à
optimiser ont été : les poids des connexions, le nombre de neurones dans la couche
cachée et les entrées du réseau.
[Atahran et al, 2011] ont appliqué l‘algorithme génétique NSGA-II pour résoudre
la version statique d‘un problème DARP (Dial-a-Ride Problem) multi-objectif qui est un
problème d‘optimisation combinatoire. Cette version statique dans laquelle toutes les
données du problème sont connues à l‘avance, consiste à satisfaire un ensemble de
requêtes de transport de personnes, en utilisant une flotte de véhicules hétérogènes
localisée en un unique dépôt. Chaque requête est caractérisée par un point de départ et
d‘arrivée, un nombre de personnes à transporter et une fenêtre de temps à l‘origine et à la
destination.
[Khemaies, 2005]
a utilisé l‘algorithme NSGA-II pour l‘évaluation des
performances du microprocesseur Leon.
II.5 Conclusion :
Dans ce chapitre on a présenté le principe de base et le fonctionnement de
l‘algorithme élitiste NSGA-II. Cet algorithme est utilisé dans notre travail afin de
contrôler notre système dynamique qui est le bras manipulateur Puma560. La mise en
œuvre de l‘algorithme NSGA-II fait l‘objet du chapitre application.
Le chapitre suivant présente un algorithme évolutionnaire nouvellement conçu basé
sur la biogéographie appelé ‗‗BBO : Biogeography based Optimization‘‘ et une version
multi-objectif de cet algorithme appelé NSBBO-II.
34
Chapitre III
L’Approche BBO
Et
NSBBO-II
Chapitre III
l’approche BBO et NSBBO-II
III.1 Introduction :
La science de la biogéographie peut être tracée au 19ème siècle avec les travaux
des naturalistes tels qu'Alfred Wallace (Wallace, 2005) et Charles Darwin (Darwin,
1859).
Au début des années 60, Robert MacArthur et Edouard Wilson ont commencé à
travailler ensemble sur les modèles mathématiques de la biogéographie. Ils étaient
intéressés par les modèles mathématiques pour l'extinction et la migration des espèces.
Depuis leur travail distinct, la biogéographie est devenue un domaine de recherche
important. Les modèles mathématiques de la biogéographie décrivent comment les
espèces émigrent d'une île à une autre, comment les nouvelles espèces surgissent, et
comment les espèces deviennent disparaitre. Le terme « île » ici est employé d'une
manière descriptive plutôt que littérale. C'est-à-dire, une île est n'importe quel habitat qui
est géographiquement isolé des autres habitats. [Hongwei et al, 2013]
Les modèles mathématiques de la biogéographie ont été appliqués la première fois
à l'optimisation avec l'introduction du BBO en 2008 par Dan Simon.
L‘approche BBO est l‘une des méthodes évolutionnaire proposée par [Simon, 08a]
pour résoudre les problèmes d‘optimisation.
L‘algorithme NSBBO-II est une version multi-objectif de l‘algorithme BBO.
Ce chapitre présente l‘algorithme évolutionnaire mono-objectif BBO et l‘une de
ses versions multi-objectif NSBBO-II. basé sur l‘algorithme NSGA-II qui utilise la
notion de domination de Pareto pour calculer le rang de chaque solution ainsi que la
distance de surpeuplement « crowding distance » présenté dans le chapitre précédent.
III.2 Biogéographie :
La biogéographie traite l'étude de la distribution de la biodiversité dans l'espace et
dans le temps. Elle a été bien étudiée par des naturalistes et des biologistes pendant plus
de ces cinq dernières décennies. Récemment, la théorie de biogéographie a été appliquée
en ingénierie sous forme d‘une méta-heuristique inspirée de la nature pour résoudre des
problèmes d'optimisation difficiles. Cette technique est reconnue en tant qu'algorithme
d'optimisation basé sur la biogéographie (BBO) [Sinha et al, 2011].
La biogéographie a été étudiée dès le 19ème siècle par Alfred Wallace et Charles
Darwin. Jusqu'aux années 60, la biogéographie était principalement descriptive et
historique [Simon, 08a]. Au début des années 60, Robert MacArthur and Edward Wilson
proposent ensemble les modèles mathématiques de la biogéographie, leur travail
culminait avec la publication ‗‗ la théorie de la biogéographie d'île’’ en 1967. Ils ont
prouvé que la richesse d'espèces d'une région pourrait être prévue en fonction quelques
facteurs tels que : la superficie d'habitat, le taux d'immigration, et le taux d‘extinction.
35
Chapitre III
l’approche BBO et NSBBO-II
Dès leur travail pionnier, la biogéographie s'est prospérée comme un domaine de
recherche important [Sinha et al, 2011].
Les modèles mathématiques de la biogéographie décrivent l'immigration et
l‘émigration des espèces biologiques entre les habitats pour leur survie, ainsi pour avoir
une meilleur vie [Ma et al, 2011]. La raison pour laquelle l'émigration se produit des îles
habitables est due à l'accumulation des effets aléatoires sur leurs grandes populations.
Les îles qui sont fortement habitables tendent à avoir beaucoup d'espèces, alors que
ceux qui ne sont pas très habitables ont peu d'espèces. Les îles fortement habitables ont
une émigration élevée. L'émigration a lieu lorsque les animaux nagent aux îles voisines
ou montent le reste d'un bateau naufrage aux îles voisines. Dans le cas des insectes et des
oiseaux, l'émigration peut se produire en volant ou en étant porté par le vent.
Les îles fortement habitables ont un taux d'immigration bas parce qu'elles sont
presque saturées, et ne peuvent pas donc supporter de nouvelles espèces. Inversement, les
îles qui ne sont pas habitables ont un taux d'immigration élevé en raison de leurs faibles
densités de population, ce qui permet de place à des espèces additionnelles.
L'immigration de nouvelles espèces vers des îles pourrait surélever l‘habitabilité de ces
îles car l‘habitabilité est proportionnelle à la diversité biologique. [Simon, 2011a]
Figure III.1 : Migration des espèces. [Simon, 2008b]
Le terme « île » ici est employé d'une manière descriptive plutôt que littérale. C'està-dire, une île est n'importe quel habitat qui est géographiquement isolé des autres
habitats. Dans ce document, nous employons donc le terme le plus générique « habitat »
(plutôt que « île ").
La qualité d‘un habitat est mesurée par son index d‘adéquation d'habitat (HSI :
Habitat Suitability Index). Les habitats qui sont bien adaptés à la résidence des espèces
biologiques ont un HSI élevé.
36
l’approche BBO et NSBBO-II
Chapitre III
Les caractéristiques d‘un habitat qui se corrèlent avec HSI incluent des facteurs
tels que des précipitations, la diversité de la végétation, la région terrestre, et la
température. Les variables qui caractérisent l‘habitabilité s'appellent les variables d'index
d‘adéquation (SIV : Suitability Index Variables). Le HSI peut être considéré la variable
dépendante et les SIVs peuvent être considérées comme des variables indépendantes de
l'habitat [Simon, 08a].
III.3 L’optimisation basée sur la biogéographie (BBO):
L'optimisation Basée sur Biogéographie (BBO) est un nouvel algorithme
d'optimisation globale basé sur la théorie de biogéographie, qui est l'étude de la
distribution géographique des organismes biologiques. Le BBO est un algorithme
évolutionnaire inspiré par les modèles mathématiques de la biogéographie, et
initialement développé par Dan Simon en 2008 [Simon, 2008a].
Algorithmes évolutionnaires
GA
ES
EP
PSO
GP
DE
BBO
Figure III.2: Quelques algorithmes évolutionnaires.
Et comme d‘autres algorithmes basés sur la biologie (tels que les GA : Genetic
algorithms), PSO : Particle Swarm Optimization), l'approche BBO a sa façon pour
partager l'information entre les solutions. Cependant, le BBO a également quelques
caractéristiques qui sont uniques, par exemple il maintient son ensemble de solutions
d'une itération à la prochaine, en se fondant sur la migration pour adapter ces solutions
[Gong et al, 2010].
III.3.1 Analogie avec la biogéographie :
L‘algorithme BBO utilise un vocabulaire similaire à celui de la biogéographie où
chaque solution est un habitat (ile) et ses caractéristiques qui caractérisent l‘habitabilité
sont appelées variables d‘index d‘adéquation (SIV) comme résume le tableau III.1. La
qualité de chaque solution est mesurée par le HSI qui correspond à la fitness d‘une telle
solution [Lohokare et al, 2010]. Les habitats avec un HSI élevé ont tendance à avoir un
grand nombre d‘espèces don un taux d‘immigration faible et un taux d‘émigration élevé.
Réciproquement, les habitats avec un HSI faible ont un nombre d‘espèces faible, un taux
d‘immigration élevé et un taux d‘émigration faible.
37
l’approche BBO et NSBBO-II
Chapitre III
Une bonne solution est analogue à un habitat dont le HSI est élevé, tandis qu‘une
mauvaise solution est analogue à un habitat dont le HSI est faible. [Simon, 2008a]
L’algorithme BBO
La Biogéographie
Habitat ou île
Solution du problème
HSI
Qualité de la solution (fonction du coût)
SIV
Les variables définissant la solution
Tableau III.1 : Terminologie de la BBO.
III.3.2 L’algorithme BBO :
1. [Initialiser] Générer aléatoirement une population P de N habitat.
2. [Fitness] Calculer la fonction d‘adaptation HSI de chaque habitat dans la
population.
3. [Sélection]: Enregistrer les k meilleurs habitats dans une population temporaire Q
4. Calculer λ, et μ de chaque habitat.
5. [Nouvelle population P’] Modifier la population P en P‘, en exécutant les étapes
suivantes :
5.1 [Migration] Modifier les habitats de P en se basant sur λ et μ.
5.2 [Mutation] A partir d‘une probabilité, l‘habitat i reçoit une mutation
5.3 [Réinsertion] Construire la population suivante P en choisissant les N
meilleurs habitats parmi ceux de P‘ et de Q.
6. [Test] Si le critère d‘arrêt est vérifié, stop, et retourne la meilleur solution de la
population sinon aller à l‘étape 2 pour la prochaine itération
Figure III.3 : l‘algorithme BBO de base [Simon, 2008b].
III.3.2.1 Les paramètres d’un BBO : [Simon, 2008a]
 La population : une population est un ensemble de n habitats
𝑃 = [𝐻1 , 𝐻2 , … , 𝐻𝑛 ]
III.1
 Habitat: un habitat H est une solution du problème, représenté généralement par
un vecteur de k (SIV) initialisé aléatoirement :
𝐻 = [𝑆𝐼𝑉1 , 𝑆𝐼𝑉2 , … , 𝑆𝐼𝑉𝑘 ]
III.2
38
l’approche BBO et NSBBO-II
Chapitre III
 Les variables d’index d’adéquation (SIV) : une SIV est une variable de type
entier, réelle, …etc.
 Index d’adéquation d’habitat (HSI : Habitat Suitability Index) : c‘est la
fonction du coût ou la fitness de l‘individu qui rend le degré d‘adaptation d‘un
habitat à son environnement.
𝐻𝑆𝐼𝑗 = 𝑓(𝐻𝑗 )
III.3
 Le taux d’immigration : 𝜆(𝐻𝑖 ) est le taux d‘entrée des variables SIV dans
l‘habitat i et peut être calculé en utilisant le modèle linéaire de migration:
𝑘
𝜆𝑘 = 𝐼 1 − 𝑁
𝜆𝑘 ∈ [0,1]
III.4
 Le taux d’émigration : 𝜇(𝐻𝑖 ) est le taux de sortie des variables SIV de l‘habitat i
tel que 𝜇𝑘 =
𝐸𝑘
𝜇𝑘 ∈ [0,1]
𝑁
III.5
Avec:
I est le taux maximum d‘immigration, E est le taux maximum d‘émigration, k est le rang
du de l‘habitat après le tri de la population, N est la taille de la population.
Notons que les équations III.4 et III.5 sont juste une méthode pour calculer λ et μ,
il y a d'autres options pour les assigner basées sur d‘autres modèles d'espèces [Simon,
2008a], [Gong et al, 2010]
III.3.2.2 Les étapes de la BBO :
III.3.2.2 .1 Etape d’initialisation des paramètres :
L‘algorithme utilise un certain nombre de paramètres fixés à l‘avance. Ces
paramètres sont résumés dans le tableau suivant :
Paramètre
Notation
n
La taille de la population
G
Le nombre de génération
I
Le taux maximum possible d‘immigration
E
Le taux maximum possible d‘émigration
𝒎𝒎𝒂𝒙
Le taux maximum de mutation
𝒔𝒎𝒂𝒙
Le nombre maximum des espèces que l‘habitat peut supporter
𝑷𝒎𝒐𝒅
La probabilité de modification des habitats définit par l‘utilisateur
Tableau III.2 : Les paramètres du BBO
39
l’approche BBO et NSBBO-II
Chapitre III
III.3.2.2.2 Codage, initialisation de la population et évaluation de la fonction HSI :
Et comme tout algorithme évolutionnaire, le BBO nécessite l‘étape de codage des
solutions, ainsi que l‘initialisation de la population. Ces étapes ainsi que l‘étape
d‘évaluation de la fonction du coût la fonction (HSI) peuvent être appliqué dans cet
algorithme de la même façon que tout autre EA décrit dans le chapitre 1.
III.3.2.2.3 Les opérateurs du BBO : L‘algorithme BBO se compose de deux étapes
principales : le partage d'informations (migration) et mutation [Ma et al, 2011]
 L’opérateur de migration : est opérateur probabiliste qui permet à une
bonne solution de partager l‘information (SIV) avec une mauvaise solution.
La migration des caractéristiques entre les individus est motivée par la
théorie mathématique de la migration des espèces en biogéographie. La
probabilité qu'un individu partage une caractéristique (SIV) avec le reste de
la population est proportionnelle à sa fitness. Quand une copie d‘une SIV s
d‘un individu 𝐻𝑗 remplace une SIV dans un individu 𝐻𝑖 , on dit que s a émigré
du 𝐻𝑗 et immigré au 𝐻𝑖 , c'est-à-dire : 𝐻𝑖 (𝑠) ← 𝐻𝑗 (𝑠)
III.6
L‘algorithme de migration est illustré dans la figure III.5 tel que rndreal (0.1)
est un nombre réel aléatoire uniformément distribué dans (0.1).
La figure III.4 décrit deux solutions S1 et S2 utilisant le modèle linéaire de
migration avec E=I. S1 est une mauvaise solution et S2 est une bonne
solution. La probabilité (taux) d‘immigration de S1 sera donc plus grande que
celle de S2, et la probabilité d‘émigration de S1 sera inférieur que celle de
S2. [Ma et al, 2011] [Simon, 2011b]
Figure III.4 : Illustration de deux solutionsS1 et S2 utilisant la migration
linéaire.
40
l’approche BBO et NSBBO-II
Chapitre III
Noter que si une bonne solution est obtenue dans la population, alors là peut
être une probabilité élevée que la population convergera vers cette solution
[Simon, 2011b]. On peut dire que l'opérateur de migration permet
de
partager efficacement l'information entre les solutions. Cependant, il manque
de la capacité d'exploration [Gong et al, 2010], i.e. il ne peut pas améliorer
la diversité de la population.
Figure III.5 Un algorithme de migration. [Gong et al, 2010]
 L’opérateur de mutation: est un opérateur probabiliste qui modifie
aléatoirement une SIV d‘une solution. La mutation peut améliorer la qualité
d‘une mauvaise solution. Le but de la mutation est d'augmenter la diversité
dans la population [Ma et al, 2011].
Un des algorithmes de mutation est illustré dans la figure III.6 tel que 𝑋𝑖 (𝑗)
est les jème SIV de la solution 𝑋𝑖 . 𝑚𝑖 est le taux de mutation calculé en
utilisant l‘équation III.7 suivante :
𝑝𝑖
𝑚𝑖 = 𝑚𝑚𝑎𝑥 1 −
,
𝑝𝑖 = 𝑝𝑚𝑎𝑥 = arg 𝑚𝑎𝑥 𝑝𝑖 , 𝑖 = 1. . 𝑛
𝑝𝑚𝑎𝑥
Figure III.6 Un algorithme de mutation [Gong et al, 2010].
41
Chapitre III
l’approche BBO et NSBBO-II
III.3.2.2 .4 La sélection : consiste à préserver les k meilleurs individus pour qu‘ils ne
soient pas détruire par l‘opérateur de migration cette étape est dite basé sur l‘élitisme
[Simon, 2008a].
III.3.2.2 .5 La réinsertion : consiste à préserver les N meilleurs individus parmi
l‘ensemble formé des individus obtenus par le BBO et ceux choisis par l‘élitisme.
III.3.2.2 .6 Critère d’arrêt : parmi les critères d‘arrêt, on cite :

Un nombre de génération maximal après lequel l‘algorithme sera arrêté.

L‘algorithme s‘arrête lorsque la qualité d‘un habitat soit supérieur ou égale à un
seuil fixé.
III.4 Applications des algorithmes BBO :
Le BBB a été utilisé dans le domaine du traitement d‘image par Harpreet Kaur et
Gaganpreet Kaur qui ont appliqué l‘algorithme BBO pour la segmentation des images
IRM dans leur travail [Kaur et al, 2013].
Jyoti Jain, Rameshwar Singh ont utilisé le BBO pour optimiser la transmission des
charge dans les systèmes d‘énergie [Jain et al, 2013]
[Lohokare et al, 2010] ont démontré la performance de l‘algorithme BBO pour
l'estimation du mouvement dans le codage vidéo. L'estimation du mouvement (Motion
Estimation) est une partie importante de n'importe quel système de compression de
vidéos.
Harish Kundra et Monica Sood ont fait une hybridation entre l‘algorithme BBO et
l‘algorithme PSO pour la recherche du plus court chemin et évitement d‘obstacles
[Kundra et al, 2010]
[Gong et al, Springer 2010] ont proposé un algorithme nommé DE/BBO qui est une
hybridation du DE avec le BBO pour résoudre le problème d‘optimisation numérique
globale. Differential evolution (DE) est un algorithme évolutionnaire rapide et robuste
pour l‘optimisation globale.
Les auteurs de l‘algorithme DE/BBO combine
effectivement l‘exploration de l‘algorithme DE avec l‘exploitation de l‘algorithme BBO,
et ils ont prouvé l‘efficacité de leur algorithme en lui appliquant sur 23 fonction
références.
[Hongwei et al, 2013] ont conçu nouvel algorithme BBO multi-objective et ils ont
appelé Biogeography-based multi-objective evolutionary algorithm (BBMOEA). Cet
algorithme utilise le principe de l‘algorithme SPEA2 et utilise les opérateurs du BBO.
Les auteurs ont simulé leur algorithme sur des fonctions références.
42
Chapitre III
l’approche BBO et NSBBO-II
[Zhi-dan et al, 2013] ont proposé un algorithme BBO multi-objective Et l‘appliqué pour
réguler les paramètres des contrôleurs PID d‘un bras manipulateur. L‘algorithme est
appelé multi-objective BBO (MBBO) et utilise un nouvel opérateur de migration.
Dans [Hai-Ping et al, 2012], les auteurs introduisent un algorithme BBO multi-objective
appelé Biogeography Based Multi-objective Optimizaition (BBMO) qui utilise la non
domination de Pareto pour affecter les rangs à chaque solution et adopte la crowding
distance pour préserver la diversité dans la population. Cet algorithme est différent de
l‘algorithme NSBBO-II du fait qu‘en BBMO on exécute à chaque fonction objectif i son
algorithme BBO i, et chaque fonction i a un nombre spécifique d‘ habitats. En répétant le
processus BBO i à chaque fonction i les solutions de chaque fonction i tendent à être
similaires. Elles se rassemblent pour construire leur archipel. Après ça, on exécute la
procédure de non domination de Pareto et la crowding distance à toutes les solutions
trouvées de tous les archipels pour construire la population de la génération suivante
III.5 Principe de l’algorithme NSBBO-II:
NSBBO (Elitist Non-dominated Sorting BBO) est un algorithme d‘optimisation
évolutionnaire multi- objectif introduit dans [Web 1]. Dans cet algorithme, le trie des
solutions trouvées à chaque itération est effectué en calculant seulement le rang des
solutions en se basant sur la dominance de Pareto.
L‘algorithme NSBBO-II utilise l‘approche de Pareto pour calculer le rang de
chaque solution ainsi que la crowding distance introduite par [Deb et al, 2002] pour
assurer la diversité des solutions.
Au début, une population initiale P0 contenant N habitats est générée aléatoirement,
puis elle subit un tri en utilisant le critère du rang de Pareto (décrit dans le chapitre
précédent) pour former les fronts successifs puis on calcule la distance de surpeuplement
«crowding distance » de tous les individus. Ensuite on constitue la population Q en
sélectionnant les k meilleurs individus, NSBBO-II utilise l‘élitisme qui est basé tout
d‘abord sur le choix des individus ayant un rang non-dominé, et qui utilise ensuite la
‗‗crowding distance‘‘ pour comparer deux solutions du même rang (cette mesure est
détaillée dans le chapitre précédent). Ensuite on calcule le taux de d‘émigration μ et le
taux d‘immigration λ de chaque habitat dans P. La population P‘ est obtenue en
appliquant les opérateurs de migration et de mutation en se basant respectivement sur les
probabilités λ, μ et 𝑚𝑖 .
Pour une génération t, la population des enfants P‘ est créée en utilisant la
population P de taille N. L‘étape de réinsertion consiste à réunir les deux populations P‘
et Q pour former la population mixte Rt. Cette population est triée selon le critère du
rang de Pareto pour former les fronts successifs. Par la suite, la nouvelle population P t+1
est créée et est remplie au fur et à mesure avec les différents fronts successifs. Comme la
taille de la population Rt est supérieur à N, les fronts successifs ne peuvent pas intégrer
en totalité la nouvelle population qui doit être de taille N. Ces fronts seront tout
simplement éliminés. Cependant, la taille du dernier front considéré peut être supérieure
43
Chapitre III
l’approche BBO et NSBBO-II
aux nombres de cases vides à remplir dans la nouvelle population. Dans ce cas, le critère
de surpeuplement ‗crowding distance‘ sera utilisé pour compléter la population et assurer
la diversité des solutions dans cette population. Pour choisir parmi les solutions du
dernier front, on favorise les solutions dans les régions les moins peuplées du front
considéré c'est-à-dire les solutions ayant la plus grande distance dans le but d‘améliorer
la diversité des solutions.
Après la construction de la population Pt+1, on examine la condition d‘arrêt.
III.6 Conclusion :
Dans ce chapitre on a présenté l‘algorithme
objectif, son principe de base et ses opérateurs.
BBO pour l‘optimisation mono-
L‘algorithme NSBBO-II est algorithme adapté aux problèmes d‘optimisation
multi-objectifs. Cet algorithme utilise les opérateurs de l‘algorithme BBO et adopte le
principe de dominance de Pareto et la crowding distance pour trier les solutions.
La mise en œuvre de l‘algorithme NSBBO-II fait l‘objet des du chapitre
application utilisé dans ce travail pour contrôler le bras manipulateur Puma560.
Le chapitre suivant présente le bras manipulateur Puma560, et quelques méthodes
de contrôle des bras manipulateurs.
44
Chapitre IV
Commande Des
Bras
Manipulateurs
Chapitre IV
Commande des bras manipulateurs
IV.1 Introduction
La robotique est le domaine scientifique et technologique qui étudie les
mécanismes, les actionneurs, les méthodes de commande et le traitement de
l'information à la conception et l'utilisation des robots y compris leurs déplacements
[Ben, 09].
Pour concevoir, simuler ou commander un robot, il est nécessaire, entre autres, de
disposer de modèles du mécanisme. Plusieurs niveaux de modélisation sont possibles. Ils
dépendent des spécifications du cahier des charges de l'application envisagée : il en
découle des modèles géométriques, cinématiques et dynamiques à partir desquels
peuvent être engendrés les mouvements du robot, ou bien des modèles statiques qui
décrivent les interactions du mécanisme avec son environnement [Khalil, 88].
IV.2 Définitions :
IV.2.1 Robot :
D‘après l'Association Française de Normalisation (AFNOR), un robot
est manipulateur commandé en position, reprogrammable, polyvalent (i.e., à usages
multiples), à plusieurs degrés de liberté, capable de manipuler des matériaux, des pièces,
des outils et des dispositifs spécialisés, au cours de mouvements variables et
programmés pour l'exécution d‘une variété de taches. Il a souvent l'apparence d'un
ou plusieurs bras se terminant par un poignet. Son unité de commande utilise,
notamment, un dispositif de mémoire et éventuellement de perception et
d'adaptation à l'environnent et aux circonstances. Ces machines polyvalentes sont
généralement étudiées pour effectuer la même fonction de façon cyclique et peuvent
être adaptées à d'autres fonctions sans modification permanente du matériel »
[Khalil, 88].
On peut aussi définir un robot comme un dispositif mécanique accomplissant
automatiquement des tâches généralement considérées comme dangereuses, pénibles ou
impossible pour les humains. Il peut être un manipulateur commandé en position et
orientation, reprogrammable, polyvalent, à plusieurs degrés de liberté [Khalil, 88] [Ben,
09].
IV.2.2 Robot manipulateur :
Un robot manipulateur est constitué de deux sous-ensembles distincts : un système
mécanique articulé et un ou plusieurs organes terminaux.

Le système mécanique articulé (S.M.A.) : est un mécanisme ayant une
structure plus ou moins proche de celle du bras humain. Il permet de remplacer,
ou de prolonger, son action (le terme « manipulateur » exclut implicitement les
robots mobiles autonomes). Son rôle est d'amener l'organe terminal dans une
situation (position et orientation) donnée, selon des caractéristiques de vitesse et
45
Chapitre IV
Commande des bras manipulateurs
d'accélération données. Son architecture est une chaîne cinématique de corps,
généralement rigides (ou supposés comme tels), assemblés par des liaisons
appelées articulations. Sa motorisation est réalisée par des actionneurs
électriques, pneumatiques ou hydrauliques qui transmettent leurs mouvements
aux articulations par des systèmes appropriés.
 Organe terminal : on regroupe tout dispositif destiné à manipuler des objets
(dispositifs de serrage, dispositifs magnétiques, à dépression, …), ou à les
transformer (outils, torche de soudage, pistolet de peinture, …). En d'autres
termes, il s'agit d'une interface permettant au robot d'interagir avec son
environnement. Un organe terminal peut être multifonctionnel, au sens où il
peut être équipé de plusieurs dispositifs ayant des fonctionnalités différentes. Il
peut aussi être monofonctionnel, mais interchangeable. Un robot, enfin, peutêtre multi-bras, chacun des bras portant un organe terminal différent. On
utilisera indifféremment le terme organe terminal, préhenseur, outil ou
effecteur pour nommer le dispositif d'interaction fixé à l'extrémité mobile de la
structure mécanique. Un robot enfin, peut-être multi-bras, chacun des bras portant
un organe terminal.
Figure IV.1 : Constituants d‘un robot.
IV.2.3 Degré de liberté ( ddl ) :
Le nombre de degrés de liberté que possède un manipulateur est le nombre des
variables indépendantes de position qui devraient être spécifiées afin de localiser toutes
les parties du mécanisme. C'est un terme général utilisé pour n'importe quel
mécanisme. [Craig, 2005]
Le nombre de liaisons détermine « le degré de liberté » (DDL) du manipulateur.
Typiquement un manipulateur doit posséder au moins six DDL indépendants : trois
46
Chapitre IV
Commande des bras manipulateurs
pour le positionnement et trois pour l‘orientation. Avec moins de six DDL le bras ne
peut pas atteindre chaque point dans son environnement de travail avec une orientation
donnée. [Alia, 2011].
IV.2.4 Articulation : [Khalil, 88]
Par définition, une articulation lie deux corps successifs en limitant le nombre de degrés
de liberté de l‘un par rapport à l'autre. Soit m le nombre de degré de liberté résultant,
encore appelé mobilité de l‘articulation. En robotique, le cas le plus fréquent, est lorsque
m=1, l'articulation est dite simple soit retorde, soit prismatique.
 Articulation rotoïde (notée R) :
Il s'agit d'une articulation de type pivot réduisant le mouvement entre deux corps à une
rotation autour d'un axe qui leurs est commun La situation relative entre les deux corps
est donnée par l'angle autour de l‘axe.

Articulation prismatique (notée P) :
Il s'agit d'une articulation de type glissière réduisant le mouvement relatif entre les
deux corps à une translation le long d'un axe. La situation relative entre les deux corps
est mesurée par une distance.
Figure IV.2 : Représentation symbolique des articulations [Alia, 2011].
IV.2.5 Espace articulaire : On appelle espace de configuration articulaire d'un robot
manipulateur (ou simplement configuration) l'état du robot représentant la situation
de ses différents corps. Pour représenter celle-ci, la solution adoptée consiste à
associer à chaque articulation une ou plusieurs variables (variables articulaires ou
coordonnées articulaires). La dimension N de cet espace est égale au nombre de
variables articulaires indépendantes et correspond au nombre de degré de liberté de la
structure mécanique
47
Chapitre IV
Commande des bras manipulateurs
IV.2.6 Espace opérationnel : l'espace opérationnel est celui dans lequel est
représentée la situation de l'organe terminal. Les variables ou coordonnées
permettant de définir la situation de l‘OT sont appelées les coordonnées
opérationnelles. La dimension M de cet espace est définie par le nombre de degrés de
liberté maximum que peut avoir l'organe terminal, est égale au nombre de paramètres
indépendants nécessaires pour décrire la situation de l'organe terminal dans l'espace.
Dans le cas général, M est au plus égal à 6, et on a : M≤N et M≤6.
IV.2.7 Porteur et poignet :
On convient d‘appeler les trois premiers degrés de liberté d‘un robot (partant de
la base du robot) « le Porteur du robot ». Les degrés de liberté résiduels for ment
le poignet, caractérisé par des dimensions beaucoup plus petites et une plus
faible masse.
Le porteur a pour rôle de fixer la position du point d'intersection, noté P, des
axes des 3 dernières articulations (centre du poignet), cette position (P) ne
dépend que de la configuration des solides (corps) 1, 2 et 3 (i.e., du porteur).
Le poignet est destiné à l'orientation de l'organe terminal (pince, outil).
Figure IV.3 : Représentation du porteur et du poignet d‘une structure
articulée.
48
Chapitre IV
Commande des bras manipulateurs
IV.3 Histoire de Robotique
Le terme « ROBOT » a été présenté pour la première fois dans le vocabulaire par
l‘écrivain tchèque KarelCapek dans son œuvre « les Robots Universels de Rossum » en
1920, le mot « ROBOTA » étant le mot tchèque désignant le travail. Depuis lors le terme
a été appliqué pour désigner une grande variété de dispositifs mécaniques, tel que les
téléopérateurs, véhicules sous-marins, explorateurs autonomes, etc. Pratiquement tout ce
qui fonctionne avec un degré d'autonomie, sous le contrôle d'un ordinateur, est appelé
robot.
Les téléopérateurs, ou les dispositifs maître-esclave, ont été développés pendant la
deuxième guerre mondiale pour manipuler les matériaux radioactifs.
Le contrôle numérique par ordinateur (CNC) a été développé à cause de la haute
précision exigée dans l'usinage de certains articles, comme les composants de haute
performance sur les avions.
Plusieurs faits marquants l‘histoire de la technologie des robots sont présentés ci-dessous.
1947 –Développement du premier téléopérateur asservi alimenté électriquement.
1948 - Développement d‘un téléopérateur incluant des réactions de force.
1949 - La recherche sur la fraiseuse numériquement contrôlée est amorcée.
1954 - George Devol conçoit le premier robot programmable.
1956 - Joseph Engelberger, un étudiant de physique de l‘université de la Colombie,
achète les droits du robot de Devol et fonde la Société « Unimation ».
1961 - Le premier robot « Unimate » est installé à Trenton au New Jersey dans l'usine de
General Motors pour unepresse métallique.
1961 - le premier robot incorporant des réactions de force est développé.
1963 - le premier système de vision de robot est développé.
1971 - le Bras Stanford est développé à l'université Stanford.
1973 - le premier langage de programmation robotique (WAVE) est développé à
Stanford.
1974 - Cincinnati Milacron a présenté le robot T3 avec le contrôle d'ordinateur.
1975 - Unimation Inc. enregistre son premier bénéfice financier.
49
Chapitre IV
Commande des bras manipulateurs
1976 –« Le système compliant actif à centre éloigné » (Remote Center Compliance
RCC) est développé au Laboratoires de Drapier à Boston pour l‘assemblage de pièces.
1976 - Les bras de robot sont employés sur le Viking I et II dans la recherche spatiale et
l‘atterrissage sur la planète Mars.
1978 - Unimation présente le robot de PUMA, basé sur des conceptions de General
Motors
1979 - la conception du robot SCARA est présentée au Japon
1981 - Le premier robot Direct Drive est développé à l'Université Carnegie-Mellon
1982 - FANUC du Japon et le General Motors forment la société GMFANUC pour
commercialiser les robots en Amérique du Nord.
1983 –la société Adept Technology est fondée et commercialise avec succès le robot
Direct Drive.
1986 - le robot sous-marin, Jason, de l'Institut Océanographique Woods-Hole, explore
l'épave du Titanic, trouvé une année plus tôt par le docteur Robert Bernard.
1988 –Le Stäubli-Groupachète Unimation de Westinghouse.
1988 - La Société IEEE Robotics and Automation est formée.
1993 - le robot expérimental, ROTEX, de l'Agence Spatiale allemande (DLR) est
emporté à bord de la navette spatiale Colombie et exécute une variété de tâches en mode
télé-opéré et en modes autonome.
1996 - Honda dévoile son robot Humanoïde; un projet commencé dans secret en 1986
1997 - la première compétition de football de robot, RoboCup-97, est tenue dans Nagoya
au Japon. 40 équipes du monde entier sont représentées.
1997 - le robot mobile Sojourner voyage pour la planète Mars dans la mission de la
NASA Path Finder.
2001 - Sony commence la production en masse du premier robot de compagnie, un robot
chien nommé Aibo qui signifie ami ou compagnon en japonais.
2001 - le Système de commande à distance de station spatiale (SSRMS) est lancé dans
l'espace à bord de la navette spatiale Endeavor pour faciliter la construction continue de
la Station spatiale.
2001 –la première télé-chirurgie exécutée par des chirurgiens à New York sur une femme
se trouvant à Strasbourg en France, ces derniers ont exécuté une laparoscopie
(déplacement de la vésicule biliaire).
50
Chapitre IV
Commande des bras manipulateurs
2001 - Les robots sont employés pour chercher des victimes au World Trade Center après
l‘attentat du 11 septembre 2001.
2002 - Le robot Humanoïde de Honda ASIMO (le premier robot pouvant marcher
indépendamment avec des mouvements relativement lisses et pouvant monter à l'escalier)
sonne la cloche d‘ouverture de Bourse aux actions de New York le 15 février.
2003- SONY sort l'AIBO ERS-7, la 3ème génération de l'animal de compagnie robotisé.
2004 - Epson sort le robot le plus petit, pesant 0.35 onces (10 gr) et mesurant 2.8 pouces
(70 mil) dans la hauteur, le Robot Micro Volant est dévoilé comme le robot hélicoptère le
plus léger et le plus petit au monde. La société espère qu'il sera employé comme "une
caméra volante" pendant des catastrophes naturelles.
2005 - Les chercheurs à l'université Cornell New York USA prétendent avoir construit le
premier robot pouvant se dupliquer.
2005 - Depuis le 6 octobre dans l'Aquarium de Londres trois poissons robotisés nagent
dans un réservoir spécialement conçu. [Alia, 2011].
IV.4 Le domaine d'application des robots :
Le domaine le plus large projeté pour les futures applications des robots est dans
l‘assemblage. Donc, les robots sont souvent classés par domaine d'application: dans
l'assemblage ou non. Les robots d'assemblage ont tendance à être petit, commandé
électriquement. Les principaux domaines d'applications, jusqu'à présent, des robots de
non-assemblage ont été dans la soudure, la peinture par spray, le maniement de matériels,
et la charge et décharge de machines [Alia, 2011].
IV.5 Description de la situation d’un solide dans l’espace :
Un solide indéformable et libre dans l'espace possède 6 six degrés de liberté : il est en
effet nécessaire pour le positionner et l‘orienter à un instant donné de fixer six paramètres
indépendants :


Trois paramètres indépendants définissent la position d'un point, noté P, du
solide (coordonnées cartésiennes, cylindriques, sphériques, …, dans la base du
repère fixe),
Trois paramètres indépendants déterminent l'orientation du solide autour du point
P (angles d'Euler, paramètres d'Euler, …).
51
Chapitre IV
Commande des bras manipulateurs
Figure IV.4. Transformation de repères
Plusieurs méthodes existent pour définir la situation d‘un solide dans l‘espace parmi
lesquelles on cite : les coordonnées cartésiennes, cylindriques ou sphériques pour le
positionner, et le système d‘angles d‘Euler, les cosinus directeurs ou les paramètres
d‘Euler pour l‘orienter.
On va citer une méthode pour la position (les coordonnées cartésiennes) et une autre pour
l‘orientation (les angles d‘Euler).
 Les
coordonnées
cartésiennes :
elles
donnent
directement
les
composantes𝑃𝑥 ,𝑃𝑦 , 𝑃𝑧 de la position de l‘origine du repère associé au solide.
 Les angles d’Euler classiques : l‘orientation d‘un repère orthonormé Rn (lié au
solide) par rapport au repère fixe Ro est spécifiée par trois angles Ψ (Psi) θ (thêta)
φ (phi), correspondant à une séquence de trois rotations. De tels angles sont très
utilisés en mécanique.
Les angles sont définis dans la figure IV.5 suivante, selon la convention (z, y, z), comme
suit, soient :
- une rotation d'un angle Ψ, appelé lacet (yaw en anglais), autour de l'axe Oz,
- une rotation d'un angle θ, appelé tangage (pitch en anglais), autour de l'axe Oy',
- une rotation d'un angle φ, appelé roulis (roll en anglais), autour de l'axe Oz''.
52
Chapitre IV
Commande des bras manipulateurs
Figure IV.5 : Angles d‘Euler.
La composition de ces trois rotations permet de calculer la matrice d‘orientation :
𝐴𝐸𝑢𝑙𝑒𝑟 = 𝐴 𝑧, 𝛹 𝐴 𝑥, 𝜃 𝐴 𝑧, 𝛷 =
𝑐𝑜𝑠 𝜓 𝑐𝑜𝑠 𝜙 − 𝑠𝑖𝑛 𝜓 𝑐𝑜𝑠 𝜃 𝑠𝑖𝑛 𝜙
𝑠𝑖𝑛 𝜓 𝑐𝑜𝑠 𝜙 + 𝑐𝑜𝑠 𝜓 𝑐𝑜𝑠 𝜃 𝑠𝑖𝑛 𝜙
𝑠𝑖𝑛 𝜃 𝑠𝑖𝑛 𝜙
− 𝑐𝑜𝑠 𝜓 𝑠𝑖𝑛 𝜙 − 𝑠𝑖𝑛 𝜓 𝑐𝑜𝑠 𝜃 𝑐𝑜𝑠 𝜙
− 𝑠𝑖𝑛 𝜓 𝑠𝑖𝑛 𝜙 + 𝑐𝑜𝑠 𝜓 𝑐𝑜𝑠 𝜃 𝑐𝑜𝑠 𝜙
𝑠𝑖𝑛 𝜃 𝑐𝑜𝑠 𝜙
𝑠𝑖𝑛 𝜓 𝑠𝑖𝑛 𝜃
− 𝑐𝑜𝑠 𝜓 𝑠𝑖𝑛 𝜃
IV.1
𝑐𝑜𝑠 𝜃
La matrice de transformation T peut se mettre sous forme :
𝑇=
Telle que 𝑃 =
matrice 𝑠
𝑛
𝑃𝑥
𝑃𝑦
𝑃𝑧
𝑆𝑥
𝑆𝑦
𝑆𝑧
𝑛𝑥
𝑛𝑦
𝑛𝑧
𝑎𝑥 𝑃𝑥
𝑎𝑦 𝑃𝑦
𝑎𝑧 𝑃𝑧
IV.2
est le vecteur de position du point de l‘origine du repère et la
𝑎 est la matrice d′ oriientation.
Avec l‘ajout du vecteur ligne (0
0 0 1) à la matrice T, on obtient :
𝑃
𝐴
𝑇=
0
0
0
1
IV.3
53
Chapitre IV
Commande des bras manipulateurs
IV.6 Description de la structure géométrique des robots manipulateurs :
Ce paragraphe introduit une procédure qui sera utilisée pour décrire la structure
géométrique des robots manipulateurs, et qui par conséquent est la base de la mise en
équation des tous les modèles des robots manipulateurs. Ces notations conviennent aussi
bien pour les chaines ouvertes simples que les chaines arborescentes ou fermées.
La modélisation des robots manipulateurs nécessite une description de la structure
morphologique du robot, en outre il existe plusieurs descriptions géométriques, la plus
répandue et la plus utilisée est celle de Denavit-Hartemberg [Khalil, 88]
IV.6.1 Notions et règles générales :
Pour décrire la structure géométrique d‘un robot manipulateur à chaine ouverte simple,
un ensemble de règles générales doit être énoncé :
 La variable de l‘articulation j est notée 𝑞𝑗
 Le corps j est noté 𝐶𝑗
 Les corps sont supposés parfaitement rigides, ils sont connectés par des
articulations soient rotoides soient prismatiques.
 Le repère 𝑅𝑗 est lié au corps 𝐶𝑗
 L‘axe 𝑍𝑗 du repère 𝑅𝑗 est porté par l‘axe de l‘articulation j pour les robots à
chaines ouvertes simple.
 Le repère 𝑅𝑗 fixé au corps 𝐶𝑗 est définit comme suit :
 L‘axe 𝑍𝑗 est porté par l‘axe de l‘articulation j
 L‘axe 𝑋𝑗 est porté par la perpendiculaire commune aux axes 𝑍𝑗 et 𝑍𝑗 −1
Figure IV.6 : Structure des robots manipulateurs à chaines ouverte simple.
54
Chapitre IV
Commande des bras manipulateurs
IV.6.2 Description géométrique :
Le système est composé de n+1 corps notés : 𝐶0 … 𝐶𝑛 et l‘organe terminal, reliés
entre eux par des articulations. A chaque corps 𝐶𝑗 on associe le repère𝑅𝑗 dont :
 L‘axe 𝑍𝑗 est porté par l‘axe de l‘articulation j
 L‘axe 𝑋𝑗 est porté par la perpendiculaire commune aux axes 𝑍𝑗 et 𝑍𝑗 −1 est orienté
de façon arbitraire.
 A partir du paramétrage de Denavit-Hertenberg on peut exprimer le passage d‘un
repère 𝑅𝑗 −1 à un repère 𝑅𝑗 comme une fonction de quatre paramètres suivants :
1.
𝛼𝑗 : angle entre les axes 𝑍𝑗 −1 et 𝑍𝑗 , correspondant à une rotation autour de
𝑋𝑗 −1
2. 𝑑𝑗 : distance entre 𝑍𝑗 −1 et 𝑍𝑗 , le long de 𝑋𝑗 −1
3.
𝜃𝑗 : angle entre les axes 𝑋𝑗 −1 et 𝑋𝑗 , correspondant à une rotation autour de
𝑍𝑗
4. 𝑟𝑗 : distance entre 𝑋𝑗 −1 et 𝑋𝑗 , le long de 𝑍𝑗
Figure IV.7 : Le paramétrage de Denavit-Hertemberg
La variable articulaire qj associée à la jème articulation sera 𝜃𝑗 , si l‘articulation est
rotoide ou 𝑟𝑗 si l‘articulation est prismatique. En introduisant la variable booléenne
𝜎𝑗 définit par :
𝜎𝑗 = 0 ∶ 𝑆𝑖 𝑙 ′ 𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑎𝑡𝑖𝑜𝑛𝑒𝑠𝑡 𝑟𝑜𝑡𝑜𝑖𝑑𝑒
𝜎𝑗 = 1 ∶ 𝑆𝑖 𝑙 ′ 𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑎𝑡𝑖𝑜𝑛 𝑒𝑠𝑡 𝑝𝑟𝑖𝑠𝑚𝑎𝑡𝑖𝑞𝑢𝑒
On peut alors écrire :
IV.4
55
Chapitre IV
Commande des bras manipulateurs
On forme maintenant la matrice de transformation homogène relative à
l‘articulation j,𝑇𝑗 −1,𝑗 conformément au paramétrage de Denavit-Hertemberg comme
suit :
IV.5
IV.7 Modélisation des bras manipulateurs :
La conception et la commande des robots nécessitent le calcul de certains modèles
mathématiques, tels que :
 Le modèle géométrique direct et inverse.
 Le modèle différentiel direct et inverse.
 Le modèle dynamique direct et inverse.
IV.7.1 Le modèle géométrique direct (MGD):
Le modèle géométrique direct (MGD) est l‘ensemble des relations qui permettent
d‘exprimer la situation de l‘organe terminal du bras en fonction de ses coordonnées
articulaires, autrement dit exprimer les coordonnées opérationnelles en fonctions des
coordonnées articulaires. Le MGD du robot s‘écrit :
𝑋=𝑓 𝑞
𝐼𝑉.6
La situation de l‘organe terminal est définie par m coordonnées :
𝑋 = [𝑥1 𝑥2 … 𝑥𝑚 ]𝑇
𝐼𝑉. 7
Les variables articulaires sont définies par :
𝑞 = [𝑞1 𝑞2 … 𝑞𝑛 ]𝑇
𝐼𝑉. 8
IV.7.2 Le modèle géométrique inverse (MGI) :
Le modèle géométrique inverse (MGI) permet de calculer les coordonnées articulaires
qui amènent l‘organe terminal dans une situation désirée, spécifiée par ses coordonnées
opérationnelles. Cette opération est souvent appelée transformation de coordonnées. Le
MGI s‘écrit :
𝑞 = 𝑓 −1 𝑋
𝐼𝑉. 9
56
Chapitre IV
Commande des bras manipulateurs
Nombres de solutions au MGI : pratiquement trois cas se présentent :
 Absence de solution lorsque la situation de l(organe terminal est en dehors
de la zone accessible du robot.
 Infinité de solutions lorsque
 Le robot est redondant vis-à-vis de la tâche.
 Le robot est en configuration singulière.
 Solutions en nombre fini lorsque toutes les solutions peuvent être calculées
sans ambigüité la forme explicite est alors un ensemble de
vecteurs 𝑞1 𝑞2 … 𝑞𝑟 qui satisfont l‘équation:
𝑋 = 𝑓 𝑞𝑖
𝑖 = 1, … , 𝑟
𝐼𝑉. 10
IV.7.3 Le modèle différentiel direct (MDD) :
Le modèle différentiel direct d‘un robot manipulateur décrit les variations élémentaires
des coordonnées opérationnelles en fonction des variations élémentaires des coordonnées
articulaires. Autrement dit, exprimer les différentielles des coordonnées opérationnelles
en fonction des différentielles des coordonnées généralisées. Il est noté :
𝑑𝑋 = 𝐽 𝑞 𝑑𝑞
𝐼𝑉. 11
Où J(q) désigne la matrice jacobéenne de dimension (𝑚 × 𝑛) du mécanisme, égale à
𝜕𝑋
𝜕𝑞
et fonction de la configuration articulaire q.
Le MDD est appelé aussi le modèle variationnel ou encore modèle incrémental.
IV.7.4 Le modèle différentiel inverse (MDI) :
Le modèle différentiel inverse permet de déterminer les vitesses articulaires 𝑞 qui
assurent au repère terminal une vitesse 𝑋 spécifiée, on écrit
𝑑𝑞 = 𝐽 𝑞
−1
− 𝑑𝑋
𝐼𝑉. 12
Ce modèle est calculable à condition que 𝐽 𝑞 soit inversible.
IV.7.5 Le modélisation dynamique des robots manipulateurs :
On s‘intéresse ici aux couples des actionneurs produit par les mouvements du robot
manipulateur. Il s‘agit d‘établir les équations différentielles non linéaires qui relient les
couples actionneurs 𝜏𝑗 𝑡 aux variables𝑞𝑗 𝑡 , aux vitesses articulaires𝑞𝑗 𝑡 . L‘ensemble
de ces équations constitue ce qu‘il est d‘usage d‘appeler le modèle dynamique du robot
manipulateur. Deux exploitation du de ce modèle sont possibles [Cha, 04]:
57
Chapitre IV
Commande des bras manipulateurs
 Le modèle dynamique inverse :
Appelé aussi le modèle dynamique et est représenté par la relation suivante :
𝜏 = 𝑓 𝑞, 𝑞, 𝑞, 𝐹
𝐼𝑉. 13
𝜏 : Vecteur des couples / forces des actionneurs.
𝑞 : Vecteur des positions articulaires.
𝑞 : Vecteur des vitesses articulaires.
𝑞 : Vecteur des accélérations articulaires.
𝐹 : Effort extérieur à exercer par l‘organe terminal.
 Le modèle dynamique direct :
Est celui qui exprime les accélérations en fonction des positions, vitesses et couples des
actionneurs. Il est représenté par la relation suivante :
𝑞 = 𝑔 𝑞, 𝑞, 𝜏, 𝐹
𝐼𝑉. 14
Plusieurs formalismes ont été utilisés pour obtenir le modèle dynamique des robots
manipulateurs, les plus souvent utilisés sont :


Le formalisme de Newton-Euler.
Le formalisme de Lagrange.
Le formalisme de Lagrange : décrit les équations du mouvement en termes de travail et
d‘énergie du système, ce qui se traduit, lorsque l‘effort extérieur sur l‘organe terminal est
supposé nul, par l‘équation suivante :
𝑑 𝜕𝐿
𝜏𝑖 = 𝑑𝑡
𝜕𝑞 𝑖
𝜕𝐿
− 𝜕𝑞
𝑖
𝑖 = 1, … , 𝑛
𝐼𝑉. 15
Avec
𝜏𝑖 : Couple correspondant à l‘articulation i.
L : Lagrangien du système égal à (E-U).
E : Energie cinétique totale du système.
U : Energie potentielle du système.
L‘énergie cinétique totale du système E est une fonction quadratique des vitesses
articulaires.
𝐸 = 1/2 𝑞𝑇 𝐴 𝑞
𝐼𝑉. 16
A : est la matrice (n ×n) de l‘énergie cinétique d‘éléments génériques 𝐴𝑖𝑗 , appelée aussi
matrice d‘inertie du robot, qui est symétrique et définie positive. Ses éléments sont
fonctions des variables articulaires q.
L‘énergie potentielle étant, elle aussi, fonction des variables articulaires q, le
couple 𝜏𝑖 peut se mettre, à partir des équations (IV.15) et (IV.16), sous la forme :
𝜏𝑖 = 𝐴𝑖1 … 𝐴𝑖𝑛 𝑞 + 𝑞 𝑇
𝜕𝐴𝑖1 𝜕𝐴𝑖𝑛
1
𝜕𝐴
𝜕𝑈
…
𝑞 − 𝑞𝑇
𝑞+
𝜕𝑞
𝜕𝑞
2
𝜕𝑞𝑖
𝜕𝑞𝑖
𝐼𝑉. 17
58
Chapitre IV
Commande des bras manipulateurs
Ou encore :
𝜏𝑖 = 𝐴𝑖1 … 𝐴𝑖𝑛 𝑞 + 𝐵𝑖,12 𝑞1 𝑞2 + ⋯ + 𝐵𝑖,1𝑛 𝑞1 𝑞𝑛 + 𝐵𝑖 ,23 𝑞2 𝑞3 + ⋯ + 𝐵𝑖,(𝑛−1)𝑛 𝑞𝑛−1 𝑞𝑛 ]
+ [𝐶𝑖1 𝑞12 + ⋯ 𝐶𝑖𝑛 𝑞𝑛2 ] + 𝑔𝑖
𝐼𝑉. 18
Sous forme matricielle, l‘équation IV.18 devient :
𝜏 = 𝐴𝑞 + 𝐵 𝑞𝑞 + 𝐶 𝑞2 + 𝐺
𝐼𝑉. 19
Avec :
B : Matrice des termes de Coriolis, d‘éléments génériques 𝐵𝑖 ,𝑗𝑘 . Elle est de dimension
(n ×n (n-1)/2).
C : Matrice des termes centrifuges, d‘éléments génériques 𝐶𝑖𝑗 . Elle est de dimension n ×n.
𝑞 𝑞 = [𝑞1 𝑞2 … 𝑞1 𝑞𝑛 𝑞2 𝑞3 … 𝑞𝑛−1 𝑞𝑛 ]𝑇
𝑞2 = [𝑞12 , … , 𝑞𝑛2 ]𝑇
𝐼𝑉. 20
𝐼𝑉. 21
𝐺 = [𝑔1 … 𝑔𝑛 ]𝑇 , vecteur des forces de gravité.
𝐵𝑖,𝑗𝑘 =
𝜕𝐴𝑖𝑗 𝜕𝐴𝑖𝑘 𝜕𝐴𝑗𝑘
+
−
𝜕𝑞𝑘
𝜕𝑞𝑗
𝜕𝑞𝑖
𝐼𝑉. 22
𝐶𝑖𝑗 =
𝜕𝐴𝑖𝑗 1 𝜕𝐴𝑗𝑗
−
𝜕𝑞𝑗
2 𝜕𝑞𝑖
𝐼𝑉. 23
𝑔𝑖 =
𝜕𝑈
𝜕𝑞𝑖
𝐼𝑉. 24
𝑞𝑖2
2
𝐼𝑉. 25
𝐴𝑖𝑖 =
𝐴𝑖𝑗 = 𝑞𝑖 𝑞𝑗 ,
𝑖≠𝑗
𝐼𝑉. 26
Les éléments de A, B, C et G s‘appellent les coefficients dynamiques du robot. Ils sont
fonction des paramètres géométriques et inertiels du mécanisme.
Jusqu‘à présent, on a supposé qu‘il n‘avait pas des frottements et des perturbations
extérieures agissant sur le robot manipulateur, mais en réalité ces efforts extérieurs
existent, par conséquent le modèle dynamique devient :
𝜏 = 𝐴𝑞 + 𝐵 𝑞𝑞 + 𝐶 𝑞2 + 𝐺 + 𝑓 + 𝜏𝑑
𝐼𝑉. 27
Avec :
59
Chapitre IV
Commande des bras manipulateurs
𝑓 : Est le vecteur des frottements.
𝑓 = 𝐹𝑣 𝑞 + 𝐹𝑠 𝑠𝑖𝑔𝑛 𝑞
𝐼𝑉.28
𝐹𝑣 : Est le vecteur des coefficients visqueux.
𝐹𝑠 : Est le vecteur des coefficients sec.
𝜏𝑑 : Est le vecteur des couples dû aux perturbations extérieures.
L‘approche de Lagrange s‘était exposée pour calculer le modèle dynamique inverse,
alors qu‘en simulation on a besoin du modèle dynamique direct pour simuler le
comportement du bras manipulateur et sa loi de commande.
A partir de l‘équation 𝐼𝑉. 19 et on supposant l‘existence d‘un effort extérieur sur
l‘organe terminal, on peut en expliciter la forme du modèle dynamique direct :
𝑞 = 𝐴−1 −𝐵 𝑞𝑞 − 𝐶 𝑞2 − 𝐺 − 𝐹 + 𝜏
𝐼𝑉. 29
Cette forme se prête bien à l‘intégration numérique dans des structures de simulation
comme celle indiquée à la figure suivante :
,
Génération
de
trajectoire
𝒒𝒅
Loi
de
commande
𝝉
Modèle
dynamique
direct
𝒒
Intégration
numérique
𝒒, 𝒒
Figure IV.8 : Boucle de simulation. [Khalil, 88]
IV.8 Génération de mouvement (trajectoire) :
Un robot est amené à réaliser trois classes de taches : des déplacements purs, des efforts
purs en statique et des taches compliantes combinant des déplacements et des efforts.
Dans cette partie, on va décrire que les méthodes de génération de mouvement des
consignes destinées au contrôleur du robot dans le cas de déplacement purs.
Lors d‘une tache de déplacement, on attend du robot qu‘il suive, avec une loi horaire
donnée, une trajectoire définie par une suite de repères, appelés points, correspondant
aux situations successives de l‘organe terminal.
Parmi les taches de déplacements purs, on peut citer :
60
Chapitre IV
Commande des bras manipulateurs
 Les mouvements entre deux points, la trajectoire n‘étant pas contrainte entre les
points (mouvement libre).
 Les mouvements entre deux points via des points intermédiaires, la trajectoire est
libre entre les points intermédiaires.
 Les mouvements entre deux points, la trajectoire étant contrainte entre les points
(trajectoire rectiligne par exemple).
 Les mouvements entre deux points via des points intermédiaires, la trajectoire
étant contrainte entre les points intermédiaires.
 La poursuite d‘un objet mobile sur un convoyeur ou, plus généralement,
l‘asservissement des mouvements du robot à des consignes issues de capteurs
extéroceptifs…
Dans les deux premiers cas, la génération de mouvement peut se faire directement
dans l‘espace articulaire : elle se traduit par une séquence de positions articulaires (voire
de vitesses et d‘accélérations) constituant les consignes des asservissements. Dans les
trois derniers cas, la trajectoire étant décrite dans l‘espace opérationnel, il est préférable
de raisonner dans cet espace. La loi de commande engendrée doit ensuite être
transformée en consignes articulaires par le changeur de coordonnées.
𝑞𝑓
Génération de
mouvement en q
𝑞 𝑑 (𝑡)
+
Asservissement
𝑞𝑖
Figure IV.9 : Génération de mouvement dans l‘espace articulaire
𝑋𝑓
𝑞𝑖
Génération
de
mouvement
en X
𝑞 𝑑 (𝑡)
𝑋 𝑑 (𝑡)
+
MGI
Asservissement
-
𝑋𝑖
MG
D
Figure IV.10: Génération de mouvement dans l‘espace opérationnel
Dans ce mémoire, on s‘intéresse à la génération de mouvement entre deux points
dans l‘espace articulaire.
61
Chapitre IV
Commande des bras manipulateurs
On considère un robot à n degré de liberté. Soit 𝑞𝑖 et 𝑞 𝑓 les vecteurs des
coordonnées articulaires correspondant aux configurations initiales et finales. Le
mouvement, interpolé entre 𝑞𝑖 et 𝑞 𝑓 en fonction du temps t, est décrit par l‘équation
suivante :
q t = qi + r t ∗ D
0 ≤ 𝑡 ≤ 𝑡𝑓
𝐼𝑉. 30
Avec :
D = qf − qi
𝐼𝑉. 31
Les valeurs aux limites de la fonction d‘interpolation r(t) sont données par :
𝑟 0 =0
𝑟 𝑡𝑓 = 1
Plusieurs fonctions permettent de satisfaire le passage par qi et par qf à 𝑡𝑓 . Parmi
lesquelles [Craig, 86] [Craig, 2005], on cite :
 Interpolation linéaire :
𝑡
𝑞 𝑡 = 𝑞𝑖 + 𝐷
𝑡𝑓
 Polynôme de degré trois :
r t = 3 t tf 2 − 2 t tf 3
𝐼𝑉. 32
0 ≤ t ≤ tf
IV. 33
 Polynôme de degré cinq :
r t = 10 t t f
3
− 15 t t f
4
+ 6 t tf
5
0 ≤ t ≤ tf
IV. 34
IV.9 Commande des bras manipulateurs :
La synthèse de la commande doit permettre le calcul des consignes à appliquer aux
actionneurs pour que l‘organe terminal puisse réaliser un mouvement spécifier [Cha,
2004]. Les principales approches utilisées pour la commande des bras manipulateurs
sont :
Différentes techniques sont utilisées pour la commande des bras manipulateurs. La
conception mécanique du bras manipulateur a une influence sur le choix du schéma de
commande. Un robot manipulateur est une structure mécanique complexe dont les
inerties par rapport aux axes des articulations varient non seulement en fonction de la
charge mais aussi en fonction de la configuration, des vitesses et des accélérations.
Deux types de mouvements apparaissent quand on parle de commande du bras
manipulateur. Un premier type considère que les mouvements nécessaires pour la
réalisation de la tâche sont exécutés dans l‘espace libre. Le deuxième type considère des
mouvements spécifiques avec des forces de contact pour l‘organe terminal qui se déplace
dans un espace contraint. Toute tâche de robotique de service est réalisée par une
combinaison de ces deux types de mouvement.
62
Chapitre IV
Commande des bras manipulateurs
Dans ce mémoire, on va présenter quelques techniques de commande dans l‘espace
libre. [Her, 2007]
IV.9.1. Commande classique PID:
Cette technique est presque la commande de tous les robots industriels. Ses avantages
sont la facilité d‘implantation et le faible coût en calcul, en contrepartie, la réponse
temporelle du robot variant selon sa configuration, on constate des dépassements de
consignes et une mauvaise précision de suivi dans les mouvements rapides. Dans bon
nombre d‘applications ces inconvénients ne représentent pas un gros handicap. En
pratique, une telle commande est réalisée numériquement par un ou plusieurs
microprocesseurs selon le schéma de la figure IV.11 [Khalil, 88] [Her, 2007]
- 𝜀
𝑞𝑑
𝑘𝑝
+
𝑘𝑖 ⨜
𝜀
𝑞
+
Robot
+
𝑞𝑑
+
+
𝑞
𝑘𝑑
-
Figure IV.11 : Schéma classique d‘une commande PID
La loi de commande est donnée par :
𝜏 = 𝑘𝑝 𝑞𝑑 − 𝑞 + 𝑘𝑑 𝑞𝑑 − 𝑞 + 𝑘𝑖
𝑡𝑓 𝑑
(𝑞
0
− 𝑞)𝑑𝑡
𝐼𝑉. 35
𝑘𝑝 , 𝑘𝑑 𝑒𝑡 𝑘𝑖 Sont des matrices diagonales, de dimension (n × n), contenant
respectivement les gains proportionnels 𝑘𝑝𝑗 dérivés 𝑘𝑑𝑗 et intégraux 𝑘𝑖𝑗 .
IV.9.2 Commande par découplage non linéaire
Cette technique est aussi connue sous les noms de commande dynamique ou commande
par couple calculé ou computed torque. Lorsque l‘application exige des évolutions
rapides avec des contraintes dynamiques, la commande doit prendre en compte les forces
d‘interaction. Ce type de technique considère l‘ensemble des articulations et, pour les
découpler, utilise la théorie du découplage non linéaire et elle permet la commande dans
l‘espace des articulations ou dans l‘espace cartésien. Théoriquement, il assure le
découplage et la linéarisation des équations du modèle se traduisant par une réponse
uniforme quelque soit la configuration du robot. Les calculs en ligne sont maintenant à
la portée des calculateurs rapides actuels [Her, 2007] [Khalil, 88] [Cha, 2004]
63
Chapitre IV
Commande des bras manipulateurs
Cette théorie utilise le modèle dynamique du robot pour le calcul de la loi de
commande donc elle dépend fortement du modèle du système et par conséquent elle est
très sensible aux imprécisions du modèle qui entraînent un découplage imparfait. Ceci
constitue son principal inconvénient [Her, 2007].
Dans le cas où le mouvement est complètement spécifié (suivi d‘une trajectoire), la loi de
la commande par découplage non linéaire peut s‘écrit :
𝜏 = 𝐴 𝑞 𝜏0 + 𝐵 𝑞 𝑞 + 𝐶 𝑞 2 + 𝐺 + 𝑓
𝜏0 est le contrôle auxiliaire tel que :
𝐼𝑉. 36
𝜏0 = 𝑞𝑑 + 𝑘𝑝 𝑞𝑑 − 𝑞 + 𝑘𝑑 𝑞𝑑 − 𝑞
𝐼𝑉. 37
Avec : 𝑞𝑑 , 𝑞𝑑 𝑒𝑡 𝑞𝑑 sont respectivement les accélérations, vitesses et positions désirés.
En choisissant convenablement 𝑘𝑝 , 𝑘𝑑 l‘erreur e tend vers asymptotiquement vers zéro
tel que
𝑒 + 𝑘𝑑 𝑒 + 𝑘𝑝 𝑒 = 0
𝐼𝑉. 38
IV.10. Conclusion :
Dans ce chapitre, on a fait des brèves définitions de quelques termes utilisés en
robotique, ainsi qu‘une vue générale sur la modélisation et la commande des bras
manipulateurs.
On a choisi de d‘utiliser le modèle dynamique direct afin de simuler le
comportement du bras manipulateur PUMA560 en présence de la commande par
découplage non linéaire.
Le chapitre suivant décrit l‘application des algorithmes NSGA-II et NSBBO-II
présentés respectivement dans le chapitre 2 et le chapitre 3 dans la régulation des gains
des contrôleurs du bras manipulateur Puma560.
64
Chapitre V
Mises-En
Œuvre
Chapitre V
Mise en œuvre
V.1 Introduction
Pour la mise en œuvre d‘un régulateur de type computed torque CTC (commande
par découplage non linéaire ou encore Computed Torque Control) d‘un bras
manipulateur, deux paramètres (𝑘𝑝 , 𝑘𝑑 ) doivent être ajustés.
Dans ce chapitre deux méthodes d‘optimisation multi-objective seront utilisées
pour déterminer ces deux paramètres. Ces méthodes sont appelées l‘algorithme NSGA-II
et NSBBO-II. Ces algorithmes seront testées sur un bras manipulateur de type
PUMA560.
La simulation du bras sera premièrement dans l‘environnement S IMULINK où les
gains 𝑘𝑝 , 𝑘𝑑 sont ajustés empiriquement. Puis l‘implémentation des méthodes NSGA-II
et NSBBO-II sera dans l‘environnement de programmation MATLAB.
V.2 Environnement expérimental :
On a implémenté les méthodes décrites précédemment sur une machine ayant les
caractéristiques suivantes :
a. Matériel :
Un processeur AMD Sempron(tm) SI-42 CPU 2.10 GHz
Une mémoire RAM de 1GO
Un disque dur de 160 GO
b. Logiciel :
Système d‘exploitation : Windows 7 Edition Intégrale copyright ©2009 service
Pack 1
Langage de programmation :
 MATLAB R2012a (7.14.0.739) 32-bit (win32), February 9, 2012.
 Environment SIMULINK version 7.9(R2012a) December 29, 2011
V.3 Modélisation dynamique du bras manipulateur PUMA560 :
V.3.1 Présentation du bras :
Le Puma est probablement le robot le plus répandu dans les laboratoires
universitaires et l'un des robots d'assemblage les plus utilisés dans l‘industrie. Conçu par
Vic Schienman et financé dans le MIT au milieu des années 70, le Puma (Programmable
Universal Machine for Assembly) a été produit pendant de nombreuses années par
Unimation (rachetée plus tard par Westinghouse et vendu à perte plus tard pour Staubli,
une société suisse). Ces robots et leurs successeurs sont trouvés principalement dans les
laboratoires universitaires.
Le système est composé de deux parties : le robot ou le bras et son ordinateur de
commande. Le bras manipulateur est le composant mécanique du système et comporte
65
Chapitre V
Mise en œuvre
six axes de rotation autrement dit six articulations où chaque articulation est définit par
son angle. L'effecteur du robot peut atteindre un point donné à l‘intérieur de son espace
de travail par n'importe quelle direction. Les six degrés de liberté sont contrôlées par six
servomoteurs DC [Alia, 2011] [Cha, 2004]
Figure V.1 : Le bras manipulateur Puma 560
V.3.2 Les articulations du bras PUMA560 :
Les figures suivantes montrent les six articulations du bras manipulateur
PUMA560.
Figure V.2 : Les articulations du poignet. [Head, 2010]
66
Chapitre V
Mise en œuvre
Figure V.3 : Les articulations du porteur. [Head, 2010]
Les axes du bras sont associés selon la notation de Denavit-Hartenberg (D-H)
comme montre la figure V.4.
Figure V.4 : Notation de D-H des six de liberté du PUMA560 [Piltan et all, 2012]
V.3.3 Modèle dynamique du bras :
En négligeant les frottements et les perturbations extérieures, le modèle dynamique
d‘un robot manipulateur se met sous la forme suivante [Armstrong et all, 86]:
𝜏 = 𝐴(𝑞)𝑞 + 𝐵(𝑞) 𝑞 𝑞 + 𝐶(𝑞) 𝑞2 + 𝐺(𝑞)
𝑉. 1
[𝑞2 ]: [ 𝑞1 2 , 𝑞2 2 … 𝑞𝑛 2 ].
[𝑞𝑞] ∶ [ 𝑞1 𝑞2 , 𝑞1 𝑞3 … 𝑞1 𝑞𝑛 , 𝑞2 𝑞3 , 𝑞2 𝑞4 , … 𝑞𝑛 −2 𝑞𝑛 , 𝑞𝑛−1 𝑞𝑛 ]𝑇
67
Chapitre V
Mise en œuvre
Les matrices A (q), B (q), C (q) et G (q) de dimension respectivement (6,6) (6,15)
(6,6) (6,1) sont données comme suit, avec : [Armstrong et all, 86]:
S2= sin (q2), C5= cos (q5), C23= cos (q2 + q3) , S223=sin(q2+q2+q3), CC2= cos (q2)
* cos (q2) ,CS4=cos (q4) * sin (q4).
V.3.3.1. Matrice d’inertie:
𝐴11 ≈2.57+1.38*CC2+0.30*SS23+7.44*0.1*C2*S23
𝐴12 ≈ 6.90*0.1*S2-1.34*0.1*C23+2.38*0.01*C2
𝐴13 ≈-1.34*0.1*C23-3.97*0.001*S23
𝐴14 ≈𝐴15 ≈𝐴16 ≈0
𝐴22 ≈6.79+7.44*0.1*S3
𝐴23 ≈0.333+3.72*0.1*S3-1.10*0.01*C3
𝐴24 ≈ 𝐴25 ≈𝐴26 ≈0
𝐴33 ≈ 1.16
𝐴34 ≈-1.25*0.001*S4*S5
𝐴35 ≈1.25*0.001*C4*C5
𝐴36 ≈0
𝐴44 ≈0.20
𝐴45 ≈𝐴46 ≈0
𝐴55 ≈0.18
𝐴56 ≈0
𝐴66 ≈0.19
V.3.3.2 Matrice de Coriolis :
𝐵112 ≈-2.76*SC2+7.44*0.1*C223+0.60*SC23-2.13*0.01*(1-2*SS23)
𝐵113 ≈7.44*0.1*C2*+0.60*SC23+2.20*0.01*C2*S23-2.13*0.01*(1-2*
SS23)
𝐵114 ≈-2.50*0.001*SC23*S4*S5+8.60*0.0001*C4*S5-2.48*0.001*C2*
C23*S4*S5
𝐵115 ≈-2.50*0.001*(SS23*S5-SC23*C4*C5)-2.48*0.001*C2*(S23*S5C23*C4*C5)+8.60*0.0001*S4*C5
𝐵116 =0
𝐵123 ≈2.67*0.1*S23-7.58*0.001*C23
𝐵124 = 𝐵125 =𝐵126 ≈0
𝐵134 = 𝐵124
𝐵135 = 𝐵125
𝐵136 =𝐵126
𝐵145 ≈0
𝐵146 ≈0
𝐵156 ≈0
𝐵212 =0
𝐵213 =0
𝐵214 ≈1.64*0.001*S232.50*0.001*C23*C4*S5+2.48*0.001*S2*C4*S5+0.30*0.001*S23*(12 *SS4)
𝐵215 ≈-2.50*0.001*C23*S4*C5+2.48*0.001*S2*S4*C56.42*0.0001*C23* S4
𝐵216 =-𝐵126
𝐵223 ≈2.20*0.01*S3+ 7.44*0.1*C3
𝐵224 ≈-2.48*0.001*C3*S4*S5
𝐵225 ≈-2.50*0.001*S5+2.48*0.001*(C3*C4*C5-S3*S5)
68
Chapitre V
Mise en œuvre
𝐵226 =0
𝐵234 =𝐵224
𝐵235 =𝐵225
𝐵236 =0
𝐵245 ≈0
𝐵246 ≈0
𝐵256 ≈0
𝐵312 =0
𝐵313 =0
𝐵314 ≈-2.50*0.001*C23*C4*S5+1.64*0.001*S23+0.30*0.001*S23*(12*SS4
𝐵315 ≈-2.50*0.001*C23*S4*C5-6.42*0.0001*C23*S4
𝐵316 ≈-𝐵136
𝐵323 =0
𝐵324 ≈0
𝐵325 ≈-2.50*0.001*S5
𝐵326 =0
𝐵334 =𝐵324
𝐵335 =𝐵325
𝐵336 =0
𝐵345 ≈-2.50*0.001*S5*C5
𝐵346 =𝐵246
𝐵356 =𝐵256
𝐵412 =-𝐵214
𝐵413 =-𝐵314
𝐵414 =0
𝐵415 ≈-6.42*0.0001*S23*C4
𝐵416 =-𝐵146
𝐵423 =-𝐵324
𝐵424 =0
𝐵425 ≈6.42*0.0001*S4
𝐵426 =-𝐵246
𝐵434 =0
𝐵435 =𝐵425
𝐵436 =-𝐵346
𝐵445 ≈0
𝐵446 =𝐵456 =0
𝐵512 =-𝐵215
𝐵513 =-𝐵315
𝐵514 =-𝐵415
𝐵515 =0
𝐵516 =-𝐵156
𝐵523 =-𝐵325
𝐵524 =-𝐵425
𝐵525 =0
𝐵526 =-𝐵256
𝐵534 =𝐵524
𝐵535 =0
𝐵536 =-𝐵356
𝐵545 =0
𝐵546 =-𝐵456
𝐵556 =0
𝐵612 =𝐵126
𝐵613 =𝐵136
𝐵614 =𝐵146
𝐵615 =𝐵156
𝐵616 =0
𝐵623 =0
𝐵624 =𝐵246
𝐵625 =𝐵256
𝐵626 =0
𝐵634 =𝐵624
𝐵635 =𝐵625
𝐵636 =0
𝐵645 =𝐵456
𝐵646 =0
𝐵656 =0
V.3.3.3 Matrice de centrifuge:
𝐶11 =0
𝐶12 ≈6.90*0.1*C2+1.34*0.1*S23-2.38*0.01*S2
𝐶13 =0.5*𝐵123
𝐶14 ≈0;
𝐶15 ≈0;
𝐶16 =0;
𝐶21 =-0.5*𝐵112
𝐶22 =0;
𝐶23 =0.5*𝐵223
𝐶24 ≈0;
𝐶25 ≈0;
𝐶26 =0;
𝐶31 =-0.5*𝐵113
𝐶32 =-𝐶23
𝐶33 =0
𝐶34 ≈-1.25*0.001*C4*S5
𝐶35 ≈ 𝐶34
𝐶36 =0
𝐶41 =-0.5*𝐵114
𝐶42 =-0.5*𝐵224
𝐶43 =0.5*𝐵423
𝐶44 =0
𝐶45 =0
𝐶46 =0
𝐶51 =-0.5*𝐵115
𝐶52 =-0.5*𝐵225
𝐶53 =0.5*𝐵523
𝐶54 =-0.5*𝐵445
𝐶55 =0
𝐶56 =0
𝐶61 =𝐶62 =𝐶63 =𝐶64 =𝐶65 =𝐶66 =0
69
Mise en œuvre
Chapitre V
V.3.3.4 Matrice de gravité :
𝑔1 =0
𝑔2 ≈ -37.2*C2-8.4*S23+1.02*S2
𝑔3 ≈ -8.4*S23+0.25*C23
𝑔4 ≈ 2.8*0.01*S23*S4*S5
𝑔5 ≈-2.8*0.01*(C23*S5+S23*C4*C5)
𝑔6 =0
V.4 Simulation du comportement du bras en SIMULINK:
Pour simuler le comportement du bras manipulateur PUMA560 on utilise son
modèle dynamique direct décrit par l‘équation suivante :
𝑞 = 𝐴−1 (𝑞) 𝐵(𝑞) 𝑞𝑞 + 𝐶(𝑞) 𝑞2 + 𝐺(𝑞) − 𝜏
𝑉. 2
Cette forme se prête bien à l‘intégration numérique dans des structures de
simulation comme celle indiquée à la figure IV.8 du chapitre 4.
Génération
de
trajectoire
𝒒𝒅
Loi
de
commande
Modèle
dynamique
direct
𝝉
Intégration
numérique
𝒒
𝒒, 𝒒
Figure V.5 : Boucle de simulation. [Khalil, 88]
 Génération de trajectoire :
Pour générer la trajectoire, on choisit d‘utiliser un polynôme de degré 5 (décrit
dans le chapitre 4) qui a pour forme générale :
q t = qi + r t ∗ D
𝑡𝑒𝑙 𝑞𝑢𝑒 r t = 10 t t f
3
− 15 t t f
4
+ 6 t tf
5
0 ≤ 𝑡 ≤ 𝑡𝑓 (V. 3)
Et comme le bras PUMA560 est formé de six articulation où chaque articulation est
définit par son angle, la position du bras est définit par un vecteur de six composantes
où chaque composante i définit la position de l‘articulation i du bras (i=1.. 6).
On a utilisé comme configuration initiale et finale les vecteurs 𝑞𝑖 𝑒𝑡 𝑞 𝑓 trouvés
dans [Huat, 2006] tel que :
𝑞𝑖 = (−20° ,60°, −120°, 0°, −30°, 0°)
𝑞 𝑓 = 20° , −60°, −60°, 0°, 30°, 0°
La configuration finale doit être atteinte en un temps 𝑡𝑓 = 1 pour chaque
articulation du robot avec un temps d‘échantillonnage 𝑡𝑒 = 0.01 𝑠.
70
Mise en œuvre
Chapitre V
La loi de commande :
Le robot PUMA560 a six articulations rotoides et chaque articulation est
contrôlée par un moteur à courant continu donc six moteurs ou actionneurs
utilisés pour contrôler le bras. Et puisque on a choisi de contrôler notre bras par
une commande CTC (commande par découplage non linéaire), on aura donc six
commandes 𝜏𝑖 de type CTC regroupé dans un vecteur 𝜏 = (𝜏1 , 𝜏2,𝜏3 , 𝜏4 , 𝜏5 , 𝜏6 ).
Et comme une loi de commande CTC est définit par l‘équation V.4
𝜏 = 𝐴 𝑞 𝜏 ’ + 𝐵 𝑞𝑞 + 𝐶 𝑞2 + 𝐺
𝜏 ’ Est le contrôle auxiliaire tel que :
𝜏 ’ = 𝑞 𝑑 + 𝑘𝑝 𝑞 𝑑 − 𝑞 + 𝑘𝑑 𝑞𝑑 − 𝑞
(𝑉. 4)
(𝑉. 5)
Alors on doit définir deux vecteurs 𝑘𝑝𝑖 , 𝑘𝑑𝑖 , 𝑖 = 1. .6 pour que le robot atteigne sa
configuration désirée ou finale.
Pour simuler le comportement du
robot, on utilise les valeurs des
gains 𝑘𝑝 , 𝑘𝑑 énoncés dans le tableau V.1 et trouvés empiriquement dans le document
[Moreira]
Joint
𝑘𝑝
𝑘𝑑
1
700.0
20.0
2
1100
20.0
3
400.0
20.0
4
40.0
5.0
5
30.0
5.0
6
40.0
5.0
Tableau V.1 : Les gains PD de la commande par découplage non linéaire [Moreira]
La boucle de simulation du système, le modèle du bras la loi de commande, le bloc
du contrôle auxiliaire et le diagramme de l‘accélération sont simulés dans S IMULINK et
sont donnés dans les figures V.6, V.7, V.8, V.9 et V.10
q"d
q''d
q'd
q'd
qd
qd
control
q"
q2p_model
Accelerations
Acceleration
U
q'
q'
qp_model
Velocities
velocities
Trajectory generation
q'
q
q
q
q_model
Positions
pos_model
Computed torque control
Puma560
Figure V.6 : Boucle de simulation du bras
71
Mise en œuvre
Chapitre V
1
q"
2
q'
2
q'
q'
q'
3
q
q"
q''
q
3
q
1
U
q
control
Modele Model
Direct Dynamic
dynamique direct
Integration
Numeric
Integration
numerique
Figure
Modèle du brasComputed
manipulateur PUMA560
La
loi V.7
de :commande
Torque
Simulation du bras Puma560
q
A(q)
Matrix A(q)
Matrix
Multiply
1
q''d
q''d
2
q'd
q'd
3
qd
qd
4
q'
q'
5
q
A(q)*U_aux
U_aux
q
auxilary control
B11
B12
B(q)
B13
B14
B16
q
B26
B27
B28
B46
B56
B4_13
Matrix M(q)
qp_sqr
B11
B12
B13
B14
B16
B26
B27
C(q)
B28
B46
B56
B4_13
q
1
Matrix C(q)
C(q)*sqr(qp)
q'
U
Matrix
Multiply
control
Com m ande
qp_qp
sqr(qp),qp_qp
Matrix
Multiply
B(q)*qp_qp
q
G(q)
Vector G(q)
Figure V.8 : la commande par découplage non linéaire du bras PUMA560
72
Chapitre V
Controle auxiliaire
q''d
Mise en œuvre
1
Demux
20
Kv1
20
4
Demux
q'
Kv2
20
Kv3
5
1
U_aux
Kv4
5
Kv5
5
2
Demux
Kv6
q'd
700
Kp1
1100
Kp2
Demux
400
Kp3
5
q
40
kp4
30
Kp5
40
Kp6
3
Demux
qd
Controle auxiliaire U'
Figure V.9 : Le contrôle auxiliaire du bras PUMA560
73
Mise en œuvre
Chapitre V
2
q
A(q)
Inv
q
Matrix
Multiply
inv(A(q))
Matrix A(q)
1
q"
B11
B12
B(q)
B13
B14
B16
q
B26
B27
B28
B46
B56
B4_13
Matrix B(q)
B11
B12
B13
B14
B16
B26
B27
C(q)
B28
B46
B56
B4_13
q
Matrix C(q)
Matrix
Multiply
qp_sqr
1
q'
q'
qp_qp
Matrix
Multiply
C(q)*sqr(qp)
B(q)*qp_qp
sqr(qp),qp_qp
q
G(q)
3
U
Vector G(q)
Modele dynamique direct du bras manipulateur Puma560
Figure.10 Le diagramme de q
Les figures V.11 jusqu‘à V.16 montrent une comparaison entre les positions
articulaires désirées et les positions articulaires actuelles des articulations du bras
Puma560 en simulant son modèle sous SIMULINK en utilisant les valeurs des
gains 𝑘𝑝 𝑘𝑑 donnés dans le tableau V.1.
Les figures V.17 jusqu‘à V.22 montrent une comparaison entre les vitesses
angulaires désirées et les vitesses angulaires actuelles des articulations du bras Puma560
en simulant son modèle sous SIMULINK en utilisant les valeurs des gains 𝑘𝑝 𝑘𝑑 donnés
dans le tableau V.1.
74
Mise en œuvre
Chapitre V
Desired joint position q1
Desired joint position q2
0.4
1.5
Desired position
current position
0.3
Desired position
current position
1
0.2
0.5
Position (rad)
Position(rad)
0.1
0
-0.1
0
-0.5
-0.2
-1
-0.3
-1.5
-0.4
3
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
0
0.1
0.2
0.3
0.4
1
Fig. V.11 Test SIMULINK sur la position q1
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.12 Test SIMULINK sur la position q2
Desired joint position q3
-0.8
-21
0
Desired position
current position
-1
Desired joint position q4
x 10
Desired position
current position
-1
-1.2
Position (rad)
-2
Position (rad)
-1.4
-1.6
-3
-4
-1.8
-5
-2
-6
-2.2
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
-7
0
Fig. V.13 Test SIMULINK sur la position q3
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.14 Test SIMULINK sur la position q4
Joint position q6
Desired joint position q5
1
0.6
Desired position
current position
Desired position
current position
0.8
0.4
0.6
0.4
Velocity (rad/s)
Position (rad)
0.2
0
-0.2
0.2
0
-0.2
-0.4
-0.4
-0.6
-0.6
-0.8
-0.8
0
0.1
0.2
0.3
0.4
0.5
0.6
Time(s)
0.7
0.8
0.9
Fig. V.15 Test SIMULINK sur la position q5
1
-1
0
0.1
0.2
0.3
0.4
0.5
0.6
Time(s)
0.7
0.8
0.9
1
Fig. V.16 Test SIMULINK sur la position q6
75
Mise en œuvre
Chapitre V
Joint velocity qp1
Joint velocity qp2
1.4
0.5
Desired velocity
current velocity
1.2
-0.5
1
-1
0.8
Velocity (rad/s)
Velocity (rad/s)
Desired velocity
current velocity
0
0.6
0.4
-1.5
-2
-2.5
0.2
-3
0
-0.2
-3.5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
-4
1
Fig. V.17 Test SIMULINK sur la vitesse qp1
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.18 est SIMULINK sur la vitesse qp2
Joint velocity qp3
-20
2
2.5
Desired velocity
current velocity
Joint velocity qp4
x 10
Desired velocity
current velocity
2
1.5
1.5
Velocity (rad/s)
1
Velocity (rad/s)
1
0.5
0.5
0
-0.5
-1
0
-1.5
-2
-0.5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
-2.5
1
Fig. V.19 Test SIMULINK sur la vitesse qp3
0
0.1
0.2
0.3
0.4
0.5
0.6
Time(s)
0.7
0.8
0.9
1
Fig. V.20 Test SIMULINK sur la vitesse qp4
Joint velocity qp6
Joint velocity qp5
1
2
Desired velocity
current velocity
Desired velocity
current velocity
0.8
0.6
1.5
Velocity (rad/s)
Velocity (rad/s)
0.4
1
0.5
0.2
0
-0.2
-0.4
-0.6
0
-0.8
-0.5
-1
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
Fig. V.21 Test SIMULINK sur la vitesse qp5
1
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.22 Test SIMULINK sur la vitesse qp6
76
Mise en œuvre
Chapitre V
V.5 Optimisation des gains PD du régulateur CTC par un algorithme
évolutionnaire :
V.5.1 Principe :
Le principe de l‘optimisation des paramètres PD d‘une commande CTC par un
algorithme évolutionnaire est donné dans la figure V.23. Il s‘agit de trouver l‘ensemble
des paramètres 𝑘𝑝 , 𝑘𝑑 en minimisant l‘erreur entre la sortie désirée et la sortie du
système.
𝒆
Algorithme d’optimisation
𝑘𝑝 , 𝑘𝑑
𝑞𝑑
-
𝝉’
PD
Commande
𝝉
Bras Manipulateur
𝑞
+
Figure V.23 : Principe de réglage des gains de la commande par découplage non linéaire
par un algorithme évolutionnaire
V.5.2 Codage :
L‘utilisation d‘un algorithme évolutionnaire pour le réglage des gains 𝑘𝑝 , 𝑘𝑑 d‘une
commande CTC du bras manipulateur PUMA560 consiste à la recherche de la solution
optimale dans un espace de recherche où chaque combinaison 𝑘𝑝𝑖 , 𝑘𝑑𝑗 𝑖 = 0. .6, 𝑗 =
1. .6 est considérée comme un individu qui est représenté par un vecteur de 12 valeur
comme montre la figure V.24
Le type de codage qu‘on a choisi est le codage réel pour sa simplicité.
𝒌𝒑𝟏 𝒌𝒑𝟐 𝒌𝒑𝟑 𝒌𝒑𝟒 𝒌𝒑𝟓 𝒌𝒑𝟔 𝒌𝒅𝟏 𝒌𝒅𝟐 𝒌𝒅𝟑 𝒌𝒅𝟒 𝒌𝒅𝟓 𝒌𝒅𝟔
Figure V.24 : Représentation d‘un individu dans un algorithme évolutionnaire.
77
Chapitre V
Mise en œuvre
V.5.3 Initialisation de la population :
Cette fonction initialise une population contenant N individus où chaque individu
est représenté par le vecteur [𝑘𝑝1 𝑘𝑝2 … 𝑘𝑝6 𝑘𝑣1 𝑘𝑣2 … 𝑘𝑣6 ], et chaque valeur
𝑘𝑝𝑖 𝑘𝑑𝑗 prend sa valeur aléatoirement dans l‘espace de recherche D définit par :
𝐷 = 0 𝑘𝑝𝑚𝑎𝑥
× 0 𝑘𝑑𝑚𝑎𝑥
(𝑉. 6)
Où 𝑘𝑝𝑚𝑎𝑥 𝑒𝑡 𝑘𝑑𝑚𝑎𝑥 sont les bornes supérieures selon le système commandé et ses
limites. [Bel, 2012]
V.5.4 Evaluation de la fitness d’un individu :
Pour régler les valeurs des gains PD d‘une commande CTC du bras manipulateur
PUMA560 en utilisant les algorithmes évolutionnaires multi-objectives, On a choisi de
minimiser l‘intégral de l‘erreur absolue (IAE) de chaque articulation. Et puisque le
PUMA560 a six articulations, on doit minimiser simultanément six 𝐼𝐴𝐸𝑖 , 𝑖 =
1. .6 regroupée dans un vecteur IAE qui est considéré comme un vecteur des fitness 𝑓𝑖 .
Si 𝑞𝑑 𝑘 est le vecteur d‘une position désirée et 𝑞 𝑘 est le vecteur de la position
de sortie correspondante, alors le vecteur d‘erreur 𝑒(𝑘) est
𝑒 𝑘 = 𝑞𝑑 𝑡 − 𝑞 𝑡
(𝑉. 7)
𝑘=𝑙
𝐼𝐴𝐸 =
|𝑒 𝑘 |
(𝑉. 8)
𝑘=1
Tel que 𝑒 𝑘 est erreur du système à la 𝑘 è𝑚𝑒 itération.
V.6 Implémentation de l’algorithme NSGA-II
Pour implémenter l‘algorithme NSGA-II, plusieurs étapes doivent être réalisées :
V.6.1 Initialisation de la population :
On a pris les valeurs suivantes : 𝑘𝑝𝑚𝑎𝑥 = 𝑘𝑑𝑚𝑎𝑥 = 100.
V.6.2 Calcul des fitness:
Calculer la fitness 𝑓𝑗 𝑗 = 1. .6 (𝑓𝑗 = 𝐼𝐴𝐸𝑗 ) de chaque individu de la population.
V.6.3 Trier la population courante :
Calculer le rang et crowding distance de chaque individu puis trier les individus en
se basant sur la procédure de la non-domination.
78
Chapitre V
Mise en œuvre
V.6.4 Sélection des parents:
Sélection des meilleurs individus qui sont considérés comme parents. Taille-par est
𝑠𝑖𝑧𝑒 𝑝𝑜𝑝𝑢𝑙𝑎𝑡𝑖𝑜𝑛 ,1
le nombre des individus sélectionnés tel que Taille-par = 𝑐𝑒𝑖𝑙(
)
2
On a utilisé la sélection par tournoi en sélectionnant Taille-Tour individu à chaque
tournoi.
V.6.5 Appliquer l’opérateur de croisement :
Appliquer le croisement de type SBX (décrit dans le chapitre 2) pour générer les
fils dont la probabilité
𝑝𝑖 < 𝑃𝑐 sachant que η𝑐 est l‘index de distribution pour
croisement, η𝑐 = 20, 𝑃𝑐 est la probabilité de croisement et 𝑝𝑖 est la probabilité de
croisement de l‘individu i.
V.6.6 Appliquer l’opérateur de mutation :
Appliquer la mutation polynomiale (décrit dans le chapitre 2) pour modifier les fils
dont la probabilité 𝑝𝑖 < 𝑃𝑚 sachant que η𝑚 est l‘index de distribution pour mutation, η𝑚 =
20, 𝑃𝑚 est la probabilité de mutation et 𝑝𝑖 est la probabilité de mutation de l‘individu i.
V.6.7 Calcul des fitness des enfants:
Calculer la fitness 𝑓𝑗 𝑗 = 1. .6 (𝑓𝑗 = 𝐼𝐴𝐸𝑗 ) de chaque fils de la population des enfants.
V.6.8 Fusion des deux populations :
Fusionner la population P avec la population des enfants Q en une seule population
R.
V.6.9 Trier la population R :
Calculer le rang et crowding distance de chaque individu puis trier les individus en
se basant sur la procédure de la non-domination de Pareto.
V.6.10 Former la population suivante :
Sélectionner les N meilleur individus pour former la population des individus pour
l‘itération suivante.
V.6.11 Retour à V.6.4 :
Répéter les étapes de V.6.4 à V.6.10 jusqu‘à un nombre de génération prédéfinit.
79
Mise en œuvre
Chapitre V
V.7 Les résultats de l’algorithme NSGA-II
Expérience 1 :
Le tableau V.2 résume les valeurs prise pour implémenter l‘algorithme NSGA-II, en
utilisant le croisement SBX et la mutation polynomiale:
𝐏𝒄
𝐏𝒎
𝛈𝒄
𝛈𝒎
0.9
1/12
20
20
Taille-Tour
2
Tableau V.2 : Paramètres standards d‘un algorithme NSGA-II [Deb et al, 2002]
Cet algorithme est utilisé pour régler les gains PD de la commande par découplage
non linéaire. Les résultats obtenus sont les positions angulaires actuelles 𝑞𝑗 (𝑗 =
1,2,3,4,5,6 ) et les vitesses angulaires actuelles 𝑞𝑝𝑗 , qui sont comparées respectivement
avec les positions et les vitesses angulaires désirées.
On a choisi les paramètres cités dans le tableau V.3 :
Nbr-Gen
Taille -pop
2
2
Tableau V.3 : Paramètres d‘exécution de l‘expérience 1 de l‘approche NSGA-II
Tel que :
Taille-pop : la taille de la population ou nombre d‘individu
Nbr-Gen : le nombre de génération
80
Mise en œuvre
Chapitre V
Desired joint position q1
Desired joint position q2
0.4
1.5
Desired position
current position
0.3
Desired position
current position
1
0.2
0.5
Position (rad)
Position(rad)
0.1
0
-0.1
0
-0.5
-0.2
-1
-0.3
-0.4
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
-1.5
1
0
Fig. V.25 Test de l‘expérience 1de
l‘algorithme Desired
NSGA-II
position
q1
joint position
q3
0.1
0.2
0.3
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.26 Test de l‘expérience 1de
l‘algorithme NSGA-II position q2
-22
-0.8
2
Desired position
current position
-1
0.4
Desired joint position q4
x 10
0
-2
-1.2
-1.4
Position (rad)
Position (rad)
-4
-1.6
-1.8
-6
-8
-10
-12
-14
-2
-16
-2.2
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
Desired position
current position
-18
0
1
Fig. V.27 Test de l‘expérience 1de
l‘algorithme NSGA-II sur la position q3
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.28 Test de l‘expérience 1de
l‘algorithme NSGA-II sur la position q4
Joint position q6
Desired joint position q5
1
0.6
Desired position
current position
0.4
Desired position
current position
0.8
0.6
0.4
Velocity (rad/s)
Position (rad)
0.2
0
-0.2
0.2
0
-0.2
-0.4
-0.4
-0.6
-0.6
-0.8
-0.8
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
Fig. V.29 Test de l‘expérience 1de
l‘algorithme NSGA-II sur la position q5
1
-1
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
Fig. V.30 Test de l‘expérience 1de
l‘algorithme NSGA-II sur la position q6
81
1
Mise en œuvre
Chapitre V
Joint velocity qp1
Joint velocity qp2
1.4
0.5
Desired velocity
current velocity
1.2
Desired velocity
current velocity
0
-0.5
1
Velocity (rad/s)
Velocity (rad/s)
-1
0.8
0.6
0.4
-1.5
-2
-2.5
0.2
-3
0
-0.2
-3.5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
-4
1
Fig. V.31 Test de l‘expérience 1de
l‘algorithme NSGA-II sur la vitesse qp1
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.32 Test de l‘expérience 1de
l‘algorithme NSGA-II sur la vitesse qp2
Joint velocity qp3
-20
2
2
Desired velocity
current velocity
Joint velocity qp4
x 10
1.5
1.5
0.5
1
Velocity (rad/s)
Velocity (rad/s)
1
0.5
0
-0.5
-1
-1.5
0
-2
-0.5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
-2.5
1
Fig. V.33 Test de l‘expérience 1de
l‘algorithme NSGA-II sur la vitesse qp3
Desired velocity 4
current velocity
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.34 Test de l‘expérience 1de
l‘algorithme NSGA-II sur la vitesse qp4
Joint velocity qp5
Joint velocity qp6
2
1
Desired velocity
current velocity
Desired velocity
current velocity
0.8
1.5
0.6
Velocity (rad/s)
Velocity (rad/s)
0.4
1
0.5
0.2
0
-0.2
-0.4
-0.6
0
-0.8
-0.5
-1
0
0.1
0.2
0.3
0.4
0.5
0.6
Time(s)
0.7
0.8
0.9
Fig. V.35 Test de l‘expérience 1 de
l‘algorithme NSGA-II sur la vitesse qp5
1
0
0.1
0.2
0.3
0.4
0.5
0.6
Time(s)
0.7
0.8
0.9
Fig. V.36 Test de l‘expérience 1 de
l‘algorithme NSGA-II sur la vitesse qp6
82
1
Mise en œuvre
Chapitre V
0.8
IAE1
IAE2
IAE3
IAE4
IAE5
IAE6
0.7
0.6
IAE (rad)
0.5
0.4
0.3
0.2
0.1
0
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Figure V.37 Les IAE des positions articulaires
0.016
|e1|
|e2|
|e3|
|e4|
|e5|
|e6|
0.014
Absolute error(rad)
0.012
0.01
0.008
0.006
0.004
0.002
0
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Figure V.38 Les erreurs absolues des positions articulaires
Expérience 2 :
On a changé le type du croisement et le type de mutation pour voir l‘influence des
opérateurs évolutionnaires sur l‘algorithme NSGA-II. On a choisi le croisement et la
mutation du type real-valued (à valeur réelle).
Le croisement à valeur réelle (real-valued crossover) utilise deux parents pour
générer un seul enfant par la relation suivante :
enfant j =
parent 1 (j)+parent 2 (𝑗 )
2
(V. 9)[𝐒𝐮𝐦𝐚𝐭𝐡𝐢 𝐞𝐭 𝐚𝐥, 𝟐𝟎𝟏𝟎]
Un exemple de la mutation à valeur réelle (real-valued mutation) d‘un individu est
de choisir aléatoirement deux points et de las inverser: [𝐒𝐮𝐦𝐚𝐭𝐡𝐢 𝐞𝐭 𝐚𝐥, 𝟐𝟎𝟏𝟎]
83
Mise en œuvre
Chapitre V
Enfant(Point1)=individu(Point2)
Enfant(Point2)=individu(Point1)
On présente les résultats en utilisant les paramètres cités dans le tableau V.4 :
Nbr-Gen
Size-pop
2
2
Tableau V.4 : Paramètres d‘exécution de l‘approche NSGA-II pour l‘expérience 2
Desired joint position q1
Desired joint position q2
1.5
0.4
Desired position
current position
Desired position
current position
0.3
1
0.2
0.5
Position (rad)
Position(rad)
0.1
0
-0.1
0
-0.5
-0.2
-1
-0.3
-0.4
-1.5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.39 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la position q1
Desired joint position q3
0.2
0.3
-22
6
Desired position
current position
-1
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Desired joint position q4
x 10
Desired position
current position
4
-1.2
2
Position (rad)
Position (rad)
0.1
Fig. V.40 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la position q2
-0.8
-1.4
-1.6
0
-2
-1.8
-4
-2
-6
-2.2
0
-8
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
Fig. V.41 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la position q3
1
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
Fig. V.42 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la position q4
84
1
Mise en œuvre
Chapitre V
Joint position q6
Desired joint position q5
1
0.6
Desired position
current position
0.4
Desired position
current position
0.8
0.6
0.4
Velocity (rad/s)
Position (rad)
0.2
0
-0.2
-0.4
0.2
0
-0.2
-0.4
-0.6
-0.6
-0.8
-0.8
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
-1
1
Fig. V.43 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la position q5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.44 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la position q6
Joint velocity qp2
Joint velocity qp1
0.5
1.4
Desired velocity
current velocity
1.2
Desired velocity
current velocity
0
-0.5
1
Velocity (rad/s)
Velocity (rad/s)
-1
0.8
0.6
0.4
-1.5
-2
-2.5
0.2
-3
0
-0.2
-3.5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
-4
1
Fig. V.45 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la vitesse qp1
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.46 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la vitesse qp2
Joint velocity qp3
-20
2
Desired velocity
current velocity
2.5
Joint velocity qp4
x 10
Desired velocity 4
current velocity
2
1.5
1
Velocity (rad/s)
Velocity (rad/s)
1.5
0.5
1
0.5
0
-0.5
0
-1
-0.5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
Fig. V.47 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la vitesse qp3
1
-1.5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
Fig. V.48 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la vitesse qp4
85
1
Mise en œuvre
Chapitre V
Joint velocity qp6
Joint velocity qp5
1
2
Desired velocity
current velocity
Desired velocity
current velocity
0.8
0.6
1.5
Velocity (rad/s)
1
0.5
0.2
0
-0.2
-0.4
-0.6
0
-0.8
-0.5
-1
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.49 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la vitesse qp5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
Fig. V.50 Test de l‘expérience 2 de
l‘algorithme NSGA-II sur la vitesse qp6
0.8
IAE1
IAE2
IAE3
IAE4
IAE5
IAE6
0.7
0.6
IAE (rad)
0.5
0.4
0.3
0.2
0.1
0
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Figure. V. 51 Les IAE des positions articulaires
0.016
|e1|
|e2|
|e3|
|e4|
|e5|
|e6|
0.014
0.012
Absolute error(rad)
Velocity (rad/s)
0.4
0.01
0.008
0.006
0.004
0.002
0
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.52 Les erreurs absolues en positions articulaires
86
1
Mise en œuvre
Chapitre V
On peut observer que les courbes des positions articulaires obtenues par
l‘expérience 1 et l‘expérience 2 de l‘algorithme NSGA-II convergent vers les positions
désirées comme montrent les figures V.25 à V.30 et les figures V.39 à V.44
respectivement. Et, il est visible que les courbes des vitesses articulaires obtenues par
l‘expérience 1 et l‘expérience 2 de l‘algorithme NSGA-II convergent vers les vitesses
désirées comme montrent les figures V.31 à V.36 et les figures V.45 à V.50
respectivement.
Les expériences 1 et 2 de l‘algorithme NSGA-II ont montré l‘efficacité de cet
algorithme pour le réglage automatique des gains PD de la commande par découplage
non linéaire en termes d‘erreur en position, comme montrent les figures V.37 et V.51 qui
illustrent les erreurs absolues des positions articulaires obtenues en minimisant
simultanément l‘intégrale de l‘erreur absolue en positions (IAE) des six articulations
dans l‘espace articulaire montrées respectivement dans les figures V.38 et V.52
L‘expérience 2 montre que le changement des types du croisement et de mutation
ne diminue pas l‘efficacité de l‘algorithme NSGA-II.
Le tableau V.5 présente quelques itérations de commandes issues de l‘exécution de
l‘algorithme NSGA-II en utilisant les paramètres de l‘expérience 1, et montre les valeurs
des gains 𝑘𝑝 , 𝑘𝑑 générés et les valeurs des IAE associés.
Itera
t_2
Iterat
_10
Iterat
__20
Iterat
__30
Iterat
__40
Iterat
__50
Iterat
__60
Iterat
__70
Iterat
__80
Iterat
__90
Iterat
__100
Iterat
__101
𝒌𝒑𝟏
19
10
63
88
57
24
60
40
59
36
47
32
𝒌𝒑𝟐
5
93
19
29
8
81
93
65
86
5
76
65
𝒌𝒑𝟑
33
38
19
24
63
19
89
73
10
26
62
66
𝒌𝒑𝟒
90
23
23
78
75
58
82
4
1
95
42
99
𝒌𝒑𝟓
69
93
0
81
80
95
41
0
91
91
49
41
𝒌𝒑𝟔
80
81
52
80
74
88
19
78
95
66
84
49
𝒌𝒅𝟏
52
46
52
23
89
21
21
2
37
9
10
1
𝒌𝒅𝟐
94
13
33
45
18
65
61
99
9
41
82
74
𝒌𝒅𝟑
51
71
47
54
32
11
66
83
28
49
65
40
𝒌𝒅𝟒
25
10
67
29
36
40
92
46
50
88
71
7
𝒌𝒅𝟓
54
14
27
94
94
69
3
78
35
28
96
48
35
63
72
59
24
99
91
30
55
65
56
84
0,0015
0,0142
0,0433
0,0861
0,1371
0,1865
0,2225
0,2390
0,245
0,2645
0,2668
0,0033
0,0391
0,1262
0,2546
0,4029
0,5403
0,6406
0,6848
0,7043
0,7670
0,7743
0,0020
0,0203
0,0640
0,1319
0,2106
0,2856
0,3390
0,3643
0,3725
0,4008
0,4042
𝒌𝒅𝟔
IAE1
IAE2
IAE3
6,877
1e-06
2,063
1e-05
1,031
6e-05
IAE4
0
2,8935
e-24
9,2214
e-23
2,5857
e-21
9,7173
e-21
2,6170
e-20
4,4005
e-20
5,3415
e-20
5,8103
e-20
6,2445
e-20
6,7292
e-20
6,7745
e-20
IAE5
1,031
6e-05
0,0019
0,0204
0,0646
0,1317
0,2115
0,2861
0,3395
0,3653
0,3734
0,4010
0,4043
IAE6
0
0
0
0
0
0
0
0
0
0
0
0
Tableau V.5 : Quelques itérations de commandes issues de l‘exécution de
l‘algorithme NSGA-II en utilisant les paramètres de l‘expérience 1.
87
Mise en œuvre
Chapitre V
Le tableau V.6 présente quelques itérations de commandes issues de l‘exécution de
l‘algorithme NSGA-II en utilisant les paramètres de l‘expérience 2, et montre les valeurs
des gains 𝑘𝑝 , 𝑘𝑑 générés et les valeurs des IAE associés.
𝒌𝒑𝟏
Itera
t_2
17
Iterat
_10
27
Iterat
__20
12
Iterat
__30
21
Iterat
__40
49
Iterat
__50
29
Iterat
__60
67
Iterat
__70
10
Iterat
__80
19
Iterat
__90
58
Iterat
__100
95
Iterat
__101
7
𝒌𝒑𝟐
76
27
85
81
100
23
31
94
95
54
89
88
𝒌𝒑𝟑
67
12
4
57
26
29
81
42
2
21
30
83
𝒌𝒑𝟒
36
52
70
40
90
45
84
15
55
65
73
57
𝒌𝒑𝟓
95
54
75
33
42
94
59
0
68
45
20
15
𝒌𝒑𝟔
23
44
60
0
90
43
97
77
88
96
40
81
𝒌𝒅𝟏
23
44
64
87
1
10
49
70
70
30
18
67
𝒌𝒅𝟐
59
32
58
10
33
28
65
97
86
60
6
32
𝒌𝒅𝟑
15
100
99
67
39
30
58
36
58
81
9
84
𝒌𝒅𝟒
42
52
58
72
33
32
60
83
76
79
75
16
𝒌𝒅𝟓
52
11
18
100
12
40
50
36
72
82
92
64
𝒌𝒅𝟔
IAE1
IAE2
IAE3
IAE4
37
66
2
75
84
26
48
33
67
71
88
20
6,877
1e-06
2,063
1e-05
1,031
6e-05
0
0,0017
0,0148
0,0453
0,0908
0,1428
0,1904
0,2265
0,2440
0,2493
0,2673
0,2696
0,0044
0,0428
0,1325
0,2680
0,4211
0,5640
0,6672
0,7131
0,7317
0,7918
0,7989
0,0025
0,0230
0,0691
0,1369
0,2170
0,2924
0,3501
0,3801
0,3875
0,4121
0,4151
1,7073
e-24
0,0014
1,7883
e-22
0,0183
6,5652
e-22
0,0609
2,8284
e-21
0,1267
6,6335
e-21
0,2070
1,2652
e-20
0,2808
1,3977
e-20
0,3338
1,6119
e-20
0,3591
2,0534
e-20
0,3672
2,4868
e-20
0,3951
2,5276
e-20
0,3985
0
0
0
0
0
0
0
0
0
0
0
IAE5
1,031
6e-05
IAE6
0
Tableau V. 6: Quelques itérations de commandes issues de l‘exécution de
l‘algorithme NSGA-II en utilisant les paramètres de l‘expérience 2.
88
Chapitre V
Mise en œuvre
V.8 Implémentation de l’algorithme NSBBO-II
Pour implémenter l‘algorithme NSBBO-II, plusieurs étapes doivent être réalisées :
V.8.1 Initialisation de la population :
On a pris les valeurs suivantes : 𝑘𝑝𝑚𝑎𝑥 = 𝑘𝑑𝑚𝑎𝑥 = 100.
V.8.2 Calcul des HSI:
Calculer les 𝐻𝑆𝐼𝑗 𝑗 = 1. .6 (𝐻𝑆𝐼𝑗 = 𝐼𝐴𝐸𝑗 ) de chaque habitat de la population.
V.8.3 Trier la population courante :
Calculer le rang et crowding distance de chaque habitat triés ensuite en se basant
sur la procédure de la non-domination.
V.8.4 Sélection des k meilleurs habitats:
Sélection des k meilleurs habitat et les enregistrer dans une population temporaire Q
V.8.5 Appliquer l’opérateur de migration :
Pour modifier la population P en P‘, on applique l‘opérateur de migration en se
basant sur le taux d‘immigration 𝜆 et le taux d‘émigration 𝜇 dont la probabilité de
modification 𝑃𝑚𝑜𝑑 = 1
V.8.6 Appliquer l’opérateur de mutation :
Appliquer l‘opérateur de mutation pour modifier les habitats de la population P‘
dont la probabilité est 𝑝𝑖 < 𝑃𝑚 sachant que P𝑚 est la probabilité de mutation et 𝑝𝑖 est la
probabilité de mutation de l‘habitat i.
V.8.7 Calcul des HSI des nouveaux habitats:
Calculer les 𝐻𝑆𝐼𝑗 𝑗 = 1. .6 (𝑓𝑗 = 𝐼𝐴𝐸𝑗 ) de chaque habitat de P‘ après mutation.
V.8.8 Fusion:
Fusionner les populations Q et P‘ après mutation en une seule population R.
V.8.9 Trier la population R :
Calculer le rang et crowding distance de chaque habitat de la population R puis
trier les habitats en se basant sur la procédure de la non-domination de Pareto.
V.8.10 Former la population suivante P:
Sélectionner les N meilleur habitats (ayant le minimum des rangs, et pour les
habitats du même rang, on choisit ceux ayant la crowding distance la plus grande) de R
pour former la population de l‘itération suivante
89
Mise en œuvre
Chapitre V
V.8.11 Retour à V.6.4 :
Répéter les étapes de V.6.4 à V.6.10 jusqu‘à un nombre de génération prédéfinit.
V.9 Les résultats de l’algorithme NSBBO-II
Le tableau suivant résume les valeurs prise pour implémenter l‘algorithme
NSBBO-II :
𝐏𝒎𝒐𝒅
k
1
2
Tableau V.7 : Paramètres standard d‘un algorithme NSBBO-II
On a implémenté l‘algorithme NSBBO-II plusieurs fois en changeant le nombre de
génération (Nbr-Gen) et la taille de la population (N).
On a choisi les résultats obtenus en utilisant les paramètres cités dans le tableau V.8
Nbr-Gen
N
𝐏𝒎
2
3
1/12
Tableau V.8: Paramètres d‘exécution de l‘approche NSBBO-II
L‘algorithme NSBBO-II est utilisé pour régler les gains PD de la commande par
découplage non linéaire. Les résultats obtenus sont les positions angulaires
actuelles 𝑞𝑗 (𝑗 = 1,2,3,4,5,6 ) et les vitesses angulaires actuelles 𝑞𝑝𝑗 , qui sont
comparées respectivement avec les positions et les vitesses angulaires désirées.
90
Mise en œuvre
Chapitre V
Desired joint position q1
Desired joint position q2
0.4
1.5
Desired position
current position
Desired position
current position
0.3
1
0.2
0.5
Position (rad)
Position(rad)
0.1
0
-0.1
0
-0.5
-0.2
-1
-0.3
-0.4
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
-1.5
1
Fig. V.53 Test de NSBBO-II sur la position q1
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.54 Test de NSBBO-II sur la position q2
Desired joint position q3
-0.8
-22
Desired position
current position
5
Desired joint position q4
x 10
Desired position
current position
-1
0
-1.4
Position (rad)
Position (rad)
-1.2
-1.6
-5
-10
-1.8
-15
-2
-2.2
0
0.1
0.2
0.3
0.4
0.5
0.6
Time(s)
0.7
0.8
0.9
1
Fig. V.55 Test de NSBBO-II sur la position q3
-20
0
0.1
0.2
0.3
0.4
0.5
0.6
Time(s)
0.7
0.8
0.9
1
Fig. V.56 Test de NSBBO-II sur la position q4
Joint position q6
Desired joint position q5
1
0.6
Desired position
current position
0.4
Desired position
current position
0.8
0.6
0.4
Velocity (rad/s)
Position (rad)
0.2
0
-0.2
0.2
0
-0.2
-0.4
-0.4
-0.6
-0.6
-0.8
-0.8
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.57 Test de NSBBO-II sur la position q5
-1
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
Fig. V.58 Test de NSBBO-II sur la position q6
91
1
Mise en œuvre
Chapitre V
Joint velocity qp1
Joint velocity qp2
1.4
0.5
Desired velocity
current velocity
1.2
Desired velocity
current velocity
0
-0.5
1
Velocity (rad/s)
Velocity (rad/s)
-1
0.8
0.6
0.4
-1.5
-2
-2.5
0.2
-3
0
-0.2
-3.5
-4
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
0
1
Fig. V.59 Test de NSBBO-II sur la vitesse qp1
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.60 Test de NSBBO-II sur la vitesse qp2
Joint velocity qp3
2
-20
Desired velocity
current velocity
2.5
Joint velocity qp4
x 10
Desired velocity 4
current velocity
2
1.5
1
1
Velocity (rad/s)
Velocity (rad/s)
1.5
0.5
0.5
0
-0.5
-1
0
-1.5
-2
-0.5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.61 Test de NSBBO-II sur la vitesse qp3
-2.5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.62 Test de NSBBO-II sur la vitesse qp4
Joint velocity qp6
Joint velocity qp5
1
2
Desired velocity
current velocity
Desired velocity
current velocity
0.8
0.6
1.5
Velocity (rad/s)
Velocity (rad/s)
0.4
1
0.5
0.2
0
-0.2
-0.4
-0.6
0
-0.8
-0.5
-1
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.63 Test de NSBBO-II sur la vitesse qp5
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Fig. V.64 Test de NSBBO-II sur la vitesse qp6
92
Mise en œuvre
Chapitre V
On peut observer que les courbes des positions articulaires obtenues par
l‘algorithme NSBBO-II convergent vers les courbes des positions désirées comme
montrent les figures V.53 à V.58 et les courbes des vitesses articulaires obtenues par
l‘algorithme NSBBO-II convergent vers les courbes des vitesses désirées comme
montrent les figures V.59 à V.64.
La figure V.65 montre les erreurs absolues des positions articulaires obtenues en
minimisant simultanément l‘intégrale de l‘erreur absolue (IAE) des six articulations
montrée dans la figure V.66.
0.016
|e1|
|e2|
|e3|
|e4|
|e5|
|e6|
0.014
Absolute error(rad)
0.012
0.01
0.008
0.006
0.004
0.002
0
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Figure. V.65 Les erreurs absolues en positions articulaires
0.8
IAE1
IAE2
IAE3
IAE4
IAE5
IAE6
0.7
0.6
IAE (rad)
0.5
0.4
0.3
0.2
0.1
0
0
0.1
0.2
0.3
0.4
0.5
Time(s)
0.6
0.7
0.8
0.9
1
Figure. V. 66 Les IAE des positions articulaires
93
Mise en œuvre
Chapitre V
Le tableau V.9 présente quelques itérations de commandes issues de l‘exécution de
l‘algorithme NSBBO-II en utilisant les paramètres des tableaux 7 et 8, montrant les
valeurs des gains 𝑘𝑝 , 𝑘𝑑 générés par l‘algorithme et les valeurs des IAE associés.
Iterat
_2
Iterat
_10
Iterat
__20
Iterat
__30
Iterat
__40
Iterat
__50
Iterat
__60
Iterat
__70
Iterat
__80
Iterat
__90
Iterat
__100
Iterat
__101
𝒌𝒑𝟏
48
76
21
67
25
32
3
91
30
2
85
1
𝒌𝒑𝟐
83
31
100
43
27
27
71
87
25
63
73
26
𝒌𝒑𝟑
51
99
2
68
75
52
25
2
64
47
28
72
𝒌𝒑𝟒
78
89
77
3
51
0
60
5
56
2
10
41
𝒌𝒑𝟓
49
39
70
89
41
96
62
36
20
71
18
44
𝒌𝒑𝟔
2
92
80
2
11
90
91
35
100
14
38
79
𝒌𝒅𝟏
25
68
43
57
20
53
36
77
14
41
38
94
𝒌𝒅𝟐
55
93
2
2
31
78
97
88
43
94
45
2
𝒌𝒅𝟑
49
98
8
82
32
11
98
27
17
11
2
17
𝒌𝒅𝟒
72
32
18
97
42
1
61
67
8
58
12
79
𝒌𝒅𝟓
20
2
83
18
91
12
40
10
82
51
35
43
𝒌𝒅𝟔
53
99
79
39
94
99
16
99
28
13
86
93
IAE1
6,8770
e-06
0,0016
0,0143
0,0437
0,0881
0,1399
0,1902
0,2272
0,2445
0,2503
0,2697
0,2721
IAE2
2,0631
e-05
0,0034
0,0378
0,1220
0,2518
0,4051
0,5518
0,6611
0,7143
0,7299
0,7832
0,7897
IAE3
1,0316
e-05
0,0018
0,0207
0,0661
0,1313
0,2038
0,2702
0,3202
0,3430
0,3522
0,3823
0,3860
IAE4
0
5,6247
e-25
3,0153
e-22
3,6837
e-21
5,1438
e-21
1,0145
e-20
2,1927
e-20
3,7725
e-20
4,7941
e-20
5,2978
e-20
5,6788
e-20
5,7155
e-20
IAE5
1,0316
e-05
0,0020
0,0205
0,0650
0,1302
0,2063
0,2771
0,3308
0,3566
0,3647
0,3919
0,3952
IAE6
0
0
0
0
0
0
0
0
0
0
0
0
Tableau V.9 : Quelques itérations de commandes issues de l‘exécution de l‘algorithme
NSBBO-II en utilisant les paramètres des tableaux 7 et 8.
94
Chapitre V
Mise en œuvre
V.10 Conclusion
Dans ce chapitre on a appliqué l‘approche NSGA-II et l‘approche NSBBO-II pour
le réglage automatique des gains PD du contrôle auxiliaire de la commande par
découplage non linéaire du bras manipulateur PUMA560.
A tout moment, Les programmes cherchent une combinaison des gains en
minimisant simultanément dans l'espace articulaire l‘Intégrale de l‘Erreur Absolue (IAE)
de chaque position articulaire.
Les méthodes implémentées NSGA-II et NSBBO-II ont présenté des résultats
d‘une bonne qualité et ont montré leur efficacité par les résultats des simulations obtenus.
95
Conclusion
Générale
Dans ce travail nous avons appliqué quelques approches évolutionnaires multiobjectifs pour le réglage des gains PD du contrôle auxiliaire de la commande par
découplage non linéaire pour mieux contrôler la trajectoire du bras manipulateur
PUMA560.
Les algorithmes évolutionnaires multi-objectifs connus pour leur flexibilité et leur
robustesse, ont été choisis comme méthode de résolution du problème d‘optimisation des
gains du contrôleur du système PUMA560 caractérisé par six articulations. Et pour bien
contrôler le mouvement du bras, il faut choisir la bonne combinaison des gains PD de
chaque articulation, autrement dit choisir simultanément douze gains pour que chaque
articulation atteigne sa position finale.
Nous avons présenté dans ce travail quelques algorithmes d‘optimisation multiobjectifs, et on a choisi d‘appliquer deux approches :
 La première approche est l‘algorithme génétique multi-objectif conçu par
K. Deb appelé l‘algorithme NSGA-II qui a prouvé sa performance dans
plusieurs travaux.
 La deuxième approche est l‘algorithme NSBBO-II qui est une version
multi-objective de l‘algorithme BBO et utilise la procédure de la nondomination de l‘algorithme NSGA-II.
Pour implémenter ces approches, nous avons supposé que le modèle du bras est
parfait, aucun bruit de commande n‘existe. Ainsi que nous avons supposé que les
positions et vitesses articulaires sont mesurables et que les mesures ne sont pas bruitées.
Nous avons commencé par la simulation du modèle dynamique du bras
manipulateur PUMA560 ainsi que sa loi de commande dans l‘environnement S IMULINK
en utilisant des gains PD ajustés empiriquement pendant toute la simulation. Puis on a
implémenté dans l‘environnement MATLAB les approches multi-objectifs adoptées pour
la régulation des gains PD à tout instant de la simulation.
Les résultats obtenus sont d‘une bonne qualité et on peut conclure que les
algorithmes NSGA-II et NSBBO-II peuvent être utilisés comme solutions
complémentaires pour améliorer la performance du réglage manuel des gains de la
commande par découplage non linéaire.
En guise de perspective, nous suggérons d‘améliorer ce travail en étudiant les
mêmes approches sur le même système en présence des perturbations extérieures.
Liste des Publications
Chouraqui Samira, Benzater Habiba ‗‘Controllers Tuning through Multi-objective
Non-Dominated Sorting Genetic Algorithms‘‘ World Journal Control Science and
Engineering ,2013, vol. 1,No .1,15-24
Habiba Benzater, Samira Chouraqui ‘‘PUMA 560 TRAJECTORY CONTROL
USING NSGA-II TECHNIQUE WITH REAL VALUED OPERATORS‘‘ International
Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.3, No. 3, August
2014
Samira Chouraqui, Habiba Benzater ‗‘Multi-Objective Biogeography-Based
Optimization Technique for tuning PUMA560‘s Controllers‘‘. Nonlinear
Dynamics(Springer) . DoI 10.1007/s1 1071-014-1833-z Publié le 09/12/2014
.
Références
Bibliographiques
[Alia, 2011] Alia Kamel ‗‗PLANIFICATEUR DE TRAJECTOIRE NEURONAL‘‘
UNIVERSITE EL-HADJ LAKHDAR-BATNA Faculté des sciences de l‘ingénieur
Département Electronique En vue de l‘obtention du diplôme de : Magistère en Robotique
2011
[Armstrong et al, 86] Brian Armstrong, Oussama Khatib, Joel Burdick, "The
Explicit Dynamic Model and Inertial Parameters of the PUMA 560 Arm", IEEE,
1986.
[Atahran et al, 2011] Ahmed Atahran, Christophe Lenté, Vincent T‘kindt, ‗‗Un
Algorithme Génétique pour Résoudre un Problème de DARP Multi-objectif‘‘ Université
François-Rabelais de Tours, Laboratoire d‘Informatique, 64 avenue Jean Portalis –
37200 Tours, France, 2011
[Bel, 2012] Belabbas Hadjer ‗L‘approche BBO pour l‘optimisation du régulateur PID des
systèmes linéaires‘, mémoire pour l‘obtention du diplôme Master en Informatique,
Université de Mascara, juin 2012.
[Belaidi et al, 2009] I. BELAIDI, K. MOHAMMEDI, B.BRACHEMI, ‗‗ Mise en œuvre
de l‘Algorithme NSGAII pour l‘Optimisation Multi-Objectif des paramètres de coupe en
Fraisage en bout‘‘ 19ème Congrès Français de Mécanique, Marseille, 24-28 août 2009.
[Ben, 2009] Benzater Habiba ‗‗Estimation de la trajectoire d‘un bras manipulateur
Puma560‘‘ mémoire pour l‘obtention du diplôme d‘ingéniorat en informatique USTOMB, 2009
[Carlos et al, 2010] Carlos A. Coello Coello ‗‗Fundamentals of Evolutionary MultiObjective Optimization‘‘ January 21, 2010
[Cha, 2004] CHAOUCH DJAMEL EDDINE « Contrôle robuste d‘un robot
manipulateur PUMA560 » 2004
[Chamseddine, 2005] Ahmed Chamseddine BEN ABDALLAH ‗ ‗Optimisation multiobjectif évolutionnaire‘‘ Rapport de Mémoire de Mastère d‘Ingénierie Mathématique,
école polytechnique de Tunisie, 2005
[Coello et al, 2001] Coello Coello, Carlos A. (2001).―A Short Tutorial on Evolutionary
Multiobjective Optimization‖. In Eckart Zitzler, Kalyanmoy Deb, Lothar Thiele,
Carlos A. Coello Coello and David Corne (éditeurs), First International Conference on
Evolutionary Multi-Criterion Optimization, Springer-Verlag, Lecture Notes in Computer
Science No 1993pp. 21-40.
[Corne al, 2000] D. Corne, J.Knowles and M.J Oates ‗‗The Pareto envelope-based
selection algorithm for multi-objective optimization. Pages 839-848, 2000
[Corne al, 2001] D. Corne, J.Knwles and M.J Oates. ‗‗ PESA-II: region-based selection
in evolutionary multi-objective optimization‘‘. In proceeding of the Genetic and
Evolutionary Computation Conference (GECCO-2001), pp. 283-290, Morgan Kaufmann
Publishers, San Francisco, California, July 2001.
[Craig, 2005] J. J. Craig ―Introduction to Robotics Mechanics and Control, Third
Edition‖ 2005 Pearson Education, Inc, ISBN 0-13-123629-6
[Craig, 86] J. J. Craig ―Introduction to Robotics Mechanics and Control, second Edition‖
.ISBN 0-201-09528-9, copyright 1989, 1986 by Addison-Wesley Publishing Company,
Inc
[D’Souza et al, 2010]Rio G. L. D‘Souza, K. Chandra Sekaran, and A. Kandasamy ‚
‗‗Improved NSGA-II Based on a Novel Ranking Scheme‘‘ JOURNAL OF
COMPUTING, VOLUME 2, ISSUE 2, FEBRUARY 2010, ISSN 2151-9617.
[Deb et al, 2002] Deb K, Pratap A., Agarwal S. et Meyarivan T. (2002). ―A Fast and
Elitist Multiobjective Genetic Algorithm:
NSGA-II.‖ IEEE Transactions on
Evolutionary Computation, Vol. 6, No2, pp.182–197.
[Deb, 2005] ‗‗A Tutorial on Evolutionary Multi-Objective Optimization (EMO)‘‘
Department of Mechanical Engineering, Indian Institute of Technology Kanpur, India,
February 6, 2005
[Erickson et al, 2001] Erickson. M, Mayer A et Horn J(2001) The Niched Pareto
Genetic Algorithm 2 Applied to the Design of Groundwater Remediation System‘‘
Dans : Echart Zitzler, Kalyanmoy Deb, Lothar Thiele, Carlos A. Coello Coello et David
Corn, éditeurs, First International
conference on Evolutionary Multi-Criterion
Optimization, pp. 681-695. Springer-Verlag. Lecture Notes in Computer Science, N°
1993, pp. 681-695
[Fonseca et al. 93] C. M. Fonseca and P. J. Fleming, ―Genetic algorithms for
multiobjective optimization: Formulation, discussion and generalization,‖ in Proceedings
of the Fifth International Conference on Genetic Algorithms,S.Forrest, Ed. San Mateo,
CA: Morgan Kauffman, 1993, pp. 416–423.
[Francisci, 2002] Dominique Francisci ‗‗Algorithmes évolutionnaires et optimisation
multi-objectifs en data mining‘‘, rapport de recherche du projet MECOSI, université
Nice Sophia Antipolis, mars 2002
[Gambier, 2008] A. Gambier ‗‘MPC and PID Control Based on Multi-objective
Optimization‖, 2008 American Control Conference Westin Seattle Hotel, Seattle,
Washington, USA, June 11-13, 2008
[Gong et al, 2010] W. Gong, Z. Cai, C. X. Ling b, H. Li ―A real-coded biogeographybased optimization with mutation‖ Applied Mathematics and Computation 216 (2010)
2749–2758, Crown Copyright 2010 Published by Elsevier Inc
[Gong et al, Springer 2010] Wenyin Gong, Zhihua Cai et Charles X.Ling ‗‗DE/BBO: a
hybrid differential evolution with biogeography-based optimization for global numerical
optimization‘‘ published online: 9 March 2010, Springer-Verlag 2010
[H Kundra et al, 2010] Harish Kundra et Monica Sood ‗‗Cross-Country Path Finding
using Hybrid approach of PSO and BBO ‘‘, International Journal of Computer
Applications (0975 – 8887) Volume 7– No.6, September 2010
[Hai-Ping et al, 2012] Hai-Ping Ma, Xie-Yong Ruan, Zhang-Xin Pan ―Handling
Multiple Objectives with Biogeography-Based Optimization―International Journal of
Automation and Computing, February 2012, 30-36. Doi: 10.1007/s11633-012-0613-9
[Head, 2010] STANDARD OPERATING PROCEDURE AND SAFETY ‗GUIDE FOR
PUMA 560 ROBOT‘ (Located in Rm. H -12 A Head Hall), August 5, 2010
[Her, 2007] Ignacio Herrera Aguilar ―Commande des bras manipulateurs et retour visuel
pour des applications à la robotique de service‘‘ Doctorat de l‘Université Toulouse III
(spécialité robotique) 2007
[Hongwei et al, 2013] Mo Hongwei and Zhidan Xu. " Research of Biogeography-Based
Multi-Objective Evolutionary Algorithm." Interdisciplinary Advancesin Information
Technology Research. IGI Global, 2013. 125-135. Web. 28 Oct. 2013. doi:10.4018/9781-4666-3625-5.ch010
[Horn et al, 94] Horn J., Nafpliotis N. et D.E. Goldberg (1994). ―A Niched Pareto
Genetic Algorithm for Multiobjective Optimization‖. Dans : Proceedings of the First
IEEE Conference on Evolutionary Computation, IEEE World Congress on
Computational Intelligence, Vol. 1,pp. 82-87, Piscataway, New Jersey. IEEE Service
Center.
[Huat, 2006] L.K. Huat ―Industrial Robotics: Programming, Simulation and
Application‖, ISBN 3-86611-286-6, pp. 702, ARS/plV, Germany, December 2006.
[Jaimes et al, 2009] A.L. Jaimes, S. Zapotecas Martinez, and C. A. C. Coello ―Chapter 1
An Introduction To Multi-Objective Optimization Techniques‖, In: Book Title Editor:
Editor Name, pp. 1-26 ISBN 00000000, 2009 Nova Science Publishers, Inc
[Jain et al, 2013] Jyoti Jain, Rameshwar Singh, ‗‗Biogeographic-Based Optimization
Algorithm for Load Dispatch in Power System ‘‘, International Journal of Emerging
Technology and Advanced Engineering, (ISSN 2250-2459, ISO 9001:2008 Certified
Journal, Volume 3, Issue 7, July 2013), Website: www.ijetae.com
[Kaur et al, 2013] Harpreet Kaur et Gaganpreet Kaur ‚‗‗A Survey on Comparison
between Biogeography Based Optimization and Other Optimization Method‘‘
,
International Journal of Advanced Research in Computer Science and Software
Engineering, Volume 3, Issue 2, February 2013, ISSN: 2277 128X. Research Paper
Available online at: www.ijarcsse.com
[Khalil, 88] W. khalil, E. Dombre ‘‘ Modélisation et commande des robots‘‘, ISBN 286601-142-2, ISSN 0981-7824, Hermes Edition, Paris, 1988
[Khemaies, 2005] M. Khemaies GHALI ‗‗Méthodologie de conception système a
base de plateformes reconfigurables et programmables‘‘, thèse pour l‘obtention du grade
de docteur en sciences université PARIS XI UFR scientifique d‘Orsay, 01 mars 2005
[Knowles et al, 1999] J.Knwles and D. Corne. ‗‗The Pareto Archived Evolution
Strategy: A new baseline algorithm for multi-objective optimization. In proceeding of the
1999 Congress On Evolutionary Computation, pages 98-105, IEEE Service Center, 1999.
[Lamamra, 2012] LAMAMRA KHEIREDDINE ‗‗Optimisation multi-objectifs par les
algorithmes génétiques et application à la commande des systèmes‘‘, Thèse Pour
l‘obtention du Diplôme de Docteur en Sciences, Université Mentouri, Constantine, 2012
[Lohokare et al, 2010] M.R. Lohokare, S. S. Pattnaik, S. Devi, K. M. Bakwad, D. G.
Jadhav ―BIOGEOGRAPHY-BASED OPTIMIZATION TECHNIQUE FOR BLOCKBASED MOTION ESTIMATION IN VIDEO CODING‖, NCCI 2010 -National
Conference on Computational Instrumentation, CSIO Chandigarh, INDIA, 19-20 March
2010
[Ma et al, 2011] H. Ma D. J Simon ―Analysis of migration models of biogeographybased optimization using Markov theory‖ Engineering Applications of Artificial
Intelligence 24 (2011) 1052–1060, Elsevier Ltd
[Maturana, 2009] ‗‗Contrôle Générique de Paramètres pour les Algorithmes
Evolutionnaires‘‘Thèse de doctorat, Spécialité : Informatique, Ecole Doctorale STIM,
ED 503 Université Angers, 2009
[Miller et al, 1995] Brad Miller, David E. Goldberg ‗‗Genetic algorithms, tournament
selection and the effects of noise‘‘, Technical Report 95006, Illinois Genetic Algorithms
Laboratory, 1995
[Moreira] N. Moreira, P. Alvito and P. Lima ‗‘First Steps towards an Open Control
Architecture for a PUMA560‘‘ Instituto de Sistemas e Robótica Departamento de
Engenharia Electrotécnica e de ComputadoresInstituto Superior Técnico, Torre Norte
Av. Rovisco Pais, nº 1, 1096 Lisboa Codex
[Mouadh, 2012] Mouadh Yagoubi
‗‗Optimisation évolutionnaire multi-objectif
parallèle :application à la combustion Diesel‘‘ Thèse pour obtenir le titre de Docteur en
Sciences de l‘Université de Paris Sud XI, 2012
[Piltan et all, 2012] F. Piltan, S. Emamzadeh, Z. Hivand, F. Shahriyari & M. Mirzaei
―PUMA-560 Robot Manipulator Position Sliding Mode Control Methods Using
MATLAB/SIMULINK and Their Integration into Graduate/Undergraduate Nonlinear
Control, Robotics and MATLAB Courses‖,International Journal of Robotic and
Automation, (IJRA), Volume (6) : Issue (3) : 2012
[Simon, 2008a] D.J Simon ―Biogeography-Based Optimization‖, IEEE
TRANSACTIONS ON EVOLUTIONARY COMPUTATION, VOL. 12, NO. 6,
DECEMBER 2008
[Simon, 2008b] Dan Simon ―Biogeography-Base Optimization‖, Cleveland State
University. Fall 2008
[Simon, 2011a] D. Simon, ―A Probabilistic Analysis of a Simplified BiogeographyBased Optimization Algorithm,‖ Evolutionary Computation, vol. 19, no. 2, pp. 167-188,
June 2011
[Simon, 2011b] Dan Simon ―A dynamic system model of biogeography-based
optimization‖ Soft Computing 11 (2011) 5652–5661, 2011 Elsevier B.V
[Sinha et al, 2011] A. Sinha, S. Das, and B. K. Panigrahi ―A Linear State-Space
Analysis of the Migration Model in an Island Biogeography System‖ IEEE
TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART A:
SYSTEMS AND HUMANS. 1083-4427/$26.00 © 2010 IEEE
[Srinivas et al, 1994] Srinivas N et Kalyanmoy Deb ―Multiobjective Optimization using
Nondominated Sorting in Genetic Algorithms‖. Evolutionary Computation, Vol. 2,
No3, pp. 221-248.
[Sumathi et al, 2010] S. sumathi and surekha. Paneerselvam ‗‗Computational
Intelligence Paradigms: Theory and Applications using MATLAB‘‘ , ISBN: 978-1-43980902-0, 2010 by Taylor and Francis Group, LLC
[Talbi, 2009] Talbi Hichem ‗‗Algorithmes évolutionnaires quantiques pour le recalage et
la segmentation multiobjective d‘images‘‘. Thèse de Doctorat en Science, Université
Mentouri Constantine, 2009
[Wang et al, 2011] Long WANG, Tong-guang WANG and Yuan LUO ‗‗Improved nondominated sorting genetic algorithm (NSGA)-II in multi-objective optimization studies
of wind turbine blades‘‘ Appl. Math. Mech. -Engl. Ed., 32(6), 739–748 (2011), Shanghai
University and Springer-Verlag Berlin Heidelberg 2011
[Web 1] http://academic.csuohio.edu/simond/EvolutinaryOptimizatio/Multi.zip dernier
accès Juin 2013
[Zhi-dan et al, 2013] Xu Zhi-dan, Mo Hong-wei, Xu Zhi-jie and Zhan Jianqin ‗‗Multiobjective Biogeoraphy-based Optimization Algorithm for the Control of Robotic
Manipulator‘‘ Advanced Materials Research Vol. 659(2013) pp59-63. (2013) Trans Tech
Publications, Switzerland
[Zitzler et al, 2001] Eckart Zitzler, Marco Laumanns et Lothar Thiele. SPEA2:
Improving the Strength Pareto Evolutionary Algorithm. Rapport technique 103, TIK,
ETH Zurich, 2001. 18, 20
[Zitzler et al, 1999] E. Zitzler et L. Thiele. Multi-objective Evolutionary Algorithms : A
Comparative Case Study and the Strength Pareto Approach. IEEE Trans. On
Evolutionary Computation, vol. 3, no. 4, pages 257–271, 1999. 16, 41
Résumé
Le but de ce mémoire est d'étudier l'utilisation de quelques méthodes
d‘optimisation multi-objective issues de l‘intelligence artificielle pour l‘optimisation
simultanée des gains PD du contrôle auxiliaire de la commande par découplage non
linéaire du bras manipulateur à six axes PUMA560.
Puisque les robots manipulateurs sont des systèmes non linéaires fortement
couplés, le réglage des gains du contrôleur avec précision est toujours nécessaire.
Les algorithmes évolutionnaires multi-objectifs appliqués dans ce travail de
magister sont l‘algorithme NSGAII et l‘algorithme NSBBO-II. Ils cherchent les gains
PD du contrôleur du bras en minimisant simultanément dans l'espace articulaire
l‘Intégrale de l‘Erreur Absolue IAE de chaque position articulaire.
Les résultats de simulation sont présentés pour prouver que les algorithmes NSGAII et NSBBO-II sont capable de générer des gains adéquats avec des erreurs négligeable
pour le système PUMA560 et fournissent des bonnes performances.
Mots clés : Algorithmes évolutionnaires multi-objectifs, NSGA-II, BBO, BBO multiobjectifs, Commande du bras manipulateur PUMA560.
Abstract
The aim of this work is to study the use of some multi-objective optimization
methods resulting from the artificial intelligence in the simultaneous optimization of the
computed torque controller gains of the PUMA560 arm manipulator.
And since robot manipulators are highly coupled nonlinear systems, fine-tuning of
controller gains is always needed.
The multi-objective evolutionary algorithms applied in this work are the NSGAII
and NSBBO-II algorithms. They search for the controller gains of the arm so that the six
Integral of the Absolute Error (IAE) in joint space are simultaneously minimized.
Simulation results are presented to show that the NSGA-II and the NSBBO-II are
capable of generating adequate gains for PUMA560 system with minimum errors and
providing a good closed-loop performance.
Keywords: Multi-objective evolutionary algorithms, NSGA-II, BBO, BBO multiobjectives, PUMA560 Arm manipulator control.
Téléchargement