Le nombre de modules se lit, il ne se code plus
La courbe energie/SOC a ete mesuree sur sept modules. Retirer un module divise la capacite sans changer la forme de la courbe : les pentes sont donc mises a l'echelle du nombre reellement en service, lu dans input_number.evcs_balance_modules_en_service. Le controleur EVCS lit le meme helper pour sa capacite utile - les deux decrivent forcement le meme parc. Helper absent, illisible ou hors bornes => sept, la valeur de la mesure. Les 44 scenarios du bilan et les 80 golden passent donc sans qu'un seul attendu ait ete touche : la bascule ne change rien tant que personne ne l'ecrit. Deux scenarios couvrent la bascule elle-meme, l'un avec quatre modules (SOC exige 30,5 -> 35,2 %), l'autre avec une valeur aberrante qui doit retomber sur sept. Preuve par mutation : ignorer l'echelle fait tomber le premier et lui seul. Le genou a 33 % est conserve par PRUDENCE et non par mesure : l'hypothese est qu'il vient des cellules faibles du pack retire, donc qu'il disparait avec lui. Le garder revient a sous-estimer la reserve, c'est-a-dire a se tromper du bon cote. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
@@ -61,6 +61,7 @@
|
||||
"battery_reserve_up_a": states("input_number.victron_evcs_battery_reserve_up_a"),
|
||||
"battery_neutral_band_a": states("input_number.victron_evcs_battery_neutral_band_a"),
|
||||
"soc_start_min": states("input_number.victron_evcs_soc_start_min"),
|
||||
"modules_en_service": states("input_number.evcs_balance_modules_en_service"),
|
||||
"soc_stop_min": states("input_number.victron_evcs_soc_stop_min"),
|
||||
"current_min_a": states("input_number.victron_evcs_current_min_a"),
|
||||
"current_max_auto_a": states("input_number.victron_evcs_current_max_auto_a"),
|
||||
|
||||
@@ -220,7 +220,15 @@ const CFG = {
|
||||
// ici qu'a des ecarts SOC -> cible, tous deux au-dessus du genou. Si un calcul
|
||||
// devait un jour traverser le genou, il faut la COURBE (src/energy-balance/
|
||||
// BALANCE.js) et non cette constante.
|
||||
batteryUsableCapacityKwh: 16.9,
|
||||
// 16,9 kWh mesures sur SEPT modules (§41), soit 2,414 kWh par module. Le parc
|
||||
// ayant change deux fois en une semaine, le nombre de modules se LIT au lieu
|
||||
// d'etre code : `input_number.evcs_balance_modules_en_service`, le meme helper
|
||||
// que le bilan energetique — les deux decrivent forcement le meme parc.
|
||||
// Absent ou illisible => 7, donc aucun changement tant que personne ne l'ecrit.
|
||||
batteryUsableCapacityKwh: 2.414 * (() => {
|
||||
const n = Number(input.modules_en_service);
|
||||
return Number.isFinite(n) && n >= 1 && n <= 16 ? n : 7;
|
||||
})(),
|
||||
nominalAcVoltageV: 230,
|
||||
evcsDedicatedMaxW: 4900,
|
||||
systemReserveW: 300,
|
||||
|
||||
Reference in New Issue
Block a user