diff --git a/docs/pages/battery-report-zh.html b/docs/pages/battery-report-zh.html new file mode 100644 index 0000000..70553f3 --- /dev/null +++ b/docs/pages/battery-report-zh.html @@ -0,0 +1,171 @@ +
八个模块,每个十五颗电芯。其中十颗电芯限制了其余九十五颗的充电。本报告说明是哪几颗、依据何在、以及可以怎么处理。
+电池组并未整体老化。八个模块中有四个毫无异常: +六十颗电芯在三百多次循环之后没有一处异常。第五个模块同样干净。
+全部问题集中在三个模块,而在这三个模块之内只有十颗电芯。 +当其中一颗达到 3550 mV,BMS 便降低充电电流——降的不是该模块,而是 +整个电池组。五个健康模块被十颗电芯拖住。
模块的身份是它的条码,而不是地址:每条链上的模块都从 1 重新编号, +因此本系统中存在两个「模块 1」。
| 条码 | 电池组 | 地址 | 受影响电芯数 | 具体编号 | 压差中位数 | 过压次数 | 欠压次数 | |
|---|---|---|---|---|---|---|---|---|
| K220803C30160322 | 旧 | 1 | 4 | 6 · 7 · 12 · 14 | 108 | 498 | 86 | 在运行 |
| K220803C30160323 | 旧 | 2 | 0 | — | 6 | 0 | 0 | 在运行 |
| K220803C30160319 | 旧 | 3 | 5 | 2 · 6 · 10 · 12 · 15 | 45 | 416 | 179 | 在运行 |
| K220803C30160324 | 旧 | 4 | 1 | 15 | 57 | 29 | 59 | 已隔离 |
| Y230202C30371426 | 新 | 1 | 0 | — | 2 | 1 | 1 | 在运行 |
| Y230202C30371425 | 新 | 2 | 0 | — | 2 | 1 | 1 | 在运行 |
| Y230202C30371431 | 新 | 3 | 0 | — | 2 | 1 | 1 | 在运行 |
| Y230202C30371427 | 新 | 4 | 0 | — | 2 | 1 | 0 | 在运行 |
请看压差中位数一列。五个健康模块在 2 至 6 毫伏之间; +另外三个分别为 45、57 与 108。过压计数呈现同样的对比:第一个模块为 +498 次,而新电池组四个模块各自仅 1 次—— +后者的循环次数还多出十倍。
+新电池组的六十颗电芯,幅度全部落在 168 至 191 mV 之间,无一例外。 +清点至此完成。
+ +9 月 5 日,在告警上升过程中,控制台接入了旧电池组的三个模块。 +以下为逐秒记录。
| 时间 | 发生了什么 | |
|---|---|---|
| 13:04:48 | 模块 …0322 的 7 号电芯 3526 mV,模块 …0319 的 6 号电芯 3541 | 低于阈值 |
| 13:05:08 | 同两颗电芯升至 3555 与 3575 mV | 越过三级阈值 |
| 13:05:13 | BMS 将允许充电电流由 50 A 降至 30 A | 五秒之后 |
| 13:15:10 | 电芯回落至 3499 与 3522 mV,告警解除 | 但电流限值仍保持 30 A |
| 13:22:40 | 限值 30 → 40 A | 经过 7 分 31 秒 |
| 13:26:39 | 限值 40 → 35 A,最高电芯 3563 与 3548 mV | 再次触发 |
| 13:38:10 | 限值 35 → 40 A | 经过 11 分 31 秒 |
最有价值的一处发现在第四行:告警远早于电流限值 +恢复之前就已解除。因此仅在日志中查找告警,会错过该现象的绝大部分—— +告警持续数分钟,而限流持续数小时。
这些阈值并非我们所选:它们由设备本身声明,读取自 LV-HUB 的 +sysinfo。
这个问题决定了均衡能够挽回多少。同一颗电芯在两种电流下的两个测点 +即可判定。
+| 单芯电流 | 压差 | |
|---|---|---|
| 13:04:48 | 6.33 A | 163 mV |
| 14:05:42 | 0.04 A | 46 mV |
斜率给出最高电芯的额外内阻约 18.6 mΩ,为健康电芯的 +二十至四十倍。截距 约 46 mV,才是真正的荷电不均衡。
+独立验证:该直线预测在整组电流 100 A 时压差为 312 mV;三十七天记录中 +实际出现的最大压差为 280 mV。
+因此在充电时约 190 mV 的压差中,只有 46 mV 属于不均衡, +其余为容量损失。即便完成理想均衡,触发点也只能从 3555 mV 降至约 3510 mV: +低于阈值,但余量仅四十毫伏。
+ +并非老化所致。新电池组一年内完成三百四十次循环,六十颗电芯完好无损: +循环本身不会损坏这些模块。对照模块与两个受损模块同链、同电流、同工况, +亦毫发无伤。
+两颗已失效电芯曾降至 2953 与 +2939 mV,低于低压告警阈值。磷酸铁锂电芯在带载状态下 +被放至该电压,会发生不可逆的容量损失。这些电芯不是老化,而是被过放。
+ +Eight modules, fifteen cells each. Ten of those cells throttle the charging of the other ninety-five. Here is which ones, how we know, and what can be done about it.
+The pack is not worn out. Four modules out of eight are flawless: +sixty cells without a single anomaly, after more than three hundred cycles. A +fifth is just as clean.
+Three modules carry the entire problem, and within those three, ten +cells. When one of them reaches 3550 mV the BMS reduces the charge +current — not for its own module, but for the whole pack. Five +healthy modules are throttled by ten cells.
A module's identity is its barcode, never its address: each chain renumbers +its modules from 1, so there are two “module 1” in this installation.
| Barcode | Pack | Addr. | Affected cells | Which ones | Median spread | Overvoltage | Undervoltage | |
|---|---|---|---|---|---|---|---|---|
| K220803C30160322 | older | 1 | 4 | 6 · 7 · 12 · 14 | 108 | 498 | 86 | in service |
| K220803C30160323 | older | 2 | 0 | — | 6 | 0 | 0 | in service |
| K220803C30160319 | older | 3 | 5 | 2 · 6 · 10 · 12 · 15 | 45 | 416 | 179 | in service |
| K220803C30160324 | older | 4 | 1 | 15 | 57 | 29 | 59 | isolated |
| Y230202C30371426 | newer | 1 | 0 | — | 2 | 1 | 1 | in service |
| Y230202C30371425 | newer | 2 | 0 | — | 2 | 1 | 1 | in service |
| Y230202C30371431 | newer | 3 | 0 | — | 2 | 1 | 1 | in service |
| Y230202C30371427 | newer | 4 | 0 | — | 2 | 1 | 0 | in service |
Read the median spread column. The five healthy modules sit between +2 and 6 millivolts; the other three are at 45, 57 and 108. The +same contrast shows in the overvoltage counters: 498 for the +first module against one for each of the four in the newer pack, +which have nonetheless taken ten times more cycles.
+All sixty cells of the newer pack sweep between 168 and 191 mV, without +exception. The inventory is closed.
+ +On 5 September the console was connected to the three modules of the older +pack while the alarm was rising. What follows is the record, to the second.
| Time | What happens | |
|---|---|---|
| 13:04:48 | cell 7 of module …0322 at 3526 mV, cell 6 of module …0319 at 3541 | below threshold |
| 13:05:08 | the same two at 3555 and 3575 mV | level 3 crossed |
| 13:05:13 | the BMS drops the allowed charge current from 50 to 30 A | five seconds later |
| 13:15:10 | cells fall back to 3499 and 3522 mV, alarm clears | the limit stays at 30 A |
| 13:22:40 | limit 30 → 40 A | after 7 min 31 s |
| 13:26:39 | limit 40 → 35 A, leading cells at 3563 and 3548 mV | it trips again |
| 13:38:10 | limit 35 → 40 A | after 11 min 31 s |
The most useful finding is in the fourth row: the alarm +clears well before the limit recovers. Looking for the alarm in the logs therefore +misses the bulk of the phenomenon — the alarm lasts minutes, the throttling lasts +hours.
The thresholds are not values we chose: they are the ones the hardware +declares, read from sysinfo on the LV-HUB.
The answer decides what balancing can give back. Two measurement points on +the same cell at two different currents settle it.
+| current per cell | spread | |
|---|---|---|
| 13:04:48 | 6.33 A | 163 mV |
| 14:05:42 | 0.04 A | 46 mV |
The slope gives ≈ 18.6 mΩ of excess internal resistance on the +leading cell, twenty to forty times that of a healthy one. The intercept, +≈ 46 mV, is the true charge imbalance.
+Independent check: this line predicts 312 mV at 100 A pack current. The largest +spread actually recorded over thirty-seven days is 280 mV.
+So of the ~190 mV of spread under charge, only 46 mV are an +imbalance — the rest is lost capacity. A perfect rebalance would bring the +trip from 3555 down to about 3510 mV: below the threshold, but with only forty +millivolts of margin.
+ +Not from wear. The newer pack has taken three hundred and forty cycles in a +year and its sixty cells are intact: cycling does not damage these modules. And +the control module shared the chain, the currents and the days of the two damaged +ones without a scratch.
+The two terminal cells went down to 2953 and +2939 mV, below the low-voltage alarm threshold. A +lithium iron phosphate cell taken there under load loses capacity irreversibly. +These cells did not age, they were discharged too deep.
+ +Huit modules, quinze cellules chacun. Dix de ces cellules - brident la charge des quatre-vingt-quinze autres. Voici lesquelles, comment on le sait, - et ce qu’on peut en faire.
+Huit modules, quinze cellules chacun. Dix de ces cellules brident la charge des quatre-vingt-quinze autres. Voici lesquelles, comment on le sait, et ce qu’on peut en faire.
Le parc n’est pas usé. Quatre modules sur huit sont irréprochables : +
Le parc n’est pas usé. Quatre modules sur huit sont irréprochables : soixante cellules sans une seule anomalie, après plus de trois cents cycles. Un cinquième l’est tout autant.
Trois modules portent l’ensemble du problème, et à l’intérieur de ces trois, dix cellules. Quand l’une d’elles atteint 3550 mV, le BMS réduit le courant de charge — non pas de son module, mais de tout le parc. -Cinq modules sains sont bridés par dix cellules.
-L’identité d’un module est son code-barres, jamais son adresse : chaque -chaîne renumérote ses modules à partir de 1, il existe donc deux « module -1 » dans cette installation.
-| Code-barres | Pack | Adr. | Cellules atteintes | -Lesquelles | Écart médian | Surtensions | Sous-tensions | |
|---|---|---|---|---|---|---|---|---|
| K220803C30160322 | ancien | 1 | 4 | 6 · 7 · 12 · 14 | 108 | 498 | 86 | en service |
| K220803C30160323 | ancien | 2 | 0 | — | 6 | 0 | 0 | en service |
| K220803C30160319 | ancien | 3 | 5 | 2 · 6 · 10 · 12 · 15 | 45 | 416 | 179 | en service |
| K220803C30160324 | ancien | 4 | 1 | 15 | 57 | 29 | 59 | isolée |
| Y230202C30371426 | récent | 1 | 0 | — | 2 | 1 | 1 | en service |
| Y230202C30371425 | récent | 2 | 0 | — | 2 | 1 | 1 | en service |
| Y230202C30371431 | récent | 3 | 0 | — | 2 | 1 | 1 | en service |
| Y230202C30371427 | récent | 4 | 0 | — | 2 | 1 | 0 | en service |
Lisez la colonne des écarts médians. Les cinq modules sains tiennent entre -2 et 6 millivolts ; les trois autres sont à 45, 57 et 108. -Le même contraste apparaît sur les surtensions : 498 pour -le premier module contre une seule pour chacun des quatre du -pack récent, qui ont pourtant encaissé dix fois plus de cycles.
+L’identité d’un module est son code-barres, jamais son adresse : chaque +chaîne renumérote ses modules à partir de 1, il existe donc deux « module 1 » +dans cette installation.
| Code-barres | Pack | Adr. | Cellules atteintes | Lesquelles | Écart médian | Surtensions | Sous-tensions | |
|---|---|---|---|---|---|---|---|---|
| K220803C30160322 | ancien | 1 | 4 | 6 · 7 · 12 · 14 | 108 | 498 | 86 | en service |
| K220803C30160323 | ancien | 2 | 0 | — | 6 | 0 | 0 | en service |
| K220803C30160319 | ancien | 3 | 5 | 2 · 6 · 10 · 12 · 15 | 45 | 416 | 179 | en service |
| K220803C30160324 | ancien | 4 | 1 | 15 | 57 | 29 | 59 | isolée |
| Y230202C30371426 | récent | 1 | 0 | — | 2 | 1 | 1 | en service |
| Y230202C30371425 | récent | 2 | 0 | — | 2 | 1 | 1 | en service |
| Y230202C30371431 | récent | 3 | 0 | — | 2 | 1 | 1 | en service |
| Y230202C30371427 | récent | 4 | 0 | — | 2 | 1 | 0 | en service |
Lisez la colonne des écarts médians. Les cinq modules sains tiennent entre +2 et 6 millivolts ; les trois autres sont à 45, 57 et 108. Le même +contraste apparaît sur les surtensions : 498 pour le premier +module contre une seule pour chacun des quatre du pack récent, +qui ont pourtant encaissé dix fois plus de cycles.
Les soixante cellules du pack récent balayent toutes entre 168 et 191 mV -d’amplitude, sans exception. L’inventaire est clos : il n’y a rien à -chercher ailleurs que dans les trois modules déjà nommés.
- -Le 5 septembre, la console a été branchée sur les trois modules du pack ancien -pendant que l’alarme montait. Ce qui suit est le relevé, à la seconde.
-| Heure | Ce qui se passe | |
|---|---|---|
| 13:04:48 | cellule 7 du module …0322 à 3526 mV, cellule 6 du module …0319 à 3541 | sous le seuil |
| 13:05:08 | les mêmes à 3555 et 3575 mV | niveau 3 franchi |
| 13:05:13 | le BMS abaisse le courant de charge autorisé de 50 à 30 A | cinq secondes plus tard |
| 13:15:10 | les cellules redescendent à 3499 et 3522 mV, l’alarme repasse au vert | le plafond, lui, reste à 30 A |
| 13:22:40 | plafond 30 → 40 A | après 7 min 31 s |
| 13:26:39 | plafond 40 → 35 A, meneuses à 3563 et 3548 mV | il redéclenche |
| 13:38:10 | plafond 35 → 40 A | après 11 min 31 s |
Le 5 septembre, la console a été branchée sur les trois modules du pack +ancien pendant que l’alarme montait. Ce qui suit est le relevé, à la seconde.
| Heure | Ce qui se passe | |
|---|---|---|
| 13:04:48 | cellule 7 du module …0322 à 3526 mV, cellule 6 du module …0319 à 3541 | sous le seuil |
| 13:05:08 | les mêmes à 3555 et 3575 mV | niveau 3 franchi |
| 13:05:13 | le BMS abaisse le courant de charge autorisé de 50 à 30 A | cinq secondes plus tard |
| 13:15:10 | les cellules redescendent à 3499 et 3522 mV, l’alarme repasse au vert | le plafond, lui, reste à 30 A |
| 13:22:40 | plafond 30 → 40 A | après 7 min 31 s |
| 13:26:39 | plafond 40 → 35 A, meneuses à 3563 et 3548 mV | il redéclenche |
| 13:38:10 | plafond 35 → 40 A | après 11 min 31 s |
La découverte la plus utile de la journée tient dans la -quatrième ligne : l’alarme repasse au vert bien avant que le plafond ne -remonte. Chercher l’alarme dans les journaux fait donc manquer l’essentiel du -phénomène — elle dure quelques minutes, le bridage dure des heures.
+La découverte la plus utile tient dans la quatrième +ligne : l’alarme repasse au vert bien avant que le plafond ne remonte. Chercher +l’alarme dans les journaux fait donc manquer l’essentiel du phénomène — elle dure +quelques minutes, le bridage dure des heures.
Les seuils ne sont pas des valeurs choisies : ce sont ceux que le matériel +déclare lui-même, lus dans sysinfo du LV-HUB.
La question décide de ce qu’un rééquilibrage peut rendre. Deux points de +mesure suffisent à la trancher, sur la même cellule à deux courants différents.
+| courant par cellule | écart | |
|---|---|---|
| 13:04:48 | 6,33 A | 163 mV |
| 14:05:42 | 0,04 A | 46 mV |
La pente donne ≈ 18,6 mΩ de résistance excédentaire sur la +cellule meneuse, vingt à quarante fois celle d’une cellule saine. L’ordonnée à +l’origine, ≈ 46 mV, est le vrai décalage de charge.
+Contrôle indépendant : cette droite prédit 312 mV à 100 A de courant parc. +L’écart maximal réellement enregistré sur trente-sept jours est de 280 mV.
+Donc sur les ~190 mV d’écart en charge, 46 mV seulement sont un +décalage — le reste est de la capacité perdue. Un rééquilibrage parfait +ramènerait le déclenchement de 3555 à environ 3510 mV : sous le seuil, mais avec +quarante millivolts de marge seulement.
+ +Pas de l’usure. Le pack récent a encaissé trois cent quarante cycles en un +an et ses soixante cellules sont intactes : cycler n’abîme pas ces modules. Et le +module témoin a partagé la chaîne, les courants et les journées des deux abîmés +sans une égratignure.
+Les deux cellules terminales du parc sont descendues à 2953 +et 2939 mV, sous le seuil d’alarme basse. Un accumulateur +au lithium-fer-phosphate mené là sous charge perd de la capacité de façon +irréversible. Ces cellules n’ont pas vieilli, elles ont été vidées trop +bas.
+ +Les seuils ne sont pas des valeurs choisies : ce sont ceux que le -matériel déclare lui-même.
-La consigne de tension de charge a été abaissée de 51,3 -à 51,0 V pour voir si le contournement suffisait à ne -plus jamais déclencher.
-Il ne suffit pas. À 92 % de charge, les cellules meneuses -ont atteint 3563 et 3548 mV malgré la consigne abaissée, et le plafond a -recommencé à osciller entre 35 et 40 A. Le système ne reste pas « bloqué » -à une valeur : il cherche en permanence le courant maximal que la cellule la -plus faible tolère.
-Une mesure explique pourquoi la tension seule ne peut pas régler la question. -À tension de parc identique, la cellule meneuse était à 3555 mV -sous 50 A et à 3496 mV sous 30 A. Son excursion -est donc largement produite par sa résistance interne multipliée par le courant, -et pas seulement par son état de charge.
- -Pas de l’usure. Le pack récent a encaissé trois cent quarante cycles en un an -et ses soixante cellules sont intactes : cycler n’abîme pas ces modules.
-Les deux cellules terminales du parc sont descendues à -2953 et 2939 mV, sous le seuil -d’alarme basse. Un accumulateur au lithium-fer-phosphate mené là sous charge perd -de la capacité de façon irréversible. Ces cellules n’ont pas vieilli, -elles ont été vidées trop bas.
-Et il y a une boucle à rompre. La jauge d’état de charge du parc suit la -cellule la plus faible. Quand le système croit toucher son plancher de sécurité -à 22 %, cette cellule est déjà bien plus bas que le chiffre ne le laisse -croire. Le plancher est exprimé dans une grandeur que la cellule -endommagée fausse elle-même : il ne protège pas ce qu’il croit -protéger, et rien n’empêche le même mécanisme d’atteindre le pack sain.
-Une alimentation stabilisée permettra de reprendre le rééquilibrage au banc, -en commençant par le module isolé : il n’a qu’une cellule à traiter, il est -hors service, et rien de ce qu’on y tentera ne peut nuire au parc.
-Une limite à garder en tête : un rééquilibrage corrige un décalage -de charge, pas une perte de capacité. Les cellules modérément décalées -sont de bonnes candidates. Les deux cellules terminales le sont beaucoup moins — -et c’est précisément ce que l’essai sur le module isolé dira, sans risque.
-Huit modules, quinze cellules chacun. Dix de ces cellules - brident la charge des quatre-vingt-quinze autres. Voici lesquelles, comment on le sait, - et ce qu’on peut en faire.
-{t['chapeau']}
+Le parc n’est pas usé. Quatre modules sur huit sont irréprochables : -soixante cellules sans une seule anomalie, après plus de trois cents cycles. Un -cinquième l’est tout autant.
-Trois modules portent l’ensemble du problème, et à l’intérieur de ces trois, -dix cellules. Quand l’une d’elles atteint 3550 mV, le BMS réduit -le courant de charge — non pas de son module, mais de tout le parc. -Cinq modules sains sont bridés par dix cellules.
-L’identité d’un module est son code-barres, jamais son adresse : chaque -chaîne renumérote ses modules à partir de 1, il existe donc deux « module -1 » dans cette installation.
+| Code-barres | Pack | Adr. | Cellules atteintes | -Lesquelles | Écart médian | Surtensions | Sous-tensions |
|---|
Lisez la colonne des écarts médians. Les cinq modules sains tiennent entre -2 et 6 millivolts ; les trois autres sont à 45, 57 et 108. -Le même contraste apparaît sur les surtensions : 498 pour -le premier module contre une seule pour chacun des quatre du -pack récent, qui ont pourtant encaissé dix fois plus de cycles.
-Les soixante cellules du pack récent balayent toutes entre 168 et 191 mV -d’amplitude, sans exception. L’inventaire est clos : il n’y a rien à -chercher ailleurs que dans les trois modules déjà nommés.
- -Le 5 septembre, la console a été branchée sur les trois modules du pack ancien -pendant que l’alarme montait. Ce qui suit est le relevé, à la seconde.
-| Heure | Ce qui se passe |
|---|
La découverte la plus utile de la journée tient dans la -quatrième ligne : l’alarme repasse au vert bien avant que le plafond ne -remonte. Chercher l’alarme dans les journaux fait donc manquer l’essentiel du -phénomène — elle dure quelques minutes, le bridage dure des heures.
-Les seuils ne sont pas des valeurs choisies : ce sont ceux que le -matériel déclare lui-même.
-La consigne de tension de charge a été abaissée de 51,3 -à 51,0 V pour voir si le contournement suffisait à ne -plus jamais déclencher.
-Il ne suffit pas. À 92 % de charge, les cellules meneuses -ont atteint 3563 et 3548 mV malgré la consigne abaissée, et le plafond a -recommencé à osciller entre 35 et 40 A. Le système ne reste pas « bloqué » -à une valeur : il cherche en permanence le courant maximal que la cellule la -plus faible tolère.
-Une mesure explique pourquoi la tension seule ne peut pas régler la question. -À tension de parc identique, la cellule meneuse était à 3555 mV -sous 50 A et à 3496 mV sous 30 A. Son excursion -est donc largement produite par sa résistance interne multipliée par le courant, -et pas seulement par son état de charge.
- -Pas de l’usure. Le pack récent a encaissé trois cent quarante cycles en un an -et ses soixante cellules sont intactes : cycler n’abîme pas ces modules.
-Les deux cellules terminales du parc sont descendues à -2953 et 2939 mV, sous le seuil -d’alarme basse. Un accumulateur au lithium-fer-phosphate mené là sous charge perd -de la capacité de façon irréversible. Ces cellules n’ont pas vieilli, -elles ont été vidées trop bas.
-Et il y a une boucle à rompre. La jauge d’état de charge du parc suit la -cellule la plus faible. Quand le système croit toucher son plancher de sécurité -à 22 %, cette cellule est déjà bien plus bas que le chiffre ne le laisse -croire. Le plancher est exprimé dans une grandeur que la cellule -endommagée fausse elle-même : il ne protège pas ce qu’il croit -protéger, et rien n’empêche le même mécanisme d’atteindre le pack sain.
-Une alimentation stabilisée permettra de reprendre le rééquilibrage au banc, -en commençant par le module isolé : il n’a qu’une cellule à traiter, il est -hors service, et rien de ce qu’on y tentera ne peut nuire au parc.
-Une limite à garder en tête : un rééquilibrage corrige un décalage -de charge, pas une perte de capacité. Les cellules modérément décalées -sont de bonnes candidates. Les deux cellules terminales le sont beaucoup moins — -et c’est précisément ce que l’essai sur le module isolé dira, sans risque.
-Le parc n’est pas usé. Quatre modules sur huit sont irréprochables : +soixante cellules sans une seule anomalie, après plus de trois cents cycles. Un +cinquième l’est tout autant.
+Trois modules portent l’ensemble du problème, et à l’intérieur de ces trois, +dix cellules. Quand l’une d’elles atteint 3550 mV, le BMS réduit +le courant de charge — non pas de son module, mais de tout le parc. +Cinq modules sains sont bridés par dix cellules.
""", + leg=["saine","décalée","gravement atteinte","terminale"], + figcap="""Amplitude balayée par chaque cellule entre sa tension minimale et sa +tension maximale sur la période d’observation. Le premier module est le +témoin : il vit dans la même chaîne que les deux abîmés, a subi +les mêmes courants et les mêmes journées, et ses quinze cellules tiennent dans +onze millivolts d’amplitude les unes des autres. Une cellule qui +a perdu de la capacité se remplit et se vide avant ses voisines, donc elle balaye +une plage bien plus large à courant identique — le signe ne demande aucun +démontage. Les amplitudes du module isolé sont plus faibles parce qu’il a passé +la période hors service, sur une plage de charge plus étroite : c’est l’écart à +ses propres voisines qui compte, pas la valeur absolue.""", + h2="Le parc, module par module", + p2="""L’identité d’un module est son code-barres, jamais son adresse : chaque +chaîne renumérote ses modules à partir de 1, il existe donc deux « module 1 » +dans cette installation.
""", + th=["Code-barres","Pack","Adr.","Cellules atteintes","Lesquelles","Écart médian", + "Surtensions","Sous-tensions",""], + p3="""Lisez la colonne des écarts médians. Les cinq modules sains tiennent entre +2 et 6 millivolts ; les trois autres sont à 45, 57 et 108. Le même +contraste apparaît sur les surtensions : 498 pour le premier +module contre une seule pour chacun des quatre du pack récent, +qui ont pourtant encaissé dix fois plus de cycles.
+Les soixante cellules du pack récent balayent toutes entre 168 et 191 mV +d’amplitude, sans exception. L’inventaire est clos.
""", + h3="Le déclenchement, chronométré", + p4="""Le 5 septembre, la console a été branchée sur les trois modules du pack +ancien pendant que l’alarme montait. Ce qui suit est le relevé, à la seconde.
""", + thc=["Heure","Ce qui se passe",""], + enc1="""La découverte la plus utile tient dans la quatrième +ligne : l’alarme repasse au vert bien avant que le plafond ne remonte. Chercher +l’alarme dans les journaux fait donc manquer l’essentiel du phénomène — elle dure +quelques minutes, le bridage dure des heures.
""", + p5="""Les seuils ne sont pas des valeurs choisies : ce sont ceux que le matériel +déclare lui-même, lus dans sysinfo du LV-HUB.
""", + h4="Résistance interne ou décalage de charge ?", + p6="""La question décide de ce qu’un rééquilibrage peut rendre. Deux points de +mesure suffisent à la trancher, sur la même cellule à deux courants différents.
+| courant par cellule | écart | |
|---|---|---|
| 13:04:48 | 6,33 A | 163 mV |
| 14:05:42 | 0,04 A | 46 mV |
La pente donne ≈ 18,6 mΩ de résistance excédentaire sur la +cellule meneuse, vingt à quarante fois celle d’une cellule saine. L’ordonnée à +l’origine, ≈ 46 mV, est le vrai décalage de charge.
+Contrôle indépendant : cette droite prédit 312 mV à 100 A de courant parc. +L’écart maximal réellement enregistré sur trente-sept jours est de 280 mV.
+Donc sur les ~190 mV d’écart en charge, 46 mV seulement sont un +décalage — le reste est de la capacité perdue. Un rééquilibrage parfait +ramènerait le déclenchement de 3555 à environ 3510 mV : sous le seuil, mais avec +quarante millivolts de marge seulement.
""", + h5="D’où viennent les dégâts", + p7="""Pas de l’usure. Le pack récent a encaissé trois cent quarante cycles en un +an et ses soixante cellules sont intactes : cycler n’abîme pas ces modules. Et le +module témoin a partagé la chaîne, les courants et les journées des deux abîmés +sans une égratignure.
+Les deux cellules terminales du parc sont descendues à 2953 +et 2939 mV, sous le seuil d’alarme basse. Un accumulateur +au lithium-fer-phosphate mené là sous charge perd de la capacité de façon +irréversible. Ces cellules n’ont pas vieilli, elles ont été vidées trop +bas.
""", + h6="Les trois questions posées à Pylontech", + q=["Ces cellules sont-elles récupérables par un maintien prolongé en haut de " + "charge, ou la composante résistive de 18,6 mΩ rend-elle l’opération vaine ?", + "Existe-t-il une procédure recommandée pour un module dans cet état, et une " + "limite au-delà de laquelle le remplacement du module s’impose ?", + "Que compte exactement le SOHCount par cellule " + "rendu par la commande soh, et à partir de quelle " + "valeur Pylontech considère qu’une cellule doit être traitée ?"], + meth="Relevés faits sur la console série des BMS Pylontech, que ni Home Assistant " + "ni le GX Victron n’exposent : le système ne publie que l’agrégat du parc. " + "Installation en autoconsommation sans injection, deux MultiPlus-II 48/5000 " + "en parallèle. Ce rapport évolue au fil des travaux.", +) + +T["en"] = dict( + titre="The Hundred and Five Cells", + etiq="Pylontech pack · diagnosis in progress", + chapeau="Eight modules, fifteen cells each. Ten of those cells throttle the " + "charging of the other ninety-five. Here is which ones, how we know, " + "and what can be done about it.", + maj="Last updated", + v=[("10","affected cells out of 105"),("3","modules involved out of 8"), + ("5 s","from threshold crossing to current cut"), + ("30 A","limit imposed on the whole pack, against 150 A nominal")], + h1="The verdict", + p1="""The pack is not worn out. Four modules out of eight are flawless: +sixty cells without a single anomaly, after more than three hundred cycles. A +fifth is just as clean.
+Three modules carry the entire problem, and within those three, ten +cells. When one of them reaches 3550 mV the BMS reduces the charge +current — not for its own module, but for the whole pack. Five +healthy modules are throttled by ten cells.
""", + leg=["healthy","drifting","badly affected","terminal"], + figcap="""Voltage span swept by each cell between its minimum and maximum over the +observation period. The first module is the control: it lives on +the same chain as the two damaged ones, has seen the same currents and the same +days, and its fifteen cells sit within eleven millivolts of span of each +other. A cell that has lost capacity fills and empties before its +neighbours, so it sweeps a far wider range at identical current — the sign +requires no disassembly. The isolated module shows smaller spans because it spent +the period out of service, over a narrower state-of-charge window: what matters +is the gap to its own neighbours, not the absolute value.""", + h2="The pack, module by module", + p2="""A module's identity is its barcode, never its address: each chain renumbers +its modules from 1, so there are two “module 1” in this installation.
""", + th=["Barcode","Pack","Addr.","Affected cells","Which ones","Median spread", + "Overvoltage","Undervoltage",""], + p3="""Read the median spread column. The five healthy modules sit between +2 and 6 millivolts; the other three are at 45, 57 and 108. The +same contrast shows in the overvoltage counters: 498 for the +first module against one for each of the four in the newer pack, +which have nonetheless taken ten times more cycles.
+All sixty cells of the newer pack sweep between 168 and 191 mV, without +exception. The inventory is closed.
""", + h3="The trip, timed", + p4="""On 5 September the console was connected to the three modules of the older +pack while the alarm was rising. What follows is the record, to the second.
""", + thc=["Time","What happens",""], + enc1="""The most useful finding is in the fourth row: the alarm +clears well before the limit recovers. Looking for the alarm in the logs therefore +misses the bulk of the phenomenon — the alarm lasts minutes, the throttling lasts +hours.
""", + p5="""The thresholds are not values we chose: they are the ones the hardware +declares, read from sysinfo on the LV-HUB.
""", + h4="Internal resistance, or charge imbalance?", + p6="""The answer decides what balancing can give back. Two measurement points on +the same cell at two different currents settle it.
+| current per cell | spread | |
|---|---|---|
| 13:04:48 | 6.33 A | 163 mV |
| 14:05:42 | 0.04 A | 46 mV |
The slope gives ≈ 18.6 mΩ of excess internal resistance on the +leading cell, twenty to forty times that of a healthy one. The intercept, +≈ 46 mV, is the true charge imbalance.
+Independent check: this line predicts 312 mV at 100 A pack current. The largest +spread actually recorded over thirty-seven days is 280 mV.
+So of the ~190 mV of spread under charge, only 46 mV are an +imbalance — the rest is lost capacity. A perfect rebalance would bring the +trip from 3555 down to about 3510 mV: below the threshold, but with only forty +millivolts of margin.
""", + h5="Where the damage comes from", + p7="""Not from wear. The newer pack has taken three hundred and forty cycles in a +year and its sixty cells are intact: cycling does not damage these modules. And +the control module shared the chain, the currents and the days of the two damaged +ones without a scratch.
+The two terminal cells went down to 2953 and +2939 mV, below the low-voltage alarm threshold. A +lithium iron phosphate cell taken there under load loses capacity irreversibly. +These cells did not age, they were discharged too deep.
""", + h6="Three questions for Pylontech", + q=["Are these cells recoverable by a prolonged hold at high state of charge, or " + "does the 18.6 mΩ resistive component make the attempt pointless?", + "Is there a recommended procedure for a module in this condition, and a limit " + "beyond which module replacement is the only option?", + "What exactly does the per-cell SOHCount returned " + "by the soh command count, and from what value " + "does Pylontech consider a cell to require attention?"], + meth="Measurements taken on the serial console of the Pylontech BMS units, which " + "neither Home Assistant nor the Victron GX exposes: the system publishes only " + "the pack aggregate. Self-consumption installation without grid feed-in, two " + "MultiPlus-II 48/5000 in parallel. This report evolves as the work proceeds.", +) + +T["zh"] = dict( + titre="一百零五颗电芯", + etiq="Pylontech 电池组 · 诊断进行中", + chapeau="八个模块,每个十五颗电芯。其中十颗电芯限制了其余九十五颗的充电。" + "本报告说明是哪几颗、依据何在、以及可以怎么处理。", + maj="最后更新", + v=[("10","105 颗中受影响的电芯"),("3","8 个模块中受影响的模块"), + ("5 秒","从越过阈值到电流下降"), + ("30 A","施加于整组的限值,标称为 150 A")], + h1="结论", + p1="""电池组并未整体老化。八个模块中有四个毫无异常: +六十颗电芯在三百多次循环之后没有一处异常。第五个模块同样干净。
+全部问题集中在三个模块,而在这三个模块之内只有十颗电芯。 +当其中一颗达到 3550 mV,BMS 便降低充电电流——降的不是该模块,而是 +整个电池组。五个健康模块被十颗电芯拖住。
""", + leg=["健康","轻度偏离","严重偏离","已失效"], + figcap="""图中为观测期内每颗电芯在最低与最高电压之间所扫过的电压幅度。 +第一个模块是对照模块:它与两个受损模块同在一条通信链上, +经历相同的电流与相同的日子,而它的十五颗电芯彼此幅度之差仅 +十一毫伏。容量衰减的电芯会比相邻电芯更早充满、更早放空, +因此在相同电流下扫过的电压范围明显更宽——这一判据无需拆解模块即可读出。 +已隔离模块的幅度偏小,是因为它在观测期内处于停用状态、荷电区间更窄: +应看它与自身相邻电芯之差,而非绝对数值。""", + h2="逐模块清单", + p2="""模块的身份是它的条码,而不是地址:每条链上的模块都从 1 重新编号, +因此本系统中存在两个「模块 1」。
""", + th=["条码","电池组","地址","受影响电芯数","具体编号","压差中位数", + "过压次数","欠压次数",""], + p3="""请看压差中位数一列。五个健康模块在 2 至 6 毫伏之间; +另外三个分别为 45、57 与 108。过压计数呈现同样的对比:第一个模块为 +498 次,而新电池组四个模块各自仅 1 次—— +后者的循环次数还多出十倍。
+新电池组的六十颗电芯,幅度全部落在 168 至 191 mV 之间,无一例外。 +清点至此完成。
""", + h3="触发过程,逐秒记录", + p4="""9 月 5 日,在告警上升过程中,控制台接入了旧电池组的三个模块。 +以下为逐秒记录。
""", + thc=["时间","发生了什么",""], + enc1="""最有价值的一处发现在第四行:告警远早于电流限值 +恢复之前就已解除。因此仅在日志中查找告警,会错过该现象的绝大部分—— +告警持续数分钟,而限流持续数小时。
""", + p5="""这些阈值并非我们所选:它们由设备本身声明,读取自 LV-HUB 的 +sysinfo。
""", + h4="是内阻,还是荷电不均衡?", + p6="""这个问题决定了均衡能够挽回多少。同一颗电芯在两种电流下的两个测点 +即可判定。
+| 单芯电流 | 压差 | |
|---|---|---|
| 13:04:48 | 6.33 A | 163 mV |
| 14:05:42 | 0.04 A | 46 mV |
斜率给出最高电芯的额外内阻约 18.6 mΩ,为健康电芯的 +二十至四十倍。截距 约 46 mV,才是真正的荷电不均衡。
+独立验证:该直线预测在整组电流 100 A 时压差为 312 mV;三十七天记录中 +实际出现的最大压差为 280 mV。
+因此在充电时约 190 mV 的压差中,只有 46 mV 属于不均衡, +其余为容量损失。即便完成理想均衡,触发点也只能从 3555 mV 降至约 3510 mV: +低于阈值,但余量仅四十毫伏。
""", + h5="损伤的来源", + p7="""并非老化所致。新电池组一年内完成三百四十次循环,六十颗电芯完好无损: +循环本身不会损坏这些模块。对照模块与两个受损模块同链、同电流、同工况, +亦毫发无伤。
+两颗已失效电芯曾降至 2953 与 +2939 mV,低于低压告警阈值。磷酸铁锂电芯在带载状态下 +被放至该电压,会发生不可逆的容量损失。这些电芯不是老化,而是被过放。
""", + h6="向 Pylontech 提出的三个问题", + q=["这些电芯能否通过长时间保持高荷电状态而恢复,还是 18.6 mΩ 的内阻分量" + "已使该尝试失去意义?", + "对处于此状态的模块,是否有推荐的处理流程?超过何种程度必须更换模块?", + "soh 命令返回的单芯 SOHCount " + "具体统计的是什么?从多大数值起,Pylontech 认为该电芯需要处理?"], + meth="数据取自 Pylontech BMS 的串口控制台——Home Assistant 与 Victron GX 均不提供" + "这些数据,系统仅发布整组聚合值。系统为无馈网自发自用,两台 MultiPlus-II " + "48/5000 并机。本报告将随工作进展持续更新。", +)