Mise en oeuvre d’un système d’apprentissage par renforcement pour la gestion automatique des voiles sur un bateau à propulsion hybride voile moteur

66 350 0
Mise en oeuvre d’un système d’apprentissage par renforcement pour la gestion automatique des voiles sur un bateau à propulsion hybride voile moteur

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Institut de la Francophonie pour l’Informatique Institut National des Sciences Appliquées de Rennes Société Avel Vor Technologies MÉMOIRE DE FIN D’ÉTUDES MASTER D’INFORMATIQUE Mise en œuvre d’un système d’apprentissage par renforcement pour la gestion automatique des voiles sur un bateau propulsion hybride voile-moteur NGUYEN Le-Vinh Responsables de stage : Pierre-Yves GLORENNEC Ce stage a été réalisé au sein du Département informatique de l’Institut National des Sciences Appliquées de Rennes INSA de Rennes Hanoï, septembre 2007 Remerciements Je tiens remercier tout particulièrement Pierre-Yves GLORENNEC pour m’avoir encadré pendant ces cinq mois Je le remercie de son contact chaleureux, ses conseils et encouragements, son soutien permanent et la liberté de recherche qu’il bien voulu me laisser Mes plus sincères remerciements vont également tous les professeurs et les personnels de l’Institut de la Francophonie pour l’Informatique (IFI) pour m’avoir donne des cours de très bonne qualité et pour leur soutien tout au long de mes études l’IFI Un grand merci aux autres stagiaires au Département informatique de l’INSA de Rennes pour une ambiance de travail particulièrement favorable Je remercie chaleureusement mes camarades de la promotion XI pour leur amitié sans faille et je leur souhaite bonne chance pour la soutenance Merci enfin mes parents, ma femme et mes amis pour leur soutien et leur encouragement tout l’instant i Résumé Le travail du stage est réalisé dans le cadre du projet Grand Largue et sous la direction de la société Avel-Vor Technologie Grand Largue, c’est un vaste projet proposant par Pôle Mer Bretagne avec Avel-Vor Technologie, le porteur du projet, travaille sur les problèmes d’optimisation dans le monde maritime qui fournit des applications utilisant la logique floue et l’apprentissage automatique pour le projet Dans le cadre du projet, nous étudions et proposons des solutions utilisant des algorithmes d’apprentissage par renforcement pour piloter automatiquement un voilier afin d’améliorer les performances La première étape du projet, nous faisons des études des connaissances maritimes, de la logique floue, de l’algorithme d’apprentissage par renforcement et nous concevons un Système de Pilote Automatique Intelligent La partie principale de notre travail concerne un Système de Pilote Automatique Intelligent (SPAI) C’est un système intelligent qui peut donner des décisions pour piloter automatiquement le bateau Il peut contrôler la gîte du bateau, utiliser systématiquement la polaire de vitesse pour profiter l’énergie du vent Pour construire ce système, nous utilisons une méthode d’optimisation utilisant les Système d’Inférence Floue (SIF) Les SIF sont composés d’une collection de règles qui ont la forme générale : Si telle situation alors telle conclusion La table de règles est établie par des " experts " Nous avons utilisé le QFUZZ [3] pour construire un algorithme d’optimisation d’une SIF dans ce contexte du projet La méthode utilise des algorithmes d’apprentissage par renforcement qui sont présentés dans le chapitre 10 du livre [3] Afin d’estimer l’efficacité de la solution, nous l’avons testé sur un système de simulation et les résultats obtenus sont optimistes Actuellement, dans la condition réelle, il y a beaucoup de variables de milieu Notre simulateur tient en compte seulement des variables principales comme : le vent réel, l’accélération du bateau, la polaire de vitesse du bateau, l’oscillation du bateau, et le changement aléatoire du vent réel Il est nécessaire d’avoir plus de temps pour tester le système sur un bateau en conditions réelles A partir des résultats obtenus, nous trouvons que le SIF est une bonne direction La méthode QFUZZ a obtenu des résultats acceptables Mots-clés : logique floue, système d’inférence floue, pilote automatique, apprentissage automatique, apprentissage par renforcement ii Abstract This work of the internship is carried out within the scope of the Grand Largue project and under the direction of the company Avel-VOR Technology Grand Largue is a vast project proposing by Pôle Mer Bretagne with Avel-VOR Technology, the carrier of the project, works on the problems of optimization in the maritime world which provides applications using fuzzy logic and machine learning for the project Within the scope of the project, we study and propose solutions using the reinforcement learning algorithms to sail automatically a ship and to improve its performances The first stage of the project, we study the maritime knowledge, fuzzy logic, reinforcement learning algorithms and we design a Intelligent Autopilot System The main part of our work relates to an Intelligent Autopilot System It is an intelligent system which can give decisions to control the boat automatically It can control systematically the list of boat to use the polar speed for benefit energy of the wind To build this system, we use an optimization method using the fuzzy inference system (SIF) The SIF are composed of a collection of rules which have the general form : If such situation then such conclusion The rules table is drawn up by "experts" We used the QFUZZ [3] to build an optimization algorithm of a SIF in this context of the project The method uses reinforcement learning algorithms which are presented in the chapter 10 of the book [3] To estimate the effect of the solution, we tested it on a simulation system and the results obtained are optimistic Under the real condition, there are many variables of environment Our simulator considers only basic variables like : real wind, the acceleration of the boat, the speed polar of the boat, the oscillation of the boat, and random change of the real wind It is necessary to have more time to test the system on a boat in real conditions From the results obtained, we found that the SIF is a good direction Method QFUZZ obtained acceptable results Keywords : fuzzy logic, fuzzy inference system, autopilot, machine learning, reinforcement learning iii Table des matières Résumé ii Abstract iii Introduction 1.1 Problématique 1.2 Motivation et objectifs du stage 1.3 Environnement de travail 1.4 Contribution 1.5 Plan du document Etat de l’art 2.1 2.2 2.3 2.4 2.5 Travaux Relatifs 2.1.1 Introduction 2.1.2 X-Pilot 2.1.3 Le pilote intelligent et le simulateur Produits existants 2.2.1 Gyropilot Introduction de navigation 10 2.3.1 Parties d’un voilier 10 2.3.2 Théorie d’un voilier 11 2.3.3 Vent réel, vent de vitesse et vent apparent 11 2.3.4 Polaire de vitesse 13 2.3.5 VMG (Velocity Made Good) 13 Pilote automatique et pilote automatique intelligent 14 2.4.1 Modes du pilote classique 14 2.4.2 Limites d’un pilote classique 15 2.4.3 Améliorations du pilote intelligent 16 2.4.4 Stratégies de barre 16 Systèmes d’inférence floue 23 2.5.1 23 Variable linguistique iv 2.6 2.7 2.5.2 Sous-ensemble flou 23 2.5.3 Partition floue 23 2.5.4 Valeur de vérité d’une règle 24 2.5.5 Calcul de la sortie d’un SIF 24 2.5.6 Un exemple - Le lave-ligne 24 Apprentissage par renforcement 25 2.6.1 Q-Learning 26 2.6.2 Q-FUZ 27 2.6.3 Q-Learning flou 27 Conclusion 28 Solution proposée 3.1 29 Schéma global 29 3.1.1 Présentation 30 3.1.2 Composants 30 3.2 Le pilote automatique intelligent 32 3.3 Modes du pilote automatique 32 3.3.1 Mode VENT REEL 33 3.3.2 Mode CAP FIXE 34 3.3.3 Mode VMG 35 Programme de Pilote Automatique Intelligent 37 4.1 Conception du SPAI 37 4.2 Conception architecturale 37 4.2.1 Diagramme de collaboration 37 4.2.2 Diagramme de cas d’utilisation 39 4.2.3 Diagramme de déploiement 40 4.2.4 Diagramme de pacquages 40 4.2.5 Architecture des interfaces 43 Conception détaillée 43 4.3.1 Module d’interface graphique 43 4.3.2 Diagramme de classes 43 4.3.3 Diagramme d’état-transitions 45 Module de PAI 45 4.4.1 Diagramme de classes 45 4.4.2 Diagramme d’activité général 47 4.4.3 Algorithme de choix de la consigne 48 Module de décodage et d’encodage 48 4.5.1 Diagramme de classes 48 4.5.2 Diagramme d’activité du module de décodage et d’encodage 50 4.3 4.4 4.5 v 4.5.3 4.6 Diagramme d’activité d’envoi d’une consigne 51 Module de stockage des données 51 Résultat 53 Conclusions et perspectives 55 Bibliographie 56 vi Table des figures 1.1 Hiérarchie de commande et architecture de l’agence de pilote 2.1 Hiérarchie de commande et architecture de l’agence de pilote de X-Pilot 2.2 Architecture de réseau basé le CAN de X-Pilot 2.3 Architecture d’implementation de X-Pilot 2.4 Fonction d’appartenance pour l’accélération 2.5 Fonction d’appartenance pour la vitesse 2.6 Fonction d’appartenance pour le TWA 2.7 Les majeures parties d’un voilier : A - le cap, B - la voile, C - gouvernail 10 2.8 Les trois comportements de navigation différents 11 2.9 Relation des trois types de vent réel, de vent de vitesse et de vent apparent 12 2.10 Calcul deu vent réel 12 2.11 Polaire de vitesse du bateau génois, et du bateau spi de 13 kilo nœuds 14 2.12 Un exemple de VMG 15 2.13 Exploitation de la polaire de vitesse pour le prés 18 2.14 Exploitation de la polaire de vitesse pour le portant 20 2.15 Les différentes actions en fonction du TWA de la route suivre 22 2.16 Fonctions d’appartenance pour le poids et la quantité d’eau 24 2.17 Modèle standard représentant l’apprentissage par renforcement 26 2.18 Architecture de Q-FUZ 27 3.1 Schéma global 29 3.2 Composition interne du PAI 30 3.3 Module de décodage et d’encodage 31 3.4 Module de dialogue humain-machine 31 3.5 Utilisation du SIF pour donner la décision 32 3.6 Diagramme de fonctionnement du mode vent réel 33 3.7 Diagramme de fonctionnement du mode cap fixe 35 3.8 Diagramme de fonctionnement du mode VMG 36 4.1 Diagramme de collaboration entre les modules 38 4.2 Diagramme de cas d’utilisation 39 vii 4.3 Diagramme de déploiement 41 4.4 Diagramme de pacquages 41 4.5 Architecture des interfaces 43 4.6 Diagramme de classes d’interface graphique 44 4.7 Diagramme d’état-transitions du module d’interface 45 4.8 Diagramme de classes du module de PAI 46 4.9 Diagramme d’activité général du système 47 4.10 Algorithme de choix de la consigne 48 4.11 Diagramme de classes de des modules de décodage et d’encodage 49 4.12 Diagramme d’activité du module de décodage et d’encodage 50 4.13 Activité d’envoi d’une consigne 51 4.14 Diagramme de classes du module de stockages des données 51 5.1 Comparaison entre les trois algorithmes de pilote : (a) position/temps des pilotes, (b) vitesses moyennes des pilotes La vitesse moyenne du pilote = 105% celle du pilote La vitesse 5.2 moyenne du pilote = 105 % celle du pilote 53 Les étapes d’amélioration du pilot automatique intelligent 54 viii Liste des tableaux 2.1 Tableau de règles du système d’inférence floue 2.2 Tableau de règles du lave-ligne 25 2.3 Calcul la quantité d’eau avec Poids = 3,4 et Propreté = 0,22 25 3.1 Tableau de règles du SIF pour la stratégie au près 32 5.1 Tableau de règles initiales du SIF 54 5.2 Tableau de règles améliorées du SIF 54 ix Chapitre Solution proposée Ce chapitre présente la solution proposée pour ce sujet de stage qui contient l’architecture globale (cf session 3.1) et l’algorithme appliqué pour le logiciel Pour le algorithme d’apprentissage, on propose utiliser Q-Learning flou (cf session 2.6.3) associant le SIF (cf session 2.5) en choisir l’action de piloter le bateau 3.1 Schéma global BATEAU Capteurs Central de navigation Pilote BUS (série NMEA) PORT (série) PORT (série) PC Pilote PC Optima Décodage Logiciel Optima Stockage de données « Fichiers » F 3.1 – Schéma global 29 Encodage PAI Polaire de vitesse Dialogue d’humainmachine 3.1 Schéma global 30 3.1.1 Présentation Le schéma (figure 3.1) présente le fonctionnement et les composants principaux du système Le pilote automatique intelligent (PAI) est le cœur du système Il inclut un module d’apprentissage par renforcement et un module de décision qui utilise le système d’inférence floue (SIF) Le système contient trois blocs : – le bloc BATEAU est la partie mécanique du système qui contient le pilote, le bus série de communication, un central de navigation et les capteurs – le bloc PC Optima est l’ordinateur où on marche le logiciel Adrena Optima On l’utilise pour recueillir la polaire de vitesse – le bloc PC Pilote est composé des processus s’exécutant sur le PC accueillant l’Interface Homme Machine Il regroupe un module PAI et une interface graphique 3.1.2 Composants Module PAI C’est le cœur du système Il contient un module d’apprentissage renforcement, une base de connaissance et un système d’inférence floue En effet, le module d’apprentissage fonctionne comme un agent Il observe les PILOTE AUTOMATIQUE INTELLIGENT (PAI) Etat courant Apprentissage Infos courantes Connaissances Polaire de vitesse SIF Proposition de la consigne F 3.2 – Composition interne du PAI informations courantes, l’action du barreur et l’état du bateau pour construire des règles d’inférence floue et les stocke dans la base de connaissances A partir l’état courant du bateau et les informations courantes, le SIF utilise les règles stockées dans la base de connaissances pour proposer la consigne Dans le mode de pilote automatique, le logiciel utilise cette consigne pour contrôler directement le bateau Module de décodage et d’encodage On utilise le module de décodage pour convertir des trames NMEA en forme structurée et inversement, on utilise le module d’encodage pour convertir la consigne sous forme structurée en forme NMEA 3.1 Schéma global 31 Donnée A Donnée A (NMEA) Décodage Donnée B Donnée B (NMEA) structurée Encodage structurée F 3.3 – Module de décodage et d’encodage Module de dialogue humain-machine DIALOGUE HUMAIN MACHINE Infos Consigne proposée par PAI INFOS Consigne proposée Consigne Consigne par barreur F 3.4 – Module de dialogue humain-machine C’est l’Interface d’Utilisateur du système où le système affiche les informations du système, le PAI donne la consigne proposée et le barreur donne sa consigne pour contrôler le bateau Module stockage de données Le module stockage de données recueille les informations nécessaires qui sont envoyées par la central de navigation Normalement, les informations du bateau sont envoyées aléatoirement Il est nécessaire d’un module qui tient toutes les données courantes et sert aux autres modules n’importe quand Logiciel Optima En utilisant le logiciel Adrena Optima on peut recueillir facilement la polaire de vitesse du bateau et l’enregistre sous forme de fichier Notre système utilise ces données comme une information d’entrée du module PAI 3.2 Le pilote automatique intelligent 32 3.2 Le pilote automatique intelligent Le pilote automatique intelligent contient deux fonctionnements : pilote et apprentissage Pour le fonctionnement de pilote, on utilise le SIF pour donner la décision (3.5) partir des paramètres du milieu (∆AngC = T WABateau − AngleCible, ∆VitC = VitesseBateau − VitesseCible, et Acc - l’accélération) Чangle SIF Чvitesse Consigne (correction pour le pilote) Accélération F 3.5 – Utilisation du SIF pour donner la décision Le SIF utilise les règles : ∆AngC ∆VitC \ Acc N Z P N AG AM AL N Z AM ZR ZR P AL ZR ZR N AM AL ZR Z Z AL ZR ZR P ZR LL LM N AL ZR ZR P Z ZR ZR LL P ZR LM LG T 3.1 – Tableau de règles du SIF pour la stratégie au près Les valeurs obtenues pour la variation d’angle ∆Cap sont AG (abattre en grand), AM (abattre moyennement), AL (abattre légèrement), ZR (zéro), LL (lofer légèrement), LM (lofer moyennement) et LG (lofer en grand) et elles représentent des valeurs en degrés Pour obtenir la nouvelle consigne (Cons) du pilote, on réalise simplement l’opération suivante : Cons = Cons + ∆cap Q-Learning flou (cf session 2.6.3) est utilisé pour améliorer les règles de SIF Dans la formule 2.5, l’état xt = (∆AngC, Acc, ∆VitC) et ut = la consigne 3.3 Modes du pilote automatique Le système peut fonctionner dans trois modes : vent réel, cap fixe et VMG Pour chaque mode, on a des différents algorithmes pour contrôler le bateau A cause du problème de sécurité du bateau, l’action pour maintenir la gîte est toujours prioritaire 3.3 Modes du pilote automatique 33 3.3.1 Mode VENT REEL En mode vent réel, l’angle moyen du bateau par rapport au vent réal est contant C’est l’angle est fixé par le barreur Cet angle est calculé basé sur les expériences du barreur En basant la polaire de vitesse, le pilot intelligent peut abat ou lofe pour relancer la vitesse mais il doit toujours assurer que l’angle moyen est constant Le but du mode est que l’on réduit l’erreur entre la valeur de cap mesurée et la consigne Diagramme de fonctionnement Acquisition des infos courantes partir de la Centrale de Navigation Calcul de la vitesse cible (VitC),  de la gîte cible (GiteC),  de la variation de gîte (VarGîte) partir de la polaire ¨Angle = TWA – TWA fixe Acc = Vitesse(t) – Vitesse(t-1) ¨Vit = Vitesse(t) – VitC ¨Gîte = Gîte(t) – GîteC ¨cons1 = SIF(¨Angle, Acc, ¨Vit) ¨cons2 = SIF(¨Gîte, VarGîte) Si la gîte est bonne ? Faux Proposition de la consigne partir de ¨cons2 Vrai Proposition de la consigne partir de ¨cons1 F 3.6 – Diagramme de fonctionnement du mode vent réel Dans figure 3.6 on ne voit pas le module d’apprentissage parce qu’on le considère comme un agent et il fonctionne dans un processus indépendant Cet agent utilise l’algorithme d’apprentissage par renforcement pour optimaliser des valeurs des règles du SIF basé sur les données acquises Données nécessaires – La vitesse du bateau (Boat Speed) : il est important de savoir où la vitesse du bateau se situe par rapport la vitesse cible A fin d’obtenir ce paramètre on utilise le Loch Speedomètre et ces données sont transmises au bus série sous forme NMEA : $aaVTG,x.x,T,x.x,M,x.x,N,x.x,K*ss(CR)(LF) Speed in knots 3.3 Modes du pilote automatique 34 – L’angle du vent réel (TWA) : c’est l’angle du vent réel par rapport au cap du bateau Il est important afin d’éviter des écarts de la route On peut le calculer partir du vent apparent, de la vitesse et de la direction du bateau On utilise l’anémo-girouette pour mesurer la force et l’angle du vent apparent et ces données sont transmises au bus série sous forme NMEA : $IIVWT,xxx,a,xx.x,N,xx.x,M,,*ss(CR)(LF) True wind speed in knots From port [L] or from starboard [R] True wind angle 0Æ180 La direction du bateau est mesurée par le Compas et elle est transmise au bus série sous forme NMEA : $IIHDM,xxx,M*ss(CR)(LF) Magnetic heading in degrees – La force du vent réel : il est nécessaire de savoir la force du vent réel afin d’ajuster les vitesses cibles lors de variations du vent – La gîte du bateau : il est nécessaire de gérer la gîte du bateau On utilise un capteur angle de gîte (ou gitomètre) Explication des trames : $IIXDR,A,x.x,D,Heel Angle*0F(CR)(LF) Angle in degrees 3.3.2 Mode CAP FIXE Diagramme de fonctionnement En mode cap fixe, le barreur fixe le cap suivre (le cap cible) En basant la polaire de vitesse, le pilote intelligent conserve une bonne vitesse en suivantes les variations du milieu mais il assure toujours que le cap moyen est égal au cap cible Le but du mode est que l’on réduit l’erreur entre la valeur de cap mesurée et la consigne Données nécessaires – La vitesse du bateau (Boat Speed) : il est important de savoir où la vitesse du bateau se situe par rapport la vitesse cible On peut trouver le capteur et le format de la trame NMEA dans la session 3.3.1 – Le cap du bateau : dans ce mode, la priorité est de suivre une route la plus proche possible du cap suivre On peut trouver le capteur et le format du trame NMEA dans la session 3.3.1 – La force du vent réel : il est nécessaire de savoir la force du vent réel afin d’ajuster les vitesses cibles lors de variations du vent (voir plus la session 3.3.1) – La gîte du bateau : voir le capteur et le format du trame NMEA dans la 3.3.1 3.3 Modes du pilote automatique 35 Acquisition des infos courantes partir de la Centrale de Navigation Calcul de la vitesse cible (VitC),  de la gîte cible (GiteC),  de la variation de gîte (VarGîte) partir de la polaire ¨Angle = Cap –Cap fixe Acc = Vitesse(t) – Vitesse(t-1) ¨Vit = Vitesse(t) – VitC ¨Gîte = Gîte(t) – GîteC ¨cons1 = SIF(¨Angle, Acc, ¨Vit) ¨cons2 = SIF(¨Gîte, VarGîte) Si la gîte est bonne ? Faux Proposition de la consigne partir de ¨cons2 Vrai Proposition de la consigne partir de ¨cons1 F 3.7 – Diagramme de fonctionnement du mode cap fixe 3.3.3 Mode VMG En mode VMG, le pilote intelligent calcule le VMG basé sur la polaire de vitesse, et le vent réel temporaire La VMG peut répondre la question : «Quelle est la meilleure route pour me rapprocher de mon objectif ? » La VMG nous permet de trouver le bon compromis cap/vitesse en fonction des conditions du milieu afin d’avoir le meilleur gain au vent Diagramme de fonctionnement Données nécessaires – La vitesse du bateau (Boat Speed) : il est important de savoir où la vitesse du bateau se situe par rapport la vitesse cible On peut trouver le capteur et le format du trame NMEA dans la session 3.3.1 – L’angle du vent réel (TWA) : c’est l’angle du vent réel par rapport au cap du bateau Il est important afin d’éviter des écarts de la route – La force du vent réel : il est nécessaire de savoir la force du vent réel afin d’ajuster les vitesses cibles lors de variations du vent (voir plus la session 3.3.1) – La gîte du bateau : voir le capteur et le format du trame NMEA dans la session 3.3.1 3.3 Modes du pilote automatique 36 Acquisition des infos courantes partir de la Centrale de Navigation Calcul de la vitesse cible (VitCVMG), de l’angle cible (AngCVMG),  de la gîte cible (GiteC),  de la variation de gîte (VarGîte) partir de la polaire ¨Angle = TWA –AngCVMG Acc = Vitesse(t) – Vitesse(t-1) ¨Vit = Vitesse(t) – VitCVMG ¨Gîte = Gîte(t) – GîteC ¨cons1 = SIF(¨Angle, Acc, ¨Vit) ¨cons2 = SIF(¨Gîte, VarGîte) Si la gîte est bonne ? Faux Proposition de la consigne partir de ¨cons2 Vrai Proposition de la consigne partir de ¨cons1 F 3.8 – Diagramme de fonctionnement du mode VMG Chapitre Programme de Pilote Automatique Intelligent 4.1 Conception du SPAI Le chapitre nous a présenté les composants, leurs fonctions principales et les liens entre eux Cependant, il est seulement une vue générale envers notre système Pour réaliser le système, on doit avoir des conceptions plus détaillées qui précise des classes détaillées dans le système et comment elles sont intégrées ensemble Ce chapitre a deux parties principales : conception architecturale et conception détaillée La conception architecturale nous permet de décrire le système au niveau général Elle inclut le diagramme de collaboration, le diagramme de cas d’utilisation, le diagramme de déploiement, le diagramme de packages et l’architecture des interfaces La conception détaillée décrit des contenus concrets des classes et des liens entre eux 4.2 Conception architecturale 4.2.1 Diagramme de collaboration Comme avoir présenté dans le chapitre 3, le système contient trois blocs : le bloc BATEAU, le bloc PC Optima, et le bloc PC Pilote Les communications qui sont établies entre eux sont détaillées dans le diagramme de collaboration (figure 4.1, page 38) Ces liaisons de communication sont réalisées via des méthodes propres chacune de ces modules Leur fonctionnement et leur signature sont détaillées dans la suite de ce rapport Dans ce diagramme (figure 4.1), Optima Pro, Centrale de navigation et BUS Série sont les composants existants dans les PC Optima et BATEAU Nous devons construire les autres composants et relier eux dans un système unifié Les composants du logiciel : 37 Encodage Binaire Optima Pro getDonnees() Dialogue Humain-Machine sendAlerte () sendInfos () PAI getEtat() Acquisition de données sendPolaire () sendConsigneProposée () Centrale de navigation sendConsigne() BUS Série Binaire Binaire getPolaire() sendTraces() Polaire getPolaire() Fichiers 4.2 Conception architecturale 38 F 4.1 – Diagramme de collaboration entre les modules 4.2 Conception architecturale 39 – Acquisition des données : c’est le module de communication entre le composant de Centrale de navigation et le système En effet, nous ne connaissons pas le moment d’envoi des trames NMEAs de la Centrale de navigation C’est un composant externe qui peut envoyer un trame NMEA n’importe quel moment Donc on doit construire un module qui synchronise avec la Centrale de navigation et stocke toutes les informations importantes dans la mémoire Le module PAI peut les utiliser n’importe quand Une autre fonction de ce module est de décoder des trames NMEAs Normalement, le Centrale de navigation envoie des informations sous forme de NMEA qui sont des chaînes textuelle Dans ce module, on doit construire une classe qui extrait des données nécessaires dans ces chaînes – Fichiers : c’est l’ensemble de fichiers de configuration, de traces, de polaire de vitesse, de polaire de gîte Dans ce système, on utilise des fichiers comme une base de données simple – Polaire : le module gère la polaire de vitesse et la polaire de gîte Les polaires qui sont crées manuellement ou par le logiciel OptimaPro sont stockées dans les fichiers PolaireV.dat et PolaireG.dat La fonction du module est de les charger dans la mémoire et de répondre des interrogations concernant la polaire – PAI : le C’est le cœur du système qui contient deux modules importants : Apprentissage et Pilote Intelligent – Dialogue Humain-Machine : l’interface de communication entre l’utilisateur et le logiciel – Encodage : il encode des consignes du barreur en trames NMEAs 4.2.2 Diagramme de cas d’utilisation Le diagramme de cas d’utilisation nous donne la vue d’un utilisateur envers le système Dans notre système, il y a deux types d’utilisateur : barreur et expert (voir la figure 4.2, page 39) Voir l'état du bateau voir la proposition de consigne Donner les cibles Donner la consigne Barreur Choisir le mode de pilote intelligent Choisir le mode de barre automatique Voir des traces Donner des paramètres d'apprentissage Expert F 4.2 – Diagramme de cas d’utilisation – Barreur : qui observe l’état du bateau et barre manuellement le bateau partir des informations qui sont affichées sur l’écran et de la proposition de consigne du Pilote Intelligent Pour cet utilisateur on a six cas 4.2 Conception architecturale 40 d’utilisation : – Voir l’état du bateau : le barreur peut voir les données concernant l’état du bateau sur la fenêtre d’information Les informations incluent la direction du cap, la vitesse du bateau, la gîte du bateau, la direction du vent réel et la force du vent réel – Choisir le mode de pilote intelligent : le barreur peut choisir un des trois stratégies de pilote automatique intelligent : CAP FIXE, VENT REEL et VMG – Donner les cibles : il peut aussi entrer l’angle cible de cap en mode de CAP FIXE ou le TWA cible en mode VENT REEL – Choisir le mode de barre automatique : dans ce mode, le système barre automatiquement en utilisant les propositions de consignes du pilote intelligent – Voir la proposition de consigne : partir des informations courantes, le Pilote Intelligent donne la consigne proposée En mode de barre automatique, le système utilise cette consigne pour barrer directement le bateau – Donner la consigne : utilisant la fenêtre de pilote, le barreur peut conduit manuellement la bateau – Expert : qui suit les résultats fonctionnels du pilote intelligent afin de donner les paramètres appropriées dans la phase de test Avec cet utilisateur on a deux cas d’utilisation : – Voir des traces : l’expert peut voir des traces du bateau partir du fichier de trace Toutes les données du bateau sont enregistrées sous un fichier textuel – Donner des paramètres d’apprentissage : Avec chaque bateau, il faut changer des paramètres pour obtenir l’efficace optimale Dans la phase de test, on doit essayer plusieurs fois afin de trouver les valeurs optimales 4.2.3 Diagramme de déploiement Le diagramme de déploiement (figure 4.3, page 41) nous décrit des pacquages principaux, leurs dispositions et leurs associations du système Dans le PC Pilote on a quatre pacquages : – Interface : contient les classes d’interface d’utilisateur Nous construisons un dialogue d’Utilisateur-Machine qui contient toutes les fonctions qui sont présentées dans le diagramme de cas d’utilisation (figure 4.2, page 39) – Contrôle : c’est le cœur du système Il inclut des classes importantes de contrôle comme Pilote, Agent d’apprentissage et SIFloue – Gestion de données : contient les classes de traite de données Nous utilisons ce pacquage comme un système de gestion de base de données simple 4.2.4 Diagramme de pacquages Le diagramme de pacquages (figure 4.4, page 41) nous donne des contenus détaillés des pacquages qui sont décrits dans la session 4.2.3 (page 40) – Pacquage d’interface : il inclut les classes suivantes : – SPAI : c’est l’interface principale du logiciel Elle contient trois sous-fenêtres : Information, Pilote et 4.2 Conception architecturale 41 PC Pilote BATEAU «equipment» centrale de navigation «package» interface NMEA trames «package» gestion de données «package» conrôle PC optima «application» optima Polaire «file» fichiers F 4.3 – Diagramme de déploiement «package» interface Classes : - Pilote - Agent - SIF «package» contrôle «package» gestion de données «file» fichiers F 4.4 – Diagramme de pacquages Classes : - SPAI - Information - Calcul - Apprentissage Classes : - Config - PolaireVitesse - PolaireGite - Traces - StockageDonnees - Encodage - Decodage Fichiers : - config.txt - polaireV.dat - polaireG.dat - sif.dat - traces.dat - connaissance.dat 4.2 Conception architecturale 42 Apprentissage – Information : affiche toutes les informations courantes du bateau, le mode de pilote automatique et les valeurs de cible On ajoute cette fenêtre la fonction d’alerte qui affiche des alertes ou sonne l’alarme dans le cas dangereux – Calcul : contient les valeurs de calcul, la consigne proposée par le pilote intelligent et nous peuvent donner la consigne finale pour barrer directement le bateau – Apprentissage : cette fenêtre contient les paramètres qui servent la phase d’apprentissage Nous pouvons arrêter le processus d’apprentissage si nous trouvons que les règles sont assez bonnes – Pacquage de contrôle : il contient les classes suivantes : – Pilote : il utilise les fonctions de la classe SIF et les règles de la classe Agent pour donner la nouvelle consigne C’est la classe plus importante dans notre logiciel – Agent : il suit les données passées du bateau pour donner l’ensemble de règles optimales qui serviront au pilote intelligent – SIF : qui donne des décisions basé sur les inférences floues – Pacquage de Gestion de données : – Config : gestion des paramètres de configuration du logiciel – PolaireVitesse : charge la polaire de vitesse partir du fichier PolaireV.dat – PolaireGite : charge la polaire de gîte partir du fichier PolaireG.dat – Traces : stockage des traces sous le fichier traces.dat – StockageDonnees : stockage des informations courantes dans la mémoire – Décodage : décodage des données qui sont envoyées partir de la Centrale de navigation – Encodage : encodage de la consigne de barre – Fichiers de données : config.txt, polaireV.dat, polaireG.dat, sif.dat et traces.dat 4.3 Conception détaillée 43 4.2.5 Architecture des interfaces SPAI inclut inclut Pilote I nformations inclut Apprentissage F 4.5 – Architecture des interfaces 4.3 Conception détaillée 4.3.1 Module d’interface graphique L’interface graphique nous permet de contrôler le bateau en voyant les informations courantes du bateau, la consigne proposée par le pilote intelligent et en conduisant manuellement le bateau A partir de cette interface graphique, on peut aussi installer le mode de pilote automatiquement qui barre automatique le bateau basé sur des consignes du pilote intelligent Il contient trois sous-fenêtres : Information, Pilote et Apprentissage 4.3.2 Diagramme de classes SPAI SPAI est la classe principale du logiciel Quand cette classe est crée, en même temps, toutes les trois classes information, pilote et apprentissage sont crées creat crée la fenêtre principale du logiciel Elle charge chacun des autres modules et ouvre la fenêtre d’information help ouvre la fenêtre d’aide main la fonction principale de l’application Information creat crée la fenêtre d’information et tout de suite, les fonctions update et showData sont appelées pour afficher toutes les informations importantes changeMode change le mode (stratégie) du pilote automatique [...]... le vent entrainộ par le mouvement du bateau (voir 2.9) Vent apparent est la rộsultante en force et en direction du vent rộel et du vent de la vitesse La figure 2.9 nous prộsente le lien entre le vent apparent, le vent rộel, et le vent de vitesse Prenons un aprốs midi dộtộ, sans vent, faites un tour sur un bateau moteur Vous sentirez sur vos joues un ô vent ằ, cest le vent de la vitesse Sur un bateau. .. navigation 12 vent de vitesse vent rộel vitesse du bateau vent apparent F 2.9 Relation des trois types de vent rộel, de vent de vitesse et de vent apparent vent apparent = vent de vitesse + vent rộel (2.1) Pour contrụler efficacement un bateau, on doit calculer exactement tous ces trois vents On peut estimer le vent apparent par une girouette (mesure de la direction) et un anộmomốtre (mesure de la vitesse)... fournit des applications utilisant la logique floue et lapprentissage automatique pour le projet Le travail du stage est mise en ouvre dun systốme dapprentissage par renforcement pour la gestion automatique des voiles un bateau propulsion hybride voile- moteur Mon travail, avec le rụle dun informaticien, est de rộaliser la partie informatique du systốme Le travail rộaliser consiste : dộfinir un protocole... vitesse Sur un bateau voile, ce vent de la vitesse va sajouter au vent rộel Donc plus un voilier va vite, plus son vent apparent augmente et plus laxe du vent va se rapprocher de laxe du bateau En consộquence, plus on va vite, plus on devra border les voiles Cela est vrai par exemple sur des catamarans oự les voiles seront bordộs, par vent soutenu, comme au prốs jusqu des allures de largue 2.3 Introduction... de concevoir des systốmes de propulsion hybride bi-ộnergie performances Il fait la gestion des voiles et du couplage voile- moteur totalement automatique et optimisộe En fonction des vents et du courant, un routage optimal sera proposộ au capitaine du bateau Des systốmes dintelligence artificielle permettront aux logiciels dapprentissage automatiquement des variables et des paramốtres du bateau Dans... vent rộel est trốs important afin de profiter la polaire de vitesse pour augmenter la vitesse du bateau et pour ộconomiser lộnergie La session suivante nous prộsente la dộfinition de la polaire de vitesse et le calcul de la vitesse maximum thộorique du bateau basộ sur vent rộel et la polaire de vitesse 2.3.4 Polaire de vitesse La polaire de vitesse est la courbe qui dộcrit la vitesse thộorique dun bateau. .. crộer un systốme semi-autonome intelligent qui peut apprendre barrer bateau voiles en collaboration avec le barreur bord Ce systốme utilise des modốles mathộmatiques partiels pour prộdire le changement de lenvironnement et capturer la pleine dynamique du monde pour apprendre des expộriences Cest actuellement la combinaison de la mộcanique et lintelligence artificielle appliquộe Lindộpendance des aspects... chaque bateau Lauteur a fini une version imitative pour le pilote intelligent et la testộ dans le systốme de simulation Le rộsultat quil a obtenu est de 5% de plus que le pilote en mode VMG Les variables prises en compte Lauteur a choisi les trois variables les plus pertinentes pour la conduite dun bateau au prốs : laccộlộration du bateau, la vitesse du bateau et langle du bateau par rapport au vent rộel... contient ộgalement une bibliothốque ộtendue des algorithmes dapprentissage de machine Le SDK fournit aussi linfrastructure ộvộnement-basộe de donnộes pour le systốme entier Sensors et Virtual Sensors ont ộtộ dộfinis sur le SDK Les Sensors sont la reprộsentation de logiciel des sensors de matộriel montộes sur le bateau, corrigộ pour des erreurs de transmission Les Sensors Virtuels 2.1 Travaux Relatifs... changộ des ộquipements mộcaniques aux les systốmes ộlectroniques Le dộveloppement rapide des micro-ordinateurs a rendu limplộmentation des pilotes automatiques classiques rộalisable pour une rộgion plus large Le nombre croissant rộcent des voiliers de loisirs en mờme temps que des avances en informatique et conception de bateau a eu comme consộquence un nouvel intộrờt de recherches pour la conception des

Ngày đăng: 27/10/2016, 23:05

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan