La conversion energie/SOC devient une courbe mesuree, pas une constante
576 paliers de SOC mesures sur 8 jours (tools/mesure-courbe-batterie.mjs, ajoute) : pour chaque palier ou le SOC reste a une valeur puis descend d un point, on integre la puissance batterie, en ecartant les paliers ou la batterie a charge et ceux ou le reseau a apporte quoi que ce soit. Resultat : plate a 0,169 kWh/point de 33 a 93 — six tranches independantes entre 0,163 et 0,171 — genou net a 32-33, puis 0,097 en dessous. Sous le genou un point de SOC vaut 57 % de ce qu il vaut au-dessus, ce qui est coherent avec le parc reel (un module en panne sur huit, un autre qui faiblit). Energie utile totale de 100 a 22 % : 12,39 kWh mesures, contre 11,70 vus par le bilan (15 kWh a plat) et 13,65 par INPUT_PARSE (17,5). Les deux constantes etaient fausses, dans des sens opposes. Comme 15 kWh se situe ENTRE les deux pentes, l erreur changeait de signe : SOC requis trop bas de 3 a 4 points pour un petit deficit, trop haut de 4 a 6 pour un gros. Cela corrige au passage une affirmation inexacte de la section 40, ou j avais ecrit que required_soc etait systematiquement trop bas d un facteur 1,75 : ce facteur comparait la vitesse de descente du SOC a celle de la ligne, deux grandeurs differentes, et l ecart venait surtout de la sous-estimation de la consommation par le profil p50. La correction est posee en tete de la section 40. Trois fonctions remplacent les cinq conversions lineaires de BALANCE.js ; requiredSocAtStartPct reste non ecrete au-dela de 100, l extrapolation utilisant la pente haute. INPUT_PARSE passe de 17,5 a 16,9 avec la consigne explicite qu un calcul traversant le genou doit lire la courbe et non cette constante. Tests du bilan 42/42 apres mise a jour deliberee de six attendus, chacun verifie a la main contre la courbe. Un libelle corrige : le seuil fixe de 30 % tombait juste ce matin-la par coincidence, pas par construction. Deux mutations — pente basse ramenee a la pente haute, puis genou ramene au plancher — font tomber les six memes scenarios. Golden 78, hysteresis 7 et advisor inchanges. Les trois nombres sont des resultats de mesure, pas des reglages, et vivent dans le code avec l outil qui les produit ; a rejouer apres l extension du parc. Principale erreur restante du bilan, desormais devant la conversion : le profil de consommation p50 sous-estimait de 33 % les heures 03-06 de la nuit du 02-03/09. A instruire separement. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
@@ -912,6 +912,45 @@ reserve d'orage est optimiste dans la meme bande. §28 avait deja signale
|
||||
l'effondrement de la jauge ; les mesures du 03/09 lui donnent sa courbe. C'est
|
||||
le prochain chantier du bilan energetique.
|
||||
|
||||
#### H. La conversion energie ↔ SOC devient une courbe mesuree (03/09/2026)
|
||||
|
||||
Le prerequis ci-dessus, traite le soir meme. `tools/mesure-courbe-batterie.mjs`
|
||||
(rejouable) integre la puissance batterie sur chaque palier de SOC qui descend
|
||||
d'un point, en ecartant les paliers avec charge ou apport reseau : **576 paliers
|
||||
sur 8 jours**.
|
||||
|
||||
| tranche | paliers | kWh/point |
|
||||
|---|---:|---:|
|
||||
| 21-31 | 88 | **0,097** |
|
||||
| 35-94 | 462 | **0,169** (six tranches, 0,163 a 0,171) |
|
||||
|
||||
Plate a 0,169 de 33 a 93, **genou net a 32-33**, puis 0,097 : sous le genou un
|
||||
point de SOC vaut 57 % de ce qu'il vaut au-dessus. Coherent avec le parc reel
|
||||
(§0 : un module en panne sur huit, un autre qui faiblit).
|
||||
|
||||
**Energie utile totale de 100 a 22 % : 12,39 kWh mesures**, contre 11,70 vus par
|
||||
le bilan (15 kWh a plat) et 13,65 par `INPUT_PARSE` (17,5). Les deux constantes
|
||||
etaient fausses, dans des sens opposes — chiffre a retenir pour le
|
||||
dimensionnement du parc prevu cet hiver.
|
||||
|
||||
Comme 15 kWh se situe ENTRE les deux pentes, **l'erreur changeait de signe** :
|
||||
SOC requis trop bas de 3 a 4 points pour un petit deficit (fin de nuit, la
|
||||
direction dangereuse), trop haut de 4 a 6 points pour un gros (debut de nuit).
|
||||
|
||||
Correctif : trois fonctions (`energyBetweenSoc`, `socForEnergy`,
|
||||
`socAfterEnergy`) remplacent les cinq conversions lineaires de `BALANCE.js`, et
|
||||
`INPUT_PARSE` passe de 17,5 a 16,9. Tests du bilan 42/42 apres mise a jour
|
||||
deliberee de six attendus, chacun verifie a la main ; deux mutations font tomber
|
||||
les six memes scenarios. Detail : HANDOFF §41.
|
||||
|
||||
⚠️ Ces trois nombres sont des **resultats de mesure, pas des reglages** :
|
||||
`node tools/mesure-courbe-batterie.mjs 8` est a rejouer apres toute evolution du
|
||||
parc.
|
||||
|
||||
⚠️ **Principale erreur restante du bilan** : le profil de consommation p50
|
||||
sous-estimait de ~33 % les heures 03-06 la nuit du 02-03/09 (2,1 kWh annonces,
|
||||
2,79 mesures). Devant la conversion, desormais. A instruire separement.
|
||||
|
||||
⚠️ Point structurel mis au jour par cet incident : le bilan energetique publie
|
||||
l'heure de croisement, l'energie a couvrir, le SOC requis, `grid_needed` et
|
||||
`pv_censored` — et **aucun des deux workflows de decision n'en lit une seule
|
||||
|
||||
Reference in New Issue
Block a user