La cible du matin devient une energie a couvrir, plus un palier

La regle classait le lendemain en trois paliers a partir de son TOTAL (>= 18 kWh
-> 35 %, >= 10 -> 55 %, sinon 85 %) et ignorait donc l heure d arrivee de
l energie. Le 03/09 demain annoncait 33,9 kWh — donc "fort", donc 35 % — avec un
matin creux (0,03 kWh a 7 h, 0,77 a 8 h) et un croisement a 9 h. Meme defaut que
le plancher du soir, a l autre bout de la nuit.

Releve de la nuit 02-03/09, requis contre reel : 00:30 62,4 / 53 ; 03:00
50,4 / 45 ; 04:30 41,7 / 37 ; 06:00 37,1 / 22 — cible fixe a 35 tout du long.
Le required_soc decroit proprement avec la nuit qui se consomme (6,1 -> 0 kWh a
couvrir), la batterie est restee sous la ligne toute la nuit, et le bilan le
savait des 00:30. A 03:00 EDF a ete relache cinq points sous la ligne ; le
reseau est revenu de 07:24 a 10:33 au plein tarif, 1,49 kWh.

La cible vaut desormais min(90, max(palier ou advisor, required_soc)). Sens
unique delibere : la direction corrigee est celle de l echec observe, et le
principe unificateur des deux cablages est que le bilan ne pousse jamais dans le
sens "couvre moins bien la nuit". Plafond 90 parce qu au-dela la batterie cesse
d etre un puits et evince la production du matin, et parce que le bilan publie
sans ecretage des valeurs superieures a 100 — sans ce plafond la cible serait
inatteignable et EDF resterait allume toute la nuit. C est deja la borne du
chemin advisor, aucune constante nouvelle.

Pas d oscillateur : required_soc decroit de facon monotone pendant la nuit et la
passe unique de recovery reste en place. Gardes et repli identiques au plancher
du soir, kill-switch existant.

Golden 70 -> 75. Quatre mutations font tomber chacune exactement un scenario
different. Un cinquieme scenario fige une LIMITE CONNUE, mesuree par sonde : la
passe unique de recovery latche le relachement pour toute la session, donc la
cible dynamique n ameliore que la premiere passe. §26 avait deja designe le bon
critere de re-engagement — un budget d energie restant a couvrir, qui appartient
au bilan ; la suite touche la machine a etats de la nuit et fera l objet d un
chantier propre.

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-09-03 22:51:09 +02:00
parent 6f3f98e8b6
commit 05bdf019c2
7 changed files with 344 additions and 9 deletions

View File

@@ -830,10 +830,42 @@ Portee : demarrage. Le plancher de maintien reste a 80 %, donc aucune charge en
cours n'est coupee. Golden 66 → 70, quatre mutations faisant tomber chacune
exactement un scenario different. Detail : HANDOFF §38.
⚠️ Le meme defaut subsiste sur l'autre bout de la nuit : `night_target_soc` est
toujours deduit du TOTAL de la prevision du lendemain (paliers 35/55/85), aveugle
a l'heure d'arrivee de l'energie — 35 % cote controleur contre 99,7 % cote bilan
le 03/09.
#### F. La cible du matin etait un palier, pas une energie (03/09/2026)
Symetrique du precedent, a l'autre bout de la nuit. La regle classe le lendemain
en trois paliers a partir de son TOTAL (≥ 18 kWh → 35 %, ≥ 10 → 55 %, sinon
85 %) et ignore donc **l'heure d'arrivee** de l'energie. Le 03/09, demain
annoncait 33,9 kWh — « fort », donc 35 % — avec un matin creux et un croisement
a 9 h.
Releve de la nuit 02-03/09, qui montre le probleme et sa solution dans le meme
tableau :
| heure | requis (bilan) | SOC reel | cible fixe |
|---|---:|---:|---:|
| 00:30 | 62,4 | 53 | 35 |
| 03:00 | **50,4** | **45** | 35 |
| 06:00 | 37,1 | 22 | 35 |
Le `required_soc` decroit avec la nuit qui se consomme. La batterie est restee
sous la ligne toute la nuit ; a 03:00 EDF a ete relache cinq points en dessous,
la batterie est tombee a 20 % vers 06:30 et le reseau est revenu **au plein
tarif** de 07:24 a 10:33 (1,49 kWh).
La cible vaut desormais `min(90, max(palier ou advisor, required_soc))`. Sens
unique delibere, comme le plancher du soir : le bilan ne pousse jamais dans le
sens « couvre moins bien la nuit ». Plafond 90 % parce qu'au-dela la batterie
cesse d'etre un puits et evince la production du matin — et parce que le bilan
publie sans ecretage des valeurs > 100 (§26). Golden 70 → 75, quatre mutations
faisant tomber chacune un scenario different. Detail : HANDOFF §39.
⚠️ **Limite connue et figee par un scenario** : la passe unique de recovery
(§26) latche le relachement pour toute la session, donc la cible dynamique
n'ameliore que la PREMIERE passe. Si le SOC repasse sous la ligne ensuite, le
reseau ne revient qu'via l'hysteresis a 20 %, possiblement hors heures creuses.
Le bon critere de re-engagement — « un budget d'energie restant a couvrir » —
etait deja designe par §26 ; le bilan est maintenant cable, mais la suite touche
la machine a etats de la nuit et fera l'objet d'un chantier propre.
⚠️ 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