Tri et classification des cellules avec TofuPilot
Un pack batterie est aussi bon que sa cellule la plus faible. Le tri des cellules classe les cellules de production par performance mesurée pour que vous puissiez assembler des packs à partir de cellules appariées. TofuPilot stocke les données de test de chaque cellule et vous permet de les interroger, filtrer et classer en fonction des mesures réelles.
Pourquoi le tri des cellules est important
Les cellules d'une même ligne de production présentent une variation naturelle. La capacité varie de 2 à 5 %. L'impédance varie de 10 à 20 %. Si vous assemblez un pack à partir de cellules non appariées :
- La cellule la plus faible limite la capacité du pack
- Les cellules vieillissent à des rythmes différents, causant un déséquilibre
- Le BMS doit travailler plus pour maintenir les cellules équilibrées
- La durée de vie du pack est plus courte que nécessaire
Trier les cellules avant l'assemblage garantit que les packs fonctionnent de manière cohérente et durent plus longtemps.
Critères de tri
| Paramètre | Comment il est mesuré | Pourquoi c'est important |
|---|---|---|
| Capacité (Ah) | Cycle complet charge/décharge | Détermine l'énergie du pack |
| Impédance interne (mohm) | Impédance AC à 1 kHz | Affecte la délivrance de puissance et la chaleur |
| Tension en circuit ouvert (V) | Tension au repos après formation | Indique la cohérence de l'état de charge |
| Taux d'autodécharge (mV/jour) | Chute de tension sur 7-14 jours de repos | Détecte les micro-courts-circuits internes |
| Poids (g) | Mesure par pesée | Détecte les cellules sous-remplies ou sur-remplies |
Configuration du tri des cellules dans TofuPilot
Étape 1 : Définir la procédure de test de tri
from tofupilot import TofuPilotClient
client = TofuPilotClient()
def grade_cell(serial, capacity_ah, impedance_mohm, ocv_v, self_discharge_mv_day, weight_g):
# Déterminer le grade
if capacity_ah >= 3.1 and impedance_mohm <= 30 and self_discharge_mv_day <= 0.5:
grade = "A"
passed = True
elif capacity_ah >= 2.9 and impedance_mohm <= 40 and self_discharge_mv_day <= 1.0:
grade = "B"
passed = True
elif capacity_ah >= 2.7 and impedance_mohm <= 50:
grade = "C"
passed = True
else:
grade = "REJECT"
passed = False
client.create_run(
procedure_id="CELL-GRADING",
unit_under_test={
"serial_number": serial,
"part_number": "CELL-21700-NMC",
},
run_passed=passed,
steps=[{
"name": "Test de capacité",
"step_type": "measurement",
"status": capacity_ah >= 2.7,
"measurements": [
{"name": "capacity_ah", "value": capacity_ah, "unit": "Ah", "limit_low": 2.7},
],
}, {
"name": "Test d'impédance",
"step_type": "measurement",
"status": impedance_mohm <= 50,
"measurements": [
{"name": "impedance_mohm", "value": impedance_mohm, "unit": "mohm", "limit_high": 50},
],
}, {
"name": "Autodécharge",
"step_type": "measurement",
"status": self_discharge_mv_day <= 1.0,
"measurements": [
{"name": "self_discharge_mv_day", "value": self_discharge_mv_day, "unit": "mV/day", "limit_high": 1.0},
{"name": "ocv_v", "value": ocv_v, "unit": "V", "limit_low": 3.5, "limit_high": 4.2},
],
}, {
"name": "Physique",
"step_type": "measurement",
"status": 68.0 <= weight_g <= 72.0,
"measurements": [
{"name": "weight_g", "value": weight_g, "unit": "g", "limit_low": 68.0, "limit_high": 72.0},
{"name": "grade", "value": grade, "unit": ""},
],
}],
)
return gradeÉtape 2 : Analyser la distribution des grades
Après le tri d'un lot de production, le tableau de bord TofuPilot affiche la distribution :
| Grade | Quantité | Pourcentage | Plage de capacité | Plage d'impédance |
|---|---|---|---|---|
| A | 850 | 85 % | 3,10-3,25 Ah | 22-30 mohm |
| B | 120 | 12 % | 2,90-3,09 Ah | 31-40 mohm |
| C | 20 | 2 % | 2,70-2,89 Ah | 41-50 mohm |
| REJET | 10 | 1 % | < 2,70 Ah | > 50 mohm |
Suivez cette distribution dans le temps. Si le rendement de Grade A passe de 85 % à 75 %, le processus de fabrication dérive.
Étape 3 : Assemblage de packs avec cellules appariées
Interrogez TofuPilot pour les cellules Grade A avec une capacité dans une fenêtre étroite pour l'assemblage des packs.
from tofupilot import TofuPilotClient
client = TofuPilotClient()
# Récupérer toutes les cellules Grade A du dernier lot
runs = client.get_runs(
procedure_id="CELL-GRADING",
run_passed=True,
limit=1000,
)
# Filtrer les cellules Grade A dans une fenêtre de capacité de 50 mAh
grade_a_cells = []
for run in runs:
for step in run.get("steps", []):
for m in step.get("measurements", []):
if m["name"] == "capacity_ah" and m["value"] >= 3.1:
grade_a_cells.append({
"serial": run["unit_under_test"]["serial_number"],
"capacity": m["value"],
})
# Trier par capacité et regrouper en ensembles appariés
grade_a_cells.sort(key=lambda c: c["capacity"])
# Créer des packs de 12 cellules avec un écart de capacité < 50 mAh
pack_size = 12
for i in range(0, len(grade_a_cells) - pack_size + 1, pack_size):
pack = grade_a_cells[i:i + pack_size]
spread = pack[-1]["capacity"] - pack[0]["capacity"]
if spread <= 0.05:
print(f"Pack: {[c['serial'] for c in pack]}, écart: {spread*1000:.0f} mAh")Filtrage par autodécharge
L'autodécharge est le filtre de sécurité le plus important. Les cellules avec un taux d'autodécharge élevé peuvent présenter des micro-courts-circuits internes pouvant conduire à des événements thermiques.
Le test nécessite une longue période de repos (7-14 jours), ce qui en fait le goulot d'étranglement de la production de cellules. Suivez les données d'autodécharge dans TofuPilot pour :
- Définir des seuils de réussite/échec basés sur les données, à partir des distributions de production
- Identifier les cellules nécessitant un filtrage prolongé
- Corréler l'autodécharge avec d'autres paramètres (données de formation, impédance)
Traçabilité de la cellule au pack
Quand un pack tombe en panne sur le terrain, remontez jusqu'aux cellules individuelles :
- Recherchez le numéro de série du pack dans TofuPilot
- Trouvez quelles cellules ont été assemblées dans ce pack
- Consultez les données de tri de chaque cellule
- Vérifiez si une cellule était marginale au moment du tri
Cette traçabilité est exigée par la plupart des constructeurs automobiles et devient le standard dans l'industrie des batteries.