Fenetre d etablissement : ne plus decider sur les mesures du transitoire

A la fermeture du contacteur, PV, import et courant batterie ne decrivent aucun
regime permanent pendant ~150 s (mesure du 31/08). La boucle de 30 s y prenait
cinq decisions, et la moyenne PV 10 min en gardait la trace dix minutes de plus
-- le systeme lisait "plus de soleil", en concluait qu il avait besoin du
reseau, et confirmait sa propre premisse.

Aucun seuil nouveau : le systeme publiait deja l horodatage de la transition et
personne ne le lisait. Pendant la fenetre, on ne demarre pas et on ne laisse pas
une charge s arreter sur ces mesures ; les step-down restent libres.

Deux asymetries voulues : la fenetre ne s ouvre qu a l ARRIVEE du reseau (a sa
disparition les onduleurs reprennent tout, les gardes doivent agir plus vite),
et elle suspend le confort, jamais le risque.

Golden 42 -> 48, chaque cas apparie a son contrefactuel hors fenetre. Mutation :
gridSettling force a false -> 2 echecs cibles, restauration -> 48/48.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
Tallagrand Thierry
2026-08-31 18:18:03 +02:00
parent f07d4cb0f1
commit f0479945c4
8 changed files with 359 additions and 6 deletions

View File

@@ -136,6 +136,28 @@ const physicalCapA = clamp(
);
const canRunAtMinCurrent = physicalCapA >= params.currentMinA;
// =====================================================
// FENETRE D'ETABLISSEMENT DU RESEAU (31/08/2026)
// =====================================================
// Mesure du 31/08 : a la fermeture du contacteur, le reseau reprend d'un coup
// TOUTE la charge de la maison et le solaire bascule vers la batterie. Batterie
// preneuse, la production ne bouge pas ; batterie pleine, elle s'effondre (2663
// -> 559 W) faute de destination. Dans les deux cas l'import decroit ensuite
// jusqu'a la consigne en ~150 s (1985 -> 25 W, puis 2600 -> 52 W).
//
// Pendant cette phase, PV, import et courant batterie ne decrivent aucun regime
// permanent : la boucle de 30 s y prend cinq decisions, et la moyenne PV 10 min
// en garde la trace une dizaine de minutes de plus. Le systeme lit "plus de
// soleil", en conclut qu'il a besoin du reseau, et confirme ainsi sa propre
// premisse -- une boucle de rattrapage, comme les trois du 24/08.
//
// ASYMETRIE VOULUE : la fenetre ne s'ouvre qu'a l'ARRIVEE du reseau. A sa
// disparition, les onduleurs reprennent instantanement toute la charge : les
// gardes doivent agir plus vite, jamais moins vite.
const gridSettling =
parsed.gridAvailable &&
parsed.gridTransitionAgeSec < params.gridSettleSeconds;
const endDayGuardSoc = Math.max(params.endOfDaySocGuard, params.endOfDaySocTarget);
const energyNeededForEndDayGuardKwh = Math.max(
@@ -805,6 +827,8 @@ return [{
systemCapCurrentA,
physicalCapA,
canRunAtMinCurrent,
gridSettling,
gridTransitionAgeSec: parsed.gridTransitionAgeSec,
endDayGuardSoc,
energyNeededForEndDayGuardKwh,
forecastBufferKwh,