Files
EVCS/docs/pages/rapport-batteries.html
Tallagrand Thierry e6405d6b49 Le rapport en trois langues, avec ce qu'on demande a Pylontech
Le generateur separe desormais les MESURES des MOTS : les chiffres
vivent dans gen-rapport-batteries.py, les trois langues dans
rapport_textes.py. Une correction de traduction ne peut donc pas
toucher un chiffre, ni l'inverse - et les trois versions partagent
exactement les memes donnees puisqu'elles lisent la meme source.

La version destinee au fabricant gagne une section que la francaise
n'avait pas : trois questions precises, sur la recuperabilite des
cellules face a leur composante resistive, sur la procedure
recommandee pour un module dans cet etat, et sur ce que compte
exactement le SOHCount par cellule.

Le chinois charge Noto Sans SC et desserre l'interligne ; les mesures
de colonne passent en em plutot qu'en ch, un caractere han n'ayant
pas la largeur d'un zero.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
2026-09-05 17:23:19 +02:00

185 lines
26 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<title>Les cent cinq cellules</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Chivo:wght@400;700;900&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&family=JetBrains+Mono:wght@400;700&display=swap">
<style>
:root {
--fond:#F6F8F7; --carte:#FFFFFF; --encre:#14191B; --sourd:#5B6669;
--trait:#DCE2E1; --trait-fort:#B9C3C1;
--sain:#2E7D62; --attention:#A8760C; --grave:#C2521E; --mort:#9B1D20;
--lueur:rgba(46,125,98,.08);
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--fond:#0E1112; --carte:#161A1B; --encre:#E7EBEA; --sourd:#97A2A4;
--trait:#252B2C; --trait-fort:#3A4344;
--sain:#5BB894; --attention:#D9A63C; --grave:#E8794A; --mort:#E05C60;
--lueur:rgba(91,184,148,.10);
}
}
:root[data-theme="dark"] {
--fond:#0E1112; --carte:#161A1B; --encre:#E7EBEA; --sourd:#97A2A4;
--trait:#252B2C; --trait-fort:#3A4344;
--sain:#5BB894; --attention:#D9A63C; --grave:#E8794A; --mort:#E05C60;
--lueur:rgba(91,184,148,.10);
}
* { box-sizing:border-box; }
body { background:var(--fond); color:var(--encre);
font:400 17px/1.62 "Source Serif 4", Georgia, serif; margin:0; -webkit-font-smoothing:antialiased; }
.page { max-width:1000px; margin:0 auto; padding:0 24px 96px; }
.mesure { max-width:64ch; }
h1, h2, h3, .fm, .etiq { font-family:Chivo, "Helvetica Neue", Arial, sans-serif; }
h1 { font-weight:900; font-size:clamp(2.2rem,6vw,3.7rem); line-height:1.08;
letter-spacing:-.025em; margin:0 0 .4em; text-wrap:balance; }
h2 { font-weight:700; font-size:1.5rem; margin:4.2rem 0 .2em; text-wrap:balance; }
h2 .num { color:var(--sourd); font-weight:400; margin-right:.5em;
font-variant-numeric:tabular-nums; }
p { margin:0 0 1.05em; }
strong, b { font-weight:600; }
.mono { font-family:"JetBrains Mono", ui-monospace, monospace; font-size:.86em;
font-variant-numeric:tabular-nums; }
header { padding:72px 0 8px; border-bottom:1px solid var(--trait); margin-bottom:2.5rem; }
.etiq { font-size:.72rem; font-weight:700; letter-spacing:.14em;
text-transform:uppercase; color:var(--sourd); margin-bottom:1.6rem; }
.chapeau { font-size:1.2rem; line-height:1.55; color:var(--sourd);
max-width:56ch; margin-bottom:2rem; }
.maj { font-size:.8rem; color:var(--sourd); padding-bottom:1.4rem; }
.verdict { display:grid; gap:1px; background:var(--trait);
grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
border:1px solid var(--trait); border-radius:10px; overflow:hidden; margin:2rem 0 0; }
.verdict div { background:var(--carte); padding:18px 20px; }
.verdict .n { font-family:Chivo, "Helvetica Neue", Arial, sans-serif; font-weight:900; font-size:2.3rem;
line-height:1; font-variant-numeric:tabular-nums; }
.verdict .l { font-size:.86rem; color:var(--sourd); margin-top:.45em; line-height:1.35; }
figure { margin:2rem 0; }
.cadre { background:var(--carte); border:1px solid var(--trait); border-radius:10px;
padding:22px 20px; overflow-x:auto; }
svg { display:block; min-width:640px; width:100%; height:auto; }
.fm { font-size:12.5px; font-weight:700; fill:var(--encre); }
.fp { font-size:10.5px; fill:var(--sourd); font-family:"Source Serif 4", Georgia, serif; }
.fc { font-size:9.5px; fill:var(--sourd); text-anchor:end; font-family:"JetBrains Mono",monospace; }
.fv { font-size:9.5px; fill:var(--sourd); font-family:"JetBrains Mono",monospace; }
.fr { font-size:9.5px; fill:var(--sourd); text-anchor:middle; font-family:"JetBrains Mono",monospace; }
.rep { stroke:var(--trait-fort); stroke-width:1; stroke-dasharray:2 4; }
figcaption { font-size:.88rem; color:var(--sourd); margin-top:.9rem;
max-width:62ch; line-height:1.65; }
.tabl { overflow-x:auto; margin:1.6rem 0; border:1px solid var(--trait);
border-radius:10px; background:var(--carte); }
table { border-collapse:collapse; width:100%; min-width:680px;
font-family:"Source Serif 4", Georgia, serif; font-size:.94rem; }
th { font-family:Chivo, "Helvetica Neue", Arial, sans-serif; font-size:.7rem; font-weight:700;
letter-spacing:.08em; text-transform:uppercase; color:var(--sourd);
text-align:left; padding:13px 14px; border-bottom:1px solid var(--trait); }
td { padding:11px 14px; border-bottom:1px solid var(--trait); vertical-align:top; }
tr:last-child td { border-bottom:none; }
tr.mal td { background:var(--lueur); }
.num { text-align:right; font-variant-numeric:tabular-nums;
font-family:"JetBrains Mono",monospace; font-size:.85rem; }
.gros { font-weight:700; font-size:1rem; }
.cel { font-family:"JetBrains Mono",monospace; font-size:.8rem; color:var(--sourd); }
.etat { font-size:.85rem; color:var(--sourd); }
.h { font-weight:700; white-space:nowrap; }
.note { color:var(--sourd); font-size:.88rem; }
table.mini { min-width:0; width:auto; margin:1.2rem 0; border:1px solid var(--trait);
border-radius:8px; }
table.mini th { padding:9px 16px; } table.mini td { padding:8px 16px; }
.legende { display:flex; flex-wrap:wrap; gap:18px; font-size:.85rem;
color:var(--sourd); margin-top:1rem; }
.legende span { display:inline-flex; align-items:center; gap:7px; }
.pastille { width:11px; height:11px; border-radius:3px; display:inline-block; }
.encart { border-left:3px solid var(--grave); background:var(--carte);
padding:16px 20px; margin:1.8rem 0; border-radius:0 8px 8px 0; }
.encart p:last-child { margin-bottom:0; }
ol, ul { padding-left:1.3em; } li { margin-bottom:.7em; }
footer { margin-top:5rem; padding-top:1.6rem; border-top:1px solid var(--trait);
font-size:.85rem; color:var(--sourd); line-height:1.6; }
</style>
<div class="page">
<header>
<div class="etiq">Parc Pylontech · diagnostic en cours</div>
<h1>Les cent cinq cellules</h1>
<p class="chapeau">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.</p>
<div class="maj">Dernière mise à jour&nbsp;: 5 septembre 2026, 17 h</div>
</header>
<div class="verdict"><div><div class="n">10</div><div class="l">cellules atteintes sur 105</div></div><div><div class="n">3</div><div class="l">modules concernés sur 8</div></div><div><div class="n">5&nbsp;s</div><div class="l">entre le franchissement du seuil et la coupure</div></div><div><div class="n">30&nbsp;A</div><div class="l">plafond imposé au parc entier, pour 150 A nominaux</div></div></div>
<div class="mesure"><h2><span class="num">1</span>Le verdict</h2><p>Le parc n’est pas usé. Quatre modules sur huit sont <strong>irréprochables</strong> :
soixante cellules sans une seule anomalie, après plus de trois cents cycles. Un
cinquième l’est tout autant.</p>
<p>Trois modules portent l’ensemble du problème, et à l’intérieur de ces trois,
<strong>dix cellules</strong>. Quand l’une d’elles atteint 3550 mV, le BMS réduit
le courant de charge — non pas de son module, mais <strong>de tout le parc</strong>.
Cinq modules sains sont bridés par dix cellules.</p></div>
<figure>
<div class="cadre"><svg viewBox="0 0 760 1064" role="img"><line x1="268.0" y1="0" x2="268.0" y2="1046" class="rep"/><text x="268.0" y="1058" class="fr">200 mV</text><line x1="440.0" y1="0" x2="440.0" y2="1046" class="rep"/><text x="440.0" y="1058" class="fr">400 mV</text><line x1="612.0" y1="0" x2="612.0" y2="1046" class="rep"/><text x="612.0" y="1058" class="fr">600 mV</text><text x="0" y="13" class="fm">0323</text><text x="0" y="25" class="fp">pack ancien · adresse 2 — LE TÉMOIN</text><text x="88" y="36" class="fc">1</text><rect x="96" y="28" width="164.3" height="10" rx="2" fill="var(--sain)"/><text x="266.26" y="37" class="fv">191</text><text x="88" y="51" class="fc">2</text><rect x="96" y="43" width="161.7" height="10" rx="2" fill="var(--sain)"/><text x="263.68" y="52" class="fv">188</text><text x="88" y="66" class="fc">3</text><rect x="96" y="58" width="161.7" height="10" rx="2" fill="var(--sain)"/><text x="263.68" y="67" class="fv">188</text><text x="88" y="81" class="fc">4</text><rect x="96" y="73" width="162.5" height="10" rx="2" fill="var(--sain)"/><text x="264.53999999999996" y="82" class="fv">189</text><text x="88" y="96" class="fc">5</text><rect x="96" y="88" width="163.4" height="10" rx="2" fill="var(--sain)"/><text x="265.4" y="97" class="fv">190</text><text x="88" y="111" class="fc">6</text><rect x="96" y="103" width="169.4" height="10" rx="2" fill="var(--sain)"/><text x="271.41999999999996" y="112" class="fv">197</text><text x="88" y="126" class="fc">7</text><rect x="96" y="118" width="160.8" height="10" rx="2" fill="var(--sain)"/><text x="262.82" y="127" class="fv">187</text><text x="88" y="141" class="fc">8</text><rect x="96" y="133" width="163.4" height="10" rx="2" fill="var(--sain)"/><text x="265.4" y="142" class="fv">190</text><text x="88" y="156" class="fc">9</text><rect x="96" y="148" width="162.5" height="10" rx="2" fill="var(--sain)"/><text x="264.53999999999996" y="157" class="fv">189</text><text x="88" y="171" class="fc">10</text><rect x="96" y="163" width="165.1" height="10" rx="2" fill="var(--sain)"/><text x="267.12" y="172" class="fv">192</text><text x="88" y="186" class="fc">11</text><rect x="96" y="178" width="164.3" height="10" rx="2" fill="var(--sain)"/><text x="266.26" y="187" class="fv">191</text><text x="88" y="201" class="fc">12</text><rect x="96" y="193" width="161.7" height="10" rx="2" fill="var(--sain)"/><text x="263.68" y="202" class="fv">188</text><text x="88" y="216" class="fc">13</text><rect x="96" y="208" width="160.8" height="10" rx="2" fill="var(--sain)"/><text x="262.82" y="217" class="fv">187</text><text x="88" y="231" class="fc">14</text><rect x="96" y="223" width="165.1" height="10" rx="2" fill="var(--sain)"/><text x="267.12" y="232" class="fv">192</text><text x="88" y="246" class="fc">15</text><rect x="96" y="238" width="170.3" height="10" rx="2" fill="var(--sain)"/><text x="272.28" y="247" class="fv">198</text><text x="0" y="278" class="fm">0322</text><text x="0" y="290" class="fp">pack ancien · adresse 1</text><text x="88" y="301" class="fc">1</text><rect x="96" y="293" width="156.5" height="10" rx="2" fill="var(--sain)"/><text x="258.52" y="302" class="fv">182</text><text x="88" y="316" class="fc">2</text><rect x="96" y="308" width="153.1" height="10" rx="2" fill="var(--sain)"/><text x="255.07999999999998" y="317" class="fv">178</text><text x="88" y="331" class="fc">3</text><rect x="96" y="323" width="153.1" height="10" rx="2" fill="var(--sain)"/><text x="255.07999999999998" y="332" class="fv">178</text><text x="88" y="346" class="fc">4</text><rect x="96" y="338" width="153.1" height="10" rx="2" fill="var(--sain)"/><text x="255.07999999999998" y="347" class="fv">178</text><text x="88" y="361" class="fc">5</text><rect x="96" y="353" width="152.2" height="10" rx="2" fill="var(--sain)"/><text x="254.22" y="362" class="fv">177</text><text x="88" y="376" class="fc">6</text><rect x="96" y="368" width="471.3" height="10" rx="2" fill="var(--grave)"/><text x="573.28" y="377" class="fv">548</text><text x="88" y="391" class="fc">7</text><rect x="96" y="383" width="319.1" height="10" rx="2" fill="var(--attention)"/><text x="421.06" y="392" class="fv">371</text><text x="88" y="406" class="fc">8</text><rect x="96" y="398" width="155.7" height="10" rx="2" fill="var(--sain)"/><text x="257.65999999999997" y="407" class="fv">181</text><text x="88" y="421" class="fc">9</text><rect x="96" y="413" width="153.9" height="10" rx="2" fill="var(--sain)"/><text x="255.94" y="422" class="fv">179</text><text x="88" y="436" class="fc">10</text><rect x="96" y="428" width="153.9" height="10" rx="2" fill="var(--sain)"/><text x="255.94" y="437" class="fv">179</text><text x="88" y="451" class="fc">11</text><rect x="96" y="443" width="156.5" height="10" rx="2" fill="var(--sain)"/><text x="258.52" y="452" class="fv">182</text><text x="88" y="466" class="fc">12</text><rect x="96" y="458" width="594.3" height="10" rx="2" fill="var(--mort)"/><text x="696.26" y="467" class="fv">691</text><text x="88" y="481" class="fc">13</text><rect x="96" y="473" width="153.1" height="10" rx="2" fill="var(--sain)"/><text x="255.07999999999998" y="482" class="fv">178</text><text x="88" y="496" class="fc">14</text><rect x="96" y="488" width="234.8" height="10" rx="2" fill="var(--attention)"/><text x="336.78" y="497" class="fv">273</text><text x="88" y="511" class="fc">15</text><rect x="96" y="503" width="153.1" height="10" rx="2" fill="var(--sain)"/><text x="255.07999999999998" y="512" class="fv">178</text><text x="0" y="543" class="fm">0319</text><text x="0" y="555" class="fp">pack ancien · adresse 3</text><text x="88" y="566" class="fc">1</text><rect x="96" y="558" width="157.4" height="10" rx="2" fill="var(--sain)"/><text x="259.38" y="567" class="fv">183</text><text x="88" y="581" class="fc">2</text><rect x="96" y="573" width="448.1" height="10" rx="2" fill="var(--grave)"/><text x="550.06" y="582" class="fv">521</text><text x="88" y="596" class="fc">3</text><rect x="96" y="588" width="158.2" height="10" rx="2" fill="var(--sain)"/><text x="260.24" y="597" class="fv">184</text><text x="88" y="611" class="fc">4</text><rect x="96" y="603" width="160.0" height="10" rx="2" fill="var(--sain)"/><text x="261.96000000000004" y="612" class="fv">186</text><text x="88" y="626" class="fc">5</text><rect x="96" y="618" width="156.5" height="10" rx="2" fill="var(--sain)"/><text x="258.52" y="627" class="fv">182</text><text x="88" y="641" class="fc">6</text><rect x="96" y="633" width="273.5" height="10" rx="2" fill="var(--attention)"/><text x="375.48" y="642" class="fv">318</text><text x="88" y="656" class="fc">7</text><rect x="96" y="648" width="157.4" height="10" rx="2" fill="var(--sain)"/><text x="259.38" y="657" class="fv">183</text><text x="88" y="671" class="fc">8</text><rect x="96" y="663" width="160.0" height="10" rx="2" fill="var(--sain)"/><text x="261.96000000000004" y="672" class="fv">186</text><text x="88" y="686" class="fc">9</text><rect x="96" y="678" width="158.2" height="10" rx="2" fill="var(--sain)"/><text x="260.24" y="687" class="fv">184</text><text x="88" y="701" class="fc">10</text><rect x="96" y="693" width="406.8" height="10" rx="2" fill="var(--grave)"/><text x="508.78" y="702" class="fv">473</text><text x="88" y="716" class="fc">11</text><rect x="96" y="708" width="158.2" height="10" rx="2" fill="var(--sain)"/><text x="260.24" y="717" class="fv">184</text><text x="88" y="731" class="fc">12</text><rect x="96" y="723" width="381.0" height="10" rx="2" fill="var(--grave)"/><text x="482.98" y="732" class="fv">443</text><text x="88" y="746" class="fc">13</text><rect x="96" y="738" width="158.2" height="10" rx="2" fill="var(--sain)"/><text x="260.24" y="747" class="fv">184</text><text x="88" y="761" class="fc">14</text><rect x="96" y="753" width="161.7" height="10" rx="2" fill="var(--sain)"/><text x="263.68" y="762" class="fv">188</text><text x="88" y="776" class="fc">15</text><rect x="96" y="768" width="364.6" height="10" rx="2" fill="var(--grave)"/><text x="466.64" y="777" class="fv">424</text><text x="0" y="808" class="fm">0324</text><text x="0" y="820" class="fp">isolée (BAT3) · adresse 4</text><text x="88" y="831" class="fc">1</text><rect x="96" y="823" width="118.7" height="10" rx="2" fill="var(--sain)"/><text x="220.68" y="832" class="fv">138</text><text x="88" y="846" class="fc">2</text><rect x="96" y="838" width="106.6" height="10" rx="2" fill="var(--sain)"/><text x="208.64" y="847" class="fv">124</text><text x="88" y="861" class="fc">3</text><rect x="96" y="853" width="118.7" height="10" rx="2" fill="var(--sain)"/><text x="220.68" y="862" class="fv">138</text><text x="88" y="876" class="fc">4</text><rect x="96" y="868" width="117.8" height="10" rx="2" fill="var(--sain)"/><text x="219.82" y="877" class="fv">137</text><text x="88" y="891" class="fc">5</text><rect x="96" y="883" width="119.5" height="10" rx="2" fill="var(--sain)"/><text x="221.54" y="892" class="fv">139</text><text x="88" y="906" class="fc">6</text><rect x="96" y="898" width="113.5" height="10" rx="2" fill="var(--sain)"/><text x="215.51999999999998" y="907" class="fv">132</text><text x="88" y="921" class="fc">7</text><rect x="96" y="913" width="115.2" height="10" rx="2" fill="var(--sain)"/><text x="217.24" y="922" class="fv">134</text><text x="88" y="936" class="fc">8</text><rect x="96" y="928" width="122.1" height="10" rx="2" fill="var(--sain)"/><text x="224.12" y="937" class="fv">142</text><text x="88" y="951" class="fc">9</text><rect x="96" y="943" width="123.0" height="10" rx="2" fill="var(--sain)"/><text x="224.98000000000002" y="952" class="fv">143</text><text x="88" y="966" class="fc">10</text><rect x="96" y="958" width="116.1" height="10" rx="2" fill="var(--sain)"/><text x="218.1" y="967" class="fv">135</text><text x="88" y="981" class="fc">11</text><rect x="96" y="973" width="117.0" height="10" rx="2" fill="var(--sain)"/><text x="218.95999999999998" y="982" class="fv">136</text><text x="88" y="996" class="fc">12</text><rect x="96" y="988" width="117.8" height="10" rx="2" fill="var(--sain)"/><text x="219.82" y="997" class="fv">137</text><text x="88" y="1011" class="fc">13</text><rect x="96" y="1003" width="110.1" height="10" rx="2" fill="var(--sain)"/><text x="212.07999999999998" y="1012" class="fv">128</text><text x="88" y="1026" class="fc">14</text><rect x="96" y="1018" width="116.1" height="10" rx="2" fill="var(--sain)"/><text x="218.1" y="1027" class="fv">135</text><text x="88" y="1041" class="fc">15</text><rect x="96" y="1033" width="587.4" height="10" rx="2" fill="var(--mort)"/><text x="689.38" y="1042" class="fv">683</text></svg></div>
<div class="legende"><span><i class="pastille" style="background:var(--sain)"></i>saine</span><span><i class="pastille" style="background:var(--attention)"></i>décalée</span><span><i class="pastille" style="background:var(--grave)"></i>gravement atteinte</span><span><i class="pastille" style="background:var(--mort)"></i>terminale</span></div>
<figcaption>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
<strong>témoin</strong> : 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
<strong>onze millivolts d’amplitude les unes des autres</strong>. 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.</figcaption>
</figure>
<div class="mesure"><h2><span class="num">2</span>Le parc, module par module</h2><p>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.</p></div>
<div class="tabl"><table><thead><tr><th>Code-barres</th><th>Pack</th><th>Adr.</th><th>Cellules atteintes</th><th>Lesquelles</th><th>Écart médian</th><th>Surtensions</th><th>Sous-tensions</th><th></th></tr></thead><tbody><tr class="mal"><td class="mono">K220803C30160322</td><td>ancien</td><td class="num">1</td><td class="num gros">4</td><td class="cel">6 · 7 · 12 · 14</td><td class="num">108</td><td class="num">498</td><td class="num">86</td><td class="etat">en service</td></tr><tr class=""><td class="mono">K220803C30160323</td><td>ancien</td><td class="num">2</td><td class="num gros">0</td><td class="cel">—</td><td class="num">6</td><td class="num">0</td><td class="num">0</td><td class="etat">en service</td></tr><tr class="mal"><td class="mono">K220803C30160319</td><td>ancien</td><td class="num">3</td><td class="num gros">5</td><td class="cel">2 · 6 · 10 · 12 · 15</td><td class="num">45</td><td class="num">416</td><td class="num">179</td><td class="etat">en service</td></tr><tr class="mal"><td class="mono">K220803C30160324</td><td>ancien</td><td class="num">4</td><td class="num gros">1</td><td class="cel">15</td><td class="num">57</td><td class="num">29</td><td class="num">59</td><td class="etat">isolée</td></tr><tr class=""><td class="mono">Y230202C30371426</td><td>récent</td><td class="num">1</td><td class="num gros">0</td><td class="cel">—</td><td class="num">2</td><td class="num">1</td><td class="num">1</td><td class="etat">en service</td></tr><tr class=""><td class="mono">Y230202C30371425</td><td>récent</td><td class="num">2</td><td class="num gros">0</td><td class="cel">—</td><td class="num">2</td><td class="num">1</td><td class="num">1</td><td class="etat">en service</td></tr><tr class=""><td class="mono">Y230202C30371431</td><td>récent</td><td class="num">3</td><td class="num gros">0</td><td class="cel">—</td><td class="num">2</td><td class="num">1</td><td class="num">1</td><td class="etat">en service</td></tr><tr class=""><td class="mono">Y230202C30371427</td><td>récent</td><td class="num">4</td><td class="num gros">0</td><td class="cel">—</td><td class="num">2</td><td class="num">1</td><td class="num">0</td><td class="etat">en service</td></tr></tbody></table></div>
<div class="mesure"><p>Lisez la colonne des écarts médians. Les cinq modules sains tiennent entre
<strong>2 et 6 millivolts</strong> ; les trois autres sont à 45, 57 et 108. Le même
contraste apparaît sur les surtensions : <strong>498</strong> pour le premier
module contre <strong>une seule</strong> pour chacun des quatre du pack récent,
qui ont pourtant encaissé dix fois plus de cycles.</p>
<p>Les soixante cellules du pack récent balayent toutes entre 168 et 191 mV
d’amplitude, sans exception. L’inventaire est clos.</p>
<h2><span class="num">3</span>Le déclenchement, chronométré</h2><p>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.</p></div>
<div class="tabl"><table><thead><tr><th>Heure</th><th>Ce qui se passe</th><th></th></tr></thead><tbody><tr><td class="mono h">13:04:48</td><td>cellule 7 du module …0322 à <b>3526 mV</b>, cellule 6 du module …0319 à <b>3541</b></td><td class="note">sous le seuil</td></tr><tr><td class="mono h">13:05:08</td><td>les mêmes à <b>3555</b> et <b>3575 mV</b></td><td class="note">niveau 3 franchi</td></tr><tr><td class="mono h">13:05:13</td><td>le BMS abaisse le courant de charge autorisé de <b>50 à 30 A</b></td><td class="note">cinq secondes plus tard</td></tr><tr><td class="mono h">13:15:10</td><td>les cellules redescendent à 3499 et 3522 mV, l’alarme repasse au vert</td><td class="note">le plafond, lui, reste à 30 A</td></tr><tr><td class="mono h">13:22:40</td><td>plafond <b>30 → 40 A</b></td><td class="note">après 7 min 31 s</td></tr><tr><td class="mono h">13:26:39</td><td>plafond <b>40 → 35 A</b>, meneuses à 3563 et 3548 mV</td><td class="note">il redéclenche</td></tr><tr><td class="mono h">13:38:10</td><td>plafond <b>35 → 40 A</b></td><td class="note">après 11 min 31 s</td></tr></tbody></table></div>
<div class="mesure">
<div class="encart"><p><strong>La découverte la plus utile</strong> 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.</p></div>
<p>Les seuils ne sont pas des valeurs choisies : ce sont ceux que le matériel
déclare lui-même, lus dans <span class="mono">sysinfo</span> du LV-HUB.</p><ul><li><span class="mono">3480 mV</span> niveau 1</li><li><span class="mono">3520 mV</span> niveau 2</li><li><span class="mono">3550 mV</span> niveau 3 — le courant se réduit</li><li><span class="mono">3600 mV</span> niveau 4</li></ul>
<h2><span class="num">4</span>Résistance interne ou décalage de charge&nbsp;?</h2><p>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.</p>
<table class="mini"><tr><th></th><th>courant par cellule</th><th>écart</th></tr>
<tr><td class="mono">13:04:48</td><td class="num">6,33 A</td><td class="num">163 mV</td></tr>
<tr><td class="mono">14:05:42</td><td class="num">0,04 A</td><td class="num">46 mV</td></tr></table>
<p>La pente donne <strong>≈ 18,6 mΩ</strong> de résistance excédentaire sur la
cellule meneuse, vingt à quarante fois celle d’une cellule saine. L’ordonnée à
l’origine, <strong>≈ 46 mV</strong>, est le vrai décalage de charge.</p>
<p>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.</p>
<p>Donc sur les ~190 mV d’écart en charge, <strong>46 mV seulement sont un
décalage</strong> — 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.</p>
<h2><span class="num">5</span>D’où viennent les dégâts</h2><p>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.</p>
<p>Les deux cellules terminales du parc sont descendues à <span class="mono">2953</span>
et <span class="mono">2939 mV</span>, 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. <strong>Ces cellules n’ont pas vieilli, elles ont été vidées trop
bas.</strong></p>
<h2><span class="num">6</span>Les trois questions posées à Pylontech</h2>
<ol><li>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&nbsp;?</li><li>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&nbsp;?</li><li>Que compte exactement le <span class="mono">SOHCount</span> par cellule rendu par la commande <span class="mono">soh</span>, et à partir de quelle valeur Pylontech considère qu’une cellule doit être traitée&nbsp;?</li></ol>
</div>
<footer>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.</footer>
</div>