IMA5 2018/2019 P17

De Wiki de Projets IMA

Présentation générale

Systeme multisource de production d'hydrogène
fig 1 . Système multisource de production d'hydrogène.

Description

L'école a fait l’acquisition en fin d’année 2016 d’une plate-forme technologique permettant d’illustrer des enseignements dans le domaine des énergies propres. Cette plate-forme est constituée d’une éolienne, de deux panneaux photovoltaïques, d’un électrolyseur, d’une unité de stockage de l’hydrogène et d’une pile à combustible. L’idée est d’utilisée l’énergie produite par les sources renouvelables lorsqu’elles sont disponibles pour produire de l’hydrogène à partir de l’électrolyse de l’eau puis de réutiliser ultérieurement cet hydrogène pour produire de l’électricité via la pile à combustible, ceci permettant de palier l’intermittence des sources primaires. L'objectif du projet est de développer des algorithmes et de mettre en place une interface de supervision permettant de gérer de manière optimale les différents modes de fonctionnement de l'installation. Ce travail s'inscrit dans le projet européen "Electrons to high value Chemical products (E2C)" https://www.interreg2seas.eu/en/E2C

Objectifs

Développer des algorithmes et implanter une interface de supervision pour gérer de manière optimale les différents modes de fonctionnement d'un système multi-sources de production d'hydrogène

Préparation du projet

Cahier des charges

- Définir les différents mode de fonctionnement

- Réaliser les algorithmes de fonctionnement

- Réaliser la partie commande

- Réaliser l'interface de supervision

Choix techniques : matériel et logiciel

Matériel

- Panneau photovoltaïque

- Éolienne

- Batterie

- Électrolyseur

- Bonbonne de stockage d'hydrogène

- Pile à combustible

- Carte Entrées / Sorties

Logiciel

- Logiciel de supervision : à définir ( Labview ou Matlab )

Liste des tâches à effectuer

Réalisation du Projet

Semaine 1

La première semaine de ce projet a été essentiellement consacrée à poser les bases de ce projet. J'ai eu l'occasion de rencontrer mon encadrant. J'ai donc durant cette semaine étudié le projet pour comprendre le fonctionnement.

Nous avons donc ici un système multisources d'énergie. Pour se rapprocher d'une utilisation concrète, nous n'allons pas utiliser uniquement l'énergie créée par les différentes sources ( panneaux photovoltaïques , éolienne ) pour faire de l'hydrogène, mais simuler une utilisation continue d'un client à hauteur de 100W. Le but est donc de gérer les différents mode de fonctionnement du système selon de nombreuses variables.

Voici les différents modes de fonctionnement :

- Production < 100W ( insuffisance énergétique )

L’électricité produite par les panneaux solaires et l’éolienne ne suffit pas à combler l'utilisation de 100W. Le complément d'énergie peut être fourni par d'autres moyens. Soit de l'hydrogène est présent dans les réservoirs et il est possible d'utiliser la pile à combustible pour générer le complément, soit il est possible d'utiliser de l'énergie stockée dans la batterie. Si cela n'est pas suffisant ou si les deux moyens de stockage sont vides, le système va alors faire appel au réseau électrique pour fournir l'énergie suffisante.

- Production > 200W ( Production d'hydrogène )

L'électricité produite est largement suffisante pour combler le besoin. Nous allons donc dans ce cas là, utiliser le surplus d'énergie pour créer de l'hydrogène ou stocké directement dans la batterie. Une recherche sur les conditions d'utilisations de l'électrolyser devra être faite ( condition de tension minimum etc). Une surveillance devra être réalisée sur le stockage de l'hydrogène, il ne faut en aucun cas dépasser une pression supérieure à 10 Bar dans les réservoirs. Dans le cas où tous les réservoirs ( batterie ou réservoirs d'hydrogène ) sont pleins, le surplus est rejeté sur le réseau.

- 100W < production < 200W

Les deux moyens de production sont ici suffisants pour satisfaire le besoin. Nous n'avons donc pas le besoin d'utiliser l'énergie stockée ou le réseau. Il y a ici 2 cas. Soit l'état précédent était le cas insuffisance énergétique, lorsque l'on passe dans ce mode ci, nous allons uniquement remplir la batterie mais nous ne créerons pas d'hydrogène. Soit l'état précédent état la production d'hydrogène et le fonctionnement reste le même que dans ce cas.

Une surveillance pourra être réalisée sur les différents modules pour vérifier leurs fonctionnements. Il est pour cela nécessaire d'avoir les infos extérieures ( ensoleillement , vent ) pour comparer au valeur théorique.

Semaine 2

Pour réaliser la supervision et la commande du système, je vais avoir besoin d'un retour des différentes variables présentes dans le système. Voici les variables au qu’elles j'aurais accès.

Solaire :

  • Condition :
    • - Radiation en W/m²
    • - Température extérieur
  • Module  :
    • - Température
    • - Tension sortante
    • - Courant sortant

Éolienne :

  • condition :
    • - anémomètre
  • Module
    • - Courant sortant

Batterie :

  • Module :
    • - Tension sortante
    • - Courant sortant

Nous avons pu mettre en route le système. Il est actuellement contrôler à l'aide d'un automate de programmation industrielle. Le but étant de créer un autre système de contrôle. Pour cela, nous avons réfléchit à la possibilité d'utiliser une carte DSpace. Un boitier d'entrées / Sorties y sera relier. Cette carte permet un contrôle en temps réel du système. Je dois donc pour le moment réfléchir au fonctionnement de celle ci. J'ai pu l'instant pu trouver quelques informations pour la programmation de la DSpace et plus particulièrement une boite à outil spécialement faite dans Matlab.

Semaine 3

Une recherche sur la programmation de la carte DSpace a été effectué en visionnant plusieurs tutoriel de programmation. J'ai eu l'occasion de faire quelques recherche sur le logiciel ControlDesk. Après avoir discuté avec mon tuteur sur l'utilisation de cette carte, il s'est avéré que ce n'était pas la bonne solution. En effet, les possibilités d'évolution avec cette carte sont assez limité comparé à l'utilisation d'un boitier NI. Ce projet s'inscrit dans un projet européen global, utiliser une technologie dépassée n'est pas une bonne solution pour un projet évolutif.

L'autre solution est d'utiliser du matériel national instrument. Un chassis cDAQ-9174 est disponible dans la salle. Il est possible sur ce châssis, d'y brancher 4 cartes d'entrées / sorties. Cette solution est beaucoup plus adéquates dans l'optique de poursuivre le projet par la suite. Il faut donc trouver les cartes nécessaire à la réalisation du projet. Le contrôle est ici réaliser grâce à un ordinateur.

Nous avons donc besoin ici de 4 cartes.

  • Une carte d'entrée en courant. La NI-9203
  • Une carte d'entrée en tension. Cette carte sera a définir.
  • Une carte PT100 pour les capteurs de températures. La NI-9217
  • Une carte de sortie en tension. La carte reste à définir. En effet le choix actuel est une carte 4 sorties. Elles sont toutes requises ce qui ne laisse pas de possibilité pour une évolution du le nombre de sortie. Augmenter le nombre de sortie a cependant un coup important.

Etant un châssis national instrument, il est ici plus aisé de réaliser la commande et la supervision sur Labview.

Communication entre les différents éléments

La première chose à effectué est de faire le point sur comment sont réaliser les communication actuelles. L'automate Beckoff est l'élément central. Les capteurs arrivent directement sur les cartes d'entrées. L'électrolyseur est relié à l'automate en RS 232. Le pc de supervision, la pile à combustible et l'automate sont tout les 3 reliés à un switch se qui permet un partage des données.

Contrôle du système

Il n'y a pour le moment aucun moyen de contrôler le système hormis un switch manuel. Tout est donc à réaliser. Que ce soit sur l'emplacement des contacteurs ou sur la commande de ceux ci.

J'ai pour le moment réfléchi aux différents emplacement pour les contacteurs. Un rendez vous avec mon tuteur sera pris pour valider les choix. Le choix des contacteurs prendra en compte les puissances passantes. Il faudra prendre en compte les tensions de sorties possibles depuis la carte NI.

Prise en main de Labview

Une carte a déjà été achetée précédemment. J'ai donc commencé à regarder comment récupérer les infos via Labview. Après des recherches sur internet, j'ai pu trouver une fonction permettant de récupérer les informations d'un boitier du même type que nous avons. J'ai donc câblé les capteurs présents sur l'éolienne. Il y a un anémomètre et un capteur de direction. Une fois un petit programme permettant d'observer les entrées de la carte branché, j'ai pu observer les valeurs des deux capteurs sur un graphique. J'ai donc vérifié la réception. Je n'ai cependant pas encore fait la mise à l'échelle.

Semaine 4

Une grosse partie du travail de cette semaine a été basée sur la recherche de composant pour réaliser la commande. La 1ère idée était de placer différents contacteurs sur le bus 24V DC. Après pas mal de recherches sur cette idée et avoir demandé l'avis de certaines personnes, j'ai essayé de réfléchir à une autre solution. En effet, la création d'arc électrique lors de l'ouverture du contacteur est un gros problème lorsque l'on travaille sur du continu. La solution que j'ai retenue est donc de commander l'alimentation de l'électrolyseur et de la PAC. Une sortie 230V AC est disponible dans le système existant. Je vais séparer cette sortie en deux à l'aide de blocs de jonction, directement branchés sur 2 contacteurs. En sortie des contacteurs, il y aura 2 prises permettant de brancher les deux appareils.

Un devis a été réalisé chez RS et doit être validé.

Un autre choix a été fait. On gardera l'automate en RUN et on communiquera avec lui. Cela permettra de récupérer l'état des différentes variables. Une carte de commande NI sera nécessaire pour commander les contacteurs. Un devis a été demandé à NI.

J'ai commencé à travailler sur la récupération des données de l'automate. Cela est très compliqué car je n'ai pas le programme dans l'automate et aucun moyen d'avoir le tableau d'entrées / sorties. J'ai pour l'instant téléchargé le logiciel de programmation Beckhoff mais je n'ai pas encore réussi à récupérer le programme à l'intérieur. Je n'avais encore jamais travaillé sur ce logiciel ( TwinCAT ). Il se peut que le programme soit bloqué pour ne pas être importé depuis l'automate. J'ai pris contact par mail avec l'entreprise ayant conçu le système pour obtenir les différentes informations mais je n'ai pas encore eu de réponse.

Le fait de ne pas pouvoir récupérer le programme de l'automate change en partie la réflexion sur la commande du système. Tous les éléments étant directement réalisé par la même entreprise, il est impossible de trouver des informations sur la communication de l'électrolyser ou la sécurité de celui ci. La sécurité du matériel est ici quelque chose de primordiale. En plus du prix du matériel, une mauvaise gestion de l'électrolyser peut s'avérer dangereux.

Semaine 5

Après avoir tenté en vain de récupérer le programme actuellement sur l'automate, j'ai cherché d'autres moyens possibles me permettant de récupérer les adresses des variables dans l'automate. Une autre solution est de faire de la rétro-ingénierie. J'ai donc pour ça utilisé un sniffer réseau. J'ai téléchargé Wireshark. Ce logiciel permet de lister tout ce qui se passe sur un port ethernet. J'ai donc allumé le logiciel existant et l'automate. Le logiciel Wireshark me permet de voir les différentes requêtes envoyées par l’exécutable. On retrouve dans ces requêtes les adresses des registres utilisés dans l'automate mais aussi les valeurs de ces registres lorsque l'automate répond.

Capture d'une trame sur Wireshark
fig 2. Capture d'une trame sur Wireshark.

Cela m'a permis de lister les différentes requêtes envoyées par l’exécutable.

  • requête de lecture de registre
  • Requête d'écriture sur registre

Une fois ces adresses obtenues, j'ai pu passer a la réalisation d'un programme sur Labview permettant d'obtenir les valeurs des registres. Une fois la prise en main des différents outils pour la communication modbus, j'ai pu réussir à obtenir la valeur des différents registres. Le problème de cette solution est que l'on a aucune information sur ces différentes registres autre que la valeur.

L'étape suivante est donc d'identifier les registres utilisées dans l'automate. Pour cela, je fais tourner mon programme Labview en même temps que l’exécutable. Cela m'a permis d'identifier différentes variables telles que les valeurs de températures, certains courants etc. Cependant, certains registres lus par l'exécutable ont des valeurs fixes ce qui rend leurs identifications difficiles.

L'identification des registres sur lesquels l'application écrit est plus aisé puisque les faire varier sur l'exécutable et observer sur Wireshark quel registre varie.

Semaine 6

Les devis de composants ont été validés. Dans l'attente de la réception du matériel, la supervision du système peut continuer.

Après quelques recherches sur internet, j'ai découvert les simulateurs de réseau ModBus. J'ai donc téléchargé un simulateur d'esclave Modbus que j'ai installé sur un autre ordinateur. J'ai mis l'adresse ip de l'automate sur l'ordinateur que j'ai connecté au switch. Avec cette technique, j'ai pu identifier une partie des registres manquants puisque j'ai pu mettre les valeurs voulues dans n'importe quel registre et observer dans l’exécutable se qui variait. Cette solution là est donc limité aux variables lisible sur l'exécutable.

interface de simulateur d'esclave modbus
fig 3. Interface de simulateur d'esclave modbus.

On peut observer les différents requêtes envoyées par l'exécutable directement sur le simulateur.

L'étape suivante est la mise à l'échelle des valeurs reçues. Une fois tous les coefficients trouvés, j'ai pu réaliser sur Labview une interface avec mise à l'échelle des registres. On peut y voir directement les valeurs des différentes variables automates telles que les températures, les courants etc. On peut vérifier ces valeurs à l'aide de l’exécutable fourni par l'entreprise en comparant les valeurs ( en faisant tourner labview et l'exécutable en même temps).

La récupération des données est donc réalisée. Reste à réaliser une interface plus conviviale. Un plus serait de réaliser une surveillance sur la production d’électricité des différents éléments. En effet, on dispose des différentes conditions extérieures ( ensoleillement, vitesse du vent ). Il est donc possible de réaliser une surveillance en comparant les valeurs de production aux valeurs théoriques, ce qui permettrait d'identifier une usure des composants.

J'ai pu mettre en route l'électrolyser. Cela me permettra de voir quels sont les registres d'état de l'électrolyser. Le fait d'avoir gardés l'automate de base pour la mise en route et l'arrêt de l'électrolyser permet d'avoir une sécurité. En effet, je ne dispose que de très peu d'informations concernant la gestion de celui ci.

Une brève partie de commande a été réalisée. Depuis mon interface labview, j'ai pu allumé et éteindre le convertisseur présent avant l'électrolyser.

J'ai commencé à faire l'interface Labview pour rendre le programme plus présentable. J'essaye de faire une interface similaire à l'exécutable précédent.

Semaine 7

Une bonne partie du travail fait cette semaine a été la réalisation d'une interface labview correcte.

interface exécutable initial
fig 4. Interface de l'exécutable initial.

L'interface réalisée a été inspirée de l'exécutable initial.

interface labview réalisée
fig 5. Interface Labview réalisée.

On retrouve dans cette interface les différentes variables récupérées via , soit la communication Modbus avec l'automate, soit la carte d'acquisition NI présente dans le boitier NI CompactDAQ.

On peut voir l'état de l'électrolyser. 6 états sont possibles :

  • Disconnect
  • Standby
  • Internal reach pressure
  • Ready
  • External reach pressure
  • Normal flow

Une information est remontée si un warning ou une erreur est présente.

Une partie commande a été réalisée. Elle prend pour le moment uniquement en compte la production instantanée d'énergie. Elle a été réalisée en hystérésis comme prévu dans le cahier des charges.

Une surveillance sur la production d'énergie des panneaux solaires a été réalisé. Le courant produit par les panneaux solaires est comparé à la valeur théorique.

La valeur théorique du courant est calculé selon certaines variables :

  • Surface des panneaux solaires
  • Ensoleillement
  • Rendement des panneaux solaires
  • Coefficient de pertes

Cette surveillance n'est cependant pas possible lorsque l'ensoleillement est inférieur à 100W/m². La production d'énergie dans ce cas est instable.

J'ai rencontré cette semaine la problématique d'un système autonome de production d'énergie via des sources naturelles. En effet, l'ensoleillement et la non présence de vent ont fait que la batterie s'est déchargée suffisamment pour qu'il soit impossible d'allumer l'électrolyser depuis l'automate.

Semaine 8

Début de semaine, j'ai travaillé sur la détection d'erreurs de l'éolienne. J'ai tout d'abord essayer de réaliser cette détection à l'aide des équations de fonctionnement d'une éolienne. Malheureusement, je n'avais pas assez de données ni d'informations sur l'éolienne pour utiliser cette technique. J'ai cherché un autre moyen de détecter les erreurs. Une courbe est disponible sur le site du fabricant d'éolienne. La courbe représente la puissance produite en fonction du vent. J'ai contacté le fabricant pour obtenir la tableau de cette courbe, ce qui me permettrait d'extraire une équation et de pouvoir comparer la production réelle à la production théorique. J'attends encore pour le moment le tableau de valeur du fabricant. J'ai déjà eu une réponse de sa part mais il m'a envoyé uniquement une photo de la courbe déjà tracée. Il est évidemment possible de faire un tableau de valeur en observant la courbe mais cela ne sera pas précis.

J'ai eu l'occasion de faire un point avec ma tutrice. Elle m'a demandé de réaliser un manuel d'utilisation pour l'application réalisée. La rédaction de ce document m'a pris une partie de la semaine. Je vais la rencontrer la semaine prochaine pour vérifier ce manuel et voir si cela lui convient. Ce document liste le matériel utilisé, le décrit succinctement, explique comment utiliser l'application.

J'ai également pu rencontrer des élèves réalisant des thèses sur le matériel que j'utilise ( que ce soit l'électrolyseur ou la PAC). Je leur ai expliqué mon travail et comment l'utiliser. On a discuté sur le matériel et cela m'a permis de découvrir de nouvelles choses.

Semaine 9

Durant cette semaine, j'ai travaillé sur l'interface finale de mon projet. Elle est, à ce jour, quasiment terminée. Sur cette interface, on retrouve maintenant une case permettant la visualisation des différentes erreurs que l'on peut retrouver.

  • Détection d'une production anormale d’énergie depuis l'éolienne ou les panneaux solaires.
  • Boitier CompactDAQ non connecté
  • Bouteille d'H2 pleine
  • Niveau d'eau dans électrolyseur faible
  • Niveau de batterie faible
interface exécutable finale
fig 6. Interface Labview finale.

Le moyen utilisé pour détecter une erreur sur par exemple, la bouteille d'H2 pleine, est la scrutation de la valeur du flux d'H2 vers la bouteille. Si celle ci est inférieure à 10L/h ( le flux normal est de 30L/h ) pendant plus de 10 secondes consécutives, cela signifie que la bouteille est considérée comme rempli. En effet, on se possède pas de capteur permettant de savoir le remplissage de la bouteille. J'ai ajouté sur l'interface un bouton permettant de signaler que la bouteille d'H2 a été changé et qu'il est donc de nouveau possible de relancer l’électrolyseur. Le même système de scrutation a été réalisé pour les autres variables.

D'autres modifications ont été réalisées. Un bouton " Modification of production" a été rajouté. Ce bouton ouvre une nouvelle fenêtre. Dans cette fenêtre on trouve la production d'énergie actuelle. Il est alors possible d'ajouter une valeur à cette production réelle. En effet, j'ai pu m'apercevoir durant ce projet que la production d'énergie est très souvent en dessous de la production minimum requise pour enclencher l'électrolyseur. J'ai ajouté ce bouton pour permettre de travailler sur l'électrolyseur sans avoir à modifier tout le programme. La valeur ajouter à la production réelle est remise à 0 à chaque redémarrage.

interface de modification de production
fig 7. Interface de de modification de production.

Une autre modification a été faite sur le fonctionnement des communications avec l'automate et le boîtier CompactDAQ. La version précédente nécessitée un ordre de mise en route bien stricte. On peut maintenant mettre en marche le programme Labview sans faire attention à l'état des autres éléments et les communications sont gérées de manière que si un élément est éteint puis rallumer après, cela n'a aucun impacte sur le fonctionnement global du programme ( cela sera quand même visible à l'écran pour informer l'utilisateur ). Pour cela, on travaille avec la valeur de retour des fonctions Labview gérant la communication Modbus et série. Elles permettent, après une série de comparaison, d'avoir les conditions des différentes boucles de communication ayant lieu dans le programme.

J'ai également reçu cette semaine le matériel commandé. Il me permet de modifier l'armoire actuelle permettant d'avoir 2 prises sorties commandables au lieu d'une seule. J'ai pour l'instant lu les différentes notices. L'installation et les tests auront lieux la semaine prochaine.

Semaine 10

Durant cette dernière semaine de travail, j'ai réalisé la détection d'erreur sur l'éolienne. Dans un premier temps, l'entreprise ayant construit l'éolienne ne m'avait toujours pas recontacté concernant la caractéristique de production d'énergie en fonction du vent. J'ai réalisé la courbe directement sur Matlab. Après voir réalisé une courbe plus ou moins identique à la courbe reçu par mail, j'ai pu cherché les fonctions permettant d'extraire une équation de cette courbe. Une fois le polynôme obtenu, j'ai retracé celui ci pour vérifier qu'il n'y avait pas d'erreur sur l'utilisation de la fonction. Pour obtenir une courbe proche de la courbe initiale, le polynôme doit être au minimum d'ordre 10. Une fois ce polynôme trouvé, j'ai utilisé une fonction dans Labview " Matlab Scipt " qui permet d'ouvrir une page Matlab lors de l’exécution du programme. On trouve dans ce script directement les coefficients du polynôme et le calcul de la valeur théorique d'énergie produite en fonction de la vitesse du vent. On trouve alors le courant théorique que l'on peut comparer à la valeur réelle. La comparaison n'est faisable que lorsque la vitesse de vent se trouve dans la plage d'utilisation de l'éolienne, c'est à dire entre 3,6 et 22m/s. Peu de temps après avoir réalisé cela, l'entreprise m'a envoyé le tableau de valeurs réelles de la production d'énergie. J'ai réalisé une deuxième fois ce travail mais cela a été bien plus rapide puisque je savais déjà comment faire.

J'ai également pu réaliser la partie électronique que je souhaite rajouter au système. Cela permettra par la suite de pouvoir brancher l'électrolyseur et la PAC sur l'armoire de commande. La carte de sortie NI 9472 que j'ai reçu est de type DSUB. J'ai ajouté un connecteur et soudé les différents fils arrivant dessus pour permettre le contrôle du premier contacteur. Le tout a été mis dans un boîtier. La carte de sortie contrôle un interrupteur. Cet interrupteur a, à ces bornes, une source de tension. J'ai soudé une alimentation 24V au borne de ce connecteur.

Câblage contacteur
fig 8. Câblage pour test contacteur.

J'ai fait un programme basique permettant le contrôle de cette carte de sortie. Une fois que cela a été réalisé de manière concluante, j'ai ajouté dans mon programme initial la partie de contrôle. J'ai réalisé le programme de manière que rien n'est à modifier entre le système avec et sans ce dispositif. Il n'est en effet pas installé pour la moment car un soucis de sécurité matériel est présent.

Il est possible sur Labview de créer une version .exe d'un programme. J'ai cherché sur internet le moyen de réaliser cela pour créer un exécutable de mon programme. Le but d'un exécutable est de pouvoir partager celui ci sans que quiconque n'est accès à la partie commande du programme. Seule la supervision est accessible. Le visionnage d'un tutoriel est suffisant pour comprendre comment créer un exécutable. Il est cependant assez compliqué de réaliser quelque chose d'esthétiquement beau lors de l'ouverture de l'exécutable. Beaucoup d'options sont disponibles sans être très détaillées. J'ai essayé de faire de mon mieux dans le temps restant pour la réalisation de celui-ci.

Un rendez-vous avec ma tutrice à eu lieu. On a pu faire le point sur la notice d'utilisation que je lui avais remis il y a quelques temps. J'ai réalisé les modifications souhaitées et complété la notice avec le travail réalisé depuis sa création.

Semaine 11

J'ai consacré la dernière semaine à la rédaction du rapport.

Semaine 12

Préparation de la soutenance

Documents rendus

Fichier:Rapport PFE17 Cockenpot.pdf

Fichier:Soutenance de PFE Système multi-sources de production d’hydrogène.pdf