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.