Go Down

Topic: BMS, Etat de charge et de santé de batterie lithium NCM avec arduino (Read 126 times) previous topic - next topic

iutgeiisoissons

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 qui n'est pas totalement finalisé et pas encore paru utilise une carte Méga et explique les méthodes et le programme
Le fichier ISIS de la simulation qui permet de tester le programme est téléchargeable sur le lien suivant
https://drive.google.com/open?id=1aOexJj5RCrA8S7_1kDYjw_IHRh9jP7xk








L'algo est le suivant ;
Code: [Select]


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



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

N'hésitez pas à partager vos remarques.


Go Up