Bilan : une heure de nuit n'a aucune forme a minorer

Le drapeau « degrade » introduit la veille s'allumait de 20 h a 07 h toutes les
nuits. La qualite de forme d'une heure vient du taux de censure ; les heures
sans soleil portent un taux de 1 faute d'avoir quoi que ce soit a observer, pas
parce que la mesure serait douteuse. Comme les heures de deficit sont justement
les heures sans soleil, le drapeau se declenchait exactement quand le bilan
sert.

Une heure dont l'enveloppe demontree est nulle recoit desormais la qualite
'nuit'. Scenario epingle sur l'enveloppe et le taux de censure releves en
production, pas sur le fixture — dont la nuit valait 0 et qui ne reproduisait
donc pas le defaut. Preuve par mutation : avant 'minoree', apres 'nuit'.

Suite 37 -> 38. Documente la nuit du 25-26/08 : profil corrige verifie a
0,2 kWh/h pres, bilan qui predit le point bas a un point pres, et non-linearite
du SOC mesuree (huit points en dix-sept minutes pour 0,16 kWh).
This commit is contained in:
Tallagrand Thierry
2026-08-26 12:14:35 +02:00
parent 08c072d781
commit 8ad34f8c93
5 changed files with 189 additions and 2 deletions

View File

@@ -68,6 +68,11 @@ const SUMMARIZE = {
todayExpected: o.todayExpectedRemainingKwh,
tomorrowExpected: o.tomorrowExpectedKwh,
shapeConfidenceBelow: o.source.shapeConfidence != null && o.source.shapeConfidence < 0.5,
// Qualite de forme d'une heure de nuit (03 h) et d'une heure de plein
// apres-midi (14 h) : sert au scenario de nuit, ou une heure sans soleil
// ne doit pas etre declaree « minoree ».
qualityAtHour3: (o.horizon.find(h => h.hour === 3) || {}).shapeQuality,
qualityAtHour14: (o.horizon.find(h => h.hour === 14) || {}).shapeQuality,
}),
BALANCE: o => o.usable ? ({
usable: true,

View File

@@ -159,6 +159,32 @@ export const resourceScenarios = [
shapeConfidenceBelow: true,
},
},
{
node: 'RESOURCE_ESTIMATE',
id: 'ressource-nuit-forme-non-minoree',
label: 'Projection lancee en pleine nuit : une heure sans soleil n\'a aucune forme a minorer, elle ne doit pas degrader la confiance',
snapshot: {
// 22:30 : l'horizon couvre les heures 0 a 6, dont le taux de censure
// vaut 1 faute de soleil a observer, pas faute de mesure fiable.
nowMs: Date.parse('2026-08-25T22:30:00+02:00'),
forecast_today_remaining_kwh: '0',
forecast_tomorrow_kwh: '32',
// Enveloppe et taux de censure RELEVES EN PRODUCTION le 26/08/2026, pas
// ceux du fixture (capture plus ancienne ou la nuit valait 0). En
// production la nuit vaut 1 : c'est cette valeur-la qui declenchait le
// faux « degrade », et c'est donc elle qu'il faut tester.
envelope_kwh: [0,0,0,0,0,0,0,0.17,1.03,3.86,6.55,7.17,9.33,8.38,
7.78,6.37,3.77,4.78,2.55,2.72,0.91,0.16,0,0],
censorship_rate: [1,1,1,1,1,1,1,0,0,0,0,0,0.25,0.36,
0.44,0.63,0.71,0.88,0.80,0.75,0.08,0,1,1],
},
expect: {
usable: true,
qualityAtHour3: 'nuit',
// L'apres-midi, lui, reste bien signale comme minore.
qualityAtHour14: 'minoree',
},
},
{
node: 'RESOURCE_ESTIMATE',
id: 'ressource-matin-forme-fiable',