Le parc se declare, la politique batterie suit
Quatre US5000 arrivent aujourd'hui. Les bandes de politique batterie sont en amperes ABSOLUS (souple -50 A / dur -100 A au-dessus de 90 % de SOC, etc.) et decrivent le parc de 4 modules sur lequel elles sont en vigueur -- l'arret dur du 11/09 a mordu au bon endroit, 87 A pour une limite de 70. Les garder telles quelles briderait un parc trois fois plus gros au niveau de l'ancien. Deux lectures, aucune table reecrite : - ECHELLE : le parc DECLARE (`evcs_balance_modules_en_service`, en equivalents US2000C -- un US5000 en vaut DEUX), le meme helper que la capacite utile et que le bilan energetique. Une seule valeur a tenir a jour, et les trois consommateurs restent forcement d'accord. - PLAFOND : ce que le BMS declare accepter a l'instant (`maximum_allowed_discharge_current` / `_charge_current`, nouvellement lus dans le snapshot). On ne s'autorise jamais plus. ⚠️ On ne met PAS a l'echelle sur la limite BMS lue en direct : elle s'effondre quand une cellule monte en tension (04/09 : plafond de charge de 150 a 20 A en cinq secondes). Une regle de confort ne suit pas un signal aussi nerveux ; elle se plafonne dessus, c'est tout. Parc absent ou BMS illisible => echelle 1, plafond inactif, comportement inchange. C'est pourquoi les 95 scenarios existants passent sans modification. Golden 95 -> 98. Mutation : echelle neutralisee -> seul `parc-double-decharge-toleree` tombe ; plafond BMS ignore -> seul `parc-double-plafond-bms` tombe. Verifie en production : execution 05:28:30 en succes, le gabarit rend bms_max_discharge_current_a=100, bms_max_charge_current_a=100, modules_en_service=4. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
@@ -2439,4 +2439,74 @@ export const scenarios = [
|
||||
sessionCommittedService: null,
|
||||
},
|
||||
},
|
||||
// ======== MISE A L'ECHELLE DU PARC (12/09/2026) ========
|
||||
// Les bandes de politique batterie sont en amperes absolus, decrivant le parc
|
||||
// de 4 modules. Ajouter 4 US5000 (soit 12 equivalents US2000C) doit les
|
||||
// mettre a l'echelle, sinon le nouveau parc reste bride au niveau de l'ancien.
|
||||
{
|
||||
id: 'parc-double-decharge-toleree',
|
||||
label: "Parc porte a 12 equivalents (4 US2000C + 4 US5000), BMS declarant 300 A : les -120 A qui arretaient tout a 4 modules deviennent tolerables",
|
||||
time: AFTERNOON,
|
||||
overrides: {
|
||||
evcs_vehicle_connected: 'on', evcs_device_connected: 'on',
|
||||
evcs_charging_switch: 'on', control_latch: 'on', charge_permission_now: 'on',
|
||||
last_start_at: '2026-08-08 14:00:00',
|
||||
soc_percent: '94',
|
||||
evcs_current_a: '20', evcs_set_current_a: '20', evcs_command_current_a: '20',
|
||||
evcs_ac_power_w: '3600',
|
||||
pv_power_w: '1000', pv_power_10m_avg_w: '6000', pv_trend_w: '0',
|
||||
house_ac_power_w: '9000', vebus_ac_out_l1_power_w: '9000',
|
||||
battery_current_a: '-120',
|
||||
modules_en_service: '12',
|
||||
bms_max_discharge_current_a: '300', bms_max_charge_current_a: '300',
|
||||
},
|
||||
expect: {
|
||||
profile: 'outside_window',
|
||||
state: 'charging_step_down_system_cap',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'parc-double-plafond-bms',
|
||||
label: "CONTREFACTUEL — parc declare a 12 mais le BMS n'autorise que 100 A (cellule faible, cablage) : le plafond BMS prime, -120 A reste un arret dur",
|
||||
time: AFTERNOON,
|
||||
overrides: {
|
||||
evcs_vehicle_connected: 'on', evcs_device_connected: 'on',
|
||||
evcs_charging_switch: 'on', control_latch: 'on', charge_permission_now: 'on',
|
||||
last_start_at: '2026-08-08 14:00:00',
|
||||
soc_percent: '94',
|
||||
evcs_current_a: '20', evcs_set_current_a: '20', evcs_command_current_a: '20',
|
||||
evcs_ac_power_w: '3600',
|
||||
pv_power_w: '1000', pv_power_10m_avg_w: '6000', pv_trend_w: '0',
|
||||
house_ac_power_w: '9000', vebus_ac_out_l1_power_w: '9000',
|
||||
battery_current_a: '-120',
|
||||
modules_en_service: '12',
|
||||
bms_max_discharge_current_a: '100', bms_max_charge_current_a: '100',
|
||||
},
|
||||
expect: {
|
||||
profile: 'outside_window',
|
||||
state: 'battery_current_hard_stop',
|
||||
decision: 'stop_hard',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'parc-non-declare-comportement-inchange',
|
||||
label: "CONTREFACTUEL — aucun parc declare, aucune limite BMS lisible : echelle 1, plafond inactif, comportement d'avant ce chantier",
|
||||
time: AFTERNOON,
|
||||
overrides: {
|
||||
evcs_vehicle_connected: 'on', evcs_device_connected: 'on',
|
||||
evcs_charging_switch: 'on', control_latch: 'on', charge_permission_now: 'on',
|
||||
last_start_at: '2026-08-08 14:00:00',
|
||||
soc_percent: '94',
|
||||
evcs_current_a: '20', evcs_set_current_a: '20', evcs_command_current_a: '20',
|
||||
evcs_ac_power_w: '3600',
|
||||
pv_power_w: '1000', pv_power_10m_avg_w: '6000', pv_trend_w: '0',
|
||||
house_ac_power_w: '9000', vebus_ac_out_l1_power_w: '9000',
|
||||
battery_current_a: '-120',
|
||||
},
|
||||
expect: {
|
||||
profile: 'outside_window',
|
||||
state: 'battery_current_hard_stop',
|
||||
decision: 'stop_hard',
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user