Bilan : la nuit prepare jusqu'a la nuit suivante (la regle du 08/10 prenait le creux de midi pour le soir)

This commit is contained in:
Tallagrand Thierry
2026-10-09 01:41:08 +02:00
parent b7448b72c4
commit 7969318185
6 changed files with 80 additions and 41 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,4 @@
import fs from 'node:fs';
// Scénarios du nœud BALANCE.
// Le scénario central est un REJEU de la matinée du 24/08/2026 : la production
// horaire est celle réellement mesurée ce jour-là (heures 06-09 h non
@@ -421,8 +422,10 @@ export const balanceScenarios = [
// 59,6 % a 19 h pour 64,7 % requis -> +5,1 points (courbe plate, pas
// d'ecretage) : 25,3 + 5,0 = 30,3 % en fin de nuit. Le 27/09 reel (22 kWh)
// a vide la batterie a 01:00 : le sens est le bon.
// 09/10 : la regle « la nuit prepare jusqu'a la nuit suivante » ne joue pas ici :
// au profil habituel, 25,1 kWh remontent assez la batterie pour passer 01:24.
expect: { usable: true, requiredSocPct: 40.2, prudentRequiredSocPct: 48.4, gridNeeded: false,
hcReachActive: true, nightEveningActive: true, hcFloorPct: 30.3, hcNightFloorPrudentPct: 48.4 },
hcReachActive: true, nightEveningActive: false, hcFloorPct: 25.3, hcNightFloorPrudentPct: 48.4 },
},
{
// Meme nuit, journee annoncee sombre (18 kWh, prevision VRM du 27) : le
@@ -432,7 +435,7 @@ export const balanceScenarios = [
id: 'bilan-hc-nuit-2709-journee-sombre-bloque-p12',
label: 'Nuit 26-27/09, journee sombre (18 kWh) : P12 plancher 72,1 % > SOC 72 → voiture sur le reseau HC',
snapshot: snap2709('2026-09-27T01:20:00+02:00', 72, NUIT_2709, SOMBRE),
expect: { usable: true, requiredSocPct: 54, prudentRequiredSocPct: 72.1, gridNeeded: false,
expect: { usable: true, requiredSocPct: 41.4, prudentRequiredSocPct: 72.1, gridNeeded: false,
hcReachActive: true, hcNightFloorPrudentPct: 72.1 },
},
{
@@ -602,9 +605,19 @@ export const balanceScenarios = [
label: 'Fenetre HC de NUIT, decision jour faible du jour : la nuit garde « tenir jusqu a midi »',
snapshot: Object.assign(snap2709('2026-09-27T01:20:00+02:00', 72, NUIT_2709),
{ ecs_nuit_jour: '2026-09-27|on|x' }),
// Pas de charge maximale la nuit ; la nuit prepare le soir (30,3 %, voir le
// scenario du 27/09 ci-dessus).
expect: { usable: true, hcReachActive: true, hcMaxCharge: false, nightEveningActive: true, hcFloorPct: 30.3 },
expect: { usable: true, hcReachActive: true, hcMaxCharge: false, hcFloorPct: 25.3 },
},
{
// ENTREE REELLE du 09/10 01:30 (PREPARE_BALANCE, VRM 14,7 kWh) : la version du
// 08/10 prenait le creux de 12 h (apres un surplus a 11 h) pour la « traversee du
// soir » et restait muette. Au profil habituel, sans relever, il manque 7 kWh
// sous le plancher avant 01:24 le 10/10 -> fin de nuit a 27,1 + 7 / 0,30 = 50,4 %
// (verifie a la main, courbe plate, pas d'ecretage).
node: 'BALANCE',
id: 'bilan-hc-nuit-0910-journee-faible-reelle',
label: 'Nuit du 08-09/10, journee faible (VRM 14,7 kWh) : la nuit charge a 50,4 % pour passer la soiree',
snapshot: JSON.parse(fs.readFileSync(new URL('./fixtures/bilan-0910-0130.json', import.meta.url), 'utf8')),
expect: { usable: true, hcReachActive: true, nightEveningActive: true, hcFloorPct: 50.4 },
},
{
node: 'BALANCE',