Recalage de la courbe batterie sur le parc assaini (rec 1)
Re-mesure du 20/09 sur le parc a 13 modules assaini (cellules 3-6 mV) : tools/mesure-courbe-batterie.mjs donne 0,30 kWh/point PLAT de 25 a 97 %, PLUS DE GENOU. Le genou a 33 % etait la signature de la cellule 12 morte du pack ancien (§50), il a disparu avec elle — exactement ce que predisait la note de prudence du 03/09. La reserve utile a quasiment double (12,4 -> ~23 kWh de 100 a 22 %). Le scaling modules/7 rattrapait par chance la partie HAUTE (0,169x13/7=0,31 ~ mesure) mais SOUS 33 % le bilan croyait 0,18 kWh/point contre 0,30 reels -> required_soc surestime en bas d'echelle. Corrige : - BALANCE.js : kneePct 33->0, pentes 0,169/0,097 -> 0,1615 plat (x13/7 = 0,30). - INPUT_PARSE : batteryUsableCapacityKwh 2,414 -> 2,308 kWh/module (0,30/13x100). - helper evcs_balance_usable_capacity_kwh 15 -> 23 (inerte mais coherent). Tests : bilan 50/50 apres re-figeage des 10 attendus (verifies a la main : ex rejeu 24/08, 0,82 kWh -> 22 + 0,82/0,1615 = 27,1 % contre 30,5 avant). Mutation deux sens : ancien genou -> 10 echecs, pente fausse -> 11. Golden controleur 116/116 inchange (capacite -4 %, aucun basculement discret). ⚠️ Courbe a REMESURER apres toute evolution du parc. 2e cable console en commande pour surveiller aussi les cellules du pack 1 (US5000), aujourd'hui hors surveillance continue (trames etendues Cerbo mortes, §69). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
@@ -212,18 +212,22 @@ const modulesEnService = (() => {
|
||||
})();
|
||||
const echelleParc = modulesEnService / MODULES_MESURE;
|
||||
|
||||
// 20/09/2026 — RE-MESURE sur le parc ASSAINI (13 equivalents US2000 : 4 US5000
|
||||
// + 5 US2000C, cellules a 3-6 mV). `tools/mesure-courbe-batterie.mjs 8` :
|
||||
// 0,30 kWh/point PLAT de 25 a 97 %, PLUS DE GENOU. Le genou a 33 % etait bien
|
||||
// la signature de la cellule 12 morte du pack ancien (§50) — il a disparu avec
|
||||
// elle, exactement comme le predisait la note de prudence du 03/09. La reserve
|
||||
// reelle a quasiment double (12,4 -> ~23 kWh utiles de 100 a 22 %).
|
||||
// Base normalisee a 7 modules (MODULES_MESURE) : 0,30 x 7/13 = 0,1615 par point.
|
||||
// x echelleParc(13/7) = 0,30 au parc actuel. Pente unique => plus de genou.
|
||||
// A REMESURER apres toute evolution du parc (2e cable console en commande pour
|
||||
// surveiller aussi les cellules du pack 1 US5000).
|
||||
const BATTERY_CURVE = {
|
||||
kneePct: 33,
|
||||
kwhPerPointAbove: 0.169 * echelleParc,
|
||||
kwhPerPointBelow: 0.097 * echelleParc,
|
||||
kneePct: 0,
|
||||
kwhPerPointAbove: 0.1615 * echelleParc,
|
||||
kwhPerPointBelow: 0.1615 * echelleParc,
|
||||
};
|
||||
|
||||
// ⚠️ LE GENOU EST CONSERVE PAR PRUDENCE, PAS PAR MESURE. L'hypothese la mieux
|
||||
// etayee est qu'il vient des cellules faibles du pack ancien, donc qu'il
|
||||
// disparait avec lui — auquel cas la pente reste plate et la reserve reelle est
|
||||
// MEILLEURE qu'annoncee ici. Le garder revient a se tromper du bon cote.
|
||||
// A trancher en remesurant : `node tools/mesure-courbe-batterie.mjs 8`.
|
||||
|
||||
// Energie que la batterie peut delivrer en descendant de socHi a socLo.
|
||||
function energyBetweenSoc(socLo, socHi) {
|
||||
if (!Number.isFinite(socLo) || !Number.isFinite(socHi) || socHi <= socLo) return 0;
|
||||
|
||||
Reference in New Issue
Block a user