{"id":6114,"date":"2024-06-05T11:36:30","date_gmt":"2024-06-05T10:36:30","guid":{"rendered":"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/?p=6114"},"modified":"2024-06-06T05:24:08","modified_gmt":"2024-06-06T04:24:08","slug":"logiciel-de-prediction-de-pannes","status":"publish","type":"post","link":"https:\/\/blog.univ-angers.fr\/polytech_2A\/2024\/06\/05\/logiciel-de-prediction-de-pannes\/","title":{"rendered":"Logiciel de pr\u00e9diction de pannes"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Introduction :<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bonjour \u00e0 toutes et \u00e0 tous. Nous sommes Louis et Noah, deux \u00e9tudiants en deuxi\u00e8me ann\u00e9e de PEIP. Dans cet article nous allons vous pr\u00e9senter notre projet qui est le fruit de plus d\u2019une centaine d\u2019heures de travail, Fault Predictor Pro 2024.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Qu\u2019est-ce que Fault Predictor Pro 2024 ?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Notre projet est un logiciel windows qui utilise des algorithmes de machine learning pour pr\u00e9dire de potentielles pannes de panneaux solaires et d\u2019\u00e9oliennes. L\u2019int\u00e9r\u00eat de la pr\u00e9diction de panne est que cela permet de r\u00e9duire les co\u00fbts d\u2019entretien. En effet, en agissant sur une machine avant que la panne n&#8217;apparaisse, on peut limiter le temps d\u2019arr\u00eat de l\u2019appareil et \u00e9viter les \u00e9ventuelles pannes en s\u00e9rie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le fonctionnement du logiciel est assez simple :&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1- R\u00e9cup\u00e9rer des donn\u00e9es enregistr\u00e9es par les capteurs de ces appareils dans un grand fichier<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2- Importer ce fichier dans notre logiciel<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3- Modifier et s\u00e9lectionner les donn\u00e9es pertinentes pour pouvoir les analyser<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4- Pr\u00e9dire de futures pannes avec les donn\u00e9es actuelles.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Pr\u00e9sentation de Fault Predictor Pro 2024\" width=\"584\" height=\"329\" src=\"https:\/\/www.youtube.com\/embed\/MOT9KY6mPbg?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Vid\u00e9o de pr\u00e9sentation du logiciel<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ce qui nous a pouss\u00e9 \u00e0 choisir ce projet est qu\u2019il s\u2019agit d\u2019un sujet \u00e0 l\u2019intersection entre l\u2019informatique et les math\u00e9matiques, de plus, la popularisation de ces technologies a attir\u00e9 notre curiosit\u00e9 avec l\u2019envie de mieux comprendre leur fonctionnement. Une autre raison du choix de ce projet est le c\u00f4t\u00e9 applicatif, il r\u00e9pond \u00e0 un besoin concret dans les \u00e9nergies renouvelables.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les enjeux lors de la cr\u00e9ation de ce projet \u00e9taient multiples : choisir les technologies nous permettant de cr\u00e9er le logiciel, apprendre \u00e0 les utiliser, concevoir une interface utilisateur efficace, et enfin comprendre le traitement des donn\u00e9es et le fonctionnement des algorithmes de machine learning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1). Le choix des technologies<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous n\u2019avions qu\u2019une seule contrainte impos\u00e9e, le logiciel devait \u00eatre int\u00e9gralement \u00e9crit en langage python. Ce qui s\u2019est av\u00e9r\u00e9 \u00eatre une chance parce qu\u2019en plus d\u2019\u00eatre un des langages de programmation les plus simples, nous \u00e9tions familiers avec celui-ci.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il nous restait alors \u00e0 choisir les biblioth\u00e8ques python nous permettant de cr\u00e9er le programme. Pour l\u2019interface utilisateur nous avions le choix entre deux biblioth\u00e8ques : Tkinter et PyQt. Nous nous sommes tourn\u00e9s vers PyQt qui offre plus de fonctionnalit\u00e9s et de possibilit\u00e9s de personnalisation. Au vu de la richesse de cette biblioth\u00e8que nous sommes tr\u00e8s satisfaits de ce choix. Nous utilisons \u00e9galement Pandas pour la manipulation des fichiers qui est la r\u00e9f\u00e9rence dans cet usage, de m\u00eame pour : MatPlotLib qui nous permet de cr\u00e9er des graphiques, Numpy qui permet la modification des donn\u00e9es et Sklearn qui nous offre les algorithmes de machine learning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2). Concevoir une interface utilisateur efficace<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce projet est l\u2019application en interface utilisateur d\u2019un papier de recherche dont nos deux tuteurs sont \u00e0 l\u2019origine. Nous devions cr\u00e9er l\u2019interface la plus intuitive et simple possible pour rendre la technologie accessible \u00e0 tous. En effet notre logiciel, s\u2019il trouve une application industrielle, doit pouvoir \u00eatre utilis\u00e9 par des personnes ne connaissant rien \u00e0 la programmation et au machine learning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour cr\u00e9er une interface intuitive, il faut pouvoir varier les fa\u00e7ons d&#8217;interagir avec le logiciel. Nous avons mis :&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>des boutons<\/li>\n\n\n\n<li>des curseurs<\/li>\n\n\n\n<li>des bo\u00eetes \u00e0 choix multiples<\/li>\n\n\n\n<li>et une zone pour glisser et d\u00e9poser des fichiers.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Il fallait \u00e9galement rendre lisible le processus de configuration d\u2019un mod\u00e8le de machine learning. Nous avons alors mis une barre de progression qui affichait l\u2019avancement de l\u2019utilisateur dans la configuration. Il fallait \u00e9galement adopter la m\u00eame charte graphique sur chacune des pages en conservant le m\u00eame agencement de page. Nous nous sommes \u00e9galement aper\u00e7u que l\u2019utilisateur avait besoin de comprendre ce que faisait le logiciel en arri\u00e8re plan. Nous avons donc ajout\u00e9 des barres de chargement pour mieux visualiser la dur\u00e9e des calculs et du texte explicatif appara\u00eet lorsque l\u2019utilisateur survole un bouton avec sa souris.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3). Comprendre le traitement des donn\u00e9es et les principes du machine learning<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour pr\u00e9dire les pannes avec les algorithmes de machine learning, nos donn\u00e9es doivent suivre un processus de transformation bien pr\u00e9cis. Comme illustr\u00e9 dans le sch\u00e9ma ci-dessous.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/docsz\/AD_4nXd6poZ2meDkd5hT8L8aJOlMUa3d4azH_8tfMPfEO-L0GXGaFWe88nSlJSTL5db3inyb35h2nomdhRkYLEe6w2_AYpiDH051Ehh68lI3kat7QUVbCgdxDdTD8-luCeKWLYfeG7LBjLSQ7igg_JD54T8XKsg?key=WwqEnCrfGKzCBfzB6L2woQ\" alt=\"\" style=\"width:351px;height:auto\" \/><figcaption class=\"wp-element-caption\">Illustration du processus de traitement des donn\u00e9es<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En r\u00e9sum\u00e9, les \u00e9tapes sont les suivantes :&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1- S\u00e9parer le fichier en deux parties (les donn\u00e9es d\u2019entra\u00eenement du mod\u00e8le et les donn\u00e9es de test)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2- Normaliser ou standardiser les valeurs des colonnes<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3- Supprimer les caract\u00e9ristiques consid\u00e9r\u00e9es comme \u201cinsignifiantes\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4- \u201cR\u00e9duire\u201d la quantit\u00e9 d\u2019information tout en conservant suffisamment de pr\u00e9cision<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">5- Entra\u00eener le mod\u00e8le avec les donn\u00e9es d\u2019entra\u00eenement<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">6- Tester le mod\u00e8le avec les donn\u00e9es de test<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ces \u00e9tapes de traitement des donn\u00e9es peuvent para\u00eetre inutiles, mais elles permettent en r\u00e9alit\u00e9 de gagner beaucoup de pr\u00e9cision dans les pr\u00e9dictions. Mais pour cr\u00e9er un mod\u00e8le fiable, il faut surtout choisir les bons param\u00e8tres. C\u2019est pour cela que notre logiciel permet \u00e0 l\u2019utilisateur de cr\u00e9er autant de mod\u00e8les qu\u2019il le souhaite pour choisir \u00e0 la fin le meilleur mod\u00e8le avec les meilleurs param\u00e8tres.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Conclusion :<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous avons beaucoup appris de ce projet, nous avons am\u00e9lior\u00e9 nos comp\u00e9tences en programmation et ce fut l\u2019occasion d\u2019apprendre en un temps restreint les principes du machine learning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous n\u2019aurions pas imagin\u00e9 arriver \u00e0 un tel r\u00e9sultat, nous partions de loin et nous n\u2019\u00e9tions que deux pour un travail complexe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce logiciel est une fiert\u00e9 et nous souhaiterions \u00e9ventuellement poursuivre l\u2019exp\u00e9rience en contactant des entreprises industrielles qui pourraient \u00eatre int\u00e9ress\u00e9es. La d\u00e9marche de pr\u00e9sentation serait en soi une bonne exp\u00e9rience pour nous et ce travail pourra nous servir de support de communication pour pr\u00e9senter ce dont nous sommes capables<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous remercions \u00e9videmment nos deux tuteurs, Nizar Chatti et Bassel Chokr pour le temps qu\u2019ils nous ont consacr\u00e9 et les connaissances qu\u2019ils nous ont partag\u00e9.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Merci pour votre lecture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Louis Arnaud et Noah Raimbaud<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction : Bonjour \u00e0 toutes et \u00e0 tous. Nous sommes Louis et Noah, deux \u00e9tudiants en deuxi\u00e8me ann\u00e9e de PEIP. Dans cet article nous allons vous pr\u00e9senter notre projet qui est le fruit de plus d\u2019une centaine d\u2019heures de travail, &hellip; <a href=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/2024\/06\/05\/logiciel-de-prediction-de-pannes\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":108172,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[613],"tags":[],"class_list":["post-6114","post","type-post","status-publish","format-standard","hentry","category-2023-2024"],"_links":{"self":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/6114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/users\/108172"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/comments?post=6114"}],"version-history":[{"count":6,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/6114\/revisions"}],"predecessor-version":[{"id":6481,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/6114\/revisions\/6481"}],"wp:attachment":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/media?parent=6114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/categories?post=6114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/tags?post=6114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}