# DATTES: Logiciel libre et ouvert d'analyse de données expérimentales sur les batteries

Eduardo Redondo-Iglesias, Marwan Hassini, Pascal Venet, Serge Pelissier

► To cite this version:

Eduardo Redondo-Iglesias, Marwan Hassini, Pascal Venet, Serge Pelissier. DATTES: Logiciel libre et ouvert d'analyse de données expérimentales sur les batteries. Symposium de Génie Électrique SGE 2023, Laboratoire d'Electrotechnique et d'Electronique de Puissance de Lille (L2EP), Jul 2023, Lille, France. hal-04538568

HAL Id: hal-04538568

https://hal.science/hal-04538568

Submitted on 9 Apr 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# DATTES : Logiciel libre et ouvert d'analyse de données expérimentales sur les batteries

Eduardo Redondo-Iglesias¹,³, Marwan Hassini¹,²,³ Pascal Venet ²,³, Serge Pelissier¹,³

¹LICIT-ECO7 Lab, Univ Eiffel, ENTPE, Univ Lyon, 69500 Bron, France

²Univ Lyon, Université Claude Bernard Lyon 1, INSA Lyon, Ecole Centrale de Lyon, CNRS, Ampère, UMR5005, 69622 Villeurbanne, France

³ERC GEST (Licit-Eco7/Ampère Équipe de Recherche Commune Gestion de l'Énergie et du Stockage pour les Transports), 69500 Bron, France

**RÉSUMÉ** - Les expériences sont essentielles pour comprendre le comportement et les performances des systèmes de stockage d'énergie. Dans ce domaine, une quantité considérable de données expérimentales est générée et le traitement des données est une tâche fastidieuse. À ce jour, les équipes de recherche travaillant dans le domaine du stockage de l'énergie ont tendance à privilégier le développement de leurs propres outils d'analyse plutôt que les logiciels ouverts existants. Cette stratégie peut nuire à la qualité et à la reproductibilité de la recherche. Cet article présente DATTES, un logiciel libre et ouvert d'analyse de données expérimentales sur les batteries. Le logiciel fournit une boîte à outils complète et personnalisable pour l'extraction, l'analyse et la visualisation des données expérimentales. Il crée également des passerelles avec d'autres logiciels et outils ouverts. DATTES permet ainsi aux utilisateurs de tirer le meilleur parti de leurs données expérimentales et de s'engager dans une démarche de science ouverte et reproductible.

**Mots-clés** - Stockage de l'énergie, Batterie, Expériences, MATLAB, GNU Octave, Analyse des données, FAIR, Science Ouverte

## 1. INTRODUCTION

Le traitement des données joue un rôle de plus en plus important dans les études scientifiques. Les logiciels tels que MATLAB, Python ou R sont au cœur de cette activité et selon une étude de Hettrick et al. 70% des scientifiques reconnaissent que leurs recherches ne seraient pas réalisables sans eux [1]. Cette activité est également chronophage pour les scientifiques puisqu'ils y consacrent généralement 30% ou plus de leur temps de recherche [2].

Dans le domaine du stockage de l'énergie, une grande diversité d'outils et de méthodologies sont utilisés pour produire les données expérimentales [3]. Ainsi les données expérimentales produites sont difficilement comparables entre elles. De plus, la plupart des équipes de recherche ont développé leurs propres outils de traitement des données adaptés à leurs besoins et jeux de données spécifiques. Si cette organisation s'explique par le besoin des chercheurs de traiter rapidement les données de leurs projets, une telle stratégie de développement limite la reproductibilité des travaux et tend à augmenter de manière significative le temps consacré par les chercheurs à la programmation. Par ailleurs, étant donné que la grande majorité des chercheurs sont des développeurs autodidactes, ils peuvent manquer d'expérience en matière de bonnes pratiques de développement de logiciels. Ainsi, la qualité des résultats de recherche peut se retrouver dégradée. La comparaison entre les études de deux laboratoires différents est également entravée puisque chaque équipe est susceptible d'utiliser sa propre méthodologie pour la production et le traitement des données. Cette absence d'outils communs pour le traitement des données constitue donc un obstacle majeur au partage et la comparaison des résultats expérimentaux.

Dans le domaine du stockage de l'énergie, les logiciels libres suscitent depuis peu un intérêt croissant, car ils permettent de mutualiser les efforts de programmation, les meilleures pratiques et les méthodologies d'analyse. Dans le paysage actuel des logiciels libres pour les systèmes de stockage de l'énergie, le langage Python prédomine. BEEP, cellpy, impedance.py ou Pybamm sont quelques exemples de logiciels populaires dans le domaine des batteries [4, 5, 6]. Ils sont tous développés en Python. Ce monopole peut s'expliquer par les qualités de ce langage de programmation polyvalent. Python est gratuit et open source, il met l'accent sur la lisibilité du code et est proposé avec une bibliothèque très complète d'outils pour l'analyse des données, tel que Scipy, Numpy ou Matplotlib. Néanmoins, bien que ce langage gagne peu à peu en intérêt dans la communauté du stockage de l'énergie, MATLAB reste de loin le langage le plus populaire. À titre d'exemple, Google Scholar a indexé plus de 200 000 publications faisant mention des mots-clés "batterie" et "MATLAB". C'est trois fois plus que celles en lien avec "Python". La popularité de MATLAB s'explique par la diversité d'applications que le logiciel propose. Ainsi que par son utilisation de matrices et de tableaux qui facilite son emploi dans la résolution de problèmes scientifiques. Enfin, MATLAB est également à la base de Simulink, un environnement de diagramme de blocs pour la modélisation, la simulation et l'analyse des systèmes dynamiques multi-physiques.

Malgré la popularité de MATLAB, à ce jour aucun logiciel ouvert de traitement des données expérimentales n'avait été proposé dans ce langage. Cet article présente DATTES (de l'anglais *Data Analysis Tools for Tests on Energy Storage*) qui est le premier logiciel ouvert et écrit sur MATLAB pour le traitement des données expérimentales de batteries.

## 2. PRÉSENTATION DE DATTES

DATTES est un logiciel open source écrit en code MATLAB et compatible avec GNU Octave qui vise à faciliter l'analyse de données pour les systèmes de stockage d'énergie [7]. Comme ces langages de programmation sont très populaires dans le domaine, le logiciel peut permettre à une grande partie de la communauté du stockage de l'énergie d'utiliser un outil ouvert de traitement des données.

Le logiciel a été conçu selon les principes du logiciel libre, à code ouvert (FOSS, Free and Open Source Software) et du FAIR (Findable Accessible, Interoperable, Reusable), et d'importants efforts ont été réalisés pour rédiger une documentation claire et complète. Les développeurs espèrent que la communauté tirera profit du logiciel. De plus, les nouveaux utilisateurs sont considérés comme des évaluateurs et contributeurs potentiels qui seront susceptibles de détecter les bugs plus tôt, de demander ou développer de nouvelles fonctionnalités, de documenter le code et d'accélérer la mise en place de standards de traitement des données.
# DATTES : Logiciel libre et ouvert d'analyse de données expérimentales sur les batteries

Eduardo Redondo-Iglesias¹,³, Marwan Hassini¹,²,³ Pascal Venet ²,³, Serge Pelissier¹,³

¹LICIT-ECO7 Lab, Univ Eiffel, ENTPE, Univ Lyon, 69500 Bron, France

²Univ Lyon, Université Claude Bernard Lyon 1, INSA Lyon, Ecole Centrale de Lyon, CNRS, Ampère, UMR5005, 69622 Villeurbanne, France

³ERC GEST (Licit-Eco7/Ampère Équipe de Recherche Commune Gestion de l'Énergie et du Stockage pour les Transports), 69500 Bron, France

**RÉSUMÉ** - Les expériences sont essentielles pour comprendre le comportement et les performances des systèmes de stockage d'énergie. Dans ce domaine, une quantité considérable de données expérimentales est générée et le traitement des données est une tâche fastidieuse. À ce jour, les équipes de recherche travaillant dans le domaine du stockage de l'énergie ont tendance à privilégier le développement de leurs propres outils d'analyse plutôt que les logiciels ouverts existants. Cette stratégie peut nuire à la qualité et à la reproductibilité de la recherche. Cet article présente DATTES, un logiciel libre et ouvert d'analyse de données expérimentales sur les batteries. Le logiciel fournit une boîte à outils complète et personnalisable pour l'extraction, l'analyse et la visualisation des données expérimentales. Il crée également des passerelles avec d'autres logiciels et outils ouverts. DATTES permet ainsi aux utilisateurs de tirer le meilleur parti de leurs données expérimentales et de s'engager dans une démarche de science ouverte et reproductible.

**Mots-clés** - Stockage de l'énergie, Batterie, Expériences, MATLAB, GNU Octave, Analyse des données, FAIR, Science Ouverte

## 1. INTRODUCTION

Le traitement des données joue un rôle de plus en plus important dans les études scientifiques. Les logiciels tels que MATLAB, Python ou R sont au cœur de cette activité et selon une étude de Hettrick et al. 70% des scientifiques reconnaissent que leurs recherches ne seraient pas réalisables sans eux [1]. Cette activité est également chronophage pour les scientifiques puisqu'ils y consacrent généralement 30% ou plus de leur temps de recherche [2].

Dans le domaine du stockage de l'énergie, une grande diversité d'outils et de méthodologies sont utilisés pour produire les données expérimentales [3]. Ainsi les données expérimentales produites sont difficilement comparables entre elles. De plus, la plupart des équipes de recherche ont développé leurs propres outils de traitement des données adaptés à leurs besoins et jeux de données spécifiques. Si cette organisation s'explique par le besoin des chercheurs de traiter rapidement les données de leurs projets, une telle stratégie de développement limite la reproductibilité des travaux et tend à augmenter de manière significative le temps consacré par les chercheurs à la programmation. Par ailleurs, étant donné que la grande majorité des chercheurs sont des développeurs autodidactes, ils peuvent manquer d'expérience en matière de bonnes pratiques de développement de logiciels. Ainsi, la qualité des résultats de recherche peut se retrouver dégradée. La comparaison entre les études de deux laboratoires différents est également entravée puisque chaque équipe est susceptible d'utiliser sa propre méthodologie pour la production et le traitement des données. Cette absence d'outils communs pour le traitement des données constitue donc un obstacle majeur au partage et la comparaison des résultats expérimentaux.

Dans le domaine du stockage de l'énergie, les logiciels libres suscitent depuis peu un intérêt croissant, car ils permettent de mutualiser les efforts de programmation, les meilleures pratiques et les méthodologies d'analyse. Dans le paysage actuel des logiciels libres pour les systèmes de stockage de l'énergie, le langage Python prédomine. BEEP, cellpy, impedance.py ou Pybamm sont quelques exemples de logiciels populaires dans le domaine des batteries [4, 5, 6]. Ils sont tous développés en Python. Ce monopole peut s'expliquer par les qualités de ce langage de programmation polyvalent. Python est gratuit et open source, il met l'accent sur la lisibilité du code et est proposé avec une bibliothèque très complète d'outils pour l'analyse des données, tel que Scipy, Numpy ou Matplotlib. Néanmoins, bien que ce langage gagne peu à peu en intérêt dans la communauté du stockage de l'énergie, MATLAB reste de loin le langage le plus populaire. À titre d'exemple, Google Scholar a indexé plus de 200 000 publications faisant mention des mots-clés "batterie" et "MATLAB". C'est trois fois plus que celles en lien avec "Python". La popularité de MATLAB s'explique par la diversité d'applications que le logiciel propose. Ainsi que par son utilisation de matrices et de tableaux qui facilite son emploi dans la résolution de problèmes scientifiques. Enfin, MATLAB est également à la base de Simulink, un environnement de diagramme de blocs pour la modélisation, la simulation et l'analyse des systèmes dynamiques multi-physiques.

Malgré la popularité de MATLAB, à ce jour aucun logiciel ouvert de traitement des données expérimentales n'avait été proposé dans ce langage. Cet article présente DATTES (de l'anglais *Data Analysis Tools for Tests on Energy Storage*) qui est le premier logiciel ouvert et écrit sur MATLAB pour le traitement des données expérimentales de batteries.

## 2. PRÉSENTATION DE DATTES

DATTES est un logiciel open source écrit en code MATLAB et compatible avec GNU Octave qui vise à faciliter l'analyse de données pour les systèmes de stockage d'énergie [7]. Comme ces langages de programmation sont très populaires dans le domaine, le logiciel peut permettre à une grande partie de la communauté du stockage de l'énergie d'utiliser un outil ouvert de traitement des données.

Le logiciel a été conçu selon les principes du logiciel libre, à code ouvert (FOSS, Free and Open Source Software) et du FAIR (Findable Accessible, Interoperable, Reusable), et d'importants efforts ont été réalisés pour rédiger une documentation claire et complète. Les développeurs espèrent que la communauté tirera profit du logiciel. De plus, les nouveaux utilisateurs sont considérés comme des évaluateurs et contributeurs potentiels qui seront susceptibles de détecter les bugs plus tôt, de demander ou développer de nouvelles fonctionnalités, de documenter le code et d'accélérer la mise en place de standards de traitement des données.
## 2.1. Processus d'analyse avec DATTES

Avec DATTES, L'analyse de données expérimentales se fait en quatre étapes :

1. *dattes_import*

2. *dattes_structure*

3. *dattes配置*

4. *dattes_analyse*

La première étape du processus consiste à standardiser le format des données expérimentales. La fonction *dattes_import* permet de convertir les données brutes issues d'un cycleur de batteries dans un format standard, le format XML, selon la structuration de données de la bibliothèque VEHLIB [8].

La deuxième étape consiste à enrichir les données expérimentales avec des métadonnées et à structurer l'information. Les métadonnées permettent l'enrichissement des bases de données, par exemple lors de campagnes de vieillissement avec des données concernant chaque test (expérimentateur, équipement utilisé, etc.) ou concernant la batterie (caractéristiques nominales, identifiant de cellule, etc.). Au cours de cette étape, la fonction *dattes_structure* permet de découper le test en phases caractéristiques selon les différents modes de sollicitation de la batterie (repos, courant constant, tension constante, etc). Cette fonction permet également de déterminer à chaque instant du test l'état de charge de la batterie.

Au cours de la troisième étape du processus de traitement des données, l'utilisateur peut adapter la méthodologie d'analyse à ses besoins. La fonction *dattes_config* permet de modifier la configuration d'analyse définie par défaut dans DATTES et qui consiste à identifier et déterminer les grandeurs caractéristiques de la batteries (capacité, impédance, comportement à faible courant) sur l'ensemble des séquences où cela est possible. La modification de la méthode d'analyse de l'impédance peut par exemple permettre à l'utilisateur de choisir de travailler uniquement avec les pulses de courant d'une durée de son choix ou encore de sélectionner la type de modèle en circuit électrique équivalent qu'il souhaite identifier.

Finalement, la quatrième étape est l'étape d'analyse des données. Grâce à la fonction *dattes_analyse*, l'utilisateur peut analyser l'ensemble des grandeurs caractéristiques d'une batterie. La capacité peut être déterminée en charge ou en décharge sur une phase à courant constant associée ou non à une phase à tension constante. La résistance de la batterie peut être calculée à différents instants (*R*<sub>2sec</sub>, *R*<sub>10sec</sub>, etc.) et sur le front montant ou descendant du pulse de courant. L'impédance peut être déterminée grâce à un pulse de courant ou à l'aide de la méthode fréquentielle de la spectrométrie d'impédance (en anglais, *Electrochemical Impedance Spectroscopy* ou *EIS*). Le logiciel peut également servir à identifier les paramètres d'un modèle de la batterie en circuit électrique équivalent. De plus, DATTES permet d'analyser le comportement de la batterie à faible courant d'une part en identifiant la tension en circuit ouvert (en anglais, *Open Circuit Voltage* ou *OCV*), mais aussi grâce à ses fonctions permettant l'analyse incrémentale de la capacité (en anglais, *Incremental Capacity Analysis* ou *ICA*) et l'analyse différentielle de la tension (en anglais, *Differential Voltage Analysis* ou *DVA*).

## 2.2. Outils de visualisation

La fonction *dattes plot* permet de visualiser les résultats des différentes étapes du processus d'analyse. La figure 1 présente par exemple les profils de tension et courant en fonction du temps. Les différentes phases d'usages (courant constant, tension constante, repos, etc.) sont également mises en valeur sur ce graphique. DATTES permet également à l'utilisateur de visualiser l'évolution du courant ou de la température. L'état de charge et la profondeur de décharge au cours du temps peuvent également être tracés.

## 2.3. Atouts de DATTES

Si DATTES se distingue comme étant le premier logiciel de traitement des données expérimentales de batteries sur MATLAB, certaines de ses fonctionnalités sont également uniques [3].

Le nombre et la diversité de formats de données d'entrée que DATTES permet de manipuler est remarquable. Les données produites par les cycleurs Arbin, Bitrode, Biologic, Digatron et Neware sont quelques exemples de formats déjà acceptés par DATTES.

DATTES propose aussi une conversion des données expérimentales brutes dans un format standard, le XML. Les fichiers convertis sont produits avec une structuration de données compatible avec la bibliothèque VEHLIB. DATTES est ainsi nativement compatible avec le logiciel de gestion de l'énergie VEHLIB [8].

À ce jour, DATTES est le logiciel ouvert de traitement des données expérimentales qui propose le plus grand nombre d'outils d'analyse. Cette faculté à traiter les différents types de test s'explique notamment par la méthode unique de segmentation des tests en fonction des phases d'usage de la batterie. Ce découpage facilite l'analyse de sous-motifs remarquables tels que les portions de test à faible courant qui peuvent faire l'objet d'une analyse incrémentale de la capacité.

La documentation des données produites par l'expérience et par DATTES a également fait l'objet d'une attention particulière. Les résultats d'analyses des données expérimentales sont complétés par des métadonnées qui permettent à l'utilisateur de documenter l'origine et les méthodes de production des données (date et heure du test, moyen expérimentaux, etc.). L'ensemble des données produites par DATTES sont également structurées et documentées [7].

Enfin, DATTES facilite la réutilisation des données d'analyse produites. La fonction *dattes export* permet de convertir les résultats de l'analyse dans différents formats tels que *.csv*, *.json* ou *.m*.

## 3. EXEMPLE D'UTILISATION

Cette section illustre le processus d'analyse avec DATTES en présentant l'analyse d'un jeu de données expérimentales. Les lignes de code utilisées sont partagées dans l'annexe B.1. Les données traitées sont issues d'un test de caractérisation décrit dans de précédents travaux [9, 10, 11].

Les données partagées sont issues du cycleur Biologic. La fonction *dattes_import* permet de convertir ces données brutes dans un format standard, le format XML.

Ensuite, la fonction *dattes_structure* permet d'extraire les grandeurs caractéristiques de la batterie et de structurer le test en fonction des phases d'usage. La figure 1 présente l'évolution de la tension et du courant lors du test de caractérisation. La figure 2 montre que chaque changement de phase d'usage (repos, courant constant, tension constante, etc.) est également identifié par un numéro et une couleur. La définition de ces sous-parties permet à l'utilisateur d'adapter la méthode d'analyse aux différentes parties du test.

Pour ce test de caractérisation cinq parties ont été définies par l'utilisateur. Chacune a fait l'objet d'une analyse distincte.

La première partie du test se déroule des phases 1 à 6. Elle consiste à réaliser plusieurs décharges pour assurer un début de test à un état de charge 0% (en anglais, *State of Charge* ou *SoC*). La seconde partie se déroule des phases 7 à 21. Elle vise à réaliser plusieurs cycles de charge/décharge pour mesurer la capacité. La troisième partie a lieu entre les phases 22 à 182 et consiste en des séquences de pulses de courant à différents états de charge. Cette partie permet de déterminer l'influence de l'état de charge sur la mesure d'impédance. La quatrième partie se déroule durant les phases 183 à 185. Cette portion du test est la caractérisation de la cellule à un faible régime de courant. Enfin, la cinquième partie (phases 186 et 187) est une décharge
## 2.1. Processus d'analyse avec DATTES

Avec DATTES, L'analyse de données expérimentales se fait en quatre étapes :

1. `dattes_import`

2. `dattes_structure`

3. `dattes配置`

4. `dattes_analyse`

La première étape du processus consiste à standardiser le format des données expérimentales. La fonction `dattes_import` permet de convertir les données brutes issues d'un cycleur de batteries dans un format standard, le format XML, selon la structuration de données de la bibliothèque VEHLIB [8].

La deuxième étape consiste à enrichir les données expérimentales avec des métadonnées et à structurer l'information. Les métadonnées permettent l'enrichissement des bases de données, par exemple lors de campagnes de vieillissement avec des données concernant chaque test (expérimentateur, équipement utilisé, etc.) ou concernant la batterie (caractéristiques nominales, identifiant de cellule, etc.). Au cours de cette étape, la fonction `dattes_structure` permet de découper le test en phases caractéristiques selon les différents modes de sollicitation de la batterie (repos, courant constant, tension constante, etc). Cette fonction permet également de déterminer à chaque instant du test l'état de charge de la batterie.

Au cours de la troisième étape du processus de traitement des données, l'utilisateur peut adapter la méthodologie d'analyse à ses besoins. La fonction `dattes_config` permet de modifier la configuration d'analyse définie par défaut dans DATTES et qui consiste à identifier et déterminer les grandeurs caractéristiques de la batteries (capacité, impédance, comportement à faible courant) sur l'ensemble des séquences où cela est possible. La modification de la méthode d'analyse de l'impédance peut par exemple permettre à l'utilisateur de choisir de travailler uniquement avec les pulses de courant d'une durée de son choix ou encore de sélectionner la type de modèle en circuit électrique équivalent qu'il souhaite identifier.

Finalement, la quatrième étape est l'étape d'analyse des données. Grâce à la fonction `dattes_analyse`, l'utilisateur peut analyser l'ensemble des grandeurs caractéristiques d'une batterie. La capacité peut être déterminée en charge ou en décharge sur une phase à courant constant associée ou non à une phase à tension constante. La résistance de la batterie peut être calculée à différents instants ($R_{2sec}$, $R_{10sec}$, etc.) et sur le front montant ou descendant du pulse de courant. L'impédance peut être déterminée grâce à un pulse de courant ou à l'aide de la méthode fréquentielle de la spectrométrie d'impédance (en anglais, *Electrochemical Impedance Spectroscopy* ou *EIS*). Le logiciel peut également servir à identifier les paramètres d'un modèle de la batterie en circuit électrique équivalent. De plus, DATTES permet d'analyser le comportement de la batterie à faible courant d'une part en identifiant la tension en circuit ouvert (en anglais, *Open Circuit Voltage* ou *OCV*), mais aussi grâce à ses fonctions permettant l'analyse incrémentale de la capacité (en anglais, *Incremental Capacity Analysis* ou *ICA*) et l'analyse différentielle de la tension (en anglais, *Differential Voltage Analysis* ou *DVA*).

## 2.2. Outils de visualisation

La fonction `dattes_plot` permet de visualiser les résultats des différentes étapes du processus d'analyse. La figure 1 présente par exemple les profils de tension et courant en fonction du temps. Les différentes phases d'usages (courant constant, tension constante, repos, etc.) sont également mises en valeur sur ce graphique. DATTES permet également à l'utilisateur de visualiser l'évolution du courant ou de la température. L'état de charge et la profondeur de décharge au cours du temps peuvent également être tracés.

## 2.3. Atouts de DATTES

Si DATTES se distingue comme étant le premier logiciel de traitement des données expérimentales de batteries sur MATLAB, certaines de ses fonctionnalités sont également uniques [3].

Le nombre et la diversité de formats de données d'entrée que DATTES permet de manipuler est remarquable. Les données produites par les cycleurs Arbin, Bitrode, Biologic, Digatron et Neware sont quelques exemples de formats déjà acceptés par DATTES.

DATTES propose aussi une conversion des données expérimentales brutes dans un format standard, le XML. Les fichiers convertis sont produits avec une structuration de données compatible avec la bibliothèque VEHLIB. DATTES est ainsi nativement compatible avec le logiciel de gestion de l'énergie VEHLIB [8].

À ce jour, DATTES est le logiciel ouvert de traitement des données expérimentales qui propose le plus grand nombre d'outils d'analyse. Cette faculté à traiter les différents types de test s'explique notamment par la méthode unique de segmentation des tests en fonction des phases d'usage de la batterie. Ce découpage facilite l'analyse de sous-motifs remarquables tels que les portions de test à faible courant qui peuvent faire l'objet d'une analyse incrémentale de la capacité.

La documentation des données produites par l'expérience et par DATTES a également fait l'objet d'une attention particulière. Les résultats d'analyses des données expérimentales sont complétés par des métadonnées qui permettent à l'utilisateur de documenter l'origine et les méthodes de production des données (date et heure du test, moyen expérimentaux, etc.). L'ensemble des données produites par DATTES sont également structurées et documentées [7].

Enfin, DATTES facilite la réutilisation des données d'analyse produites. La fonction `dattes_export` permet de convertir les résultats de l'analyse dans différents formats tels que `*.csv`, `*.json` ou `*.m`.

## 3. EXEMPLE D'UTILISATION

Cette section illustre le processus d'analyse avec DATTES en présentant l'analyse d'un jeu de données expérimentales. Les lignes de code utilisées sont partagées dans l'annexe B.1. Les données traitées sont issues d'un test de caractérisation décrit dans de précédents travaux [9, 10, 11].

Les données partagées sont issues du cycleur Biologic. La fonction `dattes_import` permet de convertir ces données brutes dans un format standard, le format XML.

Ensuite, la fonction `dattes_structure` permet d'extraire les grandeurs caractéristiques de la batterie et de structurer le test en fonction des phases d'usage. La figure 1 présente l'évolution de la tension et du courant lors du test de caractérisation. La figure 2 montre que chaque changement de phase d'usage (repos, courant constant, tension constante, etc.) est également identifié par un numéro et une couleur. La définition de ces sous-parties permet à l'utilisateur d'adapter la méthode d'analyse aux différentes parties du test.

Pour ce test de caractérisation cinq parties ont été définies par l'utilisateur. Chacune a fait l'objet d'une analyse distincte.

La première partie du test se déroule des phases 1 à 6. Elle consiste à réaliser plusieurs décharges pour assurer un début de test à un état de charge 0% (en anglais, *State of Charge* ou *SoC*). La seconde partie se déroule des phases 7 à 21. Elle vise à réaliser plusieurs cycles de charge/décharge pour mesurer la capacité. La troisième partie a lieu entre les phases 22 à 182 et consiste en des séquences de pulses de courant à différents états de charge. Cette partie permet de déterminer l'influence de l'état de charge sur la mesure d'impédance. La quatrième partie se déroule durant les phases 183 à 185. Cette portion du test est la caractérisation de la cellule à un faible régime de courant. Enfin, la cinquième partie (phases 186 et 187) est une décharge
## A. INFORMATIONS SUR DATTES

<table><caption>TABLEAU 1 - Informations sur DATTES</caption><thead><tr><th></th><th></th></tr></thead><tbody><tr><td>Version actuelle</td><td>DATTES 23.05</td></tr><tr><td>Lien vers le dépôt du code</td><td>https://gitlab.com/dattes/dattes</td></tr><tr><td>Licence du logiciel</td><td>GNU GPL v3</td></tr><tr><td>Système de suivi de version</td><td>git</td></tr><tr><td>Langage du code</td><td>MATLAB ou GNU Octave</td></tr><tr><td>Fonctionne sur</td><td>Linux, OSX ou Windows.</td></tr><tr><td>Lien vers la documentation</td><td>https://dattes.gitlab.io/</td></tr><tr><td>E-mail de contact</td><td>dattes@univ-eiffel.fr</td></tr></tbody></table>

## B. EXEMPLES DE CODE

### B.1. Code utilisé dans la partie 3

```R
%Before running this script, download data for this demo:
% URL to define....
close all
clear all

% Import all biologic tests in src folder:
% 'v' = verbose
% 'm' = merge files in each folder to single xml file
xml_filelist = dattes_import('./','biologic','vm');

% Take first file in the list:
file_in = xml_filelist{1};

% Structure data:
result = dattes_structure(file_in);

% Configure data (default configuration):
result = dattes�Configure(result);

% Analyse data
% 'CRPI' = capacity, resistance, pseudo OCV, ICA
result = dattes_analyse(result,'CRPI');

% Plot results:
% 'xpc' = profiles, phases, configuration
% 'CRPI' = capacity, resistance, pseudo OCV, ICA
dattes Plot (result,'xpcCRPI');

%Save results in mat file:
dattes_save(result);
```

### B.2. Exemples de code pour l'import de données (dattes_import)

```R
% 1. Chercher et importer des fichiers bitrode
dattes_import(source_dir,'bitrode',options, dest_dir);
```

```R
% 2. Chercher et importer des fichiers biologic
dattes_import(source_dir,'biologic',options, dest_dir);
```

```R
% 3. Chercher et importer des fichiers arbin (*.CSV)
dattes_import(source_dir,'arbin_csv',options, dest_dir);
```

```R
% 4. Chercher et importer des fichiers arbin (*.XLS)
dattes_import(source_dir,'arbin_xls',options, dest_dir);
```

```R
% 5. Chercher et importer des fichiers neware
dattes_import(source_dir,'neware',options, dest_dir);
```

```R
% 6. Chercher et importer des fichiers digatron
dattes_import(source_dir,'digatron',options, dest_dir);
```

## B.3. Exemples de code pour l'analyse de données (dattes_analyse)

```R
% 1. Calcul de capacité
dattes_analyse (mat_file,'C');
```

```R
% 2. Calcul de résistance
dattes_analyse (mat_file,'R');
```

```R
% 3. Identification d'impédance
dattes_analyse (mat_file,'Z');
```

```R
% 4. Identification d'OCV par points
dattes_analyse (mat_file,'O');
```

```R
% 5. Identification d'OCV par pseudo-OCV
dattes_analyse (mat_file,'P');
```

```R
% 6. Analyse incrémentale de la capacité
dattes_analyse (mat_file,'I');
```

## B.4. Exemples de code pour la visualisation (dattes_plot)

```R
% 1. visualisation des profils
dattes Plot (mat_file,'x');
```

```R
% 2. visualisation du SoC et du DoD
dattes Plot (mat_file,'S');
```

```R
% 3. visualisation des phases
dattes Plot (mat_file,'P');
```

```R
% 4. visualisation de la configuration
dattes Plot (mat_file,'c');
```

```R
% 5. visualisations de l'analyse
% 5.1. Capacité
dattes Plot (mat_file,'C');
```

```R
% 5.2. Résistance
dattes Plot (mat_file,'R');
```

```R
% 5.3. Impédance
dattes Plot (mat_file,'Z');
```

```R
% 5.4. OCV par points
dattes Plot (mat_file,'O');
```

```R
% 5.5. pseudo OCV
dattes Plot (mat_file,'P');
```

```R
% 5.6. ICA/DVA
dattes Plot (mat_file,'I');
```

## B.5. Exemples de code pour l'export de données (dattes_export)

```R
% 1. export du résultat en .json
dattes_export (result,'Aj'); % 'A'=all, 'j' = json
```

```R
% 2. export des profils en .csv
dattes_export (result,'Pc'); % 'P'=profiles, 'c' = csv
```

```R
% 3. export des profils en .json
dattes_export (result,'Pj'); % 'P'=profiles, 'j' = json
```

```R
% 4. export des phases en .csv
dattes_export (result,'pc'); % 'p'=phases, 'c' = csv
```

```R
% 5. export des metadonnées en .json
dattes_export (result,'Mj'); % 'M'=metadata, 'j' = json
```

```R
% 6. export des metadonnées comme script
dattes_export (result,'Ms'); % 'M'=metadata, 's' = *.m
```

```R
% 7. export de la configuration comme script
dattes_export (result,'Cs'); % 'C'=configuration, 's' = *.m
```
## A. INFORMATIONS SUR DATTES

<table><caption>TABLEAU 1 - Informations sur DATTES</caption><tr><td>Version actuelle</td><td>DATTES 23.05</td></tr><tr><td>Lien vers le dépôt du code</td><td>https://gitlab.com/dattes/dattes</td></tr><tr><td>Licence du logiciel</td><td>GNU GPL v3</td></tr><tr><td>Système de suivi de version</td><td>git</td></tr><tr><td>Langage du code</td><td>MATLAB ou GNU Octave</td></tr><tr><td>Fonctionne sur</td><td>Linux, OSX ou Windows.</td></tr><tr><td>Lien vers la documentation</td><td>https://dattes.gitlab.io/</td></tr><tr><td>E-mail de contact</td><td>dattes@univ-eiffel.fr</td></tr></table>

## B. EXEMPLES DE CODE

### B.1. Code utilisé dans la partie 3

```R
%Before running this script, download data for this demo:
% URL to define....
close all
clear all
```

```R
% Import all biologic tests in src folder:
% 'v' = verbose
% 'm' = merge files in each folder to single xml file
xml_filelist = dattes_import('./','biologic','vm');
```

```R
% Take first file in the list:
file_in = xml_filelist{1};
```

```R
% Structure data:
result = dattes_structure(file_in);
```

```R
% Configure data (default configuration):
result = dattes�Configure(result);
```

```R
% Analyse data
% 'CRPI' = capacity, resistance, pseudo OCV, ICA
result = dattes_analyse(result,'CRPI');
```

```R
% Plot results:
% 'xpc' = profiles, phases, configuration
% 'CRPI' = capacity, resistance, pseudo OCV, ICA
dattes Plot (result,'xpcCRPI');
```

```R
%Save results in mat file:
dattes_save(result);
```

### B.2. Exemples de code pour l'import de données (dattes_import)

```R
% 1. Chercher et importer des fichiers bitrode
dattes_import(source_dir,'bitrode',options, dest_dir);
```

```R
% 2. Chercher et importer des fichiers biologic
dattes_import(source_dir,'biologic',options, dest_dir);
```

```R
% 3. Chercher et importer des fichiers arbin (*.CSV)
dattes_import(source_dir,'arbin_csv',options, dest_dir);
```

```R
% 4. Chercher et importer des fichiers arbin (*.XLS)
dattes_import(source_dir,'arbin_xls',options, dest_dir);
```

```R
% 5. Chercher et importer des fichiers neware
dattes_import(source_dir,'neware',options, dest_dir);
```

```R
% 6. Chercher et importer des fichiers digatron
dattes_import(source_dir,'digatron',options, dest_dir);
```

## B.3. Exemples de code pour l'analyse de données (dattes_analyse)

```R
% 1. Calcul de capacité
dattes_analyse (mat_file,'C');
```

```R
% 2. Calcul de résistance
dattes_analyse (mat_file,'R');
```

```R
% 3. Identification d'impédance
dattes_analyse (mat_file,'Z');
```

```R
% 4. Identification d'OCV par points
dattes_analyse (mat_file,'O');
```

```R
% 5. Identification d'OCV par pseudo-OCV
dattes_analyse (mat_file,'P');
```

```R
% 6. Analyse incrémentale de la capacité
dattes_analyse (mat_file,'I');
```

## B.4. Exemples de code pour la visualisation (dattes_plot)

```R
% 1. visualisation des profils
dattes Plot (mat_file,'x');
```

```R
% 2. visualisation du SoC et du DoD
dattes Plot (mat_file,'S');
```

```R
% 3. visualisation des phases
dattes Plot (mat_file,'P');
```

```R
% 4. visualisation de la configuration
dattes Plot (mat_file,'c');
```

```R
% 5. visualisations de l'analyse
% 5.1. Capacité
dattes Plot (mat_file,'C');
```

```R
% 5.2. Résistance
dattes Plot (mat_file,'R');
```

```R
% 5.3. Impédance
dattes Plot (mat_file,'Z');
```

```R
% 5.4. OCV par points
dattes Plot (mat_file,'O');
```

```R
% 5.5. pseudo OCV
dattes Plot (mat_file,'P');
```

```R
% 5.6. ICA/DVA
dattes Plot (mat_file,'I');
```

## B.5. Exemples de code pour l'export de données (dattes_export)

```R
% 1. export du résultat en .json
dattes_export (result,'Aj'); % 'A'=all, 'j' = json
```

```R
% 2. export des profils en .csv
dattes_export (result,'Pc'); % 'P'=profiles, 'c' = csv
```

```R
% 3. export des profils en .json
dattes_export (result,'Pj'); % 'P'=profiles, 'j' = json
```

```R
% 4. export des phases en .csv
dattes_export (result,'pc'); % 'p'=phases, 'c' = csv
```

```R
% 5. export des metadonnées en .json
dattes_export (result,'Mj'); % 'M'=metadata, 'j' = json
```

```R
% 6. export des metadonnées comme script
dattes_export (result,'Ms'); % 'M'=metadata, 's' = *.m
```

```R
% 7. export de la configuration comme script
dattes_export (result,'Cs'); % 'C'=configuration, 's' = *.m
```