La gestion d’une batterie (BMS : Batterie Management System) numérique permet d’estimer l’état de charge et l’état de santé de la batterie assez facilement pour certaine technologie de batterie lithium. L’objectif final est de connaitre la distance parcourable restante d’un véhicule électrique malgré le vieillissement de la batterie ? Ainsi que de faire un diagnostic de la batterie en temps réel.
Mais de nombreuses questions sont en suspend pour faire l’instrumentation d’une batterie en temps réels : Comment faire le diagnostic d’une batterie lithium ? Quelles sont les ressources que doit avoir le processeur ? Quelles sont les méthodes pour connaitre l’état de charge et l’état de santé d’une batterie ou de chaque élément ? Quel doit le nombre d’échantillon de mesure pour les diagnostics précédents ?
L’article suivant est telechargeable sur le lien suivant
Une carte Méga ou DUE est utilisé et explique les méthodes et le programme
Le fichier ISIS de la simulation pour la carte mega qui permet de tester le programme est téléchargeable sur le lien suivant
L’algo est le suivant ;
Routine d’interruption timer1 tous les 0.1secondes
Mesure courant
Mesure coulomb mètre et Wattheure
Mesure tension chaque élément
Gestion de l’arrêt de la charge
Gestion de l’arrêt de la décharge avec un flag arrêt
Si 1 A.heure consommé alors calcul par régression linéaire de la pente de la diminution de la tension en fonction de la capacité énergétique pour chaque élément
Calcul de l’état de santé de chaque élément et donne l’état de santé de l’élément le plus faible
Si menu 0, test des résistances internes de chaque élément en décharge
Affichage des données sur l’afficheur LCD
Communication des données par la liaison série
Programme principal
Gestions des 4 boutons poussoirs
- BP1 test résistance en décharge
- BP2 lance la possibilité de décharge
- BP3 ré-autorise la décharge en réinitialisant le drapeau de l’arrêt
- BP4 gère les menus de l’afficheur LCD
Le programme Arduino est en PJ
Pour transférer les données du terminal du microcontrôleur dans Excel, il faut faire un copier-coller des données du terminal de Arduino. Coller dans un fichier doc
Faire un Ctrl+h changer tous les points des chiffres en virgule pour qu’Excel
Refaire un Ctrl+h changer tous les tabulation ^t par un espace.
Enregistrer votre fichier .txt….puis renommer l’extention .txt en .csv
Ouvrir le fichier .csv dans Excel
Si vous utiliser un autre terminal que celui d’arduino, il est possible de copier directement les données en fichier .CSV
Remarques
Attention ouvrir le moniteur série Arduino avant de faire les essais sinon, il y a un reset du programme.
Attention appuyer sur BP5 pendant le off de la charge à cause du calibrage du capteur.
Conclusions et perspectives
Il suffit d’augmenter les variables pour avoir un BMS 13elements séries et la gestion des menus
Un compteur de vitesse (odomètre) à effet hall devrait être rajouté au programme pour mesurer la vitesse et la distance
Il faudrait mémoriser les données de l’état de santé pour chaque cycle
D’autres méthodes d’état de santé (SOH : state of health) de la batterie devrait être testé à partir de cette base de programmation en fonction de la chimie de la batterie
Un enregistrement des données dans une carte SD et une communication extérieur pour faire de la maintenance
on a fait the translate en english here
BMS , State of charge and estimate health battery lithium with Arduino
BMS , State of charge and estimate health battery lithium with Arduino - General Electronics - Arduino Forum
instrumentation_V1.ino (8.33 KB)