Un depassement souple de la batterie doit durer pour compter
La table des bandes SOC declarait depuis toujours un courant souple tolere pendant des minutes et un courant dur tolere quelques secondes. Les deux tolerances etaient calculees, exportees dans le debug, et lues par aucune decision : le controleur comparait un echantillon instantane a un plancher, toutes les 30 s. A SOC 94 la batterie est en float et son courant oscille entre +1,8 et -2,6 A d'un echantillon a l'autre. Le test devenait un tirage a pile ou face et la charge du vehicule s'arretait sur du bruit : deux fois le 01/09, quatre a six fois par jour la semaine precedente. Chaque arret coutait environ 0,45 kWh, la batterie etant pleine et le vehicule le seul preneur. Le correctif est purement temporel : aucun seuil n'est deplace, aucune constante ajoutee. La tolerance de la bande est branchee sur les trois conditions de MAINTIEN, via un helper de persistance qui porte le debut du depassement en cours. Le plancher de demarrage et le garde dur restent instantanes : la tolerance est du confort, jamais du risque. Golden 56 -> 61. Preuve par mutation dans les deux sens : tolerance supprimee -> 2 echecs cibles, tolerance infinie -> 3 echecs cibles, l'arret dur restant vert dans les deux cas. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
@@ -717,6 +717,39 @@ charge EVCS), lisser le SOC pour les décisions de confort en gardant
|
||||
l'instantané pour la sécurité, et exploiter les messages d'état réels du
|
||||
Victron et de la borne plutôt que de s'auto-limiter à l'aveugle sur un proxy.
|
||||
|
||||
#### C. Arrêt de la charge sur le bruit de la mesure batterie (01/09/2026)
|
||||
|
||||
Troisième membre de la même famille, découvert le 01/09 : la règle de maintien
|
||||
comparait le **courant batterie instantané** à un plancher de 0 A, toutes les
|
||||
30 s. À SOC 94 % la batterie est en float et son courant oscille entre +1,8 et
|
||||
−2,6 A d'un échantillon à l'autre — le test devenait un tirage à pile ou face.
|
||||
Deux arrêts ce jour-là (14:26 et 14:56), 1 à 6 par jour la semaine précédente.
|
||||
|
||||
Chaque arrêt coûtait ~0,45 kWh : batterie pleine, le véhicule était le **seul
|
||||
preneur**, donc la PV s'effondrait de 6,6 à 2,5 kW en 30 s et la reprise mettait
|
||||
21 min à remonter de 6 A à 20 A.
|
||||
|
||||
La table de politique batterie par bande de SOC (`INPUT_PARSE`) déclarait
|
||||
pourtant déjà, pour chaque bande, un courant **souple** toléré pendant des
|
||||
**minutes** (12 min au-dessus de 90 %) et un courant **dur** toléré quelques
|
||||
**secondes**. Les deux tolérances étaient calculées, exportées dans le debug, et
|
||||
lues par **aucune décision** : toute la dimension temporelle de la politique
|
||||
était morte.
|
||||
|
||||
Correctif : brancher la tolérance souple sur les trois conditions de maintien,
|
||||
via un helper de persistance
|
||||
`input_text.victron_evcs_battery_soft_breach_at` qui porte le début du
|
||||
dépassement en cours. **Aucun seuil déplacé, aucune constante ajoutée.** Le
|
||||
plancher de démarrage et le garde dur restent instantanés — la tolérance est du
|
||||
confort, jamais du risque. Le filtre discrimine parce que le bruit change de
|
||||
signe en quelques secondes (compteur remis à zéro) alors qu'une vraie décharge
|
||||
reste négative à chaque échantillon.
|
||||
|
||||
Golden 56 → 61, dont le contrefactuel `batt-decharge-soutenue-coupe` qui prouve
|
||||
que la garde mord toujours après sa tolérance. Détail : HANDOFF §35.
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## 12. Configuration opencode.json
|
||||
|
||||
Reference in New Issue
Block a user