# Applications De Machine Learning A La Gestion Des Maintenances Des Générateurs Chez Hélios Towers DRC

Ngoy Mulopwe Sylvestre<fnref n="1" />, Kalumbu Kafwanda Joseph², Muhomba Olomani Trésor<fnref n="3" />, Kalenga Ilunga Georges<fnref n="4" />

## Résumé

Helios Towers (HT) possède et exploite des tours de télécommunications et des infrastructures passives dans plusieurs marchés africains à forte croissance, dont la RDC. Elle fournit de l'énergie électrique aux opérateurs de télécommunications en exploitant trois sources : un générateur électrique (groupe électrogène), des panneaux solaires et un réseau électrique national. Le générateur électrique reste une source principale pour la production d'énergie électrique et la maintenance est effectuée après une échéance de 250 heures, il s'agit d'une maintenance préventive. Or ladite maintenance fait face à certains impondérables environnementaux ou techniques. Les conditions environnementales de certains milieux d'exploitation affectent négativement les équipements ou les consommables utilisés sont parfois de mauvaise qualité, ou même la qualité de maintenance effectuée laisse à désirer. Ces défaillances compromettent à coup sûr la sureté du système et la sécurité du personnel. Par conséquent, nous assistons à des arrêts non planifiés des chaînes de production pour diverses causes parce que les interventions arrivent tardivement. Cela occasionne des pertes financières et des pertes de temps affectant directement la compétitivité des entreprises clientes. Dans notre travail, nous proposons une nouvelle approche de maintenance basée non seulement sur le nombre d'heures de fonctionnement du générateur électrique comme le seul facteur de gestion de maintenance, mais aussi sur le suivi de l'état de santé des composants critiques qui peut être réalisé à partir de l'analyse des valeurs prises par certaines de leurs grandeurs physiques ; il s'agit de la maintenance prédictive. Nous préconisons de concevoir et de réaliser une application basée sur l'internet des objets et l'apprentissage automatique. Les données collectées par des capteurs seront transmises vers un serveur et analysées par des algorithmes d'apprentissage automatique. L'application doit détecter une anomalie dans le fonctionnement du générateur, diagnostiquer l'origine de cette anomalie et prédire la durée de vie restante avant que le générateur ne s'arrête. Ainsi l'application planifie le moment opportun pour effectuer une maintenance avant l'arrêt du moteur.

<footnote n="1">¹,²Institut Superieur des Techniques Médicales Mampala, Département Informatique, Censure des Travaux et Recherches Scientifiques, Lubumbashi, Haut-Katanga, Republique Démocratique du Congo</footnote>

<footnote n="3">³Institut Superieur des Techniques Médicales Mampala, Département Informatique, Lubumbashi, Haut-Katanga, Republique Démocratique du Congo</footnote>

<footnote n="4">⁴Ecole de Santé Publique de l'Univesité de Lubumbashi, Lubumbashi, Haut-Katanga, Republique Démocratique du Congo</footnote>
**Motsclés:** générateur électrique, maintenance prédictive, composant électrique, apprentissage automatique, anomalie, application.

## INTRODUCTION

Le monde des télécommunications et de la production d'informations connait une vitesse accélérée au cours de ce siècle. La transmission rapide des données et informations de manière digeste aux utilisateurs devient la caractéristique majeure. La vitesse de transmission induit inéluctablement le développement des autres sphères sociales et économiques avec un impact visible dans une société qui devient largement tributaire des télécommunications[1]. L'étendue de son utilisation et son impact sur différents aspects de la vie actuelle et future des sociétés humaines sont devenus l'un des sujets les plus importants dans le monde et attirent l'attention de tous les pays[2].

Cependant, pour assurer un service continu, il importe de garantir la disponibilité de l'énergie. Il est sans conteste que l'industrie congolaise des télécommunications est butée à certains écueils relatifs à l'alimentation en énergie électrique des stations de base (BTS) d'un réseau de télécommunication, en particulier pour les zones rurales[3]. Notons qu'une BTS (Base Transceiver Station ou Station de Transmission de Base) est un ensemble d'émetteurs et récepteurs et est responsable des trafics dans une ou plusieurs cellules[4]. Elle permet d'accéder au réseau d'un opérateur de télécommunication en établissant un relais entre une station mobile et la partie radio. Par conséquent, fournir une alimentation électrique robuste et ininterrompue garantit la qualité du service à la clientèle.

Dans les régions éloignées, l'alimentation électrique garantie pour les BTS n'est pas une mince affaire, en particulier en raison de l'indisponibilité d'un réseau électrique national dans ce domaine. Trouver une solution fiable et économique pour alimenter en énergie électrique une BTS installée dans les zones rurales et en dehors du réseau électrique national devient une véritable gageure pour les opérateurs mobiles. Par conséquent, il importe d'examiner les options disponibles pour l'alimentation de la BTS dans l'industrie des télécommunications[5].

Les micro-réseaux autonomes d'énergie électrique sont des technologies de plus en plus importantes et répandues dans l'électrification rurale et dans la fiabilisation des systèmes d'énergie électrique. Ils intègrent typiquement des sources de production décentralisée d'électricité connectées entre elles (notamment le générateur photovoltaïque, les éoliennes, un système de stockage d'énergie, les générateurs diesel), alimentant des charges électriques via les lignes de distribution relativement courtes, qui peuvent fonctionner indépendamment du réseau conventionnel. Cette autonomie fait de ces technologies une solution adéquate pour les zones rurales des pays en voie de développement (cas typique de la République démocratique du Congo)[6].

L'entrée en scène des multinationales dans l'industrie congolaise des télécommunications engendre une compétition acharnée. Soucieux de fidéliser leurs abonnés respectifs et de générer des revenus substantiels, les opérateurs de télécommunications sont contraints d'améliorer la qualité de leurs services pour une meilleure satisfaction des clients. Réviser la stratégie de maintenance devient plus qu'une exigence. L'entreprise Helios Towers DRC œuvre dans ce secteur en fournissant de l'énergie électrique aux opérateurs des réseaux mobiles et fournisseurs d'accès Internet. Elle exploite trois sources principales d'énergie électrique, dont le réseau électrique national, le générateur Diesel ainsi que des centrales solaires. Ces deux dernières sources d'énergie nécessitent un entretien régulier étant donné l'instabilité de la fourniture électrique[7]. Helios Towers pratique deux formes de maintenance : la maintenance corrective et la maintenance préventive. La première s'exécute après détection d'une panne et est destinée à remettre
un bien dans un état dans lequel il peut accomplir une fonction requise. La maintenance préventive
systématique, c'est-à-dire maintenir les équipements de production, en particulier, le générateur diesel après
une échéance de 250 heures pour les générateurs diesel. Or, ladite maintenance fait face à certaines
impondérables environnementaux ou techniques. La poussière de certains milieux affecte négativement les
équipements, ou les consommables utilisés sont parfois de mauvaise qualité, ou même la qualité de
maintenance effectuée laisse à désirer. Ces défaillances compromettent à coup sûr la sureté du système et
la sécurité du personnel. Par conséquent, nous assistons à des arrêts non planifiés des chaînes de production
pour diverses causes parce que les interventions arrivent tardivement. Cela occasionne des pertes
financières et des pertes de temps affectant directement la compétitivité des entreprises clientes.

Pour pallier à cet écueil, nous préconisons un système de gestion de maintenance prédictive qui exploite
les données collectées à partir des capteurs, grâce à l'apprentissage automatique et à la surveillance des
équipements en temps réel. Il nous sera possible de déterminer avec exactitude le meilleur moment
d'entretenir les équipements et ainsi éviter des retards dans des interventions.

Notre système proposé, est une combinaison de plusieurs couches ou modules. Le premier module a pour
objectif de collecter des données de surveillance sur les composants critiques du générateur électrique. Les
données collectées doivent permettre de suivre dans le temps son état de santé et de comprendre ses
phénomènes de dégradation. Les données proviennent des capteurs installés sur les composants critiques.

Au niveau de la couche analyse, le diagnostic est effectué après la détection d'une anomalie. Les causes
des anomalies sont localisées et identifiées. Ce module vise à déterminer les relations reliant les causes et
les effets, afin d'isoler les défaillances et d'identifier leurs emplacements, leurs types et leurs causes. Alors
que le diagnostic vise à isoler et identifier les défaillances existantes, le pronostic a pour objectif de projeter
l'état de santé du système dans le futur et d'estimer sa durée de bon fonctionnement avant défaillance. Il
s'appuie sur les données issues des modules précédents pour fournir des informations sur l'état de santé
futur du système et sa durée de vie restante. Cette prédiction nécessite de connaître l'état de santé actuel du
système et les futures conditions d'utilisation. Les résultats de ce module constituent une entrée pour le
module d'aide à la décision. La détection d'anomalie, le diagnostic et la prédiction de la durée de vie
restante s'appuient sur les données issues des modules précédents qui fournissent les informations de l'état
de santé du générateur électrique. La couche Analyse est réalisée à l'aide des algorithmes d'apprentissage
automatique. Et la couche Application servira d'interface entre l'utilisateur et le système.

Récemment, les chercheurs ont lancé beaucoup de travaux de recherche afin d'appliquer les techniques de
l'apprentissage automatique à la maintenance industrielle. Par exemple, dans le travail de Tiago Zonta,
Cristiano André da Costa et les autres, dans leur article : « Predictive maintenance in the Industry 4.0: A
systematic literature review»[8] ; l'auteur a proposé une nouvelle approche de pronostic basée sur le modèle
cloud computing et le principe de multitenancy afin de présenter le pronostic en tant que service. Son
approche fournit une solution de pronostic efficace à la demande d'un client tout en assurant une meilleure
qualité du service. Il a implémenté et testé sur des données de moteurs d'avions de la NASA trois méthodes
de pronostic guidé par les données (réseau de neurones artificiels, système neuro-flou et réseau bayésien)
afin de tester l'efficacité de sa solution et de comparer les méthodes implémentées.

Dans l'article de Mounia Achouch, Mariya Dimitrova et les autres : « On Predictive Maintenance in Industry 4.0: Overview, Models, and Challenges»[9], l'auteur a réalisé un système permettant d'assurer l'analyse des signaux vibratoires d'une machine tournante dans le domaine temps/fréquence, qu'il a comparé avec un système d'apprentissage automatique capable de détecter et classer les défauts grâce à des algorithmes d'intelligence artificielle tels que DT, k-nn, SVM, Naives Bayes, ANN. L'application visant à
fournir un système de détection de défauts fiable afin de réduire les temps de dépannage et de favoriser un diagnostic rapide des pannes des systèmes industriels. Ainsi, en faisant l'extraction des caractéristiques des signaux dans le domaine temporel et fréquentiel, il a obtenu une fiabilité de 99,3 % avec la méthode cross validation. Cependant grâce à la méthode, il a pu obtenir un taux de classification de 100 % pour les différents niveaux de défauts considérés en effectuant plusieurs tests.

Le travail de Gilles Zwingelstein, est un état de l'art des méthodes de diagnostic et de pronostic de défaillances basées sur les données collectées sur les équipements et dont les objectifs avaient pour but d'éviter l'occurrence d'une défaillance. Selon lui, les principales méthodes et outils utilisant des données sont développés et concernent leurs sources et leurs traitements, la détection d'anomalies, les principes du diagnostic et du pronostic, et aussi dans le travail d'André Lannoy et Leila Marle sur les méthodes d'analyse, de diagnostic et de pronostic utilisées en fiabilité et maintenance industrielle. Ils donnent aussi les techniques d'estimation du temps de vie résiduelle et les choix des prises de décision pour les stratégies de maintenance[10]. Trois exemples d'applications représentatives sont présentés dans son article. Il finit par conclure sur les avantages et inconvénients de ces méthodes et outils.

Nos recherches ont été menées à Lubumbashi dans la commune de Lubumbashi, la zone 4 de la société Hélios. Ce travail est le résultat des recherches menées depuis le mois de janvier 2022 au mois de juillet 2024.

## CONCEPTION DU SYSTEME

Dans la présentation du système, nous commençons d'abord par définir les besoins fonctionnels et techniques de la solution proposée, ainsi que les configurations requises. Nous passons ensuite par la modélisation et la conception de l'application à travers les différents diagrammes SysML (diagramme de cas d'utilisation, de séquence et d'activité) et une étude de faisabilité technique. Nous clôturons enfin cette étape en présentant une architecture physique du système.

Nous avons opté pour la méthode Top-Down design ; l'approche descendante qui conduit à un prototypage de notre système de maintenance prédictive, puis à une étape de validation dans sa partie montante. La méthode Top-Down Design revêt une démarche descendante dans le projet de conception, d'implémentation et d'optimisation d'un projet. Elle consiste en une analyse du plus haut niveau d'abstraction vers le plus bas niveau. Elle se présente selon plusieurs parties.

Il convient donc tout d'abord, d'établir la solution logique fonctionnelle du système à concevoir sur la base du cahier des charges. Cette solution est modélisée en utilisant le formalisme SysML (Systems Modeling Language) à travers les diagrammes que propose ce langage. Une fois la modélisation définie, nous pouvons introduire les choix technologiques qui nous permettent de concrétiser la conception physique du système.
Cette conception inclut :

* Les choix matériels : capteurs, unité de traitement de données ; passerelle réseau, architecture réseau ;

* L'aspect logiciel du système : algorithmes d'apprentissage automatique et de diagnostic utilisés, gestion de la visualisation.

L'expression des besoins utilisateurs nous permet notamment de trancher sur les décisions complexes en connaissance de causes. Mais aussi, et surtout, d'orienter les solutions de conception en se basant sur des informations provenant du terrain auprès des utilisateurs.

La supervision des différents paramètres d'un générateur électrique à travers un tableau de bord : Notre système doit être capable de collecter les données sur l'état d'un générateur et les afficher sous forme de graphiques. Ainsi, l'utilisateur peut consulter les informations d'un site en saisissant un identifiant ou un
nom et visualiser les informations sur la température, la charge (en ampère), le niveau de liquide de refroidissement, le nombre d'heures de fonctionnement d'un générateur, la disponibilité du grid, la pression d'huile moteur et la date de la prochaine maintenance.

**Gestion des maintenances** : cette fonctionnalité planifie la prochaine maintenance d'un site en fonction de la durée de vie résiduelle et du temps de fonctionnement du générateur, de l'évolution de la température du moteur, de la pression d'huile moteur, en fonction du niveau de liquide de refroidissement. L'utilisateur sera en mesure de télécharger le planning de différentes maintenances des sites.

**Gestion des alertes** : cette fonctionnalité permet de déclencher une alarme une fois qu'une anomalie est détectée.

Les besoins techniques concernent les contraintes à prendre en considération pour mettre en place une solution adéquate aux attentes des utilisateurs. Les principaux besoins techniques que notre application doit impérativement assurer, se résument dans les points suivants :

* **Gestion des utilisateurs et droits d'accès** : on distingue principalement deux types d'utilisateurs : "administrateur" et "utilisateur normal" pour notre système, dont le premier permet de gérer les différents utilisateurs et d'effectuer la maintenance du système et le second d'utiliser le système.

* **Sécurité** : l'application devra être hautement sécurisée et les informations ne devront pas être accessibles à tout le monde, c'est-à-dire que le site web est accessible par un identifiant et un mot de passe attribués à une personne physique.

* **Interface** : avoir une application qui respecte les principes des interfaces homme/machine (IHM) tels que l'ergonomie et la fiabilité.

* **Portabilité et compatibilité** : notre application doit être portable sur tous les environnements logiciels (Windows, Mac OS, Linux), d'où compatible avec les autres services développés ou qui vont être développés.

L'architecture de notre système comprend quatre couches pour s'assurer que les données générées par le générateur électrique soient collectées par des capteurs, envoyées, stockées et traitées par des applications installées dans des serveurs distants.

La première couche de l'architecture de notre système est composée des capteurs comme unités d'acquisition des données sur le générateur électrique et d'une unité de traitement. Nous userons des capteurs de température, de pression d'huile moteur, de niveau de liquide de refroidissement et de courant d'un site. L'unité de traitement sert d'interface entre la couche physique et la couche transmission des données.

Une fois les données recueillies ; elles sont transmises à un serveur via un réseau de télécommunications. La deuxième couche est une couche réseau ou transmission qui permet de transporter les données de la couche périphérique vers un réseau local ou sur Internet, via une passerelle qui peut effectuer un traitement supplémentaire et regroupe souvent les communications avec de nombreux périphériques. La fonctionnalité de sécurité, y compris l'authentification, le cryptage et la protection contre les logiciels malveillants est effectuée ici, et certains traitements et prises de décision peuvent également être effectués dans cette couche. Pour le choix du réseau sans fil et de la technologie à utiliser dans notre système nous tiendrons compte de la portée, de la vitesse de transmission des données (débit) et du coût de déploiement.

La couche de traitement des données est responsable du stockage et du traitement de grandes quantités de données générées par le générateur électrique. Elle utilise des technologies de stockage distribuées et des outils d'analyse de données pour extraire des informations utiles à partir de ces données massives. Les
données collectées sont utilisées pour la prise de décision, la génération de rapports, l'apprentissage automatique (machine learning), etc.

La couche applicative représente les interfaces utilisateur et les applications qui permettent aux utilisateurs d'interagir avec le système et d'exploiter les données collectées. Cela inclut des tableaux de bord, des systèmes de surveillance, des applications industrielles, etc.

L'application sera construite directement sur les plateformes IoT qui offrent une infrastructure de développement logiciel avec des outils prêts à l'emploi pour l'exploration de données, l'analyse avancée et la visualisation de données.

<figure><img src="image_1.png" /><figcaption>Figure 1 : Architecture de l'internet des objets</figcaption></figure>

## A. Conception logique du système

Le langage SysML est basé sur UML (et peut donc être considéré par les utilisateurs comme un « profil UML »). Le SysML réutilise, avec une éventuelle adaptation, sept diagrammes UML (activités, séquence, états, cas d'utilisation, définition de blocs, bloc interne, package) et en propose deux nouveaux (exigences et paramétrique). Les diagrammes d'activités, de définition de blocs et de bloc interne ont été modifiés de manière importante par rapport à leur version UML : cela concerne les diagrammes d'activités, de classes et de classes structurées.

Le système a comme fonction principale la détection des pannes du générateur électrique et la prédiction du temps de fonctionnement restant avant son arrêt. Cette fonction met en interaction trois acteurs avec le système :

* Le générateur électrique fournit en permanence au système, de manière passive, les informations le concernant, notamment l'information de la pression d'huile moteur, de la charge du site en ampère, de la température de liquide de refroidissement, du nombre d'heures de fonctionnement, de la présence du courant électrique (grid) ;

* Le technicien : c'est la personne qui est censé exécuter une maintenance sur le générateur électrique.

* Le gestionnaire des maintenances (ou utilisateur final) reçoit les avis d'alarmes ; il peut consulter le fonctionnement d'un générateur à partir des données recueillies (historique des alertes, etc.) et planifier une maintenance en fonction de la durée de vie résiduelle. Cette consultation doit se faire via une interface informatique et suppose donc un accès à distance.
<figure><img src="image_2.png" /><figcaption>Figure 2 : Diagramme de définition de bloc</figcaption></figure>

Les diagrammes de bloc interne et les diagrammes de définition de bloc définissent la structure du système et identifient les éléments organisationnels à grande échelle du système. Ils peuvent afficher le flux d'informations entre les composants système et la définition d'interface via des ports.

Le diagramme des composants de notre système est composé de 4 blocs principaux :

* L'objet connecté, le générateur électrique avec comme propriétés suivantes (température de liquide de refroidissement, capacité, pression d'huile moteur, niveau de liquide de refroidissement) ;

* La passerelle IoT pour transmettre des données collectées sur le générateur vers le centre de traitement des données. Cette passerelle est caractérisée par un débit ;

* D'un serveur qui traite les données des capteurs à l'aide des algorithmes d'apprentissage automatique reçus des capteurs ;

* D'une application web servant d'interface entre le système et l'utilisateur.

<figure><img src="image_3.png" /><figcaption>Figure 3 : Diagramme de cas d'utilisation</figcaption></figure>

Ce diagramme de cas d'utilisation permet de représenter les fonctions d'un système du point de vue de l'utilisateur (appelé « acteur »). Cet acteur ne doit pas nécessairement être un utilisateur humain. Le rôle peut également être attribué à un système externe qui accède à un autre système. Le diagramme de cas
d'utilisation montre en fait la relation entre un acteur et ses demandes ou attentes vis-à-vis du système, sans décrire les actions en cours ni les mettre dans un ordre logique.

En pratique, cette structure est bien adaptée pour décrire de manière claire les fonctions et/ou les objectifs les plus importants d'un système. C'est pour cette raison que l'élaboration d'un diagramme de cas d'utilisation est souvent l'une des premières étapes lors de la conception d'une application ou de la planification de nouveaux processus métier. Cela permet de visualiser facilement et plus clairement les cas d'utilisation pris en compte dans la conception pour que les acteurs atteignent les objectifs escomptés sans tenir compte dans un premier temps de la faisabilité technique.

<figure><img src="image_4.png" /><figcaption>Figure 4 : Diagramme de séquence</figcaption></figure>

Cette figure est un diagramme de séquence ou dynamique. Il représente les échanges de messages entre les acteurs et le système ou entre des parties durant une séquence temporelle d'actions appelée scénario. Il permet de représenter la dynamique d'un cas d'utilisation ou la collaboration d'un ensemble d'objets internes au système. Il montre la séquence, représentation verticale chronologique, des messages passés entre blocs au sein d'une interaction.
<figure><img src="image_5.png" /><figcaption>Figure 5 : Diagramme d'activité</figcaption></figure>

Le diagramme d'activité est un outil pour représenter la séquence d'actions qui décrivent le comportement d'un bloc ou d'un autre élément structurel ; la séquence est définie à l'aide de flux de contrôle. Ils sont donc particulièrement adaptés à la modélisation du cheminement de flots de contrôle et de flots de données. Ils permettent ainsi de représenter graphiquement le comportement d'une méthode ou le déroulement d'un cas d'utilisation. La création d'un diagramme d'activité avec SysML permet aux utilisateurs de modéliser et de schématiser le comportement conditionnel et parallèle.

<figure><img src="image_6.png" /><figcaption>Figure 6: Diagramme d'état</figcaption></figure>

Les diagrammes d'états décrivent le comportement interne d'un objet à l'aide d'un automate à états finis. Ils présentent les séquences possibles d'états et d'actions qu'une instance de classe peut traiter au cours de son cycle de vie en réaction à des événements discrets. Ils spécifient habituellement le comportement d'une
instance de classeur mais parfois aussi le comportement interne d'autres éléments tels que les cas d'utilisation, les sous-systèmes, les méthodes. Le diagramme d'états offre une vision complète et non ambiguë de l'ensemble des comportements de l'élément auquel il est attaché. La vision globale du système n'apparaît pas sur le diagramme d'activités puisqu'ils ne s'intéressent qu'à un seul élément du système indépendamment de son environnement. Notre système présente 2 états par rapport à son fonctionnement. L'état normal signifie qu'aucune anomalie n'est détectée et l'état anormal signale un disfonctionnement, une alerte est déclenchée et prédit le temps restant avant l'arrêt du système.

<figure><img src="image_7.png" /><figcaption>Figure 7: Diagramme d'exigence</figcaption></figure>

Le diagramme d'exigences est utilisé pour formaliser les prérequis du système, se traduisant par des fonctionnalités ou conditions qui doivent ou devraient être satisfaites par le système.

## B. Conception physique du système

Le générateur électrique déployé sur un site n'est plus simplement un objet bardé des capteurs, mais par contre il embarque des ressources en CPU, mémoire, stockage, etc. Ce qui lui permet de transformer la donnée brute issue des capteurs en une information synthétique.

Nous avons porté notre choix sur la puce ESP32 de la société Espressif comme unité de traitement. L'ESP32 est un microcontrôleur qui peut fonctionner comme un système autonome complet ou comme périphérique esclave d'un MCU hôte, réduisant ainsi la surcharge de la pile de communication sur le processeur d'application principal. La puce comprend un Wi-Fi intégré, un Bluetooth et d'autres interfaces de communication telles que SPI et I2C/UART. Un avantage important que nous utilisons est la présence de deux cœurs de processeur. Plusieurs variantes de fournisseurs sont disponibles sur le marché, notamment Espressif ESP32S, ESP32-Wroom, LoRa ESP32, WeMos LOLIN32 et leurs clones.

Notre système de maintenance prédictive se présente comme un système de surveillance à distance multisensorielle : des capteurs sont installés sur le générateur électrique pour des mesures sur les composants critiques.

* Le capteur de pression d'huile KE21120 est une solution fiable et sûre pour mesurer avec précision la pression d'huile. Sa précision, sa durabilité et sa polyvalence en font un choix idéal pour une large gamme d'applications. La construction robuste du capteur et sa facilité d'installation en font un excellent outil pour les professionnels et les bricoleurs.
* Le capteur de température 102-2240 est un appareil multifonctionnel et très précis conçu pour un large éventail d'applications industrielles. Ce capteur de pointe est fabriqué à partir de matériaux de haute qualité et est conçu pour fournir des mesures de température fiables et précises dans des environnements difficiles.

* Capteur de niveau de température du liquide de refroidissement diesel, (Perkins CH12541) ; fabriqué en matériau durable, qui garantit une durabilité maximale, Installation facile.

* Capteur de courant à effet Hall D-C3T. Le capteur de courant à effet Hall démontable de la série D-C3T est un dispositif à boucle ouverte basé sur le principe de mesure de l'effet Hall, avec une isolation galvanique entre le circuit primaire et secondaire. Il fournit une mesure électronique précise des courants continus.

Le Teltonika RUTX12 est un routeur Wi-Fi LTE hautement fiable et sécurisé pour les applications professionnelles. Les routeurs Teltonika sont synonymes de fiabilité, d'innovation et de polyvalence. Cet appareil mobile robuste offre une communication cellulaire de haute performance dans des environnements difficiles et une large plage de températures de fonctionnement. Le routeur est équipé de quatre ports Ethernet, de deux supports de carte SIM externes, de voyants LED d'entrée/sortie numérique et de l'état du signal, tandis que des connecteurs SMA externes permettent de connecter les antennes souhaitées. RUT950 est un routeur professionnel LTE doté de RutOS, un système d'exploitation unifié pour tous les routeurs Teltonika, créé pour les applications de réseau mobile les plus exigeantes.

<figure><img src="image_8.png" /><figcaption>Figure 8: Passerelle IoT modèle Teltonika</figcaption></figure>

Chaque type de modèle (régression ; classification, etc.) peut avoir des algorithmes spécifiques associés à son entrainement. Dans le cas de notre travail, nous avons choisi d'exploiter 3 types d'algorithmes avec lesquels nous allons travailler sur nos données afin de produire un modèle de prédiction des pannes liées au générateur électrique ainsi que la durée de vie résiduelle : les machines à vecteurs de support (SVM), le KNN et la descente de gradient.

L'algorithme SVM, est une méthode de classification binaire par apprentissage supervisé, elle fut introduite par Vapnik en 1995. Cette méthode est donc une alternative récente pour la classification. Elle se repose sur l'existence d'un classificateur linéaire dans un espace approprié. Puisque c'est un problème de classification à deux classes, cette méthode fait appel à un jeu de données d'apprentissage pour apprendre les paramètres du modèle.

Elle est basée sur l'utilisation de fonctions dites noyau (kernel) qui permettent une séparation optimale des données. Dans la présentation des principes de fonctionnement, nous schématiserons les données par des « points » dans un plan. L'apprentissage par induction permet d'arriver à des conclusions par l'examen d'exemples particuliers. Il se divise en apprentissage supervisé et non supervisé. Le cas qui concerne les
SVM est l'apprentissage supervisé. Les exemples particuliers sont représentés par un ensemble de couples d'entrée/sortie. Le but est d'apprendre une fonction qui correspond aux exemples vus et qui prédit les sorties pour les entrées qui n'ont pas encore été vues. Les entrées peuvent être des descriptions d'objets et les sorties la classe des objets donnés en entrée.

Pour deux classes d'exemples donnés, le but de SVM est de trouver un classificateur qui va séparer les données et maximiser la distance entre ces deux classes. Avec SVM, ce classificateur est un classificateur linéaire appelé hyperplan. Il est évident qu'il existe une multitude d'hyperplans valides, mais la propriété remarquable des SVM est que cet hyperplan doit être optimal. Nous allons donc en plus chercher parmi les hyperplans valides, celui qui passe « au milieu » des points des deux classes d'exemples. Intuitivement, cela revient à chercher l'hyperplan le « plus sûr ». En effet, supposons qu'un exemple n'ait pas été décrit parfaitement, une petite variation ne modifiera pas sa classification si sa distance à l'hyperplan est grande. Formellement, cela revient à chercher un hyperplan dont la distance minimale aux exemples d'apprentissage est maximale. On appelle cette distance « marge » entre l'hyperplan et les exemples. L'hyperplan séparateur optimal est celui qui maximise la marge. Comme on cherche à maximiser cette marge, on parlera de séparateurs à vaste marge.

Intuitivement, le fait d'avoir une marge plus large procure plus de sécurité lorsque l'on classe un nouvel exemple. De plus, si l'on trouve le classificateur qui se comporte le mieux vis-à-vis des données d'apprentissage, il est clair que ce sera aussi celui qui permettra au mieux de classer les nouveaux exemples. Dans le schéma qui suit, la partie droite nous montre qu'avec un hyperplan optimal, un nouvel exemple reste bien classé alors qu'il tombe dans la marge. On constate sur la partie gauche qu'avec une plus petite marge, l'exemple se voit mal classé.

Parmi les modèles des SVM, on constate les cas linéairement séparables et les cas non linéairement séparables. Dans la plupart des problèmes réels, il n'y a pas de séparation linéaire possible entre les données, le classificateur de marge maximale ne peut pas être utilisé car il fonctionne seulement si les classes de données d'apprentissage sont linéairement séparables.

Pour surmonter les inconvénients des cas non linéairement séparables, l'idée des SVM est de changer l'espace des données. La transformation non linéaire des données peut permettre une séparation linéaire des exemples dans un nouvel espace. On va donc avoir un changement de dimension. Cette nouvelle dimension est appelée « espace de re-description ». En effet, intuitivement, plus la dimension de l'espace de re-description est grande, plus la probabilité de pouvoir trouver un hyperplan séparateur entre les exemples est élevée.

<figure><img src="image_9.png" /><figcaption>Figure 9: Algorithm support vector machine</figcaption></figure>
L'algorithme KNN (K-nearest neighbors) ou k plus proches voisins, est un discriminant d'apprentissage supervisé non paramétrique[11], qui utilise la proximité pour effectuer des classifications ou des prédictions sur le regroupement d'un point de données individuel. Bien qu'il puisse être utilisé pour des problèmes de régression ou de classification, il est généralement utilisé comme algorithme de classification, en partant de l'hypothèse que des points similaires peuvent être trouvés les uns à côté des autres.

L'hypothèse que des points similaires peuvent être trouvés les uns à côté des autres.

Le principe de base du KNN est de trouver les k échantillons d'entraînement les plus proches de l'échantillon de test et de prédire la classe de l'échantillon de test en fonction de ces k voisins. La proximité est définie par une mesure de distance. En général, la distance euclidienne est utilisée pour mesurer la distance entre les échantillons.

Dans la première étape, K est choisi par l'utilisateur et il indique à l'algorithme combien de voisins (combien de points de données environnants) doivent être pris en compte lors du rendu d'un jugement sur le groupe auquel appartient l'exemple cible. Dans la deuxième étape, notez que le modèle vérifie la distance entre l'exemple cible et chaque exemple du jeu de données. Les distances sont ensuite ajoutées dans une liste et triées. Ensuite, la liste triée est vérifiée et les étiquettes des K éléments supérieurs sont renvoyées. En d'autres termes, si K est défini sur 5, le modèle vérifie les étiquettes des 5 premiers points de données les plus proches du point de données cible. Lors du rendu d'une prédiction sur le point de données cible, il importe que la tâche soit une régression ou classification tâche. Pour une tâche de régression, la moyenne des K étiquettes supérieures est utilisée, tandis que le mode des K étiquettes supérieures est utilisé dans le cas de la classification.

<figure><img src="image_10.png" /><figcaption>Figure 10: Algorithme KNN</figcaption></figure>

L'idée de base derrière la descente de gradient est de mettre à jour de manière itérative les paramètres du modèle afin de minimiser la fonction de coût. Le point de départ n'est qu'un point arbitraire qui permet d'évaluer les performances. À partir de ce point de départ, la dérivée (ou la pente) est trouvée à partir de ce point de départ. Ainsi une ligne tangente est utilisée pour observer l'inclinaison de la pente. La pente renseigne sur les mises à jour des paramètres, c'est-à-dire les poids et les biais.

La pente au point de départ est plus forte, mais au fur et à mesure que de nouveaux paramètres sont générés, elle devrait progressivement diminuer jusqu'à atteindre le point le plus bas de la courbe, dénommé point de convergence.

L'objectif de la descente de gradient est de minimiser la fonction coût[12], ou l'erreur entre y prédit et y réel. Pour ce faire, deux points de données sont nécessaires : une orientation et un taux d'apprentissage. Ces facteurs déterminent les calculs de dérivée partielle des itérations futures, ce qui lui permet d'atteindre progressivement le minimum local ou global.
* Le taux d'apprentissage (également appelé taille de pas ou alpha) est la taille des pas effectués pour atteindre le minimum. Généralement faible, cette valeur est évaluée et mise à jour en fonction du comportement de la fonction de coût. Des taux d'apprentissage élevés se traduisent par des pas plus importants, mais avec le risque de dépasser le minimum. Inversement, un faible taux d'apprentissage présente des pas réduits. Bien qu'elles améliorent la précision, le nombre d'itérations compromet l'efficacité globale, car cela prend plus de temps et de calculs pour atteindre le minimum.

* La fonction de coût (ou de perte) mesure la différence, ou l'erreur, entre y réel et y prévu à sa position actuelle. Elle améliore l'efficacité du modèle de machine Learning en lui fournissant des informations qui l'aident à ajuster les paramètres afin de minimiser l'erreur et de trouver le minimum local ou global. L'algorithme itère en continu, se déplaçant dans la direction de la descente la plus raide (ou du gradient négatif) jusqu'à ce que la fonction de coût soit proche de zéro ou nulle. À ce stade, le modèle cesse d'apprendre. De plus, bien que les termes fonction de coût et fonction de perte soient considérés comme synonymes, il existe une légère différence entre eux. En effet, une fonction de perte fait référence à l'erreur d'un exemple d'entraînement, tandis qu'une fonction de coût calcule l'erreur moyenne sur la totalité d'un ensemble d'entraînement.

<figure><img src="image_11.png" /><figcaption>Figure 11: Algorithme de la descente de gradient</figcaption></figure>

REALISATION DU SYSTEME

Notre prototype est basé sur une architecture IoT. Le système d'acquisition des données est composé :

* Carte de développement NodeMCU : c'est le « cerveau » de notre prototype. Elle est basée sur la puce ESP8266 d'Espressif Systems et la principale caractéristique de cette puce est la prise en charge du Wi-Fi. La carte se connecte aux périphériques matériels et à l'interface graphique de notre plateforme NodeRed via MQTT.

* Capteur DHT11 : il s'agit d'un capteur de température et d'humidité, disponible chez Adafruit. La carte NodeMCU récupère périodiquement les valeurs du capteur et les envoie à notre plateforme afin que nous puissions les surveiller en temps réel.

* Capteur de courant ACS712 est sélectionné pour mesurer le courant en utilisant le concept de l'effet Hall. Le capteur de courant est connecté à une ligne d'une prise pour mesurer le courant. L'alimentation utilisée est de 5 volts et est utilisée pour alimenter le NodeMCU. La sortie du capteur est connectée à l'analogique A0 du NodeMCU. Le module relais est connecté à la broche D2 du microcontrôleur.

* Breadboard et fils de connexion : pour assembler tous les composants de manière agréable et présentable, nous utilisons une breadboard et des fils de liaison pour connecter toutes les broches des composants.
La communication entre le serveur et le nœud MCU est réalisée à l'aide du broker Mosquito. Le broker est chargé de recevoir tous les messages, de les filtrer, de décider qui s'y intéresse et de publier les messages à tous les clients abonnés. Mosquitto est un courtier de messages open source basé sur le protocole MQTT (Message Queuing Telemetry Transport). MQTT est un protocole de messagerie efficace et léger conçu pour la communication à partir d'appareils dont les ressources ou la bande passante sont limitées, comme l'Internet des objets. Le protocole MQTT fonctionne selon les principes du modèle de publication ou d'abonnement. Dans la communication réseau traditionnelle, les clients et les serveurs communiquent directement entre eux, où les clients demandent des ressources ou des données au serveur, puis le serveur traite et envoie une réponse. Cependant, MQTT utilise un modèle de publication ou d'abonnement pour découpler l'expéditeur du message (éditeur)[13], le destinataire du message (abonné), et un troisième composant, appelé agent de messagerie, contrôle la communication entre les éditeurs et les abonnés. Le broker Mosquito est installé sur le même serveur (ordinateur) exécutant Node-RED et les algorithmes de machine Learning.

Node-RED est un outil visuel permettant de créer des programmes ou des API directement dans le navigateur. Fondamentalement, Node-RED peut être considéré comme un remplacement du backend, ou même un fournisseur serverless. Il est aussi officiellement appelé un système de programmation "low-code". Il permet d'interagir avec un grand nombre de services en ligne différents, de dispositifs matériels et de bases de données en quelques clics seulement.

L'ESP8266 publie la température, le courant, la date, le temps de fonctionnement sur le broker Mosquito. L'application Node-RED est abonnée à ces rubriques. Elle reçoit donc les relevés des données publiées, les affiche sur un tableau de bord et les envoie vers un centre de traitement pour une prise de décision grâce aux algorithmes d'apprentissage automatique. Un algorithme de classification permet de détecter l'anomalie dans le fonctionnement du système et un autre permet de déterminer la durée de vie résiduelle.

<figure><img src="image_12.png" /><figcaption>Figure 12: Architecture du prototype</figcaption></figure>

Nous utilisons 3 environnements de développement : l'environnement Arduino IDE dédié à la configuration collecte de données, Scikitlearn dédié aux différents algorithmes d'apprentissage automatique et Node-Red à l'affichage de données.

Arduino IDE est utilisé pour initialiser des variables, démarrer des librairies, modifier le paramétrage des broches, etc. Après avoir utilisé la fonction **setup()**, la fonction **loop()** exécute de manière infinie le code à l'intérieur de ce bloc afin de répondre aux interactions demandées.
<figure><img src="image_13.png" /><figcaption>Figure 13: IDE Arduino</figcaption></figure>

Anaconda est l'une des nombreuses plateformes open source qui facilitent l'utilisation de langages de programmation open source (R, Python) pour le traitement de données à grande échelle, l'analyse prédictive et le calcul scientifique. La communauté de recherche environnementale peut choisir d'adapter l'utilisation de l'un des langages de programmation R ou Python pour analyser les problèmes de science des données sur la plateforme Anaconda[14]. Anaconda est installée avec un ensemble de bibliothèques pour le développement d'applications et d'algorithmes de machine Learning.

<figure><img src="image_14.png" /><figcaption>Figure 14: Environnement Anaconda pour l'apprentissage automatique</figcaption></figure>

Node-RED est un outil de développement opensource et gratuit, basé sur une programmation visuelle, permettant de connecter des périphériques matériels, des API ou des services en ligne dans le cadre de l'Internet des objets[15].

Node-RED fournit un éditeur de flux au sein d'un navigateur Web, et est articulé autour de nœuds (nodes). L'environnement est construit sur Node.js, les flux créés sont stockés à l'aide de fichiers JSON, les fonctions sont en JavaScript et les éléments des applications peuvent être enregistrés ou partagés pour être réutilisés. Node-RED est nativement en mesure de souscrire et publier en MQTT, ce qui en fait un compagnon idéal pour votre domotique[16].

Les nœuds disponibles sont nombreux et classés en catégories : les communs (avec l'injection de données, l'ajout de logs debug), les composants réseaux (pour faire des requêtes tcp, http oualse), des fonctions (soit à définir soi-même avec du code JavaScript, soit avec des fonctions logiques telles que de l'analyse de cas), des éléments permettant de formatter, trier, séparer ou joindre des données entre elles, du stockage de fichiers, ...
En plus des nœuds déjà existants, il est tout à fait possible d'ajouter des nœuds développés et proposés par la communauté[17].

<figure><img src="image_15.png" /><figcaption>Figure 15 : Node-Red</figcaption></figure>

## C. Préparation des données

La préparation des données est une étape cruciale pour entraîner un algorithme d'apprentissage automatique. Elle vise à transformer les données brutes en un format approprié pour l'entraînement du modèle. Voici les principales étapes de préparation des données.

a) Collecte des données : pour prédire les pannes d'un générateur électrique, nous pouvons classifier les données en deux niveaux différents : au premier niveau, nous trouvons les données fixes, telles que la capacité du générateur, la marque du générateur électrique, la date de la dernière maintenance. Ces informations fournissent une base initiale pour évaluer la charge qu'il peut supporter ; et au deuxième niveau concernent les données en temps réel, telles que la température de liquide de refroidissement, la charge du site. Ces données fournissent des informations précises sur l'état actuel du générateur électrique et permettent une surveillance continue de son état. Pour collecter les données du premier niveau, telles que la capacité et la date de la dernière maintenance, la marque du générateur, notre système fournit des interfaces utilisateur où les utilisateurs peuvent saisir ces informations manuellement. Cela peut se faire lors de l'exécution de la maintenance. Pour collecter les données du deuxième niveau, nous utilisons des capteurs connectés au générateur électrique. Ces capteurs permettent de collecter des données périodiques sur la santé du générateur électrique. Parmi ces capteurs nous pouvons citer à titre d'exemple : le capteur de température, de pression d'huile moteur, de courant, de niveau de liquide de refroidissement, etc.

b) Description du dataset : L'ensemble de données utilisé dans notre projet est extrait de la simulation de notre prototype réalisé. Nous avons utilisé 6 attributs (y compris la caractéristique « Etat » ou « durée »). L'attribut "Etat" indique la présence ou l'absence d'une anomalie dans le fonctionnement du système et « Durée de vie » indique le temps de fonctionnement restant. L'attribut « Etat » est représenté par une valeur entière, où 0 signifie aucune présence d'une anomalie et 1 signifie présence d'une anomalie.

<table><caption>Figure 16: Description du dataset</caption><thead><tr><td></td><td>Date</td><td>Temperature</td><td>Run hour</td><td>Courant</td><td>Etat</td><td>Duree de vie</td></tr></thead><tbody><tr><td>0</td><td>2024-6-28 23:19:8</td><td>33.3</td><td>0</td><td>0.93</td><td>0</td><td>0</td></tr><tr><td>1</td><td>2024-6-28 23:19:38</td><td>33.3</td><td>1</td><td>1.48</td><td>0</td><td>0</td></tr><tr><td>2</td><td>2024-6-28 23:20:8</td><td>33.3</td><td>1</td><td>1.45</td><td>0</td><td>0</td></tr><tr><td>3</td><td>2024-6-28 23:20:38</td><td>33.8</td><td>2</td><td>1.49</td><td>0</td><td>0</td></tr><tr><td>4</td><td>2024-6-28 23:21:8</td><td>34.7</td><td>2</td><td>1.49</td><td>0</td><td>0</td></tr></tbody></table>
* Date : indique le temps auquel les différentes valeurs sont prélevées ;

* Température : affiche la température du moteur à l'instant T ;

* Run_hour : affiche le nombre d'heure de fonctionnement du générateur ;

* Courant : affiche la charge ou la quantité du courant demandé sur un site.

c) Exploration des données : La sélection des fonctionnalités consiste à choisir les variables ou les caractéristiques qui seront utilisées pour entraîner le modèle. Il est important de sélectionner les fonctionnalités les plus pertinentes et informatives pour éviter les problèmes de surapprentissage et améliorer les performances du modèle. Des techniques telles que l'analyse de corrélation et les méthodes de sélection de fonctionnalités peuvent être utilisées pour effectuer cette étape. Dans cette étude, nous avons choisi d'utiliser les 5 attributs définis dans le dataset pour entraîner notre modèle de prédiction d'anomalies et du temps de fonctionnement restant.

<figure><img src="image_16.png" /><figcaption>Figure 17: Corrélation entre différentes variables du dataset</figcaption></figure>

**Visualisation des données** : les deux classes du dataset sont représentées dans la Figure 15. Le nuage des points en jaune représente l'état « 1 », soit l'état anormal, et le nuage de points violets représente l'état « 0 » ou état normal. La classe 1 représente la classe des cas d'anomalie.
<figure><img src="image_17.png" /><figcaption>Figure 18 : Illustration des 2 classes d'Etat</figcaption></figure>

**Normalisation des données** : cette étape permet de normaliser ou de mettre à l'échelle les données pour les ramener à une même échelle. Cela peut être réalisé à l'aide des techniques telles que la normalisation z-score ou la mise à l'échelle min-max. Cela garantit que toutes les variables ont une influence équitable sur le modèle.

La normalisation MinMax redimensionne les données de manière à ce qu'elles soient comprises dans une plage spécifique, généralement entre 0 et 1. Cela permet d'égaliser l'importance des différentes caractéristiques et d'éviter que certaines caractéristiques dominent les autres en raison de leurs plages initiales. La formule de normalisation est donnée par la standardisation qui transforme les valeurs d'une caractéristique pour qu'elles aient une moyenne $\mu = 0$ et une variance $\sigma = 1$.

**Séparation des ensembles de données** : Les données sont divisées en ensembles d'entraînement, de validation et de test. L'ensemble d'entraînement est utilisé pour entraîner le modèle, l'ensemble de validation est utilisé pour ajuster les hyperparamètres du modèle et l'ensemble de test est utilisé pour évaluer les performances finales du modèle.

Nous avons opté pour le protocole 80:20 qui consiste à réserver 80 % des données pour l'ensemble d'entraînement et 20 % pour l'ensemble de test.

<figure><img src="image_18.png" /><figcaption>Figure 19 : Séparation des ensembles de données</figcaption></figure>

**Modélisation des algorithmes** : l'objectif de cette phase est de construire un modèle d'apprentissage automatique capable de prédire avec précision l'état de santé du générateur électrique et sa durée de vie restante en utilisant les données pertinentes collectées et les techniques d'apprentissage automatique appropriées. Pour implémenter nos 2 modèles de prédiction, nous avons utilisé différents types
d'algorithmes d'apprentissage automatique sans normalisation des données. De ce fait, la bibliothèque Scikit-Learn, également appelée « sklearn » nous parait utile pour implémenter notre projet.

Les outils de Scikit-Learn intègrent l'apprentissage automatique comme la modélisation statistique, et couvrent des fonctions telles que :

* La classification : l'identification et la catégorisation de données en fonction de modèles ;

* La régression : la prédiction ou la projection de valeurs sur la base de la moyenne de données existantes/prévues ;

* Le clustering : une technique regroupant des points de données par similarités, chaque groupe étant appelé un « cluster » ; etc.

La force de Scikit Learn, c'est d'offrir une approche quasi identique pour toutes les situations de machine learning. Quel que soit le modèle que l'on va mettre à contribution, trois mêmes « méthodes » nous sont proposées :

* fit() : pour entraîner le modèle sur un ensemble de données ;

* score() : pour évaluer la fiabilité du modèle sur un autre ensemble de données ;

* predict() : pour mettre le modèle en pratique sur un nouvel ensemble de données.

Quelle que soit la situation abordée, nous retrouvons ces trois instructions avec, certes, des variantes appropriées à un modèle donné. Par exemple, l'entraînement de l'algorithme SVM se déroule de la manière suivante : les données sont d'abord divisées en ensembles d'entraînement et de test à l'aide de la fonction train_test_split(x, y, random_state=1, test_size=02), ce qui permet d'obtenir les variables X_train, X_test, y_train et y_test. Ensuite, un classifieur SVM est initialisé à l'aide de la classe SVC().

Le modèle SVC est ensuite entraîné sur l'ensemble d'entraînement en utilisant la méthode fit(X_train, y_train). Les prédictions sont effectuées sur l'ensemble de test à l'aide de la méthode predict(X_test), donnant ainsi les prédictions stockées dans la variable y_pred.

L'implémentation de l'algorithme SVM (Support Vector Machine) dans la bibliothèque scikit-learn (sklearn) se fait en utilisant la classe "svm.SVC" ou svm.SVR. L'algorithme SVM est utilisé pour la classification et la régression, et la classe "svm.SVC" est spécifiquement conçue pour la classification et la classe "svm.SVR" pour la régression. L'hyperparamètre clé pour l'algorithme SVM est le paramètre "kernel". Il spécifie le type de fonction de noyau à utiliser pour transformer les données d'entrée dans un espace de dimension supérieure. Les noyaux les plus couramment utilisés sont les noyaux linéaires, les noyaux polynomiaux, les noyaux de base radiale (RBF) et le noyau sigmoïde. Voici quelques-uns des plus importants algorithmes d'apprentissage supervisé sélectionnés pour notre projet :

* K plus proches voisins (KNN);

* Régression linéaire;

* Régression logistique;

* Machines à vecteurs de support (SVM);

* La descente de gradient (SGD).

**Evaluation des différents algorithmes :** l'objectif principal de ce travail est de prédire la durée de vie résiduelle après détection d'une panne et de planifier une maintenance, en utilisant des algorithmes d'apprentissage automatique. Le choix des algorithmes est basé sur l'exactitude, la précision et le rappel pour la détection des pannes et sur La Root Mean Squared Error (RMSE) et la Mean Squared Error (MSE) pour la prédiction de durée de vie résiduelle. Ces résultats nous permettent d'évaluer l'efficacité de notre système et de déterminer sa capacité à fournir des prédictions précises. Les résultats obtenus pour les
algorithmes utilisés pour la détection des pannes et la durée de vie résiduelle sont présentés dans les tableaux ci-dessous.

<table><caption>Tableau 1 : Evalutaion des résultats pour la détection des pannes</caption><thead><tr><td>Algorithmes</td><td>Précision (%)</td><td>Rappel (%)</td><td>Exactitude (%)</td></tr></thead><tbody><tr><td>SVC</td><td>88</td><td>97</td><td>91</td></tr><tr><td>KNN</td><td>100</td><td>100</td><td>100</td></tr><tr><td>Regression Logistique</td><td>91</td><td>1</td><td>94</td></tr></tbody></table>

<table><caption>Tableau 1 : Evalutaion des résultats pour la prédiction de la durée de vie résiduelle</caption><thead><tr><td>Algorithmes</td><td>Score (%)</td></tr></thead><tbody><tr><td>SGD</td><td>15</td></tr><tr><td>Linear Regression</td><td>94</td></tr><tr><td>SVR</td><td>96</td></tr></tbody></table>

Il est observé que le KNN a surpassé tous les autres classificateurs et a atteint la précision la plus élevée (100 %) et l'exactitude de (100 %) et le SVR présente un pourcentage (96 %) plus élevé pour la prédiction de la durée de vie résiduelle.

<figure><img src="image_19.png" /><figcaption>Figure 20 : Evaluation de l'algorithm e KNN</figcaption></figure>

## D. Présentation des composantes de l'application

**Plage d'authentification** : pour se connecter à notre système, l'utilisateur devra remplir les deux champs pour authentifier, le champ Username permet de saisir le nom du compte d'utilisateur ou identifiant et le
champ Password lui permettra d'écrire son mot de passe. En suite cliquer sur le bouton connexion pour accéder au système.

<figure><img src="image_20.png" /><figcaption>Figure 21 : Page d'authentification</figcaption></figure>

**Composantes de l'application** : après que l'utilisateur a saisi ses identités, il est connecté à la page menu principal ou accueil. Il s'agit d'un tableau de bord composé de 3 parties principales.

<figure><img src="image_21.png" /><figcaption>Figure 22 : Tableau de bord de supervision des évènements</figcaption></figure>

**Onglet maintenance** : la première partie à gauche présente les détails sur les activités liées à la maintenance :

* Last Index : affiche la valeur de l'index trouvé lors de la dernière maintenance ;

* Actual Index : présente la valeur de l'index en cours ;

* DG_Run_After PM : le nombre d'heure du fonctionnement du générateur après la dernière maintenance ;
* Next_PM : renseigne sur la date de prochaine maintenance ;

* Last_PM : date de la maintenance passée ;

* Day_for_PM : présente le temps restant avant la prochaine maintenance ;

* H/Day : le nombre d'heure de fonctionnement du générateur par jour ;

* Le bouton Downlaod permet de télécharger le planning de la maintenance réalisé par le système.

<figure><img src="image_22.png" /><figcaption>Figure 23 : Illustration de l'onglet maintenance</figcaption></figure>

#### a) Onglet notifications : l'onglet alarme est composé :

D'une LED à deux couleurs qui explique l'état de santé du générateur électrique. La couleur verte présente un fonctionnement normal et la rouge une anomalie. L'état du générateur est déterminé par un algorithme d'apprentissage automatique en fonction de 3 paramètres : la température, le temps de fonctionnement, la charge demandée ou le courant. La led est au rouge pour un courant dépassant la capacité du composant, une température atteignant + de 40 ° C après un long moment de fonctionnement, sinon elle reste au vert. La figure 24 illustre le fonctionnement normal du système la valeur de la température est de 30°C, le courant est de 0,89 A et le nombre d'heure après maintenance est de 7 minutes et la led est allumée au vert et la figure 25 illustre le fonctionnement anormal du système , la led est allumé au rouge ;
<figure><img src="image_23.png" /><figcaption>Figure 24 : Illustration de fonctionnement normal du système</figcaption></figure>

<figure><img src="image_24.png" /><figcaption>Figure 25 : Illustration de fonctionnement anormal du système</figcaption></figure>
* D'un graphe qui montre la progression de la durée de vie résiduelle ;

* Des notifications qui expliquent l'origine de l'anomalie détectée.

**Tableau de bord ou Dashboard** : les tableaux de bord permettent de représenter les données brutes de capteurs sous forme graphique. Ainsi leur interprétation est simplifiée et facilite la prise des décisions aux utilisateurs. L'évolution des paramètres comme température et le courant (ou load) sont représentés sous forme de jauge et de graphe.

<figure><img src="image_25.png" /><figcaption>Figure 26 : Supervision de la température et de la charge</figcaption></figure>

## DISCUSSION ET COMMENTAIRE

La réalisation de notre système d'acquisition des données basé sur une architecture Iot d'apprentissage automatique avec des dispositifs matériels et de bases de données doit répondre à cette question : peut-on parler d'une application de machine learning à la gestion de maintenances prédictive des générateurs électriques ? Est-ce que notre réalisation peut-être une solution pour maintenance prédictive et la prévention des pannes des générateurs électriques chez Hélios Tower en République démocratique du Congo ?

Dans l'étude d'Aleksandr Petrusev, Vincent Debusschere, Rémy Rigo-Mariani, Patrick Reignier et Nouredine Hadjsaid, ils ont soulignés sur la distribution de l'énergie électrique dans le réseau moyenne tension et basse tension dans leur article : « L'intelligence artificielle pour la gestion des réseaux de distribution »[18].

Aussi E-CUBE Strategy Consultants SA avait fait une étude sur : « Application de l'Intelligence artificielle dans l'énergie : Etudes de cas d'application concrets de méthodes de Machine Learning dans le secteur de l'énergie », dans leur recherche, ils ont aussi étudié la maintenance prédictive des installations industrielles appliquées aux actifs de production d'énergie et au réseau électrique[19].

Dans l'étude de Dragan Marinkovic, Gergely Dezso et Sasa Milojevic sur « Application of machine learning during maintenance and exploitation of electric vehicles»; ils ont évalué la fonctionnalité de la batterie pendant une certaine période de fonctionnement d'un véhicule électrique, ce qui les a permis à éviter les pannes soudaines[20].
D'après toutes les réalisations et études des différents chercheurs dans divers options de gestion de l'énergie électrique, nous disons que notre réalisation dans la prédiction et la prévention des pannes est une des solutions pour la maintenance prédictive chez Hélos Tower en RD. Congo.

## CONCLUSION

Le maintien en condition opérationnelle à moindre coût des systèmes industriels est devenu un facteur critique quant à la performance des entreprises, et les concepts traditionnels de maintenance préventive et corrective sont peu à peu complétés par une prise en compte plus réactive et proactive des défaillances. L'estimation du temps résiduel avant défaillance d'un équipement (RUL) et la confiance pouvant être associée à cet indicateur doivent permettre d'éviter des dépenses de maintenance inutiles, et le pronostic connaît un intérêt croissant ces quinze dernières années.

Cependant, si le processus de pronostic vise la quantification du RUL, il ne peut être considéré de manière isolée. Ce point est particulièrement perceptible dans le concept de condition based maintenance (CBM). D'une part, l'anticipation des défaillances ne peut se faire que si les phénomènes de dégradation sont correctement appréhendés (acquisition de données, extraction de descripteurs, détection, diagnostic). D'autre part, dans la pratique, le RUL n'est pas une fin en soi : son estimation doit en revanche permettre de mettre en œuvre des politiques de réaction adéquates (aide à la décision). Ainsi, le déploiement du pronostic requiert un ensemble de tâches (modules) qu'il est commun de regrouper sous le terme de PHM (prognostics and health management).

Les arrêts non planifiés des générateurs électriques peuvent être liés à la qualité des maintenances, à l'environnement d'exploitation à d'autres facteurs, et l'utilisation de l'IoT et de l'apprentissage automatique peut contribuer à améliorer le diagnostic, la détection d'anomalie et la prédiction de la durée de vie résiduelle, ce qui peut conduire à une prise des bonnes décisions et améliorer la qualité de service.

Nous avons exploré les différentes formes d'apprentissage automatique et les algorithmes les plus pertinents pour la prédiction des pannes. Nous avons mis en évidence l'importance de tester et d'évaluer plusieurs algorithmes pour déterminer celui qui convient le mieux à notre problématique spécifique. En utilisant différents algorithmes d'apprentissage automatique tels que le SVM, le KNN et la descente de gradient, nous avons effectué des expérimentations et évalué les performances de chaque modèle. Les résultats ont montré que le modèle KNN a donné les meilleures performances, avec une précision de 94,70 % et une exactitude de 94,75 %.

Cependant, il est important de noter que les résultats peuvent varier en fonction des caractéristiques spécifiques de l'ensemble de données et du problème étudié. Il est donc essentiel de continuer à explorer d'autres modèles, d'ajuster les hyperparamètres et de considérer d'autres mesures d'évaluation pour améliorer encore les performances du système.

## REFERENCES

1. S. Medani, "Impact socio-économique du développement des nouvelles technologies TIC Plan de la présentation."

2. S. Wu, "Customer Churn Prediction in the Telecommunication Industry," vol. 0, no. Icemgd, pp. 41–50, 2022, doi: 10.54254/2754-1169/4/20221017.

3. J. S. Ojo, P. A. Owolawi, and A. M. Atoye, "Designing a Green Power Delivery System for Base Transceiver Stations in Southwestern," no. April, 2019, doi: 10.23919/SAIEE.2019.8643147.

4. R. L. Ao, "No Title."
5. S. D. E. S. F. Professionnelles, "POUR LA FORMATION BTS Informatique et Réseaux pour l'Industrie et les Services techniques Informatique et Réseaux pour l'Industrie et les Services techniques," 2003.

6. I. T. U. Publications, *Télécommunications / TIC pour les zones rurales et isolées Télécommunications / TIC pour les zones rurales et isolées*. 2021.

7. A. À. L. Énergie, "FICHE D'INFORMATION GUIDE DE PRODUCTION GUIDE DE SENSIBILISATION EN RÉPUBLIQUE."

8. T. Zonta et al., "Computers & Industrial Engineering Predictive maintenance in the Industry 4.0: A systematic literature review," *Comput. Ind. Eng.*, vol. 150, no. April 2019, p. 106889, 2020, doi: 10.1016/j.cie.2020.106889.

9. M. Achouch et al., "applied sciences On Predictive Maintenance in Industry 4.0: Overview, Models, and Challenges," 2022.

10. A. Lannoy, "Quelques méthodes d'analyse, de diagnostic et de pronostic utilisées en fiabilité et maintenance industrielle. Some methods of analysis, diagnosis and prognosis, used in reliability and industrial maintenance," pp. 1-68, 2011.

11. U. Kasdi, M. Ouargla, and M. Professionnel, "L'apprentissage statistique pour le diagnostic de défauts dans un système automatique Remerciements."

12. U. L. Lyon, "Contexte big data – Volumétrie des données."

13. K. Merbah and O. Facult, "Memoire de fin d'etudes."

14. A. M. Sadeq, *Python for Renewable Energy Applications Abdellatif M. Sadeq*, no. February. 2024.

15. N. K. Giang, M. Blackstock, R. Lea, V. C. M. Leung, M. Blackstock, and R. Lea, "Note: this workshop paper has been superseded by a publication at the IEEE IoT conference: Toward a Distributed Data Flow Platform for the Web of Things," 2015.

16. S. Chanthakit, "MQTT Based Air Quality Monitoring System using NodeMCU and Node-RED," no. June, 2020, doi: 10.1109/ICT-ISPC.2018.8523891.

17. A. Coen-porisini, "Smart Transport and Logistics: a Node-RED implementation Smart transport and logistics: A Node-RED implementation," no. January 2019, pp. 4-10, 2018, doi: 10.1002/itl2.88.

18. A. Petrusev et al., "L'intelligence artificielle pour la gestion des réseaux de distribution," vol. d.

19. V. Technologies, "Publication Application de l'Intelligence Artificielle dans l'énergie Etudes de cas d'application concrets de méthodes de Machine Learning dans le secteur de l'énergie Septembre 2018," pp. 1-20, 2018.

20. A. History, "APPLICATION OF MACHINE LEARNING DURING MAINTENANCE AND," vol. 3, no. 3, pp. 132-140, 2024.