Le reseau vient quand la maison demande plus que la batterie ne sait donner
Quatre modules : le BMS annonce 100 A de decharge sous 51 V, soit 5,1 kW, quand la maison a deja pointe a 8 kW en cuisinant. Contacteur ouvert, la batterie est seule et se fait tirer au-dela de sa limite. Le declenchement porte sur la CHARGE MAISON, jamais sur le courant batterie : fermer le contacteur fait chuter ce courant, donc s'en servir comme critere de relachement ferait que la decision detruirait sa propre cause. Fermeture a 80 % du plafond, relachement sous 50 %, les deux seuils derives du plafond annonce par le BMS - ils suivront donc le parc sans qu'on y touche. Les tests ont revele un vrai defaut au passage : les trois coupures immediates s'executent avant la cascade et auraient ouvert le contacteur que la regle venait de fermer. Elles cedent desormais devant la charge maison. Preuve par mutation : sans cette garde, un scenario tombe. Plafond illisible => regle inerte, comportement historique intact. 11/11. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
@@ -46,7 +46,81 @@ const recoveryBase = {
|
||||
user_strategy: 'auto_solar_plus',
|
||||
};
|
||||
|
||||
// Plafond de decharge REEL depuis le retrait du pack ancien (05/09/2026) :
|
||||
// quatre modules, 100 A annonces par le BMS sous 51 V, soit 5100 W. Les seuils
|
||||
// en decoulent — 4080 W pour fermer, 2550 W pour relacher — et se deplaceront
|
||||
// tout seuls le jour ou le parc changera.
|
||||
const parcQuatreModules = {
|
||||
battery_max_discharge_a: '100',
|
||||
battery_voltage_v: '51',
|
||||
};
|
||||
|
||||
export const scenarios = [
|
||||
{
|
||||
id: 'h-charge-au-dessus-du-parc-ferme',
|
||||
label: 'Cuisson a 4500 W contre 5100 W de plafond BMS : le reseau vient prendre la difference',
|
||||
time: T,
|
||||
overrides: {
|
||||
...recoveryBase,
|
||||
...parcQuatreModules,
|
||||
grid_latch: 'off',
|
||||
grid_state: 'off',
|
||||
soc_percent: '91',
|
||||
house_ac_power_w: '4500',
|
||||
},
|
||||
expect: {
|
||||
state: 'turn_on_charge_au_dessus_du_parc',
|
||||
gridAction: 'turn_on',
|
||||
latchAction: 'turn_on',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'h-charge-encore-elevee-maintient',
|
||||
label: 'Charge retombee a 3000 W, entre les deux seuils : on garde le reseau au lieu de le lacher',
|
||||
time: T,
|
||||
overrides: {
|
||||
...recoveryBase,
|
||||
...parcQuatreModules,
|
||||
soc_percent: '91',
|
||||
house_ac_power_w: '3000',
|
||||
last_on_at: minutesAgo(T_MS, 40),
|
||||
},
|
||||
expect: {
|
||||
state: 'hold_on_charge_encore_elevee',
|
||||
gridAction: 'none',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'h-charge-retombee-relache',
|
||||
label: 'CONTREFACTUEL : meme situation a 2000 W, sous le seuil de relachement — le reseau est rendu (ici par Fix C, le vehicule etant debranche)',
|
||||
time: T,
|
||||
overrides: {
|
||||
...recoveryBase,
|
||||
...parcQuatreModules,
|
||||
soc_percent: '91',
|
||||
house_ac_power_w: '2000',
|
||||
last_on_at: minutesAgo(T_MS, 40),
|
||||
},
|
||||
expect: {
|
||||
state: 'turn_off_vehicle_unplugged',
|
||||
gridAction: 'turn_off',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'h-plafond-inconnu-aucune-action',
|
||||
label: 'Plafond BMS illisible : la regle est inerte, le comportement historique tient',
|
||||
time: T,
|
||||
overrides: {
|
||||
...recoveryBase,
|
||||
soc_percent: '91',
|
||||
house_ac_power_w: '4500',
|
||||
last_on_at: minutesAgo(T_MS, 40),
|
||||
},
|
||||
expect: {
|
||||
state: 'turn_off_vehicle_unplugged',
|
||||
gridAction: 'turn_off',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'h-engage-low-soc',
|
||||
label: 'SOC 18% <= seuil ON 20% : EDF maintenu (engagement batterie basse)',
|
||||
|
||||
Reference in New Issue
Block a user