Le plafond de la consigne reseau est un plafond, pas une cible
Premiere version du credit solaire, en production 12 minutes : la consigne descendait bien a 2241 W et la PV remontait a 7074 W, puis tous les chargeurs repassant `mppt_active`, la condition de descente devenait fausse, le besoin revenait au plafond et la consigne etait REECRITE a 7100 W. La PV s'effondrait a 1785 W, les chargeurs se bridaient, on redescendait. Oscillateur de periode ~5 min -- le sixieme du projet, et celui-ci vient de moi. Releve : 17:40:30 -> 2241 / 17:47:19 -> 7100 / 17:47:28 PV 1785 / 17:48:30 -> 7368 / 17:49:30 -> 2186 / 17:50:30 -> 3762. Une fois descendue, la consigne est TENUE tant que le solaire produit. Rien a memoriser : la valeur vit dans le GX, et le plancher maison la fait remonter d'elle-meme si la maison grossit. La nuit les chargeurs sont `off`, donc ne produisent pas : on retombe sur le comportement historique ou la consigne monte au plafond pour que le reseau porte maison et voiture (§31, §57). Golden 89 -> 90. Mutation : remettre le besoin au plafond fait tomber le seul scenario `consigne-credit-converge-tient` ; appliquer le maintien la nuit fait tomber les TROIS scenarios de session reseau nocturne, dont deux anterieurs a ce chantier. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
@@ -420,11 +420,42 @@ const gridSetpointDescendOk =
|
||||
!derived.gridSettling &&
|
||||
gridSetpointCurrentW !== null;
|
||||
|
||||
let gridSetpointNeedW = gridSessionActive
|
||||
? gridSetpointCeilingW
|
||||
: params.gridSetpointIdleW;
|
||||
// ⚠️ LE PLAFOND EST UN PLAFOND, PAS UNE CIBLE (corrige 11/09 17:52).
|
||||
// Premiere version de ce correctif, en production 12 minutes : la consigne
|
||||
// descendait bien a 2241 W et la PV remontait a 7074 W -- puis, tous les
|
||||
// chargeurs repassant `mppt_active`, la condition de descente devenait fausse,
|
||||
// le besoin revenait au plafond et la consigne etait REECRITE a 7100 W. La PV
|
||||
// s'effondrait a 1785 W, les chargeurs se bridaient, on redescendait.
|
||||
// Oscillateur de periode ~5 min. Releve : 17:40:30 -> 2241 / 17:47:19 -> 7100
|
||||
// / 17:47:28 PV 1785 / 17:48:30 -> 7368.
|
||||
//
|
||||
// Une fois la consigne descendue, on la TIENT tant que le solaire produit. Ce
|
||||
// n'est pas un etat a memoriser : la valeur courante est dans le GX, et le
|
||||
// plancher maison la fait remonter d'elle-meme si la maison grossit.
|
||||
//
|
||||
// La nuit, les chargeurs sont `off` (ils ne produisent pas) : on retombe sur le
|
||||
// comportement historique -- la consigne monte au plafond pour que le reseau
|
||||
// porte maison et voiture (§31, §57). C'est cette distinction qui empeche le
|
||||
// « on tient » de casser les nuits HC.
|
||||
const solarProducing =
|
||||
parsed.mpptReadableCount > 0 && parsed.mpptAtMaxPowerCount > 0;
|
||||
|
||||
let gridSetpointNeedW;
|
||||
let gridSetpointDescending = false;
|
||||
|
||||
if (!gridSessionActive) {
|
||||
gridSetpointNeedW = params.gridSetpointIdleW;
|
||||
} else if (solarProducing && !batteryPolicy.batterySoftBreachNow && gridSetpointCurrentW !== null) {
|
||||
// On tient la valeur acquise, bornee par la maison et par le plafond.
|
||||
gridSetpointNeedW = clamp(
|
||||
Math.min(gridSetpointCurrentW, gridSetpointCeilingW),
|
||||
gridSetpointHouseFloorW,
|
||||
gridSetpointCeilingW
|
||||
);
|
||||
} else {
|
||||
gridSetpointNeedW = gridSetpointCeilingW;
|
||||
}
|
||||
|
||||
if (gridSetpointDescendOk) {
|
||||
// Un chargeur bride PROUVE qu'il reste de la ressource : on peut descendre
|
||||
// franchement. Une descente trop forte est rattrapee au cycle suivant (30 s
|
||||
|
||||
Reference in New Issue
Block a user